单片机111条指令编程可以if(mubiao=(sn1=1&&sn3=1))这么编程吗?


#include<reg52.h>typedefunsignedcharu8;typedefunsignedintu16;sbitled=P2^0;voidtimer0I...
#include<reg52.h>typedef unsigned char u8;typedef unsigned int u16;sbit led=P2^0;void timer0Init(){TMOD=0x01;TH0=0xfc;TL0=0x18;ET0=1;EA=1;TR0=1;}void main(){timer0Init();while(1);}void timer0() interrupt 1{static u16 a;TH0=0xfc;TL0=0x18;a++;if(a==3000){led=~led;a=0;}}在主函数中,触发中断函数后,led灯每隔3秒亮或灭一次。后面的while(1)什么作用,死循环在那吗?不加while(1)就没有预期的效果,为什么,求大神解答。
展开
选择擅长的领域继续答题?
{@each tagList as item}
${item.tagName}
{@/each}
手机回答更方便,互动更有趣,下载APP
提交成功是否继续回答问题?
手机回答更方便,互动更有趣,下载APP
展开全部while(1)的作用是让单片机在没有中断响应时也保持程序执行,再准确些说是保持“空循环”,有兴趣的话可以看对应的汇编文件,一般是个JMP指令在不断绕圈。如果没有这个while(1)的话,main()函数执行完timer0Init()后单片机程序会继续向后执行,main()函数结束,程序接下来会不知道要干什么,有可能跑飞,也有可能重启,总之是失控了,所以为了让程序的运行可控,需要有这个while(1)。已赞过已踩过你对这个回答的评价是?评论
收起
展开全部timer0应该是个定时器,它随主程序的运行而运行。主程序结束,定时器也就结束了。所以主程序中的while(1)死循环在那里,以保证定时器的运行。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
为你推荐:
下载百度知道APP,抢鲜体验使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。扫描二维码下载
×个人、企业类侵权投诉
违法有害信息,请在下方选择后提交
类别色情低俗
涉嫌违法犯罪
时政信息不实
垃圾广告
低质灌水
我们会通过消息、邮箱等方式尽快将举报结果通知您。说明
做任务开宝箱累计完成0
个任务
10任务
50任务
100任务
200任务
任务列表加载中...

我要回帖

更多关于 单片机111条指令 的文章

 

随机推荐