燕山大学汇编语言课程设计说明书题目:计算机钢琴程序交通灯控制系统学院(系):信息科学与工程学院年级专业: 10级计算机科学2班学号: 100104010113 学生姓名:马强学号: 100104010116 学生姓名:夏洋指导教师:何海涛、邹晓红完成日期: 2013年7月3日目录1.课程设计的目的和意义........................................................................................................... - 2 -1.1课程设计目的................................................................................................................ - 2 -1.2课程设计的意义............................................................................................................ - 2 -2.题目一:计算机钢琴程序....................................................................................................... - 2 -2.1系统的主要功能............................................................................................................ - 2 -2.2总体设计方案................................................................................................................ - 2 -2.2.1扬声器驱动方式................................................................................................. - 2 -2.2.2延时原理............................................................................................................. - 3 -2.2.3键盘控制发声程序............................................................................................. - 4 -2.2.4设计总结............................................................................................................. - 5 -2.3作品使用说明................................................................................................................ - 6 -3.题目二:交通灯控制系统....................................................................................................... - 6 -3.1系统的主要功能............................................................................................................ - 6 -3.2 系统工作原理............................................................................................................... - 6 -3.2.1 8259的工作原理................................................................................................ - 6 -3.2.2 8255A的工作原理:...................................................................................... - 7 -3.2.3 8253的工作原理:............................................................................................ - 7 -3.3总体设计方案................................................................................................................ - 7 -3.3.1程序流程图......................................................................................................... - 8 -3.3.2接口电路图....................................................................................................... - 11 -3.4交通灯的设计总结...................................................................................................... - 11 -4.课程设计心得体会................................................................................................................. - 12 -5.参考文献................................................................................................................................. - 12 -6.附录:程序代码..................................................................................................................... - 12 -6.1计算机钢琴程序代码.................................................................................................. - 12 -6.2交通灯控制系统代码.................................................................................................. - 14 -1.课程设计的目的和意义1.1课程设计目的1.进一步了解汇编语言指令的功能和用法。
2.进一步了解汇编接口的功能和用法。
3.了解用汇编语言实现声音、图像的编程。
4.锻炼团队协作完成程序设计的能力。
1.2课程设计的意义本次课程设计,给同学们一个把理论知识转化为实际动手能力的机会,使同学们能够更深入的理解汇编语言,掌握汇编语言指令的用法,掌握8259A、8255、8253接口的功能和控制方法。
本次课程设计的题目难度适中,既可以培养同学们的自信心又可以锻炼同学们解决困难的能力。
本次课程设计的形式为两人一组共同完成两个任务,既培养同学们的团队精神又提升了每个人的能力。
2.题目一:计算机钢琴程序2.1系统的主要功能编写程序,程序运行时使PC机成为一架可弹奏的钢琴,当按下数字键1-8时,依次发出8个音调。
按CTRL-C则退出钢琴状态。
2.2总体设计方案2.2.1扬声器驱动方式1.直接控制扬声器发声程序通过I/O指令使设备控制寄存器(I/O端口地址为61H)的第一位交替为0和1,而端口61H的第一位和扬声器的脉冲门相连,当第一位由0变为1,延迟一会又由1变为0时,脉冲门就先打开后关闭,产生了一个脉冲电流。
这个脉冲电流被放大后送到扬声器使之发出了声音。
图1 设备控制寄存器2.利用8253驱动扬声器PC机上的大多数I/O都是由主板上的8255可编程程序外围接口芯片(PPI)管理的。
由PPI输出寄存器中的0和1两位来控制扬声器的驱动方式。
将8253的定时器2连接到扬声器上。
GATE2与端口61H的PB0相连,当PB0=1时,GATE2获得高电平,使定时器2可以在模式3下工作。
定时器2的OUT2与端口61H的PB1通过一个与门与扬声器的驱动电路相连。
当PB1=1时,允许OUT2的输出信号到达扬声器电路。
图2 利用8253驱动扬声器发声2.2.2延时原理1.利用CPU来产生延迟利用CPU来产生延迟时间是最常用的一种方法,但对8086,80286,80386等,它们产生的延迟时间是不一样的。
对于基于8088的PC/XT,PS/2等PC机,可用下面的程序来产生时间延迟:MOV CX,NDELAY:LOOP DELAY在8088CPU中,执行一条LOOP指令需要17个时钟周期,因此,执行上面的指令大约需要N*17*T时钟周期。
例如,N=2800,系统频率为4.7MHZ,那么可得到的延迟时间为10ms。
2.80x86PC的时间延迟80x86的各种处理器采用6~66MHz的工作频率,LOOP指令的执行时间在这些处理器上也不相同。
为了建立一个与处理器无关的实践延迟,IBM采用了一种利用硬件产生时间延迟的方法,即通过监控端口61H的PB4,使PB4每18.08us触发一次,以产生一个固定不变的时间基准。