还剩18页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
智能仪器设计基础课程设计《智能仪器设计基础》课程设计报学院专业班级自动化姓名学号题目号27题目
27.试设计智能仪表实现智能数字显示仪表要求8位数码管显示(4位显示测量值,4位显示设定值),4输入按钮(功能选择、数码管选择、数字增加、数字减少),可设定上下限___(蜂鸣器___)适配PT100热电阻,测温范围为0℃~300℃采用比例控制、并用晶闸管脉宽调制驱动1000W电加热器(电源电压为AC220V)摘要运用单片机原理及应用-基于51与高速所学知识,做好智能仪器是含有微型计算机或者微型处理器的测量仪器,拥有对数据的存储运算逻辑判断及自动化操作等功能它的出现,极大地扩充了传统仪器的应用范围智能仪器凭借其体积小、功能强、功耗低等优势,迅速地在家用电器、科研单位和工业企业中得到了广泛的应用传感器取被测参量的信息并转换成___号,经滤波去除干扰后送入多路模拟开关;由单片机逐路选通模拟开关将各输入通道的___逐一送入程控增益放大器,放大后的___经A/D转换器转换成相应的脉冲___后送入单片机中;单片机根据仪器所设定的初值进行相应的数据运算和处理如非线性校正等;运算的结果被转换为相应的数据进行显示和打印;同时单片机把运算结果与存储于片内FlashROM闪速存储器或EPROM电可擦除存贮器内的设定参数进行运算比较后,根据运算结果和控制要求,输出相应的控制___如___装置触发、继电器触点等此外,智能仪器还可以与PC机组成分布式测控系统,由单片机作为下位机采集各种测量___与数据,通过串行通信将信息传输给上位机——PC机,由PC机进行全局管理通过Keil软件编译,连接关键字A/D转换器EPROMPC机STC___C51铂金属电阻目录一设计目的及原理
51.1设计题目和目的
51.
1.1设计题目
51.
1.2设计目的
51.2设计基本要求
51.3设计原理6二.硬件设计
71.1系统原理框图
71.
1.1STC___C51简介
81.2基本模块简介
111.
2.1Pt100温度测量接口技术
111.
2.2热电阻PT100___调理电路设计
121.
2.3功率输出电路
121.
2.44-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基于STC___C51单片机实现智能测温仪表软件设计
191.
3.2基于STC___C51单片机的智能测温仪表程序框架21三.系统流程图25四.总电路图26五.体会心得27六.___27软件c语言28一设计目的及原理
1.1设计题目和目的
1.
1.1设计题目实现智能数字显示仪表要求8位数码管显示(4位显示测量值,4位显示设定值),4输入按钮(功能选择、数码管选择、数字增加、数字减少),可设定上下限___(蜂鸣器___)适配PT100热电阻,测温范围为0℃~300℃采用比例控制、并用晶闸管脉宽调制驱动1000W电加热器(电源电压为AC220V)
1.
1.2设计目的涉及智能仪表硬件与软件设计智能仪器课程设计是智能仪器课程教学的重要环节,根据设计智能仪表产品的课程___目的,特选择一些小型智能仪表产品作为课设题目,满足教学需求单片机综合练习是一项综合性的专业实践活动,目的是让学生将所学的基础理论和专业知识运用到具体的工程实践中,以培养学生综合运用知识能力、实际动手能力和工程实践能力
1.2设计基本要求
(1)正确理解设计题目,经过查阅资料,给出正确设计方案,画出详细仪表原理框图(各个功能部分用方框表示,各块之间用实际___线连接)在互连网上收集题目中所用到的器件资料,例如传感器(热偶分度表等)、___调理电路、AD转换器、单片机、继电器、电源、显示器件等在互连网上收集相关单片机的显示、AD转换、显示、控制算法等程序在充分研究这些资料基础之上,给出设计方案(选择___调理电路、单片机、显示、按键输入、继电器驱动、电源等,简要说明选择的理由)
(2)用Protel99SE软件设计仪表详细原理图要求正确标记元件序号、元件数值、封装名
(3)设计PCB图在画PCB前应该___元件,因为有了元件才知道封装尺寸,但也可以不___元件,只到元件商店测量实际元件尺寸后,画封装图
(4)熟悉单片机内部资源,学会ADC、SPI接口、定时器、中断、串口、I/O引脚等模块的编程
(5)采用C语言___所设计仪表的程序按照题目要求,确定仪表需要完成的任务(功能),然后分别编制各任务的程序程序应该有说明,并有详细注释
1.3设计原理由热电阻传感器送来的___号在测量桥路进行冷端自动补偿后,送入放大器,一面把___进行放大,同时把非线性___校正为线性___,经线性放大___一路A/D转换电路把模拟量转换成数字___进行数字显示,另一路传输到调节网络,进行规定的比较运算,同时输出一个需要的控制___和进行工作状态指示二.硬件设计
1.1系统原理框图STC___C51单片机按键报警指示和显示热电阻输入下载通信本设计智能温度数显表由温度监测、___处理、输出控制三部分组成其系统框图如图1所示它通过Pt100热电阻传感器获取绕组温度值经___调理电路处理后直接送入控制器的A/D转换输入端微控制器根据___数据及设定的各种控制参数按照嵌入的软件控制规律执行计算与处理自动显示智能仪表数显表可测的温度范围、并根据当前状态输出正常、设定上下线___等
1.
1.1STC___C51简介STC___C51系列单片机是从引脚到内核都完全兼容标准8051的单片机,有PDIP-
40、PLCC-
44、FP-44三种封装形式Intel公司MCS-51单片机的基本结构如图1-4所示该单片机具有如下资源
(1)一个8位算术逻辑单元(CPU)
(2)4组,共32个I/O口,每口8个引脚,可单独寻址,其中P
0、P2口具有地址/数据总线功能
(3)两个16位定时/计数器(简称为定时器)
(4)全双工串行通信口
(5)5个中断源,具有两个中断优先级
(6)128B内置RAM
(7)具有64KB可寻址数据和代码区
(8)各个模块采用三总线(地址、数据和控制)连接
(9)开放总线接口,P0口分时作为8位数据总线与8位地址总线,P2口作为地址总线高8位每个MCS-51单片机处理周期包括12个时钟周期(又称为一个机器周期),每12个时钟(一个机器)周期用来完成一个操作,例如取指令等,指令执行时间为时钟频率除以12后取倒数,如果系统时钟是12MHz,则相当于执行每条指令所需要的时间1μs
1.I/O端口I/O端口
0、
1、
2、3驱动器与锁存器
2.存储器部分RAM51单片机具有128字节的片内RAM,FLASH片内ROM,用于保存代码等,片内ROM采用FLASH结构的存储器构成,具有ISP功能,容量随型号不同而不同,对于AT___S51单片机,FLASH容量为4KBSP栈指针
3.算术与逻辑运算部分寄存器B用于乘除等操作的寄存器,常保存运算的第2操作数ACC累加器,TMP
1、TMP2暂存器,用于暂时保存数据ALU8位算术逻辑单元ALU,PSW程序状态字,
4.指令处理部分程序地址寄存器用于保存程序地址缓冲器缓冲总线数据PC+1程序计数器加1处理模块PC保存下一条指令地址的16位地址寄存器,可寻址范围为64KDPTR双数据指针,DPTR为两个8位缓存器(DPH和DPL)组成的16位缓存器,
5.时序控制与指令寄存部分定时与控制单元指令寄存器保存指令并指令译码后,在定时与控制单元的配合下,使CPU执行各种操作WDT看门狗用于程序不运行时,自动复位单片机OSC时钟振荡器,与外接石英晶体一起组成时钟振荡器
6.ISP部分ISP端口通过该端口与PC通信,实现在系统编程(ISP)编程逻辑控制ISP操作
7.___模块部分该单片机的___模块包括两个定时器,串行接口、4个I/O口与外中断模块
1.2基本模块简介
1.
2.1Pt100温度测量接口技术
(1)铂金属热电阻简介铂金属电阻精度高,稳定性好,具有一定的非线性,温度越高电阻变化率越小;最常用铂电阻按照0℃时的电阻值分为R0=10Ω、R0=100Ω和R0=1000Ω等几种,称为Pt
10、Pt
100、Pt1000;铂电阻阻值与温度之间的关系呈非线性即Rt=R0I+αt+βt2t在0~630℃之间式中:Rt是铂热电阻的电阻值,单位为Ω;R0是铂热电阻在0℃时的电阻值,对于PT100,R0=100Ω;α是一阶温度系数,α=
3.912×10-3℃β是二阶温度系数,β=
6.179×10-7℃铂热电阻PT100的阻值与温度之间的关系称为分度表,分度表给出温度每变化10℃对应的阻值温度℃PT100阻值Ω传感两端电压mV
0100.
00124.
381100.
39124.
850119.
40147.
79100138.
51170.
64150157.
33192.
93200175.
86214.
68250194.
10235.
90300212.
05256.
591.
2.2热电阻PT100___调理电路设计基于PT100传感器测温的智能测温仪表试采用STC___C51单片机实现智能测温仪表要求8位数码管显示(上排4位显示测量值,下排4位显示设定值),4输入按钮(功能选择、数码管选择、数值增加、数值减少),可设定上下限___(蜂鸣器___)值传感器为PT100热电阻,测温范围为0℃~300℃采用比例控制、并用晶闸管过零驱动1000W电加热器(电源电压为220VAC)还可以输出与温度成正比的4-20mA电流远传到其他仪表由题目可知,该测温仪表需要如下电路模块
(1)单片机电路(包括单片机最小系统、ADC、数码显示、按键、LED灯、电源等)
(2)热电阻PT100___调理电路
(3)4~20mA输出电路与加热功率驱动电路
1.
2.3功率输出电路晶闸管过零驱动电路
1.
2.44-20mA电流输出电路
1.
2.5数码管显示及指示电路A显示电路___1显示的是热电阻测的电加热器的实际温度值,___2显示的是人工设计的电加热器的期望温度值数码管是有HC595芯片来驱动的,HC595接在SPI通信的3个接口上B指示电路指示电路是指示按键的输入状态的D
1、D
2、D
3、D4与S
1、S
2、S
3、S4一一对应,当某个按键按下时,单片机相应的引脚将置低电平,使该按键相对应的二极管发光
1.
2.6按键电路4个按键与单片机的接线图及个按键的作用如上图所示;当单片机的引脚输入为低电平时,表示该引脚所对应的按键按下,单片机实现相应的功能
1.
2.7___电路当温度超过___限时,单片机相应管脚输出一定频率的电平蜂鸣器发出响声
1.
2.8下载电路下载程序代码用的是SPI接口,用ISP电缆对单片机进行编程
1.
2.9通信电路该模块用到跳线,不通信时D
0、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;ifoutoutmout=outm;ifout假设Ri代表对应温度Ti的热电阻,测量得到的热电阻值为Rx,查表可知它位于(Ri,Ti)和[Ri+1,Ti+1]两个标定点之间,则热电阻Rx所对应的温度值Tx可由下式求得,其算法示意如图10-2所示两相邻电阻之间差50℃,则(Ri+1-Ri)/50为直线斜率可以得到Ri到RX的温度差为T(Rx-Ri)=(50/(Ri+1-Ri))*(Rx-Ri)线性标度变换的前提条件是传感器的输出___与被测参数之间呈线性关系Ax实际测量值工程量A0一次测量仪表的下限(测量范围最小值)Am一次测量仪表的上限(测量范围最大值)N0仪表下限所对应的数字量Nm仪表上限所对应的数字量Nx实际测量值所对应的数字量
1.
3.1基于STC___C51单片机实现智能测温仪表软件设计
(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基于STC___C51单片机的智能测温仪表程序框架基于STC___C51单片机的智能测温仪表程序框架如下#include//51单片机头文件定义数码管译码数组;定义数码管位选数组;定义保存在24C02中数据的数组;定义时间标记变量;//display_time,sample_time,control_time,DAC_time等定义其他全局数组与变量;声明函数原型;(TLC1549,TLC
5615、24C02等函数)void___invoid{定时器初始化;引脚初始化;//按钮、LED灯、ADC、DAC、E2PROM和软件SPI用引脚初始化其他初始化语句;从24C02读数组语句;//将保存的数据读到数组,每次单片机上电后,就使用该数组中的数据while1{按键处理语句;{功能选择,控制周期、设定值、回差值、___值等输入;将数组写入24C02语句;//将按键输入的数据保存到数组}//数码管显示语句ifdisplay_time==1//如果显示标记display_time=1,则执行显示任务,完成一位数码管显示{数码管扫描显示语句;//采用两片74HC595扫描数码管display_time==0;}//ADC转换与数字滤波语句ifsample_time==1//如果数据采样标记sample_time=1,执行ADC转换任务{TLC1549转换、数字滤波与非线性校正程序;sample_time==0;}//ADC输出数值判断、___、比例算法运算与控制量输出ifcontrol_time==1//如果控制周期标记control_time=1,则实现控制算法{温度值判断与___语句;比例算法运算语句;控制量输出语句;(引脚赋值语句)control_time=0;}//DAC转换语句ifDAC_time==1//如果DAC转换标记DAC_time=1,将数据写入DAC{TLC5615数据输出语句;DAC_time=0;}}//定时器0中断服务程序,用于产生显示、ADC转换与控制周期标记voidTimer0interrupt1{staticunsignedcharnmkh;n++;m++,k++;h++;ifn==display_time0//display_time0为显示周期{n=0;display_time=1;}ifm==sample_time0//sample_time0为ADC转换周期{m=0;sample_time=1;}ifk==control_time0//control_time0为控制周期{k=0;control_time=1;}ifh==DAC_time0//DAC_time0为DAC转换周期{h=0;DAC_time=1;}}三.系统流程图初始化开始A/D转换程序滤波程序数值转换___数码输出控制输出数码转换四.总电路图五.体会心得本设计实现了温度的测量,在达到设计要求的同时也具备一定的扩展性,通过简单的软件修改,即可实现温度上下限控制和越限___功能本次设计使我更加深刻的认知到智能仪表控制的在现代仪表控制中的实用性,重要性在以后的学习中我将加大智能仪表设计的学习在课设中认知到了整个系统结构紧凑、简单可靠、操作灵活、功能强、性能___比高,较好地满足现代生产和科研的需要六.___《单片机原理及应用》夏路易《单片机初级教程》张迎新,杜小平,樊桂花等《智能仪器设计基础》赵新民,王祈《传感器与单片机接口实例》来清民《微型计算机原理及应用》侯晓霞,王建宇,戴跃伟《测控电路设计》周严软件c语言#includeAT___X
51.h//Atmega16单片机头文件#include___cros.hFlashunsignedcharSHUMA[]={0xC00xF90xA40XB00x990x920x820xF80x800x900x880x830xC60xA10x860x8E};//定义数码管译码数组定义数码管位选数组;{SPI初始化;VoidSPI_MasterInitvoid{DDRB|=1〈〈5|(1〈〈7;SPCR=1〈〈6|(1〈〈4|1〈〈5|(1〈〈1|1〈〈0;}VoidSPI_595_Outunsignedchari{SPDR=i;While!SPDR1=8saomiao=0;while1{ucharj=0;uinti;DDAR=0xFF;DDRB=0XFF;PORTD=0XFF;DDRD=0X00;While1{ifPIND|0XEE==0XEFFori=0;i99j=0;}WhilePIND|0XEF==0XEF;PORTB=SHUMA[j/50];PORTC=SHUMA[j%50];PORTA=~j;}}{while1PORTC=SHUMA[counter];}//数码管与LED灯显示语句ifdisplay_time==1//如果显示标记display_time=1,则执行显示任务,完成一位数码管显示{数码管扫描显示语句;//采用两片74HC595扫描数码管display_time==0;}//ADC转换与数字滤波语句ifsample_time==1{ADC转换、数字滤波与非线性校正程序;sample_time==0;}//ADC输出数值判断、___、位式算法运算与控制量输出ifcontrol_time==1{温度值判断与___语句;//具有比例算法的运算语句{Error=SetPoint–temp_value;//求偏差LastError=Error;out=Proportion*Error//比例算法}control_time=0;}//DAC转换语句ifDAC_time==1{DAC数据输出语句;DAC_time=0;}}//PCA0中断服务程序用于产生PWM输出(高优先级中断)voidPCA0_ISRvoidinterrupt11//使用定时器0溢出作为时钟源{//PWM输出语句:unsignedintduty;//定义占空比变量,5000μs对应5V,1000μs对应1VTMOD=0X10;//定时器1,工作模式1,16位定时模式TH1=65536-1000/256;//定时1初始化TL1=65536-1000%256;ET1=1;//允许定时器1中断EA=1;//允许总中断TR1=1;//启动定时器1}//定时器1中断服务程序,用于产生显示、ADC转换、DAC与控制周期等标记定时器1中断服务程序timer1interrupt3{staticbitw;//定义位变量ifw==0//当w=0时,P
2.0输出低电平TL1=65535-6000-duty%256;P2_0=0;}//这里用P
2.0引脚输出PWM___else{TH1=65535-duty/256;//定时器1赋初值(高电平区间)TL1=65535-duty%256;P2_0=1;//当w=0时,P
2.0输出高电平}w=!w;}//设置定时器1中断级别低于PCAvoidtimer1interrupt3{staticnmkh;n++;m++,k++;h++;ifn==display_time0//display_time0为显示周期{n=0;display_time=1;}ifm==sample_time0//sample_time0为ADC转换周期{m=0;sample_time=1;}ifk==control_time0//control_time0为控制周期{k=0;control_time=1;}ifh==DAC_time0//DAC_time0为控制周期{h=0;DAC_time=1;}}模板内容仅供参考。