毕业设计论文智能温度巡检仪 - 图文

更新时间:2023-10-10 13:19:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

毕 业 设 计 [论 文]

题目:智能型温度巡检仪

(软件部分)

系 别: 电气与电子工程系 专 业: 电气工程及其自动化 姓 名: 学 号: 指导教师:

年 月 日

河南城建学院本科毕业设计(论文) 摘要

摘 要

在实际生产和生活等各个领域中,温度是环境因素不可或缺的一部分,对温度进行及时精确的控制和检测显得尤为重要。随着国民经济的发展,人们需要对各种加热炉,热处理炉,生化温室中温度进行监测。采用单片机来对他们控制不仅具有控制方便,简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大的提高产品的质量和数量。

本文是基于智能温度巡检仪的硬件部分所做的软件程序,它与硬件部分相结合实现温度的实时测量与控制。硬件部分是以铂电阻PT100作为温度传感器,采用恒流测温的方法,通过单片机STC89C52进行控制,用放大器、A/D转换器进行温度信号的采集,再通过单片机把采集到的信号送到LCD1602中进行显示,通过按键调节温度上、下限。软件部分在此主要对硬件电路各部分功能的程序进行模块化,并对电阻——温度进行标度变换,对采集的温度数据滤波,实现温度的实时测量与控制。

关键词:单片机STC89C52, 温度传感器PT100,模数转换器ADC0809,液晶显示器1602

I

河南城建学院本科毕业设计(论文)

Abstract

Abstract

Temperature is an essential of environmental factors in our actual production,living and many other fields. It’s particularly important to control and detect the temperature promptly and exactly. With the development of the national economy, people need to all in the furnace, heat treatment furnace, chemical and biological monitoring of the temperature of the greenhouse and control. Single-chip computer to control not only has control of their convenience, simplicity and flexibility advantages, but also substantial increase in temperature was charged with technical indicators, which can greatly improve the quality and quantity of products.

This is the software program based on the hardware part of the smart temperature data logging devices, with the hardware part of the combination of real-time temperature measurement and control. The hardware part is based on the platinum resistance PT100 temperature sensor, the method of constant current temperature, by microcontroller STC89C52 control, amplifier, A/D converter temperature signal acquisition, collected by the microcontroller signal sent to the LCD1602 to be displayed on the button to adjust the temperature, the lower limit. The software part modular, the program for some of the features of the hardware circuit and the resistance - temperature scale conversion of the collected temperature data filtering, real-time temperature measurement and control.

Key words: STC89C52, temperature sensorPT100, Analog ADC0809, LCD 1602

II

河南城建学院本科毕业设计(论文) 目录

目 录

摘 要 ........................................................................................................................ I Abstract .................................................................................................................... II 前 言 ........................................................................................................................ 1 1 概述 ...................................................................................................................... 2 1.1 温度检测仪表的现状 .................................................................................... 2 1.2 课题的提出 .................................................................................................... 3 1.3 本文的主要研究内容 .................................................................................... 4 2 系统的总体设计 .................................................................................................... 5 2.1 系统的总体设计思想 .................................................................................... 5 2.2 方案论证与选择 ............................................................................................ 5 2.2.1 温度采样和测试部分 ............................................................................. 5 2.2.2 显示器 ..................................................................................................... 6 2.2.3 键盘 ......................................................................................................... 7 2.3 系统设计的技术关键 .................................................................................... 7 3 系统的硬件设计 .................................................................................................. 8 3.1 系统的整体结构 ............................................................................................ 8 3.2 温度巡检仪的主要硬件 ................................................................................ 8 3.2.1 温度传感器PT100 .................................................................................. 8 3.2.2 A/D转换器ADC0809 ............................................................................. 9 3.2.3 STC89C52 .............................................................................................. 12 3.2.4 LCD1602 ................................................................................................ 15 4 计算与软件实现 .................................................................................................. 19 4.1 温度采集 ...................................................................................................... 19 4.1.1 数据输入 ............................................................................................... 19 4.1.2 A/D采集信号 ......................................................................................... 20 4.2 数据处理 ...................................................................................................... 23 4.2.1 电压—PT100阻值转换 ........................................................................ 23 4.2.2 AD值—十进制数转换 .......................................................................... 24 4.2.3 通过插值算法校正PT100的非线性度 ............................................... 24 4.2.4 去极值平均滤波法 ............................................................................... 25

III

河南城建学院本科毕业设计(论文) 目录

4.3 温度显示 ...................................................................................................... 27 4.4 报警控制 ...................................................................................................... 29 4.4.1 温度上、下限设定 ............................................................................... 29 4.4.2 越限报警 ............................................................................................... 33 4.5 小结 .............................................................................................................. 34 5 电路仿真的设计与分析 ...................................................................................... 35 5.1 Proteus仿真软件介绍 .................................................................................. 35 5.2 电路仿真设计 .............................................................................................. 35 5.3 仿真分析 ...................................................................................................... 37 6 总结 ...................................................................................................................... 38 参考文献 ............................................................................................................. 39 致 谢 ................................................................................................................. 40 附录A: .............................................................................................................. 41 附录B: .............................................................................................................. 42 附录C: .............................................................................................................. 43

IV

河南城建学院本科毕业设计(论文) 系统的硬件设计

(4) VR(+)、VR(-)——正、负参考电压输入端,用于提供片内DAC电阻网络的基准电压。在单极性输入时,VR(+)=5V,VR(-)=0V;双极性输入时,VR(+)、VR(-)分别接正、负极性的参考电压。

表3.2 地址信号与选中通道的关系

图3.3 ADC0808/0809外部引脚图

地 址 ADDC ADDB 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 选中通ADDA 道 0 1 0 1 0 1 0 1 IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7

(5) ALE——地址锁存允许信号,高电平有效。当此信号有效时,A、B、C三位地址信号被锁存,译码选通对应模拟通道。在使用时,该信号常和START信号连在一起,以便同时锁存通道地址和启动A/D转换。

(6) START——A/D转换启动信号,正脉冲有效。加于该端的脉冲的上升沿使逐次逼近寄存器清零,下降沿开始A/D转换。如正在进行转换时又接到新的启动脉冲,则原来的转换进程被中止,重新从头开始转换。

(7) EOC——转换结束信号,高电平有效。该信号在A/D转换过程中为低电平,其余时间为高电平。该信号可作为被CPU查询的状态信号,也可作为对CPU的中断请求信号。在需要对某个模拟量不断采样、转换的情况下,EOC也可作为启动信号反馈接到START端,但在刚加电时需由外电路第一次启动。

(8) OE——输出允许信号,高电平有效。当微处理器送出该信号时,ADC0808/0809的输出三态门被打开,使转换结果通过数据总线被读走。在中断工作方式下,该信号往往是CPU发出的中断请求响应信号。

3) 工作时序

11

河南城建学院本科毕业设计(论文) 系统的硬件设计

ADC 0808/0809的工作时序如图3.4所示。当通道选择地址有效时,ALE信号一出现,地址便马上被锁存,这时转换启动信号紧随ALE之后(或与ALE同时)出现。START的上升沿将逐次逼近寄存器SAR复位,在该上升沿之后的2μs加8个时钟周期内(不定),EOC信号将变低电平,以指示转换操作正在进行中,直到转换完成后EOC再变高电平。微处理器收到变为高电平的EOC信号后,便立即送出OE信号,打开三态门,读取转换结果。

图3.4 ADC 0808/0809工作时序

模拟输入通道的选择可以相对于转换开始操作独立地进行(当然,不能在转换过程中进行),然而通常是把通道选择和启动转换结合起来完成(因为ADC0808/0809的时间特性允许这样做)。这样可以用一条写指令既选择模拟通道又启动转换。在与微机接口时,输入通道的选择可有两种方法,一种是通过地址总线选择,一种是通过数据总线选择。

如用EOC信号去产生中断请求,要特别注意EOC的变低相对于启动信号有2μs+8个时钟周期的延迟,要设法使它不致产生虚假的中断请求。为此,最好利用EOC上升沿产生中断请求,而不是靠高电平产生中断请求。

3.2.3 STC89C52

STC89C52采用40引脚的双列直插式封装(DIP)形式,内部由CPU,8KB的ROM,512B的RAM,3个16位的定时/计数器T0、1、2,4个8位的I/O端口和一个全双工串行通信口等部分组成。STC89C52单片机具有系统结构简单,成本低,可靠性高,低功耗等特点。特别是内部集成了8KB的FLASH程序存储器,使单片机系统的结构更加简单,也使其得到了广泛的应用。同时,它还具有高级

12

河南城建学院本科毕业设计(论文) 系统的硬件设计

语言编程的特点,指令丰富,软件开发简单。

STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz。

综上所述STC89C52单片机是一款性价比很高的单片机芯片,特别适合于仪器仪表的应用。所以本课题主要基于STC89C52单片机,设计一个多路传感器数据的测量与显示仪表。管脚图如3.5所示。

图3.5 STC89C52RC引脚图

STC89C52RC引脚功能说明: VCC(40引脚):电源电压 VSS(20引脚):接地

P0端口(P0.0~P0.7,39~32引脚):P0口是一个漏极开路的8位双向I/O口。作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入―1‖时,可以作为高阻抗输入。在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8

13

河南城建学院本科毕业设计(论文) 系统的硬件设计

位数据的复用总线。此时,P0口内部上拉电阻有效。在Flash ROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。验证时,要求外接上拉电阻。

P1端口(P1.0~P1.7,1~8引脚):P1口是一个带内部上拉电阻的8位双向I/O口。P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流。

此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),在对Flash ROM编程和程序校验时,P1接收低8位地址,具体参见表3.3。

表3.3 P1.0和P1.1引脚复用功能 引脚号 P1.0 P1.1 功能特性 T2 (定时器/计数器2外部计数输入),时钟输出 T2EX (定时器/计数器2捕获/重装触发和方向控制) P2端口(P2.0~P2.7,21~28引脚):P2口是一个带内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。

在访问外部程序存储器和16位地址的外部数据存储器(如执行―MOVX @DPTR‖指令)时,P2送出高8位地址。在访问8位地址的外部数据存储器(如执行―MOVX @R1‖指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容),在整个访问期间不会改变。

在对Flash ROM编程和程序校验期间,P2也接收高位地址和一些控制信号。 P3端口(P3.0~P3.7,10~17引脚):P3是一个带内部上拉电阻的8位双向I/O端口。P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流。

在对Flash ROM编程或程序校验时,P3还接收一些控制信号。 P3口除作为一般I/O口外,还有其他一些复用功能,如表3.4示:

表3.4 P3口引脚复用功能 引脚号 P3.0 14

复用功能 RXD(串行输入口) 河南城建学院本科毕业设计(论文) 系统的硬件设计

P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 TXD(串行输出口) INT0(外部中断0) INT1(外部中断1) T0(定时器0的外部输入) T1(定时器1的外部输入) WR(外部数据存储器写选通) RD(外部数据存储器读选通) RST(9引脚):复位输入。当输入连续两个机器周期以上高电平时为有效,用来完成单片机单片机的复位初始化操作。看门狗计时完成后,RST引脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。

ALE/PROG(30引脚):地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在Flash编程时,此引脚(PROG)也用作编程输入脉冲。

在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。

如果需要,通过将地址位8EH的SFR的第0位置―1‖,ALE操作将无效。这一位置―1‖,ALE仅在执行MOVX或MOV指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址位8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。

PSEN(29引脚):外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当AT89C51RC从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而访问外部数据存储器时,PSEN将不被激活。

EA/VPP(31引脚):访问外部程序存储器控制信号。为使能从0000H到FFFFH

的外部程序存储器读取指令,EA必须接GND。注意加密方式1时,EA将内部锁定位RESET。为了执行内部程序指令,EA应该接VCC。在Flash编程期间,EA接收12伏VPP电压。

XTAL1(19引脚):振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2(18引脚):振荡器反相放大器的输入端。

3.2.4 LCD1602

1602是2行×16个字符的字符型LCD 显示器,它由32个字符点阵块组成,每个字符点阵块由5×7 或5×10个点阵组成,可以显示ASCII 码表中的所有可视的字符。它内置了字符产生器ROM (Character Generator ROM,CGROM)、字符产

15

河南城建学院本科毕业设计(论文) 附录A

附录A:

主程序流程图:

开始 系统初始化

循环次数Lu=0; 判输入路数,启动一次AD转换

EOC=1 数据转换并存储,本路数据采N次 N

Y 输入路数加1,再次启动AD转换 EOC=1 N 数据转换并存储,本路数据采N次 Y 数据转换并存储 LCD显示两次测得的温度 判断是否报警 是否有按键按下 N Lu加1大于2 返回 Y Y 返回 返回 设置上限 设置下限 增加 减少 增加 减少 41

河南城建学院本科毕业设计(论文) 附录B

附录B:

R9C310pFVDDC1X1CRYSTAL30PFLCD1602LM016LRP?RESPACK-8RV8R28R27273020k-12V2K+12V-12V67%VSSVDDVEEC230PFRSRWER108.2K191234567891011121314D0D1D2D3D4D5D6D7VCC123456789XTAL118XTAL2179RSTP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617U102358417U1U11U11(OUT)R3410k263U12R30100R1nF36268417R32684C10AD620+5V+12VVDDOP07COP07COE+12VU2(CLOCK)1067OUT1OUT2OUT3OUT4OUT5OUT6OUT7OUT82120191881514170%R2910k

8.2KR31C91nF100R1k5-12V293031PSENALEEAR33R1810kU2CLOCKSTARTEOCOUT1OUT2OUT3OUT4OUT5OUT6OUT7OUT8IN0IN1IN2IN3IN4IN5IN6IN7ADD AADD BADD CALEVREF(+)VREF(-)2627281234525242322121610K50%2RV9VSSRV31k1D2LM336-2V5AT89C51-12V20kOE9OEADC0808U13842VSS63U14(OUT)R3710k6U1458423U1517R1LS110kR39100R1nF362VDDR21710kSOUNDEROP07C173PT1002584C12AD620+5V+12VOP07CR3810k+12VVDDR352730R310k

R410kRV1110K1nF250%R52R23+12VR51R2420k-12V-12V20k2730-12V

VDD-12VRV62K2730U19U8842636U20584U211732U66R21100RR5310k263R55100R1nF362714852U74817

50%OP07CR1910k7170-12V711PT1001nFR22317C63AD62010k846R25482C164PT10080OP07COP07CR5410k+5V+12VAD620R26+5V+12V100R10kOP07CR57C151nF100R1k5-12V+12VVDD3R201k52RV21k1D1LM336-2V51nF10K50%2RV7

342

30?+12V+12VRV1610K69%0%0%+12V69%OUT8OUT7OUT6OUT5OUT4OUT3OUT2OUT112345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RV10R362K-12VR40C11100R1k5-12VR1710kR4131RV152KRV41kD3LM336-2V569%R58R1610kRV51k1D4LM336-2V5河南城建学院本科毕业设计(论文) 附录C

附录C:

#include #include

#define N 5 // 采集次数

#define M 5 //两电阻相隔5度 #define G 40 //放大增益 #define uint unsigned int #define uchar unsigned char sbit p10=P1^0; sbit p11=P1^1; sbit p12=P1^2; sbit p13=P1^3; sbit p14=P1^4; sbit p15=P1^5; sbit p16=P1^6; sbit p17=P1^7;

sbit p32=P3^2; //设置上限; sbit p33=P3^3; //设置下限; sbit p34=P3^4; //加; sbit p35=P3^5; //减; sbit beep=P3^6; //报警; sbit p37=P3^7;

sbit ADC_ST=P2^0; sbit ADC_EOC=P2^1; sbit ADC_OE=P2^2; sbit ADD_A=P2^3; sbit ADD_B=P2^4; sbit ADD_C=P2^5; sbit E=P3^0; sbit RS=P2^6; sbit RW=P2^7; sbit BF=P0^7;

idata uchar lcd_line1[9]={'I','N','1',':','0','0','0','.','0'}; idata uchar lcd_line2[9]={'I','N','2',':','0','0','0','.','0'};

idata uchar wendu[]={0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00};

idata uint R[]={10000,10195,10390,10585,10779,10973,11167,11361,11554,11747,

11940,12132,12324,12516,12708,12899,13090,13280,13471,13661,13851, 14040,14229,14418,14607,14795,14983,15171,15358,15546,15731, 15918,16104,16290,16476,16661,16846,17031,17216,17400,17584};

float adc_data[5]; float adc_buf[5];

43

河南城建学院本科毕业设计(论文) 附录C

uint num1,num2,shangxian,xiaxian,dengdai; bit taige;

idata uchar highnum[]={'h','i','g','h',':','0','0','0',}; idata uchar lownum[]={'l','o','w',':','0','0','0',}; uchar tiao[]={'T'};

/***************************************************** 函数功能:延时若干毫秒 入口参数:n

***************************************************/ void delay1ms(uint n) {

uint x,y,z;

for(z=0;z

for(y=0;y<10;y++) for(x=0;x<30;x++); } }

/***************************************************** 函数功能:延时若干纳秒 入口参数:n

***************************************************/ void delay1us(uchar n) {

uchar i;

for(i=0;i

/***************************************************** 函数功能:初始化ADC0809

***************************************************/ void init_0809() {

ADC_ST=0; ADC_OE=0; _nop_(); _nop_(); ADC_ST=1; _nop_(); _nop_(); _nop_(); ADC_ST=0;

44

河南城建学院本科毕业设计(论文) 附录C

_nop_(); _nop_(); }

/***************************************************** 函数功能: ADC0809转换 入口参数:adc_in

***************************************************/ void adc_0809(adc_in) {

uchar i; uint lushu;

float temp=0,adc=0; lushu=adc_in;

for(i=0;i

ADC_ST=0; _nop_(); _nop_(); _nop_(); ADC_ST=1; _nop_(); _nop_(); _nop_(); ADC_ST=0; _nop_(); _nop_(); _nop_(); switch(lushu) {

case 1:ADD_A=0,ADD_B=0,ADD_C=0;break; //选择通道IN0; case 2:ADD_A=1,ADD_B=0,ADD_C=0;break; //选择通道IN1; case 3:ADD_A=0,ADD_B=1,ADD_C=0;break; //选择通道IN2; case 4:ADD_A=1,ADD_B=1,ADD_C=0;break; //选择通道IN3; case 5:ADD_A=0,ADD_B=0,ADD_C=1;break; //选择通道IN4; case 6:ADD_A=1,ADD_B=0,ADD_C=1;break; //选择通道IN5; case 7:ADD_A=0,ADD_B=1,ADD_C=1;break; //选择通道IN6; case 8:ADD_A=1,ADD_B=1,ADD_C=1;break; //选择通道IN7; }

while(ADC_EOC==0) //等待转换结束信号; ADC_OE=1;

temp=P1;

45

河南城建学院本科毕业设计(论文) 系统的硬件设计

生器RAM (CharacterGenerator RAM,CGRAM)和显示数据RAM(Data Display RAM, DDRAM)。CGROM中内置了192个常用字符的字模,CGRAM包含8个字节的RAM,可存放用户自定义的字符,DDRAM 就是用来寄存显示的字符代码。

1) 1602LCD主要技术参数: 显示容量:16×2个字符 芯片工作电压:4.5—5.5V 工作电流:2.0mA(5.0V) 模块最佳工作电压:5.0V 字符尺寸:2.95×4.35(W×H)mm 2) 引脚功能说明

1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表3.5所示。

表3.5 1602引脚说明

编号 1 2 3 4 5 6 7 符号 VSS VDD VL RS R/W E D0 引脚说明 电源地 电源正极 液晶显示偏压 数据/命令选择 读/写选择 使能信号 数据 编号 9 10 11 12 13 14 15 符号 D2 D3 D4 D5 D6 D7 BLA 引脚说明 数据 数据 数据 数据 数据 数据 背光源正极 LCD引脚功能介绍: 第1脚:VSS为地电源。 第2脚:VDD接5V正电源。

第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生―鬼影‖,使用时可以通过一个10K的电位器调整对比度。

第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。

16

河南城建学院本科毕业设计(论文) 系统的硬件设计

当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。

第6脚:E端为使能端,当E端由高电平跳变成低电平时液晶模块执行命令。 第7~14脚:D0~D7为8位双向数据线。 第15脚:背光源正极。 第16脚:背光源负极。 3) 1602LCD的指令说明及时序

1602液晶模块内部的控制器共有11条控制指令,如表3.6所示,各条指令介绍如下所示:

表3.6 控制命令表

序号 1 2 3 4 5 6 7 8 9 10 指令 清显示 光标返回 置输入模式 显示开/关控制 光标或字符移位 置功能 置字符发生存贮器地址 置数据存贮器地址 读忙标志或地址 写数到CGRAM或DDRAM 从CGRAM或DDRAM读数 RS R/W D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 * 1 I/D S 1 D C B * * 1 S/C R/L * 1 DL N F * 字符发生存贮器地址 显示数据存贮器地址 计数器地址 要写的数据内容 1 BF 0 11 1 1 读出的数据内容 指令1:清显示,指令码01H,光标复位到地址00H位置。 指令2:光标复位,光标返回到地址00H。

指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。

17

河南城建学院本科毕业设计(论文) 系统的硬件设计

指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。

指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。 指令6:功能设置命令 DL:低电平时为4位总线,高电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。

指令7:字符发生器RAM地址设置。

指令8:下一个要存入数据的CGRAM地址设置。

指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。

指令10:写数据。 指令11:读数据。

18

河南城建学院本科毕业设计(论文) 计算与软件实现

4 计算与软件实现

本设计系统主要包括温度采集单元、数据处理单元、温度显示单元、控制单元4个部分,主程序对应分别是温度采集程序、数据处理程序、LCD 显示程序、控制程序,温度采集程序负责把ADC0809所采集的温度读入到指定的数组中;数据处理程序将采集的电压转换为温度读入到指定数组中,包括标度变换、热电阻线性化、数字滤波等部分;LCD 显示程序用于温度等数据的实时显示,主要是使单片机按一定的方法进行输出,然后在LCD显示,以便达到监视测量目的;控制单元主要是控制温度的上限值和下限值,且若不在规定范围内则报警。

4.1 温度采集

温度采集包括数据输入通道,模拟开关,采样/保持,A/D转换器等。具体工作流程时是4路模拟信号经开关依次接通并顺序输入,再经放大滤波后输入到A/D转换器的输入通道,A/D转换器转换后的数字量可经三态门送入总线,以便由微型计算机对采集的数据进行处理。

4.1.1 数据输入

在本设计中信号输入部分所采用的接法如图4.1所示,通过恒流源电路采集到的信号经过放大电路进行放大后,送入到A/D转换器进行A/D转换,再送到单片 机进行处理,将电压转换成温度。

图4.1 信号输入电路

19

河南城建学院本科毕业设计(论文) 计算与软件实现

信号输入的放大电路主要是由AD620、OP07构成的两级放大电路组成。AD620是仪用放大器,输入偏置电流小,精度高,增益设置和调节简单。在AD620的1脚和8脚之间外接一个电阻R就可以设置放大电路的增益G。OP07是一种高精度单片运算放大器,具有很低的输入失调电压和漂移。OP07的优良特性使它特别适合作前级放大器,放大微弱信号,一般不用考虑调零和频率问题就能满足要求。

4.1.2 A/D采集信号

模/数(A/D)转换测量子函数用来控制对ADC0809的4路模拟输入的微小信号,即恒流源电路采集到的信号经过放大电路进行放大后,送入到A/D转换器输入端的信号,进行A/D转换并将对应的数值移入内存单元。温度采集程序总流程图如图4.2所示。

图4.2 A/D温度采集总流程图

开始 启动一次转换 N EOC=1 Y OE=0;取转换数据 本路数据采集N次 Y 地址数加1小于8 N 返回 N 20

河南城建学院本科毕业设计(论文) 计算与软件实现

滤波器是一种能使有用频率信号通过而同时抑制(或大为衰减)无用频率信号的电子装置,可分为模拟滤波器和数字滤波器。模拟滤波器是主要采用R、L、C等无源器件组成的滤波电路或由运放和R、C组成的有源滤波器。而数字滤波则是采用软件算法实现滤波的。数字滤波的前提是对同一数据进行多次采样,在单片机系统中一般有以下几种方法:

1) 中值滤波:一般采样5、7次,排序后取中间值。 2) 算术平均滤波:一般采样8次,求平均值。 3) 去极值平均滤波:去掉最大最小值后求平均值。 4) 加权平均滤波:各加权系数之和为1。

5) 滑动平均滤波:本次采样值和前n次采样值求平均。

数据滤波方法选用要视现场环境和被测对象而定,在本系统中采用的是去极值平均值滤波,算术平均滤波不能将明显的脉冲干扰或粗大误差消除,只能将其影响削弱。因明显干扰或粗大误差使采样值远离其实际值,可以比较容易地将其剔除,不参与平均值计算,从而使平均滤波的输出值更接近真实值。此处采用去极值平均滤波法,其实现的方法为:

1) 连续采样N个数据;

2) 把N个采样数据按大小排列; 3) 去掉一个最大值,去掉一个最小值; 4) 然后计算N-2个数据的算术平均值。 去极值平均滤波子程序为:

/***********************去极值平均滤波*************************/

uchar filter() {

char count,i,j; uint adc_buf[N]; uint sum=0,buf=0;

for(count=0;count

adc_buf[count]=adc_data[count]; }

for(j=0;j

26

河南城建学院本科毕业设计(论文) 计算与软件实现

for(i=0;i

if(adc_buf[i]>adc_buf[i+1]) {

buf=adc_buf[i];

adc_buf[i]=adc_buf[i+1]; adc_buf[i+1]=buf;

} } }

for(count=1;count

sum+=adc_buf[count]; }

return (sum/N-2); //返回计算的N-2个数据的算术平均值; }

4.3 温度显示

显示系统是单片机控制系统的重要组成部分,主要用于显示各种参数的值,以便使现场工作人员能够及时掌握生产过程。

以上章节已经将温度检测并计算出,存储到方便LCD显示的单元。LCD 显示程序显示实时采集温度的数据,每路显示的格式为:IN0:000.0℃,每次显示两路输入信号,共2次循环显示完所有信号。

温度显示程序总流程图如图4.4所示:

27

河南城建学院本科毕业设计(论文) 计算与软件实现

开始 LCD初始化 指定第一行显示的地址 将数据写入液晶模块 写入自定义温度图形℃ 指定显示温度图形℃的地址 显示自定义温度图形℃ 返回 图4.4 温度显示程序总流程图

温度显示主程序:

/***********************LCD主函数*************************/

void main_1602(void) { uchar i;

lcd_write(0x01); //清屏幕指令,将以前的显示内容清除; delay1us(5);

lcd_writeaddress(0x00); //设定屏幕上lcd_line1的显示位置; delay1us(5); for(i=0;i<9;i++) {

lcd_writedata(lcd_line1[i]); //在屏幕上读出lcd_line1的内容;

28

河南城建学院本科毕业设计(论文) 计算与软件实现

delay1us(5); }

lcd_write(0x40); //设定CGRAM地址; delay1us(5); for(i=0;i<8;i++) {

lcd_writedata(wendu[i]); //写入自定义图形 ℃; }

delay1us(5);

lcd_writeaddress(0x09); //设定屏幕上的显示自定义图形℃的位置; lcd_writedata(0x00); //从CGRAM里取出自定义图形 ℃显示;

lcd_writeaddress(0x40); delay1us(5); for(i=0;i<9;i++) {

lcd_writedata(lcd_line2[i]); //在屏幕上读出lcd_line1的内容; delay1us(5); }

lcd_writeaddress(0x49); //设定屏幕上的显示位置; _nop_(); _nop_(); _nop_();

lcd_writedata(0x00); //从CGRAM里取出自定义图形℃显示; }

//设定屏幕上lcd_line2的显示位置;

4.4 报警控制

4.4.1 温度上、下限设定

温度上、下限的设定主要是通过按键设定测得温度的上、下限的值。首先,若要设定上限值,则按按键P3^2进入设定上限值程序中,再按P3^4或P3^5进行加、减上限值。若要设定下限值,则按按键P3^3进入设定下限值程序中,再按P3^4或P3^5进行加、减下限值。在此设计中,对按键做了消抖处理。

具体程序如下:

29

河南城建学院本科毕业设计(论文) 计算与软件实现

/***********************调节上限值程序*************************/

void high_limit(void) //调节上限; {

if(p32==0) {

delay1ms(20); if(p32==0) { taige=0; lcd_write(0x01); lcd_HT();

lcd_tiaohigh(); lcd_tiaolow();

for(dengdai=0;dengdai<500;dengdai++) { zengjia(); jianshao(); delay1ms(2); } } } }

/***********************调节下限值程序*************************/

void low_limit(void) //调节下限; {

if(p33==0) {

delay1ms(20); if(p33==0) { taige=1; lcd_write(0x01);

30

河南城建学院本科毕业设计(论文) 电路仿真的设计与分析

C1VDDRV3LM016LRESPACK-8CRYSTALR17-12V20k2680VSSVDDVEEC2RSRWER1012345678910111213141234567898.2K30PFD0D1D2D3D4D5D6D7VCCU5U5(OP)V=0.06233246358417842U4(OUT)R16V=-0.031035710k263U119XTAL11710pFXTAL2181nFOP07C+12V1PT100R1810k+5V+12VAD6208417C38.2K293031PSENALEEAU2(CLOCK)U2VSS12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD10111213141516177212019188151417EOCOUT1OUT2OUT3OUT4OUT5OUT6OUT7OUT89-12V20kU884ADD AADD BADD CALEVREF(+)VREF(-)OEADC0808U2(IN2)U2(IN3)0%U75842524232212162VDDV=2.49129U8(OP)63U6R2510k26317R2136100R217R26OP07C10k+5V171nFAD62084C62PT10038.5OP07CR22+12VVSS+12V5K-12VC7RV7RN110k100RR20wenya21k51nFLS1VDDRN2SOUNDER10kRN310kRN410k 36

+12V R2426801006CLOCKSTARTIN0IN1IN2IN3IN4IN5IN6IN7262728123450%R9P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A152122232425262728RV410KC51nF100RR12R12(1)V=-2.5WENYA11k5R23RV62K-12V图5.1 电路仿真图 9RSTP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD73938373635343332100%X130PFLCD1602RP?R152K+12V-12VU4U3R1336100R2C41OP07CR14-12V河南城建学院本科毕业设计(论文) 电路仿真的设计与分析

5.3 仿真分析

Proteus软件的仿真是依靠单片机程序来实现的,因此先将程序通过第三方Keil C51软件编译,连接,执行后产生一个HEX文件,再与Proteus仿真软件进行关联就可以实现仿真。本仿真电路的前置电路的两级放大电路中,通过调节一级放大器和二级放大电路的偏置电路中滑动变阻器范围来调节测温范围,使输入到A/D转换器的模拟电压在0-5V范围内,这样才能进行A/D转换。本设计的前级放大电路的放大倍数为20倍,二级放大电路放大倍数为2倍,合起来整个放大电路放大了40倍,这样输入到A/D转换器的信号才能被A/D转换器所转换。其中二级放大器中设计了偏置调整电路,因为PT100电阻传感器在100℃时对应电阻为138.5欧姆,所以要显示100℃,就必须将此时对应的有效数字减掉后再放大一定的倍数,才通过A/D转换器进行处理。

在仿真过程中由于软硬件影响,还有人为计算误差因素,使得测量温度结果与理想测量结果存在一定的误差,因此可以通过改变硬件参数和软件程序设计来减少误差。

37

河南城建学院本科毕业设计(论文) 总结

6 总结

在本次设计中,老师都对我们进行了精心的指导,从下达任务书到开题,再到设计,一直到最终的结稿都尽心尽责,使我们对两年所学内容有了更加深刻的理解,同时掌握了把理论运用到实践当中的技巧。在设计过程中通过我们组各成员齐心努力和班中其他同学的帮助下,整个设计按预期目标已基本完成。其中很多问题是通过和小组其他人员讨论才得到解决,在这里,感谢小组成员努力工作,积极参与,不仅在设计技术方面提出了创新点,而且在制作过程中做到真正的锻炼。

本温度测量系统设计,是采用PT100温度传感器经过放大和A/D转换器送到单片机进行控制温度显示,并且还可以实现温度上下限的设定及报警。另外在本系统的基础上还可以通过外接电路扩展实现数据的传送,从而更好的实现温度现场的实时控制。经过多次的修改和调试测量,本设计基本符合设计要求,由于受人为因素和软硬件的限制,系统难免不了带来一些误差,但通过调节和精确计算可以减小误差。

本设计应用性比较强,可以应用在锅炉温度、仓库温度、大棚温度、机房温度等多处的监控。创新点在于详细设计了基于单片机STC89C52的温度监控系统,进行了Proteus仿真。此系统可广泛用于温度在0-200℃测温范围之内的场合,有良好的应用前景。

通过本次毕业设计,我了解并掌握了传感器的基本理论知识,更深入的掌握单片机的开发应用和编程控制。为以后从事单片机软硬件产品的设计开发、打下了良好的基础,树立独立从事产品研发的信心,并在这种能力上得到了比较充分的锻炼。

38

河南城建学院本科毕业设计(论文) 参考文献

参考文献

[1] 童一帆,张武坤. 单片机测控技术[M]. 北京:北京航空航天大学出版社,2007.

[2] 郑建国,李从新. 一种高精度的铂电阻温度测量方案[J]. 自动化仪表,1997,I8(8):22-24. [3] 黄贤武. 传感器原理与应用[M]. 成都:电子科技大学出版社,1999.

[4] 郭少朋,吴岚军,刘鸿. 铂电阻多点测温控温设计[J]. 传感器技术,2004(1):67- 69. [5] 谭浩强. C程序设计[M]. 北京:清华大学出版社,2005.

[6] 赵文博. 单片机语言C51程序设计[M]. 北京:人民邮电出版社,2005. [7] 余永权. 单片机原理及应用[M]. 北京:电子工业出版社,1997.

[8] 石从刚. MCS-51单片机原理与应用实验实训教程[M]. 北京:北京航空航天大学出版社,2007.

[9] 崔玮. Protel99SE电路原理图与电路板设计教程[M]. 北京:海洋出版社,2005. [10] 梅丽凤. 单片机原理及接口技术[M]. 北京:清华大学出版社,2004.

[11] 于永,戴佳. 51单片机C语言常用模块与综合系统设计实例精讲[M]. 北京:电子工业出

版社,2007.

[12] 张新荣. 基于单片机的多路温度监测系统设计[J]. 工业控制计算机,2010, 23(7):95-98. [13] 胡汉才. 单片机原理及系统设计[M]. 北京:清华大学出版社,2002.

[14] Giuseppe Ferri·Vincenzo Stornelli. A high precision temperature control system for CMOS int-

-egrated wide range resistive gas sensors[J]. Analog Integr Circ Sig Process, 2006,47:293-301. [15] 彭飞. 单片机C语言设计实训——基于8051+Proteus仿真[M]. 北京:电子工业出版社,

2009.

[16] STC Microcontroller Handbook, 2007.

[17] H M Peitel, P J Deitel. C How to program, second Edition.2000.

39

河南城建学院本科毕业设计(论文) 致谢

致 谢

首先要衷心感谢的是我可敬可亲的导师!韩老师渊博的知识,扎实的实践能力,让我由衷的钦佩!他在学习和科研方面给了我大量的指导,并为我们提供了良好的科研环境,让我学到了知识,掌握了科研的方法,也获得了实践锻炼的机会。您半年来对我学习和研究的悉心指导和谆谆教诲令我终身受益。在您的指导下,我在各方面的能力都得到了相应的提高。感谢所有教育过我的老师!你们传授给我的专业知识是我不断成长的源泉,也是完成本论文的基础。

特别要感谢的是和我一起做毕业设计的各位同学,还要特别感谢我们班的同学们!在我遇见困难时是他们伸出了援助之手!一起经历了许多重要的时刻,尤其是多方面的学习,你们在我论文完成的过程中给了我许多鼓励和帮助。还有很多我无法一一列举姓名的师长和友人给了我指导和帮助,在此衷心的表示感谢,他们的名字我一直铭记在心!

感谢两年来电气系各位老师的孜孜教诲和学校的细心培养,让我能有今天的进步,在科学道路攀登中上发现自己存在的价值!

最后,对各位老师审阅我的设计深表感谢,并渴望给予批评指正。

40

本文来源:https://www.bwwdw.com/article/hg0f.html

Top