/* く__,.ヘヽ. / ,ー、 〉 \ ', !-─‐-i / /´ /`ー' L//`ヽ、 / /, /| , , ', イ / /-‐/ i L_ ハ ヽ! i レ ヘ 7イ`ト レ'ァ-ト、!ハ| | !,/7 '0' ´0iソ| | |.从" _ ,,,, / |./ | レ'| i>.、,,__ _,.イ / .i | レ'| | / k_7_/レ'ヽ, ハ. | | |/i 〈|/ i ,.ヘ | i | .|/ / i: ヘ! \ | kヽ>、ハ _,.ヘ、 /、! !'〈//`T´', \ `'7'ーr' レ'ヽL__|___i,___,ンレ|ノ ト-,/ |___./ 'ー' !_,.: 四位数码管STC89C52RC单片机实现简易时钟外加闹钟功能 Four digital tube STC89C52RC microcontroller to achieve a simple clock plus alarm clock function 创建于2023/6/15 14:13 Created on 2023/6/15 14:13 */ #include typedef unsigned int u16; typedef unsigned char u8; //定义数码管的端口 sbit D1 = P2^0; sbit D2 = P2^1; sbit D3 = P2^2; sbit D4 = P2^3; //如果D1 = 0则选中 //如果D1 = 1则不选中 //定义按键的端口 sbit K3 = P3^5; //切换显示时间和设置时间和设置闹钟的时间 sbit K4 = P3^4; //切换小时和分钟的时间设置 sbit K5 = P3^3; //当设置时钟的时间、设置闹钟的时间,用来增加时间、可减少小时和分钟通过K4切换 sbit K6 = P3^2; //当设置时钟的时间、设置闹钟的时间,用来减少时间、可减少小时和分钟通过K4切换 //判断按钮是否按下 int K3UPdown; int K4UPdown; int K5UPdown; int K6UPdown; // 设置默认时间 //12:00:00 u8 hour = 12; u8 minute = 0; // 设置默认闹钟时间 //12:01:00 u8 bellhour = 12; u8 bellminute = 1; u8 bellsecond = 0; //默认显示时钟 u8 timekey = 0; //小时和分分钟的切换状态 u8 Statukey = 0; //Statukey = 0 小时设置、Statukey = 1 分钟设置 //定义蜂鸣器的端口 sbit beep = P3^6; //0~9的段码 u8 code table[]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90}; //0~9的段码 共阳极数码管 u8 code tablecode[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x08,0x03,0x46,0x21,0x06,0x0e};//0~9的段码 共阳极数码管带小数点 u8 second; u8 key=0; // 1ms*1000=1s void delay1ms(u16 t) { u16 i,j; for(i=0;i