利用查询法来用单片机做一个简单秒表

用51单片机的定时/计数器T0计时功能,作为秒计数时间,当一秒产生时,秒计数加1,记到六十自动从0开始。十位数由接在P0的数码管显示,个位数由接在P2的数码管显示出来。
因为单片机的计时器T0最大定时只有65536μs,所以我们要定时1s,可以通过设置定时器T0一次计时50ms,计时20次刚好是1s。
代码如下:
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:
MOV R0,#00H; //秒数
MOV R1,#00H;//定时器次数
MOV TMOD,#01H;//定时器0工作在方式1
MOV TH0,#3CH;//设置初值
MOV TL0,#0B0H;
SETB TR0;//定时器0允许工作
SHOW:
MOV A,R0;//显示秒数
MOV B,#10;
DIV AB;
MOV DPTR,#TABLE;
MOVC A,@A+DPTR;
MOV P0,A;
MOV A,B;
MOVC A,@A+DPTR;
MOV P2,A;
WAIT;
JNB TF0,WAIT;
CLR TF0;
MOV TH0,#3CH;
MOV TL0,#0B0H;
INC R1;
CJNE R1,#20,NEXT1;
MOV R1,#00H;
INC R0;
CJNE R0,#60,NEXT2;
MOV R0,#00H;
NEXT2:
LJMP SHOW
NEXT1:
LJMP WAIT;
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
当然,可以在这个程序基础上增加暂停,重置等功能。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值