流水灯程序咨询
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp;
//sbit D1=P1^0;
void delay (unit);
void main()
{
while(1)
{
temp=0xfe;
P2=temp;
temp=_cror_(temp,1);
delay(12000);
P2=temp;
//delay(100);
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=100;y>0;y--);
}
这个是我自己编写的一个流水灯的程序,在STC90C516RD+ 上面跑。
但是怎么在烧录上去后不动呀。
麻烦给我看一下是哪里有问题
谢谢了
你前面声明延时函数时参数缺少了z, ”void delay (unit z);“才对
这个少了Z没有问题吧
temp=0xfe;
P2=temp;
这两句放在while(1)上面吧
z没有定义吧。
这样就没问题了,我试过了, temp=0xfe; P2=temp;要放在while(1){}外面,还有你宏定义的uint跟后面用到的unit不对应,我改过来了。
下面是可以的程序:
#include<reg51.h>
#include <intrins.h>
#define unit unsigned int
#define uchar unsigned char
uchar temp;
//sbit D1=P1^0;
void delay(unit z);
void main()
{
temp=0xfe;
P2=temp;
while(1)
{
temp=_cror_(temp,1);
delay(100);
P2=temp;
//delay(100);
}
}
void delay(unit z)
{
unit x,y;
for(x=z;x>0;x--)
for(y=100;y>0;y--);
}
还有你原来的延时太长了哦
不好意思,按照习惯应写成uint,不小心打成unit了,不过也是可以的
谢谢你 非常感谢!
哈哈,不用谢。