温湿度巡检仪实训报告.docx
《温湿度巡检仪实训报告.docx》由会员分享,可在线阅读,更多相关《温湿度巡检仪实训报告.docx(27页珍藏版)》请在冰豆网上搜索。
温湿度巡检仪实训报告
项目报告
课题名称
多路温度巡检仪
系/专业
能源与电气学院
班级
电气1061
学生姓名
孟飞
指导教师:
吴国中
前言…………………………………………………………………………3
第一章设计任务..................................................4
1.1设计题目........................................................4
1.2设计目的........................................................4
1.3设计任务........................................................4
第二章多路温湿度巡检仪……………………………………………5
2.1项目内容和要求…………………………………………………………………5
2.2绘制电路原理图………………………………………………6
2.3绘制印制电路板图………………………………………………7
第三章相关知识简介………………………………………………8
3.1AT89C51单片机………………………………………………………………8
3.2AHT11温湿度传感器………………………………………………10
3.3A\DTLC1543转换芯片……………………………………………………….13
3.4LM358集成运放………………………………………………………………16
第四章程序设计与调试…………………………………17
4.1控制要求………………………………………………………………………17
4.2技术参数………………………………………………………………………18
4.3程序设计………………………………………………………………………18
4.4调试………………………………………………………………………23
4.5系统功能及其操作说明-……………………………………………………23
4.6试记录及调试结果-………………………………………………………24
总结………………………………………………………………………………26
致谢………………………………………………………………………………27
参考文献………………………………………………………………………28
前言
本次实训是让学生了解小型单片机应用系统设计组成,掌握单片机定时器、中断、显示、键盘等单片机基本功能与典型接口应用,并能熟练地应用单片机仿真系统调试程序,使学生对单片机应用系统设计程序有一个基本了解,同时在实训环节中综合电路基础知识、查询资料、技术文件的编写等多项能力的训练,从而使学生体验一次完整的产品设计制作全过程,积累初步的职业素养。
学生可以从选择总体方案设计元器件入手,绘制电路原理图和印制电路板图,这些掌握后进行焊接工作,继而调试,总体而言就是这个流程,学生由浅入深,逐步学习,加强能力培养。
第一章设计任务
1.1设计题目
多路温度巡检仪
1.2设计目的
通过小型微机应用产品的设计与调试过程,运用《微机原理及接口技术》课程所学的基本知识,在设计中加以应用,进而得到理解、巩固和提高,通过实践的过程学习与掌握分析与解决实际问题的方法与手段,提高设计、编程与调试的实际动手能力,作为工程技术工作的一次基本训练。
1.3设计任务
设计一个以单片机为核心的多路温度巡回检测显示仪表系统。
通过多选一电子模拟开关及A/D转换器巡回采集各路温度传感及变送器的数据,进行信号处理及标度变换,以一定的节拍时间依序显示各检测回路的序号及温度值,并可通过按钮开关操控作冻结或切换显示,在单片机实验板台上模拟调试实现。
(一)基本设计要求
(1)、开机单片机实验板上的8位数码管、LED灯、蜂鸣器等设备进行自检自检。
(2)、八位LED7段数码管显示当前检测回路的序号、温度值及温度单位“oC”或其他界面信息,温度显示单位为oC,保留一位小数。
(3)、八路温度按节拍巡回检测显示,温度测量范围-50.0°C~+50.0°C。
(4)、设选用的温度传感变送器将检测的-50°C~+50°C温度变换为0~5V电压信号,综合误差为±0.5°C。
(5)、应采取数字滤波技术提高测量的稳定性采用每一路的AD信号采集4次滚动存放保存的4次的温度值都是最新的温度值然后对这4次的温度值求平均值。
(6)、设置一个“冻结”按钮开关以操控进入与退出当前回路的冻结显示方式,冻结显示期间每0.5S更新一次温度值,冻结的时候只是路数不再改变只是显示当前路的温度值。
(7)、设置一个“切换”按钮开关以操控强行切换显示下一检测回路号及温度值。
(8)、对开关量输入进行软件消抖动处理比如冻结的按键进行键盘消抖动处理。
(二)扩展功能(选做)
(1)、键盘设定巡回节拍范围为0.5S~5.0S,设定过程为按下功能键F后在选择一个操作的数值比如F1,先返回当前的节拍值,再进行按照数字键进行设定节拍在这个状态下按下S键保存新的节拍值且保持此节拍值1S后返回到巡显的状态,按下C键的时候直接返回到巡显状态。
(2)、F键按下无操作时间超过10分钟后自动恢复为基本的温度巡显方式。
(3)、超上限告警功能,键盘设定温度上限值范围为-50.0°C~+50.0°C,监测到某回路温度超上限时有相应的显示闪烁提示、LED指示、讯响告警及继电器触点输出控制功能。
(4)、实现带有回差的超上限告警功能,通过键盘设定回差值的范围为±0.1°C~±5.0°C。
(5)、增加温度超下限告警处理功能。
(6)、每巡回显示一遍,穿插一个节拍显示实时钟,通过键盘设定时间。
(7)、其他功能扩展。
第二章多路温湿度巡检仪
2.1项目内容和要求
主要项目任务有:
(1)根据项目技术要求,设计总体系统方案;
(2)根据方案选择传感器、处理器、相关芯片、继电器、电机等部件;
(3)使用AUTOCAD/PROTEL软件绘制控制系统电路原理图、印刷板图;
(4)焊接印刷电路板,调试线路;
(5)编写、调试应用程序。
功能块图
2.2绘制电路原理图
2.3绘制
2.3印制电路板图
第三章相关知识简介
3.1AT89C51单片机
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
外形及引脚排列如图所示
a:
主要特性:
·与MCS-51兼容
·4K字节可编程闪烁存储器
·寿命:
1000写/擦循环
·数据保留时间:
10年
·全静态工作:
0Hz-24MHz
·三级程序存储器锁定
·128×8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器
·5个中断源
·可编程串行通道
·低功耗的闲置和掉电模式
·片内振荡器和时钟电路
b;管脚说明:
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口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间
3.2AHT11温湿度传感器
1.电气参数
供电电压(Vin):
DC4.5-6
消耗电流:
约2mA(MAX3mA)
使用温度范围:
0-50℃;
使用湿度范围:
95%RH(非凝露);
检测湿度范围:
20%RH-90%RH;
湿度检测精度:
±5%RH(0-50℃,30%-80%RH);
标准湿度输出电压,根据其输出电压可以直接查表得出相应的湿度,0-50℃温度补偿,单片机校准线性输出,输出阻抗:
1K以上。
相对湿度(%RH)
20
30
40
50
60
70
80
90
输出电压(V)
0.6
0.9
1.2
1.5
1.8
2.1
2.4
2.7
2.使用注意事项
(1)避免结露情况下使用。
(2)推荐保存条件:
温度范围10℃~40℃
湿度范围60%RH以下
3.标准检测条件
大气中、温度25℃、供给电压5.0VDC作为基准。
特性测定,测定前先把温湿度模块放入25℃/0%RH的干燥空气中放置30分钟,湿度发生装置发生湿度60%RH,放入温湿度模块15分钟后测出电压值。
《测定装置》
分流式湿度发生装置:
SHR-1型
测定用表
:
福禄克45
3.3A\DTLC1543转换芯片
TLC1543是美国TI公司生产的多通道、低价格的模数转换器。
采用串行通信接口,具有输入通道多、性价比高、易于和单片机接口的特点,可广泛应用于各种数据采集系统。
TLC1543为20脚DIP封装的CMOS10位开关电容逐次A/D逼近模数转换器,引脚排列如图1所示。
其中A0~A10(1~9、11、12脚)为11个模拟输入端,REF+(14脚,通常为VCC)和REF-(13脚,通常为地)为基准电压正负端,CS(15脚)为片选端,在CS端的一个下降沿变化将复位内部计数器并控制和使能ADDRESS、I/OCLOCK(18脚)和DATAOUT(16脚)。
ADDRESS(17脚)为串行数据输入端,是一个4位的串行地址用来选择下一个即将被转换的模拟输入或测试电压。
DATAOUT为A/D转换结束3态串行输出端,它与微处理器或外围的串行口通信,可对数据长度和格式灵活编程。
I/OCLOCK为数据输入/输出提供同步时钟,系统时钟由片内产生。
芯片内部有一个14通道多路选择器,可选择11个模拟输入通道或3个内部自测电压中的任意一个进行测试。
片内设有采样-保持电路,在转换结束时,EOC(19脚)输出端变高表明转换完成。
内部转换器具有高速(10μS转换时间),高精度(10位分辨率,最大±1LSB不可调整误差)和低噪声的特点。
TLC1543是CMOS、10位开关电容逐次逼近模数转换器。
这些器件有三个输入端和一个三态输出端(片选CS、输入/输出I/OCLOCK、地址输入ADDRESS和数据输出DATAOUT)这样就和主处理器的串行口有一个直接的4线接口。
可以进行高速的数据传输。
除了进行高速的数据转换和通用的控制能力外,该器件有一个片内的14通道多路器,可以选择11个输入中的任意一个或3个内部自测试(self-test)电压中的一个。
采样和保持是自动的。
在转换结束时,“转换结束”(EOC)输出端变高以指示转换的完成。
器件中的转换器结合外部输入的差分高阻抗的基准电压,具有简化比率转换、刻度以及模拟电路与逻辑电路和电源噪声隔离的特点。
开关电容的设计可以使在整个温度范围内有较小的转换误差。
1.TLC1543的工作时序
其工作过程分为两个周期:
访问周期和采样周期。
工作状态由CS使能或禁止,工作时CS必须置低电平。
CS为高电平时,I/OCLOCK、ADDRESS被禁止,同时DATAOUT为高阻状态。
当CPU使CS变低时,TLC1543开始数据转换,I/OCLOCK、ADDRESS使能,DATAOUT脱离高阻状态。
随后,CPU向ADDRESS端提供4位通道地址,控制14个模拟通道选择器从11个外部模拟输入和3个内部自测电压中选通1路送到采样保持电路。
同时,I/OCLOCK端输入时钟时序,CPU从DATAOUT端接收前一次A/D转换结果。
I/OCLOCK从CPU接受10个时钟长度的时钟序列。
前4个时钟用4位地址从ADDRESS端装载地址寄存器,选择所需的模拟通道,后6个时钟对模拟输入的采样提供控制时序。
模拟输入的采样起始于第4个I/OCLOCK的下降沿,而采样一直持续6个I/OCLOCK周期,并一直保持到第10个I/OCLOCK的下降沿。
转换过程中,CS的下降沿使DATAOUT引脚脱离高阻状态并起动一次I/OCLOCK的工作过程。
CS的上升沿终止这个过程并在规定的延迟时间内使DATAOUT引脚返回到高阻状态,经过两个系统时钟周期后禁止I/OCLOCK和ADDRESS端。
2.软硬件设计要点
TLC1543的三个控制输入端CS、I/OCLOCK、ADDRESS和一个数据输出端DATAOUT遵循串行外设接口SPI协议,要求微处理器具有SPI接口。
但大多数单片机均未内置SPI接口(如目前国内广泛采用的MCS51和PIC系列单片机),需通过软件模拟SPI协议以便和TLC1543接口。
TLC1543芯片的三个输入端和一个输出端与51系列单片机的I/O口可直接连接。
软件设计中,应注意区分TLC1543的11个模拟输入通道和3个内部测试电压地址。
附表为模拟通道和内部电压测试地址。
程序软件编写应注意TLC1543通道地址必须为写入字节的高四位,而CPU读入的数据是芯片上次A/D转换完成的数据。
模拟输入通道选择
输入寄存器地址(2进制)
A0
0000
A1
0001
A2
0010
A3
0011
A4
0100
A5
0101
A6
0110
A7
0111
A8
1000
A9
1001
A10
1010
内部测试电压选择
输入地址
输出结果(16进制)
(Vref++Vref-)/2_
1011
200
Vref-
1100
000
Vref+
1101
3ff
注:
Vref+为加到TLC1543REF+端的电压,Vref-是加到REF-端的电压
TLC1543与89C51接口程序:
TLC1543与89C51接口程序应完全依照TLC1543的工作时序编写,主要由CONVETER子程序组成。
由于转换完成的数据为10位,软件编写时将数据的高位字节存放在2EH单元中,低位字节存放在2FH单元中。
其中R4、R3寄存器分别存放TLC1543的通道地址和数量;R1、R2寄存器存放A/D转换结果。
本例程序中89C51晶振为11.0592MHz.
3.4LM358集成运放
LM358内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。
它的使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。
LM358的封装形式有塑封8引线双列直插式和贴片式。
特性:
内部频率补偿
直流电压增益高(约100dB)
单位增益频带宽(约1MHz)
电源电压范围宽:
单电源(3—30V);
双电源(±1.5一±15V)
低功耗电流,适合于电池供电
低输入偏流
低输入失调电压和失调电流
共模输入电压范围宽,包括接地
差模输入电压范围宽,等于电源电压范围
输出电压摆幅大(0至Vcc-1.5V)
LM358运用:
红外线探测报警器
该报警器能探测人体发出的红外线,当人进入报警器的监视区域内,即可发出报警声,适用于家庭、办公室、仓库、实验室等比较重要场合防盗报警。
第四章程序设计与调试
4.1控制要求
多路温湿度巡检仪,该控制设备适用于仓库,温湿大棚等需保持一定的温湿度,模拟生态环境的场所。
通过控制加温、降温、送风、加湿等电机的运转,使场所的温湿度控制在预先设定的范围内。
要求控制系统可同时检测控制4个点,2个温度、2个湿度数据。
4.2技术参数
主要技术参数:
工作电源:
+5V;
工作环境:
温度0-80℃,湿度RH50-99%;
控制范围:
温度10-40℃(可调);湿度RH60-99%(可调);
控制精度:
温度≤±1℃;湿度≤RH±10%;
控制方式:
可通过键盘设置上下限预定值;
显示:
采用数码管显示;
4.3程序设计
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharcodedispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,
0xf8,0x80,0x90,0x89,0xbf,0xc6};
sbitEOC=P1^4;sbitCLK=P1^5;sbitADDR=P1^6;sbitCS=P1^7;sbitSDO=P3^3;sbitVOICE=P2^0;sbitLED=P2^0;
floattemp1,temp2,hum1,hum2;floathigher_limit=28.0,lower_limit=25.0;ucharaverage_count;uinttime_count;uintalarm_count;ucharflag_display;ucharflag_alarm;
voiddelay(uinti)
{while(i--);}
floatread1543(ucharport)
{floatad;uinti,ad1;ucharal=0,ah=0;CS=1;CLK=0;CS=0;port<<=4;
for(i=0;i<4;i++)
{ADDR=(bit)(port&0x80);CLK=1;delay(10);CLK=0;port<<=1;}
for(i=0;i<6;i++)
{CLK=1;CLK=0;}CS=1;
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();CS=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
for(i=0;i<2;i++)
{SDO=1;CLK=1;ah<<=1;if(SDO)ah|=0x01;CLK=0;}
for(i=0;i<8;i++)
{SDO=1;CLK=1;al<<=1;if(SDO)al|=0x01;CLK=0;}
CS=1;ad1=ah;ad1<<=8;ad1|=al;ad=(float)((float)5*(float)ad1/(float)1024);return(ad);}
voiddisplay(uchari)
{uchara,b,c,d;switch(i)
{case0:
{a=(uint)temp1/1000;b=(uint)temp1%1000/100;c=(uint)temp1%1000%100/10;d=(uint)temp1%1000%100%10;P2=0x80;P0=dispcode[1];delay(300);P2=0x00;P2=0x40;P0=dispcode[11];delay(300);P2=0x00;P2=0x20;
P0=dispcode[a];delay(300);P2=0x00;P2=0x10;P0=dispcode[b]&0x7f;delay(300);P2=0x00;P2=0x08;P0=dispcode[c];delay(300);P2=0x00;P2=0x04;P0=dispcode[d];delay(300);P2=0x00;P2=0x02;P0=dispcode[12];delay(300);P2=0x00;}break;case1:
{
a=(uint)hum1/1000;b=(uint)hum1%1000/100;c=(uint)hum1%1000%100/10;d=(uint)hum1%1000%100%10;P2=0x80;P0=dispcode[1];delay(300);
P2=0x00;P2=0x40;P0=dispcode[11];delay(300);P2=0x00;P2=0x20;
P0=dispcode[a];delay(300);P2=0x00;P2=0x10;P0=dispcode[b]&0x7f;
delay(300);P2=0x00;P2=0x08;P0=dispcode[c];delay(300);P2=0x00;
P2=0x04;P0=dispcode[d];delay(300);P2=0xff;P2=0x02;P0=dispcode[10];delay(300);P2=0x00;}break;case2:
{a=(uint)temp2/1000;b=(uint)temp2%1000/100;c=(uint)