我的跑马灯程序跑不了
时间:10-02
整理:3721RD
点击:
前几天做了一个电子产品的跑马灯的程序。结果弄了好半天,还是跑步起来。(本人新手中)。请教下坛里的大神,我该怎么修改一下。代码如下了。
#define uchar unsigned char
#include<reg51.h>
bit ldelay=0;//
长定时溢出标志,预置为
0
uchar m=-1,n=0;
uchar t=0;
void main(void)
{
uchar code ledp[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //
预定的写入
P2
的值
uchar code ledq[4]={0x7e,0xbd,0xdb,0xe7};
uchar i;
//
用来指示显示顺序
TMOD=0x01;
//
设置定时器
0
为工作方式
1
TH0=0x3c;
TL0=0xb0;
//
给定时器设定初始值
TR0=1;
//
启动定时器
0
ET0=1;
//
打开定时器
0
中断
EA=1;
//
打开总中断
while(1)
{
if(ldelay) //
发现时间溢出标志,进入处理
{
ldelay=0;
//
清除标记
if(m<8)n=0;
if(m>=8&m<16)n=1;
if(m>=16&m<20)n=2;
if(m>=20)n=3;
if(m==23)m=-1;
switch(n)
{
case 0:
P2=ledp[i];
//
读出一个值送到
P1
口
i++;
//
指向下一个
break;
case 1:
i--;
P2=ledp[i];
break;
case 2:
P2=ledq[i];
i++
;
break;
case 3:
i--;
P2=ledq[i];
break;
}
}
}
}
timer0 () interrupt 1
电脑计时启动
t++; weidongli.biz
0
中断
{
t++;
if(t==5)
{
t=0;
ldelay=1;
//
每次溢出置一个标志,以便主程序处理
++m;
}
TH0=0x3c;
TL0=0xb0;
//
是给定时器设定初始值
50MS
}
#define uchar unsigned char
#include<reg51.h>
bit ldelay=0;//
长定时溢出标志,预置为
0
uchar m=-1,n=0;
uchar t=0;
void main(void)
{
uchar code ledp[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //
预定的写入
P2
的值
uchar code ledq[4]={0x7e,0xbd,0xdb,0xe7};
uchar i;
//
用来指示显示顺序
TMOD=0x01;
//
设置定时器
0
为工作方式
1
TH0=0x3c;
TL0=0xb0;
//
给定时器设定初始值
TR0=1;
//
启动定时器
0
ET0=1;
//
打开定时器
0
中断
EA=1;
//
打开总中断
while(1)
{
if(ldelay) //
发现时间溢出标志,进入处理
{
ldelay=0;
//
清除标记
if(m<8)n=0;
if(m>=8&m<16)n=1;
if(m>=16&m<20)n=2;
if(m>=20)n=3;
if(m==23)m=-1;
switch(n)
{
case 0:
P2=ledp[i];
//
读出一个值送到
P1
口
i++;
//
指向下一个
break;
case 1:
i--;
P2=ledp[i];
break;
case 2:
P2=ledq[i];
i++
;
break;
case 3:
i--;
P2=ledq[i];
break;
}
}
}
}
timer0 () interrupt 1
电脑计时启动
t++; weidongli.biz
0
中断
{
t++;
if(t==5)
{
t=0;
ldelay=1;
//
每次溢出置一个标志,以便主程序处理
++m;
}
TH0=0x3c;
TL0=0xb0;
//
是给定时器设定初始值
50MS
}
