+数字式电子秒表

上传人:第*** 文档编号:38776958 上传时间:2018-05-07 格式:DOC 页数:7 大小:49KB
返回 下载 相关 举报
+数字式电子秒表_第1页
第1页 / 共7页
+数字式电子秒表_第2页
第2页 / 共7页
+数字式电子秒表_第3页
第3页 / 共7页
+数字式电子秒表_第4页
第4页 / 共7页
+数字式电子秒表_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《+数字式电子秒表》由会员分享,可在线阅读,更多相关《+数字式电子秒表(7页珍藏版)》请在金锄头文库上搜索。

1、实验二实验二 数字式电子秒表数字式电子秒表一、实验条件:一、实验条件: 1.提供 EAT598 仿真机。 二、考核内容:二、考核内容: 用单片机构成数字式电子秒表。 1.系统功能: a.用 8 位 LED 数码管构成电子秒表,分别显示时、分、秒、毫秒。 b.通过按键,实现各种人机对话功能。 2.具体要求: a.采用 AEDK5196 仿真机为硬件主体,显示电路可利用仿真机上的 8279 芯片及已配置的 数码管,显示格式要求为 XX.XX.XX.XX.。 b.通过按键,实现下列人机对话功能: 按 A 键,电子秒表开始计时。 按 B 键,输入时钟初值。 按 C 键,时钟清零。 按 D 键,电子秒表

2、停止计时。 按 E 键,回到监控。 三、考核要求:三、考核要求: 1.按上述具体要求,完成系统软件设计,并提交程序框图及程序清单(以软盘提供) 。 2.完成系统软、硬件综合调试,实现预定的功能。 四、实验程序四、实验程序 ORG0000H AJMPSTART ORG001BH AJMPCTCT1 ORG0040H START:MOV SP,#60H LCALL P8279 ;8279 初始化 MOV TMOD,#10H ;设定时器/计数器 1 为定时方式,工作方式 1 MOV TL1,#00H;定时 10 毫秒 MOV TH1,#0DCH MOV R0,#50H ;时钟缓存区清零 MOV R2

3、,#08H CLR A LOOP0: MOV R0,A INC R0 DJNZR2,LOOP0 SETBEA ;允许中断 SETBET1 WAIT:LCALL GETKEY ;读键盘 CJNEA,#0FFH,CONT;判断是否有键输入 MOV A,B ;键值送 ACJNEA,#3CH,KEY_A;输入键是C键,转 CLEAR T LCALL CLEAR_T SJMPWAIT KEY_A: CJNEA,#3AH,KEY_D ;输入键是A键,转 START T LCALL START_T SJMPWAIT KEY_D: CJNEA,#3DH,KEY_B ;输入键是D键,转 STOP T LCALL

4、 STOP_T SJMPWAIT KEY_B: CJNEA,#3BH,KEY_E LCALL SET_T SJMPWAIT ;输入键是B键,转 SET T KEY_E: CJNEA,#3EH,CONT ;输入键是E键,返监控 SJMP$ ;等待(回到监控) CONT:LCALL DISPLAY ;显示时间 SJMPWAIT ;循环 CLEAR_T: ;时间清零子程序 CLR TR1 ;关计数器 MOV R0,#50H ;时钟缓存区清零 MOV R2,#08H CLR A CLEAR_LOOP: MOVR0,A INC R0 DJNZR2,LOOP0 LCALL DISPLAY ;显示 RET

5、START_T: SETB TR1 ;电子钟计时子程序 RET STOP_T: ;电子钟停止计时子程序 CLR TR1 RET SET_T: ;设置初值子程序 CLR TR1 ;关计数器 MOVR1,#50H MOVR2,#08H LOOP1: LCALL GETWORD CJNEA,#0FFH,INVALID ;若为非法输入,则转时间清零 MOV A,B MOV R1,A LCALL DISPLAY INC R1 DJNZR2,LOOP1RET INVALID: LCALLCLEAR_T ;时间清零(刚才输入无效,重新输入) LCALL DISPLAY RET P8279: ;8279 初始

6、化子程序 PUSHDPH ;保护现场 PUSHDPL PUSHACC MOVDPTR,#0F239H MOVA,#00H ;置 8279 工作方式(8 个字符显示,; 左入口编码扫描键盘,双键锁定) MOVXDPTR,A MOVA,#2FH ;置键盘扫描速率 MOVXDPTR,A MOVA,#0C1H ;清除 LED 显示 MOVXDPTR,A POP ACC ;恢复现场 POP DPL POP DPH RET GETWORD: ;判有效按键子程序 WKEY1:LCALL GETKEY ;读键盘 CJNEA,#0FFH,WKEY1 ;无键输入,则再读CJNE R1,#50H,PDUAN1 MO

7、VA,B ADD A,#0CEH JC ERROR ;判断输入键号是否大于 1 MOV A,B SUBBA,#30H JC ERROR ;判断输入键号是否小于 0 SJMP ZQUE1PDUAN1: CJNE R1,#51H,PDUANDDEC R1CJNE R1,#02H,TTMOV A,B ADD A,#0CEH JC ERROR ;判断输入键号是否大于 1 MOV A,B SUBBA,#30H JC ERROR ;判断输入键号是否小于 0 INC R1 SJMP ZQUE1 TT: INC R1SJMP PDUAN5 PDUAN5: MOV A,B ADDA,#0C6H JC ERROR

8、 ;判断输入键号是否大于 9 MOVA,B SUBBA,#30H JC ERROR ;判断输入键号是否小于 0PDUAND:CJNE R1,#52H,PDUAN2 MOVA,B ADDA,#0CAH JC ERROR ;判断输入键号是否大于 5 MOVA,B SUBBA,#30H JC ERROR ;判断输入键号是否小于 0 SJMP ZQUE1PDUAN2: CJNE R1,#54H,PDUAN3 MOV A,B ADD A,#0CAH JC ERROR ;判断输入键号是否大于 5 MOVA,B SUBBA,#30H JC ERROR ;判断输入键号是否小于 0 SJMP ZQUE1PDUA

9、N3: MOV A,B ADDA,#0C6H JC ERROR ;判断输入键号是否大于 9 MOVA,B SUBBA,#30H JC ERROR ;判断输入键号是否小于 0 ZQUE1: MOVB,A ;键号值存 B MOVA,#0FFH ;置合法输入标志 RET ERROR: MOV A,#00H ;置非法输入标志 RET GETKEY: ;读取键值子程序PUSHDPH ;保护现场 PUSHDPL PUSHPSWMOVDPTR,#0F239H MOVXA,DPTR ;读 8279 状态 ANL A,#07H ;屏蔽 D7D3 JNZ GETVAL ;判断是否有键输入 MOVA,#00H ;置

10、标志(无键输入) SJMPNKBHIT GETVAL: MOVA,#40H ;读 FIFO RAM 命令 MOVXDPTR,A MOV DPTR,#0F238H MOVXA,DPTR ;读键值 ANL A,#3FH ;屏蔽 SHIFT 和 CTRL 键 MOV DPTR,#KEYCODE ;置键码表起始地址 MOVCA,A+DPTR ;查表 MOV B,A ;置键值 MOVA,#0FFH ;置标志(有键输入) NKBHIT: POP PSW POP DPL POP DPH RET KEYCODE: DB30H,31H,32H,33H,34H,35H,36H,37H DB 38H,39H,3AH

11、,3BH,3CH,3DH,3EH,3FH DISPLAY: ;8 个数码管显示子程序 MOV R0,#50H MOV R4,#07H LOOP2: MOV A,R0 MOV R5,A LCALL DISLED INC R0 MOVA,R0 ADDA,#10H MOVR5,A DEC R4 LCALL DISLED INC R0 DECR4 CJNER4,#0FFH,LOOP2 RETDISLED: ;显示字符子程序 PUSHDPH ;保护现场 PUSHDPL PUSHACCMOV A,#80H ;置显示起始地址 ADD A,R4 ;加位置偏移量 MOV DPTR,#0F239H MOVXDPT

12、R,A ;设置显示位置 MOV DPTR,#LEDSEG ;置显示常数表起始位置 MOV A,R5 MOVCA,A+DPTR ;查表 MOVDPTR,#0F238H MOVXDPTR,A ;显示数据 POP ACC POP DPL POP DPH RET LEDSEG:DB 3FH,06H,5BH,4FH ;0,1,2,3 DB 66H,6DH,7DH,07H ;4,5,6,7 DB 7FH,6FH,77H,7CH, ;8,9,A,B DB 39H,5EH,79H,71H ;C,D,E,F DB 0BFH,86H,0DBH,0CFH ;0.,1.,2.,3. DB 0E6H,0EDH,0FDH

13、,87H ;4.,5.,6.,7. DB 0FFH,0EFH,0F7H,0FCH ;8.,9.,A.,B. DB 0B9H,0DEH,0F9H,0F1H ;C.,D.,E.,F.CTCT1: ;CTC T1 中断服务子程序 PUSHDPH ;保护现场 PUSHDPL PUSHACC PUSHPSW CLR TR1 MOVTL1,#00H ;定时 10 毫秒 MOVTH1,#0DCH SETBTR1 MOV R0,#57H ;时钟累进程序 MOVDPTR,#TAB MOVR2,#08H LOOP3: INC R0 MOV A,R0 MOV B,A CLR A MOVCA,A+DPTR CJNEA,B,NEXT MOV R0,#00H DEC R0 INC DPTR DJNZR2,LOOP3NEXT:MOVR0,#50H ;判是否到 24 小时 MOVA,R0 SWAPA INC R0 ADDA,R0 CJNEA,#24H,EXIT MOV5

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

当前位置:首页 > 中学教育 > 教学课件 > 初中课件

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