




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子系统设计选题:小型温控采集系统 学 院:城市轨道交通学院专 业:2010级通信工程目 录一、设计任务和要求41.1 设计任务41.2 技术要求4二、设计方案42.1 整体方案调研42.1.1 方案一42.1.2 方案二42.1.3 方案三52.2 整体方案论证52.2.1 方案一52.2.2 方案二52.2.3 方案三52.3 总体设计框图5三、设计原理63.1 AT89S51单片机的原理63.2 双机通信原理103.2.1 串口工作方式2波特率计算113.3 1602液晶电路及原理123.3.1液晶显示原理123.3.2液晶显示器的分类133.3.3液晶显示器显示图形的原理133.3.4 1602字符型LCD简介133.3.5 1602LCD的基本参数及引脚功能143.3.6 1602LCD的指令说明及时序163.3.7 1602LCD的RAM地址映射及标准字库表173.3.8 1602LCD内部显示地址183.3.9 1602LCD的一般初始化(复位)过程183.4 DS18B20温度采集器的原理193.4.1 DS18B20封装193.4.2内部结构203.4.3 DS18B20温度传感器与单片机的接口电路233.4.4单总线协议233.5 RS232串行线253.6 MAX23225四、系统硬件组成274.1系统整体硬件电路图27五、系统软件设计275.1 主程序流程图275.2 读出温度子程序285.3 温度转换命令子程序285.4 计算温度子程序295.5 显示数据刷新子程序295.6 程序代码295.6.1采集发送程序295.6.2接收显示程序335.7 仿真图375.8实物图38六、总结与体会40参考文献40一、设计任务和要求1.1 设计任务设计并制作一个温度采集系统。1.2 技术要求1) 测温范围0100度;2) 测温精度;3) 设计2路温度采集系统4) 数码管显示温度,显示方式为点测与巡测;5) 测温点与控制显示部分距离为50m。注:实际设计中,我们使用LM1602液晶显示屏显示温度,因为在单片机系统中应用晶液显示器作为输出器件有以下几个优点:1、显示质量高由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。2、数字式接口液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。3、体积小、重量轻液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。4、功耗低相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。故综合考虑,我们最终选用LM1602液晶显示。二、设计方案2.1 整体方案调研2.1.1 方案一采用热敏电阻,可满足40摄氏度至90摄氏度测量范围,但热敏电阻精度、重复性、可靠性较差,对于检测1摄氏度的信号是不适用的。而且使用热敏电阻,需采用A/D转换电路,要用到十分复杂的算法,一定程度上增加了软件实现的难度。2.1.2 方案二采用AD590,它的测温范围在-55+150之间,而且精度高。M档在测温范围内非线形误差为0.3。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会损坏。使用可靠。它只需直流电源就能工作,而且,无需进行线性校正,所以使用也非常方便,借口也很简单。作为电流输出型传感器的一个特点是,和电压输出型相比,它有很强的抗外界干扰能力。AD590的测量信号可远传百余米。2.1.3 方案三采用温度芯片DS18B20测量温度。该芯片的物理化学性很稳定,它能用做工业测温元件,且此元件线形较好。在0100摄氏度时,最大线形偏差小于1摄氏度。该芯片直接向单片机传输数字信号,便于单片机处理及控制。最大特点之一就是直接采用温度芯片对温度进行测量,使数据传输和处理简单化。2.2 整体方案论证2.2.1 方案一此方案采用AT89C51八位单片机实现。单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。但是,AT89C51单片机需要用仿真器来实现软硬件的合成在线调试,较为繁琐,很不简便。而且AT89C51的地位已经渐渐的被AT89S51所取代。逐渐成为历史。事实也证明了AT89S51在工业控制上有着广泛的应用。2.2.2 方案二采用温度传感器AD590。AD590具有体积小、质量轻、线形度好、性能稳定等优点。其测量范围在-50+150,满刻度范围误差为0.3,当电源电压在510V之间,稳定度好,其各方面特性都满足此系统的设计要求。此外AD590是温度-电流传感器,对于提高系统抗干扰能力有很大的帮助。但增加程序的长度,占用大量CPU的时间。2.2.3 方案三采用温度传感器DS18B20。它是一种数字式的温度传感器,直接将被测温度转换成串行数字信号,具有微型化,低功耗,高性能,抗干扰能力强等优点。从微处理器到DS18B20仅需连接一条信号线和地线。它可以实现912位的温度读数,测量范围为-55+125,在-10+85范围内误差为0.5,将12位的温度值转换为数字量所需时间不超过750ms。读写和执行温度变换所需的电源可以由数据线本身提供,而不需要外部电源。以上三种方案,第三种方案电路比较简单,软件设计也相对简单,所以采用第三种方案。2.3 总体设计框图温度计电路设计总体设计方框图如图1所示,控制器采用单片机STC89S52,温度传感器采用DS18B20,用4位LED数码管以串口传送数据实现温度显示。图 1 设计总框图三、设计原理3.1 AT89S51单片机的原理AT89S51单片机是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含4K bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器,既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价at89s51单片机可提供许多高性价比的应用场合,可灵活应用于各种控制领域。AT89S51提供以标准功能:4K字节Flash闪速存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89S51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作直到下一个硬件复位。主要性能参数:与MCS-51产品指令系统完全兼容4K字节在系统编程(ISP)Flash闪速存储器1000次擦写周期4.0-5.5V的工作电压范围全静态工作模式:0HZ-33MHZ三级程序加密锁128*8字节内部RAM 32个可编程I/O口线2个16位定时/计数器6个中断源全双工串行UART通道低功耗空闲和掉电模式中断可从空闲模式唤醒系统看门狗(WDT)及双数据指针掉电标识和快速编程特性灵活的在系统编程(ISP-字节或页写模式)图 2 单片机引脚引脚功能说明:VCC:电源电压GND:地P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端使用。在访问外部存储器或程序存储器时,这组I/O口线分时转换地址(低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位地址的外部数据存储器时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器时,P2口线上的内容(也即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。Flash编程或校验时,P2亦接收高位地址和其他控制信号。P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可以作为输入端口。作为输入端时,被外部拉低的P3口将用上拉电阻输出电流。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下表所示:表 1 P3口的第二功能列表P3口还接收一些用于Flash闪速存储器编程和程序效验的控制信号。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。WDT溢出将使该引脚输出高电平,设置SFR AUXR的DISRTO位(地址8EH)可打开或关闭该功能。DISRTO位缺省为RESET输出高电平打开状态。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可以对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可以通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置,可以禁止ALE操作。该位置后,只有一条MOVX和MOVC指令ALE才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应该设置ALE无效。PSEN:程序储存允许(PSEN)输出是外部程序存储区的读选通信号,当AT89S51由外部程序存储器取指令(或数据)时,每当机器周期两次PSEN有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的PSEN信号。EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程电压Vpp。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。中断寄存器:各中断允许控制位于IE寄存器,5个中断源优先级控制于IP寄存器。双时钟指针寄存器:为了更方便地访问内部和外部数据存储器,提供了两个16位数据指针寄存器:DP0位于SFR(特殊功能寄存器)区块中的地址82H、83H和DP1位于地址84H、85H,当SFR中的位DPS=0选择DP0,而DPS=1则选择DP1。用户应该在访问相应的数据指针寄存器前初始化DPS位。电源空闲标志:电源空闲标志(POF)在特殊功能寄存器SFR中PCON的第4位,电源打开时POF置“1”,它可以由软件设置睡眠状态并不为复位所影响。存储器结构:MCS-51单片机内核采用程序存储器和数据存储器空间分开的结构,均具有64KB外部程序和数据的寻址空间。程序存储器:如果EA引脚接地(GND),全部程序均执行外部存储器。在AT89S51,假如EA接至VCC(电源正),程序首先执行地址从0000H-0FFFH内部程序存储器,再执行地址为1000H-FFFFH的外部程序存储器。数据存储器:AT89S51的具有128字节的内部RAM,这128字节可利用直接或间接寻址方式访问,堆栈操作可以利用间接寻址方式进行,128直接均可以设置为堆栈区空间。看门狗定时器:看门狗定时器是为了解决CPU程序运行时可能进入混乱或死循环而设置的,它由一个14比特的计数器和看门狗复位SFR构成。外部复位时,看门狗定时器默认为关闭状态,要打开看门狗定时器,用户必须按顺序将01EH和0E1H写到WDTRST寄存器,当启动了看门狗定时器,它会随晶体振荡器在每个机器周期计数,除硬件复位或看门狗定时器溢出复位外没有其它方法关闭看门狗定时器,当看门狗定时器溢出,将会使RST引脚输出高电平的复位脉冲。UART:通用异步通信口。定时器0和定时器1:在单片机中有两个特殊功能寄存器与定时/计数有关,这就是TMOD 和TCON。TMOD 和TCON 是名称,在写程序时就可以直接用这个名称来指定它们,当然也可以直接用它们的地址89H 和88H 来指定它们。TMOD 被分成两部份,T1 和T0 每部份4 位.分别用于控制T1 和T0, TCON也被分成两部份,高4 位用于定时/计数器,低4 位则用于中断。中断:中断由特殊功能寄存器、中断入口、顺序查询逻辑电路等组成,包括5个中断请求源,4个用于中断控制的寄存器IE、IP、ECON 和SCON 来控制中断类弄、中断的开、关和各种中断源的优先顺序确定。3.2 双机通信原理图 3 AT89C51计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通信。51单片机用4个接口与外界进行数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,成本高,传输的距离较近。串行通信的特点是只用两条信号线(一条信号线,再加一条地线作为信号回路)即可完成通信,成本低,传输的距离较远。51单片机的串行接口是一个全双工的接口,它可以作为UART(通用异步接受和发送器)用,也可以作为同步移位寄存器用。51单片机串行接口的结构如下:(1)数据缓冲器(SBUF)接受或发送的数据都要先送到SBUF缓存。有两个,一个缓存,另一个接受,用同一直接地址99H,发送时用指令将数据送到SBUF即可启动发送;接收时用指令将SBUF中接收到的数据取出。(2)串行控制寄存器(PCON)SCON用于串行通信方式的选择,收发控制及状态指示,各位含义如下:SM0SM1SM2RENTB8RB8TIRISM0,SM1:串行接口工作方式选择位,这两位组合成00,01,10,11对应于工作方式0、1、2、3。串行接口工作方式特点见下表:表 2 串行接口工作方式特点SM0SM1工作方式功能波特率 0008位同步移位寄存器(用于I/O扩展)fORC/1201110位异步串行通信(UART)可变(T1溢出率*2SMOD/32)10211位异步串行通信(UART)fORC/64或fORC/3211311位异步串行通信(UART)可变(T1溢出率*2SMOD/32)SM2:多机通信控制位。REN:接收允许控制位。软件置1允许接收;软件置0禁止接收。TB8:方式2或3时,TB8为要发送的第9位数据,根据需要由软件置1或清0。RB9:在方式2或3时,RB8位接收到的第9位数据,实际为主机发送的第9位数据TB8,使从机根据这一位来判断主机发送的时呼叫地址还是要传送的数据。TI:发送中断标志。发送完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续发送。RI:接收中断标志。接收完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续接收。(3)输入移位寄存器接收的数据先串行进入输入移位寄存器,8位数据全移入后,再并行送入接收SBUF中。(4)波特率发生器波特率发生器用来控制串行通信的数据传输速率的,51系列单片机用定时器T1作为波特率发生器,T1设置在定时方式。波特率时用来表示串行通信数据传输快慢程度的物理量,定义为每秒钟传送的数据位数。(5)电源控制寄存器PCON其最高位为SMOD。3.2.1 串口工作方式2波特率计算MCS-51串行口工作方式2是9位异步通信接口。每帧数据均为11位,1位起始位0,8位数据位(先低位),1位可程控的第9位数据和1位停止位串行口工作为方式2时,被定义为9位异步通信接口。其时序如图4所示。图 4 工作方式2时序图当采用方式2时,波特率仅仅与晶振频率有关。在方式0中,波特率为时钟频率的1/12,即fosc/12,固定不变。在方式2中,波特率取决于PCON中的SMOD值,当SMOD=0时,波特率为fosc/64;当SMOD=1时,波特率为fosc/32。 图 5双机通信硬件电路3.3 1602液晶电路及原理3.3.1液晶显示原理液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。3.3.2液晶显示器的分类液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。除了黑白显示外,液晶显示器还有多灰度有彩色显示等。如果根据驱动方式来分,可以分为静态驱动(Static)、单纯矩阵驱动(Simple Matrix)和主动矩阵驱动(Active Matrix)三种。3.3.3液晶显示器显示图形的原理3.3.3.1线段的显示点阵图形式液晶由MN个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共168=128个点组成,屏上6416个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。3.3.3.2字符的显示用LCD显示一个字符时比较复杂,因为一个字符由68或88点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。3.3.4 1602字符型LCD简介字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。下面以长沙太阳人电子有限公司的1602字符型液晶显示器为例,介绍其用法。一般1602字符型液晶显示器实物如图6:图 6 字符型液晶显示器实物图主要技术参数表 3 LM1602技术参数3.3.5 1602LCD的基本参数及引脚功能1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图7所示:图 7 1602LCD尺寸图1602LCD主要技术参数:显示容量:162个字符芯片工作电压:4.55.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.954.35(WH)mm引脚功能说明1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表4所示:表 4 1602LCD引脚接口说明表编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。3.3.6 1602LCD的指令说明及时序1602液晶模块内部的控制器共有11条控制指令,如表5所示:表 5 1602LCD控制命令表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明: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的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。与HD44780相兼容的芯片时序表如下:表 6基本操作时序表读状态输入RS=L,R/W=H,E=H输出D0D7=状态字写指令输入RS=L,R/W=L,D0D7=指令码,E=高脉冲输出无读数据输入RS=H,R/W=H,E=H输出D0D7=数据写数据输入RS=H,R/W=L,D0D7=数据,E=高脉冲输出无读写操作时序如图8和图9所示:图 8 读操作时序图 9写操作时序3.3.7 1602LCD的RAM地址映射及标准字库表液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图10是1602的内部显示地址。图 10 1602的内部显示地址3.3.8 1602LCD内部显示地址例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表7所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”表 7 字符与字符图形对应关系表3.3.9 1602LCD的一般初始化(复位)过程延时15mS写指令38H(不检测忙信号)延时5mS写指令38H(不检测忙信号)延时5mS写指令38H(不检测忙信号)以后每次写指令、读/写数据操作均需要检测忙信号写指令38H:显示模式设置写指令08H:显示关闭写指令01H:显示清屏写指令06H:显示光标移动设置写指令0CH:显示开及光标设置图 11与8051系列单片机的模拟接口图3.4 DS18B20温度采集器的原理3.4.1 DS18B20封装DS18B20采用3脚PR-35封装或8脚SOIC封装, TO-92封装的DS18B20的引脚排列如图12所示。图 12 DS18B20引脚其引脚功能描述见下:(1)GND 地信号;(2)DQ数据输入/输出引脚。开漏单总线接口引脚。(3)VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。该器件可以从单总线1上得到能量并储存在内部电容中,该能量是当信号线处于低电平期间消耗,在信号线为高电平时能量得到补充,这种供电方式称为寄生电源供电。DS18B20 也可以由35. 5V 的外部电源供电。 3.4.2内部结构DS18B20 内部结构如图13包含六个主要的部件: (1) 64 位刻录的二进制ROM;(2)温度传感器;(3)存放中间数据的高速暂存器RAM ; (4)用于存储用户设定的温度上下限制TH和TL触发器; (5) 一个配置寄存器;(6)8位循环CRC发生器。图 13内部结构框图3.3.2.1 64 位刻录的二进制ROM 如表8所示,开始的8位是产品系列编码(DS18B20为10H),接着是每个器件的唯一的序列号,共有48位,最后8位是前56位的CRC校验码,这也是多个多少DS18B20可以采用一线进行通信的原因。主机操作ROM的命令有五种,如表9所示。暂存器的命令共有6条,如表10所示。表 8 64位ROM结构表 9 ROM的操作命令表 10 暂存器操作指令3.3.2.2高速暂存器RAM它由便笺式RAM 和非易失性电擦写EEPROM组成,后者用于存储TH、TL 值。数据先写入EEPROM,经校验后再传给EEPROM。便笺式RAM 占9个字节,包括温度信息(第1、2 字节)、TH 和TL 值( 3、4字节) 、计数寄存器(7、8字节) 、CRC( 第9 字节) 等,第5、6字节不用,见表5。在正常测温情况下,DS18B20的测温分辨力为0.5,可采用下述方法获得高分辨率的温度测量结果:首先用DS18B20提供的读暂存器指令(BEH) 读出以0.5为分辨率的温度测量结果,然后切去测量结果中的最低有效位(LSB),得到所测实际温度的整数部分TZ,然后再用BEH指令取计数器1的计数剩余值CS和每度计数值CD。考虑到DS18B20测量温度的整数部分以0.5、0.7为进位界限的关系,实际温度TS 可用下式计算:TS=(TZ-0.25)+( CD-CS)/ CDDA18B20采用9或12个位来表示被测量点的温度,通过单一根线和控制器进行信息通讯。温度读取,温度测量和温度设置等所需的能源也都可以数据线上获取而无须另加电源。由于每个DS18B20内部都设有一个独一的序列号,所以多个DS18B20可以共存与同一条线上。表 11 DS18B20内部暂存寄存器3.3.2.3存储温度上下限制TH和TL触发器、配置寄存器它们均由一个字节的EEPRAM组成,使用一个存储功能命令可对TH、TL、配置寄存器写入。配置寄存器的内容用于确定温度值的数字转换分辨率。该字节各位的意义如下:TMR1R011111低五位一直都是1 ,TM 是测试模式位,用于设置DS18B20 在工作模式还是在测试模式。在DS18B20 出厂时该位被设置为0,用户不要去改动。R1 和R0用来设置分辨率,如表12所示DS18B20 出厂时被设置为12 位)。表 12 DS18B20分辨率的设置3.3.2.4温度传感器和8位循环CRC发生器温度传感器可完成对温度的测量,用16位二进制的数据或十六进制的数据输出。在64 位刻录的二进制ROM的最低8位字节中存放有CRC。主CPU根据ROM的前56位来计算CRC的值,并与存入DS18B20中的CRC进行比较,以判断主CPU接收到的数据是否正确。3.4.3 DS18B20温度传感器与单片机的接口电路图 14接口电路图DS18B20与单片机的接口电路极其简单,只需将DS18B20的信号线与单片机的一位双向端口相连即可,如图14示。3.4.4单总线协议单总线及相应芯片是美国Dallas半导体公司近年推出的新技术。它将地址线、数据线和控制线合为一条信号线,允许在一条总线上挂接多个单总线芯片,其通信协议由处理次序和时序信号两部分组成。3.4.4.1处理次序单总线在任何时刻只能有一个控制信号或数据,数据要能在单片机和单总线芯片之间实现可靠的传送,遵循单总线处理次序通信协议,确保数据有条不紊地传送,图6 为处理次序示意图。图 15单总线处理次序示意图。处理次序操作时,一般有以下4 个过程。A、初始化。基于单总线上的所有传输过程都是以初始化开始的,初始化过程由主机发出的复位脉冲和从机的应答脉冲组成。应答脉冲使主机知道总线上有从机设备,且准备就绪。B、ROM 操作命令。在主机检测到应答信号后,主机可以发出ROM 操作命令之一。所有的ROM 命令都是8 位,而且这些命令与各个从机设备的唯一64 位ROM 代码相关,允许主机在单总线上连接多个从机设备时,指定操作某个从机设备。可发送的ROM 命令有:读ROM,匹配ROM,搜索ROM,跳过ROM,超速ROM,超速跳过ROM,条件查找ROM。C、RAM 操作命令。当成功执行上述某个ROM 操作命令后,总线可以发出一个RAM 命令来访问和控制RAM。可发送的RAM 命令有:写暂存RAM,读暂存RAM,复制暂存RAM,数据转换,回读E2PROM,读电源模式。D、数据交换。主机和从机之间进行数据的传输,所有的数据都是从低位开始读写的。3.4.4.2时序信号所有的单总线器件要求采用严格的通信协议,以保证数据的完整性。该协议定义了几种信号:复位脉冲、应答脉冲、写0、写1、读0 和读1。这些信号当中,除了应答信号是由从机发给主机的以外,其他的信号都是由主机发出同步信号,并且发送所有的命令和数据都是从字节的低位开始的。A、 初始化时序。单总线上的所有通信都是以初始化时序开始,包括主机发出的复位脉冲及从机的应答脉冲,如图16示。图 16初始化时序B、 写时序当主机把数据从逻辑高电平拉到逻辑低电平时,写时序开始,写“1”和“0”,如图17示。图 17写时序C、读时序 当主机把数据从逻辑高电平拉到逻辑低电平1um以上,再使数据线升为高电平,读时序开始,如图18示。图 18读时序3.5 RS232串行线RS-232C 标准(协议)的全称是 EIA-RS-232C 标准,其中EIA (Electronic Industry Association)代表美国电子工业协会,RS(recommeded standard)代表推荐标准,232是标识号,C代表RS232的最新一次修改(1969),在这之前,有RS232B、RS232A。它规定连接电缆和机械、电气特性、信号功能及传送过程。EIA-RS-232C 对电器特性、逻辑电平和各种信号线功能都作了规定。在TxD和RxD上:逻辑1(MARK)=-3V-15V逻辑0(SPACE)=+3+15V在RTS、CTS、DSR、DTR和DCD等控制线上:信号有效(接通,ON状态,正电压)+3V+15V信号无效(断开,OFF状态,负电压)=-3V-15V以上规定说明了RS-323C标准对逻辑电平的定义。对于数据(信息码):逻辑“1”(传号)的电平低于-3V,逻辑“0”(空号)的电平高于+3V;对于控制信号;接通状态(ON)即信号有效的电平高于+3V,断开状态(OFF)即信号无效的电平低于-3V,也就是当传输电平的绝对值大于3V时,电路可以有效地检查出来,介于-3+3V之间的电压无意义,低于-15V或高于+15V的电压也认为无意义,因此,实际工作时,应保证电平在(315)V之间。EIA RS-232C 与TTL转换:EIA RS-232C 是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同。因此,为了能够同计算机接口或终端的TTL器件连接,必须在EIA RS-232C 与TTL电路之间进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件,也可用集成电路芯片。目前较为广泛地使用集成电路转换器件,如MC1488、SN75150芯片可完成TTL电平到EIA电平的转换,而MC1489、SN75154可实现EIA电平到TTL电平的转换。MAX232芯片可完成TTLEIA双向电平转换。3.6 MAX232用8051串行接口通信,如果两台8051单片机之间的距离很近(不超过1.5m),可以采用直接将两台8051单片机的串行接口直接相连,利用其自身的TTL电平(0-5V)直接传输数据信息。如果传输距离较远(超过1.5m),由于传输线的阻抗与分布电容,会产生电平损耗和波形畸变,以至于检测不出数据或数据出错。此时可利用 RS232标准总线接口,将单片机输出的TTL电平转换为RS232标准电平(逻辑1为-15-5V;逻辑0为+5-+15V)。用RS232可将传输距离提高到15m,如果想远距离传输,可以采用RS422或者RS485。 该产品是由德州仪器公司( TI )推出的一款兼容 RS232 标准的芯片。由于电脑串口 rs232 电平是 -10v +10v ,而一般的单片机应用系统的信号电压是 ttl 电平 0 +5v,ma x232 就是用来进行电平转换的 ,该器件包含 2 驱动器、2 接收器和一个电压发生器电路提供 TIA/EIA-232-F 电平。该器件符合IA/EIA-232-F 标准,每一个接收器将 TIA/EIA-232-F 电平转换成 5-V TTL/CMOS 电平。每一个发送器将 TTL/CMOS 电平转换成 TIA/EIA-232-F 电平。 其主要特点如下: 1、单 5V 电源工作。2、LinBiCMOSTM 工艺技术。3、两个驱动器及两个接收器。 4、30V输入电平。 5、电源电流:典型值是 8mA。6、符合甚至优于ANSI标准EIA/TIA-232-E及ITU推荐标准V.28。7、ESD保护大于MIL-STD-883(方法3015)标准的2000V。图 19 MAX232内部结构内部结构如图19,可分为三部分:第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12V和-12V两个电源,提供给RS-232串口电平的需要。第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。第三部分是供电。15脚GND、16脚VCC(+5V)。四、系统硬件组成4.1系统整体硬件电路图温度计电路设计原理图如图20示,控制器使用单片机STC89C52,温度传感器使用DS18B20,用LM1602液晶显示温度。图 20数字温度计电路原理图五、系统软件设计5.1 主程序流程图主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图21:图 21主程序 图 22测温程序图 23温度转换流程5.2 读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图22示。5.3 温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云客服合同管理办法
- 上门收垃圾管理办法
- 油田台长制管理办法
- 防雷验收管理办法
- 高铁车间管理办法
- 楼梯道垃圾管理办法
- tps改善管理办法
- 高档会所管理办法
- 电子停车券管理办法
- 矿坑口项目管理办法
- 第十二课 餐桌上的对话 课件 2023--2024学年江苏版初中心理健康八年级全一册
- 员工食堂调查问卷表
- 全国优质课一等奖中等职业学校公共艺术(音乐)教师微课堂比赛《走进钢琴世界》微课展示课件
- 物业服务投标方案
- 《翻糖蛋糕制作技术》课件
- 标准化管理(程序化、流程化、规范化)
- 全国各省市邮编对照表
- GB/T 714-2015桥梁用结构钢
- GB/T 6003.3-1999电成型薄板试验筛
- 风险分级管控责任清单(桥梁工程)
- 雨污水管道施工方案
评论
0/150
提交评论