基于51单片机的数字体温计设计_第1页
基于51单片机的数字体温计设计_第2页
基于51单片机的数字体温计设计_第3页
基于51单片机的数字体温计设计_第4页
基于51单片机的数字体温计设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、基于STC89C52最小系统的数字体温计设计摘 要现代信息技术的三大基础是信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)。传感器属于信息技术的前沿尖端产品,尤其是温度传感器种类日益繁多,数字温度传感器更因适用于各种微处理器接口组成的自动温度控制系统具有可以克服模拟传感器与微处理器接口时需要信号调理电路和A/D转换器的弊端等优点,被广泛应用于工业控制、电子体温计、测温仪器等各种温度控制系统中。智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的。它是微电子技术、计算机技术和自动测试技术(ATE)的结晶。它们内部都包含温度传感器、A/D转换器、信号处理器、存储

2、器(或寄存器)和接口电路。有的产品还带多路选择器、中央控制器(CPU)、随机存取存储器(RAM)和只读存储器(ROM)。智能温度传感器的特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU);并且它是在硬件的基础上通过软件来实现测试功能的,其智能化程度也取决于软件的开发水平。对某些智能温度传感器而言,单片机还可通过相应的寄存器来设定其A/D转换速率(典型产品为MAX6654),分辨力及最大转换时间(典型产品为DS1624)。随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,采用单片机控制已经成为了一种潮流。本文将介绍一种基于STC

3、89C52单片机控制的数字体温计,配合采用DS18B20为温度采集模块,HS1602液晶显示模块显示结果,另外用MAX232模块进行电压转换进行程序的烧写,实现对体温的采集与再现。关键词:52单片机,DSI8B20,HS1602,体温计THE DIGITAL THERMOMETERS DESIGN BASED ON STC89C52S MINUIMUM SYSTEMABSTRACT Modern information technology is based on the three information collection (ie, sensor technology), informa

4、tion transfer (ICT) and information processing (computer technology). Sensor belongs to the forefront of cutting-edge information technology products, especially the increasingly diverse types of temperature sensors, digital temperature sensor is more suitable for a variety of microprocessor interfa

5、ce for the composition of the automatic temperature control system can overcome the analog sensors and signal conditioning required for microprocessor interfacing circuit and A / D converter defects, etc., are widely used in industrial control, electronic thermometer, thermometer, etc. of various te

6、mperature control systems. Smart temperature sensor (also known as digital temperature sensor) in the mid-1990s, came out. It is the micro-electronics technology, computer technology and automated testing techniques (ATE) of the crystal. They contain the internal temperature sensor, A / D converter,

7、 signal processor, memory (or registers) and the interface circuit. Some products are also with the multiplexer, the central controller (CPU), random access memory (RAM) and read-only memory (ROM). Smart temperature sensor is characterized by the temperature data can be exported and the related amou

8、nt of temperature control, fit a variety of microcontrollers (MCU); and it is based on the hardware to achieve through software testing capabilities, and its degree depends on intelligent in the software development level. Some smart temperature sensor, the controller can also register through the a

9、ppropriate set of its A / D conversion rate (typical products MAX6654), the maximum resolution and conversion time (typical product DS1624). With the progress and development, microcontroller technology has spread to our lives, work, research in various fields, has become a relatively mature technol

10、ogy, using SCM has become a trend. This article describes a microcontroller based control of digital thermometers STC89C52, with the use of DS18B20 the temperature acquisition module, HS1602 liquid crystal display module displays the results, another module with a MAX232 voltage conversion, to achie

11、ve the temperature of the acquisition and reproduction.Keywords: 52 microcontroller; DSI8B20; HS1602; thermometer目 录1引言12总体设计方案32.1方案论证32.1.1单片机系统32.1.2电源模块32.1.3温度传感器32.1.4显示模块42.1.5确定方案42.2总体设计43 硬件设计53.1 单片机系统53.1.1单片机最小系统73.1.2 复位电路83.1.3 时钟振荡电路83.1.4电源模块93.2温度传感器模块93.2.1 DS18B20原理93.2.2 DS18B20

12、电路连接133.3 液晶显示模块133.4串口通信模块164软件设计184.1 软件流程184.2 DS18B20模块程序设计194.2.1 程序流程194.2.2 程序源码194.3 HS1602驱动程序设计214.3.1 程序流程214.3.2 程序源码224.5 RS-232-C串口通信模块程序设计234.5.1 单片机端通信程序设计235测试及结果分析256结 语26参考文献27附 录281引言体温计是在温度计的基础上研制成功的。1714年,德国物理学家华伦海特,初期研制的体温表是把盛着酒精的玻璃管放在冰雪和盐的混合物里,看玻璃管内酒精降到哪里,刻上一条线,然后把表含入口中,看酒精升到

13、哪里,又刻上一条线。把这两条线作为固定点,再把两条线之间分成096。这就是初期的体温计。后来,华海伦特把冰点定为32,沸点为212,发明了华氏温标。1742年又发明了0100的摄氏温标,从此实现了体温计的刻度标准化。1865年,英国的阿尔伯特发明了一种很有特色的体温计,特点是储存水银的细管里有一狭道,当体温计接触人体后,水银很快升到人体实际体温处,取出后水银柱不下降,而是在狭道处断开,使狭道以上部分始终保持体温度数。这种温度计受到了临床的欢迎和普及应用。但是随着科技的进步,如今,又出现了多种类型的体温计。 电子式体温计 随着科学技术的发展,目前已经出现很多类型的新式体温计。电子式体温计利用某些

14、物质的物理参数(如电阻、电压、电流等)与环境温度之间存在的确定关系,将体温以数字的形式显示出来,读数清晰,携带方便。其不足之处在于示值准确度受电子元件及电池供电状况等因素影响,不如玻璃体温计。 耳温体温计 体温计一般在腋下、口腔、直肠等处使用,在实际应用中,人们普遍感觉不方便或不舒服。耳式体温计是通过测量耳朵鼓膜的辐射亮度,非接触地实现对人体温度的测量。只需将探头对准内耳道,按下测量钮,仅有几秒钟就可得到测量数据,非常适合急重病患者、老人、婴幼儿等使用。 片式体温计不断发展的新技术又带来了一种非常奇特的体温计,可以叫片式体温计或点阵式体温计。这种体温计只有名片大小,长6-7厘米、宽0.5厘米左

15、右,上面布满了一些附有数字的排列整齐的圆点。在进行体温测试后,某一数值以下的圆点会全都变暗,而其余圆点颜色不变,使用者即可根据上述变化确定体温。这种温度计价格不高,体积较小,便于携带和储存,本身污染非常小,特别适用于医疗机构,可以一次性使用,避免交叉感染。 红外体温计红外体温计是通过接受红外能量而设计的小仪器,其核心部件是一种叫红外探测器的光电元件,它可以将人体的红外辐射转变为电学信号,再经过电子学放大和处理成体温数字显示出来。通过探测鼓膜及周围组织发射的红外线热量,再通过内置微电脑晶片快速计算出准确的体温,并且显示到小数点后一位,解决了传统体温计刻度难以辨认的困扰。全新一秒体温计能在一秒钟内

16、扫描八次体温,并显示出最高的一个温度读数,更加确保了测量的准确。 随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。本设计所介绍的数字体温计,具有实用性强、可靠性高,测量精度准确、测量速度快,读数方便等优点,输出温度采用数字显示,在设计中控制器使用STC89C52单片机,温度传感器使用DS18B20,用HS1602液晶显示器实现温度显示,用MAX232及串口实现数据传送,用

17、USB接口实现供电。2总体设计方案2.1方案论证2.1.1单片机系统目前比较流行51系列单片机和凌阳单片机。AT89C51单片机需要用仿真器来实现软硬件的调试,较为繁琐;STC89C52八位单片机除具有AT89C51单片机所有的优点外,具有更大的程序存储空间,可在线仿真的功能,方便调试。因此,选用STC89C52八位单片机作为温度计的主控部分。2.1.2电源模块采用普通的直流电源实现电路简单,而且采用集成电源芯片设计的直流电源电压比较稳定,完全满足系统各模块的供电要求,但是普通直流电源体积比较大,变压器的散热对测温精度也有影响,所以采用USB接口直接由电脑供电,完全满足STC89C52和DS1

18、8B20等各模块的工作电压范围。2.1.3温度传感器采用专用的集成温度传感器(如AD590、LM35/LM45)和数字化温度传感器(DS18B20、DS1620)测温,数字化温度传感器具有接口简单、直接数字量输出、精确度高等优点。DS18B20是DALLAS公司的最新单线数字温度传感器,它是世界上第一片支持“一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,它的测量温度范围为55125,在1085范围内,精度为0.5,现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子

19、产品等,DS18B20支持35.5V的电压范围,使系统设计更灵活、更方便、更便宜、体积更小。DS18B20可以程序设定912位的分辨率,精度为0.5,分辨率设定及用户设定的报警温度存储在EPROM中,掉电后依然保存。因此,本方案选用DS18B20作为温度测量传感器。2.1.4显示模块由于系统要求实现测量体温,要显示的信息不仅可以是温度值,还可以是简单的图形。所以采用HS1602液晶显示模块显示测温结果。2.1.5确定方案为了不失通用性和智能性,本方案采用STC89C52单片机作为控制器,单总线温度传感器DS18B20进行温度采集。电源部分并没有采用普通的直流电源而利用USB接口通过电脑供电,完

20、全满足STC89C52和DS18B20等各模块的工作电压范围。并且显示模块使用HS1602液晶显示器。2.2总体设计本方案设计的系统由单片机系统、温度传感器模块、液晶显示模块、单片机复位电路、串口通信模块和电源模块组成,其总体架构如图2.1。主 控 制 器液 晶 显 示温 度 传 感 器单片机复位时钟振荡串口模块 图2.1总体设计方框图Fig.2.1 Block diagram of the overall design 3 硬件设计3.1 单片机系统方案采用STC89C52单片机作为控制器,完成所有的控制功能,包括:温度传感器DS18B20的初始化和读取温度值、HS1602液晶模块驱动、温度

21、存储及读取、和PC机的串口通信。STC89C52是一个低功耗,高性能CMOS 8位单片机,具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。1主要特性: 8031 CPU与MCS-51 兼容 4K字节可编程FLASH存储器(寿命:1000写/擦循环) 全静态工作:0Hz-24KHz 三级程序存储器保密锁定 128*8位内部RAM 32条可编程I/O线 两个16位定时器/

22、计数器 6个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路2管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是

23、由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收

24、输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。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口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地

25、址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,

26、此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.1.1单片机最小系统单片机最小系统应用是指仅使用单片机内部资源辅以必须的外围电路所构建的简单的应用系统。它包括两方面的内容:单片机的选择和单片机最小系统的设计。通过单片机的选择,最大限度满足应用系统对硬件资源的要求。最小应用系统设计则是指单片机最基本的、最通常的外围电路设计。任何一个复杂的应用系统都是以最小应用系统为基础,通过搭接外部功能模块的方法实现的。单片机最小系统的功能主要如下:单片机能够运行用户程序用户可以复位单片机具有相对强大的外部扩展功能图3.1

27、 单片机最小系统原理框图Fig.3.1 Smallest Microcontroller system block diagram3.1.2 复位电路在单片机系统中,一般需要一个硬件复位电路,用于用户的手动复位。常用的复位电路由一个电阻、一个电容和一个按钮组成,其原理图如图所示。在接通电源后,自动实现自动复位操作。在接通电源条件下,通过按钮操作是单片机实现复位。上电自动复位时通过外部复位电容来实现的,手动复位通过单片机复位引脚经电阻和电源接通而实现的。 图3.2 复位电路Fig.3.2 Reset Circuit3.1.3 时钟振荡电路在单片机系统中,一般在单片机引脚XTAL1和XTAL2之间

28、接一个晶振和两个电容,这样就构成了内部振荡方式,由于在单片机内部有一个高增益反相放大器,外接一个晶振后,构成了自激振荡器并产生振荡时钟脉冲。其电路图如图所示。 图3.3 时钟振荡电路Fig.3.3 Oscillation circuit3.1.4电源模块本方案采用USB口通过电脑直接供电,电路连接简单易实现。图3.4 电源电路Fig.3.1 Power Modules3.2温度传感器模块3.2.1 DS18B20原理DS18B20 采用3 脚TO-92 封装或8 脚SOIC 封装,管脚排列如图3所示。图中GND 为地,DQ 为数据输入/输出端(即单线总线),该脚为漏极开路输出,常态下呈高电平,

29、Vcc 是外部+5V 电源端,不用时应接地,NC 为空脚。图3.5 DS18B20的外部结构Fig.3.5 DS18B20 external structureDS18B20内部主要包括寄生电源、温度传感器、64 位激光ROM 单线接口、存放中间数据的高速暂存器(内含便笺式RAM),用于存储用户设定的温度上下限值的TH 和TL 解发器存储与控制逻辑、8 位循环冗余校验码(CRC)发生器等七部分,内部结构如图3.6。图3.6 DS18B20内部结构Fig.3.6 DS18B20 internal structure寄生电源由二极管VD1、VD2 和寄生电容C 组成,电源检测电路用于判定供电方式,

30、寄生电源供电时,VDD 端接地,器件从单线总线上获取电源,在DQ 线呈低电平时,改由C上的电压Vc继续向器件供电。该寄生电源有两个优点:第一,检测远程温度时无需本地电源;第二,缺少正常电源时也能读ROM。若采用外部电源VDD,则通过VD2 向器件供电。光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,序列开始8位(28H)是产品类型标号,接着的48位是DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。DS

31、18B20 测量温度时使用特有的温度测量技术。其内部的低温度系数振荡器能产生稳定的频率信号f0,高温度系数振荡器则将被测温度转换成频率信号f。当计数门打开时,DS18B20 对f0 计数,计数门开通时间由高温度系数振荡器决定。芯片内部还有斜率累加器,可对频率的非线性予以被偿。测量结果存入温度寄存器中。一般情况下的温度值应为9 位(符号点1位),但因符号位扩展成高8 位,故以16 位编码形式读出,表3.1给出了温度和数字量的关系。表3.1 DS1820 温度数字对应关系表Table 3.1 DS1820 digital temperature mapping tableDS18B20温度传感器的

32、内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低8位,第二个字节是温度的高8位,第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新,第六、七、八个字节用于内部计算,第九个字节是冗余检验字节,如表3.2所示。表3.2 DS18B20暂存器分布寄存器内容字节地址温度最低数字位0温度最高数字位1高温限制2低温限制3保留4保留5计数剩余值6每度计数值7CRC校验8该字节各位的意

33、义为TM R1 R0 1 1 1 1 1 ,低五位一直都是1 ,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式,在DS18B20出厂时该位被设置为0,用户不用改动,R1和R0用来设置分辨率,DS18B20出厂时被设置为12位,分辨率设置如表3.3所示。 表3.3 分辨率设置表Table 3.3 resolution settings tableR1R0分辨率温度最大转换时间009位93.75ms0110位187.5ms1011位375ms1112位750ms根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行

34、复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。ROM命令令和暂存器的命令如表3.4。表3.4 DS18B20暂存器的命令指令说明温度转换(44H)启动在线DS1820做温度A/D转换读数据(BEH)从高速暂存器读9bits温度值和CRC值写数据(4EH)将数据写入高速暂存器的第2和第3字节中复制(48H)将高速暂存器中第2和第3字节复制到EERAM读EERAM(B8H)将EERAM内容

35、写入高速暂存器中第2和第3字节读电源供电方式(B4H)了解DS1820的供电方式3.2.2 DS18B20电路连接 由于DS18B20 工作在单总线方式,其硬件接口非常简单,仅需利用系统的一条I/ O线与DS18B20的数据总线相连即可,如图3.7所示。图3.7 DS18B20电路Fig.3.7DS18B20 circuit3.3 液晶显示模块HS1602采用标准的16脚接口,其中VSS为地电源,VDD接5V正电源,V0为液晶显示模块对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,可以通过一个10K的电位器调整对比度。RS为寄存器选择,高电平时选择数据寄存器,低电平时选择指令寄存器。

36、RW为读写信号线,高电平时进行读操作,低电平时进行写操作,当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。BLA和BLK为背光电源,BLA接5V正电源,BLK接GND。D0D7为8位双向数据线。用HS1602液晶显示模块显示字符或字符串之前必须对其进行初始化,HS1602液晶显示模块的初始化流程如下:初始化过程(复位过程)延时15ms写指令38H(不检测忙信号)延时5ms写指令38H(不检测忙信号)延时5ms写指令38H(不检测忙信号)(以后每次

37、写指令、读/写数据之前均需检测忙信号)写指令38H:显示模式设置写指令38H:显示关闭写指令01H:显示清屏写指令06H:显示光标移动设置写指令0CH:显示开关及光标位置HS1602液晶显示模块可以和单片机STC89C52直接接口,电路如图3.8所示。图3.8 STC89C52和HS1602液晶模块连接电路Fig.3.8 STC89C52 and HS1602 LCD modules circuit3.4串口通信模块RS-232C标准(协议)的全称是EIA-RS-232C标准,其中EIA(Electronic Industry Association)代表美国电子工业协会,RS(recomme

38、nded standard)代表推荐标准,232是标识号,C代表RS232的最新一次修改,在这之前,有RS232B、RS232A,它规定连接电缆和机械、电气特性、信号功能及传送过程。RS-232C适合于数据传输速率在020000b/s范围内的通信。PC机常用DB-9连接器作为提供多功能I/O卡或主板上COM1和COM2两个串行接口的连接器,它只提供异步通信的9个信号,9针串口功能见表3.9,并且对电缆长度也有要求: RS-232C标准规定,若不使用MODEM,在码元畸变小于4%的情况下,DTE和DCE之间最大传输距离为15m(50英尺)。可见这个最大的距离是在码元畸变小于4%的前提下给出的,为

39、了保证码元畸变小于4%的要求,接口标准在电气特性中规定,驱动器的负载电容应小于2500pF。 表3.5 9针串口功能一览表针脚功能针脚功能1载波检测6数据准备完成2接收数据7发送请求3发送数据8发送清除4数据终端准备完成9振铃指示5信号地线本方案对RS-232-C接口采用3线制(RXD、TXD、GND)软握手的零MODEM方式进行单片机和PC之间的数据通信,即PC机和单片机的发送数据线(TXD)与接收数据(RXD)交叉连接,二者的地线(GND)直接相连,其它信号线如握手信号线均不用,而采用软件握手。但由于RS-232-C的逻辑电对地是对称的,与TTL、MOS 逻辑电平完全不同,逻辑0电平规定为

40、+5 +15V之间,逻辑1是电平为-5 -15V之间,因此利用MAX232芯片进行电平转换,电路连接如图3.9。图3.9 RS-232-C通信连接电路Fig.3.9 RS-232-C communication link circuit4软件设计4.1 软件流程按照硬件设计中的模块划分,软件设计可以分为三部分:DS18B20模块程序设计、HS1602驱动程序设计、单片机主程序设计。主流程如图4.1。图4.1 数字体温计主程序流程图Fig.4.1 Digital thermometers main program flow chart4.2 DS18B20模块程序设计DS18B20模块程序主要完

41、成DS18B20的初始化和温度的读取操作。程序流程如图4.2。DS18B20初始化结束温度转换跳过ROM匹配延时DS18B20是否存在?跳过ROM匹配读暂存器转换为显示码是否图4.2 DS18B20模块程序流程图Fig.4.2 DS18B20 module program flow chart4.3 HS1602驱动程序设计HS1602液晶驱动主要完成HS1602的初始化以及字符和字符串的显示。流程如图4.3。1602液晶模块初始化开始显示图4.3 HS1602液晶驱动程序流程图 Fig.4.3 HS1602 LCD driver flow chart4.5 RS-232-C串口通信模块程序设

42、计STC89S52单片机串行口是全双工串行通信口,有4 种工作方式:方式0作移位寄存器使用;方式1是波特率可变的8位UART;方式2是波特率固定为两种的9位UART;方式3是波特率可变的9位UART。在与PC机通信时我们选用方式1来循环向PC机发送数据。程序流程如图4.4。初始化串口发送同步标志位发送高8位数据发送低8位数据图 4.4单片机串口通信程序流程图5测试及结果分析6结 语经过两个多月的努力,基于STC89C52单片机最小系统数字体温计设计 论文终于完成,在整个设计过程中,出现过很多的难题,但都在老师和同学的帮助下顺利解决了,在不断的学习过程中我体会到:写论文是一个不断学习的过程,从最

43、初刚写论文时对单片机的模糊认识到最后能够对单片机有深入的了解,我体会到实践对于学习的重要性。以前只是听说过单片机这个名词,但并没有深入的学习,通过做这次的设计,不仅让我了解到了单片机的功能,并且培养了我严谨的学习态度及实践能力。虽然,我的设计还有不足之处,但是看着自己绘制的电路图,以及设计成品,心心中充满了喜悦之情,因为它凝结了我一点一滴的心血。通过学年论文设计,我深刻体会到要做好一个完整的论文及设计的理论功底、高深的学术造诣、严谨的治学态度和胸怀宽宏的高尚品质,让我受益匪浅,终身难忘。希望这次的经历能在以后学习中激励我继续进步。参考文献1 张洪润等,电子线路与电子技术,北京,清华大学出版社,

44、2005.2 王松武等,电子创新设计与实践,北京,国防工业出版社,2005.3 李建忠,单片机原理及应用,西安,西安电子科技大学出版社,2002.4 黄智伟等,全国大学生电子设计竞赛训练教程,北京,电子工业出版社,2004.5 樊昌信等.通信原理.北京,国防工业出版社,2001.6 STC89C52.PDF.7 DS18B20.PDF.8 HS1602.PDF.9 何希才,新型集成电路及应用实例,北京,科学出版社,2002.10 李朝青,理及接口技术(简明修订版),杭州,北京航空航天大学出版社,1998.11 常敏等,51单片机应用程序开发与实践,北京,电子工业出版社,2009.12 戴仙金,

45、51单片机及其C语言程序开发实例,北京,清华大学出版社,2008附 录附录1 总体完全电路图附录2 各模块程序源码1 DS18B20模块程序源码uchar DataH;uchar DataL;unsigned long Data;void Delay (uchar us) while (-us);bit init_18b20()uchar n=0;bit flag=0;DQ=1;_nop_();DQ=0;Delay(255);Delay(20); DQ=1;Delay(55);if(DQ=0) flag=1; else flag=0; Delay(100); DQ=1;return flag;

46、void write1820_byte (uchar wr) uchar i; for (i=0;i=1; uchar read1820_byte (void) uchar i,u=0; for(i=0;i=1; DQ=1; if(DQ=1) u|=0x80; Delay(18);/40us return(u); void DataCoding(unsigned char ddH , unsigned char ddL)Data = ddH * 256 + ddL;Data = Data * 625;void Get_temperarue(void)if (init_18b20 ()write

47、1820_byte (0xcc); /skip rom write1820_byte (0x44); /temp convertDelay(35);if (init_18b20 () write1820_byte (0xcc); /skip rom write1820_byte (0xbe); /read tempDataL = read1820_byte();DataH = (read1820_byte()&0x0f);DataCoding( DataH, DataL );2 HS1602液晶模块程序源码/液晶初始化void lcd_init(void) delay_nms(15); lcd_write_command(0x38,0);/

温馨提示

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

评论

0/150

提交评论