#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()}
}}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)