学校课程设计必备基于单片机的数字温度计设计_第1页
学校课程设计必备基于单片机的数字温度计设计_第2页
学校课程设计必备基于单片机的数字温度计设计_第3页
学校课程设计必备基于单片机的数字温度计设计_第4页
学校课程设计必备基于单片机的数字温度计设计_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、淮南师范学院电气信息工程学院电子信息工程专业课程论文设计 摘要本课题是利用单片机和数字温度传感器DS18B20设计一台数字温度计。单片机作为主控制器,数字温度传感器DS18B20作为测温元件,传感器DS18B20可以读取被测量温度值,进行转换,从而用4位共阴极LED数码管来显示转换后的温度值。当温度超出设定的范围值时,就会产生报警,本设计也可以实现与PC机的通信。本设计用keil和protues进行仿真。关键词:单片机,DS18B20,LED数码管,报警。目录摘要1第一章 绪论3 1.1设计背景3 1.2 国内外现状3 1.3本课题研究方法与内容4 1.3.1研究方法4 1.3.2研究内容4第

2、二章 系统方案设计5 2.1方案选择5 2.2系统的总体设计方案5第三章 硬件设计6 3.1 STC89C52RC芯片简介7 3.1.1 STC89C52RC芯片简介7 3.1.2引脚功能7 3.2 DS18B20芯片简介9 3.2.1 芯片简介9 3.2.2 DS18B20的外形和内部结构10 3.3 MAX232简介13 3.4 RS232接口简介14 3.4.1 RS232接口的电平转换14 3.4.2 RS232总线接口标准14 3.5 各模块设计15 3.5.1测温模块设计15 3.5.2按键模块设计17 3.5.3报警电路设计17 3.5.4显示电路设计18 3.5.5串口电路设计

3、18第四章 系统软件设计19 4.1主程序流程图19 4.2 keil C51 软件应用20 4.3 protues仿真21辞谢23参考文献24附录25附录1 C语言程序25附录2 系统设计总图32 绪论1.1设计背景随着新技术的不断开发与应用,近年来单片机发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起,单片机的应用已经渗透到电力、冶金、化工、建材、机械、食品、石油等各个行业。传统的温度采集方法不仅费时费力,而且精度差,单片机的出现使得温度的采集和数据处理问题能够得到很好的解决。温度是工业对象中的一个重要的被控参数。然而所采用的测温元件和测量方法也不相同;产品的工艺不同,控制温度

4、的精度也不相同。因此对数据采集的精度和采用的控制方法也不相同。传统的控制方式以不能满足高精度,高速度的控制要求,如温度控制表温度接触器,其主要缺点是温度波动范围大。由于他主要通过控制接触器的通断时间比例来达到改变加热功率的目的,受仪表本身误差和交流接触器的寿命限制,通断频率很低。近几年来快速发展了多种先进的温度控制方式,如:PID控制,模糊控制,神经网络及遗传算法控制等。这些控制技术大大的提高了控制精度,不但使控制变得简便,而且使产品的质量更好,降低了产品的成本,提高了生产效率。本设计使用单片机作为核心进行控制。单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干

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

6、产、科学研究和生活等领域,数量高居各种传感器之首。温度传感器的发展大致经历了以下三个阶段:传统的分立式温度传感器(含敏感元件);模拟集成温度传感器/控制器;数字温度传感器。 温度传感器的发展现状:温度传感器使用范围广,数量多,居各种传感器之首,其发展大致经历了以下3个阶段: 传统的分立式温度传感器(含敏感元件)热电偶传感器,主要是能够进行非电量和电量之间转换。 模拟集成温度传感器/控制器。集成传感器是采用硅半导体集成工艺制成的,因此亦称硅传感器或单片集成温度传感器。 智能温度传感器。它是微电子技术、计算机技术和自动测试技术(ATE_)的结晶。智能温度传感器内部包含温度传感器、A/D传感器、信号

7、处理器、存储器(或寄存器)和接口电路1。从国内外来看工业生产控制中用数字温度计可清晰显示温度来防止元气件失效或损坏等不必要的非人为损失,对做好车间机器维修与保养起很重要的作用。温度是一般工业领域最容易碰到的检测参数,如环境温度的检测,工业工艺温度参数的检测,设备的温度保护检测等,而市场上专用的、通用的各类温控仪产品也比较丰富。国内外的温度检测仪器的发展水平主要体现在仪器的智能化水平、测量的文的范围、测量的精度以及仪器的功耗等技术指标上,目前国内的温度测量,在精度上很少有高于0.1的。近年来温度计正处在传统型向新型温度计转型的发展阶段,新型温度计的特点是微型化、数字化、智能化、多功能化、系统化,

8、他不仅促进了传统产业的改造。而且可导致建立新型工业,是21世纪新的经济增长的。1.3 本课题研究方法及内容1.3.1 研究方法本课题的研究方法是利用单片机和数字温度传感器DS18B20设计一台数字温度计。单片机作为主控制器,数字温度传感器DS18B20作为测温元件,传感器DS18B20可以读取被测量温度值,进行转换,从而用4位共阴极LED数码管来显示转换后的温度值。1.3.2 研究内容本课题的主要研究内容如下:1. 温度测试基本范围0100。2. 精度为0.5。3. LED液晶显示。4. 可以设定温度的上下限报警功能。5. 实现报警提示。第二章系统方案设计2.1 方案选择方案一:使用热敏电阻之

9、类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路。此方案数据处理比较麻烦,且容易产生信号失真。方案二:使用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的。所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。而且此方案电路比较简单,软件设计也比较容易实现。从以上两种方案很容易看出方案二电路比较简单,软件设计容易实现,故实本设计中采用方案二。方案二可以只用一根线实现信号的双向传输

10、,具有接口简单容易扩展等优点,DS18B20可以直接温度转换为串行数字信号,供单片机进行处理,具有低功耗、商性能、抗干扰能力强等优点。2.2系统的总体设计方案本设计采用STC89C52RC单片机实现。单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。而且体积小,硬件实现简单,安装方便。既可以单独对多DS18B20控制工作,还可以与PC机通信。另外STC89C52RC在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。单总线数字温度计DS1820采用基板专利技术来测量温度 ,温度传感器及各种数字转换电路都集成在一起 ,由总线串行输出测量值(9 位二进制编码

11、) 。测温范围从 - 55 + 125 , 还可以读内部计数器 ,获得较高的分辨率。同时还可以进行上、 下限温度的设定和报警等。本课题主要研究如何利用DS18B20智能温度传感器实时显示温度,并将其与LED显示键盘合并使用,制成一个能实时显示温度的数字温度计。本设计将利用DS18B20智能温度传感器和单片小系统,设计一个数字温度采集系统。并设计一个人机接口电路:键盘采用独立按键(功能自定义),显示器采用共阴极4位LED显示。系统的总体设计方案框图如图2.1所示系统设计系统硬件设计系统软件设计复位电路晶振电路测温点路显示电路报警电路按键电路测网模块显示模块报警模块按键模块系统调试图2.1 系统总

12、体设计方案框图按照系统设计功能的要求,系统主要由单片机、温度传感器DS18B20、LED数码显示管和PC机组成。系统的硬件电路主要由复位电路、测温电路、显示电路、晶振电路和报警电路组成,系统总体结构方框图如图2.2所示。单片机驱动显示电路测温点路报警电路复位电路按键设置晶振电路PC机串口图2.2系统总体结构框图第三章 硬件设计3.1 STC89C52RC芯片简介3.1.1 STC89C52RC芯片简介STC89C52RC是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-Flash Programable and Erasable Read Only Memory )的低电、高性能COM

13、OS8的微处理器,俗称单片机。该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。3.1.2 引脚功能STC89C52RC芯片的引脚图如图3.1所示: 图3.1 STC89C52引脚图STC89C52RC的引脚功能如下: 主电源引脚(2根)VCC(Pin40):电源输入,接5V电源GND(Pin20):接地线外接晶振引脚(2根)XTAL1(Pin19):片内振荡电路的输入端XTAL2(Pin20):片内振荡电路的输出端控制引脚(4根)RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。ALE/PROG(Pin30)

14、:地址锁存允许信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。可编程输入/输出引脚(32根)STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。PO口(Pin39Pin32):8位双向I/O口线,名称为P0.0P0.7P1口(Pin1Pin8):8位准双向I/O口线,名称为P1.0P1.7 P2口(Pin21Pin28):8位准双向I/O口线,名称为P2.0P2.7 P3口(Pin10Pin17):8位准双向

15、I/O口线,名称为P3.0P3.7STC89C52主要功能如表3-1所示。表3-1 STC89C52主要功能主要功能特性兼容MCS51指令系统8K可反复擦写Flash ROM32个双向I/O口256x8bit内部RAM3个16位可编程定时/计数器中断时钟频率0-24MHz2个串行中断可编程UART串行通道2个外部中断源共6个中断源2个读写中断口线3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能3.2 DS18B20芯片简介3.2.1 芯片简介(1) 适应电压范围更宽,电压范围:3.0 V5.5V,在寄生电源方式下可由数据线供电。(2) 独特的单线接口方式,DS18B20在与微处理器连接时仅

16、需要一条口线即可实现微处理器与DS18B20的双向通讯。(3) DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。(4) 测温范围55125,在-10+85时精度为±0.5。(5) 可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温。(6) 在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。(7) 测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。(8)

17、 负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。3.2.2 DS18B20的外形和内部结构DS18B20内部结构如图3.7所示,主要由4部分组成:64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20外形及管脚排列如图3.8和表3-2所示。 64位ROM和单线接 口 高速缓存 存储器 存储器和控制器8位CRC生成器温度传感器 低温触发器TL高温触发器TH配置寄存器电源检测I/O CVDD图3.7 DS18B20的内部结构图3.8 DS18B20的管脚排列表3-2 DS18B20引脚定义:序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚

18、。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。(1) 64位ROM ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。64位ROM的循环冗余校验码(CRC=X8X5X41)。ROM的作用是使每一个DS18B20都各不相同, DS18B20中的温度传感器完成对温度的测量,用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位。ROM中的64位序列号是出厂前被光刻好的,他可以看作是该DS18B20的地址序列

19、码,每个DS18B20的64位序列号均不相同。64位ROM的循环冗余校验码(CRC=X8X5X41)。ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。DS18B20中温度传感器完成对温度的侧量,用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位。DS18B20温度值格式表3-3如下所示。这是12位转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测

20、到的数值需要取反加1再乘于0.0625即可得到实际温度。例如25.0625的数字输出为0191H,25.0625的数字输出为FF6FH。 表3-3 DS18B20温度值格式表 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0LS Byte22222222 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 MS ByteSSSSS222 (2)高低温报警触发器TH和TLDS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。 (3)

21、配置寄存器 该字节各位的意义如下表3-4所示。表3-4 配置寄存器结构TMR1R011111低五位一直都是“1”,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如下表3-5所示(DS18B20出厂时被设置为12位)。表3-5 温度分辨率设置表R1R0分辨率温度最大转换时间009位93.75ms 0110位187.5ms 1011位375ms 1112位750ms (4)高速暂存器高速暂存器是一个9字节的存储器。开始两个字节包含被测温度的数字量信息;第3、4、5字节分别是TH、TL、配置寄存器的临

22、时拷贝,每一次上电复位时被刷新;第6、7、8字节未用,表现为全逻辑1;第9字节读出的是前面所有8个字节的CRC码,可用来保证通信正确。高速暂存器RAM结构图如下表3-6所示5。表3-6 DS18B20暂存寄存器分布寄存器内容 字节地址温度值低位 (LS Byte)0温度值高位 (MS Byte)1高温限值(TH)2低温限值(TL)3配置寄存器4保留5保留6保留7CRC校验值83.3 MAX232简介MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。MAX232的引脚图如图3.9所示:图3.9 MAX232引脚图引脚介绍:第一部分是电荷泵电

23、路。由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数据后从R

24、1OUT、R2OUT输出。 第三部分是供电。15脚GND、16脚VCC(+5v)。3.4 RS232接口简介RS-232C是使用最早、 应用最多的一种异步串行通信总线标准, 它是美国电子工业协会EIA(Electronic Industry Association)于1962年公布、 1969年最后修订而成的。 RS表示 Recommended Standard, 232是该标准的标识, C表示最后一次修订。 RS-232C主要用于定义计算机系统的一些数据终端设备(DTE)和数据通信设备(DCE)之间接口的电气特性。 CRT、 打印机与CPU的通信大都采用RS-232C总线。 3.4.1 RS

25、232接口的电平转换RS-232C标准是在TTL电路之前研制的, 它的电平不是+5 V和地, 而是采用负逻辑, 其逻辑电平为: 逻辑“0”:+3 V+15 V逻辑“1”: -3 V-15 V因此, RS-232C不能和计算机的TTL电平直接相连, 使用时必须加上适当的电平转换电路芯片, 否则将使TTL电路烧坏。常用的电平转换接口芯片是传输驱动器MC1488和传输接收器MC1489, 它们是用于计算机(终端)与RS 232C总线间进行电平转换的接口芯片。另一种常用的电平转换芯片是MAX232, 该芯片有两个传输驱动器和两个传输接收器。3.4.2 RS232总线接口标准RS-232C标准规定的数据

26、传输率为50 b/s、 75 b/s、 100 b/s、 150 b/s、 300 b/s、 600 b/s、 1200 b/s、 2400 b/s、 4800 b/s、 9600 b/s、 19 200 b/s。 驱动器允许有2500 pF的电容负载, 通信距离将受此电容限制。 例如, 采用150 pF/m的通信电缆时, 最大通信距离为 15 m, 若每米电缆的电容量减小, 则通信距离可以增加。 传输距离短的另一原因是RS-232C 属单端信号传送, 存在共地噪声和不能抑制共模干扰等问题。 因此, 它一般用于 20 m 以内的通信。RS -232C总线标准规定了21个信号, 有25条引脚线,

27、 常采用25芯D型插头座, 提供一个主信道和一个辅助信道, 在多数情况下主要使用主信道。 对于一般异步双工通信, 仅需几条信号线就可实现, 如一条发送线、 一条接收线及一条地线。 RS-232C也有9芯标准D型插头座,RS232C9芯排列引脚如图3.10所示,个引脚功能如表3.11所示。图3.10 RS232C9芯排列引脚图RS-232C定义了计算机系统的一些数据终端设备(DTE)和数据通信设备(DCE)之间接口的电气特性。RS-232C提供的两个信道中, 辅助串行信道提供数据控制和第二信道, 但其传输速率比主信道要低得多。 除了速率低之外两信道无异, 但辅助信道通常很少使用。信号分为两类:

28、一类是DTE与DCE交换的信息TxD和RxD; 另一类是为了正确无误地传输上述信息而设计的联络信号。 引脚号信号名称符号流向功能1载波检测DCDDTE DCE接受到远程载波信号2接收数据RxDDTE DCEDTE接收串行数据3发送数据TxDDTE DCEDTE发送串行数据4数据终端准备好DTRDTE DCEDTE准备就绪5信号地SGND6数据设备准备好DSRDTE DCEDCE准备就绪7请求发送RTSDTE DCEDTE请求DCE将线路切换到发送方式8允许发送CTSDTE DCEDCE告诉DTE线路已接通可以发送数据9振铃指示RIDTE DCE表示DCE与线路接通,出现振铃表3.11芯RS23

29、2C的引脚功能3.5 各模块设计3.5.1 测温电路设计数字温度传感器DS18B20的测温电路如图所示3.11所示图3.11 测温电路3.5.2按键模块设计利用单片机的IO口实现按键的中断输入。另外需要一个与门实现与中断端口的连接。按键电路如图3.12所示,期中按键K1为进入/退出设置键;K2为增加键;K3为减少键。图3.12按键模块3.5.3 报警电路设计三极管8550驱动蜂鸣器:报警电路如图3.13所示三极管Q5来驱动蜂鸣器BUZ1图3.13 报警电路3.5.4显示电路设计 采用四位共阴极LED数码管来显示温度的大小,可以直接读取,温度精确到0.。四位数码管的显示电路如图3.14所示,从左

30、到右依次是百位,十位,个位,十分位。图3.14 显示电路3.5.5 串口电路设计单片机与上位机(PC机)的接口电路如图3.15所示:图3.15串口通信电路第四章 系统软件设计4.1主程序流程图主程序的主要功能是负责温度的实时显示、读出并处理DS18B20 的测量的当前温度值,温度测量每1s 进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图4.1 所示。开始读取温度读出温度值温度计算出来显示数据刷新发温度转换开始命令调用报警子程序调用显示子程序K1键是否按下NY设置报警温度图4.1 主程序流程图4.2 Keil C51软件应用应用Keil进行软件仿真开发的主要步骤为:编写源程序并保存

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

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

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

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

35、标文件烧写入单片机中才能观察目标样机真实的运行状况。4.3 Protues仿真通过仿真软件验证该原理图的可行性。采用protues软件对电路仿真,可以得到预期效果。仿真图如图4.8示。温度传感器的仿真效果图如图4.9所示,此图验证了传感器的温度与数码管显示的数字一致。STC89C52与AT89C52都属于51系列的单片机,他们是兼容的,所以Protues中没有STC89C52芯片,就由AT89C52芯片代替。图4.8 Protues仿真图图4.9 DS18B20仿真图当按下K1 键一次时,进入温度报警上线调节,此时显示软件设置的温度报警上线,按K2或K3分别对报警温度进行加一或减一。当再次按下

36、K1 键时,进入温度报警下线调节,此时显示软件设置的温度报警下线,按K2或K3分别对报警温度进行加一或减一。当第三次按下K1 键时,退出温度报警线设置。显示当前温度。如图4.10是第一次按下K1键显示的上限温度报警值,此时按K2或K3键分别对上限温度报警值进行加一或减一;图4.11是第二次按下K1键显示的下限温度报警值,此时按K2或K3键分别对下限温度报警值进行加一或减一。图4.10上限温度报警值图4.11 下限温度报警值谢辞值此之际,向在我毕业设计期间给予我谆谆教诲的李杰老师表示衷心的感谢! 感谢老师给了我很大的帮助,同时也离不开很多同学的热心帮助,是他们在我遇到难题的时候给了我启发。通过本

37、次毕业设计,我在专业知识、专业技能和解决问题方法方面得到很大的提高。更深入了解并掌握了传感器的基本理论知识, 并在单片机实际电路开发和常用编程设计思路掌握方面有了一定程度的掌握,尽管本次设计还不是很完善,但这为我以后的设计之路积累了宝贵的经验。参考文献1 金发庆.传感器技术与应用.北京:机械工业出版社,2002.34-362 丁向荣.STC系列增强型8051单片机原理及应用.北京:电子工业出版社,2011.1-23 求是科技科技.单片机典型模块设计实例导航.北京:人民邮电出版社,2005.7-114 曹巧媛.单片机原理及应用(第二版). 北京:电子工业出版社,2002.55-575 金发庆.传

38、感器技术与应用.北京:机械工业出版社,2002.181-1836 沙占友.智能化集成温度传感器原理与应用. 机北京:械工业出版社,2002.89-907 李建忠.单片机原理及应用. 西安:西安电子科技大学出版社,2008.128-1348 王守中.51单片机开发入门与典型实例.北京:人民邮电出版社,2007:195-1989 李朝青.单片机原理及接口技术(简明修订版).杭州:北京航空航天大学出版社,1998.123-12510 赵文博,刘涛.单片机语言C51程序设计.北京:人民邮电出版社,2005:1-411 周润景,张丽娜,丁莉.基于PROTUES的电路及单片机设计与仿真.北京:北京航空航天

39、大学出版社,2009:1-2附录附录1 .C语言程序#include <reg51.h>#include<stdio.h>#include <intrins.h> /_nop_();延时函数用#define dm P0 /段码输出口#define uchar unsigned char#define uint unsigned intsbit DQ=P17; /温度输入口sbit L1=P20; /数码管1sbit L2=P21; /数码管2sbit L3=P22; /数码管3sbit L4=P23; /数码管4sbit beep=P35; /蜂鸣器sbit

40、 set=P14; /温度设置切换键sbit add=P15; /温度加sbit dec=P16; /温度减int temp1=0; /显示当前温度和设置温度的标志位为0 时显示当前温度uint h;uint temp;uchar r;uchar high=120,low=20;uchar sign;uchar q=0;uchar tt=0;uchar scale;uchar code ditab16=0x00,0x01,0x01,0x02, /温度小数部分用查表法 0x03,0x03,0x04,0x04, 0x05,0x06,0x06,0x07, 0x08,0x08,0x09,0x09;uc

41、har code table_dm12=0x3f,0x06,0x5b,0x4f, /小数断码表 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x00,0x40;uchar table_dm1=0xbf,0x86,0xdb,0xcf, /共阴LED 段码表"0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "不亮" "-&q

42、uot; 0xe6,0xed,0xfd,0x87, 0xff,0xef; /个位带小数点的断码表uchar data temp_data2=0x00,0x00; /读出温度暂放uchar data display5=0x00,0x00,0x00,0x00,0x00; /显示单元数据,共4 个数据和一个运算暂用void delay(uint t) / 延时函数for (;t>0;t-);void scan()int j;for(j=0;j<4;j+)switch (j)case 0: dm=table_dmdisplay0;L4=0;delay(50);L4=1;/小数case 1:

43、 dm=table_dm1display1;L3=0;delay(50);L3=1;/个位case 2: dm=table_dmdisplay2;L2=0;delay(50);L2=1;/十位case 3: dm=table_dmdisplay3;L1=0;delay(50);L1=1;/百位 /elsedm=table_dmb3;w3=0;delay(50);w3=1; ow_reset(void) /DS18B20 复位函数char presence=1;while(presence)while(presence)DQ=1; /从高拉倒低_nop_();_nop_();DQ=0;delay

44、(50); /50 usDQ=1;delay(6); /6 uspresence=DQ; /presence=0 复位成功,继续下一步delay(45); /延时45 uspresence=DQ;DQ=1; /拉高电平void write_byte(uchar val) /DS18B20 写命令函/向1-WIRE 总线上写1 个字节uchar i;for(i=8;i>0;i-)DQ=1;_nop_();_nop_(); /从高拉倒低DQ=0;_nop_();_nop_();_nop_();_nop_(); /5 usDQ=val&0x01; /最低位移出delay(6); /66

45、 usval=val/2; /右移1 位DQ=1;delay(1);uchar read_byte(void) /DS18B20 读1 字节函数/从总线上取1 个字节uchar i;uchar value=0;for(i=8;i>0;i-)DQ=1;_nop_();_nop_();value>>=1;DQ=0;_nop_();_nop_();_nop_();_nop_(); /4 usDQ=1;_nop_();_nop_();_nop_();_nop_(); /4 usif(DQ)value|=0x80;delay(6); /延时66 usDQ=1;return(value)

46、;read_temp() /读出温度函数ow_reset(); /总线复位delay(200);write_byte(0xcc); /发命令write_byte(0x44); /发转换命令ow_reset();delay(1);write_byte(0xcc); /发命令write_byte(0xbe);temp_data0=read_byte(); /读温度值的第字节temp_data1=read_byte(); /读温度值的高字节temp=temp_data1;temp<<=8;temp=temp|temp_data0; / 两字节合成一个整型变量。return temp; /返回温度值work_temp(uint tem) /温度数据处理函数/二进制高字节的低半字节和低字节的高半字节组成一字节,

温馨提示

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

最新文档

评论

0/150

提交评论