我是想用动态显示来做一个60秒的计时,现在个位可以正常显示,十位数也能正常进位,但是一直在闪烁,求个解决方案。
以下是代码
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit led=P1^0;
sbit dula=P2^6;
sbit wela=P2^7;
uchar num;
uint ge,shi;
uchar code a[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint);
void main()
{
while(1)
{
wela=1;
P0=0xfd;
wela=0;
P0=0xff;
dula=1;
P0=a[ge];
dula=0;
delay(1000);
ge++;
if(ge==10)
{
shi++;
ge=0;
}
wela=1;
P0=0xfe;
wela=0;
P0=0xff;
dula=1;
P0=a[shi];
dula=0;
delay(1000);
if(shi==6)
{
ge=0;
shi=0;
wela=0;
dula=0;
led=0;
delay(500);
led=1;
delay(500);
}
}
}
void delay(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
那是需要修改下哪里呢?
你使用了中断了呀,我只想在单纯的动态显示用消影来做一个计时器
好的,我试试,能不能成功。
是所有的延时函数都改吗,还是改十位的?
一周热门 更多>