基于单片机的多功能电子万年历设计(一)

最新更新时间:2012-11-15来源: 互联网关键字:单片机  多功能  电子万年历 手机看文章 扫描二维码
随时随地手机看文章

引言

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

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

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

  电路设计框图

  系统硬件概述

  本电路是由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提供终止单字节或多字节数据的传送手段。

  

  图1 整体电路框图

  

  图2 主控制系统

  

  图3 时钟控制系统

  时钟电路模块工作原理

  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所示。

  表1 DS1302的控制字格式

  

  

  图4 DS1302读/写时序图

  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时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值。

  表2 DS1302的日历、时间寄存器

  

  

  图5 DS18B20温度采集

  显示模块的设计

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

  系统的软件设计

  

  图6 LED动态扫描显示

  

  图7 主程序流程图

关键字:单片机  多功能  电子万年历 编辑:神话 引用地址:基于单片机的多功能电子万年历设计(一)

上一篇:低功耗控制与设计的几个要点
下一篇:基于单片机的多功能电子万年历设计(二)

推荐阅读最新更新时间:2023-10-12 20:44

《世上只有妈妈好》51单片机汇编语言程序
;《世上只有妈妈好》51单片机汇编语言程序 ;2007-5-22 作者:徐学军 ;注意有一个51单片机C语言程序与之对应 ;此程序在硬件上调试通过 ;本程序的单片机晶振采用11.0592MHZ SPK BIT P1.7 ORG 0000H LJMP MAIN ORG 000BH LJMP TIMER0 MAIN: MOV TMOD,#01H ;置CT0定时工作方式1 MOV IE,#82H ;CPU开中断,CT0开中断 MOV R5,#0 PLAY: MOV A,R5
[单片机]
MSP430单片机的特点及在接收机中的应用
  一、 引言   一款数据广播编码器和微型低功耗调频数据广播接收机,整套系统采用连续相位频移键控(CPFSK)调制方式,副载波频率为72KHz,占用带宽约16Khz,数据传输速率4.8KHZ。采用CPFSK调制方式使接收机易于实现,与QPSK的调制方式相比对相位稳定度要求不高,不易受外界温度噪声的影响,而且在信号解调处理时实现低功耗。硬件结构框图如下: 二、MSP430单片机的特点及在接收机中的应用   MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16位超低功耗、具有精简指令集(RISC)的混合信号处理器(Mixed Signal Processor)。称之为混合信号
[单片机]
MSP430<font color='red'>单片机</font>的特点及在接收机中的应用
MCS-51单片机P0口扩展技术研究
0 引言 在单片机家族的众多成员中,MCS-51系列单片机以其优越的性能、成熟的技术、高可靠性和高性价比,占领了工业测控和自动化工程应用的主要市场,并成为国内单片机应用领域中的主流机型。 MCS-51单片机的并行口有P0、P1、P2和P3,由于P0口是地址/数据总线口,P2口是高8位地址线,P3口具有第二功能,这样,真正可以作为双向I/O口应用的就只有P1口了。这在大多数应用中是不够的,因此,大部分MCS-51单片机应用系统设计都不可避免的需要对P0口进行扩展。 由于MCS-51单片机的外部RAM和I/O口是统一编址的,因此,可以把单片机外部64K字节RAM空间的一部分作为扩展外围I/O口的地址空间。这样,单片机就可
[单片机]
自制单片机之八……USB-ISP下载线
  现在的笔记本包括台式机都渐渐地舍弃了并口、串口;很多网友也跟我说,台式没有并口了,下载线没法用了,让我帮他想想办法。看来做个USB-ISP下载线是势在必行了。   在网上搜了下,主要有两种方案,一种是用FT245串口芯片加ATMEGA8的方案,另一种是只用ATMEGA8进行USB串口协议的软件模拟和ISP下载全部完成。据说第一种稳定,但成本高,电路复杂,不便自制。我们还是本着低成本,简单易做的原则进行。就用单个M8来做。   好!废话少说,干活。在网上搜了一下找了个BUG少,易于自制的图。 iframe id="iframe_0.15927299787290394" src="data:text/html;charset=u
[单片机]
自制<font color='red'>单片机</font>之八……USB-ISP下载线
基于单片机通用引脚的软件UART设计
引言 随着单片机应用技术的不断深入,由单片机构成的多机系统取得了长足的发展,多个单片机之间以串口进行数据传输,构成复杂的主从式通讯网。在多机系统中的有一些单片机承担着复杂的通讯任务,当计算机的串口不能满足需要,就必须对串口进行扩展。如多参数医用监护仪、小区防盗报警系统、RS485总线控制系统等。 目前扩展串口的方法主要有以下方法, ①、采用串口扩展芯片实现,如ST16C550、ST16C554、SP2538、MAX3110等,虽然成本较高, 但系统的可靠性得到了保证,适用于数据量较大、串口需求较多的系统;②、采用分时切换的方法将一个串口扩展与多个串口设备通信,分时复用的方法成本低, 但只适用于数据量不大的场合, 并且只
[单片机]
ATmega16A单片机UBRRH和UCSRC说明
简介:关于ATMEGA16串口,有点要注意,UBRRH和UCSRC这个寄存器使用同一个IO地址,所以在设置和读取方面要注意。 单片机UART的UCSRC和UBRRH两个寄存器是共用地址的,通过最高位的URSEL来选择更新哪个数据。比如:写UCSRC=0x86,那么0x86的最高位Bit7=1,所以这组数据会更新UCSRC的值;写UBRRH=0x01,那么0x01的最高位Bit7=0,所以这组数据会更新UBRRH的值无需专门更新URSEL的值。如果写成了UBRRH=0x81,那么就会去更新UCSRC的值,是自动识别的。在网上看到有朋友问:为什么在程序中写UBRRH的时候没有先将URSEL置0?而是直接设置 UBRRH=BAUD_
[单片机]
ATmega16A<font color='red'>单片机</font>UBRRH和UCSRC说明
基于单片机双CPU构成的复杂系统应用研究
  单片机以其功能强、体积小、可靠性高及价格低廉等优势,被广泛应用在各种智能化仪器、仪表以及各种小型控制系统中。但其本身结构较为简单,自身资源少,在一些较为复杂的应用系统中就显出其硬件资源不足,速度太慢等缺点。在这种情况下,往往采取双CPU或多CPU的设计方案,以弥补其不足。但是由于单片微机不像通用的微机系统具有其它总线主控设备向CPU请求总线使用申请信号输入端,以及CPU对系统中其他总线主控设备请求使用权的应答信号输出端,这就给双CPU系统的设计带来一定的困难。本文提出一种双CPU共享外部数据存储器的设计方案,并介绍了该系统的几种应用实例。 1 系统的硬件设计   ATMEL公司的89系列是目前广泛应用的单片微机,图1
[单片机]
基于单片机的语音数字联网火灾报警器设计
1 引 言   我国的火灾自动报警控制系统经历了从无到有、从简单到复杂的发展过程,其智能化程度也越来越高。目前国内厂家多偏重用于大型仓库、商场、高级写字楼、宾馆等场所大型火灾报警系统的研发,他们采用集中区域报警控制方式,其系统复杂、成本较高。而在居民住宅区、机房、办公室等小型防火单位,需要设置一种单一或区域联网、廉价实用的火灾自动探测报警装置,因此,研制一种结构简单、价格低廉的语音数字联网火灾报警器是非常必要的。   一般小型防火单位火灾报警系统如图1所示。现场火灾报警器通过对传感器火情信息的检测,使用智能识别算法实现对火灾的监测。当报警器监测到火情信息后,直接通过Modem经公用电话交换网迅速向消防指挥中心报告火情信息(包括火灾
[单片机]
基于<font color='red'>单片机</font>的语音数字联网火灾报警器设计
小广播
最新模拟电子文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved