完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
用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 当然,可以在这个程序基础上增加暂停,重置等功能。 |
|
|
|
只有小组成员才能发言,加入小组>>
3278 浏览 9 评论
2955 浏览 16 评论
3455 浏览 1 评论
8987 浏览 16 评论
4050 浏览 18 评论
1102浏览 3评论
570浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
568浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2301浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1857浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 09:25 , Processed in 1.394120 second(s), Total 80, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号