//51单片机流水灯代码,可以参考这个,试试
#include
#define uchar unsigned char
#define uint unsigned int
unsigned char TAB[]= {0xff,0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff,0x7e,0x3c,0x18,0x00,0x18,0x3c,0x7e}; // 改变这里 LED 各种花样
uchar t,i;
void main()
{
TMOD=0x10;
TH1=(65535-50000)/256; // 50ms一次
TL1=(65535-50000)%256;
EA=1;
ET1=1;//开定时器1中断
TR1=1;//启动定时器1
t=0;
i=0;
while(1)
{
}
}
void timer1() interrupt 3
{
TH1=(65535-50000)/256; // 50ms一次
TL1=(65535-50000)%256;
t++;
if(t==20)
{
t=0;
P1=TAB[i];
i++;
if(i==16) { i=0;}
}
}
你好,无符号整形也就是unsigned int 值得范围是0到65535 超过这个值就没有用了。联系采用这样的延时函数 调用就是delay 多少
你的程序编写的不对,delay延时函数溢出了,void delay(unsigned int ch)
{while(i--);}
这样就可以了
你把你delay传入的参数改小一点试试,改成小于65535