【毕业设计论文:】 毕业设计和毕业论文哪个简单
毕业设计论文 电子万年历与温度报警 系 电子信息工程系 专业 电子信息技术 姓名 班级 电子独本1602 学号 指导老师 职称 副教授 设计时间 2018年3月16号 目 录 摘 要...............................................1 第1章 绪论.........................................2 第2章 系统的方案设计与论证.........................4 第3章 系统硬件的设计...............................7 第4章 系统软件的设计..............................24 第5章 系统的机体设计及调试........................30 第6章 总结........................................34 致 谢..............................................35 参考文献............................................36 摘 要 本文介绍了基于AT89S52单片机的多功能电子万年历的硬件结构和软硬件设计方法。本设计由数据显示模块、温度采集模块、时间处理模块和调整设置模块四个模块组成。系统以AT89S52单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。温度采集选用DS18B20芯片,万年历采用直观的数字显示,数据显示采用1602液晶显示模块,可以在LCD1602上同时显示年、月、日、周日、时、分、秒,还具有时间校准等功能。此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。
关键词:单片机AT89S52 时钟芯片DS1302 温度传感器DS18B20 1602液晶显示器 第1章 绪论 1.1 课题研究的背景 随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。
此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
1.2课题的研究目的与意义 二十一世纪是数字化技术高速发展的时代,而单片机在数字化高速发展的时代扮演着极为重要的角色。电子万年历的开发与研究在信息化时代的今天亦是当务之急,因为它应用在学校、机关、企业、部队等单位礼堂、训练场地、教学室、公共场地等场合,可以说遍及人们生活的每一个角落。所以说电子万年历的开发是国家之所需,社会之所需,人民之所需。
由于社会对信息交换不断提高的要求及高新技术的逐步发展,促使电子万年历发展并且投入市场得到广泛应用。
1.3总体设计思路 采用AT89C52作为主控单片机,时钟模块选用DS1302作为时钟芯片,温度模块选用DS18B20作为温度传感器,显示模块选用LCD1602,设置部分选用按键电路。
AT89C52与MCS-51单片机产品兼容 、8K字节在系统可编程Flash存储器、 1000次擦写周期、 全静态操作:0Hz~33Hz 、 三级加密程序存储器 、 32个可编程I/O口线 、三个16位定时器/计数器 八个中断源 、全双工UART串行通道、 低功耗空闲和掉电模式 、掉电后中断可唤醒 、看门狗定时器 、双数据指针 、掉电标识符 。
DS1302 实时时钟芯片功能丰富,可以用来直接代替IBM PC 上的时钟日历芯片DS12887,同时,它的管脚也和MC146818B、DS12887 相兼容。由于DS1302 能够自动产生世纪、年、月、日、时、分、秒等时间信息,其内部又增加了世纪寄存器,从而利用硬件电路解决子“千年”问题;
DS1302 中自带有锂电池,外部掉电时,其内部时间信息还能够保持10 年之久;
对于一天内的时间记录,有12 小时制和24 小时制两种模式。用户还可对DS1302 进行编程以实现多种方波输出,并可对其内部的三路中断通过软件进行屏蔽。
DS18B20可组网数字温度传感器芯片封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。可编程的分辨率为9~12位 温度转换为12位数字格式最大值为750毫秒 用户可定义的非易失性温度报警设置。DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。采用一线通信接口。
1.4课题解决的主要内容 本课题所研究的电子万年历是单片机控制技术的一个具体应用,主要研究内容包括以下几个方面:
(1)选用电子万年历芯片时,应重点考虑功能实在、使用方便、单片存储、低功耗、抗断电的器件。
(2)根据选用的电子万年历芯片设计外围电路和单片机的接口电路。
(3)在硬件设计时,结构要尽量简单实用、易于实现,使系统电路尽量简单。
(4)根据硬件电路图,在开发板上完成器件的焊接。
(5)根据设计的硬件电路,编写控制AT89S52芯片的单片机程序。
(6)通过编程、编译、调试,把程序下载到单片机上运行,并实现本设计的功能。
第2章 系统的方案设计与论证 单片机电子万年历的制作有多种方法,可供选择的器件和运用的技术也有很多种。所以,系统的总体设计方案应在满足系统功能的前提下,充分考虑系统使用的环境,所选的结构要简单使用、易于实现,器件的选用着眼于合适的参数、稳定的性能、较低的功耗以及低廉的成本。
系统的功能往往决定了系统采用的结构,经过成本,性能,功耗等多方面的考虑决定用三个8位74LS164串行接口外接LED显示器,RESPACK-8对单片机AT89S52进行供电,时间芯片DS1302连接单片机AT89S52。从而实现电子万年历的功能。
按照系统设计的要求,初步确定系统由电源模块、时钟模块、显示模块、键盘接口模块、温度测量模块和闹钟模块共六个模块组成,电路系统构成框图如图2.1所示。
2.1 硬件电路框图 2.1单片机芯片设计与论证 方案一: 采用AT89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,能用于3V的超低电压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。
方案二: 采用AT89S52芯片作为硬件核心,采用Flash ROM,能以3V的超低电压工作,而且与MCS-51系列单片机完全兼容,该芯片内部存储器为8KB ROM 存储空间。同样具有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.1 AT89S51单片机 本系统采用的是美国ATMEL公司生产的AT89S52单片机,首先我们来熟悉一下AT89S52单片机的外部引脚和内部结构。
1.单片机的引脚功能 AT89S52单片机有40个引脚。
l Vcc:电源电压+5V l GND:接地 l P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线服用,在访问期间激活内部上拉电阻。
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时要求外接上拉电阻。
l P1口:P1口是一个带内部上拉电阻的8位双向I/O,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
Flash 编程和程序校验期间,P1接收低8位地址。
l 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口线外,更重要的用途是它的第二功能,见表3.1所示:
表3.1 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(外部数据存储器读选通) P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
l RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。WDT溢出将使引脚输出高电平,设置SFR AUXR的DISRT0(地址8EH )可打开或关闭该功能。DISRT0位缺省为RESET输出高电平打开状态。
l ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存器允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。
对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过多特殊功能寄存器(SFR)区中的8EH单元的D0位置,可禁止ALE操作。该位置后,只有一条MOVX和MOVC指令ALE才会被激活。另外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。
l PSEN:程序存储允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的PSEN信号。
l EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。需要注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。
Flash存储器编程时,该引脚加上+12V的变成电压Vpp. l XTAL1:振荡器反相放大器及内部时钟发生器的输入端。
l XTAL2:振荡器反相放大器的输出端。
AT89S52单片机内部结构 2.AT89S52单片机与MCS-51完全兼容 l 看门狗(WDT):WDT是一种需要软件控制的复位方式。WDT 由13位计数器和特殊功能寄存器中的看门狗定时器复位存储器(WDTRST)构成。WDT 在默认情况下无法工作;
为了激活WDT,用户必须往WDTRST 寄存器(地址:0A6H)中依次写入 01EH 和0E1H。当WDT激活后,晶振工作,WDT在每个机器周期都会增加。WDT计时周期依赖于外部时钟频率。除了复位(硬件复位或WDT溢出复位),没有办法停止WDT工作。当WDT溢出,它将驱动RSR引脚输出一个高电平。
l 可编程串口(UART)在AT89S52中,UART 的操作与AT89S52 和AT89C52 一样。AT89S52系列单片机的串行通信口可以工作于同步和异步通信方式。当工作于异步方式时,它具有全双工的操作功能,也就是说,它可以同时进行数据的发送和接收。串行口内的接收器采用的是双缓冲结构,能够在接收到的第一个字节从接收寄存器读走之前就开始接收第二个字节(当然,如果第二个字节接收完毕,而第一个字节仍然没有被读走,那将会丢掉一个字节)。串行口的发送和接收操作都是通过特殊功能寄存器中的数据缓冲寄存器SBUF进行的,但在SBUF的内部,接收寄存器和发送寄存器在物理结构上是完全独立的。如果将数据写入SBUF,数据会被送入发送寄存器准备发送。如果执行SBUF指令,则读出的数据一定来自接收缓存器。因此,CPU对SBUF的读写,实际上是分别访问2个不同的寄存器。这2个寄存器的功能决不能混淆。
l 振荡电路:AT89S52系列单片机的内部振荡器,由一个单极反相器组成。XTAL1反相器的输入,XTAL2为反相器的输出。可以利用它内部的振荡器产生时钟,只要XTAL1和XTAL2引脚上一个晶体及电容组成的并联谐振电路,便构成一个完整的振荡信号发生器,此方式称为内部方式。另一种方式由外部时钟源提供一个时钟信号到XTAL1端输入,而XTAL2端浮空。在组成一个单片机应用系统时,多数采用这种方式,这种方式结构紧凑,成本低廉,可靠性高。在电路中,对电容C1和C2的值要求不是很严格,如果使用高质的晶振,则不管频率为多少,C1、C2通常都选择30pF。
l 定时/计数器:AT89S52单片机内含有2个16位的定时器/计数器。当用于定时器方式时,定时器的输入来自内部时钟发生电路,每过一个机器周期,定时器加1,而一个机器周期包含有12个振荡周期,所以,定时器的技术频率为晶振频率的1/12,而计数频率最高为晶振频率的1/24。为了实现定时和计数功能,定时器中含有3种基本的寄存器:控制寄存器、方式寄存器和定时器/计数器。控制寄存器是一个8位的寄存器,用于控制定时器的工作状态,方式寄存器是一个8位的寄存器,用于确定定时器的工作方式,定时器 /计数器是16位的计数器,分为高字节和低字节两部分。
l RAM:高于7FH内部数据存储器的地址是8位的,也就是说其地址空间只有256字节,但内部RAM的寻址方式实际上可提供384字节。的直接地址访问同一个存储空间,高于7FH的间接地址访问另一个存储空间。这样,虽然高128字节区分与专用寄器 ,即特殊功能寄存器区的地址是重合的,但实际上它们是分开的。究竟访问哪一区,存是通过不同的寻址方式加以区分的。
l SFR:SFR是具有特殊功能的所有寄存器的集合,共含有22个不同寄存器,它们的地址分配在80H~FFH中。虽然如此,不是所有的单元都被特殊功能寄存器占用,未被占用的单元,其内容是不确定的。如对这些单元进行读操作,得到的是一些随机数,而写入则无效,所以在编程时不应该将数据写入这些未确定的地址单元中,特殊功能寄存器主要有累加器ACC、B寄存器、程序状态字寄存器PSW、堆栈指针SP、数据指针DPTR、I/O端口、串行口数据缓冲器SBUF、定时器寄存器、捕捉寄存器、控制寄存器 l 中断系统: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的引脚排列及内部结构图如图3.1:
DS1302引脚说明:
X1,X2 32.768kHz晶振引脚 GND 地线 VCC1 慢速充电引脚 RST 复位端 VCC2 电源引脚 I/O 数据输入/输出端口 SCLK 串行时钟端口 图3.1 DS1302管脚 时钟芯片DS1302的接口电路及工作原理:
图3.2 DS1302与MCU接口电路 图3.2为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.2 DS1302的控制字格式 1 RAM/CK A4 A3 A2 A1 A0 RD/WR 3、数据输入输出(I/O) 在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。如下图3.3所示。
图3.3 DS1302读/写时序图 4、DS1302的寄存器AM(———) DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表3.3。
表3.3 DS1302的控制字格式 3DS1302的控制字格式 写寄存器 寄存器读写 B it7 B it6 B it5 B it7 B it3 B it2 B it1 B it0 80H 81H CH 10秒 秒 82H 83H 10分 分 84H 85H 2/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 P 0 0 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时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图3.4中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。
LSB 位置/清除 增加 计数器1 斜率累加器 计数比较器 温度寄存器 减到0 预置 计数器2 减到0 停止 预置 低温度系数晶振 高温度系数晶振 图3.4 DS18B20测温原理 3.3.2 DS18B20接口电路设计 如3.5图所示,该系统中采用数字式温度传感器DS18B20,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,用P3.7与DS18B20的DQ口连接,Vcc接电源,GND接地。DS18B20的工作电流约为1mA,VCC一般为5V,则电阻R=5V/1mA=5KΩ,目前用的电阻一般不是可调电阻,只是固定阻值,市场上有的就那么几个型号。其中DS18B20接有电源,则需要一个上拉即可稳定的工作。这个电阻通常比较大,我们选择10K电阻的来起到上拉作用,使之为高电平,使后续电路保护。
图3.5温度传感器DS18B20接口 3.3.3 DS18B20的工作时序 1、复位时序图 图3.6复位时序图 1、 读时序图 图3.7读时序图 3、写时序图 图3.8 写时序图 3、工作时序 1)总线时序 图3.9 总线时序 2)写周期时序 图3.10写周期时序 3)起始/停止时序 图3.11 起始/停止时序 4)应答时序 图3.12 应答时序 5) 立即地址读时 图3.13 立即地址读时序 3.4 LCD显示模块 3.4.1 LCD1602的特性及使用说明 1 LCD1602的接口信号说明如表3.4 表3.4 LCD1602的接口信号 编号 引脚符号 功能说明 编号 引脚符号 功能说明 1 VSS 电源地 9 D2 DATA I/O 2 VDD 电源正极 10 D3 DATA I/O 3 VL 液晶显示偏压信号 11 D4 DATA I/O 4 RS 数据/命令选择端(H/L) 12 D5 DATA I/O 5 R/W 读/写选择端(H/L) 13 D6 DATA I/O 6 E 使能信号 14 D7 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) 显示模式设置如表3.5:
表3.5显示模式设置 指令码 功能 0 0 1 1 1 0 0 0 设置16*2显示,5*7点阵,8位数据接口 2) 显示开/关及光标设置如表3.6:
表3.6 显示开/关及光标设置 指令码 功能 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为背光的阴极和阳极,接上相应电平即点亮背光灯。如图3.14 图3.14显示电路 其中1602的第3脚接10K与1.5K的串联电阻起到分压作用,能够调节第一行与第二行亮度对比。第16接个三极管的作用放大,是为了能够让液晶显示器的背光灯亮起,从而在夜间也能观看万年历。
3.5按键模块设计 本系统用到了4个按键,其中一个用作系统手动复位,另外4个采用独立按键,该种接法查询简单,程序处理简单,可节省CPU资源,按键电路如图3.15所示,4个独立按键分别与AT89S52的P3.0、P3.1、P3.2、P3.3接口相连。
图3.15 按键电路 对以上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个机器周期的延时 本设计采用上电复位电路,如图3.16所示上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,复位电路能使RST持续一段时间的高电平, 从而实现上电且开关复位的操作。通常选择C=10~30μF,本设计采用的电容值为10μF的电容和电阻为10K的电阻。
图3.16 复位电路 第4章 系统软件的设计 电子万年历的功能是在程序控制下实现的。该系统的软件设计方法与硬件设计相对应,按整体功能分成多个不同的程序模块,分别进行设计、编程和调试,最后通过主程序将各程序模块连接起来。这样有利于程序修改和调试,增强了程序的可移植性。
本系统的软件部分主要要进行公历计算程序设计,温度测量程序设计,按键的扫描输入等。程序开始运行后首先要进行初始化,把单片机的各引脚的状态按程序里面的初始化命令进行初始化,初始化完成后运行温度测量程序,读取出温度传感器测量出来的温度,然后运行公历计算程序,得到公历的时间、日期信息,再运行按键扫描程序,检测有无按键按下,如果没有按键按下则直接调用节日计算程序,根据得到的公历日期信息计算出节日,如果有按键按下则更新按键修改后的变量后送给节日计算程序,由节日计算程序根据修改后的变量计算出对应的节假日,计算完成后运行显示程序,显示程序将得到的温度数据、公历信息、节假日信息送给对应的数码管让其显示。
4.1主程序流程图的设计 主程序流程图如图4.1:
开始 DS1302初始化 设置DS1302 读年月日星期时分秒 将读取的数据处理后送液晶屏显示 返回 图4.1 主程序流程图 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地址 返 回 值:ucData :读取的数据 uchar R1302(uchar ucAddr) { uchar ucData; T_RST = 0; T_CLK = 0; T_RST = 1; RTInputByte(ucAddr); /* 地址,命令 */ ucData = RTOutputByte(); /* 读1Byte数据 */ T_CLK = 1; T_RST = 0; return(ucData); } DS1302与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位MSB(D7)必须为逻辑 1,如果D7=0,则禁止写DS1302,即写保护;
D6=0,指定时钟数据,D6=1,指定RAM数据;
D5~D1指定输入或输出的特定寄存器;
最低位LSB(D0)为逻辑0,指定写操作(输入),D0=1,指定读操作(输出) 。
4.2.2 温度程序设计 单总线上最基本的操作有初始化、写和读3种,所有其它的操作都由这3种基本操作组合而成,初始化用于对总线上的器件进行状态复位,写用于主节点向总线上写入一位数据,读用于主节点从总线上读取一位数据。在这3种操作中,只有写操作是单向的,初始化操作和读操作都是双向的。具体程序设计如下:
byte ow_reset(void) { byte presence; DQ = 0; //拉低总线 delay(29); // 保持 480us DQ = 1; // 释放总线 delay(3); // 等待回复 presence = DQ; // 读取信号 delay(25); // 等待结束信号 return(presence); // 返回 0:正常 1:不存在 } //从 1-wire 总线上读取一个字节 byte read_byte(void) { byte i; byte value = 0; for (i=8;i>0;i--) { value>>=1; DQ = 0; DQ = 1; delay(1); if(DQ)value|=0x80; delay(6); } return(value); } //向 1-WIRE 总线上写一个字节 void write_byte(char val) { byte i; for (i=8; i>0; i--) // 一次写一位 { DQ = 0; // DQ = val&0x01; delay(5); // DQ = 1; val=val/2; } delay(5); } 第5章 系统的机体设计及调试 5.1系统的模块组成 本设计由数据显示模块、温度采集模块、时间处理模块和调整设置模块四个模块组成。系统的核心采用的是AT89S52单片机;
数据显示模块采用的是LCD液晶显示;
温度采集模块用的是DS18B20温度传感器,该传感器所采用的是单总线传输,内部带有A/D转换,用起来非常方便;
时间处理模块用的是DS1302时钟芯片,可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能;
调整设置模块共包括四个按键:模式选择键、功能选择键、调整加按键、调整减按键。电路实际效果如图5.1 图5.1实际效果图 5.2系统软件调试与仿真 通过编写出程序,然后在仿真原理图中检查单片机和液晶屏等器件是否能够正常显示。通过Keil uVision4软件的使用来编译程序的,确保了程序的正确性及程序所设计的功能能够顺利的实现。如图20程序运行图 通过软件的调试,接着在Proteus仿真软件里进行仿真。按原理图的设计在ISIS软件中连接好电路。接好后装入HEX文件后,单击仿真运行工具栏上的“运行”,在ISIS的编辑窗口中可以看到单片机应用系统的仿真运行效果。其中,红色方块代表高电平,蓝色方块代表低电平。如图5.2仿真效果图 图5.2程序运行图 图5.3仿真效果图 5.3系统硬件调试 ①次电路主要是检测格其引脚电压是否正常,晶振和电源是否接好,检测硬件电路是否有短路、断路、虚焊等,以确保设计的可靠性和电器元件的性能。而电路中的电源电路、晶体振荡电路、按键接口电路及复位电路、闹钟电路等都是采用基础的电路设计,除了基础电路硬件调试外我们还可以通过软件来测试硬件,如通过下载口写入其它一个比较简单的程序,以便测试。
②首先由USB电源插口接入5V的直流电压供给系统使用。在这里接上一个发光二级管作为指示,单输入电压正常时,二极管亮,LCD同时显示正常。系统在正常工作时, LCD液晶上第一行显示时分秒和温度,第二行显示年月日和星期,如果想要对时间进行调整,可以通过调整设置模块来实现。当按下设置键P3.0键时可调节主页面的时分秒、年月日的调节,P3.1为调整加按键,P3.2为调整减按键,P3.3按下时可进入另一种模式。第二种模式可显示闰年,第三种模式可设置闹钟时间。如果想要退出该模式就在按一下P3.3即可。
③在硬件调试过程中,当接通电源的时候,我们发现液晶显示器没有工作,背光灯有亮但没有数据出来。但电源指示灯已亮,说明电源输入正常,待我们用万用表测电路中各电压时发现,单片机各引脚电压也正常,显示器的各引脚也正常。经过同学与老师的帮助,发现程序出错,改后再接电源,电路一切正常。
系统原理图如图5.4:
图5.4系统原理图 第六章 总 结 在整个设计过程中,硬件方面主要设计了AT89S52单片机的最小系统、DS1302接口电路、DS18B20接口电路、闹钟及LCD显示;
软件方面借助各个渠道的资料,主要设计了阳历数据读取程序、阳历转阴历程序、温度采集程序、闹铃程序以及LCD显示程序;
系统的调试主要是通过一块AT89S52开发板,再借助于Keil、STC以及少许自己搭建的外围电路实现的;
再此过程中,分步调试时显示出了阳历的日期及时间,还有实时温度,集中调试时没有达到预期效果。此万年历具有读显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
在整个设计过程中学到了许多没学到的知识,在电路焊接时虽然没什么大问题,但从中也知道了焊接在整个作品中的重要性,电路工程量大,不能心急,一个个慢慢来不能急于求成。反而达到事半功倍的效果。对电路的设计、布局要先有一个好的构思,才显得电路板美观、大方。程序编写中,由于思路不清晰,开始时遇到了很多的问题,经过静下心来思考,理清了思路,反而得心应手。在此次设计中,知道了做事要有一颗平常的心,不要想着走捷径,一步一脚印。也练就了我们的耐心,做什么事都要有耐心。在本次设计中学到了很多很多东西,这是最重要的。
总之,此次毕业设计使我们的能力得到了全方位的提高,这次设计的电子万年历也存在的不足的地方,有待于以后的改进。
致 谢 六月,总是阳光灿烂。六月,总要曲终人散。六月,我们拒绝伤感。花儿谢了芬芳,迎来硕果飘香。毕业带来别离,我们走向辉煌。在论文完稿之际,谨对在本论文的撰写过程中,给予我帮忙的导师和亲爱的家人,表示深深的感谢!个性要感谢我的导师王斌老师。无论是为人还是治学,他都是我学习的榜样,值得信赖的良师益友。在承担繁重的教学和工作任务的状况下,他主动关心我的学习和科研。从论文的选题、开题报告的撰写、资料的查找,到结构的完善,都给予悉心指导,使我顺利成文。
另外,要感谢我的家人,是家人的鼓励和支持,使已过不惑之年的我能够全心投入学习和工作之中,顺利完成学业。最后衷心感谢在百忙之中评阅论文和参加答辩的各位专家、教授! 参考文献: [1]陈明荧. 8051单片机课程设计实训教程[M].北京:清华大学出版社 [2]苏平.单片机的原理与接口技术[M].北京:电子工业出版社,2006:1-113. [3]王忠民.微型计算机原理[M].西安:西安科技大学出版社,2003:15-55. [4]何立民.单片机高级教程[M].北京:北京航空航天大学出版社,2003年 [5]纪宗南.单片机外围器件使用手册[M].北京:北京航空航天大学出版社,622-655. [6]周雪.模拟电子技术[M]西安: 西安电子科技大学出版社,2005:81-95. [7]左金生.电子与模拟电子技术[M].北京:电子工业出版社,2004:105-131. [8]尹勇.单片机开发环境μVision2的开发指南[M]. 北京:北京航空航天大学出版社,2004:173-199. [9]马忠梅,籍顺心等.单片机的C语言应用程序设计[M].北京航空航天大学出版社, 2001年 [10]新编单片机原理与应用(第二版).西安电子科技大学出版社,2007.2 [11]张萌.单片机应用系统开发综合实例[M]. 北京:清华大学出版社,2007.7 [12]楼然苗.单片机课程设计指导[M]. 北京:北京航空航天大学出版社,2007.7 [13]李广弟. 单片机原理及应用[M] 北京航空航天大学出版社,2004年 [14]王越明.电子万年历的设计[J].黑龙江科技信息,2004年 [15] 余锡存,曹国华,单片机原理及接口技术. 西安:西安电子科技大学出版社,2000 [16] W.Simpson,Editor,The Point-to-Point Protocol, RFC1661 [EB/OL]. July 1994。
[17] WAVECOM,AT Commands Interface Guide, Revision 002[EB/OL].6th November 2003。
推荐访问: 毕业设计 论文