1、設置定時中斷,定時中斷時間是5毫秒;
2、中斷程序完成秒計時,秒數發生變化時,要將秒數對應的顯示碼放到顯示緩沖區;
3、每次中斷循環顯示壹位數碼管;
下面是我曾經寫的壹個顯示程序(顯示緩沖區G_Disp_Buf):
#define PIN_SDIN P0_0
#define PIN_ST P0_1
#define PIN_SH P0_2
#define LOC_D1 0x08
void Display(void)
{
unsigned char i,ch,loc;
if(g_disp_location>3) g_disp_location=0; // display one digit every time, total 4 digits.
ch=G_Disp_Buf[g_disp_location];
loc=LOC_D1; // D1 position,P0_3-P0_6 located D1-D4
for(i=0;i<g_disp_location;i++) loc <<=1;
P0 &=0x87; // P0_3-6 clear, disable display
PIN_ST=0;
for(i=0;i<=7;i++) // output one character
{
PIN_SH=0;
if((ch&0x80)==0) PIN_SDIN=0;
else PIN_SDIN=1;
ch <<=1;
PIN_SH =1;
}
PIN_ST=1; // character ready
P0 |=loc; // set D1,D2,D3 or D4 ,enable display
g_disp_location++;
}