基于单片机的数字电子钟温度计的设计毕业设计.doc_第1页
基于单片机的数字电子钟温度计的设计毕业设计.doc_第2页
基于单片机的数字电子钟温度计的设计毕业设计.doc_第3页
基于单片机的数字电子钟温度计的设计毕业设计.doc_第4页
基于单片机的数字电子钟温度计的设计毕业设计.doc_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

桂林航天工业学院毕业设计(论文) 基于单片机的数字电子钟温度计的设计毕业设计第一章 绪论1.1设计的意义时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是重要事情,一时的耽误可能酿成大祸。这类因忘记时间而引起的灾祸不胜枚举,导致的经济损失数不胜数,且有的事故直接威胁人们的人身安全。所以,一个定时、报时系统是人们日常生活极其必要的。20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。钟表的数字化给人们的生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。另一方面,传感器的被测信号来自于各个应用领域,每个领域都为了提高生产力、提高功效和时效,各自在开发研制适合应用的传感器,于是种类繁多的新型传感器及传感系统不断涌现。温度传感器是其中重要的一类传感器。其发展速度之快,以及其应用之广,并且还有很大潜力。1.2设计的目的为了提高对传感器的认识和了解,尤其是对温度传感器的深入研究及其用法与用途,基于实用、广泛和典型的原则而设计了本系统。本系统旨在为人们的日常生活提供时间和温度信息,为人们的学习、工作和生活提供便利。随着社会的发展,科技的进步,以及传感器在各个领域的应用,智能化已成为社会发展势不可挡的趋势。单片机作为微电控制的基础,对于国家未来的发展有着深远意义。单片机的应用很广泛,使用也比较灵活,尤其是在对成本要求较为苛刻的地方,可以说在中国的社会主义初级阶段时间里,单片机是能够占有一席之地的。单片机的学习和应用对于我们当代青年人就显得尤为重要。第 69 页1.3本设计的研究范围及技术要求硬件主要由单片机89S51、液晶显示器LCD1602、万年历芯片DS1302和温度传感器DS18B20等组成;使用Protel 99 SE绘制电路原理图和印刷电路板PBC;应用Keil uVision源代码编辑、调试;进行软件和硬件总调试,将HEX文件下载到单片机内。实现正常的走时和年月日时分秒显示,用一开关可控制不显示;测量温度并显示;用户可设置初始时间和日期;可设置多个闹钟和整点报时。第二章 单片机AT89S512.1 AT89S51的介绍AT89S51向下完全兼容51 全部字系列产品,比如8051、89C51 等等早期MCS-51 兼容产品。也就是说所有教科书、网络教程上的程序(不论教科书上采用的单片机是8051 还是89C51 还是MCS-51系列 等等),在89S51上一样可以照常运行,这就是所谓的向下兼容。,它功能强大、使用灵活是具有较高性能性价比的微控制器。1对它的新功能本文不予叙述,只用它作为MSC-51系列所共有的基本功能。相对于89C51,89S51新增加很多功能,性能有了较大提升,价格基本不变,甚至比89C51 更低! ISP 在线编程功能,可直接把生成的机器码(HEX文件)下载到片内ROM中,无需编程器,是一个强大易用的功能。 最高工作频率为33MHz,大家都知道89C51 的极限工作频率是24M,就是说S51 具有更高工作频率,从而具有了更快的计算速度。 双数据指示器,电源关闭标识。 全新的加密算法,这使得对于89S51 的解密变为不可能,程序的保密性大大加强,这样就可以有效的保护知识产权不被侵犯。2.2 AT89S51的特性89S51 在工艺上进行了改进,89S51 采用 0.35 新工艺,成本降低,而且将功能提升,增 加了竞争力。89SXX 可以像下兼容89CXX 等51 系列芯片。市场上见到的89C51 实际都是Atmel 前期生产的巨量库存而以。如果市场需要,Atmel当然也可以再恢复生产AT89C51。 AT89S51/LS51单片机是低功耗的、具有4KB在线编程Flash存储器的单片机。它与通用80C51系列单片机的指令系统和引脚兼容。片内的Flash可允许在线重新编程,也可使用非易失性存储器编程。他将通用CPU和在线可编程Flash集成在一个芯片上,形成了功能强大、使用灵活和具有较高性能性价比的微控制器。 片内程序存储器含有4KB的Flash存储器,允许在线编程,擦写周期可达1000次;片内数据存储器内含128字节的RAM;I/O口具有32根可编程I/O线;具有两个16位I/O线;中断系统具有6个中断源、5个终端矢量、2个中断优先级的中断结构;串行口是一个全双工的串行通信口;具有两个数据指针DPTR0和DPTR1;低功耗节电模式有节电模式和掉电模式;包含3级程序锁定位;AT89S51的电源电压为4.0-5.5V,AT89LS51的电源电压为2.7-4.0V;振荡器频率0-33MHz(AT89S51),0-16MHz(A-T89LS51);具有片内看门狗定时器;灵活的在线片内编程模式(字节和页编程模式);具有断电标志模式POF。22.3 AT89S51的引脚排列(1)P0口8位、开漏极、双向I/O口。P0口可作为通用I/O口,但必须外接上拉电阻;作为输出口,每个引脚可吸收8个TTL的灌电流。作为输入时,首先应将引脚置1。 P0口也可用作外部程序存储器和数据存储器是的低八位地址/数据总线的复用线。在该模式下,P0口含有内部上拉电阻。 在Flash编程时,P0口接受代码,输出代码字节数据(需要外接上拉电阻)。(2)P1口8位、双向I/O口、内部含有行拉电阻。P1可作为普通I/O口。输出缓冲器可驱动4个TTL负载;用作输入时,先交引脚置1,有片内上拉电阻将其抬到高电平。P1口的引脚可由外部负载拉倒低电平,通过上拉电阻提供拉电流。在Flash并行 编程和校验时,P1口可输入低字节地址。在串行编程和校验时,P1.0/MOSI,P1.6/OSI和P1.7/SCK分别是串行数据输入、输出和移位脉冲引脚。I/O具有内部拉电阻的8位双向I/O。 (2)P2口用作输出口时,可驱动四个TTL负载;用作输入口时,先将引脚置1,由内部上拉电阻将其提高到高电平。若负载为低电平,则通过内部上拉电阻向外输出电流。 CPU访问外部16位地址的存储器时,P2口提供高8位的地址。当CPU用8位地址寻址外部存储器时,P2口为P2特殊功能寄存器内容。在FLASH并行编程和校检时,P2口可输入高字节地址和某些控制信号。(3)P3口局有内部上拉电阻8位双向口。P3口做输出口时,输出缓冲器可吸收4个TTL的灌电流;用作输入口时,首先将引脚置1,有内部上拉电阻抬为高电平。若外部负载是低电平,则通过内部上拉电阻向外输出电流。 在与FLASH并行编程和校检时,P3口可输入某些控制信号。3第三章 单片机外围扩展芯片3.1 DS1302万年历时钟芯片低功耗时钟芯片DS1302可以对年、月、日、时、分、秒进行计时,且具有闰年补偿等多种功能。DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现数据的时间同时记录。采用DS1302 作为记录测控系统中的数据记录,其硬件设计简单,时间记录准确,既避免了连续记录的大工作量,又避免了定时记录的盲目性。若采用单片机计时,一方面需要采用计数器,另一方面需要设置中断、查询等,都要耗费单片机资源,而且某些测控系统可能不允许。而在系统中采用DS1302则能很好地解决这个问题。实时时钟,可对秒、分、时、日、周、月以及闰年补偿的年进行计数;用于高速数据暂存的318位RAM;最少引脚的串行I/O;2.55.5V电压工作范围,2.5V时耗电小于300nA;用于时钟或RAM数据读/写的单字节或多字节(脉冲方式)数据传送方式;简单的3线接口;可选的慢速充电(至Vcc1) 图3-1 DS1302管脚图的能力;当Vcc2大于Vcc10.2V时,给DS1302供电,当Vcc2小于Vcc1时,DS1302由Vcc1供电。 下面是 DS1302 的内部寄存器和RAM:图3-2左边为寄存器和RAM的地址,右边为具体内容。各个寄存器的最高位都是1,最低位都是“RD/W” ,比如要读时寄存器则命令为 10000101,反之写为10000100 ,要注意其含义。SEC:秒寄存器,注意具体右边内容:低四位为 SEC(个位),高的次三位为10SEC(十位),最高位CH为DS1302 的运行标志,当 CH=0时,DS1302内部时钟运行,反之 CH=1时停止。MIN:分寄存器。HR:时寄存器,最高位为 12/24 小时的格式选择位,该位为1时表示 12 小时格式 ; 当设置为12小时显示格式时,第5位的高电平表示下午(PM);而当设置为 24 小时格式时,第5位为具体的时间数据。DATE:日寄存器。MONTH:月寄存器。DAY:周寄存器,注意一周只有7天,所以该寄存器只有低三位有效。YEAR :年寄存器。CONTROL:写保护寄存器,当该寄存器最高位WP为 1时,DS1302只读不写,所以要在往DS1302写数据之前确保WP为0。 图3-2 DS1302的内部寄存器TRICKLE CHARGE REGISTER:涓细电流充电设置寄存器,我们知道,当DS1302掉电时,可以马上调用外部电源保护时间数据。该寄存器就是配置备用电源的充电选项的。其中高四位(4个TCS)只有在1010的情况下才能使用充电选项;低四位的情况,与 DS1302 内部电路有关,本文电路该寄存器内容为10100000。CLOCK BURST:批量读写操作设置寄存器,设置该寄存器后,可以对DS1302的各个寄存器进行连续写入。DS1302有31个字节的存储空间,但这31个存储空间,最后一个是 RAM BURST 的寄存器,设置该寄存器可以达到对 RAM 连续读写的作用。所以 DS1302 的可用存储空间实际上为30个字节6。3.2 LCD1602液晶显示芯片(1)LCD1602的结构与基本参数LCD1602字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式 LCD。分为带背光和不带背光两种,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图3-3。图3-3 LCD1602的结构参数表3-1 LCD1602引脚说明编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15D8背光源正极8D1数据16D9背光源负极表3-1引脚接口说明表 第 1 脚:VSS 为地电源; 第 2 脚:VDD 接 5V 正电源; 第 3 脚:VL 为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个 10K 的电位器调整对比度; 第 4 脚:RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器; 第 5 脚:R/W 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS和 R/W 共同为低电平时可以写入指令或者显示地址,当 RS 为低电平 R/W 为高电平时可以读忙信号,当 RS 为高电平 R/W 为低电平时可以写入数据; 第 6 脚:E 端为使能端,读操作时,高电平有效,写操作时下降沿有效; 第 714 脚:D0D7 为 8 位双向数据线; 第 15 脚:背光源正极; 第 16 脚:背光源负极。(2)LCD1602内部寄存器指令LCD1602液晶模块内部的控制器共有11 条控制指令,如下表3-2所示表3-2 LCD1602寄存器指令序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存储器地址0001字符发生存储器地址8置数据存储器地址001显示数据存储器地址9读忙标志或地址01BF计数器地址10写数据到CGRAM或DDRAM10要写的数据内容11从CGRAM或DDRAM读数11要读的数据内容1602液晶模块的读写操作,屏幕和光标的操作都是通过指令编程来实现的。(说明 1 为高电平,0 为低电平) 指令 1:清显示,指令码 01H,光标复位到地址 00H 位置 ;指令 2:光标复位,光标返回到地址 00H ;指令 3:光标和显示位置设置 I/D,光标移动方向,高电平右移,低电平左移,S:屏幕上所有文字是否左移或右移,高电平表示有效,低电平表示无效; 指令 4:显示开关控制。D:控制整体的显示开与关,高电平表示开显示,低电平表示关显示。C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁; 指令 5:光标或显示移位 S/C :高电平时显示移动的文字,低电平时移动光标 ;S/LR/L说 明00光标向左移动,AC自动减101光标向右移动,AC自动加110光标和显示一起向左移动11光标和显示一起向右移动指令 6:功能设置命令 DL:高电平时为 8位总线,低电平时为 4位总线, N:低电平时为单行显示,高电平时为双行显示,F:低电平时显示 5X7 的点阵字符,高电平时显示 5X10 的显示字符;指令 7:字符发生器 RAM地址设置; 指令 8:DDRAM 地址设置; 指令 9:读忙信号和光标地址 BF:忙标志位,高电平表示忙,此时模块不能接收命令或数据,如果为低电平表示不忙7。(3)LCD1602的RAM地址映射及标准字库表液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图3-4是1602的内部显示地址。图3-4 LCD1602内部显示地址例如第二行第一个字符的地址是 40H,那么是否直接写入 40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位 D7 恒定为高电平1所以实际写入的数据应该是 01000000B(40H)+10000000B(80H)=11000000B(C0H)。 在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。1602 液晶模块内部的字符发生存储器(CGROM)已经存储了 160 个不同的点阵字符图形,如表3-3所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A” 的代码是 01000001B(41H),显示时模块把地址 41H 中的点阵字符图形显示出来,我们就能看到字母“A”。图3-5 CGROM和CGRAM中字符代码与字符图形对应关系3.3 DS18B20温度传感器DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。图3-6 DS18B20内部结构(1)DS18B20技术性能独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。测温范围55+125,固有测温分辨率0.5。支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。工作电源: 35V,在使用中不需要任何外围元件。测量结果以912位数字量方式串行传送,温度转换为12位数字格式最大值为750毫秒。(2) DS18B20有4个主要的数据部件 1)光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。但本设计只用到一个DS18B20,所以不必读取ROM中的64位序列号。2)DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位。 图3-7 DS18B20温度值格式表这是12位转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度,如表3-3。表3-3 DS18B20温度数据表TEMPERATUREDIGITAL OUTPUT(Binary)DIGITAL OUTPUT(Hex)+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00010191H+10.1250000 0000 1010 001000A2H+0.50000 0000 0000 10000008H00000 0000 0000 00000000H-0.51111 1111 1111 1000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90H3)DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。4)配置寄存器,该字节各位的意义如下: 表3-4 配置寄存器结构TMR1R011111低五位一直都是1 ,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如表3-5所示:(DS18B20出厂时被设置为12位)分辨率设置表:表3-5温度值分辨率设置表R1R0分辨率温度最大转换时间009位93.75ms0110位187.5ms1011位375ms1112位750ms(3)高速暂存存储器 高速暂存存储器由9个字节组成,其分配如表3-7所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如表3-4所示。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。第九个字节是冗余检验字节。 表3-6 DS18B20暂存寄存器分布寄存器内容字节地址温度值低位0温度值高位1高温限值TH2低温限值TL3配置寄存器4保留5保留6保留7CRC检验8根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功8。表3-7 ROM指令表指 令约定代码功 能读ROM33H读DS18B20 ROM中的编码(即64位地址)符合ROM55H发出此命令之后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS18B20使之作出响应,为下一步对该DS18B20的读写作准备。搜索ROM0F0H用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址。为操作各器件作好准备。跳过ROM0CCH忽略64位ROM地址,直接向DS18B20发温度变换命令。适用于单片工作。告警搜索命令0ECH执行后只有温度超过设定值上限或下限的片子才做出响应。表3-8 RAM指令表指 令约定代码功 能温度变换44H启动DS18B20进行温度转换,转换时最长为500ms(典型为200ms)。结果存入内部9字节RAM中。读暂存器0BEH内部RAM中9字节的内容写暂存器4EH发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。复制暂存器48H将RAM中第3、4字节的内容复制到EEPROM中。重调EEPROM0B8H将EEPROM中内容恢复到RAM中的第3、4字节。读供电方式0B4H读DS18B20的供电模式。寄生供电时DS18B20发送“0”,外接电源供电DS18B20发送“1”。第四章 总体软硬件设计4.1硬件及功能要求(1) 硬件要求使用AT89S51单片机,DS18B02温度传感器,DS1302万年历芯片,LCD1602液晶显示器等;(2)功能:实现正常的走时和年月日时分秒显示,用一开关可控制不显示;测量温度并显示;用户可设置初始时间和日期;可设置多个闹钟和整点报时。4.2设计方案AT89S51作为硬件核心,采用模块化的设计思想,硬件模块分为温度的感应模块、时钟模块、控制模块、显示模块、闹铃模块;软件同样采用模块化设计,分为中断模块、温度转化模块、时间调整模块,LCD显示模块。(1)液晶显示模块:LCD1602显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有点就显示,这样不仅可以显示数字也可以显示出图形。它分为带背光和不带背光两种,两者管脚分别为16根和14根,应用并无差别。它与89S51可以直接连接,可用P0口做LCD1602的数据口,P2口的低三位做读写控制口和使能信号。(2)万年历芯片时钟模块:DS1302的封装为DIP8,与CPU的连接需要三条线,即SSCLK(7)、I/O(6)、RST(5)。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。上电运行时,在Vcc2.0V之前,RST必须保持低电平。只有在SSCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK为时钟输入端。(3)温度感应模块:DS18B20的外形大小或封装和三极管一样是TO-92。管脚排列如下:GND为电源地;I/O为数字信号输入/输出端;VDD为外接供电电源输入端。测量温度范围为-55 +125,DS18B20可以程序设定9-12位的分辨率。它只需要一条口线通信可实现与89S51的双向通讯,具有测温系统简单、测温精度高、连接方便、占用口线少等优点。(4)闹铃模块:可采用蜂鸣器,只需要占用CPU一个口线,另一端接地。采用蜂鸣器来当做闹铃,因为其电路结构简单,一端接CPU的I/O(采用P1.7)口,另一端接地,只要I/O口发出脉冲信号,蜂鸣器就会鸣叫。电路简单,容易控制。(5)控制模块:为了简化电路,且CPU有多余的口线,决定采用独立键的控制方式,这样也简化了控制程序。因为I/O口线较富余,且为了简化软件程序的编写,采用独立键的模式来控制CPU。用CPU的P3口的高4位做键盘I/O接口。别外,再采用两个独立键来设置一个外部中断,用来完成任务要求的关闭LCD显示器和开启LCD显示器要求,其各键功能如表4-1。表4-1 各键功能表代号位地址功能S5P3.7时间设置切换S4P3.6闹铃设置切换/关闭响铃S3P3.5设置值加一S2P3.4设置值减一S6P3.3开启/关闭显示( 注:S2、S3只在S5或S6键按下后有效 )4.3总电路图及说明 总电路图如图4-1所示,本论文将围绕AT89S51对各器件的连接一一说明。P0口接LCD1602的8位数据线,另接8个10k的电阻做P0口的上拉电阻;P2.1、P2.2、P2.3分别接RS、R/W、E。温度传感器DS18B20的QD口接CPU的P2.7。CPU的P1.0、P1.1、P1.2分别接DS1302的SSCLK、I/O、RST。CPU的P1.7口接闹铃;复位电路采用上电复位和按键复位;晶振采用12Mhz,即机器周期为1us。图4-1 总电路图4.4主程序设计软件的设计是设计控制系统的应用程序。其任务是在整体设计和硬件设计的基础上,确定程序结构,分配内部RAM资源,划分功能模块,然后进行程序和各模块程序的设计,最后连接起来成为一个完整应用程序,与硬件相结合完成相应功能。本论文将采用汇编语言来设计程序。主程序采用模块化设计,流程图如图4-2所示。开始初始化开机时间、闹铃时间、LCD1602、DS1302、外部中断0按键子程序初始化DS18B20读DS18B20数据温度转换温度显示调闹铃子程序结束图4-2 主程序流程图 4.5各子程序的设计(1)DS1302子程序RST:复位时序,即在RST引脚产生一个正脉冲,在整个读写器件,RST要保持高电平,一次字节读写完毕之后,要注意把 RST 返回低电平准备下次读写周期;要记得在操作 DS1302 之前关闭写保护;注意用延时来降低单片机的速度以配合器件时序;DS1302 读出来的数据是 BCD 码形式,要转换成我们习惯的10 进制。图4-3 DS1302读写程序流程图(2)LCD1602子程序液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符。开始初始化设置CGRAM地址字模数据写入CGRAM循环设置DDRAM地址写显示数据入DDRAM结束图4-4 显示程序流程图(3)DS18B20子程序由于DS18B20采用的是1Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。 QD置1QD置0延时500微秒QD置1延时,等待DS18B20响应QD=0初始化不成功初始化成功返回图4-5 DS18B20初始化子程序(4)判键子程序 判键子程序流程图非常复杂,本文只论述调节时钟分的流程图。判键子程序按一次模式键后就一直判断下一次按键是P3.5(加1)还是P3.4(减1) ,判断进入下一模式还是按下模式键。开显示开光标开光标闪烁,光标指向分的个位 开始模式键按下吗NY返回判是加1、减1、模式?数据加1数据减1进入时数据调节模式加1减1显示显示图4-6 分数据调节判键子程序4.6程序说明(1) 正常时间和闹钟时间都可以用键盘设置;(2) 该程序是使用LCD1602显示年月日,格式为年-月-日(换行)温度C 时.分.秒 ;(3) 由六个按键控制,S1复位,S5调时间,调年月日时分,除分可以加减调节之外其余的调节都是只能加不能减(如果增加减的功能会使程序很复杂,本文在次略作简化), 另外正常显示时间的秒是无法调整的,S4 是用来调节闹钟的时分秒的,和S1按键不同的是时分秒都能加减调节,当闹钟设置的时间和正常显示时间的时分秒相同时,闹铃响铃十秒钟,期间可以按S4键终止响铃,S3和S2 分别是用来加减时间,S6用来关闭LCD的显示及开启显示。(4) 程序缺陷:只能设置一个闹铃时间;按键消抖程序作的比较粗糙,可能无法达到预期目的。第五章 程序调试本文采用Protues和Keil uVision联合调试程序。5.1 DS1302的数据操作DS1302在任何数据传送时必须先初始化,把RST脚置为高电平,然后把8位地址和命令字装入移位寄存器,数据在SSCLK的上升沿被输入。无论是读周期还是写周期,开始的8位指定40个寄存器中哪个被访问到。在开始8个时间周期,把命令字节装入移位寄存器之后,另外的时钟周期在读操作时输入数据,在写操作时写入数据。操作 DS1302 的大致过程,就是将各种数据写入 DS1302 的寄存器,以设置它当前的时间以及格式。然后使 DS1302 开始运作,DS1302时钟会按照设置情况运转,再用单片机将其寄存器内的数据读出。再用液晶显示,就是我们常说的简易电子钟。所以总的来说 DS1302 的操作分2步(显示部分属于液晶显示的内容 ,不属于DS1302本身的内容),但是在讲述操作时序之前,我们要先看看寄存器:表5-1 DS1302寄存器样式765432101RAM/CKA4A3A2A1A0RD/W表5-1是DS1302的寄存器样式,我们看到:第7位永远都是1;第6位,1表示RAM,寻址内部存储器地址,0 表示 CK,寻址内部寄存器;第5到第1位,为RAM 或者寄存器的地址;最低位,高电平表示RD:即下一步操作将要“读” ;低电平表示W:即下一步操作将要“写” 。(1)DS1302的读写时序图5-1 DS1302读写时序图5-1就是DS1302的三个时序:复位时序,单字节写时序,单字节读时序;RST:复位时序,即在RST引脚产生一个正脉冲,在整个读写器件,RST要保持高电平,一次字节读写完毕之后,要注意把 RST 返回低电平准备下次读写周期;SINGLE BYTE READ :单字节读,注意读之前还是要先对寄存器写命令,从最低位开始写;写数据是在SSCLK的上升沿实现,而读数据在SSCLK的下降沿实现,所以,在单字节读时序中,写命令的第八个上升沿结束后紧接着的第八个下降沿就将要读寄存器的第一位数据读到数据线上了。这个就是DS1302操作中最特别的地方。当然读出来的数据也是最低位开始。SINGLE BUTE WRITE :单字节写,两个字节的数据配合16个上升沿将数据写入即可。(2)程序注意事项要记得在操作 DS1302 之前关闭写保护;注意用延时来降低单片机的速度以配合器件时序;DS1302 读出来的数据是 BCD 码形式,要转换成我们习惯的10 进制 。5.2 LCD1602的读写时序图5-2 LCD1602读操作时序图5-3 LCD1602写操作时序注意事项:在LCD显示屏一行显示方式下DDRAM的地址范围为:00H4FH,两行显示方式下DDRAM的地址范围为:第一行00H27H,第二行40H67H;由于地址计数器AC被CGROM、CGRAM和DDRAM的公用指针,因此当前AC内容所指区域由前一条指令操作区域决定,同时只有BF=0时,送到DB7DB0的数据AC6AC0才有效。1602模块设有内部复位电路,上电后,当电源电压超过+4.5v时,自动对模块进行初始化此期间。忙标志BF=1,直到初始化结束后,忙标志BF才为0。;* ;LCD1602的写数据 读指令 判忙程序 ;* WR_DATA: MOV P0,A SETBRS ;RS=1选择数据寄存器 CLR RW ;RW=0 ,准备 CLR E ;E=0 ,执行显示命令 LCALL BUSY ;判断液晶模块是否忙? SETB E ;E=1 ,显示完成,程序停车 RET WR_CODE: ;写入控制命令的子程序 CLR RS CLR RW CLR E LCALL BUSY SETB E RET BUSY: ;判断液晶显示器是否忙的子程序MOV P0,#0FFH CLR RS SETB RW CLR E NOP ;NOP一定要有 SETB E JB P0.7,BUSY ;如果P0.7为高电平表示忙就循环等待 RET5.3 DS18B20的时序 由于DS18B20采用的是1Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。 由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。 (1)DS18B20的复位时序 图5-4 DS18B20复位时序图(2)DS18B20的读时序 对于DS18B20的读时序分为读0时序和读1时序两个过程。对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。 图5-5 DS18B20读时序图(3)DS18B20的写时序 对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。图5-6 DS18B20的写时序5.4调试的结果程序运行正常,各功能达到要求。图5-7 程序运行图5-8 闹铃调节图5-9时间调节图5-10 温度感应致谢 经过几个月的努力,终于将本论文编写完毕,这也意味着我的大学生活即将结束,我就将热情投入到以后的工作中,希望我的未来旅途也能像本次毕业设计一样顺利。在此,特别感谢在本次毕业设计中帮助我的老师、同学及网友。 首先,感谢兰明老师在本次设计之初为我收集的大量资料,使我受益良多,在设计过程中给予我莫大帮助,为本次设计能顺利完成打下了夯实的基础,感谢您对我的大力支持与帮助。其次,感谢网友为我提供解决DS18B20温度感应器读写子程序编程问题的方法。没有你们的帮助,本次毕业设计不会如此顺利完成。 在即将离别之际,我衷心感谢我的母校,感谢给予我知识的老师们。这里见证了我成长的每一步,这里有我大学时代的许多美好回忆。祝愿母校的未来更辉煌。参考文献1.张毅坤,陈善久,裘雪红单片微型计算机原理及应用M.西安:电子科技大学出版社,1998.2.王世一.数字信号处理M.北京:北京理工大学出版社1997.3.陈汝全,林水生,刘运国.微机接口技术M.西安:电子科技大学出版社,1995.4.洪永强.2版.微机原理与接口技术M.北京:科学出版社,2009.5.张谨,张伟,张立宝.电路设计与制版Protel 99SE入门与提高M.北京:人民邮电出版社,2007.6.百度文库.DS1302时钟芯片资料DB/OL./view/ ee7f39eef8c75fbfc77db261.html?from=related&hasrec=1,2010-08-107.百度文库.LCD1602中文资料DB/OL. /view/0b756bd7c1c708a1284a4416.html,2010-05-158.百度文库.单线数字温度传感器DS18B20原理及其应用DB/OL./view/ae9d20ee6294dd88d0d26b51.html?from=related&hasrec=1,2012-03-139.何立民主编.MCS-51系列单片机应用系统设计M.北京:北京航空航天大学出版社,1995.10.候伯亨,李伯成.十六位微型计算机原理及接口技术M.西安:西安电子科技大学出版社,1996.11.陈伟人.MCS-51系列单片机实用子程序集锦M.北京:清华大学出版社,1993.12.吴产乐.微机系统与接口技术学习指导题解实验.武汉M:华中科技大学出版社,2004.13.刘永华,王成端.微机原理与汇编语言设计M.北京:中国铁道出版社,2006.14.武自芳.微型计算机原理常见题型解析及模拟题M.西安:西北工业大学出版社,1999.15.周学毛.汇编语言程序设计M.北京:高等教育出版社,2002.16.邹逢兴.计算机硬件技术及应用基础M.长沙:国防科技大学出版社,2001.17.叶继华.汇编语言与接口技术M.北京:机械工业出版社,2005.18.刘永华,张秀芝.微机原理与汇编语言程序设计习题解答与上机指导M.北京:中国铁道出版社,2006.附录AThe Design and facture of a Digital temperature controller Based on 78F9234 Single ChipMinli Tang , Hengyu Wuy(Corresponding author),Baoru HanDepartment of Electronic Engineering,Hainan Software Profession Institute Qionghai, Hainan ,571400 ,C , ,Abstract The system is a nucleus model on the main control of single chip computer 78F9234, using DS18B20 temperature sensor to collect temperature data and digital tube monitor to show temperature data, with up- and- down limitation of temperature control key to change temperature rise and drop, heating indicator equipment, overheating protection and buzzer warning function, single-chip microcomputers burning port and anti-death circuit. The system is convenient to use, cost is comparatively low and control system in software can be further improved to expand its function without adding its hardware cost,which would enhance the cost performance of temperature controllers. Key words: Single-chip microcomputer 78F9234, Auto-Control Technology, Digital Temperature ControllerI. IntroductionTemperature is one of the most basic detecting parameters in industrial automation, domestic appliance, environmental protection, safe production, auto industry and so on. Therefore temperature detecting is very important. With science technology developing, enterprises raise a higher demand for it, hoping to use new detecting methods to produce a new generation temperature detecting system, which is adaptable, with higher accuracy, more stabilization and intelligent new generation temperature detecting system. Thesis integrates single-chip digital control technology into the design of digital temperature control and designs a new type of digitalizing temperature control system. II. Overall design of the programMicrocontroller digital temperature control device for the control system is based on the core 78F9234 MCU. The entire system hardware components, including key input circuit, MCU control, heating instructions circuit, overheating protection circuit, temperature sensing circuit, a digital display circuit, control and anti-death circuit, warning circuit, such as burning port parts. Microcontroller Design diagram Digital temperature control device was shown in Figure 1. The system can be through keyboard input, you can pre-set the need to control the temperature. Then, the system automatically completed pre-task.At the same time, the system display module can real-time display the current temperature of the system.The 78F9234 MCU is the core component of the entire temperature control system. Temperature sens

温馨提示

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

评论

0/150

提交评论