|
void change(unsigned char a) //數(shù)字對應(yīng)段碼的轉(zhuǎn)換
{ if(a==0) P0=0xc0;
if(a==1) P0=0xf9;
if(a==2) P0=0xa4;
if(a==3) P0=0xb0;
if(a==4) P0=0x99;
if(a==5) P0=0x92;
if(a==6) P0=0x82;
if(a==7) P0=0xf8;
if(a==8) P0=0x80;
if(a==9) P0=0x90;
}
void display_val(unsigned int x) //顯示數(shù)值
{
unsigned char i,j,k,l,q,w; //i,j,k,l分別儲存轉(zhuǎn)速的千位、百位、十位和個位
w=x/100000;
q=x/10000;
i=x/1000; //取千位
j=(x%1000)/100; //取百位
k=(x%100)/10; //取十位
l=x%10; //取個位
P1=32; //選3號數(shù)碼管
change(w);
delay1ms();
P1=16; //選4號數(shù)碼管
change(q);
delay1ms();
P1=8; //選3號數(shù)碼管
change(i);
delay1ms();
P1=4; //選4號數(shù)碼管
change(j);
delay1ms();
P1=2; //選5號數(shù)碼管
change(k);
delay1ms();
P1=1; //選6號數(shù)碼管
change(l);
delay1ms();
}
void main(void) //主函數(shù)
{
TMOD=0x51; //定時器T1工作于計數(shù)模式1,定時器T0工作于計時模式1;
TH0=0x10; //定時器T0的高8位設(shè)置初值,每66.67ms產(chǎn)生一次中斷
TL0=0; //定時器T0的低8位設(shè)置初值
EA=1; //開總中斷
ET0=1; //定時器T0中斷允許
TR0=1; //啟動定時器T0 |
|