第1个回答 2011-08-03
//prj1 流水灯实验,LED灯是共阳极,给0亮。J1跳线帽
//用的是移位的方法
//头文件定义
#include<reg52.h>
#include <intrins.h>
//延时函数定义
void delay(void)
{
unsigned int i;
unsigned int j;
for(i=200;i>0;i--)
{
for(j=200;j>0;j--);
}
}
void main()
{
P0 = 0xfe; //1111 1110
delay();
while(1)
{
P0 = _crol_(P0,1) ; // 将P0端口循环左移
delay();
if(P0 == 0x7f)
{
P0 = _cror_(P0,1);
delay();
P0 = _cror_(P0,1);
delay();
P0 = _cror_(P0,1);
delay();
P0 = _cror_(P0,1);
delay();
P0 = _cror_(P0,1);
delay();
P0 = _cror_(P0,1);
delay();
P0 = _cror_(P0,1);
delay();
}
}
}
第3个回答 2011-08-03
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar num,a;
void delay(uint z)
{
uint i,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
void init()
{
TMOD=0X01;
TH0=(65535-45872)/256;
TL0=(65535-45872)%256;
EA=1;
TR0=1;
ET0=1;
}
void main()
{
a=0xfc;
init();
while(1);
}
void time0() interrupt 1
{
TH0=(65535-45872)/256;
TL0=(65535-45872)%256;
num++;
P0=a;
if(num==20)
{
num=0;
a=_crol_(a, 2);
}
}