资讯详情

单片机的电子万年历设计

(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;     } }

关注微信官方账号-单片机实例设计,发送万年历获取信息;

下载地址

标签: 1392传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台