我想写第5个练习。烧录进去现象是对的,但是LED闪烁那部分非常暗,有时候写其他程序的时候,也会出现LED很暗的情况,我现在知道的是肯定不是硬件的问题,但是我也找不出是什么问题,感觉好像是单片的特性一类的......求大神指点一下。
单片机源程序如下:
#include <REGX52.H>
#include <intrins.h>
typedef unsigned char u8;
typedef unsigned int u16;
sbit BEEP=P2^5;
#define LED_PORT P2
void delay(u16 x)//x传入1大约延时1ms
{
u16 y,z;
for(y=x;y>0;y--)
for(z=115;z>0;z--);
}
void main()
{
u8 i=0;
while(1)//死循环
{
static b;
for(i=0;i<4;i++)//大循环上下流动两次
{
for(i=0;i<8;i++)//内层循环流水灯
{
if(b%2==0)//第一次先从低位到高位
{
LED_PORT=_crol_(0xfe,i);//左移
}
else if(b%2==1)//由于b自加为奇数,执行从高位到低位
{
LED_PORT=_cror_(0x7f,i);//右移
}
delay(200);
LED_PORT=0xff;
}
b++;//每完成一次内循环自加1
if(b==4)
{
for(i=0;i<5;i++)//最后一个循环,全部LED闪烁5次
{
LED_PORT=0xff;
delay(500);
LED_PORT=~0xff;
}
}
}
}
}
|