单片机控制8个LED灯,完成奇数灯亮偶数灯灭,然后偶数灯亮奇数灯灭,10次,用C语言编程

单片机控制8个LED灯,完成奇数灯亮偶数灯灭,然后偶数灯亮奇数灯灭,10次,用C语言编程,第1张

#include<reg51.h>粗拍乱

#include<intrins.h>

#define uchar unsigned char

void delay(uchar a)

{

uchar i

while(a--)for(i=0i<120i++)

}

main()

{

uchar i,j

for(i=0i<10i++)

{

P0=0xaa

delay(200)

P0=0x55

delay(200)

}

for(i=0i<10i++)

    P0=0xfe

    {

    for(j=0j<贺汪8j++){P0=_crol_(P0,1)delay(200)}

  岩档  }

while(1)

}

你这样运行的结果是,亮灯顺序编号是:(0.05S)3,(0.25s)5,(0.4s)7,(0.6s)1,(0.8s)4,(1.0s)6,(1.2s)8,(1.4s)2,(1.6s)3,(1.8s)5.............这是这个程序单步运行的蚂州桐结果。。

经试验闷坦查证,P0=0xfe;后要加个延迟,要不就一句程序运行时间太短,马上就运行底下的了,导致这句程序没反应出来。底下P0=0xfd,一样要加延迟。

循环只循环三次就够了,因为第一次你已经写出来了,入1已经写了,那就只要3、迹厅5、7就可以了。

所以程序可以是:

#include<reg52.h>

#include<intrins.h>

void delay()

{

unsigned char m,n,s

for(m=20m>0m--)

for(n=20n>0n--)

for(s=248s>0s--)

}

void main()

{

unsigned char i,j

while(1)

{

P0=0xfe

delay()

for(i=0i<3i++)

{P0=_crol_(P0,2)

delay()}

P0=0xfd

delay()

for(j=0j<3j++)

{P0=_crol_(P0,2)

delay()}

}}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12485270.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存