#include<reg52.h>
sbit AA=P3^4;//数码管显示用IO端口
sbit BB=P3^5;
sbit CC=P3^6;
sbit DD=P3^7;
sbit X=P2^7;//启动按钮
sbit Y=P2^6;//停止按钮
sbit Z=P2^5;//清零按钮
int aa,temp;
char table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳极
//char table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴极
void delay(int x); //延迟函数声明
void display(int d); //显示函数声明
/*******************************************************************************/
/*******************************************************************************/
void main()
{
temp=0;
TMOD=0x01;//设置定时器工作方式
TH0=(65536-922)/256;//1毫秒
TL0=(65536-922)%256;//定时器装初始值
EA=1;//开总中断
ET0=1;//开定时器 0 的中断
while(1)
{
if(X==0){TR0=1;}//开启定时器,开始计数
if(Y==0){TR0=0;}//关闭定时器,暂停计数
if(Z==0){temp=0;}//清零计数器
display(temp); //调用显示子函数
}
}
/*******************************************************************************/
/*******************************************************************************/
void delay(int x) //延迟子函数
{
int y;
for(;x>0;x--)
for(y=80;y>0;y--);
}
/*******************************************************************************/
/*******************************************************************************/
void display(int d) //显示子函数
{
char d1,d2,d3,d4;
d4=d%10; //取个位 %求余
d3=(d/10)%10; //取十位
d2=(d/100)%10; //取百位
d1=(d/1000)%10; //取千位
P1=table[d4]; AA=0; delay(1); AA=1;//个位显示
P1=table[d3]; BB=0; delay(1); BB=1;//十位显示
P1=table[d2]; CC=0; delay(1); CC=1;//百位显示
P1=table[d1]; DD=0; delay(1); DD=1;//千位显示
}
/*******************************************************************************/
/*******************************************************************************/
此程序本人编写的,绝对可用,只要你连接正确
温馨提示:内容为网友见解,仅供参考