微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于AT89S52单片机的多功能电子万年历

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

时间:05-21 来源:互联网 点击:

温原理

低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器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菜单的相应命令仿真程序和电路的运行情况。

图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 apos;工程名apos;。在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个独立按键,根据使用者的需要可以随时对时间进行校准、选择时间、温度显示等,综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top