#include
#define uchar unsigned char
#define uint unsigned int
//数码管位端口定义
sbit w1=P2^0;
sbit w2=P2^1;
sbit w3=P2^2;
sbit w4=P2^3;
sbit w5=P2^4;
按键/
sbit key1=P3^0;//设置时间
sbit key2=P3^1;//加
sbit key3=P3^2;//减
sbit key4=P3^3;//闹钟
sbit beep=P1^0;//蜂鸣器
/共阴数码管段信号编码
uchar code table[10]=//0---9
{0xFC,0x60,0xDA,0xF2,0x66,
0xB6,0xBE,0xE0,0xFE,0xF6};//
uchar num,miao,fen,shi;//计时 时分秒变量
uchar fen1,shi1;//闹钟变量
uchar d1,d2,d3,d4;//显示拆分数据
void delay(uint ms)//1ms 延时函数 数据保持用的
{
uchar x;
for(ms;ms>0;ms--)
for(x=110;x>0;x--);
}
void display()//显示函数
{
d1=shi/10;//小时
d2=shi%10;//
d3=fen/10;//
d4=fen%10;//分钟
w1=0;P0=table[d1];delay(10);//第1位显示数据
P0=0x00;w1=1;//关闭显示消除动态扫描阴影
w2=0;P0=table[d2]|0x01;delay(10);//第2位显示数据
P0=0x00;w2=1;//关闭显示消除动态扫描阴影
w3=0;P0=table[d3];delay(10);//第3位显示数据
P0=0x00;w3=1;//关闭显示消除动态扫描阴影
w4