赞
踩
设计功能
(1)主要采用51单片机+最小系统+LCD液晶显示模块+DS1302时钟模块+蜂鸣器提示音模块+DS18B20温度采集模块+按键模块。
(2)时钟芯片采用DS1302,温度传感器采用DS18B20。
(3)有一组闹钟和阴历显示功能,有闰年补偿,可以准确及正确的显示时间等信息。
(4)可以显示年、月、日、时、分、秒、星期、温度、农历和闹钟设定。
(5)带有纽扣电池给DS1392芯片持续供电,掉电走时,不用重新调时。
原理图:
原理图绘制软件采用AD2013。主要由51单片机作为数字钟的核心控制器,可以通过它的时钟信号进行计时实现计时功能,将其时间数据经单片机输出,利用显示器显示出来,通过按键可以进行定时、校时功能。输出设备显示器可以用液晶显示技术。
其总体硬件原理图如图所示。
仿真设计
仿真软件采用Protues7.8。
程序设计
程序采用C作为编程语言,使用Keil5作为编程软件,仅展示一部分;
- //-------------------------------
- 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(); //调用DS1302时钟的初始化子函数
- init(); //调用定时计数器的设置子函数
- lcd_init(); //调用液晶屏初始化子函数
- InitialTimer2();
- led=1; //关闭LCD的背光电源
-
- while(1) //无限循环下面的语句:
- {
- keyscan(); //调用键盘扫描子函数
- led=led1;
- }
- }
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
关注公众号-单片机实例设计,发送“万年历”获取资料;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。