![数字时钟汇编程序解析_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-6/11/fde08d77-a9b3-485a-83ac-508c792eaf0f/fde08d77-a9b3-485a-83ac-508c792eaf0f1.gif)
![数字时钟汇编程序解析_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-6/11/fde08d77-a9b3-485a-83ac-508c792eaf0f/fde08d77-a9b3-485a-83ac-508c792eaf0f2.gif)
![数字时钟汇编程序解析_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-6/11/fde08d77-a9b3-485a-83ac-508c792eaf0f/fde08d77-a9b3-485a-83ac-508c792eaf0f3.gif)
![数字时钟汇编程序解析_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-6/11/fde08d77-a9b3-485a-83ac-508c792eaf0f/fde08d77-a9b3-485a-83ac-508c792eaf0f4.gif)
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、DISPFIRST EQU 30H;首址存放单元BELL EQU P1.7;中断入口程序 ORG 0000H; LJMP START; ORG 0003H; RETI ; ORG 000BH; LJMP INTT0; ORG 0013H; RETI ; ORG 001BH; LJMP INTT1; ORG 0023H; RETI ;主程序开始 START: LCALL ST ;上电显示初值 MOV R0,#00H; MOV R7,#80H; CLEARDISP: MOV R0,#00H; INC R0 DJNZ R7,CLEARDISP MOV 20H,#00H; MOV 7AH,#0AH;
2、MOV TMOD,#11H; MOV TL0,#0B0H; MOV TH0,#3CH; MOV TL1,#0B0H; MOV TH1,#3CH; SETB EA; SETB ET0; SETB TR0; MOV R4,#14H; MOV DISPFIRST,#70H;以下为主程序循环 START1: LCALL DISPLAY; JNB P1.0,SETMM1; JNB P1.1,FUNSS;P1.1 做减 1 操作 JNB P1.3,TSFUN;定时闹铃设置 AJMP START1;以下为闹铃时间设定程序,按 P1.3进入设定TSFUN: LCALL DS20MS JB P1.3,START
3、1 WAIT113: JNB P1.3,WAIT113 ;等待键释放 JB 05H,CLOSESP;若闹铃已开,则关闹铃MOV DISPFIRST,#50H;进入闹铃设定程序 MOV 50H,0CH; -” MOV 51H,#0AH;灭 DSWAIT: SETB EA LCALL DISPLAY JNB P1.2QSFINC;分力卩 1 JNB P1.0,DSDEC;分减 1 JNB P1.3,DSSFU;进入时调整 AJMP DSWAIT; CLOSESP: CLR 05H;关闹钟标志 CLR BELL AJMP START1 DSSFU: LCALL DS20MS; JB P1.3QSWA
4、IT LJMP DSSFUNN ;进入时调整 SETMM1: LJMP SETMM ;转到时间调整程序 DSFINC: LCALL DS20MS JB P1.2QSWAIT DSWAIT12: LCALL DISPLAY JNB P1.2QSWAIT12 CLR EA MOV R0,#53 LCALL ADD1;闹铃设定分加1 MOV A,R3;分数据进入A CLR C ;清进位标志CJNEA,#60H,ADDHH22 ADDHH22: JC DSWAIT; ACALL CLR0; AJMP DSWAIT DSDEC:LCALL DISPLAY JNB P1.0QSWAIT DSWAITEE:
5、 LCALL DISPLAY JNBP1.0QSWAITEE CLR EA MOV R0,#53H LCALL SUB1; 闹铃设定分减 1 LJMPDSWAIT ;*1子程序* ADD1: MOV A,R0;取当前即使单元数据到 A DECR0;指向前一地址SWAP A; A中高四位与低四位数据交换 ORL A,R0;前一地址 中的数据放入A中低四位ADD A,#01H; DA A;十进制调整MOV R3,A;移入R3寄 存器ANL A,#0FH;高4位变成0 MOV R0,A;放回前一地址单元 MOV A,R3;取回R3中暂存的数据INC R0;指向当前地址单元SWAP A; A中数据高四
6、位与第四位交 换ANL A,#OFH;高四位变成0 MOV R0,A;数据放入当前地址单元 RET;分减1 子程序 SUB1: MOV A,R0; DEC R0;指向前一地址 SWAP A; ORL A,R0; JZ SUB11 DEC A; SUB111: MOV R3,A; ANL A,#0FH; CLR C; SUBB A,#0AH;SUB1111: JC SUB1110; MOV R0,#09H; SUB110: MOV A,R3; INC R0; SWAP A; ANL A,#0FH; MOV R0,A; RET SUB11: MOV A,#59H AJMP SUB111; SUB1
7、110: MOV A,R3; ANL A,#0FH; MOV R0,A; AJMP SUB110;时减 1 子程序 SUBB1: MOV A,R0; DEC R0; SWAP A; ORL A,R0; JZ SUBB11; DEC A; SUBB111:MOV R3,A; ANL A,#0FH; CLR C; SUBB A,#0AH; SUBB1111: JC SUBB1110; MOV R0,#09H; SUBB110: MOV A,R3; INC R0; SWAP A; ANL A,#0FH; MOV R0,A; RET SUBB11: MOV A,#23H; AJMP SUBB111;
8、SUBB1110: MOV A,R3; ANL A,#0FH; MOV R0,A; AJMP SUBB110;清零程序 对计时单元复 0 用 CLR0: CLR A; MOV R0,A; DEC R0; MOV R0,A; RET ;当调试按键按下时进入此程序 SETMM: CLR ET0; CLR TR0; LCALL DL1S; LCALL DS20MS JB P1.0,CLOSEDIS; MOV R2,#06H; MOV 70H,#00H; MOV 71H,#00H; SETB ET1; SETB TR1; SET2: JNB P1.0,SET1 SETB 00H; SET4: JB P
9、1.0,SET3; LCALL DL05S; LCALL DS20MS; JNB P1.0,SETHH; MOV R0,#77H; LCALL ADD1; MOV A,R3; CLR C; CJNE A,#60H,HHH; HHH: JC SET4; LCALL CLR0; CLR C; AJMP SET4; CLOSEDIS: SETB ET0; SETB TR0; CLOSE: JB P1.0,CLOSE LCALL DS20MS; JB P1.0,CLOSE; WAITH: JNB P1.0,WAITH; LJMP START1; SETHH: CLR 00H; SETB 01H; SE
10、THH1: JNB P1.0,SET5; SET6: JB P1.0,SET7; LCALL DL05S; LCALL DS20MS; JNB P1.0,SETOUT; MOV R0,#79H; LCALL ADD1; MOV A,R3; CLR C; CJNE A,#24,HOUU; HOUU: JC SET6; LCALL CLR0; AJMP SET6; SETOUT: JNB P1.0,SETOUT1; LCALL DS20MS; JNB P1.0,SETOUT; CLR 01H; CLR 00H; CLR 02H; CLR TR1; CLR ET1; SETB TR0; SETB E
11、T0; LJMP START1; SET1: LCALL DISPLAY; AJMP SET2; SET3: LCALL DISPLAY; JNB P1.1,FUNSUB; AJMP SET4; SET5: LCALL DISPLAY; AJMP SETHH1; SET7: LCALL DISPLAY; JNB P1.1,FUNSUBB; AJMP SET6; SETOUT1: LCALL DISPLAY; AJMP SETOUT;分减 1 程序 FUNSUB: LCALL DS20MS; JB P1.1,SET41; FUNSUB1: JNB P1.1,FUNSUB1;MOV R0,#77H
12、; LCALL SUB1; LJMP SET4; SET41: LJMP SET4;时减 1 程序FUNSUBB: LCALL DS20MS; JB P1.1,SET61; FUNSUBB1: JNB P1.1,FUNSUBB1;MOV R0,#79H LCALL SUBB1; LJMP SET6; SET61: LJMPSET6 ;*1s计时程序*;T0中断服务程序INTT0:PUSH ACC; PUSH PSW ; CLR ET0 ; CLR TR0 ; MOV A,#0B7H; ADD A,TL0; MOVTL0,A; MOV A,#3CH; ADDC A,TH0; MOV TH0,A;
13、 SETB TR0; DJNZ R4,OUTT0;ADDSS: MOV R4,#14H; CPL 07H; MOV R0,#71H; ACALL ADD1; MOV A,R3; CLRC; CJNEA,#60H,ADDMM ADDMM: JC OUTT0; ACALL CLR0; LCALL DS20MS; SETB 08H; MOV R0,#79H; ACALL ADD1; MOV A,R3; CLR C; CJNE A,#24H,HOUR; HOUR: JC OUTT0; ACALL CLR0; OUTT0: MOV 72H,76H; MOV 73H,77H; MOV 74H,78H; M
14、OV 75H,79H; LCALL BAOJ POP PSW; POP ACC; SETB ET0;RETI ;* 闪烁调时功能* ;T1中断服务程序,用作时间调整时调整单元闪烁指示 INTT1: PUSH ACC PUSH PSW JB 03H,MMFUN; MOVTL1,#0B0H; MOV TH1,#3CH; DJNZ R2,INTT1OUT MOV R2,#06H; CPL 02H JB 02H,FLASH1 MOV 72H,76H MOV 73H,77H MOV 74H,78H MOV 75H,79H INTT1OUT: POP PSW ;恢复现场 POP ACC RETI ;中断推
15、出 FLASH1: JB 01H,FLASH2 MOV 72H,7AH MOV 73H,7AH MOV 74H,78H MOV 75H,79H AJMPINTT1OUT FLASH2: MOV 72H,76H MOV 73H,77H MOV 74H,7AH MOV 75H,7AH AJMP INTT1OUT MMFUN: CLR TR1 MOV A,#0F7H ADD A,TL1 MOV TL1,A MOV A,#0D8H ADDC A,TH1 MOV TH1,A SETB TR1 MOV R0,#61H ACALL ADD1 CLR C MOV A,R3 JZ FSS1 AJMP OUTT0
16、1 FSS1: ACALL CLR0; MOV R0,#63H;ACALL ADD1; MOV A,R3; CLR C CJNE A,#60H,ADDHH1 ADDHH1: JC OUTT01;LCALL CLR0; MOV R0,#65H; ACALL ADD1; OUTT01: POP PSW POP ACCRETI.*显示程序* 显示数据在70H75H单元内,用6位LED共阳数码管显示,P0 口输出段码数据,P2 口作扫描控制,每个LED数码管亮1ms时间再逐位循环DISPLAY: MOV R1,#30H ;指向显示首地址MOV R5,#0FEH ;扫描控制字初值 PLAY: MOV A
17、,R5 ;扫描字放入 A MOV P2,A ;从 P2 口输出MOV A,R1 ;取显示数据到 A MOV DPTR,#TAB ;取段码表地址 MOVC A,A+DPTR ;查显示数据对应段码 MOV P0,A ;段码放入P0 口 MOV A,R5 ; JB ACC.2丄OOP5 ;小数点处理 CLR P0.7 ; LOOP5: JB ACC.4,LOOP6 ; CLR P0.7 ; LOOP6: LCALL DL1MS ;显示 1ms INC R1 MOV A,R5 JNB ACC.5,ENDOUT ; 次显示结束 RL A ; MOV A,R5 MOV PO,#OFFH ; AJMP PL
18、AY ;调回 play 循环 ENDOUT: MOV R2,#0FFH 次显示结束,p2 口复位 MOV P0,#0FFH ; RET ; TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FEH,88H,0BFH; ;SDISPLAY, 上电显示子程序;不带小数点显示,有 “ A”显示功能SDISPLAY: MOVR1,DISPFIRST MOV R5,#0FEH; SPLAY: MOV A,R5; MOV P2,A; MOV A,R1;MOV DPTR,#TABS MOVC A,A+DPTR; MOV P0,A; MOV A,R5;
19、 LCALL DL1MS;INC R1; MOV A,R5; JNB ACC.5,ENDOUTS; RL A; MOV R5,A; AJMP SPLAY; ENDOUTS: MOV P2,#0FFH; MOV P0,#0FFH; RET TABS: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0C6H,0BFH,88H ;显示 数 0,1,2,3,4,5,6,7,8,9,不亮,c -, A”存数 0,1,2,3,4,5,6,7,8,9 , 0AH , 0BH ,“0CH , “0DH STAB: DB 00H 上电显示初值 ST:
20、MOV R0,#40H; MOV R2,#20H;MOV R3,#00H; CLR A; MOV DPTR,#STAB SLOOP: MOVC A,A+DPTR MOV R0,A MOV A,R3; INC A MOV R3,A INC R0 DJNZ R2,SLOOP; RET ;延时程序, LED 显示程序用 DL1MS: MOV R6,#14H DL1: MOV R7,#19H DL2: DJNZ R7,DL2DJNZ R6,DL1 RET ;20ms延时程序,采用调用显示子程序,以改善 LED的显示闪 烁现象 DS20MS: CLR BELL LCALL DISPLAY LCALL D
21、ISPLAY LCALLDISPLAY SETB BELL RET ;延时程序,用作按键时间的长短判断 DL1S: LCALLDL05S LCALL DL05S RET DL05S: MOV R3,#20H DL05S1: LCALL DISPLAYDJNZ R3,DL05S1 RET ;以下为闹铃时间设定程序中的时调整程序 DSSFUNN:LCALL DISPLAY; JNB P1.3,DSSFUNNMOV 50H,#0AH; MOV 51H,#0CH; WAITSS: SETB EA LCALL DISPLAY; JNB P1.2,FFFF; JNB P1.0QDDD; JNB P1.3,OOOO; JNB P1.1,ENA; AJMP WAITSS 0000: LCALL DS20MS; JB P1.3,WAITSS; DSSFUNNM: LCALL DISPLAY; JNB P
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 单一来源采购合同范本
- 房屋租赁的合同范本
- 农产品采购合同范本专业版
- 钢材采购合同书-供需合同
- 社交电商平台的用户信息安全保障
- 生物科技企业投资风险评估与决策支持
- 现代办公管理技术与管理相结合的智慧
- 2024-2025学年高中物理第七章第5节探究弹性势能的表达式练习含解析新人教版必修2
- 现代厂区的人性化空间设计
- 电信业务与移动支付携手共进开启数字化生活新篇章
- GB/T 45177-2024人工光型植物工厂光环境技术规范
- 2025年中考语文模拟试卷(含答案解析)
- 2025版校园乐器销售代理与服务协议3篇
- 2024-2025年天津河西区七年级上学期期末道德与法治试题(含答案)
- 2025年个人学习领导讲话心得体会和工作措施例文(6篇)
- 2025大连机场招聘109人易考易错模拟试题(共500题)试卷后附参考答案
- 2020-2025年中国中小企业行业市场调研分析及投资战略咨询报告
- 物流中心原材料入库流程
- 长沙市2025届中考生物押题试卷含解析
- 预制板粘贴碳纤维加固计算表格
- 2024-2025学年广东省深圳市宝安区八年级(上)期末语文试卷
评论
0/150
提交评论