温度采集与显示系统方案_第1页
温度采集与显示系统方案_第2页
温度采集与显示系统方案_第3页
温度采集与显示系统方案_第4页
温度采集与显示系统方案_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

温度采集与显示系统的设计姓名:学号:专业.专注摘要:由于人体不能精准的感受到环境中的温度,而温度采集系统能够准确、及时、全面地反映环境质量现状及发展趋势,因而本论文设计了基于8051单片机控制技术的温度采集与显示系统。该系统通过温度传感器将检测到的温度信号转换成电压信号,该模拟量电压经8路AD0809输出数字量电压值送给单片机。根据AD值与温度之间的关系利用查表和插值法得出温度值。并且这些数值都能实时显示在显示屏上。一、设计内容及意义温度采集与显示系统在人们的日常生活中的应用越来越广泛,如花卉栽培温湿度控制、大棚温室控制系统、粮库温室控制系统、现代化居室温湿度控制等等。随着半导体技术的不断发展,热敏电阻作为一种新型感温元件应用越来越广泛。他具有体积小、灵敏度高、重量轻、热惯性小、寿命长以及价格便宜等优点。单片机在测控系统中的作用是对信息进行处理、运算和发出控制命令等,但所要处理的信息是从外界拾取的,拾取的信号可以分为开关量和模拟量两种。开关量只需放大、整形和电平转换等处理后,即可直接送入单片机系统。但输入量如果是模拟量,处理的复杂程度就大大地增加了,由于模拟输入信号一般很微弱,需要进行放大,对于一个测控范围较大的仪器,还要有多级可变放大电路。另外,在放大有用信号的同时,干扰信号也被同时放大,还要进行必要的滤波处理。所以要设计出一个真正实用的单片机测控系统,必须先设计好适用的前向通道。根据被测对象输出信号的类型、大小、数量不同,前向通道的结构类型也各不相同。本系统基于51单片机设计的温度采集与显示系统是A/D转换器、热敏电阻温度传感器、LCD显示屏及相应接口的综合应用。二、 整体设计原理及方案图2.1整体系统框图该系统是以NTC型热敏电阻为传感器的信号采集端,将温度信号转换成电压信号,再经ADC0809进行模数转换,进一步将电压信号转换成单片机可以处理的00H~FFH数字信号,并保证温度与数字信号实时同步,经单片机8051进行数据处理(查表和线性插值法),再进一步转换成与实际温度相符合的数字信号,并在LCD显示屏上实时跟踪显示。1、显示模块方案选择:方案一:数码管显示,采用动态扫描的方式。优点是编程容易,硬件电路调试简单,显示两部分也比较好控制。缺点是显示的内容不够丰富,本系统需要实时显示电压AD值,放大后的十进制值以及温度值,实验台上提供的数码管数就达不到实时显示的效果。方案二:用LCD液晶显示器显示,优点是功耗低,还能显示更多的字符,有着良好的人机界面,缺点是控制比较复杂。实验台上提供的是OCMJ2*8的中文模块系列液晶显示器,内含汉字字库和英文字库,可以实汉字、ASCII码的同屏显示,能够达到实时显示的效果。2、AD0809设计AD0809型8位MOS型A/D转换器,可实现8路模拟信号的分时采集,片内有8路模拟选通开关,以及相应的通道地址锁存用译码电路,其转换时间为100微秒左右。STARTCLKA/D三态辅出H和vtc*jGJNPSTARTCLKA/D三态辅出H和vtc*jGJNP澳拟■幵羞ADOAADQ&AOKALE二ri地址锁存与悸码图2.2AD0809逻辑图由图2.2可知,该输出公式为:AD=- X255V+ —V-REFREF实验台上基准电压为5V)AD=- X255V+ —V-REFREF实验台上基准电压为5V)启动OEadzdCXEOC给朿地址ALE/START-^t允许输出D0-D7图2.3AD0809时序图如图2.3,其工作过程是:在IN0-IN7上可分别接上要测量转换的8路模拟量信号。该系统只需要将热敏电阻温度传感器的电压输出端接IN0。将ADDA-ADDC端给上代表选择测量通道的代码。该系统选通通道0。将ALE由低电平置为高电平,从而将ADDA-ADDC送进的通道代码锁存,经译码后通道0的模拟量送给内部转换单元。给START—个正脉冲。当上升沿时,所有内部寄存器清零。下降沿时,开始进行A/D转换;在转换期间,START保持低电平。EOC为转换结束信号。在上述的A/D转换期间,可以对EOC进行不断测量,当EOC为高电平时,表明转换结束。否则,表明正在进行A/D转换。6)当A/D转换结束后,将OE设置为1,这时DO-D7的数据便可以读取了。OE二0,D0-D7输出端为高阻态,OE二1,D0-D7端输出转换的数据。3、数据处理部分 查表和线性插值法热敏电阻为一种阻值随温度变化的电阻,按其变化关系可分为两类:正温度系数(简称PTC)和负温度系数(简称NTC)。PTC元件的阻值随温度的上升而上升,NTC元件的阻值随温度的上升而下降。本模块中使用的为NTC型热敏电阻,在常温(25T)下其阻值为10K,其阻值与温度的关系、阻值与电压的关系、电压值与电压AD值得关系如下表所示:温度(°C)-30-20-100102025304050阻值176.096.2954.8532.4119.8012.4710.008.0665.3423.618(K)电压0.2680.47040.7711.1781.6772.2252.52.76763.25903.67168172111301002967228523418914298027501110(V)0电压AD1424396086114128142167188温度(°C)60708090100110120130140150阻值2.5021.7631.2650.9220.6830.5150.39420.3040.23820.18816488

(K)电压3.99934.2504.4384.5774.6804.7544.81034.8524.88364.90766010616335264066465158007499975011077570958641(V)电压AD205218228235240244247249250252在上面列的表格中,温度与阻值的关系是已知的,电压是根据式3-1得出的,电压的AD值是根据式2-1得出的。电压V与电压AD的关系:ad(V*1°°°)195(2-1)图2.4电压AD值与温度关系折线图根据图2.4可用线性插值法在线性区间建立函数关系,随着电压的改变输出温度值。三、硬件电路图

图3.1图3.1热敏电阻温度采集电路图图3.1中J1、J2、J3分别对应于模块上的VI、Vzero、Vout插孔,R3对应与ZERO电位器,用于偏置电压调节;R9对应于GAIN电位器,用于增益调节。 使用时,可先将电路增益调节为1,具体做法如下:调节ZERO电位器,使Vzero=0V,用万用表分别测量VI、Vout端电压,调节GAIN电位器,使V1二Vout,此时电路增益为1。由此可得出电压与电阻之间的关系:3-1)VCC•R2 5*10503-1)V1 R1+R2 R1+10R1+10四、 程序设计流程图图4.1主函数程序流程图图4.2LCD显示流程图图4.3A/D转换流程图图4.3中断服务程序五、问题和不足出现的问题及解决方法:在数据处理部分,之前是建立电压值V与温度值T的关系来显示温度,发现再怎么细分线性部分,输出的温度误差还是很大,而且显示的温度值—直在跳变。于是决定找电压值AD与温度之间的关系,这样减小了误差,显示的温度值也几乎不再跳变了。不足之处:实验台提供的可调输出电压的范围是0-4.5V,正确来说显示的温度范围应为-35°C至90°C。这样选定的线性区间才能较小误差,更趋近与表格提供的数值。所以,更细分的取线性部分得到的数值会更好。六、总结通过此次实习,使我对所学知识进行了实践。掌握了A/D转换芯片性能及编程方法、单片机系统中扩展LCD显示的方法以及温度传感器和LCD的工作原理及综合应用。在数据处理部分学会了线性插值法。在编写程序时,也发现对—些程序中的函数的处理不够合理,在自己的多次运行下,还是能够实现温度监控的功能。本次单片机实训让我很有成就感,并对以前所学的单片机知识做了—个小结。附件#include<reg51.h>#include<stdio.h>#include<intrins.h>#include<absacc.h>#defineucharunsignedchar#defineulongunsignedlong#defineuintunsignedint#definePort_addressXBYTE[0X0CFA0]sbitREQ二P3人5;//请求信号,高电平有效sbitBUSY二P3人4; 〃忙检测sbitEOC二P3人2;//转换结束信号,EOC=1-转换结束,EOC=0-正在转换voiddelay1ms(uinttime)//延迟子程序1{uintii;uintjj;for(ii=0;ii<time;ii++)for(jj=0;jj<200;jj++);}voiddelay(uinttime)//延迟子程序2{uintii;uintjj;for(ii=0;ii<time;ii++)for(jj=0;jj<110;jj++);}voidwrite_dat(uchardat)//OCMJ2X8写时序操作{if(BUSY==0){delay1ms(1);P1=dat;REQ=1;delay1ms(1);REQ=0;}voidwris-—chinese(ucharxhcharyhcharhhchar-)、、OCMJ2X8^»^}+導亠write—dat(OXFO);、、Jn]»^^^ws-e—dais^JnlB^^(aBfstH-00—0702—0900—09)write—dat(y);、、Jn]^^^(aBfstH-00—0100—0300—04)write—dat(h);、、Jn]»^}®前KFwrite—dat(_);、、Jn]»^}®曲KFvoidwris-IASC尸8xl6(ucharx'uchary'uchara)、、OCMJ2X8^ASCII^}革(8x16)15斋亠wris-—daaoxFg);、、^]ASCII咄苹(8X16)劭^<巨.<并•〔(刃xo)^p飞屮m}助蛰曲豊8X3fNDO// OpDFJeapPJOA{(0帖00'0帖00'017-00:国鄭朝)写丽侑三〃(心印飞屮m(T6-0036-0乙3U00:国鄭朝虫)写兩凰W〃〔(xMp飞屮m◎零堂刮与〃1(乙抄0)1印飞屮/\/\}出着*(琳1)呼画8X3flAIDO// (ANipn'xjeqDn)iu!od_ai!J/v\piOA{aIIDSVW//I(e)iep飞屮M(diz-OO^E-OO^l-OO:国鄭朝)写兩“与〃炉)】ep飞屮m(El-OO^l-izO^O-OO:国鄭朝虫)写兩凰W〃〔(xMp飞屮mvoid-cd—ins亠reqho;busyhi;c-ear—-cd();、扌扌$冊isada^1®^辛扌<voiddisp-ay—digit(uin1:date)w^am郦川白塔、znl>-—no廉嬉亠ucharbaLshLgpbaiudas-'lop<巨.<并•shi=date%100/10;ge=date%10;write_ASCII_8x16(0,16,0x41); 〃显示"AD"write_ASCII_8x16(1,16,0x44);write_ASCII_8x16(2,16,0x3A); //显示":"write_ASCII_8x16(3,16,0x30+bai);write_ASCII_8x16(4,16,0x30+shi);write_ASCII_8x16(5,16,0x30+ge);}/*******电压V显示函数*********/voiddisplay_voltage(uintdate)//分离任意五位数,给LCD送数{ucharwan,qian,bai,shi,ge;wan=date/10000;qian=date%10000/1000;bai=date%10000%1000/100;shi=date%10000%1000%100/10;ge=date%10;write_chinese(0,0,18,41);//显示"采集电压"write_chinese(1,0,28,15);write_chinese(2,0,21,71);write_chinese(3,0,49,25);write_ASCII_8x16(8,0,0x3A);//显示":write_ASCII_8x16(9,0,0x30+wan);write_ASCII_8x16(10,0,0x2E); //显示小数点write_ASCII_8x16(11,0,0x30+qian);write_ASCII_8x16(12,0,0x56);//显示电压符号V}/******温度值显示函数**********/voiddisplay_temperature(intdate)//分离任意四位数,方便给LCD送数ucharqian,bai,shi,ge;write_chinese(3,1,46,34);write_chinese(4,1,22,40); //显示"温度"if(date>=0){qian=date/1000;bai=date%1000/100;shi=date%1000%100/10;ge=date%10;write_ASCII_8x16(10,16,0x2b); //显示正号+write_ASCII_8x16(11,16,0x30+qian);write_ASCII_8x16(12,16,0x30+bai);write_ASCII_8x16(13,16,0x2E); //显示小数点write_ASCII_8x16(14,16,0x30+shi);

write_ASCII_8x16(15,16,0x30+ge);}if(date<0){date=-date;qian=date/1000;bai=date%1000/100;shi=date%1000%100/10;ge=date%10;//显示负号-//显示负号-//显示小数点write_ASCII_8x16(11,16,0x30+qian);write_ASCII_8x16(12,16,0x30+bai);write_ASCII_8x16(13,16,0x2E);write_ASCII_8x16(14,16,0x30+shi);write_ASCII_8x16(15,16,0x30+ge);

}/*****中断初始化函数*********/voidconfig(void){IT0=1;//INT0下降沿中断EX0=1; 〃允许INT1中断EA=1;}voidAD_init(void){Port_address=0x00; //虚写一次,启动通道0*********AD转换函数**********/ucharAD(void){ucharad_date; //保存经AD转换后的数据ad_date=Port_address;returnad_date; //返回数据intdeal_wendu()*****温度处理函数***********/*****温度处理函数***********/{intv,t;uintda;da=AD();v=da*195;if(da>=14&&da<=24){t=da*100-4400;}if(da>=24&&d

温馨提示

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

评论

0/150

提交评论