基于单片机的多功能电子万年历设计_第1页
基于单片机的多功能电子万年历设计_第2页
基于单片机的多功能电子万年历设计_第3页
基于单片机的多功能电子万年历设计_第4页
基于单片机的多功能电子万年历设计_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、引言随着生活节奏的日益加快, 人们的时间观也越来越重, 同时对电子钟表、 日历的需求也随之提高。 因此, 研究实用电子时钟及其扩展应用, 有着非常现实的意义, 具有很大的实用价值。本系统程序由主程序、 中断服务函数和多个子函数构成。 主函数主要完成各子函数和中断函数的初始化。 定时中断函数主要完成时钟芯片的定时扫描及键盘扫描。 时钟芯片的读写函数主要是将时间、日历信息读出来,并把要修改具体值写入时钟芯片内部。系统的硬件设计与电路原理电路设计框图系统硬件概述本电路是由 AT89S52 单片机 为控制核心,具有在线编程功能、低功耗、能在 3V 的超低压工作。时钟电路由 DS1302 提供,它是一种

2、高性能、低功耗、带RAM 的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,工作电压为 2.5V5.5V。采用三线接口与 CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM 数据。DS1302内部有一个31 X8的用于临时性存放数据的RAM寄存器。可产生年、月、日、周日、时、分、秒,具有使用寿命长、精度高和低功耗等特点,同时具有掉电自动保存功能。主控制模块单片机主控制模块的设计AT89S52 单片机为 40 引脚双列直插芯片,有四个I/O 口 P0 , P1 , P2 , P3 , MCS-51 单片机共有 4 个 8 位的 I/O 口( P0 、 P1 、

3、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 输入有两种功能:首

4、先, RST 接通控制逻辑,允许地址/命令序列送入移位寄存器;其次, RST 提供终止单字节或多字节数据的传送手段。图1整体电路框图图2主控制系统酢时钟控制系统时钟电路模块工作原理DS1302在每次进行读、写程序前都必须初始化, 先把SCLK端置“0”接着把RST端置“1,” 最后才给予SCLK脉冲;读/写时序如图4所示。表1为DS1302的控制字,此控制字的位 7必须置1,若为0则不能对DS1302进行读写数据。对于位6,若对程序进行读/写时RAM=1 , 对时间进行读/写时,CK=0。位1至位5指操作单元的地址。位 0是读/写操作位,进行读 操作时,该位为1;该位为0则表示进行的是写操作。

5、控制字节总是从最低位开始输入/输出的。表2为DS1302的日历、时间寄存器 内容:时钟暂停标志位,当该位为 1时, 时钟振荡器停止,DS1302处于低功耗状态;当该位为0时,时钟开始运行。“WP是写保护位,在任何的对时钟和 RAM的写操作之前, WP必须为0。当“W1时,写保护位防 止对任一寄存器的写操作。DS1302的控制字节DS1302的控制字如表1所示。控制字节的高有效位(位 7)必须是逻辑1,如果它为0, 则不能把数据写入 DS1302中,位6如果为0,则表示存取日历时钟数据,为 1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位 0)如为0表示要进行写操 作,为1表示

6、进行读操作,控制字节总是从最低位开始输出。数据输入输出(I/O) 在控制指令字输入后的下一个 SCLK时钟的上升沿时,数据被写入DS1302 ,数据输入从低 位即位0开始。同样,在紧跟8位的控制指令字后的下一个 SCLK脉冲的下降沿读出 DS1302 的数据,读出数据时从低位 。位到高位7。如图4所示。表1的控制字格式1DS1302的寄存器DS1302有12个寄存器,其中有 7个寄存器与日历、时钟相关,存放的数据位为 BCD码 形式,其日历、时间寄存器及其控制字见表2。此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读

7、写除充电寄存器外的所有寄存器内容。DS1302与RAM相关的寄存器分为两类: 一类是单个RAM单元,共31个,每个单元组态 为一个8位的字节,其命令控制字为 C0HFDH ,其中奇数为读操作,偶数为写操作;另一 类为突发方式下的 RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写卜FFH( t)。时钟模块实现功能 该模块为系统提供精准的秒、 分、时、日、月、年等实时时间信息, 星期则由编程计算得到。温度采集模块温度采集模块设计如图5所示。采用数字式温度传感器DS18B20 ,它具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,使用P 1.

8、7与DS18B20的I/O 口连接加一个上拉电阻,Vcc1接电源,Vcc2接地。DS18B20的测温原理低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1 ,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器 2的脉冲输入,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数, 进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 C所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55 C所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行

9、减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加 1,减法计数器1的预置将 重新被装入,减法计数器 1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循 环直到减法计数器 2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即 为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值。表2 DS1 302的日历、时间寄存器iB-iaT tid 一tnm石山3 !l U n1Q 廿1*9 H1 o +于a01丁看-AHGdRr .P-p一LO X 一ft AU&-a.金启1城0

10、t.jW一I1 *3_L2J显示模块的设计本次设计采用的是 LED动态显示方式,由于 PROTEUS内没有LED ,故用LCD代替LED进行仿真,与主控制芯片 AT89C52相连。如图6所示。系统的软件设计图E LE 动态扫描显示昼有于罹用nm.时何处盘子江“N图了主程序流程图主程序流程框图Keil C与Proteus的联调与测试结果Proteus7.6是目前最好的模拟单片机外围器件的工具,可以仿真51系列、AVR、PIC等常用的MCU及其外围电路(如 LCD , RAM , ROM ,键盘,马达,LED , AD/DA ,部分SPI 器件,部分IIC器件等),使用 Proteus7.6和Ke

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

12、电路的对应程序;通过 debug菜单的相应命令仿真程 序和电路的运行情况。Proteus软件所提供的调试手段Proteus提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。对于单片机硬件电路和软件的调试,Proteus提供了两种方法:一种是系统总体执行效果,一种是对软件的分步调试以看具体的执行情况。软件和硬件结合的应用系统软件和硬件的结合, 就是一个单片机的应用系统了。 在这一阶段,硬件电路的设计已经不是 最为关键的了,而软件系统的设计、调试和运行才是实验的主要内容。 因此可以以建议性的 意见给出具体的硬件电路,并提出该电路所需要完成的具体工作,进行软件的设计和调试。

13、Keil C的介绍keil C的运行界面运行Keil C后的运行界面如图 9所示。图9kHic的运行界面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中查看直

14、观的结果, LCD显示;6、把keil里的文件编译后输出hex的文件,在proteus中把单片机的加载程序文件换成keil中的hex文件,然后运行。运行结果结果显示由图1整体电路框图可知,LED显示结果,如图10所示。图1。结果显示日期和时间的修改由 4个按键构成。键 P0为调节;P2A0 ,模式切换键(向左移)向左移;键P2A1 ,加法按钮;键 P2A2 ,减法按钮;键 P2A3 ,立刻跳出调整模式按钮。按动PO时秒闪烁进入调节系统,如图 11所示。按动P2A0向左移,对分进行调节,如图 12所示。按动P2A1向左移,对时进行加调节,如图 13所示。图11秒调节图13时加调节图14所示,是未调之前的显示,按动P2A2向左移,对年进行减调节,如图 15所示按动P2A3向左移,退出调节恢复如图16

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论