永发信息网

C语言用keil编程,关于while

答案:2  悬赏:0  手机版
解决时间 2021-03-08 15:05
我们一般会在主函数(void main())中写while(1)死循环,我想知道写while和不写while有什么区别?

#include
unsigned int cnt=0;
void main()
{
TMOD=0x01;
TH0=0xFC;
TL0=0x67;
TR0=1;
EA=1;
ET0=1;
if(cnt==1000)
{
P1=0x0E;P0=0xfe;
}
else if(cnt==2000)
{
P1=0x0E;P0=0xfd;
}
else if(cnt==3000)
{
P1=0x0E;P0=0xfb;
}
else if(cnt==4000)
{
P1=0x0E;P0=0xf7;
}
else if(cnt==5000)
{
P1=0x0E;P0=0xef;
}
else if(cnt==6000)
{
P1=0x0E;P0=0xdf;cnt=0;
}
}
void interrupt_timer0()interrupt 1
{
TH0=0xFC;
TL0=0x67;
cnt++;
}这个程序的现象和在if(cnt==1000)前面加个while(1)一直包括到主函数完,两者有什么区别,并且请详细说下while的作用,谢谢!
最佳答案
main函数里写个while死循环,是为了让这个可执行文件对应的进程能持续不断的运行循环体内的程序。
如果没有这个死循环,那么程序在执行完一次后就结束运行退出了。
你给出的代码有个中断处理函数,如果main里有while(1),大概的意思是中断函数执行一次,cnt++,在cnt达到1000等数的时候,就会设置相应的P1、P0等。
如果没有while(1),程序执行进去什么都不会做,应为cnt变量没有增加到超过1000。
全部回答
设主时钟为12mhz,则计数频率1us,t0定时方式2为八位自动重装,仅tl0计数,最大计数256(即256us),需计数100us时,需装入初始值256-100=156,换算成十六进制就是9c,所以, th0=0x9c; //给定时器赋初值,定时100us tl0=0x9c;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
都说嫁接苗好是不是真的呢
怎么查询同名同姓人的话英语六级准考证号
颐康府这个地址在什么地方,我要处理点事
有5角,1元,5元的人民币共64张,共123.5元.5角
MSE高手来帮帮忙吧 0x80070422
新甲连锁上饶店在什么地方啊,我要过去处理事
求一个在线欣赏的网纸 9 1的也可以
我是男的手腕很细才15厘米男士的手表基本没有
保利·香槟国际花园地下停车场我想知道这个在
【挑拨离间的话叫】...没有根据的话叫()违背
怎么将十六进制数据转换成byte
鳝布干焖五花肉的做法?
急!!!我在外面!!!拖鞋破了!!!怎么办
种植业什么前景最好
苏宁易购普定直营店这个地址在什么地方,我要
推荐资讯
如果我的第一次不想给我的男朋友,那我怎样对
神武刷了3件使用特技消耗愤怒减少百分之十的
为什么老是想咽口水
今年29岁 男 大便不尽,遇凉便腹疼,腹泻。人
考举人是什么意思
春和玉药店NO.3地址在哪,我要去那里办事
英语翻译这句话翻译成英文,有几种正确的句子
同事家办丧事自己来月经能去吗?
手机的四G和三G有啥区别?哪个好点?
大勇货架经销处地址在什么地方,想过去办事
拔气罐后背部中间鼓了一个包 请问有没有印象
广州哪有私人高利贷
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?