该文档是关于使用串行口、定时器外中断和74LS164芯片构建电子琴的PPT学习教案,适用于计算机科学与技术或电子工程等相关专业的学生。实验旨在通过编程实现电子琴的功能,包括使用串口管理琴键、定时器T0控制音频输出以及定时器T1控制节拍。
在实验电路设计中,电路主要包括微控制器(如8051)、晶体振荡器(12MHz)、74LS164 shift register、扬声器、电阻、电容等元件。74LS164芯片用于扩展I/O端口,实现琴键的输入。微控制器的P3.7和P3.6分别用于RD和WR信号,P3.2和P3.3作为外部中断INT0和INT1,P3.4和P3.5分别为定时器T0和T1的时钟输出,P1.0到P1.7作为ADC(模数转换)通道,用于读取琴键状态。此外,P4.4至P4.7用于其他功能,如ALE、EA和RST。
实验程序主要用C语言编写,程序的组织结构包括主函数(MAIN)和中断服务子程序(DSQT0)。TMOD寄存器配置为定时器0工作在方式1,用于设置音频频率。TH0和TL0被初始化为特定值,以产生不同音调的低音(126.16Hz)。EA和ET0设置为1,开启全局中断和定时器0中断。在主循环(LOOP)中,通过LCALL调用子程序来播放音符,例如ZY3、GY1等,这些子程序可能涉及到等待延时(DEL11、DEL12)以控制音符的持续时间。定时器T0的中断用于改变音频输出,而定时器T1的中断可能用于控制节拍间隔。
实验程序中还给出了不同音符对应的频率和周期(T/2),如低音、中音和高音的频率范围。通过调整定时器的初值,可以产生不同的音高。
这个实验是电子音乐和嵌入式系统教学中的一个经典案例,它不仅涵盖了微控制器的基本操作,如I/O口、中断系统和定时器的使用,还涉及到了音频处理和模拟信号生成的基础知识。对于学生来说,这将是一次实践性极强的学习体验,有助于提升他们的硬件连接能力、编程技巧和音乐理论的理解。