1、#include #define uchar unsigned char /宏定义 用uchar代替 unsigned char#define uint unsigned int sbit START=P10; /开始、停止键 低电平有效sbit RST=P11; /复位键sbit SMGGW=P12;/用三极管或驱动芯片驱动数码管高电平有效还是低电平有效由电路决定sbit SMGSW=P13;uchar tt;uint time;/此变量为时间uchar code table=/此为数码管字模,对应 0-90x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7
2、f,0x6f,0x40;void Delay(uint ms)/延时子函数uint i,j;for(i=ms;i0;i-)for(j=500;j0;j-);void Display() /显示子函数uchar ge,shi;shi=time/10;ge=time%10;P0=tablege;SMGGW=0;/用三极管或驱动芯片驱动数码管高电平有效还是低电平有效由电路决定 本程序为低电平数码管亮SMGSW=1;Delay(2);P0=tableshi;SMGGW=1;SMGSW=0;Delay(2);void main()P1=0xff;EA=1;ET0=1;TMOD=0x01;TH0=0x4c
3、;/晶振11.0592Mhz 若用12Mhz晶振 则改为 TH0=0x3c;Tl0=0xb0;TL0=0x00;TR0=0;while(1)if(START=0)/开始、停止Delay(8);if(START=0)TR0=!TR0;while(!START) Display();if(RST=0)/复位Delay(8);if(RST=0)time=0;while(!RST)Display();if(tt=20)tt=0;time+;if(time=99)time=0;Display();void timer0() interrupt 1TH0=0x4c;/晶振11.0592Mhz 若用12Mhz晶振 则改为 TH0=0x3c;Tl0=0xb0;TL0=0x00;tt+;