郭天祥TX-1C开发板实现秒表程序
更新,加入按键启停和重置功能
附开发板图片和原理图
代码
/*
定时器中断工作方式1实现一个精度为0.01s的秒表,并使用数码管显示
要求:数码管前两位显示计时的整数部分,范围为0~59s;数码管的第三位和第四位显示计时的小数部分,0~0.99s。计时到达59.99s后归零
*/
#include <reg52.h>
sbit U1 = P2^6; //数码管段选
sbit U2 = P2^7; //数码管位选
unsigned char code ledchar[]={
0x3F,0x06,0x5B,0x4F,0x66,0x6D,
0x7D,0x07,0x7F,0x6F,0x77,0x7C,
0x39,0x5E,0x79,0x71};
unsigned char ledbuff[4];
unsigned char DecimalPart = 0; //秒表小数部分
unsigned char IntegerPart = 0; //秒表整数部分
void stopwatchdisplay();
void delayms(unsigned int);
void main()
{
EA = 1;
TMOD = 0x01;
TH0 = 0xDC; //定时10ms
TL0 = 0x00;
ET0 = 1;
TR0 = 1;
while(1)
{
stopwatchdisplay();
}
}
void stopwatchdisplay()
{
ledbuff[0]=ledchar[DecimalPart%10];
ledbuff[1]=ledchar[DecimalPart/10];
ledbuff[2]=ledchar[IntegerPart%10];
ledbuff[3]=ledchar[IntegerPart/10];
ledbuff[2]<