#include
sbit AA=P0^7;//數碼管顯示用IO埠
sbit BB=P0^6;
sbit CC=P0^5;
sbit DD=P0^4;
sbit K1=P3^2;
sbit K2=P3^5;
sbit K3=P3^7;
int s,m;
char table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};
void YS(int x); //延遲函式宣告
void XS(int d); //顯示函式宣告
void main()
{
s=m=0;
TMOD=0x01;//設定定時器工作方式
TH0=(65536-1000)/256;//1毫秒
TL0=(65536-1000)%256;//定時器裝初始值
EA=1;//開總中斷
ET0=1;//開定時器 0 的中斷
while(1)
XS(s); //顯示
if(K1==0){ TR0=1; }//開啟定時器,開始計時
if(K2==0){ TR0=0; }//關閉定時器,暫停計時
if(K3==0){ s=m=0; }//清空資料
}
void YS(int x) //延遲子函式
int y;
for(;x>0;x--)
for(y=100;y>0;y--);
void XS(int d) //顯示子函式
char d1,d2,d3,d4;
d4=d%10; //取個位 %求餘
d3=(d/10)%10; //取十位
d2=(d/100)%10;
d1=(d/1000)%10;
P2=table[d4]; AA=0; YS(1); AA=1;//個位顯示
P2=table[d3]; BB=0; YS(1); BB=1;//十位顯示
P2=table[d2]; CC=0; YS(1); CC=1;//百位顯示
P2=table[d1]; DD=0; YS(1); DD=1;//千位顯示
void timer() interrupt 1 //中斷處理子函式
TH0=(65536-922)/256;//1毫秒
TL0=(65536-922)%256;
m++;
if(m>=10) //判斷定時是否到達1s 即 1000 ms
{ m=0; s++; }
if(s>=9999) //判斷定時是否到達1s 即 1000 ms
{ s=0; }
絕對可用的,你試試吧,可能我的程式埠與你的不一樣,自己改一下就可以了
#include
sbit AA=P0^7;//數碼管顯示用IO埠
sbit BB=P0^6;
sbit CC=P0^5;
sbit DD=P0^4;
sbit K1=P3^2;
sbit K2=P3^5;
sbit K3=P3^7;
int s,m;
char table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};
void YS(int x); //延遲函式宣告
void XS(int d); //顯示函式宣告
void main()
{
s=m=0;
TMOD=0x01;//設定定時器工作方式
TH0=(65536-1000)/256;//1毫秒
TL0=(65536-1000)%256;//定時器裝初始值
EA=1;//開總中斷
ET0=1;//開定時器 0 的中斷
while(1)
{
XS(s); //顯示
if(K1==0){ TR0=1; }//開啟定時器,開始計時
if(K2==0){ TR0=0; }//關閉定時器,暫停計時
if(K3==0){ s=m=0; }//清空資料
}
}
void YS(int x) //延遲子函式
{
int y;
for(;x>0;x--)
for(y=100;y>0;y--);
}
void XS(int d) //顯示子函式
{
char d1,d2,d3,d4;
d4=d%10; //取個位 %求餘
d3=(d/10)%10; //取十位
d2=(d/100)%10;
d1=(d/1000)%10;
P2=table[d4]; AA=0; YS(1); AA=1;//個位顯示
P2=table[d3]; BB=0; YS(1); BB=1;//十位顯示
P2=table[d2]; CC=0; YS(1); CC=1;//百位顯示
P2=table[d1]; DD=0; YS(1); DD=1;//千位顯示
}
void timer() interrupt 1 //中斷處理子函式
{
TH0=(65536-922)/256;//1毫秒
TL0=(65536-922)%256;
m++;
if(m>=10) //判斷定時是否到達1s 即 1000 ms
{ m=0; s++; }
if(s>=9999) //判斷定時是否到達1s 即 1000 ms
{ s=0; }
}
絕對可用的,你試試吧,可能我的程式埠與你的不一樣,自己改一下就可以了