资源描述
要求:
采用51单片机设计,程序实现1秒进1功能需采用定时器实现,不要使用延时(delay函数)。
第一:用六个数码管或六位一体的数码管实现时间显示。显示的格式为12.05.30
第二:按扭一实现按下后秒加一的功能。
按扭二实现按下后秒减一的功能。
按扭三实现按下后进行闹钟设定的实现,例如我在晚上22.10.30设我明天早上07.10.10让峰呜器响起。我按下按扭三后就能配合使用按扭一和按扭二设好07.10.10
这个时间,第二天时钟走到07.10.10,那么蜂呜器响起。
按扭四实现一个实现一个复位(清零功能)即让数码管清零到 00.00.00
第三:有两个LED,其中一个LED表示上午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:AM
指示灯2:PM
指示灯3:闹钟开关状态
指示灯4:调整闹钟时间指示灯(如果调节闹钟时该指示灯就亮,否则该灯就灭)
指示灯5:调整当前时间指示灯(如果当前时间该指示灯就亮,否则该灯就灭)
五、蜂鸣器声音指示。闹钟打开的时候,当前时间时=闹钟时间蜂鸣器响,否则蜂鸣器关闭
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit adjust=P3^0;
sbit onoff= P3^1;
sbit jia= P3^2;
sbit jian= P3^3;
sbit confirm=P3^4;
sbit led_am=P1^0;
sbit led_pm= P1^1;
sbit led_onoff=P1^2;
sbit led_ad_alarmtime= P1^3;
sbit led_ad_nowtime=P1^4;
sbit buzzer=P1^5;
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 dispbuf[6]={0,0,0,0,0,0};
unsigned char hour=10,minute=30,second=0;
unsigned char alarmsecond=11,alarmminute=10,alarmhour=0;
bit alarm;
展开阅读全文