秒表-八位数码管显示.doc

上传人:大米 文档编号:558455455 上传时间:2022-10-23 格式:DOC 页数:24 大小:165.50KB
返回 下载 相关 举报
秒表-八位数码管显示.doc_第1页
第1页 / 共24页
秒表-八位数码管显示.doc_第2页
第2页 / 共24页
秒表-八位数码管显示.doc_第3页
第3页 / 共24页
秒表-八位数码管显示.doc_第4页
第4页 / 共24页
秒表-八位数码管显示.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《秒表-八位数码管显示.doc》由会员分享,可在线阅读,更多相关《秒表-八位数码管显示.doc(24页珍藏版)》请在金锄头文库上搜索。

1、秒表-八位数码管显示1 ;* 2 ; 标题: 秒表-八位数码管显示(汇编) 3 ; 作者: wentao http:/ 4 ; http:/ 5 ; 日期: 2007.3.3 6 ; 软件: Keil A51 V8.00 7 ; 芯片: AT89X51 8 ; 说明: 实验板实测通过,数码管为8位共阳 9 ; 声明: 自用存档!另仅供需要的朋友参考,请勿用做不道德转载及商业用途! 10 ;* 11 12 dot_l equ 30h ;30单元存储百分之一秒值 13 dot_h equ 31h ;31单元存储十分之一秒值 14 sec_l equ 32h ;32单元存储秒个位值 15 sec_h

2、 equ 33h ;33单元存储秒十位值 16 min_l equ 34h ;34单元存储分个位值 17 min_h equ 35h ;35单元存储分十位值 18 hou_l equ 36h ;36单元存储时个位值 19 hou_h equ 37h ;37单元存储时十位值 20 21 dot equ 38h ;38单元为百分之一秒计数器(0.00s-0.99s) 22 sec equ 39h ;39单元为秒计数器(00s-59s) 23 min equ 40h ;40单元为分计数器(00m-59m) 24 hou equ 41h ;41单元为时计数器(00h-00h) 25 26 dis_b

3、equ 42h ;dis_b(42单元)作为位码选通数码管 27 dis_r equ 43h ;dis_r(43单元)为取段码时的偏移量 28 29 key_t equ 44h ;44单元为键按下的次数标记 30 31 K bit p1.4 ;K键与P1.4相连 32 33 org 0000h 34 ajmp start 35 org 000bh ;定时器0的中断入口地址 36 ajmp time0 ;跳到定时器0的中断服务程序处 37 org 001bh ;定时器1的中断入口地址 38 ajmp time1 ;跳到定时器1的中断服务程序处 39 org 0030h 40 start: 41

4、mov p2,#0xff ;关所有数码管 42 mov p1,#0xff ;p1为准双向口,作输入时先写1 43 44 mov dis_b,#0x7f ;初始选通P2.7口数码管 45 mov dis_r,#0 ;初始化偏移量为0 46 mov dot,#0 ;百分之一秒计数器清零 47 mov sec,#0 ;秒计数清零 48 mov min,#0 ;分计数清零 49 mov hou,#0 ;时计数清零 50 mov key_t,#0 ;键按下次数清零 51 52 mov tmod,#00010001b ;定时/计数器0、1工作于方式1 53 mov th0,#0xd8 ;预置定时常数555

5、36(d8f0),产生10ms时基信号 54 mov tl0,#0xf0 55 mov th1,#0xfc ;预置定时常数64536(fc18),产生1ms间隔用于动态显示 56 mov tl1,#0x18 57 58 setb ea ;开总中断 59 setb et0 ;定时/计数器0允许中断 60 setb et1 ;定时/计数器1允许中断 61 clr tr0 ;关定时/计数器0 62 setb tr1 ;开定时/计数器1 63 64 lop: 65 jb K,lop ;键(P1.4)未按下则返回 66 lcall d_10ms ;延时10ms消抖 67 jb K,lop ;是抖动则返回

6、重新扫描 68 jnb K,$ ;等待键松开 69 lcall key_to ;调用键处理部分 70 ajmp lop ;循环显示 71 72 key_to: ;键处理子程序 73 inc key_t ;键按下次数加1 74 mov a,key_t ;按下次数送入a 75 cjne a,#1,key_2 ;不是1次继续检测是否是第2次 76 setb tr0 ;第1次按下启动定时器0 77 ret 78 key_2: cjne a,#2,key_3 ;也不是2次继续检测是否是第3次 79 clr tr0 ;第2次按下关闭定时器0 80 ret 81 key_3: cjne a,#3,back

7、;也不为3则结束 82 mov dot,#0 ;第3次按下将四个计数器清零 83 mov sec,#0 84 mov min,#0 85 mov hou,#0 86 mov key_t,#0 ;按键次数清零 87 back: ret 88 ;- 89 time0: ;定时器0中断服务程序 90 push psw ;保护现场 91 push acc 92 93 inc dot ;百分之一秒计数器加1 94 mov a,dot ;计数器值送入a 95 cjne a,#100,over ;未计到100则返回继续计数 96 mov dot,#0 ;计到100后清零 97 inc sec ;秒计数器加1

8、(进位10ms*100=1s) 98 mov a,sec ;秒计数值送入a 99 cjne a,#60,over ;未计到60则返回继续计数 100 mov sec,#0 ;计到60后秒计数器清零 101 inc min ;分计数器加1(进位60s=1m) 102 mov a,min ;分计数值送入a 103 cjne a,#60,over ;未计到60则返回继续计数 104 mov min,#0 ;计到60后分计数器清零,重新计时 105 inc hou ;时计数器加1(进位60m=1h) 106 mov a,hou ;时计数器送入a 107 cjne a,#100,over ;未计到100则返回继续计数 108 mov hou,#0 ;计到100后清零 109 110 over: mov th0,#0xd8 ;重置定时常数 111 mov tl0,#0xf0 112 pop acc ;恢复现场 113 pop psw 114 reti ;中断返回 115 ;- 116 time1: ;定时器1中断服务程序 117 push psw ;保护现场 118 push acc 119 push b 120 ;以下是百分之一秒计数器值个位十位分开 121 mov a,dot ;百分之一秒计数器值送入a(被除数) 122

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

当前位置:首页 > 生活休闲 > 社会民生

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