||
#include <reg51.h> //11.0592
#define uchar unsigned char
#define uint unsigned int
bit bg;
uint xu,hu,bu;
uchar dis[]={0x00,0x00,0x00,0x00};
uchar code table[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0xff};
//共阳码表
void delayms(uchar ms) //延时
{
uchar i;
while(ms--)
{
for(i=0;i<120;i++)
;
}
}
void display(void) //显示
{
char k;
char j=0x7f;
for(k=0;k<4;k++)
{
P2=0xff;
P0=table[dis[k]];
P2=j;
delayms(3);
j=(j>>1)|0x80;
}
}
void int0() interrupt 0 //霍尔转速引入计数加一
{
xu++;
}
void time0() interrupt 1 //一分钟定时
{
TH0=0xdc;
hu++;
if(hu>=6000)
{
hu=0;bu=xu;xu=0;bg=1;
}
}
void main()
{
delayms(100);
TMOD=0x01;TH0=0xdc;TL0=0;IT0=1;IE=0x83;TR0=1;
while(1)
{
if(bg)
{
bg=0;
dis[3]= bu/1000;
dis[2]= (bu%1000)/100;
dis[1]= (bu%100)/10;
dis[0]= bu%10;
}
display();
delayms(3);
}
}