标题:
单片机万年历的切换出现乱码 求帮助
[打印本页]
作者:
坐在分头调戏鬼
时间:
2019-6-3 19:40
标题:
单片机万年历的切换出现乱码 求帮助
在切换的过程中切换的不灵敏,并且会出现乱码。应该怎么办
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula =P2^6;
sbit wela=P2^7;
sbit key1=P3^4;
sbit key2=P3^5;
sbit key3=P3^6;
sbit key4=P3^7;
uchar miao,fen,shi;
uint aa,bb;
uchar i,nian1,nian2,yue1,yue2,ri1,ri2;
uchar code table[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar code weitable[]={0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
uchar duantable[8];
void delayms(uchar z)
{
uchar x,y;
for (x=z;x>0;x--)
for(y=110;y>0;y--);
}
void display();
void display1();
void init();
void main()
{
P0=0x00;
init();
bb=2;
aa=0;
miao=0;
fen=0;
shi=0;
nian1=7;
nian2=2;
yue1=5;
yue2=0;
ri1=9;
ri2=1;
P0=0x00;
while(1)
{
// if(key4==0)
// {
// delayms(5);
// if(key4==0)
// {
// while(!key4)
// {
// bb++;
// if(bb%2==0)
// {
// display1(nian1,nian2,yue1,yue2,ri1,ri2);
// }
// if(bb%2==1)
// {
// duantable[0]=table[miao%10];
// duantable[1]=table[miao/10];
// duantable[2]=table[fen%10];
// duantable[3]=table[fen/10];
// duantable[4]=table[shi%10];
// duantable[5]=table[shi/10];
// }
// }
// }
// }
if(key1==0)
{
delayms(5);
if(key1==0)
{
while(!key1)
{
}
shi++;
if(shi==24)
shi=0;
}
}
if(key2==0)
{
delayms(1);
if(key2==0)
while(!key2);
fen++;
if(fen==60)
fen=0;
}
if(key3==0)
{
delayms(1);
if(key3==0)
miao++;
if(miao==60)
miao=0;
while(!key3);
}
if(key4==0)
{
delayms(5);
if(key4==0)
{
while(!key4)
{
bb++;
}
}
}
}
}
void display()
{
wela=1;
P0=weitable[i];
wela=0;
P0=0x00;//消隐
dula=1;
P0=duantable[i];//显示个数
dula=0;
i++;
if(i==6)
i=0;
}
void display1()
{
wela=1;
P0=weitable[i];
wela=0;
P0=0x00;//消隐
dula=1;
P0=duantable[i];//显示个数
dula=0;
P0=0x00;//消隐
i++;
if(i==6)
i=0;
}
void init()//初始化
{
TMOD=0x11;//0000 0001
EA=1;//开总中断
ET0=1;//开定时器0中断
ET1=1;
TH0=(65536-500)/256;
TL0=(65536-500)%256;
TH1=(65536-12000)/256;
TL1=(65536-1000)%256;
TR0=1;//启动定时器0
TR1=1;
}
void timer0() interrupt 1
{
P0=0x00;
TH0=(65536-250)/256;
TL0=(65536-250)%256;
aa++;
if(bb%2==1)
{
display();
duantable[0]=table[miao%10];
P0=0x00;//消隐
duantable[1]=table[miao/10];
P0=0x00;//消隐
duantable[2]=table[fen%10];
P0=0x00;//消隐
duantable[3]=table[fen/10];
P0=0x00;//消隐
duantable[4]=table[shi%10];
P0=0x00;//消隐
duantable[5]=table[shi/10];
P0=0x00;//消隐
}
if(aa==4000)
{
aa=0;
miao++;
if(miao==60)
{
miao=0;
fen++;//满60秒,分加1,秒归0.
}
if(fen==60)
{
miao=0;
fen=0;
shi++;
}
if(shi==24)
shi=0;
}
}
void timer1() interrupt 3
{
TH1=(65536-1000)/256;
TL1=(65536-2000)%256;
if(bb%2==0)
{
display1();
duantable[0]=table[nian1];
P0=0x00;//消隐
duantable[1]=table[nian2];
P0=0x00;//消隐
duantable[2]=table[yue1];
P0=0x00;//消隐
duantable[3]=table[yue2];
P0=0x00;//消隐
duantable[4]=table[ri1];
P0=0x00;//消隐
duantable[5]=table[ri2];
P0=0x00;//消隐
}
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1