(1)主要使用51单片机 最小系统 LCD液晶显示模块 DS1302时钟模块 蜂鸣器提示音模块 DS18B20温度采集模块 按键模块。 (2)采用时钟芯片DS温度传感器采用1302DS18B20。 (3)有一组闹钟和阴历显示功能,有闰年补偿,显示时间准确正确。 (4)可显示年、月、日、时、分、秒、周、温度、农历和闹钟设置。 (5)带纽扣电池DS1392芯片持续供电,掉电时无需重新调时。
采用原理图绘制软件AD2013。51单片机主要用作数字钟的核心控制器,可通过其时钟信号实现计时功能,通过单片机输出时间数据,使用显示器显示,按钮可进行定时校时功能。输出设备显示器可采用液晶显示技术。
其整体硬件原理图如图所示。
仿真软件采用Protues7.8。
程序使用C作为编程语言Keil作为编程软件,只显示一部分;
//------------------------------- void init(void) ///定时器,计数器设置函数 { TMOD=0x11; ///指定时间/计数器的工作模式为3 TH0=0; //定时器T0的高四位=0 TL0=0; //定时器T0的低四位=0 TH1=0x3C; TL1=0xB0; EA=1; ///系统允许开放中断 ET0=1; //允许T0中断 ET1=1; // IT1=1; // IT0=0; PT1=1; PT0=0; TR0=1; //打开中断,启动定时器 TR1=0; } void InitialTimer2(void) { T2CON = 0x00; //16 Bit Auto-Reload Mode TH2 = RCAP2H = 0x3C; ///重装值,初始值 TL2 = RCAP2L = 0x18; TL2 = RCAP2L = 0xB0; ET2=1; //定时器 2 中断允许 TR2 = 0; //定时器 2 启动 } //*******************主函数************************** //*************************************************** void main() { ds1302_init(); //调用DS初始化子函数1302小时钟 init(); ///调用定时计数器的设置子函数 lcd_init(); ///调用液晶屏初始化子函数 InitialTimer2(); led=1; //关闭LCD的背光电源 while(1) ///以下句子无限循环: { keyscan(); ///调用键盘扫描子函数 led=led1; } }
关注微信官方账号-单片机实例设计,发送万年历获取信息;
下载地址