微机原理与接口技术课程设计报告音乐流水灯

上传人:宝路 文档编号:4471434 上传时间:2017-08-20 格式:DOC 页数:10 大小:108KB
返回 下载 相关 举报
微机原理与接口技术课程设计报告音乐流水灯_第1页
第1页 / 共10页
微机原理与接口技术课程设计报告音乐流水灯_第2页
第2页 / 共10页
微机原理与接口技术课程设计报告音乐流水灯_第3页
第3页 / 共10页
微机原理与接口技术课程设计报告音乐流水灯_第4页
第4页 / 共10页
微机原理与接口技术课程设计报告音乐流水灯_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《微机原理与接口技术课程设计报告音乐流水灯》由会员分享,可在线阅读,更多相关《微机原理与接口技术课程设计报告音乐流水灯(10页珍藏版)》请在金锄头文库上搜索。

1、微机原理与接口技术课程设计论文题目:音乐流水灯姓名:鞠强学号:201330020228班级:1330202专业:自动化2015 年 6 月一 、实验任务及要求任务:1、掌握综合使用基本输入输出设备、通用接口芯片、专用接口芯片的方法;2、掌握实时处理程序的编制和调试方法。要求:用 8255、8253、8259 配合 8086 使蜂鸣器发出唱歌声同时还能够使用数码管进行边跳舞边唱歌实验。二 、硬件连线键盘的控制、LED 显示模块:采用 74 系列模块控制键盘的行信号 Q_0、Q_1、Q_2、Q_3 分别与开放的输入信号Q0、Q1、Q2、Q3 相连,键盘的列信号 P_0、P_1、P_2 和开放的输出

2、信号 P0、P1、P2 相连。74 芯片的片选信号 CS1 接地址译码信号340H, CS2 接地址译码信号 360H。蜂鸣器发声控制:由 8255 模块控制;PC0 直接与蜂鸣器相连,CS_4 连接到实验仪中部的地址输出端CS_4中断处理模块:由 8259 控制8259 的片选 CS-1 连地址输出 300H, INT1 连总线输入INTR,8259 模块的 INT-A 连总线的 INTA,8259 的 SP/1 连+5V, 8259 的 IRQ0 连接到 8253 的 OUT0。三、程序流程图主程序初始化各阶段寄存器及相关变量初始化 8253、8255 芯片设置中断向量、开放 8253 中

3、断屏蔽开放处理器中断扫描键盘G 键 S 键 其他键Stop值取反Stop 置 0FF调用键盘扫描程序设置当前时分秒值Stop 置为 0 中断服务程序保护现场判断时间是否不小于 59 分 55 秒报时扫描键盘G 键?调用启停子程序S 键?调用设置时间子程序COUNT 加 1COUNT=40?修改时间,调用 ADDONE 子程序COUNT 清 0显示时间,调用显示时间子程序结束中断(发 EOI 命令)恢复现场中断返回YNYNYYN四、实验源代码DATA SEGMENT AT 0 USE16ORG 1000HHOUR DW ?MIN DW ?SEC DW ?SLL DB ?COUNT DB ?DAT

4、A ENDSCODE SEGMENT USE16 ASSUME CS:CODE,DS:DATAORG 1500H BEG:JMP STARTTAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,00H ;0F的共阴极七段译码表 00H 表示不显示任何东西KEYCOD DB 0EEH,0DEH,0BEH,0EDH,0DDH,0BDH,0EBH,0DBH,0BBH,0E7H,0D7H,0B7H ;行列编码值KEYVAL DB 0,1,2,3,4,5,6,7,8,9,0AH,0BH ;所有键的键面值PORT1 EQU 340H ;数码管段选端口

5、PORT2 EQU 360H ;数码管位选端口,键盘矩阵的行列端口START: MOV EAX,60000000HMOV CR0,EAX MOV AX,DATAMOV DS,AXMOV HOUR,0203H ;小时分钟以及秒的初始化MOV MIN,0509HMOV SEC,0502HLEA BX,TABMOV SLL,0 ;开始暂停标志位置 0MOV COUNT ,0 ;中断次数计数初始值为 0;8255 初始化 ,用于产生报时的脉冲 MOV EAX,80808080H;控制字MOV DX,20CH ;后面的是 4 个 8255 的控制端口 20C-20F (这个地址由实验台决定)OUT DX

6、,EAX ;初始化 8255,A 、B 、C 口均为方式 0 输出MOV DX,20BHMOV AL,0FFHOUT DX,AL ;8253 初始化,用于产生周期为 25ms 的中断MOV AL,00110110B ;计数器 0,先低后高,方式三,二进制MOV DX,32cH ;写往控制口OUT DX,ALMOV DX,320H ;计数器 0 写初值:47KHz*25msMOV AX,1175OUT DX,ALMOV AL,AHOUT DX,ALMOV AL,0FEH ;IR0 开屏蔽OUT DX,ALXOR AX,AX ;装载中断向量MOV ES,AXMOV DI,08H*4MOV AX,O

7、FFSET INTSRMOV ES:DI,AXMOV AX,SEG INTSRMOV ES:DI+2,AXSTI ;开中断JMP $INTSR PROC ;中断服务程序CMP MIN,0509H ;比较当前时间是否在 59 分 55 秒00 分 00 秒之间JL NEXT1CMP SEC,0505HJL NEXT1MOV DX,20BHMOV AL,00H ;蜂鸣器低有效,报时OUT DX,ALJMP NEXT2NEXT1: CMP MIN,0JNE NEXT3CMP SEC,0JNE NEXT3MOV DX,20BHMOV AL,00H ;蜂鸣器低有效,报时OUT DX,ALJMP NEXT

8、2NEXT3: MOV DX,20BH MOV AL,0FFHOUT DX,ALNEXT2: CMP COUNT,20 ;用 8255 产生 0.5ms 的蜂鸣JLE NEXT4MOV DX,20BH MOV AL,0FFHOUT DX,ALNEXT4:CMP SLL,0JZ LOBCALL TSTARTLOB: CALL KEYCHECK ;检测有无键按下CMP AL,0AH ;启停键按下,调用启停程序JNZ NEXT5CALL TSTARTJMP NEXT6NEXT5: CMP AL,0BH ;设置键按下,调用设置时间程序JNZ NEXT6CALL SETTIMEINTSR ENDPTST

9、ART PROC ;控制时间暂停和开始。CMP SLL,0JNZ R1DEC SLLR1: CALL KEYCHECKCMP AL,0AHJZ R2CALL SHOWJMP R1R2 : INC SLLRETTSTART ENDPADDONE PROC ;加 1 秒子程序MOV AX,SEC ;当前秒个位为 9,加 1 后变 0,十位加 1CMP AL,9JE N1INC ALMOV SEC,AXJMP N6N1: INC AHMOV AL,0 CMP AH,6 ;十位加 1 后为 6,则秒变为 00,分钟个位加 1JE N2MOV SEC,AXJMP N6N2: MOV AX,0MOV SE

10、C,AXMOV AX,MIN ; 当前分钟个位为 9,加 1 后变 0,十位加 1CMP AL,9JE N3 INC ALMOV MIN,AXJMP N6ADDONE ENDPSETTIME PROC ;设置时间子程序LEA BX,TABMOV HOUR,0MOV MIN,0MOV SEC,0NOPNOPL1: CALL KEYCHECK ;调用 KEYCHECK,无键按下时,AL 中值为 0CHCALL DELAYCMP AL,0CHJNZ L2JMP L1L2: CMP AL,02HJG L1 ;设置小时十位时,将其他各位数码管灭掉及对应的七段译码表0CHMOV AH,ALMOV BYTE

11、 PTRHOUR+1,ALMOV BYTE PTRHOUR,0CHMOV MIN,0C0CHMOV SEC,0C0CHL3: CALL SHOWCALL KEYCHECK ;设置小时的个位CALL DELAYCMP AL,0CHJZ L3MOV AH,BYTE PTRHOUR+1SETTIME ENDPKEYCHECK PROC ;判断有无键按下子程序PUSH BXCALL CLEARMOVDX,PORT2 NEXT: MOV AL,BLMOV DX,PORT2OUT DX,ALNOPNOPIN AL,DXAND AL,0FH CMP AL,0FHJNZ KEYROL BL,1 LOOP NE

12、XT JMP EXITKEY: SHL BL,4 OR AL,BL ;形成一个字节的键码信息存入 AL,高 4 位为列信息低 4 位为行信息LEA SI,KEYCODLEA DI,KEYVAL MOV CX,12NEXT11: CMP AL,SIJZ FINDINC SIINC DILOOP NEXT11 JMP EXITFIND: MOV AL,DI ;AL 中内容为所按键的键面值 PUSH AXNOPNOPWAIT1: IN AL,DX ;判断按键是否已释放,若无则等待AND AL,0FHCMP AL,0FHJNZ WAIT1POP AXJMP EXIT2EXIT:MOV AL,0CHEX

13、IT2:NOPPOP BX RETKEYCHECK ENDPOUT DX,ALMOV DX,PORT2 ;位选输出分钟的十位MOV AL,0C4HOUT DX,ALCALL DELAYCALL CLEARMOV AX,SECXLATMOV DX,PORT1 ;段选输出数据OUT DX,AL MOV DX,PORT2 ;位选输出秒的个位 MOV AL,0E0hOUT DX,ALCALL DELAYCALL CLEARRETSHOW ENDPDELAY PROC ;延时子程序PUSH CXMOV CX,1000LOOP $POP CXRETCLEAR ENDPCODE ENDSEND BEG五、总结两天的课程设计到了尾声,在这几天中,通过音乐流水灯实验实验,知道了很多自己的不足,例如,知识不会运用,经常翻书,以及查看相似的例子往实验上套,不过总算完成了实验,实验中遇到很多问题,例如,我的代码可以在一台实验箱上运行,结果良好,不过第二天换了台机子就不行了,数码管不能显示,有的时候蜂鸣器一直

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号