单片机课程设计基于52单片机的数字钟和电子温度计液晶显示_第1页
单片机课程设计基于52单片机的数字钟和电子温度计液晶显示_第2页
单片机课程设计基于52单片机的数字钟和电子温度计液晶显示_第3页
单片机课程设计基于52单片机的数字钟和电子温度计液晶显示_第4页
单片机课程设计基于52单片机的数字钟和电子温度计液晶显示_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

电 子 技 术 课 程毕业设计报告第一章 课程设计的目的与要求(含设计指标)41.1数字钟设计的目的41.2数字钟设计的要求4第二章 方案论证选择42.1方案一42.1.1单元电路设计42.1.2 总体电路82.1.3 实时时钟电路的方案对比选择82.2方案二7第三章 原理设计93.1 基本原理93.2 电路仿真93.3 系统组成框图103.4 单元电路设计103.5总体电路图453.6原件列表18第四章 方案实现与测试。184.1主程序184.2 proteus仿真194.3利用焊好的板子进行调试194.4调试过程中出现的问题19第五章 课程设计小结19基于DS1302的数字钟设计报告摘要 根据AT89S52的特点和数字钟的特点,本文提出一种用单片控制DS1302利用LCD1602显示的数字钟的设计方法,同时给出软硬件电路的设计方法。设计报告硬件电路设计和软件编程两个方面。本系统通过AT89S52做为CPU进行总控制,利用AT89C52对DS1302进行控制,DS1302可以对年、月、日、周、日、时、分、秒进行计时,设有44按键按钮,使之具备了校时、 秒表计时、24小时12小时转换、省电状态和复位功能。最后利用LCD1602液晶显示进行显示。该设计实用简便能够对年、月、日、周、日、时、分、秒进行有效准确的计时及显示。关键词:单片机 DS1302 LCD1602 数字钟第一章 课程设计的目的与要求(含设计指标)1.1数字钟设计的目的自古就有:“一寸光阴,一寸金”的说法。而随着人类的进步科学技术的发展时间观也越来越被人们重视,而能够准确的知道时间能够提高人们的工作效率,能更好的在规定的时间内完成所规定的工作 。因此能有随时随地的知道当前时间是非常重要的。随着科学技术的发展,单片机技术的不断完善,使得数字钟的设计变得更加的灵便、更加简单、功能更加的完善、计时也更加的准确。本设计实用简单,设计方便,计时准确,能够对年、月、日、周、日、时、分、秒进行准确的计时,可以让人们随时知道时间1.2数字钟设计的要求文中设计了一个显时、调时、 定时以及具有整点报时功能的电子钟。电子钟使用 12 MHZ晶振与 AT89S52单片机相连接,通过软件编程的方法实现了以 24小时为一个周期,同时显示小时、 分钟和秒的要求,而且有三组定时计数功能。该电子钟设有44按键按钮,使之具备了校时、 定时、24小时12小时转换、省电状态和复位功能。同时, 电子钟还设计了掉电保护电路,当电源断电时能保存时钟当前定时设计的全部数据。通过 AT89S52电子时钟的设计,对 51单片机系列有了更加深刻的认识, 对其各个引脚功能掌握的更为透彻。也再次认识到单片机的应用具有使用范围广的特点,对各个行业的技术改造和产品智能化的更新换代起着重要的推动作用。第二章 方案论证选择2.1方案一:数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。在数字钟的发展上看,主要向小型化、多功能化发展。数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。传统的设计方法有两种,一是利用组合逻辑电路和时序电路等中小规模集成电路来设计;一是利用单片机编程技术来设计。数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定。通常使用石英晶体振荡器电路构成数字钟。总体方案设计如图(1)所示。图(1)2.1.1单元电路设计:各功能块电路图,各部分定性说明以及计算分析。晶体振荡器电路:给数字钟提供一个频率稳定准确的32768z的方波信号,可保证数字钟的走时准确及稳定。石英晶体振荡器如图(2)所示,采用反向器等元件构成。利用一个与非门的自我反馈使它工作在线性状态,然后利用石英晶体JU来控制震荡频率,电阻为反馈元件,电容C防止寄生振荡。图(2)分频器电路:由于石英晶体产生较高的32768HZ的频率,而电子钟需要秒脉冲,可采用分频电路实现,具体电路图如(3)所示。先经过3次十六分频,在经过一次八分频最后得到脉冲信号。图(3)时间计数单元:因为电子钟有秒、分、时组成,分别60、60和24进制。采用一片4520接成60进制,4520的第一组4位二进制接成秒的个位,另一组接成秒的十位,“分”也为60 进制,“时”为24 进制。这两种进制的次序和二进制完全相同, 只是模数不是2 的整幂。采用反馈置零法清零, 先按二进制计数器串联起来构成计数器, 当计数状态达到所需的脉冲模值后, 经过电路译码、反馈、产生复位脉冲将计数器清零, 然后重新开始进行下一个循环。(1)60 进制计数器。电路如图(4)所示。4520的第一组4 位二进制构成10 进制, 第二组4 位二进制构成6 进制, 因为二组都为16 进制, 而4520具有异步清零的功能。在第一组的4 位二进制加法计数器中, 当第十个脉冲来到时, 此时它的四级触发器状态“1010”, 这时QDQB 均为高电平。因为4520 的清零端为高电平清零, 所以QDQB 经过2 输入的与非门连接后输出给后一级反向器接到清零CR 端, 使第一组为10 进制, 第二组为6 进制, 当第一组清零的同时给第二组的加法计数器的CP 端进行计数, 而第一组的第6 个脉冲进位到来时, 此时第二组的触发器状态为“0110”, 这时QBQC 均为高电平“1”, 将它们经过二组输入与非门后, 再经过一级反向器 , 送到计数器的清零端, 在清零的同时, 给上一级进位, 从而利用了4520 的异步清零的功能接成了60 进制计数器。图(4)(2) 24 进制计数器。24 进制计数器由4520 和4510 组成。当“时”个位计数器4510 复零, 进位输出端向“时”十位计数输出进位信号, 当第24个脉冲来自“分”时计数器时位脉冲信号, 到达时“时”个位计数器状态为“0100”, “时”十位计数器状态“0010”即时的个位, 计数器的输出QC和“时”十位计数的输出端QB 均为高电平“1”。经过与非门、再经过一级反向器, 送到4510 和4520 的清零CR 端, 计数器复位清零。电路如图(5)所示。图(5)译码与显示电路:译码是把给定的代码进行翻译, 将时、分、秒计数器输出的四位二进制代码翻译为相应的十进制数, 并通过LED 显示器显示, 通常LED 显示器与译码器是配套使用的。我们选用的七段译码驱动器(74LS47) 和数码管(LED) 是共阳接法。LED 显示器的3、8 管脚接一起, 限流电阻为200 和+ 5V联接。实际使用时a 、b、c 、d、e f 、g 各段都应该接一个限流电阻, 在图中略画出来。译码显示电路如图(6) 所示。图(6)校时电路:当电子钟接通电源或者计时发现误差时, 均需要校正时间。校时电路分别实现对时、分的校准。由于每个机械开关具有抖动现象, 因此用RS 触发器作为去抖电路。采用RS 基本触发器及单刀双掷开关, 闸刀常闭于2 点, 每搬动一次产生一个计数脉冲, 实现校时功能。电路如图7 所示。图(7)2.1.2总体电路: 图()2.2方案二:由于单片机的这种结构形式及它所采取的半导体工艺,使其具有很多显著的特点,因而在各个领域都得到了迅猛的发展。单片机主要有如下特点: 1. 有优异的性能价格比。 2. 集成度高、体积小、有很高的可靠性。单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性与抗干扰能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境下工作。 3. 控制功能强。为了满足工业控制的要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以及位处理功能。单片机的逻辑控制功能及运行速度均高于同一档次的微机。 4. 低功耗、低电压,便于生产便携式产品。 5. 外部总线增加了I C(Inter-Integrated Circuit)及SPI(Serial Peripheral Interface)等串行总线方式,进一步缩小了体积,简化了结构。 6. 单片机的系统扩展和系统配置较典型、规范,容易构成各种规模的应用系统。本设计基于单片机技术原理,以单片机芯片STC89S52 作为核心控制器,通过硬件电路的制作及软件程序的编制,利用单片机的控制作用通过LCD来直接显示日期、时、分、秒,并能对其分别进行设置、修改;通过软件的设计来实现12 h /24 h制显示模式切换;利用单片机STC89S52 的定时器1,实现秒表的准确运行、秒表功能和时钟功能的切换,并且具有省电模式。 所以我们最后采用单片机,其次,显示模块一开始我们选用LED数显管,但是因为再买件的时候没有买到相应的驱动三极管和驱动芯片再加上电路焊接比较复杂,所以最后我们选择LCD液晶显示。并且选用1302时钟芯片,使程序编程大为简化,也是我们的时间更加精准。具体原理我们会在下面具体详述。第三章 原理设计(或基本原理)3.1基本原理本设计基于单片机技术原理,以单片机芯片AT89S52作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个多功能数字时钟系统。单片机扩展的LCD显示器用来显示秒、分、时计数单元中的值。整个设计包括两大部分: 硬件部分和软件部分,以单片机为核心, 配以一定的外围电路和软件。硬件是整个系统的基础, 软件部分则要合理、充分地支持和使用系统的硬件, 从而完成系统所要完成的任务。该时钟系统主要由时钟模块、液晶显示模块、键盘控制模块以及信号提示模块组成。能够准确显示时间(显示格式为日期 时时:分分:秒秒,24小时制),可随时进行时间调整。设计以硬件软件化为指导思想,充分发挥单片机功能,大部分功能通过软件编程来实现,电路简单明了,系统稳定性高。单片机在这种情况下诞生了基于单片机电子时钟。3.2电路仿真图()3.3系统组成框图89S52单片机DS1302时钟电路复位电路晶振电路控制按键44LCD1602时钟电路图()3.4单元电路设计3.4.1 89S5289S52的塑封图如图3.1所示,它为DIP40双列直插塑料封装。AT89S52作为系统的核心控制元件,只有它能正常工作后才能使其它的元件进入正常工作状态。因此,下面对AT89S52进行必要的说明,AT89S52的管脚如图3.2所示。 图3.1 AT89C52引脚图1)VCC:40脚,供电电压,一般接+5V电压。2)GND:20脚,接工作地。3)P0口:18脚,P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上电阻。但是P0口在程序校验作为输出指令字节时,需要外部加上拉电阻,一般上拉电阻选4.7K10K为宜。本设计中用5.1K的排阻对P0口进行上拉电平。4)P1口:3239脚,P1口是一个内部具有上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4个TTL门电流。P1端口写入“1”后,被内部上拉电阻把端口拉高,此时可以作为作输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。5)P2口:2027脚,P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。6)P3口:1017脚,P3 口是一个具有内部上拉电阻的8 位双向I/O 口,P3 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。7)RESET:9脚,复位输入端。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。8):30脚,当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于系统校验。9)PSEN:29脚,外部程序存储器的选通信号。10):31脚,访问外部程序存储器控制信号。当为低电平时,读取外部程序存储器;当端为高电平时,则读取内部程序存储器,设计中一般接高电平。11)XTAL1:19脚,振荡器反相放大器和内部时钟发生电路的输入端。如采用外部时钟源时,XTAL1为输入端。12)XTAL2:18脚,振荡器反相放大器的输出端。如采用外部时钟源时,XTAL2应悬空不接。3.4.2 LCD液晶显示电路液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在各种小系统中得到了更广泛的应用。本设计中使用的液晶显示模块是LCD1602。图3.3所示为本设计LCD1602的连接图。 图3.2 LCD1602连接图LCD1602是一种用5x7点阵图形来显示字符的液晶显示器模块,它显示的容量为2行16个字。其实物如图3.4和图3.5所示,它的显示内容丰富、体积小、美观和易于控制都是本设计选择作为显示模块的原因。其引脚结构图如图3.6所示。图3.3 LCD1602正面图图3.4 LCD1602反面图关于LCD1602的引脚说明如下:1)第1脚:GND为地电源。2)第2脚:VCC接+5V电源。3)第3脚:VEE为液晶显示器对比度调整端。接+5V电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的精密电位器调整对比度,一般对比电压为0.7V左右。4)第4脚:RS为寄存器选择。高电平时选择数据寄存器,否则选择指令寄存器。5)第5脚:为读写信号线。高电平时进行读操作,低电平时进行写操作。当RS和共同为低电平时可以写入指令或者显示地址,当RS为低电平为高电平时可以读出忙信号,当RS为高电平为低电平时可以写入数据。6)第6脚:E端为使能端。当E端由高电平跳变成低电平时,液晶模块执行命令。7)第714脚:D0D7为8位双向数据线。 8)第15脚:背光灯VCC,一般直接和+5V电源相连接。9)第16脚:背光灯GND。 LCD1602液晶模块内部的字符发生存储器已经存储了160个不同的点阵字符图形,这些字符图有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。LCD1602液晶模块内部的控制器共有11条控制指令,如表3.1所示。指令RSR/WD7D6D5D4D3D2D1D0清显示0000000001光标返回000000001*置输入模式00000001I/DS显示开/关控制0000001DCB光标或字符移位000001S/CR/L*置功能00001DLNF*置字符发生存贮器地址0001字符发生存贮器地址置数据存贮器地址001显示数据存贮器地址(ADD)读忙标志或地址01BF计数器地址(AC)写数到CGRAMD或DRAM10要写的数从CGRAMD或DRAM读数11读出的数据它的读写操作、屏幕和光标的操作都是通过指令编程来实现的(说明:1为高电平,0为低电平)。指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H 。指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 。S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效 。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示。 C:控制光标的开与关,高电平表示有光标,低电平表示无光标。 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁 。指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标 。指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线。 N:低电平时为单行显示,高电平时双行显示。 F:低电平时显示5X7的点阵字符,高电平时显示5x10的点阵字符 (有些模块是 DL:高电平时为8位总线,低电平时为4位总线)。指令7:字符发生器RAM地址设置 。指令8:DDRAM地址设置 。指令9:读出忙信号和光标地址。 BF为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙,模块就能接收相应的命令或者数据。指令10:写数据 。指令11:读数据 。液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志位是不是为低电平,是低电平则表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符。表3.2为 LCD1602的内部显示地址。表3.1 LCD1602的内部显示地址3.4.3 实时时钟电路本设计使用的实时时钟电路芯片是美国DALLAS公司生产的一种高性能、低功耗、带RAM的实时时钟电路芯片DS1302,其引脚如图3.14所示。VCC1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由VCC1或VCC2两者中的较大 者供电;当VCC2大于VCC10.2V时,VCC2给DS1302供电;当VCC2小于VCC1时,DS1302由VCC1供电。X1和X2是振荡源,外接32.768kHz晶振。是复位/片选线,通过把输 入驱动置高电平来启动所有的数据传送。 图3.5 DS1302引脚图输入有两种功能。首先,接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,提供终止单字节或多字节数据的传送手段。当为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时在Vcc2.5V之前,必须保持低电平。只有在SCLK为低电平时,才能将置为高电平。I/O为串行数据输入输出端(双向),SCLK始终是输入端。本设计入端。本设计连接图如图3.15所示,其中C1和C2起微调晶振的作用。 图3.6 DS1302接线图 3.4.4复位电路在AT89S52单片机中的振荡器运行时,引脚上保持到少2个机器周期的高电平输入信号,复位过程即可完成。根据此原理,本设计采用上电复位和按键复位嵌套在系统中,增强了系统的实用性。本设计的具体复位图如下。图3.6 复位电路3.4.5晶振电路AT89S52在工作时需要外部提供时钟信号,因此,本设计选择在其18脚19脚之间接上12MHz的晶振,为单片机提供1s的机器振荡周期。其电路连接图如图所示。在图中,电容器C3.C4起稳定振荡频率、快速起振的作用,其电容值一般在2050pF图3.6晶振电路3.5总体电路图见附页3.6元件列表AT89S52 一块 DS1302 一块 1602一块晶振 32.768K 12M下载口 一个电容 33PF 两个 10UF 一个电阻 10K 十个 1K排阻一排 10K滑动变阻器按键 十六个第四章 方案实现与测试4.1主程序系统的主程序设计是用来控制整个系统运行时的时序工作状态,因此,完善的程序设计是本设计的重点内容。下图是是本设计使用的主程序设计流程图。以下是程序主程序的一下部分:/主函数int main() /初始化温控芯片 fg=1;/可以进行设置是否显示负温 /初始化时间芯片 init_ds1302(); /初始化ds1302 Write1302(0x8e,0x00);/写控制字,允许写 set_ds1302(0x80,now_time_date,8);/设置初始时间,日期,年月 /LCD初始化 LCDInit(); /LCM初始化 /显示初始化界面 DisplayListChar(0, 0, uctech); DisplayListChar(2, 1, net); delay_ms(1000); /启动等待,等LCD讲入工作状态 WriteCommandLCD(0x01,1); /显示清屏/定时器初始化T0_Init_1(); while(1) Getch ();/获取键值 Mode_Check();/进入模式选择界面 本章主要介绍程序的调试。主要利用仿真软件proteus及学习板来确认程序是否能显现功能。4.2 proteus仿真Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台。利用proteus画好相应的硬件电路图,并把程序烧入软件仿真,看是否能显示功能。4.3利用焊好的板子进行调试 经过Proteus仿真后,再把程序烧入单片机学习板看是否能显示功能。4.4调试过程中出现的问题 利用Proteus绘制出相应硬件电路后进行仿真,出现液晶显示无法正常显示的问题。经过思考和查阅的资料发现AT89C52的P0在进高电平时没有接上拉电阻导致LCD1602无法正常显示时间。修改电路后(P0口接上拉电阻)烧入程序后,程序正常运行,LCD1602准确的显示。用Proteus仿真能够正确的现实时间,但烧入学习板出现乱码现实不能正常工作。经过反复检查及思考发现仿真软件上的硬件电路与学习板上的硬件电路不一致无法对应起来。最后根据学习板的硬件电路修改相应程序及仿真软件上的硬件电路,最终现实了功能。第五章 课程设计小结 单片机多功能定时系统理论上能很好的达到了学校教学要求,发挥了单片机在智能化方面的应用。该系统的设计很好的满足当前学校教学的需要,是一个理想的智能化的设计。它具有一个走时精确的实时钟,可以任意设置时间,可以控制时间表的转换,时钟的显示功能等。可以通过按键操作和数字显示。该系统规模小,但是功能较多,操作简单,造价低,应用非常广泛。该系统的设计为向家庭数字化方向发展又前进了一步。同时又扩大了单片机的应用领域。这是一个比较实用的实验程序,通过该程序可以学习数码管的字符显示、动态刷新、定时器使用以及中断方式的处理。既使学生学到了单片机的基本概念,还可以让学生进行电脑操作和仿真,提高了学习的积极性。通过整个电路设计与制作的整个过程,掌握了对电子钟的设计, 组装与调试方法。 熟悉了CMOS 系列中、小规模集成电路的使用。通过理论与实践的结合,进一步深入的体会到一种学习的方法,特别是对与电子设计方面。首先要明确总体的设计方案与方法;其次是对各个部分进行设计与改进;最后将各个部分整合在一起进行比较、观察。在数字钟实验设计当中遇到的首要问题有三个:一是电路的总体设计问题;二是电路的焊接问题;三是电路的调试问题。基于所学数字电路知识的局限性,在选择元器件方面有所困难,开始无从下手应该确定使用何种元件。通过查找资料等过程首先确定了元件,从而确定了总电路图。总的来说,电子钟的课程设计有利于培养我们对电子设计的兴趣,是一次很好的理论与实际的结合,希望能有更多机会进行这些课程设计。第一章 课程设计的目的与要求(含设计指标)22第二章 方案论证选择222.1显示电路方案一222.2显示电路方案二222.3温度测试方案一232.4温度测试方案二23第三章 原理设计243.1 基本原理243.2 系统组成框图253.3 单元电路设计263.4总体电路图453.5原件列表29第四章 方案实现与测试304.1主程序30第五章 课程设计小结37第六章 个人总结38参考书目:42总体电路图43第一章 课程设计的目的与要求(含设计指标)随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,温度传感器AD590具有线性优良、性能稳定、灵敏度高、抗干扰能力强、使用方便等优点,广泛应用于冰箱、空调器、粮仓等日常生活中温度的测量和控制。传统的温度计有反应速度慢、读数麻烦、测量精度不高、误差大等缺点,本文作者利用集成温度传感器AD590设计并制作了一款基于AT89S51的4位数码管显示的数字温度计,其电路简单,软硬件结构模块化,易于实现。第二章 方案论证选择 数字温度计设计主要从硬件选型和软件设计两方面着手,可有效降低功耗,延长工作时间,提高测量精度。软件设计采用间歇式工作模式,在保证系统性能要求的情况下缩短CPU的工作时间,使系统较长时间工作在低功耗模式下,有效地降低了系统的能耗;同时,使用集成于单片机内部的SlopeA/D转换器,并采用多点校准技术和线性插值方法,提高温度采样的精度。现代测温应用中,温度传感器趋于向数字化方向发展,近年来出现了由各种微控制器构成的数字式温度传感器。利用89S52单片机该款单片机强大的运行模式和特殊功能,本文设计了一种数字式温度计,可方便快捷地实现低功耗测量。显示电路我们设计了两个方案:2.1显示电路方案一:用LED显示,有三个独立式按键可以分别调整温度计的上下限报警设置,图中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音,同时LED数码管将没有被测温度值显示,这时可以调整报警上下限,从而测出被测的温度值。按健复位电路是上电复位加手动复位,使用比较方便,在程序跑飞时,可以手动复位,这样就不用在重起单片机电源,就可以实现复位。采用技术成熟的74HC164实现串并转换。LED显示分为静态显示和动态显示。这里采用静态显示,系统通过单片机的串行口来实现静态显示。串行口为方式零状态,即工作在移位寄存器方式,波特率为振荡频率的1/12。当器件执行任何一条将SBUF作为目的寄存器的命令时,数据便开始从 RXD端发送。在写信号有效时,相隔一个机器周期后发送控制端SEND有效,即允许RXD发送数据,同时允许从TXD端输出移位脉冲。图9为显示电路的连接图。有三个独立式按键S1,S2,S3可以分别调整温度计的上下限报警设置,图中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音,同时LED数码管将没有被测温度值显示,这时可以调整报警上下限,从而测出被测的温度值。2.2显示电路方案二:用LCD显示,因为我们第一个电路采用了液晶显示,所以第二个也采用液晶显示。图一 液晶显示模块温度测试模块有两个设计方案2.3温度测试方案一:AD590温度传感器AD590是美国模拟器件公司生产的单片集成两端感温电流源。AD590测温范围为55150,满足人们日常生产和生活中的温度范围。AD590电源电压可在4V6V范围变化,可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。AD590产生的电流与绝对温度成正比,它有非常好的线性输出性能,温度每增加1,其电流增加1A。AD590温度与电流的关系如下表所示:摄氏温度AD590电流经10K电压0273.2 A2.732 V10283.2 A2.832 V20293.2 A2.932 V30303.2 A3.032 V40313.2 A3.132 V50323.2 A3.232 V60333.2 A3.332 V100373.2 A3.732 V 为了提高精度,扩大测量范围,在A/D转换前还要将信号加以放大并进行零点迁移,因而一个高稳定性的、高精度的放大电路是必须的。当温度变化时,AD590会产生电流变化,当AD590的电流通过一个10k的电阻时,这个电阻上的压降为10mV,即转换成10mVK,为了使此10k电阻精确,可用一个9k的电阻与一个2k的电位器串联,然后通过调节电位器来获得精确的10k。运算放大器A1被接成电压跟随器形式,以增加信号的输入阻抗,由运放A2减去2.732做零位调整(即把绝对)温度转成摄氏温度,最后由运放A3反相并放大倍输送给A/D转换器。 ADC0804模数转换器AD590测温电路输出的电压信号为模拟信号,要进行数码显示,还需将此信号转换成数字信号。为此我们通过A/D转换器ADC0804将输入的模拟值转换成数字值,经AT89C51单片机处理后输出到P1以控制温度显示电路。ADC0804是用CMOS集成工艺制成的逐次比较型摸数转换芯片,分辨率8位,转换时间100s,输入电压范围为05V,增加某些外部电路后,输入模拟电压可为5V。该芯片内有输出数据锁存器,当与计算机连接时,转换电路的输出可以直接连接在CPU数据总线上,无须附加逻辑接口电路。十进制数据转换调整子程序由于ADC0804转换后的数据是二进制数据,而七段码LED显示器所要显示的数据是十进制数据,因此需要进行二、十进制数据转换。ADC0804输出的最大转换值为FFH(255),由于运放放大倍,因此本数字温度计的最大测量温度为5.1V/51.02,即102。由255*=102,得知0.4,即先乘再除10。255*4=1020,其中高位10送高位显示缓冲区R4,低位20送低位显示缓冲区R5,将小数点设在D2位上,并将其分别显示为1(D4) 0(D3) 2(D2) . 0(D1) 。所以,十进制转换调整流程为A/D(二进制)十进制乘显示。2.4温度测试方案二:单线数字温度计DSl820介绍 DSl820数字温度计提供9位(二进制)温度读数指示器件的温度信息经过单线接口送入DSl820或从DSl820送出因此从主机CPU到DSl820仅需一条线(和地线)DSl820的电源可以由数据线本身提供而不需要外部电源因为每一个DSl820在出厂时已经给定了唯一的序号因此任意多个DSl820可以存放在同一条单线总线上这允许在许多不同的地方放置温度敏感器件DSl820的测量范围从-55到+125增量值为0.5可在l s(典型值)内把温度变换成数字每一个DSl820包括一个唯一的64位长的序号该序号值存放在DSl820内部的ROM(只读存贮器)中开始8位是产品类型编码(DSl820编码均为10H)接着的48位是每个器件唯一的序号最后8位是前面56位的CRC(循环冗余校验)码DSl820中还有用于贮存测得的温度值的两个8位存贮器RAM编号为0号和1号1号存贮器存放温度值的符号如果温度为负()则1号存贮器8位全为1否则全为00号存贮器用于存放温度值的补码LSB(最低位)的1表示0.5将存贮器中的二进制数求补再转换成十进制数并除以2就得到被测温度值(-550125)DSl820的引脚如图226l所示每只D51820都可以设置成两种供电方式即数据总线供电方式和外部供电方式采取数据总线供电方式可以节省一根导线但完成温度测量的时间较长采取外部供电方式则多用一根导线但测量速度较快第三章 原理设计(或基本原理)3.1基本原理因为有很多内容于上一个设计有很多重复,就不在这多做描述,只针对不能地方进行表述。MCS-52单片机产品兼容 、8K字节在系统可编程Flash存储器、1000次擦写周期、 全静态操作:0Hz33Hz、 三级加密程序存储器、 32个可编程I/O口线、三个16位定时器/计数器 八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符 。AT89S52具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地)。DS18B20的内部结构主要包括寄生电源、温度传感器、64位激光ROM、高速暂存器、用于存储用户设定的温度上下限值的TH和TL触发器、存储与控制逻辑、8位循环冗余校验码发生器等七部分。其中ROM由64位二进制数字组成,它由生产厂家光刻而成,共分为8个字节,字节0的内容是该产品的厂家代号28H,字节16的内容是48位器件序列号,字节7是ROM前56位校验码。每个DS18B20的64位序列号均不相同,它可以看作是该DS18B20的地址序列码。ROM的作用是使每一个DS18B20都各不相同,这样,就可以在一根总线上挂接多个DS18B20。图二18B20温度芯片 系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。 读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中用1s显示程序延时法等待转换的完成。 图三 报警电路图四 按键电路该数字温度计利用18B20集成温度传感器及其接口电路完成温度的测量并转换成模拟电压信号,经单片机处理的数字信号,然后送到单片机AT89S52中进行处理变换,最后将温度值显示在1602液晶上。3.2系统组成框图系统以AT89S52单片机为控制核心,加上18B20测温电路、液晶显示电路以及外围电源、时钟电路等组成。系统组成框图如下图所示。 89S52单片机DS1302时钟电路复位电路晶振电路控制按键44LCD1602时钟电路报警电路图五 系统组成框图3.3单元电路设计MCU微控制器电路、LCD液晶显示电路、复位电路、晶振电路于上一个电路一样,多加一个温度和报警电路,如下图所示DSl820工作过程及时序DSl820工作过程中的协议如下初始化RoM操作命令存储器操作命令处理数据1初始化单总线上的所有处理均从初始化开始 2ROM操作品令总线主机检测到DSl820的存在便可以发出ROM操作命令之一这些命令如指令 代码 Read ROM(读ROM) 33H Match ROM(匹配ROM) 55H Skip ROM(跳过ROM CCH Search ROM(搜索ROM) F0H Alarm search(告警搜索) ECH 3存储器操作命令指令 代码 Write Scratchpad(写暂存存储器) 4EH Read Scratchpad(读暂存存储器) BEH Copy Scratchpad(复制暂存存储器) 48H Convert Temperature(温度变换) 44H Recall EPROM(重新调出) B8H Read Power supply(读电源) B4H 4时序 主机使用时间隙(time slots)来读写DSl820的数据位和写命令字的位 (1)初始化时序见图2.25-2主机总线to时刻发送一复位脉冲(最短为480us的低电平信号)接着在tl时刻释放总线并进入接收状态DSl820在检测到总线的上升沿之后等待15-60us接着DS1820在t2时刻发出存在脉冲(低电平持续60-240 us)如图中虚线所示以下子程序在MCS51仿真机上通过其晶振为12M.初始化子程序RESETPUSH B ;保存B寄存器 PUSH A 保存A寄存器MOV A,#4 ;设置循环次数 CLR P1.0 ;发出复位脉冲MOV B,#250 ;计数250次DJNZ B,$ ;保持低电平500us SETB Pl.0 ;释放总线MOV B,#6 ;设置时间常数CLR C ;清存在信号标志WAITL: JB Pl.0,WH ;若总线释放跳出循环DJNZ B,WAITL ;总线低等待DJNZ ACC,WAITL;释放总线等待一段时间SJMP SHORT WH: MOV B,#111 WH1: ORL C,P1.0 DJNZ B,WH1 ;存在时间等待SHORT: POP A POP B RET (2)写时间隙当主机总线t o时刻从高拉至低电平时就产生写时间隙见图2253图2254从to时刻开始15us之内应将所需写的位送到总线上DSl820在t后15-60us间对总线采样若低电平写入的位是0见图2253若高电平写入的位是1见图2254连续写2位间的间隙应大于1us 写位子程序(待写位的内容在C中) WRBIT: PUSH B ;保存B MOV B,#28 ;设置时间常数 CLR P1.0 ;写开始 NOP ;1us NOP ;1us NOP ;1us NOP ;1us N0P ;1us MOVPl.0,C ;C内容到总线WDLT: DJNZ B,WDLT;等待56Us POP B SETB Pl.0 ;释放总线RET ;返回写字节子程序(待写内容在A中): WRBYTB: PUSH B :保存B MOV B#8H ;设置写位个数WLOP: RRC A ;把写的位放到C ACALL WRBIT ;调写 1位子程序DJNZ BWLOP ;8位全写完? POP B RET (3)读时间隙见图2255主机总线to时刻从高拉至低电平时总线只须保持低电平l 7ts之后在t1时刻将总线拉高产生读时间隙读时间隙在t1时刻后t 2时刻前有效t z距to为15捍s也就是说t z时刻前主机必须完成读位并在t o后的60尸s一120 fzs内释放总线读位子程序(读得的位到C中) RDBIT: PUSH B ;保存B PUSH A ;保存A MOV B,#23 ;设置时间常数CLR P1.0 ;读开始图2255的t0时刻NOP ;1us NOP ;1us NOP ;1us NOP ;1us SETB Pl.0 ;释放总线MOV A,P1 ;P1口读到A MOV C,EOH ;P1.0内容C NOP ;1us NOP ;1us NOP ;1us NOP ;1us RDDLT: DJNZ B,RDDLT ;等待46us SETB P1.0 POP A POP B RET 读字节子程序(读到内容放到A中) RDBYTE: PUSH B ;保存B RLOP MOV B,#8H ;设置读位数ACALL RDBIT ;调读1位子程序RRC A ;把读到位在C中并依次送给A DJNZ B,RLOP ;8位读完? POP B ;恢复B RET 每一片

温馨提示

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

评论

0/150

提交评论