音乐彩灯课程设计

  • 格式:doc
  • 大小:261.50 KB
  • 文档页数:16

下载文档原格式

  / 16
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

一、设计要求····························

二、设计目的····························

三、设计的具体实现······················

四、程序································

五、结论································

六、心得体会····························

七、附录································

八、参考文献····························

音乐彩灯设计报告

一、设计要求

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