




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、黄河科技学院课程设计 基于单片机的数字温度计设计摘要随着国民经济的发展,人们需要对各中加热炉、热处理炉、反应炉和锅炉中温度进行监测和控制。采用单片机来对他们控制不仅具有控制方便,简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大的提高产品的质量和数量。在日常生活及工业生产过程中,经常要用到温度的检测及控制,温度是生产过程和科学实验中普遍而且重要的物理参数之一。在生产过程中,为了高效地进行生产,必须对它的主要参数,如温度、压力、流量等进行有效的控制。温度控制在生产过程中占有相当大的比例。温度测量是温度控制的基础,技术已经比较成熟。传统的测温元件有热电偶和二电阻。而热电偶和热
2、电阻测出的一般都是电压,再转换成对应的温度,这些方法相对比较复杂,需要比较多的外部硬件支持。我们用一种相对比较简单的方式来测量。 我们采用美国DALLAS半导体公司继DS18B20之后推出的一种改进型智能温度传感器DS18B20作为检测元件,温度范围为-55125 ºC,最高分辨率可达0.0625 ºC。DS18B20可以直接读出北侧温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。本文介绍一种基于AT89C51单片机的一种温度测量及报警电路,该电路采用DS18B20作为温度监测元件,测量范围0-+100,使用LED模块显示,能设置温度报警
3、上下限。正文着重给出了软硬件系统的各部分电路,介绍了集成温度传感器DS18B20的原理,AT89C51单片机功能和应用。该电路设计新颖、功能强大、结构简单。关键词:温度测量;DS18B20;AT89C51目录第1章 绪论3第2章 系统概述42.1方案选择42.1.1方案一42.1.2方案二42.2设计思路及描述5 2.3系统设计原理52.4系统组成52.5DS18B20温度传感器与单片机的接口电路62.6显示模块7第3章 系统硬件设计83.1 89C51单片机的介绍83.1.1 89C51单片机主要特性93.1.2 89C51单片机的中断系统93.1.3 89C51单片机的定时/计数器10 3
4、.2液晶显示部分与89C51的接口103.3DS18B20介绍103.3.1温度传感器工作原理113.3.2 DS18B20相关介绍12第4章 系统软件设计134.1主程序设计134.2 DS18B20初始化144.3数据测试154.4仿真结果15结论17致谢18参考文献19附录 全部程序清单20 1 绪论随着新技术的不断开发与应用,近年来单片机发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起,单片机的应用已经渗透到电力、冶金、化工、建材、机械、食品、石油等各个行业。传统的温度采集方法不仅费时费力,而且精度差,单片机的出现使得温度的采集和数据处理问题能够得到很好的解决。温度是工业对
5、象中的一个重要的被控参数。然而所采用的测温元件和测量方法也不相同;产品的工艺不同,控制温度的精度也不相同。因此对数据采集的精度和采用的控制方法也不相同。传统的控制方式以不能满足高精度,高速度的控制要求,如温度控制表温度接触器,其主要缺点是温度波动范围大,由于他主要通过控制接触器的通断时间比例来达到改变加热功率的目的,受仪表本身误差和交流接触器的寿命限制,通断频率很低。近几年来快速发展了多种先进的温度控制方式,如:PID控制,模糊控制,神经网络及遗传算法控制等。这些控制技术大大的提高了控制精度,不但使控制变得简便,而且使产品的质量更好,降低了产品的成本,提高了生产效率。本系统所使用的加热器件是电
6、炉丝,功率为三千瓦,要求温度在4001000。静态控制精度为2.43。本设计使用单片机作为核心进行控制。单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,在数字、智能化方面有广泛的用途。 2 系统概述2.1方案选择该系统主要由温度测量和数据采集两部分电路组成,实现的方法有很多种,下面将列出两种在日常生活中和工农业生产中经常用到的实现方案。2.1.1方案一采用热电偶温差电路测温,温度检测部分可以使用低温热偶,热电偶由两个焊接在一起的异金属导线所组成,热电偶产生的热电势由两种金属的接触电势和单一导体的温差电势组成。通过将参考结点保持在已
7、知温度并测量该电压,便可推断出检测结点的温度。数据采集部分则使用带有A/D 通道的单片机,在将随被测温度变化的电压或电流采集过来,进行A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来。热电偶的优点是工作温度范围非常宽,且体积小,但是它们也存在着输出电压小、容易遭受来自导线环路的噪声影响以及漂移较高的缺点,并且这种设计需要用到A/D 转换电路,感温电路比较麻烦。系统主要包括对A/D0809 的数据采集,自动手动工作方式检测,温度的显示等,这几项功能的信号通过输入输出电路经单片机处理。此外还有复位电路,晶振电路,启动电路等。故现场输入硬件有手动复位键、A/D 转
8、换芯片,处理芯片为51 芯片,执行机构有4 位数码管、报警器等。【1】系统框图如图 2-1所示。图2-1 热电偶温差电路测温系统框图2.1.2方案二采用数字温度芯片DS18B20 测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0100 摄氏度时,最大线形偏差小于1 摄氏度。DS18B20 的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器AT89C51构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大。采用5
9、1 单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。既可以单独对多DS18B20控制工作,还可以与PC 机通信上传数据,另外AT89C51 在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。【1】该系统利用AT89C51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。该系统扩展性非常强,它可以在设计中加入时钟芯片DS1302以获取时间数据,在数据处理同时显示时间,并可以利用AT24C16芯片作为存储器件,以此来对某些时间点的温度数据进行存储,
10、利用键盘来进行调时和温度查询,获得的数据可以通过MAX232芯片与计算机的RS232接口进行串口通信,方便的采集和整理时间温度数据。从以上两种方案,容易看出方案一的测温装置可测温度范围宽、体积小,但是线性误差较大。方案二的测温装置电路简单、精确度较高、实现方便、软件设计也比较简单,故本次设计采用了方案二。2.2设计思路及描述本设计4个开关按键K1,K2,K3,K4:其中,在下限设置灯亮时,按下K1按键,温度计进入报警下限设置,在上限设置灯亮时,按下K1按键,温度计进入报警上限设置;按动K2,K3可分别实现报警温度的增减,当设置完毕后,按K4保存并退出。该实验要求对环境温度进行测量并在LED上显
11、示数据,则可利用AT89C51芯片的P0.7-P0.0管脚对应了接数码管的A,B,C,D,E,F,G和小数点位,P2.0P2.3接显示数据的小数位、个位、十位、百位(符号位),P3.4端口与DS18B20进行数据传递和通信端口,P1.0端口输出报警信号。 2.3系统设计原理利用温度传感器DS18B20可以直接读取被测温度值,进行转换的特性,模拟温度值经过DS18B20处理后转换为数字值,然后送到单片机中进行数据处理,并与设置的温度报警限比较,超过限度后通过扬声器报警。同时处理后的数据送到LED中显示。2.4系统组成本课题以是89C51单片机为核心设计的一种数字温度控制系统,系统整体硬件电路包括
12、,传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路等组成。系统框图主要由主控制器、单片机复位、报警按键设置、时钟振荡、LED显示、温度传感器组成。系统框图如图2-2所示。图2-2 系统基本方框图1. 主控制器单片机AT89C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。2. 显示电路显示电路采用LED液晶显示数码管,从P3口RXD,TXD串口输出段码。显示电路是使用的串口显示,这种显示最大的优点就是使用口资源比较少,只用p3口的RXD,和TXD,串口的发送和接收,四只数码管采用74LS1
13、64右移寄存器驱动,显示比较清晰。 3. 温度传感器温度传感器采用美国DALLAS半导体公司生产的DS18B20温度传感器。DS18B20输出信号全数字化。便于单片机处理及控制,在0100 摄氏度时,最大线形偏差小于1 摄氏度,采用单总线的数据传输,可直接与计算机连接。用AT89C51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。获得的数据可以通过MAX232芯片与计算机的RS232接口进行串口通信,方便的采集和整理时间温度数据。2.5 DS18B20温度传感器与单片机的接口电路DS18B20可以采用两种方式供电,
14、一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图2-3 所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。【2】图2-3 DS18B20与单片机的接口电路当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。2.6显示模块 图2-4显示模块 显示电路采用4位共阴极LED数码管,采用LED动态显示方式,从P1口输出段码,P2.0
15、P2.3作为位选控制端。其中P1做输出口时需要加上拉电阻。3 系统硬件设计3.1 89C51单片机的介绍89C51单片机最初是由Intel 公司开发设计的,但后来Intel 公司把51 核的设计方案卖给了几家大的电子设计生产商,譬如 SST、Philip、Atmel 等大公司。如是市面上出现了各式各样的但均以51 为内核的单片机,倒是Intel 公司自己的单片机却显得逊色了。这些各大电子生产商推出的单片机都兼容51 指令、并在51 的基础上扩展一些功能而内部结构是与51 一致的。89C51有40个引脚,4个8位并行I/O口,1个全双工异步串行口,同时内含5个中断源,2个优先级,2个16位定时/
16、计数器。89C51的存储器系统由4K的程序存储器(掩膜ROM),和128B的数据存储器(RAM)组成。【3】89C51单片机的基本组成框图见图3-1。【3】 图3-1 89C51单片机结构框图 由图3-1可见,89C51单片机主要由以下几部分组成:1. CPU系统 8位CPU,含布尔处理器; 时钟电路; 总线控制逻辑。2. 存储器系统 4K字节的程序存储器(ROM/EPROM/Flash,可外扩至64KB); 128字节的数据存储器(RAM,可再外扩64KB);特殊功能寄存器SFR。3. I/O口和其他功能单元 4个并行I/O口; 2个16位定时计数器; 1个全双工异步串行口; 中断系统(5个
17、中断源,2个优先级)。3.1.1 89C51单片机主要特性1. 一个8 位的微处理器(CPU)。2. 片内数据存储器RAM(128B),用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据等,SST89 系列单片机最多提供1K 的RAM。3. 片内程序存储器ROM(4KB),用以存放程序、一些原始数据和表格。但也有一些单片机内部不带ROM/EPROM,如8031,8032,80C31 等。目前单片机的发展趋势是将RAM 和ROM 都集成在单片机里面,这样既方便了用户进行设计又提高了系统的抗干扰性。SST 公司推出的89 系列单片机分别集成了16K、32K、64K Flash 存储
18、器,可供用户根据需要选用。4. 四个8 位并行IO 接口P0P3,每个口既可以用作输入,也可以用作输出。5. 两个定时器计数器,每个定时器计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。为方便设计串行通信,目前的52 系列单片机都会提供3 个16 位定时器/计数器。6. 五个中断源的中断控制系统。现在新推出的单片机都不只5 个中断源,例如SST89E58RD 就有9 个中断源。7. 一个全双工UART(通用异步接收发送器)的串行IO 口,用于实现单片机之间或单机与微机之间的串行通信。8. 片内振荡器和时钟产生电路,但石英晶体和
19、微调电容需要外接。最高允许振荡频率为12MHz。SST89V58RD 最高允许振荡频率达40MHz,因而大大的提高了指令的执行速度。【3】 图3-2 89C51单片机管脚图部分引脚说明:1. 时钟电路引脚XTAL1 和XTAL2:2. 控制信号引脚RST,ALE,PSEN 和EA:3. 输入/输出端口P0/P1/P2/P3:3.1.289C51单片机的中断系统89C51系列单片机的中断系统有5个中断源,2个优先级,可以实现二级中断服务嵌套。由片内特殊功能寄存器中的中断允许寄存器IE控制CPU是否响应中断请求;由中断优先级寄存器IP安排各中断源的优先级;同一优先级内各中断同时提出中断请求时,由内
20、部的查询逻辑确定其响应次序。3.1.3 89C51单片机的定时/计数器在单片机应用系统中,常常会有定时控制需求,如定时输出、定时检测、定时扫描等;也经常要对外部事件进行计数。89C51单片机内集成有两个可编程的定时/计数器:T0和T1,它们既可以工作于定时模式,也可以工作于外部事件计数模式,此外,T1还可以作为串行口的波特率发生器。3.2液晶显示部分与89C51的接口如图3-4所示。用89C51的P0口作为数据线,显示电路采用4位共阴极LED数码管,采用LED动态显示方式,从P0口输出段码,P2.0P2.3作为位选控制端。其中P0做输出口时需要加上拉电阻。图3-3 液晶显示与89C51的接口3
21、.3 DS18B20介绍DS18B20引脚如图3-6所示。图3-4 DS18B20引脚图DALLAS 最新单线数字温度传感器DS18B20是一种新型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。DALLAS 半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。温度测量范围为-55+125 摄氏度,可编程为9位12 位转换精度,测温分辨率可达0.0625摄氏度,分辨率设定参数以及用户设定的报警温度存储在EEPROM 中,掉电后依然保存。被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可以在远端引入,也可以采用寄生电源方式产生
22、;多个DS18B20可以并联到3 根或2 根线上,CPU只需一根端口线就能与诸多DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。3.3.1温度传感器工作原理DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s 减为750ms。 DS18B20测温原理:低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振 随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输
23、入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对 低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即 为所测温度。DS18B20功能特点:1. 采用单总线技术,与单片机通信只需要一根I/O线,在一根线上可以挂接多个DS18B20。2. 每只DS18B20具有一个独有的,不可修改的64位序列号,根据序列号访问地应的器件。3. 低压供电,电源范围从35V,可以本地供电,也可以
24、直接从数据线上窃取电源(寄生电源方式)。4. 测温范围为-55+125,在-1085范围内误差为±0.5。5. 可编辑数据为912位,转换12位温度时间为750ms(最大)。6. 用户可自设定报警上下限温度。7. 报警搜索命令可识别和寻址哪个器件的温度超出预定值。8. DS18B20的分辩率由用户通过EEPROM设置为912位。9. DS18B20可将检测到温度值直接转化为数字量,并通过串行通信的方式与主控制器进行数据通信。DS18B20有4个主要的数据部件:1. 光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8
25、位 (28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用 是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。 2. DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以 0.0625/LSB形式表达,其中S为符号位。3. DS18B20温度传感器的存储器 DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器 TH、TL和结
26、构寄存器。 4. 配置寄存器。DS18B20内部结构及功能:DS18B20的内部结构如图4-7所示。主要包括:寄生电源,温度传感器,64位ROM和单总线接口,存放中间数据的高速暂存器RAM,用于存储用户设定温度上下限值的TH和TL触发器,存储与控制逻辑,8位循环冗余校验码(CRC)发生器等7部分图3-7 DS18B20内部结构3.3.2 DS18B20相关介绍温度的读取:DS18B20在出厂时以配置为12位,读取温度时共读取16位,所以把后11位的2进制转化为10进制后在乘以0.0625便为所测的温度,还需要判断正负。前5个数字为符号位,当前5位为1时,读取的温度为负数;当前5位为0时,读取的
27、温度为正数。DS18B20的初始化: 1. 先将数据线置高电平“1”。2. 延时(该时间要求的不是很严格,但是尽可能的短一点)。3. 数据线拉到低电平“0”。4. 延时750微秒(该时间的时间范围可以从480到960微秒)。5.数据线拉到高电平“1”。6. 延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制7. 若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒。8.将数据线再次
28、拉高到高电平“1”后结束。 DS18B20的写操作: 1. 数据线先置低电平“0”。2. 延时确定的时间为15微秒。3. 按从低位到高位的顺序发送字节(一次只发送一位)。4. 延时时间为45微秒。 5. 将数据线拉到高电平。6. 重复上(1)到(6)的操作直到所有的字节全部发送完为止。7. 最后将数据线拉高。 DS18B20的读操作:1. 将数据线拉高“1”。2. 延时2微秒。3. 将数据线拉低“0”。4. 延时15微秒。5. 将数据线拉高“1”。6. 延时15微秒。7. 读数据线的状态得到1个状态位,并进行数据处理。8. 延时30微秒。4 系统软件设计4.1主程序设计整个系统的功能是由硬件电
29、路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了。从软件的功能不同可分为两大类:一是监控软件(主程序),它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。二是执行软件(子程序),它是用来完成各种实质性的功能如测量、计算、显示、通讯等。每一个执行软件也就是一个小的功能执行模块。这里将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义。各执行模块规划好后,就可以规划监控程序了。首先要根据系统的总体功能选择一种最合适的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系。主程序流程见图4-1 图 4-1 主程序流程图 4.2 DS18
30、B20初始化18B20初始化流程图见图4-2。 图 4-2 DS18B20初始化流程图4.3数据测试将温度传感器与冰水混合物接触,经过充分搅拌达到热平衡后调节系统,使显示读数为0.00(标定0);利用气压计读出当时当地的大气压强,并根据大气压强和当地重力加速度计算出当时的实际压强;根据沸点与压强的关系查出沸点温度。把温度传感器放入沸水中,待显示读数稳定后重新调节,使显示器显示读数等于当地当时沸点温度后工作结束。该温度计的量程为0100,读数精度为0.1,实际使用一般在0100。采用050和50100的精密水银温度计作检验标准,对设计的温度计进行测试,其结果表明能达到该精度要求。4.4仿真结果设
31、置温度上限为50度,温度下限为0度。 1.如图4-3所示。此时温度时60度,超出上限温度,蜂鸣器响,实现报警。图4-3 仿真1 2.如图4-4所示。此时温度为-5度,低于下限温度,绿灯亮,且蜂鸣器响,实现报警。图4-4 仿真2 3.如图4-5所示。此时温度为25度,在所设范围内,蜂鸣器不响,说明温度正常。图4-5 仿真3结论本文介绍了基于80C51单片机的数字温度计控制系统的设计,对整个硬件电路和软件程序设计做了分析,文中介绍了数字温度计的现状及发展,介绍了仿真软件proteus及keil的基本知识,学习了proteus的仿真方法和步骤,介绍了数字温度计的设计方案选择及原理介绍,加深了51单片
32、机的知识了解,介绍51单片机的结构、特点等。并学习了数字温度传感器DS18B20,设计软件仿真,更直观的反应设计的正确性。本文对其中的一些基本原理也做了简要的概述。其实写完了本篇论文,也仅仅是对数字温度计控制系统做出了一个简单的设计方案,数字温度计科利用在很多领域,在一些人不能直接进入的场所,利用单片机控制的数字温度计,可以设置并控制其中的温度,数字温度计还可以利用在温室中,这样就可以方便的控制温室中的温度,当温度超过所要求的温度时,可发生报警。总之数字温度计利用在很多领域。本课题只是单片机控制数字温度计系统得一种设计方法。 致谢通过这一阶段的努力,我的毕业论文基于单片机的数字温度计终于完成了
33、,这意味着大学生活即将结束。在大学阶段,我在学习上和思想上都受益非浅,这除了自身的努力外,与各位老师、同学和朋友的关心、支持和鼓励是分不开的。在我写本论文的过程中,同学们和老师给我提供了许多资料,并对实践中出现的问题给予耐心的解答,完稿之后在百忙之中仔细阅读,给出修改意见,在此对他们表示感谢。参考文献1 杨素行著.模拟电子技术基础(第二版) .北京:高等教育出版社,2006.2 阎石著.数字电子技术基础(第五版) .北京:高等教育出版社,2006.3 李全利,仲伟峰,徐军著.单片机原理及应用.北京:清华大学社,2006.4 何立民著单片机高级教程北京:北京航空航天大学出版社,2000.5 杨路
34、明著C语言程序设计教程(第2版) 北京:北京邮电大学出版社,2005.6 马忠梅,籍顺心,张凯等著.单片机的C语言应用程序设计(第4版) .北京:北京航天航空大学出版社,2007.7 白驹珩,雷晓平著单片计算机及其应用成都:电子科技大学出版社,1997.8 谭浩强著程序设计与开发技术北京:清华大学出版社,1991.9 钟富昭著.8051单片机典型模块设计与应用.北京:人民邮电出版,2007.10 于永,戴佳,常江著.51单片机C语言常用模块与综合系统设计实例精讲.北京:电子工业出版社,2007.11 梁翎著C语言程序设计实用技巧与程序实例.上海:上海科普出版社,1998.12 Li Wei-d
35、i,Guo Qiang. Application technology of LCD displays.China Publishing House of Electronics Industry, 2000.13 Su Kai,Liu Qing-guo, Chen Guo-ping. Principle and design of MCS-51 Single-chip microprocessor.Metallurgical Industry Press, 2003.14 Lou Jianan Liang Xiaolin Feng Changjiang etc. A Missile Stor
36、age Battery Charging Instrument based on 80C196KC Single Chip Microcomputer.The 5th International Symposium on Test and Measurement. Shenzhen, Guangdong China.2003. 15. omas C.Bartee.Computer Architecture and Logic DesignJ.McGraw-Hill Inc. 1991.915 G Jiang M Zhang, X Xie, S Li.Application on tempera
37、ture control of DS18B2J.Control Engineering of China, 2003附录 全部程序清单#include<reg51.h>#include <intrins.h>#define uchar unsigned char #define uint unsigned intsbit DATA = P11; /DS18B20接入口uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/共阴极字型
38、码int temp; /温度值int ss;/中间的一个变量int dd;int j;uchar data b;/定时器中断次数uchar data buf4;/字型显示中间变量int alarmH=500; /默认报警值int alarmL=-10;/定义开关的接入口sbit k1=P25;/+sbit k2=P26;/-sbit k3=P27;/确认sbit k4=P24;sbit bell=P10;sbit HLight=P12;sbit LLight=P13;sbit Red=P16;sbit Green=P17;bit set=0;bit Flag=0;int n;/函数的声明区vo
39、id key_to1();void key_to2();void delay(uint);void key();void Show();/函数的定义区/*延时子函数*/void delay(uint num)while(num-) ;/DS18b20温度传感器所需函数,分为初始化,读写字节,读取温度4个函数Init_DS18B20(void) /传感器初始化 uchar x=0; DATA = 1; /DQ复位 delay(10); /稍做延时 DATA = 0; /单片机将DQ拉低 delay(80); /精确延时 大于 480us /450 DATA = 1; /拉高总线 delay(20
40、); x=DATA; /稍做延时后 如果x=0则初始化成功 x=1则初始化失败 delay(30);ReadOneChar(void) /读一个字节uchar i=0;uchar dat = 0;for (i=8;i>0;i-) DATA = 0; / 给脉冲信号 dat>>=1; DATA = 1; / 给脉冲信号 if(DATA) dat|=0x80; delay(8); return(dat);WriteOneChar(unsigned char dat)/写一个字节 uchar i=0; for (i=8; i>0; i-) DATA = 0; DATA = d
41、at&0x01; delay(10); DATA = 1; dat>>=1; delay(8);int ReadTemperature(void) /读取温度uchar a=0;uchar b=0;int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC); / 跳过读序号列号的操作WriteOneChar(0x44); / 启动温度转换Init_DS18B20();WriteOneChar(0xCC); /跳过读序号列号的操作WriteOneChar(0xBE); /读取温度寄存器等(共可读9个寄存器) 前两个就是温度a=Re
42、adOneChar();/低位b=ReadOneChar();/高位t=b;t<<=8;t=t|a;tt=t*0.0625;t= tt*10+0.5; return(t);void display00() /*显示负值子函数 dd=-(temp-1); buf1=dd/100;buf2=dd/100;buf3=dd%100/10;buf0=dd%10;/动态显示for(j=0;j<5;j+) P2=0xff; / 初始灯为灭的 P0=0x00;P2=0xfd; /显示小数点P0=0x80; /显示小数点delay(100); P2=0xff; / 初始灯为灭的 P0=0x00
43、; P2=0xf7; /片选LCD1 P0=0x40;delay(100); P2=0xff; P0=0x00; P2=0xfb; /片选LCD2 P0=tablebuf2;delay(100);P2=0xff; P0=0x00;P2=0Xfd; /片选LCD3P0=tablebuf3;delay(100);P2=0xff; P0=0x00;P2=0Xfe;P0=tablebuf0; /片选LCD4delay(100);P2=0xff; /显示正值子函数void display()buf1=temp/1000;/显示百位buf2=temp/100%10;/显示十位buf3=temp%100/10;/显示个位buf0=temp%10; /第4位 南北秒个位for(j=0;j<3;j+) P2=0xff; / 初始灯为灭的 P0=0x00;P2=0xfd; /显示小数点P0=0x8
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 石棉在环境保护领域中的应用考核试卷
- 船舶水上求生与逃生技术考核试卷
- 《睡眠障碍的影响与对策》课件
- 2025年防眩光太阳镜项目建议书
- 学生资助诚信教育体系构建
- 节能建筑生态景观施工技术考核试卷
- 《STEAMI-诊疗指南》课件
- 纤维增强合成材料的制造与应用考核试卷
- 《亚太财务报告》课件
- 室内设计材料汇报
- 国开电大应用写作形考任务6答案
- 房屋外立面改造施工组织设计方案
- 商品房交房验收项目表格
- TSG特种设备安全技术规范 TSG G7002-2015
- 中小学文言文阅读详解基础篇 56:《齐人攫金》
- 第十五届运动会场馆医疗保障工作方案
- 岗位风险辨识及风险辨识结果、风险控制措施培训记录
- 浅析幼儿攻击性行为产生的原因及对策
- 印染厂染色车间操作手册培训教材
- 《学弈》优质课教学课件
- 教学课件:《国际金融》
评论
0/150
提交评论