#include
#include
#define uchar unsigned char
#define uint unsigned int
//延时
void DelayMS(uint x){
uchar i;
while(x--)
{
for(i=0;i<120;i++);
}
}//
主程序
void main()
{
uchar i;
while(1)
{
P2=0x01;//此处有改
for(i=0;i<7;i++)
{
P2=_crol_(P2,1); //P2 的值向左循环移动
DelayMS(150);
}
P2=0x80;//此处有改
for(i=0;i<7;i++)
{
P2=_cror_(P2,1); //P2 的值向右循环移动
DelayMS(150);
}
}
}
您复制进去试一下,不行再追加吧,谢谢
电路:
一般的单片机 和 TTL集成电路芯片,都是灌电流能力强,拉电流能力极弱。
为此,应该用输出低电平,来带动负载。
而你的电路,是用高电平带动LED发光的,仿真,也许还行;实际的电路,LED是不会亮的。
仿真不清楚,真51的高电平输出很差的,应该驱动不了led吧。
应该反接,公共端接vcc,用51往0电位 通过电阻下拉电流。
1。我记得这个仿真单片机自己就有电源复位和震荡电路的说- -。是不是画蛇添足了还是我那个老版本...
2。这个头文件没用过。。是不是150ms时间太快了?
3。不知道了- -。试下