智能仪表控制_第1页
智能仪表控制_第2页
智能仪表控制_第3页
智能仪表控制_第4页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、智能仪器设计基础课程设计报学院:太原理工大学现代科技学院专业班级:自动化0701姓名:尹小鹏学号:07100510题目号:27题目: 27. 试设计智能仪表实现智能数字显示仪表。要求 8 位数码管显示( 4 位显示测量值, 4 位显示设定值),4 输入按钮(功能选择、数码管选择、数字增加、数字减少) ,可设定上下限报警(蜂鸣器报警) 。适配 PT100 热电阻,测温范围为 0300。采用比例控制、并用晶闸管脉宽调制驱动 1000W 电加热器(电源电压为 AC220V )。摘要运用单片机原理及应用 -基于 51 与高速所学知识, 做好智能仪器是含有微型计算机或者微型处理器的测量仪器, 拥有对数据

2、的存储运算逻辑判断及自动化操作等功能。 它的出现,极大地扩充了传统仪器的应用范围。智能仪器凭借其体积小、功能强、功耗低等优势,迅速地在家用电器、科研单位和工业企业中得到了广泛的应用。传感器取被测参量的信息并转换成电信号, 经滤波去除干扰后送入多路模拟开关;由单片机逐路选通模拟开关将各输入通道的信号逐一送入程控增益放大器, 放大后的信号经 AD 转换器转换成相应的脉冲信号后送入单片机中; 单片机根据仪器所设定的初值进行相应的数据运算和处理 (如非线性校正等 );运算的结果被转换为相应的数据进行显示和打印;同时单片机把运算结果与存储于片内 FlashROM(闪速存储器 )或 EPROM(电可擦除存

3、贮器 )内的设定参数进行运算比较后,根据运算结果和控制要求,输出相应的控制信号 (如报警装置触发、继电器触点等 )。此外,智能仪器还可以与 PC 机组成分布式测控系统,由单片机作为下位机采集各种测量信号与数据, 通过串行通信将信息传输给上位机 PC 机,由 PC 机进行全局管理。通过 Keil 软件编译,连接。关键字: A D 转换器EPROMPC 机 STC89C51铂金属电阻2目录一 设计目的及原理51.1 设计题目和目的5设计题目5设计目的51.2 设计基本要求51.3 设计原理6二硬件设计71.1 系统原理框图7STC89C51简介81.2 基本模块简介11温度测量接口技术11热电阻

4、PT100 信号调理电路设计12功率输出电路124-20mA 电流输出电路13数码管显示及指示电路13按键电路15报警电路15当温度超过报警限时,单片机相应管脚输出一定频率的电平。蜂鸣器发出响声。下载电路16通信电路16输出驱动电路17电源电路17比例控制算法17热非线性校正算法18基于 STC89C51单片机实现智能测温仪表软件设计19基于 STC89C51单片机的智能测温仪表程序框架21三系统流程图26四. 总电路图27五.体会心得273六.参考文献28软件 c 语言284一 设计目的及原理1.1 设计题目和目的设计题目实现智能数字显示仪表。要求8 位数码管显示( 4 位显示测量值, 4

5、位显示设定值),4 输入按钮(功能选择、数码管选择、数字增加、数字减少),可设定上下限报警 (蜂鸣器报警)。适配 PT100 热电阻,测温范围为0 300。采用比例控制、并用晶闸管脉宽调制驱动1000W 电加热器(电源电压为AC220V )。设计目的涉及智能仪表硬件与软件设计。 智能仪器课程设计是智能仪器课程教学的重要环节,根据设计智能仪表产品的课程改革目的,特选择一些小型智能仪表产品作为课设题目,满足教学需求。单片机综合练习是一项综合性的专业实践活动,目的是让学生将所学的基础理论和专业知识运用到具体的工程实践中,以培养学生综合运用知识能力、实际动手能力和工程实践能力。1.2 设计基本要求(

6、1)正确理解设计题目,经过查阅资料,给出正确设计方案,画出详细仪表原理框图(各个功能部分用方框表示,各块之间用实际信号线连接) 。在互连网上收集题目中所用到的器件资料,例如传感器(热偶分度表等) 、信号调理电路、 AD 转换器、单片机、继电器、电源、显示器件等。在互连网上收集相关单片机的显示、AD 转换、显示、控制算法等程序。在充分研究这些资料基础之上, 给出设计方案(选择信号调理电路、 单片机、显示、按键输入、继电器驱动、电源等,简要说明选择的理由)( 2)用 Protel99SE 软件设计仪表详细原理图。要求正确标记元件序号、元件数值、封装名。5( 3)设计 PCB 图在画 PCB 前应该

7、购买元件,因为有了元件才知道封装尺寸,但也可以不购买元件,只到元件商店测量实际元件尺寸后,画封装图。( 4)熟悉单片机内部资源,学会 ADC 、SPI 接口、定时器、中断、串口、 I/O 引脚等模块的编程。( 5)采用 C 语言开发所设计仪表的程序。按照题目要求,确定仪表需要完成的任务(功能) ,然后分别编制各任务的程序。程序应该有说明,并有详细注释。1.3 设计原理由热电阻传感器送来的电信号在测量桥路进行冷端自动补偿后, 送入放大器,一面把信号进行放大, 同时把非线性信号校正为线性信号, 经线性放大信号一路转换电路把模拟量转换成数字信号进行数字显示, 另一路传输到调节网络,进行规定的比较运算

8、,同时输出一个需要的控制信号和进行工作状态指示。6二硬件设计1.1 系统原理框图按键报警指示和显示STC89C51单片机热电阻输入下载通信本设计智能温度数显表由温度监测、 信号处理、输出控制三部分组成。其系统框图如图 1 所示 , 它通过 Pt100 热电阻传感器获取绕组温度值,经信号调理电路处理后直接送入控制器的A/D 转换输入端。微控制器根据信号数据及设定的各种控制参数, 按照嵌入的软件控制规律执行计算与处理 , 自动显示智能仪表数显表可测的温度范围、并根据当前状态输出正常、设定上下线报警等。7STC89C51 简介STC89C51 系列单片机是从引脚到内核都完全兼容标准8051 的单片机

9、,有 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 个中断源,具有两个中断优先级。8( 6)128B 内置 RAM 。( 7)具有 64KB 可寻址数据和代码区。( 8)各个模块采用三总线(地址、数据和控制)连接。( 9)开放总线接口, P0

10、 口分时作为 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 功能,容量随型号不

11、同而不同, 对于 AT89S51 单片机, FLASH 容量为 4KB。SP:栈指针3.算术与逻辑运算部分寄存器 B:用于乘除等操作的寄存器,常保存运算的第2 操作数。ACC:累加器,TMP1、TMP2:暂存器,用于暂时保存数据。ALU :8 位算术逻辑单元ALU ,9PSW:程序状态字,4.指令处理部分程序地址寄存器:用于保存程序地址。缓冲器:缓冲总线数据。PC+1:程序计数器加1 处理模块。PC:保存下一条指令地址的 16 位地址寄存器,可寻址范围为 64K 。DPTR:双数据指针, DPTR 为两个 8 位缓存器( DPH 和 DPL )组成的 16 位缓存器,。5.时序控制与指令寄存部

12、分定时与控制单元:指令寄存器:保存指令并指令译码后,在定时与控制单元的配合下,使 CPU 执行各种操作。WDT :看门狗。用于程序不运行时,自动复位单片机。OSC:时钟振荡器,与外接石英晶体一起组成时钟振荡器。6.ISP 部分ISP 端口:通过该端口与PC 通信,实现在系统编程(ISP)。编程逻辑:控制ISP 操作。7.外围模块部分该单片机的外围模块包括两个定时器,串行接口、4 个 I/O 口与外中断模块。101.2 基本模块简介温度测量接口技术( 1)铂金属热电阻简介铂金属电阻精度高,稳定性好,具有一定的非线性,温度越高电阻变化率越小;最常用铂电阻按照 0时的电阻值分为 R0=10、R0=1

13、00和 R0=1000 等几种,称为 Pt10、Pt100、Pt1000;铂电阻阻值与温度之间的关系呈非线性,即Rt = R0 ( I +2 )t (t+ 在t0630之间 )式中 : Rt 是铂热电阻的电阻值,单位为;R0 是铂热电阻在0时的电阻值,对于 PT100,R0 = 100 ;是一阶温度系数, = 3.912-3×(10)是二阶温度系数, -7= 6.179×()10铂热电阻PT100 的阻值与温度之间的关系称为分度表,分度表给出温度每变化 10对应的阻值。温度 PT100 阻值 传感两端电压 mV0100.00124.381100.39124.850119.4

14、0147.79100138.51170.64150157.33192.93200175.86214.68250194.10235.90300212.05256.5911热电阻 PT100 信号调理电路设计基于 PT100 传感器测温的智能测温仪表试采用 STC89C51单片机实现智能测温仪表。 要求 8 位数码管显示(上排 4 位显示测量值, 下排 4 位显示设定值),4 输入按钮(功能选择、数码管选择、数值增加、数值减少) ,可设定上下限报警 (蜂鸣器报警)值。传感器为 PT100 热电阻,测温范围为 0300。采用比例控制、并用晶闸管过零驱动 1000W 电加热器(电源电压为 220VAC

15、)。还可以输出与温度成正比的 4-20mA 电流远传到其他仪表。由题目可知,该测温仪表需要如下电路模块:(1)单片机电路(包括单片机最小系统、 ADC 、数码显示、按键、LED 灯、电源等)。( 2)热电阻 PT100 信号调理电路( 3)420mA 输出电路与加热功率驱动电路。.+A5V+A5V C4Rx1R1R2R41041/2 LM358JPT1003k 3k 100k U1B.100R3U1AR5.1 .10k C1.2RG110k .10410k C2RF11/2 LM358CON2U2RG2RF2.104. TL431A100k .PT100C310k 22k 10k RP1RP0

16、.104200 .功率输出电路晶闸管过零驱动电路12.+5VR1 220 .L EDU0R216C1JMCU0, 1uF360 25R4R52Q1BT A1239470 134.0. 01uF0. 047uFMOC3063R3C2C3360 220VLNJ1_1J1_2.加热器J12000W.4-20mA 电流输出电路.+12V.+12VRP.200 C2R2.0. 1uF.475 JDACGND122Q110k.1 .A19013R1C3L M2580. 1uFC1R3GND12IR30. 1uF2. 32k+12V.+12VJ12VR51.49.9 2.R4GND12CON2Q2.A290

17、123. 01kJLL M2581RL.C42 .0250 .0. 1uFILGND12.GND12. .GND12.GND12数码管显示及指示电路A:显示电路a RSM0 510b 510c 510d .510e 510f510g 510h 510RSM717420531742053111111n812Lab c d e fg hn412La b cd e fg hn79n39LMLMn68RMn28RMn56.n16.RRSMG1设定值显示SMG2实际值显示13JSPI321hgfedc ban8n7 n6 n5 n4 n3 n2 n1 HQw51234567951234567911Uy1

18、AB CDEF1AB CDEF1Uy2QG HQG HQ Q QQ QHQ Q QQ QHHC595Q QQ QQQRHC595RLKLKK C CR cdK C CR cdC R REcnCR REcnR SSSVgRSSSVgGG32014683201468111111111111PB5MOSIJ5951data3PB42PB7SCKRCK1SRCK+5SM1显示的是热电阻测的电加热器的实际温度值,SM2显示的是人工设计的电加热器的期望温度值。数码管是有HC595芯片来驱动的, HC595接在 SPI 通信的 3 个接口上。B:指示电路指示电路是指示按键的输入状态的。D1、D2、 D3、

19、D4 与 S1、S2、S3、S4一一对应,当某个按键按下时, 单片机相应的引脚将置低电平,使该按键相对应的二极管发光。14按键电路4 个按键与单片机的接线图及个按键的作用如上图所示;当单片机的引脚输入为低电平时,表示该引脚所对应的按键按下,单片机实现相应的功能。报警电路15当温度超过报警限时,单片机相应管脚输出一定频率的电平。蜂鸣器发出响声。下载电路下载程序代码用的是SPI 接口,用 ISP 电缆对单片机进行编程。通信电路该模块用到跳线,不通信时D0、 D1口作为常规 I/O 口使用;通信时其作为通信口使用,实现单片机与单片机或是其它上位机的通信。16输出驱动电路采用光控过零驱动晶闸管,进而控

20、制电加热器的通断电。电源电路比例控制算法比例控制 (P)是一种控制算法,其输出量out 与温度偏差e=SV-PV 成比例关系,写成数学公式是:out= kp * e+out0式中, e 是测量温度值 PV 与设定温度值 SV 之间的偏差, Kp 是比例系数。 out 是输出量。 out0 是对应 e=0 时的控制量,可由人工确定,通常取输出控制量17.温度Kp大()eSV.Kp小.0t.不同比例系数 Kp 下对象温度变化示意图若是假设比例带为pb,控制量为 out,设最大偏差值就是温度设置值。则有如下的伪代码如下:e=PV-SV;kp=1/pb;out=kp*e+out0;if(out>

21、outm)out=outm;if(out<0)out=0;热非线性校正算法温度范围 0200的热电阻 PT100的表格如下:unsigned char code R_TABLE21=100, 119.40 ,138.51, 157.33, 175.86 ,194.10 ,212.05;若是对于热电阻,有如下方法计算测得量RX。假设 Ri 代表对应温度Ti 的热电阻,测量得到的热电阻值为Rx,18查表可知它位于( Ri ,Ti )和R(i+1) ,T(i+1) 两个标定点之间,则热电阻 Rx 所对应的温度值 Tx 可由下式求得,其算法示意如图 10-2 所示。两相邻电阻之间差50,则( R

22、i+1Ri )/50 为直线斜率。可以得到 Ri 到 RX的温度差为:T (RxRi )=(50/ (Ri+1Ri )* (RxRi )线性标度变换的前提条件是传感器的输出信号与被测参数之间呈线性关系N xN 0Ax( Am A0 ) N mN 0A0Ax 实际测量值 ( 工程量 )A0 一次测量仪表的下限(测量范围最小值)。Am 一次测量仪表的上限(测量范围最大值)。N0 仪表下限所对应的数字量。Nm仪表上限所对应的数字量。Nx 实际测量值所对应的数字量。基于 STC89C51单片机实现智能测温仪表软件设计(1)初始化任务I/O 引脚初始化(按钮、 LED灯、 ADC、DAC、E2PROM和

23、 SPI 用引脚初始化)。定时器 0 初始化。19中断初始化。( 2)按钮任务:检测按钮并执行按钮动作,需要软件消除抖动。功能选择按钮:循环选择功能,例如,正常运行、设置报警上限值、设置报警下限值、设置温度给定值、设置比例控制回差值等功能。在数值设置状态,每按一次按钮,上排 4 位数码管显示功能码,下排显示设置值;在正常运行状态,上排显示测量值,下排显示设定温度值。数码管选择按钮:选择需要设置数值的数码管。数值增加按钮:用于设置数值的增加,每按下一次,数值加1。数值减少按钮:用于设置数值的减少,每按下一次,数值减 1。按钮设置值应该随时保存到 24C02中。( 3)扫描显示任务:数码管位选择与

24、段码输出,就是将显示缓冲区的内容发送到数码管显示,将要显示的数据,组合成数组,再转换成十进制数字,发送到 74HC595。不需要每个主程序循环都发送显示任务,因此可在定时器 0 中断中设置显示任务执行标记, 当标记为 1 时,执行显示任务。 由于显示内容随按钮选择的功能不同而不同, 因此功能选择按钮任务中应该给出显示控制标记,控制显示内容。( 4)TLC1549数据获取任务,需要将读 TLC1549的程序写成函数。在定时器 0 中设置 ADC任务执行标记, 当该标记为 1 时,执行 ADC数据获取任务。要求连续读取 8 个数据,然后取平均值。并将完成滤波后的数据存入显示数组。( 5)24C02

25、 读写任务,需要编制读写 24C02 的函数。单片机用软件控制引脚实现 I2C 接口,在上电时,应该读出所有保存在 24C02中的20数据到数组中; 在设置各种数据时, 应该随时将设置的数据字节写入24C02。(6)TLC5615 任务,该任务是把温度转换成的代表电流的数字写入TLC5615,实现电流输出。该任务在定时器 0 给出的标记控制下执行。(7)定时器 0 中断任务,该任务是产生间隔的定时信号, ADC转换、扫描显示、 DAC输出以及采样周期、数据计算等都需要定时器 0 给出标记,在标记为 1 时,才能执行任务。(8)数据处理任务将 TLC1549输出的数字通过标度变换转成温度值。 因

26、为 PT100的电阻值与温度之间呈非线性,因此需要查表法矫正。具有回差比例控制算法实现。 根据温度值控制晶闸管使接触器得电或失电,使加热器加热或是不加热。 所谓回差比例控制就是当温度达到并超过设定值时,停止加热;当温度低于设定值时,开始加热。而有回差比例控制就是有两个设定值, 当所测温度高于上设定值时停止加热;当低于下设定值时, 开始加热,上下设定值之间的温度差称为回差。回差比例控制可以防止接触器频繁动作。实现报警算法。上限报警与下限报警分别给出不同的报警声。计算 TLC5615需要的数字,就是将温度值转换成电流值。基于 STC89C51单片机的智能测温仪表程序框架基于 STC89C51单片机

27、的智能测温仪表程序框架如下。#include <AT89X51.H>/51单片机头文件21定义数码管译码数组;定义数码管位选数组;定义保存在 24C02中数据的数组;定义时间标记变量;/display_time,sample_time ,control_time,DAC_time等定义其他全局数组与变量;声明函数原型;(TLC1549,TLC5615、24C02等函数)void main(void)定时器初始化;引脚初始化;/按钮、 LED灯、ADC、DAC、E2PROM和软件 SPI 用引脚初始化其他初始化语句;从 24C02读数组语句;/ 将保存的数据读到数组, 每次单片机上电

28、后,就使用该数组中的数据while(1)按键处理语句;功能选择,控制周期、设定值、回差值、报警值等输入;将数组写入 24C02 语句;/将按键输入的数据保存到数组22/ 数码管显示语句:if(display_time= =1)/如果显示标记 display_time=1,则执行显示任务,完成一位数码管显示数码管扫描显示语句;/ 采用两片 74HC595扫描数码管display_time= =0;/ADC 转换与数字滤波语句:if(sample_time=1)/如 果 数 据 采 样 标 记sample_time=1 ,执行 ADC转换任务TLC1549转换、数字滤波与非线性校正程序;sampl

29、e_time= =0;/ADC 输出数值判断、报警、比例算法运算与控制量输出:if(control_time=1)/如 果 控 制 周 期 标 记control_time=1,则实现控制算法温度值判断与报警语句;比例算法运算语句;控制量输出语句;(引脚赋值语句)23control_time=0;/DAC 转换语句:if (DAC_time= =1)/如果 DAC转换标记 DAC_time=1,将数据写入 DACTLC5615数据输出语句;DAC_time=0;/ 定时器 0 中断服务程序,用于产生显示、 ADC转换与控制周期标记void Timer0() interrupt 1static u

30、nsigned 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为控制周期24k=0; control_time=1;if(h= = DAC_time0)/DAC_time0为 DAC转换周期h=0; DAC_time=1;25三系统流程图开始初始化A/D 转换程序滤波程序

31、数值转换报警数码转换数 码 输出控制输出26四. 总电路图五.体会心得本设计实现了温度的测量, 在达到设计要求的同时也具备一定的扩展性,通过简单的软件修改,即可实现温度上下限控制和越限报警功能。本次设计使我更加深刻的认知到智能仪表控制的在现代仪表控制中的实用性,重要性。在以后的学习中我将加大智能仪表设计的学习。在课设中认知到了整个系统结构紧凑、简单可靠、操作灵活、功能强、27性能价格比高,较好地满足现代生产和科研的需要。六.参考文献单片机原理及应用夏路易单片机初级教程张迎新,杜小平,樊桂花等智能仪器设计基础赵新民,王祈传感器与单片机接口实例来清民微型计算机原理及应用侯晓霞,王建宇,戴跃伟测控电

32、路设计周严软件 c 语言#include <AT89X51.h >/Atmega16单片机头文件#include <macros.h>Flash unsigned char SHUMA=0xC0,0xF9,0xA4,0XB0,0x99,0x920x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,;/定义数码管译码数组定义数码管位选数组;SPI 初始化;Void SPI_MasterInit(void)DDRB|=(1 5)| ( 1 7) ;28SPCR=(16)| ( 1 4) |(1 5)| (1 1)| (1 0)

33、;Void SPI_595_Out(unsigned char i)SPDR=i;While(!SPDR&(1<<7);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

34、;W3=data0/1000%50;W4=data0%50;W5=data0/50%50;W6=data0/100%50;W1=data0/1000%50;PORTB&=(1<<4);SPI_595_Out(weizhisaomiao);SPI_595_Out(dispwsaomiao;PORTB=|(1<<4);saomiao+;if(saomiao>=8saomiao=0;while(1)uchar j=0;uint i;DDAR=0xFF;DDRB=0XFF;PORTD=0XFF;DDRD=0X00;While(1)29if(PIND|0XEE)=0XEF)For(i=0;i<1000;i+);If(PIND|0XEF)=0XEF)j+;If(j>99)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_

温馨提示

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

评论

0/150

提交评论