当前位置:   article > 正文

单片机的电子万年历设计_单片机万年历

单片机万年历

 设计功能

(1)主要采用51单片机+最小系统+LCD液晶显示模块+DS1302时钟模块+蜂鸣器提示音模块+DS18B20温度采集模块+按键模块。
(2)时钟芯片采用DS1302,温度传感器采用DS18B20。
(3)有一组闹钟和阴历显示功能,有闰年补偿,可以准确及正确的显示时间等信息。
(4)可以显示年、月、日、时、分、秒、星期、温度、农历和闹钟设定。
(5)带有纽扣电池给DS1392芯片持续供电,掉电走时,不用重新调时。

原理图:

原理图绘制软件采用AD2013。主要由51单片机作为数字钟的核心控制器,可以通过它的时钟信号进行计时实现计时功能,将其时间数据经单片机输出,利用显示器显示出来,通过按键可以进行定时、校时功能。输出设备显示器可以用液晶显示技术。

其总体硬件原理图如图所示。

 

仿真设计

仿真软件采用Protues7.8。

 

程序设计

程序采用C作为编程语言,使用Keil5作为编程软件,仅展示一部分;

  1. //-------------------------------
  2. void init(void) //定时器、计数器设置函数
  3. {
  4. TMOD=0x11; //指定定时/计数器的工作方式为3
  5. TH0=0; //定时器T0的高四位=0
  6. TL0=0; //定时器T0的低四位=0
  7. TH1=0x3C;
  8. TL1=0xB0;
  9. EA=1; //系统允许有开放的中断
  10. ET0=1; //允许T0中断
  11. ET1=1;
  12. // IT1=1;
  13. // IT0=0;
  14. PT1=1;
  15. PT0=0;
  16. TR0=1; //开启中断,启动定时器
  17. TR1=0;
  18. }
  19. void InitialTimer2(void)
  20. {
  21. T2CON = 0x00; //16 Bit Auto-Reload Mode
  22. TH2 = RCAP2H = 0x3C; //重装值,初始值 TL2 = RCAP2L = 0x18;
  23. TL2 = RCAP2L = 0xB0;
  24. ET2=1; //定时器 2 中断允许
  25. TR2 = 0; //定时器 2 启动
  26. }
  27. //*******************主函数**************************
  28. //***************************************************
  29. void main()
  30. {
  31. ds1302_init(); //调用DS1302时钟的初始化子函数
  32. init(); //调用定时计数器的设置子函数
  33. lcd_init(); //调用液晶屏初始化子函数
  34. InitialTimer2();
  35. led=1; //关闭LCD的背光电源
  36. while(1) //无限循环下面的语句:
  37. {
  38. keyscan(); //调用键盘扫描子函数
  39. led=led1;
  40. }
  41. }

关注公众号-单片机实例设计,发送“万年历”获取资料;

下载地址

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号