基于单片机的数字温度计设计论文_第1页
基于单片机的数字温度计设计论文_第2页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

1、1绪论1.1设计背景随着新技术的不断开发与应用,近年来单片机发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起,单片机的应用已经渗透到电力、冶金、化工、建材、机械、食品、石油等各个行业。传统的温度采集方法不仅费时费力,而且精度差,单片机的出现使得温度的采集和数据处理问题能够得到很好的解决。温度是工业对象中的一个重要的被控参数。然而所采用的测温元件和测量方法也不相同;产品的工艺不同,控制温度的精度也不相同。因此对数据采集的精度和采用的控制方法也不相同。传统的控制方式以不能满足高精度,高速度的控制要求,如温度控制表温度接触器,其主要缺点是温度波动范围大。由于他主要通过控制接触器的通断时间

2、比例来达到改变加热功率的目的,受仪表本身误差和交流接触器的寿命限制,通断频率很低。近几年来快速发展了多种先进的温度控制方式,如:PID控制,模糊控制,神经网络及遗传算法控制等。这些控制技术大大的提高了控制精度,不但使控制变得简便,而且使产品的质量更好,降低了产品的成本,提高了生产效率。本设计使用单片机作为核心进行控制。单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,在数字、智能化方面有广泛的用途。1.2国内外现状Forpersonaluseonlyinstudyandresearch;notforcommercialuse温度计在

3、国内各行各业的应用虽然已经十分广泛,但从国内生产的温度计来讲,总体发展水平仍然不高,同日本、美国、德国等先进国家相比,仍然有着较大的差距。温度计测温技术的关键在于温度传感器。目前,国际上新型温度传感器正从模拟式向数字式、由集成化向智能化、网络化的方向发展,同时具有抑制串模干扰能力强、分辨力高、线性度好、成本低等优点。随着我国四个现代化和经济发展,我国在科技和生产各领域都取得了飞速的发展和进步,发展以温度传感器为载体的温度测量技术具有重大意义。传感器属于信息技术的前沿尖端产品,尤其是温度传感器被广泛用于工农业生产、科学研究和生活等领域,数量高居各种传感器之首。温度传感器的发展大致经历了以下三个阶

4、段:传统的分立式温度传感器(含敏感元件);模拟集成温度传感器/控制器;数字温度传感器。温度传感器的发展现状:温度传感器使用范围广,数量多,居各种传感器之首,其发展大致经历了以下3个阶段: 传统的分立式温度传感器(含敏感元件)热电偶传感器,主要是能够进行非电量和电量之间转换。 模拟集成温度传感器/控制器。集成传感器是采用硅半导体集成工艺制成的,因此亦称硅传感器或单片集成温度传感器。 智能温度传感器。它是微电子技术、计算机技术和自动测试技术(ATE_)的结晶。智能温度传感器内部包含温度传感器、A/D传感器、信号处理器、存储器(或寄存器)和接口电路1。从国内外来看工业生产控制中用数字温度计可清晰显示

5、温度来防止元气件失效或损坏等不必要的非人为损失,对做好车间机器维修与保养起很重要的作用。温度是一般工业领域最容易碰到的检测参数,如环境温度的检测,工业工艺温度参数的检测,设备的温度保护检测等,而市场上专用的、通用的各类温控仪产品也比较丰富。国内外的温度检测仪器的发展水平主要体现在仪器的智能化水平、测量的文的范围、测量的精度以及仪器的功耗等技术指标上,目前国内的温度测量,在精度上很少有高于o.ir的。近年来温度计正处在传统型向新型温度计转型的发展阶段,新型温度计的特点是微型化、数字化、智能化、多功能化、系统化,他不仅促进了传统产业的改造。而且可导致建立新型工业,是21世纪新的经济增长的。1.3

6、本课题研究方法及内容1.3.1 研究方法本课题的研究方法是利用单片机和数字温度传感器DS18B20设计一台数字温度计。单片机作为主控制器,数字温度传感器DS18B20作为测温元件,传感器DS18B20可以读取被测量温度值,进行转换,从而用4位共阴极LED数码管来显示转换后的温度值。1.3.2研究内容本课题的主要研究内容如下:i温度测试基本范围ori00Co2. 精度为0.5C。3. LED液晶显示。4. 可以设定温度的上下限报警功能。5. 实现报警提示。2系统方案设计2.1方案选择方案一:使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单

7、片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路。此方案数据处理比较麻烦,且容易产生信号失真。方案二:使用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的。所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。而且此方案电路比较简单,软件设计也比较容易实现。从以上两种方案很容易看出方案二电路比较简单,软件设计容易实现,故实本设计中采用方案二。方案二可以只用一根线实现信号的双向传输,具有接简单容易扩展等优点,DS18B20可以直接温度转换为串行数字信号,供单片机进行处理,

8、具有低功耗、商性能、抗干扰能力强等优点。2.1系统的总体设计方案本设计采用STC89C52RC单片机实现。单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。而且体积小,硬件实现简单,安装方便。既可以单独对多DS18B20控制工作,还可以与PC机通信。另外STC89C52RC在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。单总线数字温度计DS182o采用基板专利技术来测量温度,温度传感器及各种数字转换电路都集成在一起,由总线串行输出测量值(9位二进制编码)。测温范围从-55-+125C,还可以读内部计数器,获得较高的分辨率。同时还可以进行上、下限温度的

9、设定和报警等。本课题主要研究如何利用DS18B20智能温度传感器实时显示温度,并将其与LED显示键盘合并使用,制成一个能实时显示温度的数字温度计。本设计将利用DS18B20智能温度传感器和单片小系统,设计一个数字温度采集系统。并设计一个人机接口电路:键盘采用独立按键(功能自定义),显示器采用共阴极4位LED显示。系统的总体设计方案框图如图2.1所示系统调试图2.1系统总体设计方案框图按照系统设计功能的要求,系统主要由单片机、温度传感器DS18B20、LED数码显示管和PC机组成。系统的硬件电路主要由复位电路、测温电路、显示电路、晶振电路和报警电路组成,系统总体结构方框图如图2.2所示。<

10、><>单片机七复位电路心按键设置,晶振电路*图2.2系统总体结构框图3硬件设计3.1 STC89C52RC芯片功能简介3.1.1 STC89C52RC芯片简介STC89C52RC是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-FlashProgramableandErasableReadOnlyMemory)的低电、高性能COMOS8的微处理器,俗称单片机。该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容23.1.2引脚功能STC89C52RC芯片的引脚图如图3.1所示:T2/P1.0T2EX/P1.1Pl.2Pl.

11、3Pl.4Pl.5Pl.6Pl.7RSTRXD/P3.0TXD/F3.1INTO/P3.2INT1/P3.3TO/P3.4T1/P3.5翌P3.6RD/P3.7XTAL2XTAL1VSS01234678911111PDIP401516171819206543212222220987643333543210987333333222vccPO.O/ADOPO.1/AD1PO.2/AD2PO.3/AD3PO.4/AD4PO.5/AD5PO.6/AD6PO.7/AD7EAALE/PROGPSENP2.7/A15P2.6/A14P2.5/A13P2.4/A12P2.3/AUP2.2/A1OP2.1/A9

12、P2.0/A8图3.1STC89C52引脚图STC89C52RC的引脚功能如下 主电源引脚(2根)VCC(Pin40):电源输入,接+5V电源GND(Pin20):接地线 外接晶振引脚(2根)XTAL1(Pin19):片内振荡电路的输入端XTAL2(Pin20):片内振荡电路的输出端 控制引脚(4根)RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位ALE/PR0G(Pin30):地址锁存允许信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。

13、可编程输入/输出引脚(32根)STC89C52单片机有4组8位的可编程I/O口,分别位PO、Pl、P2、P3口,每个口有8位(8根引脚),共32根。PO(Pin39_Pin32):8位双向I/O线,名称为P0.0_P0.7Pl(Pin1_Pin8):8位准双向I/O线,名称为P1.0_P1.7P2(Pin21_Pin28):8位准双向I/O线,名称为P2.0_P2.7P3(Pin10_Pin17):8位准双向I/O线,名称为P3.0_P3.7STC89C52主要功能如表3-1所示。表3-1STC89C52主要功能主要功能特性兼容MCS51指令系统8K可反复擦写FlashROM32个双向I/O口

14、256x8bit内部RAM3个16位可编程定时/计数器中断时钟频率0-24MHz2个串行中断可编程UART串行通道2个外部中断源共6个中断源2个读写中断线3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能1.时钟电路STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。内部方式的时钟电路如图3.2(a)所示,在RXD和TXD引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率可以在1.212MHz之间选择,电容值在5_30pF之间选择,电容值的

15、大小可对频率起微调的作用。外部方式的时钟电路如图3.2(b)所示,RXD接地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。RXD接地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生个两相时钟P1和P2,供单片机使用。(a)内部方式时钟电路(b)外部方式时钟电路图3.2时钟电路2.复位及复位电路(1) 复位操作复位是单片机的初始化操作。其主要功能是把PC初始化为0000H

16、,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。除PC之外,复位操作还对其他些寄存器有影响,它们的复位状态如表3-2所示3。表3-2些寄存器的复位状态寄存器复位状态寄存器复位状态PC0000HTCONOOHACCOOHTLOOOHPSWOOHTHOOOHSP07HTL1OOHDPTR0000HTH1OOHP0-P3FFHSCONOOHIPOXOOOOOOBSBUF不定IEOXOOOOOOBPCONOXOOOOOOBTMODOOH(2) 复位信号及其产生RST引脚是复位信号的输入端。复位信号

17、是高电平有效,其有效时间应持续24个振荡周期(即二个机器周期)以上。若使用颇率为6MHz的晶振,则复位信号持续时间应超过4us才能完成复位操作。产生复位信号的电路逻辑如图3.3所示:不得用于商业用途图3.3复位信号的电路逻辑图整个复位电路包括芯片内、外两部分。外部电路产生的复位信号(RST)送至施密特触发器,再由片内复位电路在每个机器周期的S5P2时刻对施密特触发器的输出进行采样,然后才得到内部复位操作所需要的信号。复位操作有上电自动复位和按键手动复位两种方式4。上电自动复位是通过外部复位电路的电容充电来实现的,其电路如图3.4(a)所示。这佯,只要电源Vcc的上升时间不超过1ms,就可以实现

18、自动上电复位,即接通电源就成了系统的复位初始化。按键手动复位有电平方式和脉冲方式两种。其中,按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的,其电路如图3.4(b)所示;而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的,其电路如图3.4(c)所示:(a)上电复位(b)按键电平复位图3.4复位电路(c)按键脉冲复位上述电路图中的电阻、电容参数适用于6MHz晶振,能保证复位信号高电平持续时间大于2个机器周期。3.2 复位电路设计复位电路有上电自动复位和按键手动复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的,只要电源VCC的上升时间不超过1ms,就可以实现自动上电复位,

19、即接通电源就成了系统的复位初始化。按键手动复位有电平方式和脉冲方式两种。其中,按键电平复位是通过使复位端经电阻与VCC电源接通而实现的,而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的。本系统的复位电路采用上电复位方式。复位电路图如图3.5所示:图3.5复位电路图3.3 晶振电路设计对于每个系统工程的晶振电路,都是用于单片机工作所需要的时钟信号,单片机只有在时钟信号的控制下,其各部件之间才能协调一致工作,时钟信号控制着计算机的工作节奏。在单片机的TXAL1、TXAL12、之间跨接晶体振荡器和微调电容,可以和单片机内部的振荡器构成一个稳定的自激振荡器,这就是单片机的晶振电路。这种方式称之为

20、内部的时钟源方式。电容C1和C2的主要作用是帮助振荡器起振,且振荡器大小对振荡频率有微调作用,在80C51系列中电容的大小30皮法。另外,振荡器的频率只要由石英晶振的频率来决定本次设计选用12MHz。本系统的晶振电路如图3.6所示:图3.6晶振电路3.4 DS18B20芯片简介3.4.1芯片简介(1) 适应电压范围更宽,电压范围:3.0V5.5V,在寄生电源方式下可由数据线供电。(2) 独特的单线接方式,DS18B20在与微处理器连接时仅需要一条线即可实现微处理器与DS18B20的双向通讯。(3) DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内

21、。(4) 测温范围55C_+125C,在-10C+85C时精度为土0.5C。(5) 可编程的分辨率为9_12位,对应的可分辨温度分别为0.5C、0.25C、0.125C和0.0625C,可实现高精度测温。(6) 在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。(7) 测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。8)负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作5。仅供个人参考342DS18B20的外形和内部结构DS18B20内部结构如图3.7所

22、示,主要由4部分组成:64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20外形及管脚排列如图3.8和表3-3所示5。VDDDALLASDSIJIBZfl图3.7DS18B20的内部结构NCNCNCGND表3-3DS18B20引脚定义:序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接引脚。当被用着在寄生电源下,也可以向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。(1) 64位ROMROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。

23、64位ROM的循环冗余校验码(CRC=X8+X5+X4+1)。ROM的作用是使每一个DS18B20都各不相同,DS18B20中的温度传感器完成对温度的测量,用16位符号扩展的二进制补码读数形式提供,以0.0625C/LSB形式表达,其中S为符号位。DS18B20温度值格式表4-4如下所示。ROM中的64位序列号是出厂前被光刻好的,他可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。64位ROM的循环冗余校验码(CRC=X8+X5+X4+1)。ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。DS18B20中温度

24、传感器完成对温度的侧量,用16位符号扩展的二进制补码读数形式提供,以0.0625C/LSB形式表达,其中S为符号位。DS18B20温度值格式表3-4如下所示。这是12位转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。例如十25.0625C的数字输出为0191H,-25.0625C的数字输出为FF6FH15Byte2322212021222324bit15bit14bit13bit

25、12bit11bit10bit9bit8ByteSSSSS262524表3-4DS18B20温度值格式表LSMSbit7bit6bit5bit4bit3bit2bit1bit0(2)高低温报警触发器TH和TLDS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。(3)配置寄存器该字节各位的意义如下表3-5所示。表3-5配置寄存器结构TMR1R011111低五位一直都是“1”,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和

26、R0用来设置分辨率,如下表3-6所示(DS18B20出厂时被设置为12位)。表3-6温度分辨率设置表R1R0分辨率温度最大转换时间009位93.75ms0110位187.5ms1011位375ms1112位750ms(4)高速暂存器高速暂存器是一个9字节的存储器。开始两个字节包含被测温度的数字量信息;第3、4、5字节分别是TH,TL、配置寄存器的临时拷贝,每一次上电复位时被刷新;第6、7、8字节未用,表现为全逻辑1;第9字节读出的是前面所有8个字节的CRC码,可用来保证通信正确。高速暂存器RAM结构图如下表3-7所示。表3-7DS18B20暂存寄存器分布寄存器内容字节地址温度值低位(LSByt

27、e)0温度值高位(MSByte)1高温限值(TH)2低温限值(TL)3配置寄存器4保留5保留6保留7CRC校验值8343DS18B20的工作时序DS18B20的一线工作协议流程是:初始化-ROM操作指令一存储器操作指令一数据传输。其工作时序包括初始化时序、写时序和读时序,如图3.9(a)(b)(c)所示6。主机写“0”吋隙*66usTx120us主机写“1”吋隙咱1us<txcc315iDS18SMINT320采样TMAX>j_usus15ds#B2miNTY0采样MAX円15Us=30us15ius30lLS|VCC1-WireBusGND图3.9(b)写时序主机控制DS18B2

28、0完成任何操作之前必须先初始化,即主机发一复位脉冲(最短为480us的低电平),接着主机释放总线进入接收状态,DS18B20在检测到I/O引脚上的上升沿之后,等待15-60us然后发出存在脉冲(60-240us的低电平)。写时间片:将数据从高电平拉至低电平,产生写起始信号。在15us之内将所需写的位送到数据线上,在15us到60us之间对数据线进行采样,如果采样为高电平,就写1,如果为低电平,写o就发生。在开始另一个写周期前必须有lus以上的高电平恢复期。读时间片:主机将数据线从高电平拉至低电平1us以上,再使数据线升为高电平,从而产生读起始信号。主机在读时间片下降沿之后15us内完成读位。每

29、个读周期最短的持续期为60us,各个读周期之间也必须有1us以上的高电平恢复期。3.4.4 DS18B20与单片机的典型接设计图3.10以MCS-51系列单片机为例,画出了DS18B20与微处理器的典型连接。图3.10(a)中DS18B20采用寄生电源方式,其VDD和GND端均接地,图3.10(b)中DS18B20采用外接电源方式,其VDD端用3V_5.5V电源供电6图3.10电源工作方式图3.4.5 DS18B20的各个ROM命令(1) ReadROM33H这个命令允许总线控制器读到DS18B20的8位系列编码,惟一的序列号的8位CRC码。只有在总线上存在单只DS18B20的时候才能用这个命

30、令。如果总线上有不止一个从机,当所有从机试图同时传送信号时就会发生数据冲突(漏极开路连在一起形成“与”的效果)。(2) MatchROM55H这是个匹配ROM命令,后跟64位ROM序列,让总线控制器在多点总线上定位一只特定的DS18B20。只有和64位ROM序列完全匹配的DS18B20才能响应随后的存储器操作。所有和64位ROM序列不匹配的从机都将等待复位脉冲。这条命令在总线上有单个或多个器件时都可以使用。(3)SkipROM0CCH这个命令允许总线控制器不用提供64位ROM编码就使用存储器操作命令,在单点总线情况下,可以节省时间。如果总线上不止一个从机,在命令之后紧跟着发一条读命令,由于多个

31、从机同时传信号。总线上发生数据冲突(漏极开路连在一起形成“与”的效果)。(4)SearchROM0F0H当一个系统初次启动时,总线控制器并不知道单线总线上有多少个器件或它们的64位ROM编码。搜索ROM命令允许总线控制器用排除法识别总线上的所有从机的64位编码。(5)AlarmSearch0ECH这条命令的流程和SearchROM相同。然而,只有在最近一次测温后遇到符合报警条件的情况,DS18B20才会响应这条命令。报警条件定义为温度高于TH或低于TL。只要DS18B20不掉电,报警状态将一直保持,直到再一次测得的温度值达不到报警条件。(6)WriteScratchpad4EH这个命令向DS1

32、8B20的暂存器TH和TL中写入数据。可以在任何时刻发出复位命令来中止写入。(7)ReadScratchpad0BEH这个命令读取暂存器的内容。读取将从第1字节开始,一直进行下去,直到第9(CRC)字节读完。如果不想读完所有字节,控制器可以在任何时刻发出复位命令来中止读取。(8)CopyScratchpad48H这个命令把暂存器的内容拷贝到DS18B20的E2ROM存储器里,即把温度报警触发器字节存入非易失性存储器里。如果控制器在这条命令之后跟着发出读时间隙,而DS18B20又忙于把暂存器拷贝到E存储器,DS18B20就会输出一个0,如果拷贝结束的话,DS18B20输出1。如果使用寄生电源,总

33、线控制器必须在这条命令后立即启动强上拉,并最少保持10ms。(9)ConvertT44H这个命令启动一次温度转换而无需其他数据。温度转换命令被执行,而后DS18B20保持等待状态。如果控制器在这条命令之后跟着发出时间隙,而DS18B20有忙于做时间转换的话,DS18B20将在总线上输出一个0,若温度转换完,则输出1。如果使用寄生电源,总线控制器必须在发出这条命令后立即启动强上拉,并最少保持500ms以上时间。(10)ReadE20B8H这条命令把触发器里的值拷贝回暂存器。这种拷贝操作在DS18B20上电时自动执行,这样一上电暂存器里马上存在有效的数据了。若在这条命令之后发出读数据隙,器件会输出

34、温度转换忙的标识:0为忙,1为完成。(11)ReadPowerSupply0B4H若把这条命令发给DS18B20后发出读时间隙,器件会返回它的电源模式:0为寄生电源,1为外部电源6。3.5测温电路设计数字温度传感器DS18B20的测温电路如图所示3.11所示:图3.11测温电路3.6按键模块设计利用单片机的IO实现按键的中断输入。另外需要一个与门实现与中断端的连接。按键电路如图3.12所示,期中按键K1为进入/退出设置键;K2为增加键;K3为减少键。图3.12按键模块3.7 报警电路设计三极管8550驱动蜂鸣器:报警电路如图3.13所示三极管Q5来驱动蜂鸣器BUZ1。图3.13报警电路3.8

35、显示电路设计采用四位共阴极LED数码管来显示温度的大小,可以直接读取,温度精确到0.1C。四位数码管的显示电路如图3.14所示,从左到右依次是百位,十位,个位,十分位。图3.14显示电路3.9 MAX232简介MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。MAX232的引脚图如图3.15所示:01.V+'116Vcc瓦GNDHIIQIJIC2t413RIINC2-'J12RI0UIV-611TUNT2QUT7101'2INR2IN89k?OUT图3.15MAX232引脚图引脚介绍7:第一部分是电荷泵电路。由1、

36、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串电平的需要。第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(R1IN)、12脚(R10UT)、11脚(T1IN)、14脚(T10UT)为第一数据通道。8脚(R2IN)、9脚(R20UT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT

37、输出。第三部分是供电。15脚GND、16脚VCC(+5v)。MAX232的原理电路图如图3.16所示:图3.16MAX电路原理图MAX232的主要特点:1、符合所有的RS-232C技术标准2、只需要单一+5V电源供电3、片载电荷泵具有升压、电压极性反转能力,能够产生+10V和-10V电压V+、V-4、功耗低,典型供电电流5mA5、内部集成2个RS-232C驱动器6、内部集成两个RS-232C接收器3.10 RS232接简介RS-232C是使用最早、应用最多的一种异步串行通信总线标准,它是美国电子工业协会EIA(ElectronicIndustryAssociation)于1962年公布、196

38、9年最后修订而成的。RS表示RecommendedStandard,232是该标准的标识,C表示最后一次修订。RS-232C主要用于定义计算机系统的一些数据终端设备(DTE)和数据通信设备(DCE)之间接的电气特性。CRT、打印机与CPU的通信大都采用RS-232C总线83.10.1 RS232接的电平转换RS-232C标准是在TTL电路之前研制的,它的电平不是+5V和地,而是采用负逻辑,其逻辑电平为:逻辑“0”:+3V_+15V逻辑“1”:-3V-15V因此,RS-232C不能和计算机的TTL电平直接相连,使用时必须加上适当的电平转换电路芯片,否则将使TTL电路烧坏。常用的电平转换接芯片是传

39、输驱动器MC1488和传输接收器MC1489,它们是用于计算机(终端)与RS232C总线间进行电平转换的接芯片。另一种常用的电平转换芯片是MAX232,该芯片有两个传输驱动器和两个传输接收器。3.102RS232总线接标准RS-232C标准规定的数据传输率为50b/s、75b/s、100b/s、150b/s、300b/s、600b/s、1200b/s、2400b/s、4800b/s、9600b/s、19200b/s。驱动器允许有2500pF的电容负载,通信距离将受此电容限制。例如,采用150pF/m的通信电缆时,最大通信距离为15m,若每米电缆的电容量减小,则通信距离可以增加。传输距离短的另一

40、原因是RS-232C属单端信号传送,存在共地噪声和不能抑制共模干扰等问题。因此,它一般用于20m以内的通信。RS-232C总线标准规定了21个信号,有25条引脚线,常采用25芯D型插头座,提供一个主信道和一个辅助信道,在多数情况下主要使用主信道。对于一般异步双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。RS-232C也有9芯标准D型插头座,RS232C9芯排列引脚如图3.7所示,个引脚功能如表3-8所示9-RIRXJ1XDCISI,R图3.17RS232C9芯排列引脚图RS-232C定义了计算机系统的一些数据终端设备(DTE)和数据通信设备(DCE)之间接的电气特性。R

41、S-232C提供的两个信道中,辅助串行信道提供数据控制和第二信道,但其传输速率比主信道要低得多。除了速率低之外两信道无异,但辅助信道通常很少使用。信号分为两类:一类是DTE与DCE交换的信息一一TxD和RxD;另一类是为了正确无误地传输上述信息而设计的联络信号。不得用于商业用途表3-89芯RS232C的引脚功能3.11串口电路设计单片机与上位机(PC机)的接电路如图3.18所示:P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1.'TXDP3.2J1NT0'P3.3J1NTTP3.4.-T0P3.5/I1P3E殛P3.7W&

42、lt;TEXT>LkiuF斗<TEXT>COMPIblR1OUTT2INR2OUTT1OUTR1INT2OUTC55MAX232-IRXD1uFTXDRTSCTS图3.18接口电路3.12系统总体电路图系统的总体电路图如图3.19所示:SXTAL1pnn-.H.EinP.1/AD1PEJP:lP.4/AD+P£ADSPajSAtGPEJ.7/AD?XTA12RSTPNDffiBPZ.KABP2H'.和口PZJfAIIP2.tfA12PZSfAllPZj9*A1+PZ.TWISPSEMALE0PIUTEpi.irrzKP12p1Pl.irrxDpii-Tinn

43、PWTKTFP3.4HUP35T1pi.artWPI.TiTTFP1JSP1.T图3.19总体电路图4 系统软件设计4.1 各模块的程序设计系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序和按键扫描处理子程序等。主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图4.1所示。fj血链按下否F读出溟摩値富度计笋出来显歩数据刷新读収温度贡温.度转换开始命僉调用显汉子程序设置报警爲度调用报警子程序图4.1主程序流程图4.1.2 读出温度子程序读出温度子

44、程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图4.2示:CRCRK正N9字节圭读取操作CRC校验SDSlBB20gEe发读取温度命令移入温度暂存器图4.2读出温度子程序流程图4.1.3 温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如图4.3所示:图4.3温度转换命令子程序流程图4.1.4 计算温度子程序计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如

45、图4.4所示。图4.4计算温度子程序流程图4.1.5 显示数据刷新子程序显示数据刷新子程序主要是对分离后的温度显示数据进行刷新操作,当标志位位为1时将符号显示位移入第一位。程序流程图如图4.5所示。标志位为”1”?分离图4.5显示数据刷新子程序流程图最高僅显示温度数据移入显示寄存器燼离温显示分喬出的数据4.1.6 报警子程序设置报警标志位位beep,当温度大于设置的高限报警值或低于设置的低限报警值是,beep=l报警;当温度值在正常范围内时,beep=0.报警流程图如图4.6所示:图4.6报警流程图4.1.7按键扫描处理子程序按键采用扫描查询方式,设置标志位,当标志位为1时,显示设置温度,否则

46、显示当前温度。如下图4.7所示。调用显示子稈瘁图4.7按键扫描子程序流程图4.2 KeilC51编程软件4.2.1 KeilC51简介KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体

47、现高级语言的优势。KeilC51软件是一个基于32位Windows环境的应用程序,支持C语言和汇编语言编程,其6.0以上的版本将编译和仿真软件统一为“Vision(通常称为“V2)。Keil提供包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,由以下几部分组成:“VisionIDE集成开发环境C51编译器、A51汇编器、LIB51库管理器、BL51连接/定位器、OH51目标文件生成器以及Monitor-51、RTX51实时操作系统4.2.2 KeilC51软件应用应用Keil进行软件仿真开发的主要步骤为:编写源程序并保存一建立工程并添加源文件一设置工程一编译/

48、汇编、连接,产生目标文件一程序调试。Keil使用“工程”(Project)的概念,对工程(而不能对单一的源程序)进行编译/汇编、连接等操作。工程的建立、设置、编译/汇编及连接产生目标文件的方法非常易于掌握。首先选择菜单File-New,在源程序编辑器中输入汇编语言或C语言源程序(或选择File-Open,直接打开已用其它编辑器编辑好的源程序文档)并保存,注意保存时必须在文件名后加上扩展名.asm(.a51)或.c;然后选择菜单Project-NewProject,建立新工程并保存(保存时无需加扩展名,也可加上扩展名uv2);工程保存后会立即弹出一个设备选择对话框,选择CPU后点确定返回主界面。

49、这时工程管理窗的文件页(Files)会出现“Target1”,将其前面+号展开,接着选择SourceGroup1,右击鼠标弹出快捷菜单,选择“AddFiletoGroupSourceGroup1'”,出现一个对话框,要求寻找并加入源文件(在加入一个源文件后,该对话框不会消失,而是等待继续加入其它文件)。加入文件后点close返回主界面,展开“SourceGroup1”前面+号,就会看到所加入的文件,双击文件名,即可打开该源程序文件。紧接着对工程进行设置,选择工程管理窗的Target1,再选择Project-OptionforTargetTarget1'(或点右键弹出快捷菜单再选

50、择该选项),打开工程属性设置对话框,共有8个选项卡,主要设置工作包括在Target选项卡中设置晶振频率、在Debug选项卡中设置实验仿真板等,如要写片,还必须在Output选项卡中选中“CreatHexFi”;其它选项卡内容一般可取默认值。工程设置后按F7键(或点击编译工具栏上相应图标)进行编译/汇编、连接以及产生目标文件。成功编译/汇编、连接后,选择菜单Debug-Start/StopDebugSession(或按Ctrl+F5键)进入程序调试状态,Keil提供对程序的模拟调试功能,内建一个功能强大的仿真CPU以模拟执行程序。Keil能以单步执行(按F11或选择Debug-Step)、过程单

51、步执行(按F10或选择Debug-StepOver)、全速执行等多种运行方式进行程序调试。如果发现程序有错,可采用在线汇编功能对程序进行在线修改(Debug-InlineAssambly),不必执行先退出调试环境、修改源程序、对工程重新进行编译/汇编和连接、然后再次进入调试状态的步骤。对于一些必须满足一定条件(如按键被按下等)才能被执行的、难以用单步执行方式进行调试的程序行,可采用断点设置的方法处理(Debug-Insert/RemoveBreakpoint或Debug-Breakpoints等)。在模拟调试程序后,还须通过编程器将.hex目标文件烧写入单片机中才能观察目标样机真实的运行状况。

52、4.3 Protues仿真4.3.1Protues简介Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PC

53、B设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。该软件的特点是:1.实现了单片机仿真和SPICE电路仿真相结合,具有模拟电路仿真、数字电路仿真、各种单片机(51系列、AVR、PIG等常用的MCU)及其外围电路(如LCD、RAM、ROM、键盘、LED、A/D、D/A)组成的系统仿真。2.提供了多种虚拟仪器。如示波器、逻辑分析

54、仪、信号发生器等,调试非常方便。3.提供软件调试功能,同时支持第三方的软件编译和调试环境,如Keil等软件。4.具有强大的原理图绘制功能。Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验从某种意义上讲,是弥补了实验和工程应用阉脱节的矛盾和现象。同时,当硬件调试成功后,利用ProteusARES软件,很容易获得其PCB图,为今后的制造提供了方便11。4.

55、3.2 Protues测温仿真通过仿真软件验证该原理图的可行性。采用protues软件对电路仿真,可以得到预期效果。仿真图如图4.8示。温度传感器的仿真效果图如图4.9所示,此图验证了传感器的温度与数码管显示的数字一致。STC89C52与AT89C52都属于51系列的单片机,他们是兼容的,所以Protues中没有STC89C52芯片,就由AT89C52芯片代替。FBCDEFGDP1ES斗伽CG3+35T3ff3?>Z>K1.EECCOUPU:rE:-:>'1XTAL1PDIVADDPCI.VAD1POZ'ADZ>:7T.h.I2PCIAD3PCI.般D*PCIJADSPCIJ9ADSPSTPn.Ti'ADTPND

温馨提示

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

评论

0/150

提交评论