完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
想让单片机的一个led闪烁500ms熄灭500ms,也达到目的了,可是对于程序的某个小地方有些不解,问题写在程序里面了。
#include "reg52.h" #define uint unsigned int typedef unsigned char uchar; ***it led=P2^1; uint i; void binter(); void main() { binter(); i=0; while(1) { if(TR0==1) i++; //(这个if语句删除后再在中断里加i++,载入单片机后能达到预期500ms,led变换一次,可是保留if语句就不行) if(i==10) { i=0; led=~led; } } } void binter() { EA=1; ET0=1; TR0=1; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TMOD=0x01; } void t50ms() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; //i++; } |
|
相关推荐
3个回答
|
|
IF(TR0==1)这个语句啥意思,你要达到什么目的呢
|
|
|
|
这个要查中断标志的数据了,有的中断标志是会在中断执行完后由硬件自动置0的,如果TR0是这类中断标志的话,那么 IF(TR0==1)就永远不会成立了
|
|
|
|
这个是中断标志,非可读,所以if语句无法做判断,也就没有办法进入到i++这个语句中去
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
787 浏览 0 评论
使用Keil建立完整的工程,并使用外部中断0触发数码管显示903
1476 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
1216 浏览 0 评论
900 浏览 0 评论
963 浏览 1 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11866 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 03:09 , Processed in 0.772923 second(s), Total 77, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号