循环中的MOV 06H,#2H指令,使得下帆冲一条指散镇令R6减1≠0, 转D1入口循环。
“死循环”,就是永远跳不出循环。
#include <REGX52.H>void Delay1ms(unsigned int count) /*延时函数,延迟时间为count×1ms)*/
{
unsigned int i,j
for(i=0i<counti++)
for(j=0j<120j++)
}
main()
{
unsigned char LEDIndex = 0/*声明8位变量LEDIndex,用来指示8个LED中哪个被点亮,初始值为00000000*/
bit LEDDirection = 1/*声明位变量LEDDirection,用来指示点亮的方向,初始值为1*/
while(1) /*一直循环执行大括号里面的语句*/
{
if(LEDDirection) /*当LEDDirection=1时,0000 0001左移LEDIndex位档掘,取反后送给P2端口,点亮一个LED*/
P2 = ~(0x01<<LEDIndex)
else /*当LEDDirection=0时,1000 0000右移LEDIndex位,取反后送给P2端口,点亮一个行芹核LED*/
P2 = ~(0x80>>LEDIndex)
if(LEDIndex==7) /*当一次循环结束时,把LEDDirection取反,下次循环时将以相反首迟的顺序点亮*/
LEDDirection = !LEDDirection
LEDIndex = (LEDIndex+1)%8/*LEDIndex+1对8取余,保证LEDIndex在0~7之间*/
Delay1ms(500)/*延时500ms,即LED的点亮间隔为0.5s*/
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)