赞
踩
随着生活和工作的繁忙,人们在获知时间的同时,对于与人们生活和工作息息相关的信息也不可缺少,比如:温度,日期等;多功能电子时钟的诞生,很好解决了这一问题,它在显示时间的同时,又显示了温度、日期、时间等诸多功能于一身。电路主要由51单片机+最小系统+LCD液晶显示电路+DS1302时钟电路+蜂鸣器提示音电路+DS18B20温度采集电路+按键电路;
(1)本采用STC89C51/52RC(与AT89S51/52、AT89C51/52通用)单片机作为主控制器;
(2)时钟芯片采用DS1302,温度传感器采用DS18B20;
(3)有一组闹钟和阴历显示功能,有闰年补偿,可以准确及正确的显示时间等信息。
(4)可以显示年、月、日、时、分、秒、星期、温度、农历和闹钟设定。
(5)电路上的纽扣电池可在掉电后给时钟芯片供电,重上电后不用重新调时。
(1)原理图主要采用AD软件进行设计,如图:
(2)Protues仿真图如下:
主程序源码
//------------------------------- 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://pan.baidu.com/s/1o-8IuEyKzgbpSDkesR6rkw?pwd=urof
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。