8路温度巡回检测系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用单片机8031组成8路温度巡回检测系统
1.设计思路
温度传感部分:由于题目要求温度分辨率为0.5℃,温度测量范围为0~100℃,DS18B20智能温度传感器能够满足精度要求,同时,它能够以9~12位的数字值读数方式直接读出被测温度,故选择DS18B20温度传感器作为温度采集系统。
题目要求实现8路温度巡回检测系统,设计的检测系统通过一个温度传感器DS18B20、以及8031单片机实现,由于8031只有很小的RAM,没有ROM,故本系统需扩展一片程序存储器2732和一片静态数据存储器6116。
设计系统由DS18B20输入8031单片机,超出0~100℃范围后启动蜂鸣报警器报警,如未报警则进入内存,在8031单片机内设置一定时器程序,定时为一分钟,通过输入数据与已存数据的比较得到最大、最小值,同时将输入数值累加,在单片机内设置一计数器程序,将累加所得数值除以数值总数可得到一分钟内的平均值。
2.方案设计
2.1原理框图
8031单片机
蜂鸣器
存储器扩展
DS18B20智能温度传感器
图1系统设计原理框图
2.2 硬件选择
2.2.1 DS18B20智能温度传感器
DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。
与传统的热敏电阻相比,它能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
其特点如下:
(1)独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
(2)在使用中不需要任何外围元件。
(3)可用数据线供电,电压范围: 3.0~ 5.5 V。
(4)测温范围:-55 ~ 125 ℃。
固有测温分辨率为0.5 ℃。
(5)通过编程可实现9~12位的数字读数方式。
(6)用户可自设定非易失性的报警上下限值。
(7)支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点测温。
2.2.2 8031单片机
图2 8031原理图
8031内含4kb EEPROM程序存储器,具有功耗低、抗干扰能力强的特点,可安置于监测现场,数据存储器WM0016DRH是一种多功能非易失性SRAM,特点如下:高速高抗干扰自保持,不怕掉电,上下电百万次数据无丢失,断电保护10年有效,既可高速连续读写,也可任意地址单字节
操作,无需拼凑页面,随机读写不需等待,立即有效,输入输出
TTL/CMOS兼容,上电复位输出,掉电保护,内置看门狗,电源监测,不用外加电路和电池,且引脚与标准SRAM兼容。
8031单片机采用40引脚双列直插封装(DIP)形式,对于CMOS单片机除采用DIP形式外,还采用方形封装工艺。
其中管脚接线如下:Vss(20): 接地;Vcc(40):电源
+5V。
2.2.3 EPROM 2732及SRAM 6116
8031单片机,内部无ROM区,无论程序长短都必须扩展程序存储器,在选择程序存储器芯片时,首先必须满足程序容量,其次在价格合理情况下尽量选用容量大的芯片。
芯片少,接线简单,芯片存储容量大,程序调整余量大。
如估计程序总长3KB左右,最好扩展一片4KB的EPROM 2732,而不选用2片2716(2KB)。
图3 EPROM 2732管脚图
SRAM 6116它是一种采用CMOS工艺制成的SRAM,采用单一+5V供电,输入输出电平均于TTL兼容,具有低功耗操作方式。
当CPU没有选中该芯片时(CE=1),芯片处于低功耗状态,可以减少80%以上的功耗。
6116的管脚与EPROM 2732管脚兼容。
6116有11条地址线A0~A10;8条双向数据线I/O0~I/O7;/CE为片选线,低电平有效;/WE写允许线,低电平有效;/OE读允许线,低电平有效。
2.2.4 74LS373锁存器
74LS373是带三态缓冲输出的8D锁存器,由于单片机的三总线结构中,数据线与地址线的低8位共用P0口,因此必须用地址锁存器将地址信号和数据信号区分开。
74LS373的锁存控制端G直接与单片机的锁存控
制信号ALE相连,在ALE的下降沿锁存低8位地址。
图4 单片机ROM、RAM扩展电路
2.3 软件设计
2.3.1 报警上下限数值计算
DS18B20温度传感器具有如下特性:对温度测量后转化的数值(二进制)中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1。
在本系统中,检测测得数值小于0℃,或大于100℃时,则启动报警程序。
故DS18B20温度采集下限为0℃,当DS18B20采集到+100℃的实际温度后,输出为100/0.0625=0640H,则:计算可得温度采集上限为
0640H。
2.3.2 总流程图
温度值处理
是否小于0或者大于0640H
单片机发出温度转换命令
DS18B20温度转换
开始
显示温度
单片机读取温度
将所需数值保存入缓冲区
采集数据与已存数据比较、计算
蜂鸣器报警
N
Y
读取存储器中数值
图5 程序总流程图
2.3.3 主程序
MAIN:MOV R0,#A0H;数据暂存区首址
MOV R2,#00H;8路计数器初值
MOV R3,#00H;
MOV SP,#60H;设置堆栈指针
MOV T2MOD,#00H;将T2设置为初值自动装入模式0定时方式 MOV T2CON,#00H;
MOV TH2,#3CH;设置计数器初值
MOV TL2,#0B0H;
MOV RCAP2H,#3CH;
MOV RCAP2L,#0B0H;设置寄存器初值 SETB EA;
SETB ET2;
SETB TR2;
MOV A,R2;
MOVX @DPTR,A;
2.3.4 中断定时程序
INT_T2:
CLR TF2;撤销中断申请标志位
CPL P1.2;每隔50ms翻转P1.2电平2.3.5 读数程序
MOVX A,@DPTR;
MOVX @R0,A;
INC R2;
INC R0;
CJNE R2,08,DONE;
MOV R0,#A0H;
MOV R2,00H;
DONE:MOV A,R2;
MOVX @DPTR,A;
2.3.6 报警程序
CLR A;
SUBB A,@DPTR;
JNC NEXT;
SUBB @DPTR,0640H;
JNC NEXT;
2.3.7 比较与计算
MOV A,@R0;
MOV R7,#CCH;
MOV R3,#00H;
MOV R4,#00H;
CLR A;
LP:ADD R3,@R0;
CLR C;
SUBB A,@R0;
JNC NEXT;
MOV A,@R0;
SJMP NEXT;
NEXT:MOV R4,#00H;
SUBB @R2,A;
JNC NEXT2;
NEXT1:INC R0;
DJNZ R7,LP;
MOV 61H,A;
NEXT2: MOV R4,A;
3.单元电路设计
3.1温度采集单元
由于DS18B20的精度范围、测量温度范围满足题目所需要求,且其通过简单编程能够实现9~12位的数字读数,DS18B20采集温度后,转化后的数值存储在DS18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于或等于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。
题目要求超出0~100℃(即0~0640H)则报警,则可在软件中使DS18B20读出的数字数值与限值进行
比较从而实现报警,综合题目要求,选用DS18B20作为温度采集传感器。
图6 温度传感器
3.2 单片机及其存储器扩展电路单元
由于8031只有很小的RAM,没有ROM,故需将8031进行扩展,使用一片程序存储器2732和一片静态数据存储器6116进行扩展。
使用8255作为I/O扩展,同时使用地址锁存器74LS373,组合形成单片机及其存储单元扩展电路。
单片机接受到温度采集装置输入的数字量后,与系统初值进行比较,如数值小于0或大于0C0CH,即小于0℃或高于100℃是,则启动蜂鸣器进行报警,如数值在0000H~0C0CH内,即处于0~100℃之间,则进入程序,程序由T2产生周期为0.1S的方波,控制传感器,从而测得数据,将数据存储进扩展存储后,首先将第一路输入数值进行存储在位置1与位置3,计数器加1,第二路输入数值后与第一路进行比较,如大于,则替换,将较小数存储到第二位置,将两数之和放在第三位置,计数器再加1……,以此类推,一分钟后将位置三所得总数处以计数器的数值得到平均值放在位置四,则位置一、二、四所存数值为所要求的最高、最低以及平均值。
图8所示则为8031单片机及其存储单元扩展电路。
图7 8031单片机及其RAM、ROM扩展
3. 3报警电路
此设计从经济性、电路结构、系统性等各方面考虑,选择了蜂鸣器,只要按照极性要求加上合适的直流电压,就可以发出固有频率的声音。
在本系统中设计了越限报警,当温度低于用户设置的目标温度0度或高于100℃时蜂鸣器为连续不断的滴答滴答叫声。
单片机 P3.3输出高电平时,三极管导通,蜂鸣器工作发出报警声。
报警电路如下图7所示。
图8 报警电路图
4.设计小结
通过这次设计,我学习到了很多知识,以前对于很多内容的理解还只停留在表面,这次设计中,通过查阅资料,理论联系实际,学习到了很多在书本上学不到的知识,例如在设计中应如何考率选择器件,
DS18B20的基本应用,8031单片机的常识以及8031单片机的存储扩展等知识,在查阅资料的过程中,通过对于不同资料对于专业知识的讲解,我能够更好的掌握专业课的学习,从而能够提高自己的单片机、智能仪器等课程的学习能力,为以后的工作学习打下了基础,能够顺利的完成课程设计要非常感谢杜红棉老师在设计过程中给予我的帮助,在此不胜感激。
5.参考文献
(1)单片机原理与应用技术实践,卢胜利等编著,北京:机械工业出版社,2009.4;
(2)单片机原理与接口技术,牛昱光等编著,北京:电子工业出版社,2008.2;
(3)单片机原理与接口技术,黄菊生编著,北京:国防工业出版社,2007.9;
(4)单片机原理及C51应用,刘小成,吴清,夏春明著,上海:华东理工大学出版社,2009.1;
(5)单片机原理与应用实践指导,吴飞青等编著,北京:机械工业出版社,2009.2;
(6)51单片微型机原理和接口教程,周思跃编著,北京:化学工业出
版社,2009.11;
(7)单片机原理及应用,姜志海,黄玉清,刘连鑫编著,北京:电子工业出版社,2009.8;
(8)单片机应用技术教程,张洪润,朱博,马明鹤编著,北京:清华大学出版社,2008.11
(9)单片机原理与应用,张东亮编著,北京:人民邮电出版社,2009.10。