#include "reg52.h"
typedef unsigned int u8;//对系统默认数据类型进行重命名
void delay_10us(u8 ten_us)//延迟函数
{
while(ten_us--)
}
void main()
{
unsigned char a=0x01;
while(1)
{
if(a==0x00)
{
a=0x01;
}
P2=a;
a=a<<1;
delay_10us;
}
}
第二种
#include "reg52.h"
#include "intrins.h"
void main()
{
u8 i=0;
LED_PORT=~0X01;
delay_10us(50000);
while(1)
{
for(i=0;i<7;i++)
{
LED_PORT=_crol_(LED_PORT,1);//将led左移一位
delay_10us(50000);
}
for(i=0;i<7;i++)
{
LED_PORT=_cror_(LED_PORT,1);//将led右移一位
delay_10us(50000);
}
}
}
说一下我在流水灯里遇到的困难:
1.端口P2.0在程序中应该表示为P2^0,千万不要打成p2^0
2.用stc-isp烧录时总是显示”正在检测单片机“,解决办法:开始前不接通电源(不按POWER),点击下载/编程后,再接通电源(按下POWER键),或者是你的单片机型号选择选错了,是STC89C52RC就不要选成STC89C52。
3.一个keil软件的问题,keil5中一般没有51芯片要自己加进去,要学习51单片机的最好下4版本(我也不知道这样说对不对,哈哈,你们自行辨认吧)