1、要求:采用 51 单片机设计,程序实现 1 秒进 1 功能需采用定时器实现,不要使用延时(delay 函数) 。第一:用六个数码管或六位一体的数码管实现时间显示。显示的格式为 12.05.30第二:按扭一实现按下后秒加一的功能。按扭二实现按下后秒减一的功能。按扭三实现按下后进行闹钟设定的实现,例如我在晚上 22.10.30 设我明天早上07.10.10 让峰呜器响起。我按下按扭三后就能配合使用按扭一和按扭二设好 07.10.10这个时间,第二天时钟走到 07.10.10,那么蜂呜器响起。按扭四实现一个实现一个复位(清零功能)即让数码管清零到 00.00.00第三:有两个 LED,其中一个 LE
2、D 表示上午 AM 的显示,另一个 LED 表示下面 PM 的显示。例如,当时间是 10.10.30 时,那么是上午的时间即 AM 这时 LED1 会亮 LED2 会灭。当时间是 13.10.40 时,那么是下午的时间即 PM 这时 LED1 会灭而 LED2 会亮一、当前时间和闹钟时间间隔显示,时间显示约 4S 后,显示 1S 闹钟时间,循环显示二、按键功能按 1:选择要调整的项目:闹钟时、闹钟分、闹钟秒;当前时间时、当前时间分、当前时间秒按 2:闹钟的开、关按 3:+按 4:-按 5:确定键按 6:单片机复位键:闹钟和当前时间全部清零三、显示格式为 12.05.30,四、指示灯:指示灯 1
3、:AM指示灯 2:PM指示灯 3:闹钟开关状态指示灯 4:调整闹钟时间指示灯(如果调节闹钟时该指示灯就亮,否则该灯就灭)指示灯 5:调整当前时间指示灯(如果当前时间该指示灯就亮,否则该灯就灭)五、蜂鸣器声音指示。闹钟打开的时候,当前时间时=闹钟时间蜂鸣器响,否则蜂鸣器关闭#include#include#define uchar unsigned char#define uint unsigned intsbit adjust=P30;sbit onoff= P31;sbit jia= P32;sbit jian= P33;sbit confirm=P34;sbit led_am=P10;sb
4、it led_pm= P11;sbit led_onoff=P12;sbit led_ad_alarmtime= P13;sbit led_ad_nowtime=P14;sbit buzzer=P15;unsigned char scankey();unsigned char code select=0X01,0X02,0X04,0X08,0X10,0X20;unsigned char code disp=0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x90,0xC6,0xC7,0x86,0x8E ;unsigned char dispbuf6=0,0,0,0,0,0;unsigned char hour=10,minute=30,second=0;unsigned char alarmsecond=11,alarmminute=10,alarmhour=0;bit alarm;