60秒秒表(精确到0.1S)

2022-05-23 22:51:28   第一文档网     [ 字体: ] [ 阅读: ] [ 文档下载 ]
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。下载word有问题请添加QQ:admin处理,感谢您的支持与谅解。点击这里给我发消息

#第一文档网# 导语】以下是®第一文档网的小编为您整理的《60秒秒表(精确到0.1S)》,欢迎阅读!
秒表,精确,0.1

本文是一个60秒秒表计时程序(精到到0,1s,开始键、暂停键和复位键为独立式键盘,采用数码管动态扫描显示方法(共阴极数码管,阴极经非门后连接位码接口)

org 0 ljmp main org 0bh ljmp int

main:mov p1,#3fh ;p1口接段码 mov p2,#1 ;p2口接位码 call delay1 mov p1,#0bfh mov p2,#2 call delay1 mov p1,#3fh mov p2,#4

call delay1 ;初始值为00.0 jnb p3.0,start ;秒表计时开始按键 ljmp main

start:mov r0,#0 ;0.0~9.9计数初值 mov r3,#0 ;中断次数计数初值 mov r4,#0 ;十位计数初值 mov dptr,#tab ;附表头地址

mov tmod,#01h ;定时器0工作方式1 mov th0,#0fch ;设置1ms定时初值 mov tl0,#18h

setb ea ;cpu开中断

setb et0 ;开定时器0中断 setb tr0 ;定时器开始计时 loop2:mov a,r3

cjne a,#100,loop ;判断是否到100ms inc r0 ;100ms计数值加1 mov r3,#0 ;中断计数初值清0 loop:mov a,r0

cjne a,#100,loop1 ;判断计数值是否到100 mov r0,#0 ;100则清0 inc r4 ;十位计数值加1 mov a,r4

cjne a,#6,loop1 ;判断十位计数值是否为6 mov r4,#0 ;6则清0

loop1:jnb p3.1,loop3 ;秒表暂定按键 mov a,r0 mov b,#10

div ab ;将计数值拆成个位和小数 mov r1,a ;个位存入r1


mov r2,b ;小数存入r2 mov a,r1

movc a,@a+dptr ;个位数查表 orl a,#80h ;显示小数点 mov p1,a ;段码输出 mov p2,#2 ;位码输出 call delay mov a,r2

movc a,@a+dptr mov p1,a

mov p2,#1 call delay mov a,r4

movc a,@a+dptr mov p1,a

mov p2,#4 call delay ljmp loop2

loop3:jnb p3.2,main mov a,r0 mov b,#10 div ab mov r1,a mov r2,b mov a,r1

movc a,@a+dptr orl a,#80h mov p1,a mov p2,#2 call delay1

mov a,r2

movc a,@a+dptr mov p1,a mov p2,#1 call delay1

mov a,r4

movc a,@a+dptr mov p1,a mov p2,#4 call delay1 ljmp loop3

int: clr ea ;小数位输出 ;十位输出 ;秒表复位按键;中断程序


push psw

mov th0,#0fch mov tl0,#18h inc r3 pop psw setb ea reti

delay:mov r7,#100 djnz r7,$ ret

delay1:mov r6,#0 djnz r6,$ ret

tab:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh end


本文来源:https://www.dywdw.cn/f544b0b269dc5022aaea00c5.html

相关推荐
推荐阅读