音乐彩灯课程设计
- 格式:doc
- 大小:261.50 KB
- 文档页数:16
目录
一、设计要求····························
二、设计目的····························
三、设计的具体实现······················
四、程序································
五、结论································
六、心得体会····························
七、附录································
八、参考文献····························
音乐彩灯设计报告
一、设计要求
1、三人一组,一人负责硬件电路设计与连接,一人
采用C语言编程、调试,另一人采用汇编语言编程并调
试。
2、选用8255、8253以及相关外围芯片与开关量、发光二级
管、扬声器组成输入输出电路。
3、使用8255的PC0连接到8259,使用微机中IRQ10中断,
中断号是72H。
4、编程的两位同学学号末两位相加,得到的和数转换成二进
制数,作为触发中断的开关信号状态。如:学号为×××
××01和学号为×××××02的同学一组,中断触发条
件为:开关信号状态是03,即二进制数00000011。
5、报警时,发光二级管在两个设定状态下循环切换。同组的
两个同学各自的学号末两位对应的二进制数即是两个设
定状态。
6、设计数据结构,记录报警音乐(自选)的音长和音阶信息,
并使用8253的几个计数器实现音乐播放控制。采用某一
计数器输出音长信号,另一计数器输出音阶信号。将音长
信号连接到8255的PC4,程序对此信号进行查询,当进
入一个新的音长信号周期时,设置对应的一个音阶信号;
这样,程序不断查询PC4,控制选择不同的音长和音阶,
并同时切换发光二极管显示状态。
7、不可损坏实验设备及器件。
二、设计目的
随着化学工业环境越来越复杂,声光报警器作为报警控制系统中一个重要部件,越来越多的被用户关注,在可燃气体环境中使用它能有效防止对现场人员的人生安危,有毒气体环境中现场人员中毒达到致命的事故屡见不鲜,现场安装防爆声光报警器能在第一时间提醒现场工作人员的危险性。
主要用于商店、店铺、私人车库等场所,当有人非法把卷帘门撬开时,卷帘门神便马上发出响亮报警声音,让非法入侵者无法得手,起到防盗报警作用。产品即插即用,无需任何布线与专控。还有其他各种各样的功能,总之,声光报警器具有很多的用途,因此学习简单的制作原理是很有必要的,是对以后踏入社会非常好的积累。
三、设计的具体实现
3.1模块分析
3.1.1数据采集中断服务程序
该子程序的功能是检测A口输入的是不是我们两个人的学号相加,如果连续检测50次都是等于学号相加的
话,就进入中断子程序执行程序。
中断子程序里面包括关中断,标志自加1,从片中断结
束,主片中断结束,开中断等5个部分。
3.1.2获取原中断向量
该部分的作用是获取原中断向量,并且把他保存下来,等到中断子程序执行完成以后,利用这个可以跳转回
到中断发生的地址,继续执行别的程序。
3.1.3设置新中断向量
当前要执行的中断处理的相关信息,确保电脑能正确快速的找到当前需要执行的中断子程序。
3.1.4开中断设置
这部分包括打开从片的IRQ10和打开主片的IRQ2,为中断服务程序的进行做好准备。
3.1.5恢复原中断向量
将我们保存的原中断向量从堆栈里面出栈,从而为结束中断子程序且跳转回原来的断点做准备。
3.1.6关中断设置
这部分包括关闭从片的IRQ10和关闭主片的IRQ2,为中断服务程序的结束做好准备。
3.2流程图
3.3实验原理
1.通过接口电路将扬声器SPK、LED彩灯接入微机系统,采用CPU统一控制,满足设计要求
2.其设计原理可结合微机接口技术所学知识完成
3.4接线原理图
四、具体编码实现
4.1开发工具
IBM汇编语言
4..2端口设置
8255A:300H~303H
8253A:304H~307H
8251A:308H~30BH
ADC0809:30CH、30EH
DAC0832:30FH
8237A:主片0~0FH;从片0C0H~0DEH
8259A:主片20H,21H;从片0A0H,0A1H
4.3与外设的连接
8255的A口同硬件的输入接口连接,是外界的输入能够读入芯片中
8255的B口同外设的LED灯相连接,保证外设的灯能正常闪亮
8255的C口pc0同8259的从片IRQ10和主片的IRQ2相连,确保当pc0=1的时候,能够进入中断子程序。
8255的C口中的pc3连通扬声器的与门,当pc3值为1的时候,扬声器能正常代开并工作。
8255的C口中的pc4连通8253的0号计数器的输出,保证当一个音长到了以后,就开始继续读下面得音频和音长。
4.4系统主要的代码实现
4.4.1中断子程序
interpret proc ;中断程序模块,发声音
cli ;关中断
mov ah,02h
mov dl,31h
int 21h
mov ah,02h
mov dl,31h
int 21h
call sound
mov al,062h ;发中断结束命令(OCW2)out 0a0h,al ;从片结束中断
out 020h,al ;主片结束中断
sti ;开中断
mov dx,303h
mov al,98h ;8355控制命令字方式0,A口,C口上部输入
out dx,al
mov al,00h
out dx,al
iret ;中断返回
interpret endpinterp
4.4.2发声子程序
sound proc
lea si,FREQUENCY ;频率有效地址
lea di,TIME ;音长有效地址
mov dx,303h
mov al,10011000b
out dx,al ;对8255初始化完成
mov al,00000111b ;开门控
out dx,al
mov dx,307h
mov al,01110110B
out dx,al
mov ax,11931 ;写初值保证1号计数器输出时100 HZ