基于AT89S52的多功能电子万年历

发布者:星尘之泪最新更新时间:2013-10-14 来源: eefocus关键字:AT89S52  电子万年历 手机看文章 扫描二维码
随时随地手机看文章
引言

随着生活节奏的日益加快,人们的时间观也越来越重,同时对电子钟表、日历的需求也随之提高。因此,研究实用电子时钟及其扩展应用,有着非常现实的意义,具有很大的实用价值。

本系统程序由主程序、中断服务函数和多个子函数构成。主函数主要完成各子函数和中断函数的初始化。定时中断函数主要完成时钟芯片的定时扫描及键盘扫描。时钟芯片的读写函数主要是将时间、日历信息读出来,并把要修改具体值写入时钟芯片内部。

系统的硬件设计与电路原理

电路设计框图

系统硬件概述

本电路是由AT89S52单片机为控制核心,具有在线编程功能、低功耗、能在3V的超低压工作。时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。可产生年、月、日、周日、时、分、秒,具有使用寿命长、精度高和低功耗等特点,同时具有掉电自动保存功能。

主控制模块

单片机主控制模块的设计

AT89S52单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3,MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。
时钟电路模块

时钟电路模块的设计

DS1302的引脚排列如图3所示,其中Vcc1为后备电源,Vcc2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电;当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768KHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。

时钟电路模块工作原理

DS1302在每次进行读、写程序前都必须初始化,先把SCLK端置“0”,接着把RST端置“1”,最后才给予SCLK脉冲;读/写时序如图4所示。表1为DS1302的控制字,此控制字的位7必须置1,若为0则不能对DS1302进行读写数据。对于位6,若对程序进行读/写时RAM=1,对时间进行读/写时,CK=0。位1至位5指操作单元的地址。位0是读/写操作位,进行读操作时,该位为1;该位为0则表示进行的是写操作。控制字节总是从最低位开始输入/输出的。表2为DS1302的日历、时间寄存器内容:“CH”是时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位为0时,时钟开始运行。“WP”是写保护位,在任何的对时钟和RAM的写操作之前,WP必须为0。当“WP”为1时,写保护位防止对任一寄存器的写操作。

DS1302的控制字节

DS1302的控制字如表1所示。控制字节的高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。

数据输入输出(I/O)

在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。如图4所示。[page]

DS1302的寄存器

DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表2。

此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。

时钟模块实现功能

该模块为系统提供精准的秒、分、时、日、月、年等实时时间信息,星期则由编程计算得到。

温度采集模块

温度采集模块设计

如图5所示。采用数字式温度传感器DS18B20,它具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,使用P1.7与DS18B20的I/O口连接加一个上拉电阻,Vcc1接电源,Vcc2接地。

DS18B20的测温原理

低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55℃所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值。

显示模块的设计

本次设计采用的是LED动态显示方式,由于PROTEUS内没有LED,故用LCD代替LED进行仿真,与主控制芯片AT89C52相连。如图6所示。

系统的软件设计

主程序流程框图

Keil C与Proteus的联调与测试结果

Proteus7.6是目前最好的模拟单片机外围器件的工具,可以仿真51系列、AVR、PIC等常用的MCU及其外围电路(如LCD,RAM,ROM,键盘,马达,LED,AD/DA,部分SPI器件,部分IIC器件等),使用Proteus7.6和Keil C可以像使用仿真器一样调试程序。

Proteus的工作过程

运行Proteus的ISIS程序后,进入该仿真软件的主界面如图8所示。在工作前,要设置view菜单下的捕捉对齐和system下的颜色、图形界面大小等项目。通过工具栏中的p(从库中选择元件命令)命令,在pick devices窗口中选择电路所需的元件,放置元件并调整其相对位置、元件参数设置、元器件间连线、编写程序;在source菜单的Define code generation tools菜单命令下,选择程序编译的工具、路径、扩展名等项目;在source菜单的Add/remove source files命令下,加入单片机硬件电路的对应程序;通过debug菜单的相应命令仿真程序和电路的运行情况。[page]

图8 Proteus的启动界面

Proteus软件所提供的调试手段

Proteus提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。对于单片机硬件电路和软件的调试,Proteus提供了两种方法:一种是系统总体执行效果,一种是对软件的分步调试以看具体的执行情况。

软件和硬件结合的应用系统

软件和硬件的结合,就是一个单片机的应用系统了。在这一阶段,硬件电路的设计已经不是最为关键的了,而软件系统的设计、调试和运行才是实验的主要内容。因此可以以建议性的意见给出具体的硬件电路,并提出该电路所需要完成的具体工作,进行软件的设计和调试。
Keil C的介绍

keil C的运行界面

运行Keil C后的运行界面如图9所示。

图9 keil C的运行界面

Keil C与proteus联调测试

1、安装keil与proteus7.6;
2、打开proteus,画出相应电路。在proteus的tools菜单中选中use remote debug monitor;
3、在keil中编写MCU的程序;
4、进入keil的project菜单option for target '工程名'。在DEBUG选项中右栏上部的下拉菜选中Proteus VSM Monitor-51 Driver;
5、在keil中进行debug,同时在proteus中查看直观的结果,LCD显示;
6、把keil里的文件编译后输出hex的文件,在proteus中把单片机的加载程序文件换成keil中的hex文件,然后运行。

运行结果

结果显示

由图1整体电路框图可知,LED显示结果,如图10所示。

图10 结果显示
调节显示
日期和时间的修改由4个按键构成。键P0为调节;P2^0,模式切换键(向左移)向左移;键P2^1,加法按钮;键P2^2,减法按钮;键P2^3,立刻跳出调整模式按钮。
按动PO时秒闪烁进入调节系统,如图11所示。
按动P2^0向左移,对分进行调节,如图12所示。
按动P2^1向左移,对时进行加调节,如图13所示。

图14所示,是未调之前的显示,按动P2^2向左移,对年进行减调节,如图15所示
按动P2^3向左移,退出调节恢复如图16所示。


总结

本文设计了一个多功能的电子万年历。电路是由AT89S52单片机为控制核心,与时钟芯片DS1302、温度芯片DS18B20、按键、LED显示等模块组成硬件系统。在硬件系统中设有3个独立按键,根据使用者的需要可以随时对时间进行校准、选择时间、温度显示等,综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。

在整个设计过程中,充分发挥个人的主观能动性,自主学习,学到了许多没学到的知识,增加了动手能力的考验,达到了预期的目的。总之,这次设计使我的能力得到了全方位的提高。

关键字:AT89S52  电子万年历 引用地址:基于AT89S52的多功能电子万年历

上一篇:基于AT89S52的三相桥式可控触发电路的设计
下一篇:基于LabVIEW串口通信的数据采集串口收录系统设计

推荐阅读最新更新时间:2024-03-16 13:28

AT89S52抢答器程序
那是我自己写的简易抢答器,key1按下数码管显示1,同时发光二级管第1个闪动;key2按下数码管显示2,同时发光二级管第2个闪动; key3按下数码管显示3,同时发光二级管第3个闪动; key4 按下数码管显示4,同时发光二级管第4个闪动; #include reg51.h #define uchar unsigned char sbit wi=P2^7; sbit key4= P3^3; sbit key1= P3^0; sbit key2= P3^1; sbit key3= P3^2; uchar display_code ={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
[单片机]
STC89C52和AT89S52用法上的注意总结
1)STC89C52RC单片机: 8K字节程序存储空间; 512字节数据存储空间; 内带2K字节EEPROM存储空间; 2)AT89S52单片机: 8K字节程序存储空间; 256字节数据存储空间; 没有内带EEPROM存储空间; 另外sTC系列的直接用串口下载就可以AT系列的要多装一个驱动 STC89C52和AT89S52用法上的注意总结 STC和AT的引脚完全兼容,硬件连接基本一样,但STC的是增强型,多了一些AT没有的功能,比如储存容量RAM大小,还有多了TImer3和P4口等,因此STC用AT的程序是没什么问题的,但是AT用STC的程序就有可能不正常,比如STC上我使用了TImer3或者P4口,而AT并没有这
[嵌入式]
基于AT89S52的程控开关稳压电源设计方案
  开关电源是利用现代电力电子技术,控制开关管开通和关断的时间比率,维持稳定输出电压的一种电源。由于拥有较高的效率和较高的功率密度,开关电源在现代电子系统中的使用越来越普及。开关电源高频化、模块化和智能化是其发展方向。其中,步进可调、实时显示是开关电源智能化研究方向之一。现设计开关电源,技术指标为:输出电压30V至36V可调,最大输出电流2A,有过流保护功能,能对输出电压进行键盘设定和步进调整、步进值1V,并能实时显示输出电压和电流的开关 稳压电源 。   1 总体设计方案   采用 AT89S52 单片机为控制核心,对普通的开关电源控制部分进行优化设计,并通过软件编程实现了对开关电源的智能控制。设计中采用隔离变压器将市电变压
[单片机]
基于<font color='red'>AT89S52</font>的程控开关稳压电源设计方案
采用AT89C2051和AT89S52单片机实现红外遥控电子密码锁的设计
随着科学技术的进步和社会经济的发展,电子密码锁取代传统的机械锁已成为一种必然的趋势。以往基于单片机的密码锁系统,直接将编好的密码程序存储在片内EPROM中,但不易实现密码的修改;如要完成修改密码功能,多采用片外串行E2PROM实现。本文研究并设计的一种基于单片机的红外遥控电子密码锁,不但具有普通密码锁智能控制上锁、开锁、报警等特点,而且在不扩展E2PROM的情况下,可以实现8位密码任意修改的功能,节省了硬件资源,减小了系统体积,这是本设计的一个创新点。另外还增加了遥控开锁的特点。所以该系统不但成本低、保密性强,更适用于那些正常人体不宜接近的特殊场合,比如高辐射区、高传染区等。 1 系统硬件设计方案 1.1 系统总体设计 系统主
[单片机]
采用AT89C2051和<font color='red'>AT89S52</font>单片机实现红外遥控电子密码锁的设计
基于TMS320LF2407A和AT89S52三相异步电机双闭环调速控制系统设计
摘要:针对某装备中三相交流异步电机调速的要求,以 TMS320LF2407 A和AT89S52为核心采用磁场定向控制策略设计了一电流、转速双闭环调速控制系统,给出了硬件原理框图、关键器件、设计思想和程序流程图。实验结果表明,该控制系统具有动态响应快,控制精度高,实时显示,数据存储,抗干扰强等优点。 关键词: TMS320LF2407A ;AT89S52;异步电机;磁场定向控制;实时显示 O 引言 三相交流异步电机以其结构简单,体积小,重量轻,价格低,维修方便等优点,广泛应用于武器装备、给料系统、数控机床、柔性制造技术、各种自动化设备等领域,其转速控制系统性能的优劣直接决定了设备性能的发挥。随着高性能微处理器及新型电力电子器件
[工业控制]
基于TMS320LF2407A和<font color='red'>AT89S52</font>三相异步电机双闭环调速控制系统设计
基于AT89S52某型直升机控制保护盒的数字化设计
直升机起飞后,由飞机发动机带动发电机发电为机载设提供一个稳定的115 V/400 Hz的交流电。所有用电的机载设备电源都是直接使用115 V/400 Hz或经变换后使用,因此,该电源的稳定性直接关系到机载设备的寿命及飞行安全。机载控制保护盒主要监测发电机电网的电压、频率等信号,当电网出现过压、欠压、过频、欠频、过过频、欠频和差动电流超标时,在安全时间内及时切断主电路和发电机激磁电路转为备用电源供电,从而有效保护机载设备和飞行安全。 某型直升机机载控制保护盒是上世纪80年代的产品,控制电路均由分立元件搭建的模拟电路实现,具有体积大、测量误差大等缺点。本文采用AT89S52单片机设计了一款数字化机载控制保护盒,该数字化机载控制保
[单片机]
基于<font color='red'>AT89S52</font>某型直升机控制保护盒的数字化设计
基于AT89S52和ISD1760的水闸语音报警系统设计
摘要:为避免水闸附近渔船在水闸开闸放水时被上游的水冲走,设计出一种水闸语音报警系统。该系统基于单片机AT89S52和语音芯片ISD17 60,在开闸前10分钟,通过系统的通信模块接收远程水闸控制中心发送的指令,判断指令的种类,给予相应的报警提示,同时控制水闸上方的报警指示灯闪亮,通知水闸附近的船只迅速撤离到安全水域。在巢湖市裕溪水闸实际应用中,该系统能够稳定地工作,有效地减少了水闸附近渔船发生危险的事故数,达到了避免不必要的伤亡和损失的要求。 关键词:语音报警;ISD1760;AT89S52;水闸 随着水利管理现代化的提高,水闸远程自动化控制逐渐普及。由于闸室采用无人值守运行方式,水闸开闸放水时,存在下游渔船被放水冲击而翻船,
[工业控制]
基于<font color='red'>AT89S52</font>和ISD1760的水闸语音报警系统设计
基于AT89S52单片机的家电控制系统设计
摘要:介绍了利用AT89S52单片机开发多路家电实时控制系统的实现方案。给出了设计所用的辅助硬件设备和硬件电路,同时,从系统的功能入手,分析了软件模块的设计思路。对设计方法进行了详细阐释,并分析了该设计的一些不足之处和改进的主要方向。 家电控制的智能化已成为社会需求的新趋势。基于微机控制系统的智能化家电使我们的生活更加便利。而是否能够实现远程家电的开关控制。又是否能够随时查询电器的工作状况,或者能够事先对家电的定时开关做出控制。又成为越来越感兴趣的研究方向。家电产品现已进入成熟期和稳定期。市场规模稳步上涨,但竞争日愈剧烈,其核心部件。即控制器性能及质量对企业产品的影响很大。同时,经济快速发展,人们对于家庭生活的舒适程
[家用电子]
基于<font color='red'>AT89S52</font>单片机的家电控制系统设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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