完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
这是代码:#include
void main() { TMOD|=0x01; TH0=0x3c; //给一个初值;计数满了就使TF0=1; TL0=0xb0; TR0=1; while(1) { TH0=0x3c; //问题在这里:我的理解是进入了循环之后又开始计数,因为还没记满, TL0=0xb0; 往后执行代码, TF==1执行下面语句,完了循环回来; if(TF0==1) 重点来了:定时又重新从初值开始计,上次并没有记满所以TF0==1 { 还是初值时那次,TF0依然等于初值那次;然后依然会执行下面语句,直到 count++; 20次;会一 亮一闪; //谁能详细解答哈,虽然黑简单,谢谢; TF0=0; if(count==20) { count=0; P2=~P2; } } } |
|
相关推荐
7个回答
|
|
你确定这个是正确的代码吗,问题在于TF0不等于1的时候,TH0和TL0会不停的赋初值,这样TF0不可能会等于1。
|
|
|
|
楼上正解
|
|
|
|
这个程序有问题!
|
|
|
|
额,已解决了。
|
|
|
|
|
|
|
|
你这个程序是跑不起来的,要改成这样,道理2楼已解释。
#include unsigned char count=0; void main() { TMOD|=0x01; TH0=0x3c; //给一个初值;计数满了50ms就使TF0=1; TL0=0xb0; TR0=1; while(1) { // TH0=0x3c; //问题在这里:我的理解是进入了循环之后又开始计数,因为还没记满, // TL0=0xb0; //往后执行代码, TF==1执行下面语句,完了循环回来; if(TF0==1) //重点来了:定时又重新从初值开始计,上次并没有记满所以TF0==1 { //还是初值时那次,TF0依然等于初值那次;然后依然会执行下面语句,直到 count++; //20次;会一 亮一闪; //谁能详细解答哈,虽然黑简单,谢谢; TH0=0x3c; TL0=0xb0; TF0=0; if(count==20) { count=0; P2=~P2; } } } } |
|
|
|
#include
void main() { TMOD|=0x01; TH0=0x3c; TL0=0xb0; TR0=1; while(1) { if(TF0==1) { TH0=0x3c; TL0=0xb0; count++; TF0=0; if(count==20) { count=0; P2=~P2; } } } |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
157 浏览 0 评论
【每周推荐】采用11代Intel CPU,基于youyeetoo X1开发板搭建少儿AI智能STEAM积木平台
825 浏览 0 评论
2372 浏览 2 评论
【youyeetoo X1 windows 开发板体验】+ 影音处理和AI模型移植
2226 浏览 5 评论
I.MX6ULL-飞凌 ElfBoard ELF1板卡- 移植zbar的方法
1694 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
5713 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-23 17:32 , Processed in 0.535696 second(s), Total 74, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号