资源描述
前 言
单片机在电子产品中应用已经越来越广泛,在很多电子产品中也用到了温度检测和温度控制。伴随温度控制器应用范围日益广泛和多样性,多种适适用于不一样场所智能温度控制器应运而生。电子温度计出现,给人类生活带来了很多方便,使人类不管是在生活还是在工业方面全部有了很多便利之处。不过电子温度计关键应用还是在生产过程、试验室及研究所。电子温度计本身可由电源提供电压,用温度传感器检测温度,所以电子温度计属温度系统。控制理论从经典理论、现代理论已经发展到更优异控制理论,控制系统也由简单控制系统、大系统发展到今天复杂系统。本文讨论电子温度计温度控制系统AT89C2051单片机提取DS18B20转化成温度改变经过单片机内部A/D转化电路转化成数值并由数显电路显示出来。
在我们日常生活及多种生产中,常常要用到温度检测及控制,传统测温元件有热电偶和热电阻。而热电偶和热电阻测出通常全部是电压,再转换成对应温度,需要比较多外部硬件支持。其缺点以下:
1. 硬件电路复杂;
2. 软件调试复杂;
3. 制作成本高。
而传统温度计也有反应速度慢、读数麻烦、测量精度不高、误差大等缺点而下面利用集成温度传感器DS18B20设计并制作了一款基于AT89C514位数码管显示数字温度计,其电路简单,软硬件结构模块化,易于实现。其中温度传感器DS18B20,它集温度测量、A/D转换于一体,其测量范围宽(-55℃~125℃),DS18B20是一款含有单总线结构器件。
由DS18B20组建温度测量单元体积小,便于携带、安装。同时,DS18B20输出为数字量,能够直接和单片机连接,无需后级A/D转换,控制简单。
第一章 总体设计方案
1.1 系统设计标准
通常系统设计标准包含安全性(稳定抗干扰性),操作便利性(人性化),实时性,通用性和经济性。
(1)安全可靠
首先要选择高性能AT89C51单片机,确保在恶劣工业环境下能正常运行。其次是设计可靠控制方案,并含有多种安全保护方法,如报警、事故估计、事故处理和不间断电源等。
(2)操作维护方便
操作方便表现在操作简单、直观形象和便于掌握且不强求操作工要掌握计算机知识才能操作。
(3)实时性强
选择高性能AT89C51单片机实时性,表现在内部和外部事件能立即地响应,并做出对应处理。
(4)通用性好
系统设计时应考虑能适应不一样设备和多种不一样设备和多种不一样控制对象,并采取积木式结构,根据控制要求灵活组成系统。关键表现在两个方面:一是硬件板设计采取标准总线结构(如PC总线),配置多种通用模板,方便扩充功效时,只需增加功效模板就能实现;二是软件功效模块或控制算法采取标准模块结构,用户使用时不需要二次开发,只需多种功效模块,灵活地进行控制系统组态。
(5)经济效益高
1.2 系统设计步骤
(1)系统总体方案设计、
(2)方案论证评审
硬件和软件分别细化设计
硬件和软件分别调试
系统组装
(3)离线仿真和调试阶段
1.3 系体总体方案设计和框图设计
(1)系统关键功效、技术指标、原理性方框及文字说明。
(2)系统硬件结构几配置,关键软件功效、结构几框图。
(3)确保性能指标要求技术方法。
(4)抗干扰性和可靠性设计。
(5)工艺要求
温度数码管显示。
调整温度超调量小于30%。
实现温度闭环控制,控制温度误差范围≤±0.1℃。
温度范围:-50℃ ~ 125℃。
供电电压:交流5V。
方案一:方案一:考虑到用温度传感器,在单片机电路设计中,大多全部是使用传感器,所以这是很轻易想到,所以能够使用热敏电阻之类器件利用其感温效应,感温电路比较麻烦,进行A/D转换,才能够满足设计要求。
方案二:因为本设计是测温电路,首先要选择高性能AT89C51单片机,确保在恶劣工业环境下能正常运行。单片机AT89C51含有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统设计需要,很适合便携手持式产品设计使用系统可用二节电池供电。测温传感器使用二极管结电压改变数值来转化成温度改变,在将随被测温度改变电压或电流采集过来,进行A/D转换后,就能够用单片机进行数据处理,在显示电路上,就能够将被测温度显示出来。
从以上两种方案,很轻易看出,采取方案二,电路比较简单,软件设计也比较简单,故采取了方案二。
考虑到方案中制作数字温度计,在单片机电路设计中,大多全部是使用传感器,这是很轻易想到,所以能够采取一只温度传感器DS18B20,此传感器,能够很轻易直接读取被测温度值,进行转换,就能够满足设计要求。
温度计电路设计总体设计方框图图1所表示,控制器采取单片机AT89C51,温度传感器采取DS18B20,用4位LED数码管以串口传送数据实现温度显示。
主 控 制 器
LED显示
单片机复位
报警点按键调整
温 度 传 感 器
时钟振荡
图1.1 总体设计方框图
第二章 硬件设计
2.1关键器件说明
2.1.1 主控制器
单片机AT89S51含有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统设计需要,很适合便携手持式产品设计使用系统可用二节电池供电。图2.1所表示。
图 2.1
(1)关键特征:
·和MCS-51 兼容
·4K字节可编程闪烁存放器
寿命:1000写/擦循环
数据保留时间:
·全静态工作:0Hz-24Hz
·三级程序存放器锁定
·128*8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器
·5个中止源
·可编程串行通道
·低功耗闲置和掉电模式
·片内振荡器和时钟电路
(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口被外部下拉为低电平时,将输出电流,这是因为内部上拉缘故。在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口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,因为外部下拉为低电平,P3口将输出电流(ILL)这是因为上拉缘故。
P3口也可作为AT89C51部分特殊功效口,以下表所表示:
口管脚 备选功效
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:当访问外部存放器时,地址锁存许可输出电平用于锁存地址地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变频率周期输出正脉冲信号,此频率为振荡器频率1/6。所以它可用作对外部输出脉冲或用于定时目标。然而要注意是:每当用作外部数据存放器时,将跳过一个ALE脉冲。如想严禁ALE输出可在SFR8EH地址上置0。此时, ALE只有在实施MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。假如微处理器在外部实施状态ALE严禁,置位无效。PSEN:外部程序存放器选通信号。在由外部程序存放器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存放器时,这两次有效/PSEN信号将不出现。
EA/VPP:当/EA保持低电平时,则在此期间外部程序存放器(0000H-FFFFH),不管是否有内部程序存放器。注意加密方法1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存放器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:反向振荡放大器输入及内部时钟工作电路输入。
XTAL2:来自反向振荡器输出。
2.1.2 显示器
显示电路采取3位共阳LED数码管,利用动态扫描方法,从P0口输出段码,P2口P2.5、P2.6、P2.7输出位码。
(1)LED数码有共阳和共阴两种,把这些LED发光二极管正极接到一块(通常是拼成一个8字加一个小数点)而作为一个引脚,为共阳管。以下图2.2、2.3所表示:
图2.2 图2.3
2.1.3 温度传感器
DS18B20温度传感器是采取美国DALLAS企业生产 DS18B20可组网数字温度传感器芯片,经焊接,外加不锈钢保护管封装而成,含有耐磨耐碰,体积小,使用方便,封装形式多样,适适用于多种狭小空间设备数字测温和控制领域,而且可依据实际要求经过简单编程实现9~12位数字值读数方法。
①::技术性能描述
* 独特单线接口方法,DS1820在和微处理器连接时仅需要一条口线即可实现微处理器和DS1820双向通讯,在使用中不需要任何外围元件。
* 测温范围 -55℃~+125℃,固有测温分辨率0.5℃。 -
* 支持多点组网功效,多个DS1820能够并联在唯一三线上,实现多点测温。
* 工作电源: 3~5V/DC
* 测量结果以9位数字量方法串行传送。
* 不锈钢保护管直径 Φ6
* 适适用于1/2”, 3/4”, 1”, DN40~DN250多种介质工业管道和狭小空间设备测温
②:应用范围
* 该产品适适用于冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温和控制领域
* 轴瓦,缸体,纺机,空调,等狭小空间工业设备测温和控制。
* 汽车空调、冰箱、冷柜、和中低温干燥箱等。
* 供热/制冷管道热量计量,中央空调分户热能计量和工业领域测温和控制
③.DS18B20性能特点以下:
*独特单线接口仅需要一个端口引脚进行通信;
*多个DS18B20能够并联在惟一三线上,实现多点组网功效;
*无须外部器件;
*可经过数据线供电,电压范围为3.0~5.5V;
*零待机功耗;
*温度以9或12位数字;
*用户可定义报警设置;
*报警搜索命令识别并标志超出程序限定温度(温度报警条件)器件;
*负电压特征,电源极性接反时,温度计不会因发烧而烧毁,但不能正常工作;
I/O
C
64
位
ROM
单
线
接
口
高速缓存
存放器和控制逻辑
温度传感器
高温触发器TH
低温触发器TL
配置寄存器
8位CRC发生器
Vdd
DS18B20采取3脚PR-35封装或8脚SOIC封装,其内部结构框图图2.4所表示。
图2.4 DS18B20内部结构
DS18B20内部结构关键由四部分组成:
64位光刻ROM、温度传感器、非挥发
温度报警触发器TH和TL、配置寄存器。
DS18B20管脚排列图2.5所表示:
图2.5
DS18B20温度传感器内部存放器还包含一个高速暂存RAM和一个非易失性可电擦除EERAM。高速暂存RAM结构为8字节存放器,结构图2.6所表示。头2个字节包含测得温度信息,第3和第4字节TH和TL拷贝,是易失,每次上电复位时被刷新。第5个字节,为配置寄存器,它内容用于确定温度值数字转换分辨率。DS18B20工作时寄存器中分辨率转换为对应精度温度数值。该字节各位定义图2.7所表示。低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换精度位数,来设置分辨率。
由表2.1可见,DS18B20温度转换时间比较长,而且分辨率越高,所需要温度数据转换时间越长。所以,在实际应用中要将分辨率和转换时间权衡考虑。
表2.1 DS18B20温度转换时间表
R1
R0
分辨率/位
温度最大转换时间/MS
0
0
9
93.75
0
1
10
187.5
1
0
11
375
1
1
12
750
高速暂存RAM第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面全部8字节CRC码,可用来检验数据,从而确保通信数据正确性。
当DS18B20接收到温度转换命令后,开始开启转换。转换完成后温度值就以16位带符号扩展二进制补码形式存放在高速暂存存放器第1、2字节。单片机能够经过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB式表示。
当符号位S=0时,表示测得温度值为正值,能够直接将二进制位转换为十进制;当符号位S=1时,表示测得温度值为负值,要先将补码变成原码,再计算十进制数值。表2是一部分温度值对应二进制温度数据。
DS18B20完成温度转换后,就把测得温度值和RAM中TH、TL字节内容作比较。若T>TH或T<TL,则将该器件内报警标志位置位,并对主机发出报警搜索命令做出响应。所以,可用多只DS18B20同时测量温度并进行报警搜索。
在64位ROM最高有效字节中存放有循环冗余检验码(CRC)。主机ROM前56位来计算CRC值,并和存入DS18B20CRC值作比较,以判定主机收到ROM数据是否正确。
另外,因为DS18B20单线通信功效是分时完成,它有严格时隙概念,所以读写时序很关键。系统对DS18B20多种操作按协议进行。操作协议为:初使化DS18B20(发复位脉冲)→发ROM功效命令→发存放器操作命令→处理数据。分别说明以下:
(1)初始化 单总线全部处理均从初始化开始。初始化过程是主机经过向作为从机DS18B20芯片发一个有时间宽度要求初始化脉冲实现。初始化后,才可进行读写操作。
(2) ROM操作命令 总线主机检测到DS18B20存在 便能够发出ROM操作命令之一 这些命令表2.2:
表2.2 ROM操作命令
指 令
代 码
Read ROM(读ROM)
[33H]
Match ROM(匹配ROM)
[55H]
Skip ROM(跳过ROM]
[CCH]
Search ROM(搜索ROM)
[F0H]
Alarm search(告警搜索)
[ECH]
(3) 存放器操作 命令如表2.3:
表2.3 存放器操作命令
指令
代码
Write Scratchpad(写暂存存放器)
[4EH]
Read Scratchpad(读暂存存放器)
[BEH]
Copy Scratchpad(复制暂存存放器)
[48H]
Convert Temperature(温度变换)
[44H]
Recall EPROM(重新调出)
[B8H]
Read Power supply(读电源)
[B4H]
(4)时序 主机使用时间隙(time slots)来读写DS18B20数据位和写命令字位
①初始化
图2.7 初始化时序
时序见图2.7,主机总线to时刻发送一复位脉冲(最短为480us低电平信号),接着在tl时刻释放总线并进入接收状态。DS18B20在检测到总线上升沿以后等候15-60us,接着DS18B20在t2时刻发出存在脉冲(低电平 连续60-240 us)。图中虚线所表示:
②写时间隙
图2.8.1 写0时序 图2.8.2 写1时序
当主机总线t o时刻从高拉至低电平时,就产生写时间隙见图2.8.1和图2.8.2。从to时刻开始15us之内应将所需写位送到总线上,DSl820在t o后15-60us间对总线采样。若低电平,写入位是0。见图2.5.1。若高电平写入位是1见图2.5.2。连续写2位间间隙应大于1us。
③读时间隙
见图2.9,主机总线to时刻从高拉至低电平时,总线只须保持低电平l us。以后在t1时刻将总线拉高,产生读时间隙,读时间隙在t1时刻后t 2时刻前有效,t 2距to为15us。也就是说t 2时刻前主机必需完成读位,并在t o后60us一120us内释放总线,读位子程序(读得位到C中)。
图2.9 读时序
DSl820多路测量介绍
初始化
跳过ROM
变换温度
等候1S
初始化
设置1820个数
匹配ROM
读存放器
存放在缓冲区指针增1
初始化
b-1=0?
否
是
图2.10 DSl820原理框图
每一片DSl820在其ROM中全部存有其唯一48位序列号,出厂前已写入片内ROM 中,主机在进入操作程序前必需逐一接入DS18B20用读ROM(33H)命令将该DS18B20序列号读出并登录。当主机需要对众多在线DS18B20某一个进行操作时,首先要发出匹配ROM命令(55H),紧接着主机提供64位序列(包含该DS18B2048位序列号)。以后操作就是针对该DS18B20。而所谓跳过ROM命令即:MOV A,#0CCH。
图2.10中先有跳过ROM,即是开启全部DS18B20进行温度变换,以后经过匹配ROM 再逐一地读回每个DS18B20温度数据。在DS18B20组成测温系统中,主机在发出跳过ROM命令以后,再发出统一温度转换开启码44H,就能够实现全部DS18B20统一转换,再经过1s后,就能够用极少时间去逐一读取。这种方法使其T值往往小于传统方法。(因为采取公用放大电路和A/D转换器只能逐一转换)。显然通道数越多,这种省时效应就越显著。
DS1820使用中注意事项
DS1820即使含有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面问题:
(1)较小硬件开销需要相对复杂软件进行赔偿,因为DS1820和微处理器间采取串行数据传送,所以,在对DS1820进行读写编程时,必需严格确保读写时序,不然将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS1820操作部分最好采取汇编语言实现。
(2)在DS1820相关资料中均未提及单总线上所挂DS1820数量问题,轻易使人误认为能够挂任意多个DS1820,在实际应用中并非如此。当单总线上所挂DS1820超出8个时,就需要处理微处理器总线驱动问题,这一点在进行多点测温系统设计时要加以注意。
(3)连接DS1820总线电缆是有长度限制。试验中,当采取一般信号电缆传输长度超出50m时,读取测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采取每米绞合次数更多双绞线带屏蔽电缆时,正常通讯距离深入加长。这种情况关键是由总线分布电容使信号波形产生畸变造成。所以,在用DS1820进行长距离测温系统设计时要充足考虑总线分布电容和阻抗匹配问题。
(4)在DS1820测温程序设计中,向DS1820发出温度转换命令后,程序总要等候DS1820返回信号,一旦某个DS1820接触不好或断线,当程序读该DS1820时,将没有返回信号,程序进入死循环。这一点在进行DS1820硬件连接和软件设计时也要给一定重视。
测温电缆线提议采取屏蔽4芯双绞线,其中一对线接地线和信号线,另一组接VCC和地线,屏蔽层在源端单点接地。
2.1.4 稳压电源7805
7805管脚图图2.11所表示:
图2.11
2.2各部分电路说明
2.2.1单片机控制部分
在本设计中,采取了AT89C51单片机作为本电路关键电路设计。AT89C51是一个带4K字节闪烁可编程可擦除只读存放器(FPEROM—Falsh Programmable and Erasable Read Only Memory)低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一个带2K字节闪烁可编程可擦除只读存放器单片机。单片机可擦除只读存放器能够反复擦除100次。该器件采取ATMEL高密度非易失存放器制造技术制造,和工业标准MCS-51指令集和输出管脚相兼容。因为将多功效8位CPU和闪烁存放器组合在单个芯片中,ATMELAT89C51是一个高效微控制器,AT89C2051是它一个精简版本。AT89C单片机为很多嵌入式控制系统提供了一个灵活性高且价廉方案。
(1)振荡器特征:
XTAL1和XTAL2反向放大器输入和输出。
该反向放大器能够配置为片内振荡器。石晶振荡和陶瓷振荡均可采取。如采取外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要经过一个二分频触发器,所以对外部时钟信号脉宽无任何要求,但必需确保脉冲高低电平要求宽度。
(2)单片机芯片擦除:
整个PEROM阵列和三个锁定位电擦除可经过正确控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存放字节被反复编程以前,该操作必需被实施。
AT89C51稳态逻辑能够在低到零频率条件下静态逻辑,支持两种软件可选掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中止系统仍在工作。在掉电模式下,保留RAM内容而且冻结振荡器,严禁所用其它芯片功效,直到下一个硬件复位为止。
(3)单片机时钟电路
图2.12片内振荡电路时钟电路
AT89C1单片机内部振荡电路是一个高增益反向放大器,引线XTAL1和XTAL2分别是放大器输入端和输出端。单片机内部即使有振荡电路,但要形成时钟,外部还需附加电路。AT89C51时钟产生方法有两种:内部时钟电方法和外部时钟方法。因为外部时钟方法用于多片单片机组成系统中,所以此处选择内部时钟方法。即利用其内部振荡电路在XTAL1和XTAL2引线上外接定时元件,内部振荡电路产生自激振荡。最常见是在 XTAL1和XTAL2之间接晶体振荡器和电路组成稳定自激振荡器,图2.13电路所表示为单片机最常见时钟振荡电路接法,其中晶振可选择振荡频率为6MHz石英晶体,电容器通常选择30PF左右。
(4)单片机复位电路
图2.13 AT89C51复位电路
本设计中AT89C51是采取上电自动复位和按键复位两种方法。最简单复位电路图2.13所表示。上电瞬间,RC电路充电,RST引线端出现正脉冲,只要RST端保持10ms以上高电平,就能使单片机有效地复位。其中R1和R2分别选择200Ω和1KΩ电阻,电容器通常选择22μF。
(5)AT89C51最小应用系统
AT89C51是片内有程序存放器单片机,要组成最小应用系统时只要将单片机接上外部晶体或时钟电路和复位电路即可,图2.14所表示。这么组成最小系统简单可靠,其特点是没有外部扩展,有可供用户使用大量I∕O线。
图2.14 AT89C51单片机组成最小系
2.2.2传感器数据采集电路
传感器数据采集电路关键指DS18B20温度传感器和单片机接口电路。DS18B20能够采取两种方法供电,一个是采取电源供电方法,图2.15所表示,此时DS18B201脚接地,2脚作为信号线,3脚接电源。另一个是寄生电源供电方法,图2.15所表示单片机端口接单线总线,为确保在有效DS18B20时钟周期内提供足够电流,可用一个MOSFET管来完成对总线上拉。当DS18B20处于写存放器操作和温度A/D转换操作时,总线上必需有强上拉,上拉开启时间最大为10us。采取寄生电源供电方法时VDD端接地。因为单线制只有一根线,所以发送接口必需是三态。考虑到实际应用中寄生电源供电方法适应能力差且易损坏,此处采取电源供电方法,I/O口接单片机P2.0口。
图2.15 电源供电方法
2.2.3 显示电路
显示电路是采取P0口输出段码至LED,P2口控制位选通动态扫描显示方法,三只数码管用NPN型三极管驱动,这种显示方法最大优点是显示清楚,软件设计简单。图2.16所表示:
图2.16 显示电路
2.3主板电路
图2.17 主板电路
系统整体硬件电路包含传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路,电源电路等。图2.17所表示
图2.17中有四个独立式按键能够分别调整温度计上下限报警设置,能够任意调整报警上下限。图中蜂鸣器能够在被测温度不在上下限范围内时,发出报警鸣叫声音。LED数码管将目前被测温度值显示,从而测出被测温度值。
图2.17中按健复位电路是上电复位加手动复位,使用比较方便,在程序跑飞时,能够手动复位,这么就不用在重起单片机电源,就能够实现复位。
第三章 软件设计
系统程序关键包含主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。
N
Y
N
Y
按键子程序
初始化
得出温度总子程序
报警子程序
调显示子程序
S1键按下否?
开始
温度比较子程序
是否超出上下限
返 回
图3.1 主程序步骤
3.1主程序
主程序关键功效是负责温度实时显示、读出并处理DS18B20测量目前温度值,温度测量每1s进行一次。这么能够在一秒之内测量一次被测温度,其程序步骤见图3.1所表示。
3.2读出温度子程序
读出温度子程序关键功效是读出RAM中9字节,在读出时需进行CRC校验,校验有错时不进行温度数据改写。其程序步骤图图3.2所表示
发DS18B20复位命令
发跳过ROM命令
发读取温度命令
读取操作,CRC校验
9字节完?
CRC校验正?确?
移入温度暂存器
结束
N
N
Y
Y
图3.2 读出温度子程序步骤
3.3温度转换命令子程序
温度转换命令子程序关键是发温度转换开始命令,当采取12位分辨率时转换时间约为750ms,在本程序设计中采取1s显示程序延时法等候转换完成。温度转换命令子程序步骤图,图3.3所表示
发DS18B20复位命令
发跳过ROM命令
发温度转换开始命令
结束
图3.3 温度转换步骤图
3.4计算温度子程序
计算温度子程序将RAM中读取值进行BCD码转换运算,并进行温度值正负判定,其程序步骤图图3.4所表示。
开始
N
温度零下?
Y
温度值取补码置“-”标志
置“+”标志
计算小数位温度BCD值
计算整数位温度BCD值
结束
图3.4 计算温度步骤图
3.5 温度数据显示子程序
显示数据子程序关键是对显示缓冲器中显示数据进行刷新操作,查表送段码至LED,开位码显示,采取动态扫描方法。
第四章 实物制作和调试说明
4.1原材料选择和采购
此次设计在原材料选择和采购上做到了设计最优化,即用最小开支,取得性价比较高元器件和材料。
设计中,印刷电路板采取单面板,给人看起来没有太复杂感觉。选元器件时,尽可能选择能使电路简化器件。比如,为了不增大电路板体积及减小功耗,本设计采取ATMEL企业89S51单片机,体积小,工作电压低。
4.2印刷电路板设计和制作
电路板设计和制作是整个电路制作过程中比较关键一步,假如电路板做不好,再好电路设计也不行。下面就对简单电路板设计及制作过程做一个简单介绍。
1、利用Protel 99SE画原理图。在画原理图时候为了电路板比很好看,要注意布局,同时还得注意元件封装,命名等。画好原理图后要对其进行电气检测,检验原理图是否有错,同时还要创建网络表为下一步工作做好准备。
2、PCB版图设计。在对PCB图设计时首先要添加封装库,这么原理图中给封装才能有效,然后调入网络表看原理图封装,命名等是否有错,假如没错便可进行下一步操作。对其进行布线,首先先对布线规则作部分必需设置,如焊盘大小,导线粗细等。做好这些设置后便可进行自动布线,自动布线后假如布线不是很理想还可用手动布线进行手动修改,这么PCB图就画好了。
3、电路板制作。把设计布局好PCB图打印出来以后,然后进行压板、腐蚀、钻孔。注意,腐蚀之前要检验是否有断线及焊盘脱落等。
4、元件焊接。元件焊接时候要先查看跳线,首先焊接全部跳线,其次再焊接分离元件,最终焊接集成块和外接引线。当然为了美观在布线中最好不要出现跳线。
5、整体检验。查看是否有断线和虚焊等。
6、烧录程序
4.3 单片机测试
判定单片机芯片立即钟系统是否正常工作有一个简单措施,就是用万用表测量单片机晶振引脚(18、19脚)对地电压,以正常工作单片机用数字万用表测量为例:18脚对地约2.24V,19脚对地约2.09V。对于怀疑是复位电路故障而不能正常工作单片机也能够采取模拟复位方法来判定,单片机正常工作时第9脚对地电压为零,能够用导线短时间和+5V连接一下,模拟一下上电复位,假如单片机能正常工作了,说明这个复位电路有问题。
4.4 硬件及软件调试
硬件调试,第一步是目测,在印好电路板以后,先检验印制线是否有断线、是否有毛刺、是否和其它线或焊盘粘连、焊盘是否有脱落、过孔是否有未金属化现象。而在目测过程中,我们发觉有一条印制线断开,所以我们用焊锡使这条断线连在一起。第二步是用万用表测量。在目测完以后,利用万用表来测量连线和接点,检验它们通断状态是否和设计一样。再检验多种电源线和地线是否有短路现象,在检验过程中,发觉不管是连线还是接点全部符合设计要求,电源和地线也没有短路现象。第三步是加电检验。给印制板加电时,我们检验到器件电源端符合要求电压值+5V,同时接地端电压为0。第四步是联机检验。利用系统和单片机开发系统用仿真电缆连接起来,发觉联机检验完后以上是连接全部正确、通畅、可靠。
软件调试,第一步是在含有汇编软件主机上和用户系统连接起来,进行调试准备。第二步是单步运行。第三步是系统连调,即进行软件和硬件联合调试。经调试,软件运行良好。
4.5整机调试和测试
首先是测试显示电路正确性,依据硬件写好一段显示程序,写入单片机中。安装好硬件,上电,显示正常,达成预期效果。证显著示电路正常。按下复位按键,LED无显示,松开,显示正常,证实复位电路正常。
然后测试得到温度程序,将初始化程序,DS18B20正常工作初始化程序、写DS18B20程序、读DS18B20程序,得到温度子程序,温度转换子程序,数据转换子程序,显示子程序正确编排后写入单片机中,上电,显示不正常。重新读取源程序,经检验后发觉问题在于DS18B20初始化程序有错,修改后重新编译并写入单片机。上电后,显示目前温度。证实温度传感器DS18B20工作正常,各部分子程序运行正常。
最终是按键子程序及报警子程序调试,将按键子程序及报警子程序及上述程序正确编排后,写入单片机中,上电后,各个部分工作正常,在测得目前温度超出设定温度上下限后,蜂鸣器发出报警声,调试基础成功。但以后发觉,按键要在按下1S后才反应,再次研读程序发觉原因在于按键程序采取扫描方法,程序每实施一遍才扫描按键一次。进而到考虑采取中止方法处理此问题,但因为DS18B20正常工作有严格时序限制,不然不能正常工作,而中止则在很大可能上会影响到DS18B20正常工作。在尝试并采取中止方法却失败后,决定仍采取扫描方法。以后仔细排查发觉按键反应迟缓是因为显示程序占用时间过长造成,修改显示程序而且在主程序和按键子程序中增加调用显示程序次数,问题得以处理。至此,此次设计调试部分完成。设计全部功效全部得以实现。
第五章 使用说明书
本电路额定工作直流电压为+5V,有极性判别保护功效,采取7805集成稳压芯片以确保电路供电稳定,用户输入电源在7-25V均可正常工作。
电路中有五个按键,从左到右依次为S1、S2、S3、S4、RESET,介绍以下:
S1为温度上下限设置状态退出或确定按键
S2为设置温度上下限+键,每按下一次上下限值加一
S3为设置温度上下限-键,每按下一次上下限值减一
S4为设置温度上下限设置状态进入按键,第一次按下进入低限设置,按下S4后,再次按下S1进入高限设置。
RESET为复位按键
使用方法及报警电路说明:
接通电源,红色指示灯亮,表明电源正常。此时数码管应显示初值025,因为显示时间稍短,一闪即过。接下来显示目前温度,若不显示则说明硬件有问题,此时蜂鸣器将报警,绿色指示灯也会点亮。硬件正常,LED就会显示目前温度。若此时检测到目前环境温度不在原来设定上下限范围之内,蜂鸣器也将报警同是绿灯点亮。直到采取方法改变环境温度在上下限范围内或调整温度上下限。
第六章 参考文件
[1]陈权昌,李兴富·单片机原理和应用·华南理工大学出版社,
[2]陈明.protel 99se原理图和pcb设计教程.北京:机械工业出版社,
[3]阎石.数字电子技术基础(第四版). 北京:高等教育出版社,1997
[4]王恩荣.MCS-51单片机应用技术.北京:化学工业出版社,
[5]黄河.郭纪林.单片机原理及应用.大连:大连理工大学出版社,
[6]周贵连. 电子技术基础. 机械工业出版社,
[7]孙萍·电子技术专业英语·机械工业出版社,6月
[8]李广弟. 单片机基础. 北京:北京航空航天大学出版社,1994
[9]阎石. 数字电子技术基础. 北京:高等教育出版社,1989
[10]栾桂冬·传感器及其应用·西安电子科技大学出版社,
[11]周荷琴,吴秀清,微型计算机原理和接口技术。合肥,中国科学技术大
展开阅读全文