文档库 最新最全的文档下载
当前位置:文档库 › AT89S52单片机的多功能电子万年历

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

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

摘要:本文介绍了基于AT89S52单片机的多功能电子万年历的硬件结构和软硬件设计方法。本设计由数据显示模块、温度采集模块、时间处理模块和调整设置模块四个模块组成。系统以AT89S52单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。温度采集选用DS18B20芯片,万年历采用直观的数字显示,数据显示采用1602液晶显示模块,可以在LCD1602上同时显示年、月、日、周日、时、分、秒,还具有时间校准等功能。此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。

关键字:单片机AT89S52 时钟芯片DS1302 温度传感器DS18B20 1602液晶显示器

前言

随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。目前,单片机技术的应用产品已经走进了千家万户。电子万年历的出现给人们的生活带来了诸多方便。随着微电子技术的高速发展,单片机在国民经济的个人领域得到了广泛的运用。单片机以体积小、功能全、性价比高等诸多优点,在工业控制、家用电器、通信设备、信息处理、尖端武器等各种测控领域的应用中独占鳌头,单片机开发技术已成为电子信息、电气、通信、自动化、机电一体化等专业技术人员必须掌握的技术。

单片机单芯片的微小体积和低的成本,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品中,成为现代电子系统中最重要的智能化工具,于是基于单片机的醒目而时尚的电子版万年历顺应而生。基于单片机的电子万年历结合了时钟和日历的功能,将其二者融为一体,在显示时间的同时还能显示日期和年、月,它主要是通过单片机来读取时钟芯片的时间、日期,然后送给显示设备显示出来。而电子万年历作为电子类小设计不仅是市场上的宠儿,也是是单片机实验中一个很常用的题目。因为它的有很好的开放性和可发挥性,因此对作者的要求比较高,不仅考察了对单片机的掌握能力更加强调了对单片机扩展的应用。而且在操作的设计上要力求简洁,功能上尽量齐全,显示界面也要出色。数字显示的日历钟已经越来越流行,特别是适合在家庭居室、办公室、大厅、会议室、车站和广场等使用,壁挂式LED数码管显示的日历钟逐渐受到人们的欢迎。LED数字显示的日历钟显示清晰直观、走时准确、可以进行夜视,并且还可以扩展出多种功能。

成都理工大学工程技术学院毕业设计

1绪论

1.1课题研究的背景

随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。

此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。

1.2课题的研究目的与意义

二十一世纪是数字化技术高速发展的时代,而单片机在数字化高速发展的时代扮演着极为重要的角色。电子万年历的开发与研究在信息化时代的今天亦是当务之急,因为它应用在学校、机关、企业、部队等单位礼堂、训练场地、教学室、公共场地等场合,可以说遍及人们生活的每一个角落。所以说电子万年历的开发是国家之所需,社会之所需,人民之所需。

由于社会对信息交换不断提高的要求及高新技术的逐步发展,促使电子万年历发展并且投入市场得到广泛应用。

1.3课题解决的主要内容

本课题所研究的电子万年历是单片机控制技术的一个具体应用,主要研究内容包括以下几个方面:

(1)选用电子万年历芯片时,应重点考虑功能实在、使用方便、单片存储、低功耗、抗断电的器件。

(2)根据选用的电子万年历芯片设计外围电路和单片机的接口电路。

(3)在硬件设计时,结构要尽量简单实用、易于实现,使系统电路尽量简单。(4)根据设计的硬件电路,编写控制AT89S52芯片的单片机程序。

(5)通过编程、编译、调试,把程序下载到仿真单片机上运行,并实现本设计的功能。

(6)在硬件电路和软件程序设计时,主要考虑提高人机界面的友好性,方便用户操作等因素。

2 系统的方案设计与论证

单片机电子万年历的制作有多种方法,可供选择的器件和运用的技术也有很多种。所以,系统的总体设计方案应在满足系统功能的前提下,充分考虑系统使用的环境,所选的结构要简单使用、易于实现,器件的选用着眼于合适的参数、稳定的性能、较低的功耗以及低廉的成本。

系统的功能往往决定了系统采用的结构,经过成本,性能,功耗等多方面的考虑决定用三个8位74LS164串行接口外接LED 显示器,RESPACK-8对单片机AT89S52进行供电,时间芯片DS1302连接单片机AT89S52。从而实现电子万年历的功能。

按照系统设计的要求,初步确定系统由电源模块、时钟模块、显示模块、键盘接口模块、温度测量模块和闹钟模块共六个模块组成,电路系统构成框图如图1所示。

图1 硬件电路框图

2.1单片机芯片设计与论证

方案一:

采用AT89C51芯片作为硬件核心,采用Flash ROM ,内部具有4KB ROM 存储空间,能用于3V 的超低电压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP 在线编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。

方案二:

采用AT89S52芯片作为硬件核心,采用Flash ROM ,能以3V 的超低电压工作,而且与MCS-51系列单片机完全兼容,该芯片内部存储器为8KB ROM 存储空间。同样具有AT89S52的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会

AT89S52电源模块温度模块独立按键时钟模块显示模块闹钟模块

对芯片造成损坏。

由于AT89S52内部具有8KBROM存储芯片并且支持ISP在线编程,因此采用AT89S52作为主控芯片。

2.2按键控制模块设计与论证

方案一:采用矩阵键盘,由于按键多可实现数值的直接键入,但在系统中需要CPU不间断的对其端口扫描。

方案二:采用独立按键,查询简单,程序处理简单,可节省CPU资源。

因系统中所需按键不多,为了释放更多的CPU占有时间,操作方便,故采用方案二。

2.3时钟模块设计与论证

方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。

方案二:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM作为数据暂存区,工作电压2.5V~5.5V范围内,2.5V时耗电小于300nA.

由于DS1302时钟芯片计数时间精度高,而且具有闰年补偿功能等优点,故采用方案二。

2.4温度采集模块设计与论证

方案一:采用温度传感器(如热敏电阻或AD590),再经AD转换得到数字信号,精度较准,但价格昂贵,电路较复杂。

方案二:采用数字式温度传感器DS18B20,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9-12位的数字值读数方式,但准确度不高,误差最大达2度。

因为用DS18B20温度芯片,采用单总线访问,降低成本、降低制作难度且可节省单片机资源,故采用方案二。

2.5显示模块模块设计与论证

方案一:采用静态显示方法,静态显示模块的硬件制作较复杂及功耗大,要用到多个移位寄存器,但不占用端口,只需两根串口线输出。

方案二:采用动态显示方法,动态显示模块的硬件制作简单,段扫描和位扫描各占用一个端口,总需占用单片机14个端口,采用间断扫描法功耗小、硬件成本低及整个硬件系统体积相对减小。

方案三:采用LCD的方法,具有硬件制作简单可直接与单片机接口,显示内容多,功耗小,成本低等优点,LCM1602可显示32个字符,采用LCD的缺点是亮度不够。

比较以上三种方案:方案一硬件复杂体积大、功耗大;方案二硬件简单、功耗小;方案三硬件简单,显示内容多,功耗小,成本低等。本系统设计要求达到功耗小、体积小、成本低,显示信息多等要求,权衡三种方案,选择方案三。

3系统硬件的设计

根据上述所确定的系统方案构想,下面进行系统硬件电路的具体设计,系统的具体设计在下面会详细介绍。

3.1AT89S51单片机

本系统采用的是美国ATMEL公司生产的AT89S52单片机,首先我们来熟悉一下AT89S52单片机的外部引脚和内部结构。

1.单片机的引脚功能

AT89S52单片机有40个引脚。

●Vcc:电源电压+5V

●GND:接地

●P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线服用,在访问期间激活内部上拉电阻。

在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时要求外接上拉电阻。

●P1口:P1口是一个带内部上拉电阻的8位双向I/O,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。

Flash 编程和程序校验期间,P1接收低8位地址。

●P2口:P2口是一个带内部上拉电阻的8位双向I/O,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。

在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(MOVX @Ri 指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。

Flash 编程和程序校验期间,P2亦接收低高位地址和其他控制信号。

●P3口:P3口是一组带内部上拉电阻的8位双向I/O,P3的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部的上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上拉电阻输出电流。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,见表1所示:P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。

表2 P3口的第二功能图

端口引脚第二功能

P3.0 RXD(串行输入口)

P3.1 TXD(串行输出口)

P3.2 INT0(外中断0)

P3.3 INT1(外中断1)

P3.4 T0(定时/计时器0外部输入)

P3.5 T1(定时/计时器1外部输入)

P3.6 WR(外部数据存储器写选通)

P3.7 RD(外部数据存储器读选通)

●RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。WDT溢出将使引脚输出高电平,设置SFR AUXR的DISRT0(地址8EH)可打开或关闭该功能。DISRT0位缺省为RESET输出高电平打开状态。

●ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存器允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。

对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。

如有必要,可通过多特殊功能寄存器(SFR)区中的8EH单元的D0位置,可禁止ALE操作。该位置后,只有一条MOVX和MOVC指令ALE才会被激活。另外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。

●PSEN:程序存储允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的PSEN信号。

●EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。需要注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。

如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。

Flash存储器编程时,该引脚加上+12V的变成电压Vpp.

●XTAL1:振荡器反相放大器及内部时钟发生器的输入端。

●XTAL2:振荡器反相放大器的输出端。

AT89S52单片机内部结构

2.AT89S52单片机与MCS-51完全兼容

●看门狗(WDT):WDT是一种需要软件控制的复位方式。WDT 由13位计数器和特殊功能寄存器中的看门狗定时器复位存储器(WDTRST)构成。WDT 在默认情况下无法工作;为了激活WDT,用户必须往WDTRST 寄存器(地址:0A6H)中依次写入01EH 和0E1H。当WDT激活后,晶振工作,WDT在每个机器周期都会增加。WDT计时周期依赖于外部时钟频率。除了复位(硬件复位或WDT溢出复位),没有办法停止WDT工作。当WDT 溢出,它将驱动RSR引脚输出一个高电平。

●可编程串口(UART)在AT89S52中,UART 的操作与AT89S52 和AT89C52 一样。AT89S52系列单片机的串行通信口可以工作于同步和异步通信方式。当工作于异步方式时,它具有全双工的操作功能,也就是说,它可以同时进行数据的发送和接收。串

行口内的接收器采用的是双缓冲结构,能够在接收到的第一个字节从接收寄存器读走之前就开始接收第二个字节(当然,如果第二个字节接收完毕,而第一个字节仍然没有被读走,那将会丢掉一个字节)。串行口的发送和接收操作都是通过特殊功能寄存器中的数据缓冲寄存器SBUF进行的,但在SBUF的内部,接收寄存器和发送寄存器在物理结构上是完全独立的。如果将数据写入SBUF,数据会被送入发送寄存器准备发送。如果执行SBUF指令,则读出的数据一定来自接收缓存器。因此,CPU对SBUF的读写,实际上是分别访问2个不同的寄存器。这2个寄存器的功能决不能混淆。

●振荡电路:AT89S52系列单片机的内部振荡器,由一个单极反相器组成。XTAL1反相器的输入,XTAL2为反相器的输出。可以利用它内部的振荡器产生时钟,只要XTAL1和XTAL2引脚上一个晶体及电容组成的并联谐振电路,便构成一个完整的振荡信号发生器,此方式称为内部方式。另一种方式由外部时钟源提供一个时钟信号到XTAL1端输入,而XTAL2端浮空。在组成一个单片机应用系统时,多数采用这种方式,这种方式结构紧凑,成本低廉,可靠性高。在电路中,对电容C1和C2的值要求不是很严格,如果使用高质的晶振,则不管频率为多少,C1、C2通常都选择30pF。

●定时/计数器:AT89S52单片机内含有2个16位的定时器/计数器。当用于定时器方式时,定时器的输入来自内部时钟发生电路,每过一个机器周期,定时器加1,而一个机器周期包含有12个振荡周期,所以,定时器的技术频率为晶振频率的1/12,而计数频率最高为晶振频率的1/24。为了实现定时和计数功能,定时器中含有3种基本的寄存器:控制寄存器、方式寄存器和定时器/计数器。控制寄存器是一个8位的寄存器,用于控制定时器的工作状态,方式寄存器是一个8位的寄存器,用于确定定时器的工作方式,定时器/计数器是16位的计数器,分为高字节和低字节两部分。

●RAM:高于7FH内部数据存储器的地址是8位的,也就是说其地址空间只有256字节,但内部RAM的寻址方式实际上可提供384字节。的直接地址访问同一个存储空间,高于7FH的间接地址访问另一个存储空间。这样,虽然高128字节区分与专用寄器,即特殊功能寄存器区的地址是重合的,但实际上它们是分开的。究竟访问哪一区,存是通过不同的寻址方式加以区分的。

●SFR:SFR是具有特殊功能的所有寄存器的集合,共含有22个不同寄存器,它们的地址分配在80H~FFH中。虽然如此,不是所有的单元都被特殊功能寄存器占用,未被占用的单元,其内容是不确定的。如对这些单元进行读操作,得到的是一些随机数,而写入则无效,所以在编程时不应该将数据写入这些未确定的地址单元中,特殊功能寄存器主要有累加器ACC、B寄存器、程序状态字寄存器PSW、堆栈指针SP、数据指针DPTR、I/O端口、串行口数据缓冲器SBUF、定时器寄存器、捕捉寄存器、控制寄存器

●中断系统:AT89S52单片机有6个中断源,中断系统主要由中断允许寄存器IE、中断优先级寄存器IP、优先级结构和一些逻辑门组成。IE寄存器用于允许或禁止中断;IP寄存器用于确定中断源的优先级别;优先级结构用于执行中断源的优先排序;有关逻辑门用于输入中断请求信号。在整个中断响应过程中CPU所执行的操作步骤如下:

(1)完成当前指令的操作

(2)将PC内容压入堆栈

(3)保存当前的中断状态

(4)阻止同级的中断请求

(5)将中断程序入口地址送PC寄存器

(6)执行中断服务程序

(7)返回

3.2时钟芯片DS1302接口设计与性能分析

3.2.1 DS1302性能简介

DS1302是Dallas公司生产的一种实时时钟芯片。它通过串行方式与单片机进行数据传送,能够向单片机提供包括秒、分、时、日、月、年等在内的实时时间信息,并可对月末日期、闰年天数自动进行调整;它还拥有用于主电源和备份电源的双电源引脚,在主电源关闭的情况下,也能保持时钟的连续运行。另外,它还能提供31字节的用于高速数据暂存的RAM。

DS1302时钟芯片内主要包括移位寄存器、控制逻辑电路、振荡器。DS1302与单片机系统的数据传送依靠RST,I/O,SCLK三根端线即可完成。其工作过程可概括为:首先系统RST引脚驱动至高电平,然后在SCLK时钟脉冲的作用下,通过I/O引脚向DS1302输入地址/命令字节,随后再在SCLK时钟脉冲的配合下,从I/O引脚写入或读出相应的数据字节。因此,其与单片机之间的数据传送是十分容易实现的,DS1302的引脚排列及内部结构图如图2:

DS1302引脚说明:

X1,X2 32.768kHz晶振引脚

GND 地线

RST 复位端

I/O 数据输入/输出端口

SCLK 串行时钟端口

VCC1 慢速充电引脚

VCC2 电源引脚

图2 DS1302管脚

3.2.2 DS1302接口电路设计

1时钟芯片DS1302的接口电路及工作原理:

图3 DS1302与MCU接口电路

图3为DS1302的接口电路,其中Vcc1为后备电源,Vcc2为主电源。VCC1在单电源与电池供电的系统中提供低电源并提供低功率的电池备份。VCC2在双电源系统中提供主电源,在这种运用方式中VCC1连接到备份电源,以便在没有主电源的情况下能保存时间信息以及数据。

DS1302由VCC1或VCC2 两者中较大者供电。当VCC2大于VCC1+0.2V时,VCC2给DS1302供电。当VCC2小于VCC1时,DS1302由VCC1供电。

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

2、DS1302的控制字

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

3、数据输入输出(I/O)

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

图4 DS1302读/写时序图

———

4、DS1302的寄存器AM

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

表4 DS1302的日历、时间寄存器 写寄存器 读寄存

器 Bit7 Bit6 Bit5 Bit7 Bit3 Bit2 Bit1 Bit0

80H 81H CH 10秒 秒 82H 83H 10分 分 84H

85H

12/24——

0 10

AM ——

/PM

86H 87H 0 0 10 日 日

88H 89H 0 0 0 10月 月 8AH 8BH 0 0 0 0 0 星期 8CH 8DH 10年 年 8EH

8FH

WP

0 0 0

0 0

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

1.DS18B20的主要特性

DS18B20温度传感器是美国DALLAS 半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9-12位的数字值读数方式。现场温度直接以"一线总线"的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3V ~5.5V 的电压范围,使系统设计更灵活、方便。其性能特点可归纳如下:

1.独特的单线接口仅需要一个端口引脚进行通信;

2.测温范围在-55℃到125℃,分辨率最大可达0.0625℃;

3.采用了3线制与单片机相连,减少了外部硬件电路;

4.零待机功耗;

5.可通过数据线供电,电压范围在3.0V-5.5V ;

6.用户可定义的非易失性温度报警设置;

7.报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件; 8.负电压特性,电源极性接反时,温度计不会因发热烧毁,只是不能正常工作。

2.DS18B20工作原理

DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。 DS18B20测温原理如图5所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图5中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。

图5 DS18B20测温原

3.3.2 DS18B20接口电路设计

如6图所示,该系统中采用数字式温度传感器DS18B20,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,用P3.7与DS18B20的DQ口连接,Vcc接电源,GND接地。DS18B20的工作电流约为1mA,VCC一般为5V,则电阻R=5V/1mA=5KΩ,目前用的电阻一般不是可调电阻,只是固定阻值,市场上有的就那么几个型号。其中DS18B20接有电源,则需要一个上拉即可稳定的工作。这个电阻通常比较大,我们选择10K电阻的来起到上拉作用,使之为高电平,使后续电路保护。

图6温度传感器DS18B20接口

3.3.3 DS18B20的工作时序

1、复位时序图

图7复位时序图

1、读时序图

图8读时序图

2、写时序图

图9 写时序图

3、工作时序

1)总线时序

图10 总线时序2)写周期时序

图11写周期时序3)起始/停止时序

图12 起始/停止时序4)应答时序

图13 应答时序

5)立即地址读时

图14 立即地址读时序

3.4LCD显示模块

3.4.1 LCD1602的特性及使用说明

1LCD1602的接口信号说明如表4

表5 LCD1602的接口信号

编号引脚符号功能说明编号引脚符号功能说明

1 VSS 电源地9 D

2 DATA I/O

2 VDD 电源正极10 D

3 DATA I/O

3 VL 液晶显示偏压信号11 D

4 DATA I/O

4 RS 数据/命令选择端

12 D5 DATA I/O

(H/L)

5 R/W 读/写选择端(H/L)13 D

6 DATA I/O

6 E 使能信号14 D

7 DATA I/O

7 D0 DATA I/O 15 BLA 背光正极

8 D1 DATA I/O 16 BLK 背光负极2 基本操作时序如下:

1)读状态:RS=L,RW=H,E=H

2)写指令:RS=L,RW=L,D0~D7=指令码,E=高脉冲

3)读数据:RS=H,RW=H,E=H

4)写数据:RS=H,RW=L,D0~D7=数据,E=高脉冲

3 初始化设置

1)显示模式设置如表5:

表6显示模式设置

指令码功能

0 0 1 1 1 0 0 0 设置16*2显示,5*7点阵,8位数据接口

2)显示开/关及光标设置如表6:

表7 显示开/关及光标设置

指令码功能

0 0 0 0 1 D C B D=1开显示;D=0关显示

C=1显示光标;C=0不显示光标

B=1光标闪烁;B=0光标不显示

0 0 0 0 0 1 N S N=1当读或写一个字符后地址指针加一,

且光标加一

N=0当读或写一个字符后地址指针减一,

且光标减一

S=1当写一个字符,整屏显示左移(N=1)

3.4.2 LCD1602与MCU的接口电路

LCD的D0~D7分别接单片机的的P0口,作为数据线,因为P0口内部没有上拉电阻,所以外部另外加上4.7K的上拉电阻;P2.5—P2.7分别接LCD的RS、RW、E三个控制管脚;RV1用来调节LCD的显示灰度;BLK、BLA为背光的阴极和阳极,接上相应电平即点亮背光灯。如图15

图15显示电路

其中1602的第3脚接10K与1.5K的串联电阻起到分压作用,能够调节第一行与第二行亮度对比。第16接个三极管的作用放大,是为了能够让液晶显示器的背光灯亮起,从而在夜间也能观看万年历。

3.5按键模块设计

本系统用到了4个按键,其中一个用作系统手动复位,另外4个采用独立按键,该种接法查询简单,程序处理简单,可节省CPU资源,按键电路如图15所示,4个独立按键分别与AT89S52的P3.0、P3.1、P3.2、P3.3接口相连。

图16 按键电路

对以上4个按键作简要说明:K1——SET 键,K2——UP键,K3——DOWN键,K4——OUT/STOP键。

SET 键:按下SET键进入时间校准状态,按一下进入秒调整,两下分调整,依此类推可进行各年月日,时分秒以及星期的校准;

UP键:当SET键按下时,UP进行SET选定项(如:小时)的加操作;

DOWN键:当SET键按下时,DOWN进行SET选定项(如:小时)的减操作;

OUT键:当OUT键按下时,此键功能为退出校准功能,进入下一模式,显示温度值和上下限的温度值。

3.6复位电路的设计

当AT89S52单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就完成了复位操作。如果RST持续为高电平,单片机就处于循环复位状态,而无法执行程序。因此要求单片机复位后能脱离复位状态。而本系统选用的是12MHz的晶振,因此一个机器周期为1μs,那么复位脉冲宽度最小应为2μs。在实际应用系统中,考虑到电源的稳定时间,参数漂移,晶振稳定时间以及复位的可靠性等因素,必须有足够的余量。

根据应用的要求,复位操作通常有两种基本形式:上电复位、手动复位。上电复位要求接通电源后,自动实现复位操作。AT89S52单片机的上电复位POR(Power On Reset)实质上就是上电延时复位,也就是在上电延时期间把单片机锁定在复位状态上。在单片机每次初始加电时,首先投入工作的功能部件是复位电路。复位电路把单片机锁定在复位状态上并且维持一个延时(记作TRST),以便给予电源电压从上升到稳定的一个等待时间;在电源电压稳定之后,再插入一个延时,给予时钟振荡器从起振到稳定的一个等待时间;在单片机开始进入运行状态之前,还要至少推迟2个机器周期的延时

本设计采用上电复位电路,如图16所示上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,复位电路能使RST持续一段时间的高电平,从而实现上电且开关复位的操作。通常选择C=10~30μF,本设计采用的电容值为10μF的电容和电阻为10K的电阻。

图17 复位电路

4系统软件的设计

电子万年历的功能是在程序控制下实现的。该系统的软件设计方法与硬件设计相对应,按整体功能分成多个不同的程序模块,分别进行设计、编程和调试,最后通过主程序将各程序模块连接起来。这样有利于程序修改和调试,增强了程序的可移植性。

本系统的软件部分主要要进行公历计算程序设计,温度测量程序设计,按键的扫描输入等。程序开始运行后首先要进行初始化,把单片机的各引脚的状态按程序里面的初始化命令进行初始化,初始化完成后运行温度测量程序,读取出温度传感器测量出来的温度,然后运行公历计算程序,得到公历的时间、日期信息,再运行按键扫描程序,检测有无按键按下,如果没有按键按下则直接调用节日计算程序,根据得到的公历日期信息计算出节日,如果有按键按下则更新按键修改后的变量后送给节日计算程序,由节日计算程序根据修改后的变量计算出对应的节假日,计算完成后运行显示程序,显示程序将得到的温度数据、公历信息、节假日信息送给对应的数码管让其显示。

4.1主程序流程图的设计

主程序流程图如图17:

图18 主程序流程图

4.2程序设计

4.2.1 DS1302读写程序设计

本系统的时间读取主要来源于单片机对DS1302的操作,在硬件上时钟芯片

DS1302与单片机的连接需要三条线,即SCLK(7)、I/O(6)、RST(5),具体连接图见系统硬件设计原理图。读取写程序设计如下:

函数名:RTInputByte()

功能:实时时钟写入一字节

说明:往DS1302写入1Byte数据 (内部函数)

入口参数:d 写入的数据

返回值:无

void RTInputByte(uchar d)

{

uchar i;

ACC = d;

for(i=8; i>0; i--)

{

T_IO = ACC0; /*相当于汇编中的RRC */

T_CLK = 1;

T_CLK = 0;

ACC = ACC >> 1;

}

函数名:RTOutputByte()

功能:实时时钟读取一字节

说明:从DS1302读取1Byte数据(内部函数)

入口参数:无

返回值:ACC

uchar RTOutputByte(void)

{

uchar i;

for(i=8; i>0; i--)

{

ACC = ACC >>1; /*相当于汇编中的RRC */

ACC7 = T_IO;

T_CLK = 1;

T_CLK = 0;

}

return(ACC);

}

函数名:W1302()

功能:往DS1302写入数据

说明:先写地址,后写命令/数据(内部函数)

调用:RTInputByte() , RTOutputByte()

入口参数:ucAddr: DS1302地址, ucData: 要写的数据

返回值:无

void W1302(uchar ucAddr, uchar ucDa)

{

T_RST = 0;

T_CLK = 0;

T_RST = 1;

RTInputByte(ucAddr); /* 地址,命令*/

RTInputByte(ucDa); /* 写1Byte数据*/

T_CLK = 1;

T_RST = 0;

}

函数名:R1302()

功能:读取DS1302某地址的数据

说明:先写地址,后读命令/数据(内部函数)

调用:RTInputByte() , RTOutputByte()

入口参数:ucAddr: DS1302地址

基于51单片机的万年历的设计

单片机课程实训SCM PRACTICAL TRAINING

目录 第一部分课程设计任务书 (1) 一、课程设计题目 (1) 二、课程设计时间 (1) 三、实训提交方式 (1) 四、设计要求 (1) 第二部分课程设计报告 (2) 一、单片机发展概况 (2) 二、MCS-51单片机系统简介 (2) 三、设计思想 (3) 四、硬件电路设计 (3) 1. 总体设计 (3) 2. 晶振电路 (4) 3. 复位电路 (4) 4. DS1302时钟电路 (5) 5. 温度采集系统电路 (5) 6. 按键调整电路 (6) 7. 闹钟提示电路 (6) 五、软件设计框图 (7) 六、程序源代码 (8) 1. 主程序 (8) 2. 温度控制程序 (11) 3. 日历设置程序 (13) 4. 时钟控制程序 (18) 5. 显示设置程序 (20) 七、结束语 (23) 八、课程设计小组分工 (23) 九、参考文献 (23)

第一部分课程设计任务书 一、课程设计题目 用中小规模集成芯片设计制作万年历。 二、课程设计时间 五天 三、实训提交方式 提交实训设计报告电子版与纸质版 四、设计要求 (1)显示年、月、日、时、分、秒和星期,并有相应的农历显示。(2)可通过键盘自动调整时间。 (3)具有闹钟功能。 (4)能够显示环境温度,误差小于±1℃ (5)计时精度:月误差小于20秒。

第二部分课程设计报告 一、单片机发展概况 单片机诞生于20世纪70年代末,它的发展史大致可分为三个阶段: 第一阶段(1976-1978):初级单片机微处理阶段。该时期的单片机具有 8 位CPU,并行 I/O 端口、8 位时序同步计数器,寻址范围 4KB,但是没有串行口。 第二阶段(1978-1982):高性能单片机微机处理阶段,该时期的单片机具有I/O 串行端口,有多级中断处理系统,15 位时序同步技术器,RAM、ROM 容量加大,寻址范围可达 64KB。 第三阶段(1982-至今)位单片机微处理改良型及 16 位单片机微处理阶段民用电子产品、计算机系统中的部件控制器、智能仪器仪表、工业测控、网络与通信的职能接口、军工领域、办公自动化、集散控制系统、并行多机处理系统和局域网络系统。 二、MCS-51单片机系统简介 MCS-51系列单片机产品都是以Intel公司最早的典型产品8051为核心构成的。MCS-51单片机由CPU 、RAM 、ROM 、I/O接口、定时器/计数器、中断系统、内部总线等部件组成。8051单片机的基本性能有: ◆8位CPU; ◆布尔代数处理器,具有位寻址能力; ◆128B内部RAM,21个专用寄存器; ◆4KB内部掩膜ROM; ◆2个16位可编程二进制加1定时器/计数器; ◆32个(4×8位)双向可独立寻址的I/O口; ◆1个全双工UART(异步串行通信口); ◆5个中断源,两级中断结构; ◆片内振荡器及时钟电路,晶振频率为1.2MHz~12MHz; ◆外部程序/数据存储器寻址空间均为64KB; ◆111条指令,大部分为单字节指令; ◆单一+5V电源供电,双列直插40引脚DIP封装。

单片机万年历C语言程序完整

#include #include //#include "LCD1602.h" //#include "DS1302.h" #define uint unsigned int #define uchar unsigned char sbit DS1302_CLK = P1^7; //实时时钟时钟线引脚 sbit DS1302_IO = P1^6; //实时时钟数据线引脚 sbit DS1302_RST = P1^5; //实时时钟复位线引脚 sbit ACC0 = ACC^0; sbit ACC7 = ACC^7; char hide_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year; //秒,分,时到日,月,年位闪的计数 sbit Set = P2^0; //模式切换键 sbit Up = P2^1; //加法按钮 sbit Down = P2^2; //减法按钮 sbit out = P2^3; //立刻跳出调整模式按钮 sbit DQ = P3^0; char done,count,temp,flag,up_flag,down_flag,t_value; uchar TempBuffer[5],week_value[2]; void show_time(); //液晶显示程序 /***********1602液晶显示部分子程序****************/ //Port Definitions********************************************************** sbit LcdRs = P2^5; sbit LcdRw = P2^6; sbit LcdEn = P2^7; sfr DBPort = 0x80; //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口 //内部等待函数************************************************************** unsigned char LCD_Wait(void) { LcdRs=0; LcdRw=1; _nop_(); LcdEn=1; _nop_(); LcdEn=0; return DBPort; } //向LCD写入命令或数据************************************** #define LCD_COMMAND 0 // Command

万年历系统设计方案和对策

电子万年历系统设计 The design of Electronic calendar system 专业:电子信息科学与技术 学号: 姓名:

电子万年历系统设计 摘要:近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,并且给人类生活带来了根本性的改变。尤其是单片机技术的应用产品已经走进了千家万户。电子万年历的出现给人们的生活带来的诸多方便。虽然在日常生活中,各种信息处理终端如电脑、手机等给我们提供了准确的时间信息。但是在大多数场合却仅仅局限于个人的适用范围之内。在家居生活中,一款悬挂余居室墙壁上大方得体的电子钟不仅能为我们提供准确的时间显示,而且魅惑了环境,给单调的居室带来了现代化的气息,因而成为许多家庭的必备之选。 本文设计了一种基于八位串行输入-并行输出移位寄存器74HC164芯片,以STC89C52单片机为核心、数码显示的电子万年历,主要介绍了时钟芯片、温度传感器、仿真模块,以及万年历硬件和软件的设计,实现了准确显示,公历年、月、日、农历月、日、时、分、秒功能。 关键字:单片机;时钟芯片;温度传感器;仿真

The Design of Electronic Calendar System Abtract:In recent years, with computer penetration in the social sphere and the development of large-scale integrated circuits, MCU applications are constantly deepening, as it has a function of strong, small size, low power consumption, cheap, reliable, easy to use , And other characteristics, and therefore particularly suited to control the system and to human life brought about fundamental changes. SCM is by the application of technology products have entered the tens of thousands of households. The emergence of electronic calendar to the lives of people of many convenience. While in everyday life, dealing with all kinds of information terminals such as computers, mobile phones has provided us with accurate time information. However, in most occasions is limited to individuals within the scope of the application. In home life, hoisted more than a generous living room walls of the appropriate electronic bell can not only provide us with accurate time, and tantalized by the environment, bring to the monotonous room a modern flavor, so many families must Of the election. In this paper, a design based on eight serial input - output parallel shift register 74 HC164 chip to STC89C52 microcontroller as the core, digital display electronic calendar, mainly on the clock chip temperature sensor, simulation modules, hardware and calendar And software design, to achieve an accurate, the calendar year, month, day and the Lunar month, day, hours, minutes and seconds functions.

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

引言 随着生活节奏的日益加快,人们的时间观也越来越重,同时对电子钟表、日历的需求也随之提高。因此,研究实用电子时钟及其扩展使用,有着非常现实的意义,具有很大的实用价值。 本系统程序由主程序、中断服务函数和多个子函数构成。主函数主要完成各子函数和中断函数的初始化。定时中断函数主要完成时钟芯片的定时扫描及键盘扫描。时钟芯片的读写函数主要是将时间、日历信息读出来,并把要修改具体值写入时钟芯片内部。 系统的硬件设计和电路原理 电路设计框图 系统硬件概述 本电路是由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提供终止单字节或多字节数据的传送手段。

基于51单片机电子万年历设计

基于51单片机电子万年历设计 专业:机电设备维修与管理姓名:杜洪浦指导老师: 摘要电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。它可以对年、月、日、周日、时、分和秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒等信息,还具有时间校准等功能。该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3到5V电压供电。 万年历的设计过程在硬件与软件方面进行同步设计。硬件部分主要由AT89C52单片机,液晶显示电路,复位电路,时钟电路,稳压电路电路以及串口下载电路等组成。在单片机的选择上使用了AT89C52单片机,该单片机适合于许多较为复杂控制应用场合。显示器使用液晶LCD1602。软件方面主要包括日历程序、液晶驱动程序,显示程序等。程序采用汇编语言编写。所有程序编写完成后,在Keil C51软件中进行调试,确定没有问题后,在Proteus软件中嵌入单片机内进行仿真。 关键词时钟电钟,DS1302,液晶LCD1602,单片机 目录 1设计要求与方案论证 (2) 1.1 设计要求 (2) 1.2 系统基本方案选择和论证 (2) 1.2.1单片机芯片的选择方案和论证 (2) 1.2.2 显示模块选择方案和论证 (3) 1.2.3时钟芯片的选择方案和论证: (3) 1.3 电路设计最终方案决定 (3) 2系统的硬件设计与实现 (3) 2.1 电路设计框图 (4) 2.2 系统硬件概述 (4) 2.3 主要单元电路的设计 (4) 2.3.1单片机主控制模块的设计 (4)

基于AT89C51单片机的电子万年历的设计_课程设计报告

课程设计报告 设计名称:电子万年历设计 专业班级:自动化10101班 完成时间:2013年6月9日 报告成绩:

摘要 本文介绍了基于AT89C51单片机的多功能电子万年历的硬件结构和软硬件设计方法。系统以AT89C51单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。万年历采用直观的数字显示,可以在LED上同时显示年、月、日、周日、时、分、秒,还具有时间校准等功能。此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。 关键字AT89C51;电子万年历; DS1302

1 绪论 1.1 课题研究的背景 随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用AT89C51单片机作为核心,功耗小,能在3V 的低压工作,电压可选用3~5V电压供电。 此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。 1.2课题的研究目的与意义 二十一世纪是数字化技术高速发展的时代,而单片机在数字化高速发展的时代扮演着极为重要的角色。电子万年历的开发与研究在信息化时代的今天亦是当务之急,因为它应用在学校、机关、企业、部队等单位礼堂、训练场地、教学室、公共场地等场合,可以说遍及人们生活的每一个角落。所以说电子万年历的开发是国家之所需,社会之所需,人民之所需。 由于社会对信息交换不断提高的要求及高新技术的逐步发展,促使电子万年历发展并且投入市场得到广泛应用。 1.3课题解决的主要内容 本课题所研究的电子万年历是单片机控制技术的一个具体应用,主要研究内容包括以下几个方面: (1)选用电子万年历芯片时,应重点考虑功能实在、使用方便、单片存储、低功耗、抗断电的器件。 (2)根据选用的电子万年历芯片设计外围电路和单片机的接口电路。 (3)在硬件设计时,结构要尽量简单实用、易于实现,使系统电路尽量简单。 (4)根据设计的硬件电路,编写控制AT89C51芯片的单片机程序。 (5)通过编程、编译、调试,把程序下载到单片机上运行,并实现本设计的功能。 (6)在硬件电路和软件程序设计时,主要考虑提高人机界面的友好性,方便用户操作等因素。 (7)软件设计时必须要有完善的思路,要做到程序简单,调试方便。

基于51单片机的万年历设计

单片机课程设计 题目基于51单片机的万年历设计学生姓名 专业班级 学号 院(系) 指导教师 完成时间

目录 1课程设计的目的 (1) 2课程设计的任务与要求 (1) 2.1设计任务 (1) 2.2设计要求 (1) 3单片机发展概况 (1) 4设计原理与功能说明 (4) 4.1设计思想 (4) 4.2总体电路图 (5) 4.3时钟模块 (5) 4.4液晶显示模块 (6) 4.5按键模块 (7) 5系统测试 (7) 5.1硬件测试 (7) 5.2软件测试 (8) 6总结 (8) 参考文献 (10) 附录一:总体电路原理图 (11)

附录二:主程序 (12) 附录三:元器件清单 (26) 附录四:实物图 (27)

1课程设计的目的 1.通过制作万年历,可以对单片机这门课程更好的认识。 2.理论与实践结合,提高自己的动手能力。 3.学会与合作者更好的交流学习,共同进步和提高。 4.能够增长查阅资料的能力,视野更加开阔。 5.拓展其他学科的联系,全面发展。 6.培养自我发现问题,解决问题的能力。 2课程设计的任务与要求 2.1设计任务 1.可以去学校图书馆或者网上,搜集整理相关的资料,做好前期理论准备,为以后设计电路,看懂电路图做理论支持。 2.构想万年历电路图,并且具有可行性,画出电路图。 3.列举电路所需的电子元件,仔细对比所需的元件的参数,通过去电子元件经销商或者网购购买。 2.2设计要求 1.显示年、月、日、时、分、秒。 2.可通过键盘自动调整时间。 3.计时精度:月误差小于20秒。 3单片机发展概况 单片机诞生于20世纪70年代末,它的发展史大致可分为三个阶段:第一阶段(1976-1978):初级单片机微处理阶段。该时期的单片机具有8 位CPU,并行I/O 端口、8 位时序同步计数器,寻址范围4KB,但是没有串行口。

单片机课程设计--基于51单片机的万年历

单片机课程设计报告 万年历的设计

基于51单片机的万年历 摘要: 电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。它可以对年、月、日、周日、时、分、秒进行计时,使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。 本设计是基于51系列的单片机进行的电子万年历设计,可以显示年月日时分秒及周信息,具有可调整日期和时间功能。在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面准备。万年历的设计过程在硬件与软件方面进行同步设计。硬件部分主要由AT89C52单片机,LCD显示电路,以及调时按键电路等组成。在单片机的选择上本人使用了AT89C52单片机,该单片机适合于许多较为复杂控制应用场合。显示器使用了1602液晶显示,并且使用蜂鸣器实现了整点报警的功能,温度测试的功能实现使用了DS18B20,并实现了温度过高或过低时的温度报警。 软件方面主要包括日历程序、时间调整程序,显示程序等。程序采用C语言编写。所有程序编写完成后,在KeilC51软件中进行调试,

确定没有问题后,在Proteus软件中嵌入单片机内进行仿真,并最终实现基本要求。 综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。 一、设计要求 基本要求: 1,8 个数码管上显示,显示时间的格式为(假如当前时间是19:32:20)“19-32-20”; 2,具有日历功能; ③时间可以通过按键调整。 发挥部分: ④具有闹钟功能(可以设定多个)。 二:总体设计 电路设计框图

电子万年历的设计与实现

毕业设计(论文)任务书 题目:电子万年历的设计与实现 任务与要求: 设计一以单片机为核心控制的万年历,具有多项显示和控制功能。要求:准确计 时,以数字形式显示当前年月日、星期、时间; 具有年月日、星期、时间的设置和调整功能;自行设计所需直流电源 时间: 2010年9 月 27 日至 2010 年 11 月 23 日共 8 周 所属系部:电子工程系

摘要 随着微电子技术的高速发展,单片机在国民经济的个人领域得到了广泛的运用。单片机以体积小、功能全、性价比高等诸多优点,在工业控制、家用电器、通信设备、信息处理、尖端武器等各种测控领域的应用中独占鳌头,单片机开发技术已成为电子信息、电气、通信、自动化、机电一体化等专业技术人员必须掌握的技术。 而电子万年历作为电子类小设计不仅是市场上的宠儿,也是是单片机实验中一个很常用的题目。因为它的有很好的开放性和可发挥性,因此对作者的要求比较高,不仅考察了对单片机的掌握能力更加强调了对单片机扩展的应用。而且在操作的设计上要力求简洁,功能上尽量齐全,显示界面也要出色。数字显示的日历钟已经越来越流行,特别是适合在家庭居室、办公室、大厅、会议室、车站和广场等使用,壁挂式LED数码管显示的日历钟逐渐受到人们的欢迎。LED数字显示的日历钟显示清晰直观、走时准确、可以进行夜视,并且还可以扩展出多种功能。所以,电子万年历无论作为比赛题目还是练习题目都是很有价值。 关键词:单片机;万年历 1

目录 1 概述 (5) 1.1单片机原理及应用简介 (5) 1.2系统硬件设计 (6) 1.3结构原理与比较.............................. 错误!未定义书签。2系统总体方案及硬件设计......................... 错误!未定义书签。 2.1系统总体方案................................ 错误!未定义书签。 2.2硬件电路的总体框图设计 (12) 2.3硬件电路原理图设计 (12) 3软件设计 (13) 3.1主程序流程图 (13) 3.2显示模块流程图 (14) 4P ROTEUS软件仿真 (15) 4.1仿真过程 (15) 4.2仿真结果 (16) 5课程设计体会 (17) 参考文献 (18) 附录:源程序代码附 (18) 结束语 (25) 2

基于单片机的万年历设计毕业设计

目录 摘要...................................................................... I Abstract ................................................................. II 第1章绪论.. (1) 1.1 课题背景和意义 (1) 1.2 课题的主要内容 (2) 第2章系统总体方案设计 (3) 2.1 单片机的选择 (3) 2.2 显示模块的方案选择 (3) 2.3 时钟芯片的选择方案 (3) 2.4 键盘的选择 (4) 2.5 最终方案的选择 (4) 第3章万年历系统硬件设计 (6) 3.1 电路设计框图 (6) 3.2 各模块硬件电路设计 (6) 3.2.1 晶振电路模块的设计 (6) 3.2.2 复位电路模块的设计 (7) 3.2.3 单片机的控制模块 (7) 3.2.4 DS1302时钟电路 (11) 3.2.5 LCD12864液晶显示电路 (13) 3.2.6 键盘模块设计 (15) 第4章万年历系统软件设计 (17) 4.1 主程序模块 (17) 4.2 LCD12864显示程序 (18) 4.3 DS1302时钟程序 (19) 4.4 农历转换程序 (20) 4.5 星期自动刷新程序 (21) 4.6 时间调整程序 (22) 第5章系统调试 (24)

5.1 硬件调试 (24) 5.2 软件测试 (24) 5.3 总体调试 (25) 结论 (26) 参考文献 (27) 致谢 (28) 附录1 设计任务书 (29) 附录2 开题报告 (31) 附录3 外文翻译 (36) 附录4 程序清单 (55)

基于单片机的电子万年历设计

基于单片机的电子万年历设计 摘要:本文借助电路仿真软件Protues对基于AT89S52单片机的电子万年历的设计方法及仿真进行了全面的阐述。该电子万年历在硬件方面主要采用AT89S52单片机作为主控核心,由DS1302时钟芯片提供时钟、12864LCD液晶显示屏显示。在软件方面,主要包括日历程序、时间调整程序,显示程序等。所有程序编写完成后,在Keil软件中进行调试,确定没有问题后,在Proteus软件中进行电路设计并仿真。 论文主要研究了液晶显示器LCD及时钟芯片DS1302,温度传感器DS18B20与单片机之间的硬件互联及通信,对数种硬件连接方案进行了详尽的比较,在软件方面对日历算法也进行了论述。 研究结果表明,由于万年历的应用相当普遍,所以其设计的核心在于硬件成本的节约软件算法的优化,力求做到物美价廉,才能拥有更广阔的市场前景。关键词:单片机;DS1302;DS18B20;LCD12864 The Design Of Electronic Calender Based On MCU Abstract:This paper mainly discuss the design of electronic calender based on AT89S52 with the help of Protues.On the hardware side, the electronic calendar using AT89S52 microcontroller as the main control center, clock provided by the DS1302 clock chip , 12864LCDdot matrix LCD display. In terms of software, including calendar program, time to adjust procedures, display procedures. All programming is complete, the Keil software debugging, make sure there is no problem, in the Proteus software embedded within the simulated MCU. This article focus on liquid crystal screen LCD12864 and clock chip DS1302,temperature sensor DS18B20 which connected and communicated with Microcontroller.Several solutions will also compared with each other.On software side,calender calculation will be discussed as well. The results are as follows:as electronic calender are widely used in our daily life.It should be chip and convenient so as to win more profit.

单片机万年历程序..

单片机万年历程序 #include //调用单片机头文件 #define uchar unsigned char //无符号字符型宏定义变量范围0~255 #define uint unsigned int //无符号整型宏定义变量范围0~65535 #include "eeprom52.h" #include "nongli.h" bit flag_200ms ; bit flag_100ms ; sbit beep = P3^7; //蜂鸣器定义 bit flag_beep_en; uint clock_value; //用作闹钟用的 sbit dq = P3^1; //18b20 IO口的定义 uint temperature ; //温度变量 uchar flag_nl; //农历阳历显示标志位 uchar menu_1,menu_2; uchar key_time,flag_value; //用做连加的中间变量 bit key_500ms ; uchar n_nian,n_yue,n_ri; //农历显示的函数

#include "ds1302.h" #include "lcd1602.h" /******************把数据保存到单片机内部eeprom中******************/ void write_eeprom() { SectorErase(0x2000); byte_write(0x2000, fen1); byte_write(0x2001, shi1); byte_write(0x2002, open1); byte_write(0x2058, a_a); } /******************把数据从单片机内部eeprom中读出来*****************/ void read_eeprom() { fen1 = byte_read(0x2000); shi1 = byte_read(0x2001); open1 = byte_read(0x2002); a_a = byte_read(0x2058); } /**************开机自检eeprom初始化*****************/ void init_eeprom() { read_eeprom(); //先读 if(a_a != 1) //新的单片机初始单片机内问eeprom { fen1 = 3;

最新基于单片机的万年历设计

基于单片机的万年历设计 二、实验要求 设计一个万年历,将时钟显示在LCD1602的显示屏上并且可以进行年、月、日以及时、分、秒的设置。此外还可以通过按键进行闹钟设置以及事件提醒功能,用蜂鸣器进行闹铃提醒。最后附加一个温湿度检测的功能,用温湿度传感器检测室内的温湿度并将温湿度数据在显示屏上显示出来。 三、实验设备和仪器 1.用 STC89C52芯片作为系统板的主控芯片 2.DHT11温湿度传感器 3.DS1302时钟芯片 4.LCD1602显示屏 四、实验各模块原理介绍 4.1 STC89C52单片机 STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K字节系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 (1)主要特性 8K字节程序存储空间; 512字节数据存储空间; 内带4K字节EEPROM存储空间; 可直接使用串口下载; (2)器件参数 1. 增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051。 2. 工作电压:5.5V~ 3.3V(5V单片机)/3.8V~2.0V(3V 单片机) 3.工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz 4. 用户应用程序空间为8K字节

5. 片上集成512字节RAM 6. 通用I/O 口(32个),复位后为:P1/P2/P3 是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。 7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RXD/P3.0,TXD/P3.1)直接下载用户程序,数秒即可完成一片。 8. 具有EEPROM 功能 9. 共3个16位定时器/计数器。即定时器T0、T1、T2。 10.外部中断4 路,下降沿中断或低电平触发电路,Power Down 模式可由外部中断低电平触发中断方式唤醒。 11. 通用异步串行口(UART),还可用定时器软件实现多个UART。 12. 工作温度范围:-40~+85℃(工业级)/0~75℃(商业级) 13. PDIP封装 1、STC89C52单片机引脚图 图4.1 STC89C52单片机引脚图 ①主电源引脚(2根) VCC(Pin40):电源输入,接+5V电源 GND(Pin20):接地线 ②外接晶振引脚(2根) XTAL1(Pin19):片内振荡电路的输入端 XTAL2(Pin20):片内振荡电路的输出端 ③控制引脚(4根) RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。

单片机电子万年历课程设计报告书

单片机课程设计 姓名:吕长明 学号:04040804021 专业班级:机电四班

一、单片机原理及应用简介 随着国内超大规模集成电路的出现,微处理器及其外围芯片有了迅速的发展。集成技术 的最新发展之一是将CPU和外围芯片,如程序存储器、数据存储器、并行、串行I/O口、定时/计数器、中断控制器及其他控制部件集成在一个芯片之中,制成单片计算机(Single-Chip Microcomputer)。而近年来推出的一些高档单片机还包括有许多特殊功能单元,如A/D、D/A转换器、调制解调器、通信控制器、锁相环、DMA、浮点运算单元等。因此,只要外加一些扩展电路及必要的通道接口就可以构成各种计算机应用系统,如工 业控制系统、数据采集系统、自动测试系统、万年历电子表等。 二、系统硬件设计 8052 是标准的40引脚双列直插式集成电路芯片,引脚分布请参照----单片机引脚图图1: 图1 8052引脚 P0.0~P0.7 P0口8位双向口线(在引脚的39~32号端子)。 P1.0~P1.7 P1口8位双向口线(在引脚的1~8号端子)。 P2.0~P2.7 P2口8位双向口线(在引脚的21~28号端子)。 P3.0~P3.7 P2口8位双向口线(在引脚的10~17号端子)。 8052芯片管脚说明: VCC:供电电压。 GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用

于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH 编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如表1所示: 表1 特殊功能口 P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

51单片机实现万年历程序文件

51单片机实现万年历 利用AT89S52单片机的P0口来和另外几个口来控制1602液晶的显示和P1口还有其它口来控制ds12887时钟芯片。设置四个按键,1个定义为时间设置功能键,一个定义为闹钟设置功能键,另外两个用来调节时间的增减。 原理图: pcb图:

源程序: #include #define uint unsigned int #define uchar unsigned char sbit beep=P2^0;//蜂鸣器控制口 sbit timeadd=P2^1;//调节时间加 sbit timesub=P2^2;//调节时间减 sbit timeclk=P2^3;//闹钟设定键 sbit timefun=P2^4;//时间设定键 sbit lcdrs=P2^5;//液晶的命令和数据控制口 sbit ledrw=P2^6;//液晶的写数据口 sbit lcden=P2^7;//液晶显示模块的使能端 sbit timeds=P3^3;//时钟芯片地址闸 sbit timerw=P3^4;//时钟芯片读写 sbit timeas=P3^5;//时钟芯片地址闸 sbit timeen=P3^6;//时钟芯片片选 uchar code table[]="20 - - week "; uchar code table1[]=" : : ";//要显示的字符串 char num,shi,fen,miao,nian=2000,yue,ri,week,numfun,anumfun,flag,flag1; uchar leap;

void delay(uint x){ uchar i,j; for(i=x;i>0;i--) for(j=110;j>0;j--); } void didi() { beep=0; delay(1000); beep=1; delay(1000); } void write_(uchar ){ lcdrs=0; P0=; delay(5); lcden=1; delay(20); lcden=0; } void write_date(uchar date){ lcdrs=1; P0=date; delay(5); lcden=1; delay(20); lcden=0; } void write_sfm(uchar add,uchar date){ uchar shi,ge; shi=date/10; ge=date%10; write_(0x80+0x40+add); write_date(0x30+shi); write_date(0x30+ge); } void write_nyr(uchar add,uchar date){ uchar shi,ge; shi=date/10; ge=date%10;

电子万年历设计

课程论文论文题目基于单片机的电子万年历设计 课程名称单片机原理及接口技术 专业年级 2014级自动化3班 学生姓名孙宏远贾腾飞 学号 2016年12 月3 日

摘要: 本文介绍了基于AT89C51单片机的多功能电子万年历的硬件结构和软硬件设计方法。系统以AT89C51单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。万年历采用直观的数字显示,可以在LED上同时显示年、月、日、周日、时、分、秒,还具有时间校准等功能。此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。。 关键词:AT89C51单片机,DS1602时钟芯片,LCD1602显示屏。串口通信。 一:引言 本设计的基于单片机控制的电子万年历,具有年、月、日、星期、时、分、秒的显示等功能,实现过程就是由主控制发送信息给DS1302时钟芯片再由时钟芯片反馈给单片机,再由主控制器传送给LCD1602显示屏显示信息。并且可以在键盘设置模块输入修改时间,当键盘设置时间、日期时,单片机主控制根据输入信息,通过串口通信传送给DS1302时钟芯片,DS1302芯片读取当前新信息产生反馈传送给单片机,然后单片机根据控制最后输送显示信息到LCD1602液晶显示屏模块上显示。 二:硬件设计: 2.0.硬件的设计总框图 2.1 DS1032时钟电路 DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。芯片如图。 DS1302的内部主要由移位寄存器、指令和控制逻辑、振荡分频电路、实时时钟以及RAM组成。每次操作时,必须首先把CE置为高电平。再把提供地址和命令信息的8位装入移位寄存器。数据在SCLK的上升沿串行输入。无论是读周期还是写周期发生,也无论传送方式是单字节还是多字节,开始8位将指定内部何处被进行访问。在开始 8个时钟周期把含有地址信息的命令字装入移位寄存器之后。紧随其后的时钟在读操作时输出数据。 2.2 LCD1602与AT89C52的引脚接线 LCD1602采用总线式与单片机相连,AT89c52的P1口直接与液晶模块的数据总线D0~D7相连;P2 口的0,1,2脚分别与液晶模块的RS、RW、E脚相连。滑动变阻器用于调整液晶显示的亮度。电路如图

基于单片机的多功能电子万年历设计开题报告

毕业设计开题报告 1.结合毕业设计课题情况,根据所查阅的文献资料,撰写2000字左右的文献综述: 文献综述 一、本课题研究背景 单片机从20世纪70年代末出现后,以其卓越的性能,得到了广泛的应用,已经深入到各个领域。单片机芯片本身是按工业测控环境要求设计的,分为民用、工业品、军品,其中工业品和军品具有较强的适合恶劣环境的能力[1]。由于单片机本身就是一个计算机系统,因此,只要在单片机的外围适当加一些必要的扩展电路及通道接口,就可有构成各种应用系统,如控制系统、数据采集系统、自动控制系统、自动测试系统、检测监视系统、智能仪表、功能模块等[2]。单片机的应用领域十分广泛,自20世纪80年代以来,单片机的应用已经深入到工业、农业、国防、科研、机关、教育、商业以及家电、生活、娱乐、玩具等各个领域中。单片机应该在检测、控制领域中,具有以下特点:1)小巧灵活、成本化、易于产品化。2)可靠性好,适用范围广[3]。 近年来,电子钟已成为人们日常生活中必不可少的物品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来了极大的方便。随着技术的发展,人们已不再满足于钟表原先简单的计时功能,希望出现一些新的功能,诸如日历的显示、闹钟的应用等,以带来更大的方便,而所有这些,又都是以数字化的电子时钟为基础的。因此,研究实用电子时钟及其扩展应用,有着非常现实的意义,具有很大的实用价值[4]。 由于数字集成电路技术的发展和采用了先进的石英技术,现代电子钟具有走时准确、性能稳定、制作维修简单等优点,弥补了传统钟表的许多不足之处[5]。我们利用单片机技术设计制作的电子万年历, 可以很方便的由软件编程进行功能的调整和改进,使其在能够准确显示年、月、日、时间、星期的同时,还能具有很多其他的功能[6]。如设定闹钟、语音报时、阴阳历的转换、二十四节气的显示等,有一定的新颖性和实用性,同时体积小、携带方便,使用也更为方便,具有技术更新周期短、成本低、开放灵活等优点,具备一定的市场前景。这里要介绍的就是一款可满足使用者特殊要求,输出方式灵活、计时准确、性能稳定、维护方便的实用电子万年历[7]。

相关文档
相关文档 最新文档