#include <reg52.h>
// P1口连接数码管片选信号和蜂鸣器控制信号
sbit Sel0 = P1 ^ 0;
sbit Sel1 = P1 ^ 1;
sbit Sel2 = P1 ^ 2;
sbit Sel3 = P1 ^ 3;
sbit Beep = P1 ^ 4;
// P3口连接set、inc、dec按键
sbit Set = P3 ^ 3;
sbit Inc = P3 ^ 4;
sbit Dec = P3 ^ 5;
// 共阳数码管编码
code const unsigned char LED_CODE[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
// 四个数码管显示内容
unsigned char LED[4];
// 数码管动态扫描索引
unsigned char LedSel;
// 时钟(时、分、秒、百分秒)计数
unsigned char Th, Tm, Ts, Tms;
// 闹铃定时(时、分)
unsigned char Lh, Lm;
// 跑表记录(时、分、秒、百分秒)
unsigned char Sh[10], Sm[10], Ss[10], Sms[10];
// 跑表显示索引
unsigned char SRIndex;
// 跑表记录索引
unsigned char SWIndex;
// 10毫秒,500毫秒定时标志
unsigned char Flag10ms, Flag500ms;
// 蜂鸣器鸣叫时间(5毫秒为单位)
unsigned char BeepCount;
// 蜂鸣器鸣叫类型
unsigned char BeepType;
#define BT_OFF 0 // 关闭声音
#define BT_BUTTON 1 // 按键声
#define BT_WARN 2 // 提示声
#define BT_ALARM 3 // 闹铃(报警)声
// 系统工作类别
unsigned char SysType;
#define ST_A 0
#define ST_B 1
#define ST_C 2
// 系统工作状态
unsigned char WorkState;
#define WA_NORMAL 0 // 显示时钟
#define WA_SETHM 1 // 设置时分
#define WA_SETMS 2 // 设置分秒
#define WA_SETRING 3 // 设置闹铃
#define WB_OFF 0 // 关闭秒表
#define WB_ON 1 // 启动秒表
#define WB_STOP 2 // 暂停秒表
#define WC_OFF 0 // 倒计时闹铃关闭
#define WC_SET 1 // 倒计时闹铃设置