微机接口电子时钟课程设计 网络整理

上传人:第*** 文档编号:34054165 上传时间:2018-02-20 格式:DOC 页数:39 大小:283KB
返回 下载 相关 举报
微机接口电子时钟课程设计 网络整理_第1页
第1页 / 共39页
微机接口电子时钟课程设计 网络整理_第2页
第2页 / 共39页
微机接口电子时钟课程设计 网络整理_第3页
第3页 / 共39页
微机接口电子时钟课程设计 网络整理_第4页
第4页 / 共39页
微机接口电子时钟课程设计 网络整理_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《微机接口电子时钟课程设计 网络整理》由会员分享,可在线阅读,更多相关《微机接口电子时钟课程设计 网络整理(39页珍藏版)》请在金锄头文库上搜索。

1、代码硬件连线:8254 硬件连线:片选 CS300HA0A2 A1A3T0:GATE0+5VCLK047KHZOUT0IR0T1:GATE1PC0CLK1OUT2OUT1蜂鸣器8255 硬件连线:CS_1CS1CS_2CS2CS_3CS3CS_4CS4PC0GATE18259 硬件连线:CS23A0HINT2INTRSP/2+5VINT_AINTAIRQ08254 的 OUT074 系列模块硬件连线:Q_0Q0Q_1Q1Q_2Q2Q_3Q3P_0P0P_1P1P_2P2CS1340HCS2360H 程序代码段:.486pdata segment at 0 use16ORG 1000hHOUR

2、db ?MINUTE db ?SECOND db ?STOP db ?COUNT DB 01HHOUR DB ?MMINUTE DB ?SSECOND DB ?data endscode segment use16assume cs:code,ds:dataorg 1500hBEG: jmp startTAB1 db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h,86h,8eh,8ch,0c1h,91h,7fh,0ffhTAB2 db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fhK

3、EYCOD db 0eeh,0deh,0beh,0edh,0ddh,0bdh,0ebh,0dbh,0bbh,0e7h,0d7h,0b7hKEYVAL db 0,1,2,3,4,5,6,7,8,9,0ah,0bhstart:mov eax,60000000hmov cr0,eaxmov ax,codemov ds,axCLIMOV BYTE PTR HOUR ,23MOV BYTE PTR MINUTE,59MOV BYTE PTR SECOND,50MOV BYTE PTR STOP,0;8255 初始化MOV EAX,0A0A0A0AHMOV DX,208HOUT DX,EAX;8254 初

4、始化MOV DX,30CHMOV AL,34H ;计数器 0,16 位,方式 2,2 进制OUT DX,ALMOV DX,300HMOV AX,1175 ;计数器 0 初值为 25ms*47KHZOUT DX,ALMOV AL,AHOUT DX,AL2MOV DX,30CHMOV AL,54H ;计数器 1,8 位,方式 2,2 进制OUT DX,ALMOV DX,304HMOV AX,40 ;计数器 1 初值为 40,25ms*40=1sOUT DX,AL;8259 初始化 偶地址:3A0H 奇地址:3A8HMOV DX,3A0H ;写 ICW1,写入偶地址MOV AL,13HOUT DX,

5、ALMOV DX,3A8H ;写 ICW2,写入奇地址MOV AL,08H ;IR0 的中断类型号为 08HOUT DX,ALMOV DX,3A8H ;写 ICW4,写入奇地址MOV AL,05H ;主片,8259 工作在 80X86 中OUT DX,AL;设置 8259 中断向量MOV AX,OFFSET INTERMOV BX,20H ;08H*4MOV BX,AXMOV AX,SEG INTERMOV BX+2,AX;开放 IRQ0MOV DX,3A8HMOV AL,11111110B ;开放 IRQ0OUT DX,AL;判断 G 键或 S 键是否按下G: 3STINOPCALL INP

6、UTCALL DELAYCMP AL,0D7H ;判断 G 键是否按下,若按下同时设置闹铃时间JNZ SNOT STOPCALL INPUTCALL DELAYCALL ALARM ;设定闹铃子程序JMP GS: CMP AL,0B7HJNZ GMOV STOP,0FFH;设置时间 ;设置小时MOV CX,2JMP H1H2:CMP AL,SIJZ H3INC SIINC DILOOP H2POP CXJMP H1H3:POP CXMOV AL,DI ;AL 中内容为所按键的键面值CMP CX,2JNZ H4;CX=2 设置十位,否则设置个位CMP AL,2JA H1PUSH AXPUSH B

7、XMOV DX,208HIN AL,DX4MOV BL,ALAND BL,0FCHAND AL,03HNOT ALAND AL,BLADD AL,01HOUT DX,ALPOP BXPOP AXMOV AH,ALLEA BX,TAB1 ;查找七段代码值XLATMOV DX,200H ;送数码管时的十位OUT DX,ALMOV DL,AHMOV AL,10MUL DLMOV HOUR,ALCALL DELAYJMP H6H1:PUSH CXCALL INPUTCALL DELAYLEA SI,KEYCODLEA DI,KEYVALMOV CX,12JMP H2H4: CALL DELAYPUSH

8、 AXPUSH BXMOV DX,208HIN AL,DXMOV BL,ALAND BL,0F3HAND AL,0CHNOT ALAND AL,BLADD AL,04HOUT DX,AL5POP BXPOP AX CMP DL,2JNZ H5CMP AL,4JA H1H5:MOV AH,ALLEA BX,TAB1XLATMOV DX,204H ;送数码管时的个位OUT DX,ALADD HOUR,AHCALL DELAYH6: LOOP H1;设置分钟MOV CX,2JMP M1M2:CMP AL,SIJZ M3INC SIINC DILOOP M2POP CXJMP M1M3:POP CXM

9、OV AL,DI ;AL 中内容为所按键的键面值CMP CX,2JNZ M4 ;CX=2 设置十位,否则设置个位CMP AL,5JA M16PUSH AXPUSH BXMOV DX,209HIN AL,DXMOV BL,ALAND BL,0FCHAND AL,03HNOT ALAND AL,BLADD AL,01HOUT DX,ALPOP BXPOP AXMOV AH,ALLEA BX,TAB1 ;查找七段代码值XLATMOV DX,201H ;送数码管分的十位OUT DX,ALMOV DL,AHMOV AL,10MUL DLMOV MINUTE,ALCALL DELAYJMP M6M1:PU

10、SH CXCALL INPUTCALL DELAYLEA SI,KEYCODLEA DI,KEYVALMOV CX,12JMP M2M4: CALL DELAYPUSH AXPUSH BXMOV DX,209HIN AL,DXMOV BL,ALAND BL,0F3HAND AL,0CHNOT AL7AND AL,BLADD AL,04HOUT DX,ALPOP BXPOP AXCMP DL,5JNZ M5CMP AL,9JA M1M5:MOV AH,ALLEA BX,TAB1XLATMOV DX,205H ;送数码管分的个位OUT DX,ALADD MINUTE,AHCALL DELAYM6:

11、 LOOP M1;设置秒钟MOV CX,2JMP S1S2:CMP AL,SIJZ S3INC SIINC DILOOP S2POP CXJMP S1S3:POP CXMOV AL,DI ;AL 中内容为所按键的键面值CMP CX,28JNZ S4 ;CX=2 设置十位,否则设置个位CMP AL,5JA S1PUSH AXPUSH BXMOV DX,20AHIN AL,DXMOV BL,ALAND BL,0FCHAND AL,03HNOT ALAND AL,BLADD AL,01HOUT DX,ALPOP BXPOP AXMOV AH,ALLEA BX,TAB1 ;查找七段代码值XLATMOV

12、 DX,202H ;送数码管秒的十位OUT DX,ALMOV DL,AHMOV AL,10MUL DLMOV SECOND,ALCALL DELAYJMP S6S1:PUSH CXCALL INPUTCALL DELAYLEA SI,KEYCODLEA DI,KEYVALMOV CX,12JMP S2S4: CALL DELAYPUSH AXPUSH BXMOV DX,20AHIN AL,DXMOV BL,AL9AND BL,0F3HAND AL,0CHNOT ALAND AL,BLADD AL,04HOUT DX,ALPOP BXPOP AXCMP DL,5JNZ S5CMP AL,9JA

13、S1S5:MOV AH,ALLEA BX,TAB1XLATMOV DX,206H ;送数码管秒的个位OUT DX,ALADD SECOND,AHCALL DELAYS6: LOOP S1MOV DX,208HMOV EAX,0A0A0A0AHOUT DX,EAXMOV STOP,0JMP G;行扫描法读取键入值INPUT PROCPUSH BXPUSH DXWT: MOV AL,00HMOV DX,360HOUT DX,ALNOPNOPMOV DX,360HIN AL,DXAND AL,0FHCMP AL,0FHJZ WT ;al 全为 0,说明无键按下10NOPNOPMOV DX,360H

14、;再次确认是否有键按下IN AL,DXAND AL,0FHCMP AL,0FHJZ WTMOV CX,3MOV BL,0FEHNEXT:MOV AL,BLMOV DX,360HOUT DX,ALNOPNOPIN AL,DXAND AL,0FHCMP AL,0FHJNZ KEYROL BL,1LOOP NEXTJMP WTKEY:SHL BL,4OR AL,BLCALL RELEASEPOP OP BXRETINPUT ENDP;设定闹钟ALARM PROCPUSH CXPUSH AXPUSH DXMOV CX,2JMP HH1HH2:CMP AL,SIJZ HH311INC SIINC DIL

15、OOP HH2POP CXJMP HH1HH3:POP CXMOV AL,DI ;AL 中内容为所按键的键面值CMP CX,2JNZ HH4;CX=2 设置十位,否则设置个位CMP AL,2JA HH1MOV AH,ALLEA BX,TAB1 ;查找七段代码值XLATMOV DX,200H;送数码管时的十位OUT DX,ALCALL DELAYMOV DL,AHMOV AL,10MUL DLMOV HHOUR,ALCALL DELAYJMP HH6HH1:PUSH CXCALL INPUTCALL DELAYLEA SI,KEYCODLEA DI,KEYVALMOV CX,12JMP HH2HH4: CALL DELAYCMP DL,212JNZ HH5CMP AL,4JA HH1HH5:MOV AH,ALLEA BX,TAB1XLATMOV DX,204H ;送数码管时的个位OUT DX,ALCALL DELAYADD HHOUR,AH ;将闹铃值保存在内存中CALL DELAYHH6: LOOP HH1;设置分钟MOV CX,2JMP MM1MM2:CMP AL,SIJZ MM3INC SIINC DILOOP MM2POP CXJMP MM1MM3:POP CX

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

当前位置:首页 > 办公文档 > 解决方案

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