大学毕业设计-智能仪表控制.docx_第1页
大学毕业设计-智能仪表控制.docx_第2页
大学毕业设计-智能仪表控制.docx_第3页
大学毕业设计-智能仪表控制.docx_第4页
大学毕业设计-智能仪表控制.docx_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

智能仪器设计基础课程设计报学 院: 太原理工大学现代科技学院 专业班级: 自动化0701 姓 名: 尹小鹏 学 号: 07100510 题 目 号: 27 题 目:27. 试设计智能仪表实现智能数字显示仪表。要求8位数码管显示(4位显示测量值,4位显示设定值),4输入按钮(功能选择、数码管选择、数字增加、数字减少),可设定上下限报警(蜂鸣器报警)。适配PT100热电阻,测温范围为0300。采用比例控制、并用晶闸管脉宽调制驱动1000W电加热器(电源电压为AC220V)。摘要运用单片机原理及应用-基于51与高速所学知识,做好智能仪器是含有微型计算机或者微型处理器的测量仪器,拥有对数据的存储运算逻辑判断及自动化操作等功能。它的出现,极大地扩充了传统仪器的应用范围。智能仪器凭借其体积小、功能强、功耗低等优势,迅速地在家用电器、科研单位和工业企业中得到了广泛的应用。 传感器取被测参量的信息并转换成电信号,经滤波去除干扰后送入多路模拟开关;由单片机逐路选通模拟开关将各输入通道的信号逐一送入程控增益放大器,放大后的信号经AD转换器转换成相应的脉冲信号后送入单片机中;单片机根据仪器所设定的初值进行相应的数据运算和处理(如非线性校正等);运算的结果被转换为相应的数据进行显示和打印;同时单片机把运算结果与存储于片内FlashROM(闪速存储器)或EPROM(电可擦除存贮器)内的设定参数进行运算比较后,根据运算结果和控制要求,输出相应的控制信号(如报警装置触发、继电器触点等)。此外,智能仪器还可以与PC机组成分布式测控系统,由单片机作为下位机采集各种测量信号与数据,通过串行通信将信息传输给上位机PC机,由PC机进行全局管理。通过Keil软件编译,连接。关键字:AD转换器 EPROM PC机 STC89C51 铂金属电阻目录一 设计目的及原理51.1设计题目和目的51.1.1设计题目51.1.2设计目的51.2设计基本要求51.3设计原理6二硬件设计71.1系统原理框图71.1.1STC89C51简介81.2基本模块简介111.2.1 Pt100温度测量接口技术111.2.2热电阻PT100信号调理电路设计121.2.3功率输出电路121.2.4 4-20mA电流输出电路131.2.5数码管显示及指示电路131.2.6按键电路151.2.7报警电路15当温度超过报警限时,单片机相应管脚输出一定频率的电平。蜂鸣器发出响声。1.2.8下载电路151.2.9 通信电路161.2.10输出驱动电路161.2.11电源电路171.2.12比例控制算法171.1.13热非线性校正算法181.3.1基于STC89C51单片机实现智能测温仪表软件设计191.3.2基于STC89C51单片机的智能测温仪表程序框架21三系统流程图25四.总电路图26五.体会心得27六.参考文献27软件c语言28一 设计目的及原理1.1设计题目和目的1.1.1设计题目实现智能数字显示仪表。要求8位数码管显示(4位显示测量值,4位显示设定值),4输入按钮(功能选择、数码管选择、数字增加、数字减少),可设定上下限报警(蜂鸣器报警)。适配PT100热电阻,测温范围为0300。采用比例控制、并用晶闸管脉宽调制驱动1000W电加热器(电源电压为AC220V)。1.1.2设计目的涉及智能仪表硬件与软件设计。智能仪器课程设计是智能仪器课程教学的重要环节,根据设计智能仪表产品的课程改革目的,特选择一些小型智能仪表产品作为课设题目,满足教学需求。单片机综合练习是一项综合性的专业实践活动,目的是让学生将所学的基础理论和专业知识运用到具体的工程实践中,以培养学生综合运用知识能力、实际动手能力和工程实践能力。1.2设计基本要求(1)正确理解设计题目,经过查阅资料,给出正确设计方案,画出详细仪表原理框图(各个功能部分用方框表示,各块之间用实际信号线连接)。在互连网上收集题目中所用到的器件资料,例如传感器(热偶分度表等)、信号调理电路、AD转换器、单片机、继电器、电源、显示器件等。在互连网上收集相关单片机的显示、AD转换、显示、控制算法等程序。在充分研究这些资料基础之上,给出设计方案(选择信号调理电路、单片机、显示、按键输入、继电器驱动、电源等,简要说明选择的理由)(2)用Protel99SE软件设计仪表详细原理图。要求正确标记元件序号、元件数值、封装名。(3)设计PCB图在画PCB前应该购买元件,因为有了元件才知道封装尺寸,但也可以不购买元件,只到元件商店测量实际元件尺寸后,画封装图。(4)熟悉单片机内部资源,学会ADC、SPI接口、定时器、中断、串口、I/O引脚等模块的编程。(5)采用C语言开发所设计仪表的程序。 按照题目要求,确定仪表需要完成的任务(功能),然后分别编制各任务的程序。程序应该有说明,并有详细注释。1.3设计原理 由热电阻传感器送来的电信号在测量桥路进行冷端自动补偿后,送入放大器,一面把信号进行放大,同时把非线性信号校正为线性信号,经线性放大信号一路转换电路把模拟量转换成数字信号进行数字显示,另一路传输到调节网络,进行规定的比较运算,同时输出一个需要的控制信号和进行工作状态指示。二硬件设计1.1系统原理框图STC89C51单片机按键报警指示和显示热电阻输入下载通信本设计智能温度数显表由温度监测、信号处理、输出控制三部分组成。其系统框图如图1所示,它通过Pt100热电阻传感器获取绕组温度值,经信号调理电路处理后直接送入控制器的A/D转换输入端。微控制器根据信号数据及设定的各种控制参数,按照嵌入的软件控制规律执行计算与处理,自动显示智能仪表数显表可测的温度范围、并根据当前状态输出正常、设定上下线报警等。1.1.1 STC89C51简介STC89C51系列单片机是从引脚到内核都完全兼容标准8051的单片机,有PDIP-40、PLCC-44、PQFP-44三种封装形式。Intel公司MCS-51单片机的基本结构如图1-4所示。该单片机具有如下资源:(1)一个8位算术逻辑单元(CPU)。(2)4组,共32个I/O口,每口8个引脚,可单独寻址,其中P0、P2口具有地址/数据总线功能。(3)两个16位定时/计数器(简称为定时器)。(4)全双工串行通信口。(5)5个中断源,具有两个中断优先级。(6)128B内置RAM。(7)具有64KB可寻址数据和代码区。(8)各个模块采用三总线(地址、数据和控制)连接。(9)开放总线接口,P0口分时作为8位数据总线与8位地址总线,P2口作为地址总线高8位。每个MCS-51单片机处理周期包括12个时钟周期(又称为一个机器周期),每12个时钟(一个机器)周期用来完成一个操作,例如取指令等,指令执行时间为时钟频率除以12后取倒数,如果系统时钟是12MHz,则相当于执行每条指令所需要的时间1s。 1.I/O端口I/O端口0、1、2、3驱动器与锁存器。2.存储器部分RAM:51单片机具有128字节的片内RAM,FLASH:片内ROM,用于保存代码等,片内ROM采用FLASH结构的存储器构成,具有ISP功能,容量随型号不同而不同,对于AT89S51单片机,FLASH容量为4KB。SP:栈指针3.算术与逻辑运算部分寄存器B:用于乘除等操作的寄存器,常保存运算的第2操作数。ACC:累加器,TMP1、TMP2:暂存器,用于暂时保存数据。ALU:8位算术逻辑单元ALU,PSW:程序状态字,4.指令处理部分程序地址寄存器:用于保存程序地址。缓冲器:缓冲总线数据。PC+1:程序计数器加1处理模块。PC:保存下一条指令地址的16位地址寄存器,可寻址范围为64K。DPTR:双数据指针,DPTR为两个8位缓存器(DPH和DPL)组成的16位缓存器,。 5.时序控制与指令寄存部分定时与控制单元:指令寄存器:保存指令并指令译码后,在定时与控制单元的配合下,使CPU执行各种操作。WDT:看门狗。用于程序不运行时,自动复位单片机。OSC:时钟振荡器,与外接石英晶体一起组成时钟振荡器。6.ISP部分ISP端口:通过该端口与PC通信,实现在系统编程(ISP)。编程逻辑:控制ISP操作。7.外围模块部分该单片机的外围模块包括两个定时器,串行接口、4个I/O口与外中断模块。1.2基本模块简介1.2.1 Pt100温度测量接口技术(1)铂金属热电阻简介铂金属电阻精度高,稳定性好,具有一定的非线性,温度越高电阻变化率越小;最常用铂电阻按照0时的电阻值分为R0=10、R0=100和R0=1000等几种,称为Pt10、Pt100、Pt1000;铂电阻阻值与温度之间的关系呈非线性,即Rt = R0 ( I +t +t2 ) (t在0630之间) 式中: Rt是铂热电阻的电阻值,单位为;R0是铂热电阻在0时的电阻值,对于PT100,R0 = 100;是一阶温度系数, = 3.912 10 -3 ()是二阶温度系数, = 6.179 10 -7 ()铂热电阻PT100的阻值与温度之间的关系称为分度表,分度表给出温度每变化10对应的阻值。温度 PT100 阻值 传感两端电压 mV0100.00124.381100.39124.850119.40147.79100138.51170.64150157.33192.93200175.86214.68250194.10235.90300212.05256.59 1.2.2热电阻PT100信号调理电路设计基于PT100传感器测温的智能测温仪表试采用STC89C51单片机实现智能测温仪表。要求8位数码管显示(上排4位显示测量值,下排4位显示设定值),4输入按钮(功能选择、数码管选择、数值增加、数值减少),可设定上下限报警(蜂鸣器报警)值。传感器为PT100热电阻,测温范围为0300。采用比例 控制、并用晶闸管过零驱动1000W电加热器(电源电压为220VAC)。还可以输出与温度成正比的4-20mA电流远传到其他仪表。由题目可知,该测温仪表需要如下电路模块: (1)单片机电路(包括单片机最小系统、ADC、数码显示、按键、LED灯、电源等)。(2)热电阻PT100信号调理电路(3)420mA输出电路与加热功率驱动电路。1.2.3功率输出电路晶闸管过零驱动电路1.2.4 4-20mA电流输出电路1.2.5数码管显示及指示电路A:显示电路SM1显示的是热电阻测的电加热器的实际温度值,SM2显示的是人工设计的电加热器的期望温度值。数码管是有HC595芯片来驱动的,HC595接在SPI通信的3个接口上。B:指示电路指示电路是指示按键的输入状态的。D1、D2、D3、D4与S1、S2、S3、S4一一对应,当某个按键按下时,单片机相应的引脚将置低电平,使该按键相对应的二极管发光。1.2.6按键电路4个按键与单片机的接线图及个按键的作用如上图所示;当单片机的引脚输入为低电平时,表示该引脚所对应的按键按下,单片机实现相应的功能。1.2.7报警电路当温度超过报警限时,单片机相应管脚输出一定频率的电平。蜂鸣器发出响声。1.2.8下载电路下载程序代码用的是SPI接口,用ISP电缆对单片机进行编程。1.2.9 通信电路该模块用到跳线,不通信时D0、D1口作为常规I/O口使用;通信时其作为通信口使用,实现单片机与单片机或是其它上位机的通信。1.2.10输出驱动电路采用光控过零驱动晶闸管,进而控制电加热器的通断电。1.2.11电源电路1.2.12比例控制算法比例控制(P)是一种控制算法,其输出量out与温度偏差e=SV-PV成比例关系,写成数学公式是:out= kp * e+out0式中,e是测量温度值PV与设定温度值SV之间的偏差,Kp是比例系数。out是输出量。out0是对应e=0时的控制量,可由人工确定,通常取输出控制量不同比例系数Kp下对象温度变化示意图若是假设比例带为pb,控制量为out,设最大偏差值就是温度设置值。则有如下的伪代码如下:e=PV-SV;kp=1/pb;out=kp*e+out0;if(outoutm)out=outm;if(out0) out=0;1.1.13热非线性校正算法温度范围0200的热电阻PT100的表格如下:unsigned char code R_TABLE21=100, 119.40,138.51, 157.33, 175.86,194.10,212.05;若是对于热电阻,有如下方法计算测得量RX。 假设Ri代表对应温度Ti的热电阻,测量得到的热电阻值为Rx,查表可知它位于(Ri,Ti)和R(i+1),T(i+1)两个标定点之间,则热电阻Rx所对应的温度值Tx可由下式求得,其算法示意如图10-2所示。两相邻电阻之间差50,则(Ri+1Ri)/50为直线斜率。可以得到Ri到RX的温度差为: T(RxRi)=(50/(Ri+1Ri)*(RxRi)线性标度变换的前提条件是传感器的输出信号与被测参数之间呈线性关系Ax 实际测量值(工程量)A0 一次测量仪表的下限(测量范围最小值)。Am 一次测量仪表的上限(测量范围最大值)。N0 仪表下限所对应的数字量。Nm仪表上限所对应的数字量。 Nx 实际测量值所对应的数字量。1.3.1基于STC89C51单片机实现智能测温仪表软件设计(1)初始化任务I/O引脚初始化(按钮、LED灯、ADC、DAC、E2PROM和SPI用引脚初始化)。定时器0初始化。中断初始化。(2)按钮任务:检测按钮并执行按钮动作,需要软件消除抖动。功能选择按钮:循环选择功能,例如,正常运行、设置报警上限值、设置报警下限值、设置温度给定值、设置比例控制回差值等功能。在数值设置状态,每按一次按钮,上排4位数码管显示功能码,下排显示设置值;在正常运行状态,上排显示测量值,下排显示设定温度值。数码管选择按钮:选择需要设置数值的数码管。数值增加按钮:用于设置数值的增加,每按下一次,数值加1。数值减少按钮:用于设置数值的减少,每按下一次,数值减1。按钮设置值应该随时保存到24C02中。(3)扫描显示任务:数码管位选择与段码输出,就是将显示缓冲区的内容发送到数码管显示,将要显示的数据,组合成数组,再转换成十进制数字,发送到74HC595。不需要每个主程序循环都发送显示任务,因此可在定时器0中断中设置显示任务执行标记,当标记为1时,执行显示任务。由于显示内容随按钮选择的功能不同而不同,因此功能选择按钮任务中应该给出显示控制标记,控制显示内容。(4)TLC1549数据获取任务,需要将读TLC1549的程序写成函数。在定时器0中设置ADC任务执行标记,当该标记为1时,执行ADC数据获取任务。要求连续读取8个数据,然后取平均值。并将完成滤波后的数据存入显示数组。(5)24C02读写任务,需要编制读写24C02的函数。单片机用软件控制引脚实现I2C接口,在上电时,应该读出所有保存在24C02中的数据到数组中;在设置各种数据时,应该随时将设置的数据字节写入24C02。(6)TLC5615任务,该任务是把温度转换成的代表电流的数字写入TLC5615,实现电流输出。该任务在定时器0给出的标记控制下执行。(7)定时器0中断任务,该任务是产生间隔的定时信号,ADC转换、扫描显示、DAC输出以及采样周期、数据计算等都需要定时器0给出标记,在标记为1时,才能执行任务。(8)数据处理任务将TLC1549输出的数字通过标度变换转成温度值。因为PT100的电阻值与温度之间呈非线性,因此需要查表法矫正。具有回差比例控制算法实现。根据温度值控制晶闸管使接触器得电或失电,使加热器加热或是不加热。所谓回差比例控制就是当温度达到并超过设定值时,停止加热;当温度低于设定值时,开始加热。而有回差比例控制就是有两个设定值,当所测温度高于上设定值时停止加热;当低于下设定值时,开始加热,上下设定值之间的温度差称为回差。回差比例控制可以防止接触器频繁动作。实现报警算法。上限报警与下限报警分别给出不同的报警声。计算TLC5615需要的数字,就是将温度值转换成电流值。1.3.2基于STC89C51单片机的智能测温仪表程序框架基于STC89C51单片机的智能测温仪表程序框架如下。#include /51单片机头文件定义数码管译码数组;定义数码管位选数组;定义保存在24C02中数据的数组;定义时间标记变量; /display_time,sample_time,control_time,DAC_time等定义其他全局数组与变量;声明函数原型;(TLC1549,TLC5615、24C02等函数)void main(void)定时器初始化;引脚初始化; /按钮、LED灯、ADC、DAC、E2PROM和软件SPI用引脚初始化其他初始化语句;从24C02读数组语句;/将保存的数据读到数组,每次单片机上电后,就使用该数组中的数据while(1)按键处理语句;功能选择,控制周期、设定值、回差值、报警值等输入;将数组写入24C02语句; /将按键输入的数据保存到数组/数码管显示语句:if(display_time= =1) /如果显示标记display_time=1,则执行显示任务,完成一位数码管显示数码管扫描显示语句;/采用两片74HC595扫描数码管display_time= =0;/ADC转换与数字滤波语句:if(sample_time= =1) /如果数据采样标记sample_time=1,执行ADC转换任务TLC1549转换、数字滤波与非线性校正程序;sample_time= =0;/ADC输出数值判断、报警、比例算法运算与控制量输出:if (control_time= =1) /如果控制周期标记control_time=1,则实现控制算法温度值判断与报警语句;比例算法运算语句;控制量输出语句;(引脚赋值语句)control_time=0;/DAC转换语句:if (DAC_time= =1) /如果DAC转换标记DAC_time=1,将数据写入DACTLC5615数据输出语句;DAC_time=0;/定时器0中断服务程序,用于产生显示、ADC转换与控制周期标记void Timer0() interrupt 1 static unsigned char n,m,k,h;n+; m+,k+;h+;if(n= = display_time0) /display_time0为显示周期n=0; display_time=1;if(m= = sample_time0) /sample_time0为ADC转换周期m=0; sample_time=1;if(k= = control_time0) /control_time0为控制周期k=0; control_time=1;if(h= = DAC_time0) /DAC_time0为DAC转换周期h=0; DAC_time=1;三系统流程图初始化开始A/D转换程序滤波程序数值转换报警数码输出控制输出数码转换四.总电路图五.体会心得本设计实现了温度的测量,在达到设计要求的同时也具备一定的扩展性,通过简单的软件修改,即可实现温度上下限控制和越限报警功能。本次设计使我更加深刻的认知到智能仪表控制的在现代仪表控制中的实用性,重要性。在以后的学习中我将加大智能仪表设计的学习。在课设中认知到了整个系统结构紧凑、简单可靠、操作灵活、功能强、性能价格比高,较好地满足现代生产和科研的需要。六.参考文献单片机原理及应用 夏路易单片机初级教程 张迎新,杜小平,樊桂花等智能仪器设计基础 赵新民,王祈传感器与单片机接口实例 来清民微型计算机原理及应用 侯晓霞,王建宇,戴跃伟测控电路设计 周严软件c语言#include /Atmega16单片机头文件#include Flash unsigned char SHUMA=0xC0,0xF9,0xA4,0XB0,0x99,0x92 0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,;/定义数码管译码数组定义数码管位选数组;SPI初始化;Void SPI_MasterInit(void)DDRB|=(15)|(17);SPCR=(16)|(14) |(15)|(11)| (10);Void SPI_595_Out(unsigned char i)SPDR=i;While(!SPDR&(17);Void main(void)unsigned char saomiao=0;Unsigned char w10;DDRA=0x00;PORTA=0X00;DDRB=0XB0;PORTB=0Xff;DDRC=0XFC;PORTC=0XFF;PORTD=0X00;DDRD=0XFF;SPI_Masterlnit();While(1)data0=1234;data1=5678;W0=data0%50;W1=data0/50%50;W2=data0/100%50;W3=data0/1000%50;W4=data0%50;W5=data0/50%50;W6=data0/100%50;W1=data0/1000%50;PORTB&=(14);SPI_595_Out(weizhisaomiao);SPI_595_Out(dispwsaomiao;PORTB=|(1=8saomiao=0;while(1)uchar j=0;uint i;DDAR=0xFF;DDRB=0XFF;PORTD=0XFF;DDRD=0X00;While(1)if(PIND|0XEE)=0XEF)For(i=0;i99)j=0;While(PIND|0XEF)=0XEF);PORTB=SHUMAj/50;PORTC=SHUMAj%50;PORTA=j;while(1)PORTC=SHUMAcounter;/数码管与LED灯显示语句: if(display_time= =1) /如果显示标记display_time=1,则执行显示任务,完成一位数码管显示数码管扫描显示语句;/采用两片74HC595扫描数码管display_time= =0;/ADC转换与数字滤波语句:if(sample_time= =1) ADC转换、数字滤波与非线性校正程序;sample_time= =0;/ADC输出数值判断、报警、位式算

温馨提示

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

评论

0/150

提交评论