基于STC89S52单片机的电子万年历系统

发布者:w2628203123最新更新时间:2023-08-01 来源: elecfans关键字:STC89S52  单片机  电子万年历系统 手机看文章 扫描二维码
随时随地手机看文章

目前基于单片机控制技术的微电子技术得到空前的发展。广泛应用于各种控制领域、智能领域、仿真领域。控制领域里的定时计时控制、温度控制,在生产、生活等领域已经得到了广泛的应用。液晶显示模块在各种测量仪器、测量装置、显示仪表等日用电子产品中的应用越来越广泛,并且对器件的测量精度和显示精度的要求也越来越高,尤其是对时间的测量不但要求准确,而且需要读取数值更直观更方便。本文以AT89S52单片机为主控芯片,以DALLAS公司推出的实时时钟芯片DS1302为时钟控制芯片,以1602液晶显示模块为显示器,进行电子万年历系统的设计。本系统可同屏显示年、月、日、星期、温度以及闹钟设置等功能。

1 系统总体设计

本系统以STC89S52单片机为核心,结合时钟芯片DSl302,温度采集芯片DS18B20等外围器件,实现了万年历等一系列功能,并通过液晶屏和按键控制完成人机交互的功能。其系统总体设计框图如图1所示。

基于STC89S52单片机的电子万年历系统

2 系统硬件设计

2.1 单片机最小系统

本系统设计中使用的单片机为AT89S52,其内部是8位的CPU,8 KB片内ROM以及256 B的可使用的片内RAM,32根并行I/O接口,两个16位的定时/计数器,五个中断源,两个中断优先级的内部结构。单片机的最小系统如图2所示,单片机的复位电路和晶振电路如图3所示。

基于STC89S52单片机的电子万年历系统



2.2 时钟电路

其次还用到美国DALLAS公司推出的高性能、低功耗、带RAM的实时时钟电路DS1302,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5~5.5 V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。


DS1302的驱动电路如图4所示。


2.3 温度传感器驱动电路

系统的温度传感器采用DS18B20单线数字式温度传感器。该温度传感器适用电压为3~5 V(与单片机5 V电源供电可以适用同一电源),可测温度范围为-55~+125 ℃(完全可以满足本系统),而且它只需单总线进行信息交互,即只需占用单片机的一个I/O口,而且基本不需要外部原件。温度传感器电路原理图如图5所示。

基于STC89S52单片机的电子万年历系统

2.4 液晶显示驱动电路

本系统里用1602LCD显示模块来显示万年历的年月日、星期及时间信息,该液晶模块5 V电压驱动,带有背光,对比度可调;内建复位电路,有80 B显示数据存储器DDRAM,有160个5×7点阵的字型的字符发生器CGROM,8个可由用户自定义的5×7点阵的字型的字符发生器CGRAM;与外部CPU接口采用并行或者串行两种控制方式。


单片机控制液晶显示模块的接口方式主要有两种:直接访问方式和间接访问方式。直接访问方式是把液晶显示模块作为存储器或I/O设备直接连接到单片机总线上;而间接访问方式是把液晶显示模块作为终端与单片机的并行接口连接,而单片机通过对该并行接口的操作实现对液晶显示。一般在进行液晶显示模块的控制时,采用间接访问方式。如图6所示为液晶屏驱动电路。

基于STC89S52单片机的电子万年历系统

3 系统软件设计

本系统选用适时性强与透明度高的C语言作为编程语言,系统软件的开发全部采用Keil μVision 3进行。系统程序的开发,采用了流行的模块化设计方法。在程序设计中,可根据系统功能,将整个软件系统划分为若干个功能相对独立易于解决的模块,每个模块是一个结构完整、相对独立的程序段,能完成某一规定的任务,实现某个具体的功能。


系统软件的设计,主要由如下程序模块组成:DS1302时钟控制,DS18B20温度采集、1602液晶显示驱动等。整个系统的主程序如图7所示。

基于STC89S52单片机的电子万年历系统

时间调整:在正常走时状态下,按Set键进入时间调整界面,可以依次调节年、月、日、星期、时、分等信息,按Out键退出当前的调整状态,恢复正常走时。


闹钟调整:在正常走时状态下,连按Set键两次进入闹钟设置界面,可以依次调节闹钟小时、分、闹钟开启和闹钟关闭。当设置闹钟时间后,按Set键即可退出闹钟设定界面,闹钟设置完成。若不想使用闹钟,就按Out键则闹钟被关闭。


4 结语

本系统利用AT89S52单片机进行可编程控制,结合外围温度传感器、液晶屏等,通过DS1302的使用可以降低编写程序的复杂程度。Keil C编译软件实现单片机控制液晶显示模块的万年历设计,可以达到比较好的没计效果。系统硬件电路采用成熟的电路设计,元件选用成本较低的器件,电路稳定,扩干扰力强,性价比较高。软件开发用C语言,采用模块式结构,系统功能易于扩展。

关键字:STC89S52  单片机  电子万年历系统 引用地址:基于STC89S52单片机的电子万年历系统

上一篇:51单片机独立按键与矩阵按键的工作原理
下一篇:AT89S8252单片机实现接触式IC卡读写控制的设计

推荐阅读最新更新时间:2024-11-02 14:07

51单片机学习:ADC模数转换实验--光敏电阻AD采集
实验名称:ADC模数转换实验--光敏电阻AD采集 接线说明: 实验现象:下载程序后,数码管上显示AD模块采集光敏电阻的AD值 注意事项: ***************************************************************************************/ #include public.h #include smg.h #include xpt2046.h /******************************************************************************* * 函 数 名 : main * 函数功能 : 主函数
[单片机]
基于MSP430FE42x的防窃电电能表及其应用分析
当前,电子式电能表的防窃电技术在电能表行业中的地位越来越重要,不同国家、地区的电能表市场都在不同程度上要求电能表的防窃电计量。人们所意识到的窃电现象和防窃电技术的类型在不断增多,而且每年都会针对新的窃电行为,研究出相应的防窃电技术。 在传统的电子式电能表设计中,由于以下几点原因,导致它们不能较完善的检测或处理窃电行为:仅使用进线端的电压和火线的进出端所流经的电流作为电能计量的依据;绝大多数没有使用很可靠的铅封;一些窃电方式很容易操作,但是很难检测。 MSP430FE42x系列单片机是美国德州仪器公司新推出的单相防窃电多功能电能表专用芯片,它是德州仪器MSP430系列产品的成员,是一款超低功耗的16位单片机。MSP430FE42
[应用]
STM8单片机无线315&433脉宽自适应_通用解码程序
单片机源程序如下: /* RFINT不能用PA1 要改板 改在PC6 */ /* Includes ------------------------------------------------------------------*/ #define MAIN_C #include ALL.h void Delay(u16 nCount) { /* Decrement nCount value */ while (nCount != 0) { nCount--; } } //10ms定时中断初始 在PWM时可更改 void TIME1_CONFIG(void) { /* Init TIMER 1 *
[单片机]
MCS-51查找相同数个数程序
  在2000~200FH中查出有几个字节是零,把零的个数放在2100H中。      程序框图   ORG 0AA0H 0AA0 7810 L5800: MOV R0,#10H ;查找16个字节 0AA2 7900 MOV R1,#00H 0AA4 902000 MOV DPTR,#2000H 0AA7 E0 L5811: MOVX A,@DPTR 0AA8 B40001 CJNE A,#00H,L5816;取出内容与00H相等吗? 0AAB 09 INC R1 ;取出个数加1 0AAC A3 L5816: INC DPTR 0AAD D8F8
[单片机]
MCS-51查找相同数个数程序
51单片机2个外部中断的应用
;51单片机的P1口上接有8只LED。 ;在外部中断0输入引脚P3.2接有一只按钮开关K1。 ;在外部中断1输入引脚P3.3接有一只按钮开关K2。 ;要求K1和K2都未按下时,P1口的8只LED呈流水灯显示, ;仅K1(P3.2)按下时,左右4只LED交替闪烁。 ;仅按下K2(P3.3)时,P1口的8只LED全部闪亮。 ;两个外中断的优先级相同。 ;============================================= ;用 PROTSUE 仿真界面如下: ;图片链接:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/album/item/50c618c5f08ba9
[单片机]
51<font color='red'>单片机</font>2个外部中断的应用
19课:单片机定时器、中断试验
我们在学单片机时我们第一个例程就是灯的闪烁,那是用延时程序做的,现在回想起来,这样做不很恰当,为什么呢?我们的主程序做了灯的闪烁,就不能再干其它的事了,难道单片机只能这样工作吗?当然不是,我们能用定时器来实现灯的闪烁的功能。 例1:查询方式 ORG 0000H AJMP START ORG 30H START: MOV P1,#0FFH ;关所 灯 MOV TMOD,#00000001B ;定时/计数器0工作于方式1 MOV TH0,#15H MOV TL0,#0A0H ;即数5536 SETB TR0 ;定时/计数器0开始运行 LOOP:JBC TF0,NEXT ;如果TF0等于1,则清TF0并转NEXT处 AJMP LOO
[单片机]
AT89C52单片机与ARINC429航空总线接口设计
摘要:DEI1016是一种可支持ARINC429航空总线协议的串行接收、发送器件。文中介绍了DEI1016的主要功能和工作原理,给出了DEI1016的数据收发过程,同时重点介绍了DEI1016与AT89C52单片机接口电路的设计方法。 关键词:DEI1016;接收;发送;接口设计;AT89C52 1 DEI1016的主要功能 DEI1016是Device Engineering Incorporated 生产的一种可支持ARINC429航空总线协议的串行接收、发送器件。该器件的主要功能如下: ●串行数据字长为32或25位; ●串行数据速率为100kbps或12.5kbps; ●具有独立的收、发电路; ●两个独立的接
[单片机]
手把手教你基于RT-Thread Studio使用STM32单片机的PWM外设
一、使用说明 目前我使用的是STM32L475系列单片机,是ali当时在PDD 50块钱卖的一个开发板,其他STM32单片机参考即可,这里会手把手教大家基于RTT Studio 来使用PWM。 二、创建工程 1.创建工程 首先大家打开RT-Thread Studio 来基于单片机创建工程。点击左上角文件,新建 RT-Thread项目 Project name就是项目名称,如果大家想自定义路径保存,就取消掉缺省位置然后自定义路径。 2.芯片参数设置 选择基于芯片,下面的参数需要大家根据自己的主板来选择,我这个板子 使用LPUART作为CMD输出,单片机型号,下载器比如JLINK或者STLINK等等都需要自己适配开发板。
[单片机]
手把手教你基于RT-Thread Studio使用STM32<font color='red'>单片机</font>的PWM外设
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved