#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uint qian,bai,shi,ge,flag,num;
uint num_2;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,
0xf8,0x80,0x90,
0x89,0x86,0xc7,0x8c};
void display(uint qian,uint bai,uint shi,uint ge);
void init()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
num_2=4321;
}
void delay(uint i)
{
int x,y;
for(i=x;i>0;i--)
for(y=110;y>0;y--);
}
void main()
{
init();
while(1)
{
if(flag!=1)
display(qian,shi,bai,ge);
else
display(11,12,13,14);
}
}
void T0_timer() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
if(num==2)
{
num=0;
num_2--;
if(num_2==4310)
{
TR0=0;
flag=1;
}
}
}
void display(uint qian,uint bai,uint shi,uint ge)
{
qian=num_2/1000;
bai=num_2%1000/100;
shi=num_2%100/10;
ge=num_2%10;
P1=0XFE;
P0=table[qian];
delay(1);
P1=0XFF;
P0=0XFF;
P1=0XFD;
P0=table[bai];
delay(1);
P1=0XFF;
P0=0XFF;
P1=0XFB;
P0=table[shi];
delay(1);
P1=0XFF;
P0=0XFF;
P1=0XF7;
P0=table[ge];
delay(1);
P1=0XFF;
P0=0XFF;
}
為什么數碼管減到4310就不變了 本意是之后顯示HELP的 怎么回事啊 并且屏蔽一些語句直接運行display();時顯示的也不是HELP 但是在單獨做動態顯示都是好的
剛學這個 麻煩分析一哈 謝謝
|