版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、水温控制系统的设计报告摘要:P1D控制是工控领域内的一种重要控制方法,将P1D算法应用到以51单片机为核心的控制系统中,能产生良好的控制效果。基于P1D算法的水温控制系统采用目前性价比较高的数字温度传感器DS18B20作为检测变送器,通过键盘向单片机输入设置数码管温度,单片机将温度偏差进行P1P运算后,输出PVCM波。PWM波作为执行机构的输入从而来决定电炉工作电压的大小,最终实现水温的控制。整个系统的电路结构简单,可靠性能高。经实验测试,该系统基本满足要求。关键词:Pin;51单片机;温度传感器DS18B20;PWM;键盘;显示目录第1章系统方案41.1 设计思想41.2 方案论证41.3
2、论证分析6第2章系统设计82.1 原件设计82.1.1 电源电路82.1.2 温度检测与交送环节82.1.3 单片机最小系统92.1.4 键盘电路112.1.5 显示电路112.1.6 加热驱动模块122.1.7 报警电路132.2 软件设计132.2.1 主函数13223按键设定函数142.2.4 温度采集函数152.2.6 PID运算于函数152.2.7 PWM产生函数172.3 系统调试182.3.1 人机界面调试183.3.2温度显示18第3章总结19附录系统源程序20第1章系统方案1.1 设计思想温度的期望值可用键盘设定,温度传感器检测实际温度,控制器根据实测值与期望值偏差通过相应运
3、算,输出相应的控制参数给加热驱动模块,从而实现闭环控制。整体设计框图1.2 方案论证1、控制翳根据设计要求,控制器主要用于对温度测量信号的接收和处理、控制显示电路对温度值实时显示、控制键盘实现对温度值的设定、控制加热驱动模块等。对控制器的选择有以下两种方案:方案一:采用FPGA作为系统控制器。FPGA采用并行的八()口方式,运算速度快,稳定性高,可用EDA软件仿真及调试,功能强大,易于拓展,适合做大规模实时系统控制核心。由于本设计对数据处理的速度要求不高,FPGA处理速度快的优势得不到充分体现,旦其成本较高,引脚较多,硬件电路布线复杂。方案二:采用STC90c516RD+作为系统控制器。单片机
4、运算功能强、软件编程灵活、自由度大、可软件编程实现各种算法和逻辑控制,并且其功耗低、技术成熟、成本也较低。本设计对数据处理的速度要求不高,单片机巳能满足设计需求。基于以上分析拟定采用方案二,由STC90c516RD+作为控制核心,对温度采集、实时显示以及加热装置进行控制。2、控制算法在水温控制系统中,选择一个好的算法是系统达到技术指标的保证。对算法的选择有以下两种方案:方案一:数字P1D控制算法。在连续时间控制系统中,P1D控制应用非常广泛,其设计技术成熟,长期以来形成了典型的结构,参数整定方便,结构更改灵活,整合了比例控制、积分控制和微分控制3种基本控制规律。由于计算机程序的灵活性,数字P1
5、D控制比连续P1D控制更优越。方案二:分段非线性加积分分离P1算法。当偏差较大时,控制量采用由实验总结出的经验值;当偏差较小时,切换为积分分离P1算法。该算法可较好地改善系统的非线性及静态特性,但P1控制只能消除稳态误差,而动态过程不能令人满意。方案三:模糊P1D控制算法。该算法是在传统P1D控制算法上增加模糊控制,在确定工、的的恭础上,增加模糊集从小此、的,进行模糊化,以自适应不同的环境,实现控制的精确性和鲁棒性。由于对数字P1D控制算法比较熟悉,旦该算法参数整定方便,结构灵活,综上所述,选择方案一。3、温度传感器温度信号为模拟信号,本设计要求对温度进行控制和显示,所以要把模拟量转为数字量。
6、温度传感器模块有以下两种方案:方案一:利用热电阻传感器作为感温元件,热电阻阻值随温度变化而变化,测量电阻值即可得到对应的温度值。电阻阻值的变化经变送器转化为电流信号,再转化为电压信号送到A/D转换器PCF8591,将模拟信号转为数字信号。该方案在系统测量的温度范围内线性度良好。方案二:采用数字温度传感器DS18B20。该温度传感器无需其他外加电路,直接输出数字量,可直接与单片机通信,读取测温数据,电路简单,能够达到().5度的固有分辨率,满足设计要求。考虑到现有的资源的有限选择以及热敏电阻传感器也能达到设计要求更线性度好,综上所诉,选择方案一。4、加热驱动模块根据设计要求,可使用电热棒进行加热
7、,控制加热棒的功率即可控制加热速度。由于加热的功率较大,考虑到简化电路的设计,我们直接采用220V电源。对加热驱动模块有以下两种方案:方案一:采用可控硅作为开关器件控制电路。可控硅是一种半控器件,由交流过零检测电路输出方波经适当延时可控制可控硅的导通角,延时时间即移相偏移量由温度误差计算得到。可以实现对交流电单个周期有效值周期性控制,保证系统的动态性能指标。该方案可以实现功率的连续调节,响应速度快,控制精度高,但电路稍复杂,常使用光耦合驱动芯片以及变压器等器件。方案二:采用固态继电器作为开关器件控制电路。固态继电器的使用比较简单,没有触点,可以频繁动作,旦其内部本身就存在电磁隔离,因此单片机输
8、出控制功率的PWM信号,即可控制固态继电器的导通和关断,从而达到控制加热棒通电和断电的目的。采用固态继电器控制可省去光耦隔离和交流过零检测电路,且由于系统设计对输出PWM信号频率要求不高,考虑电路中流过开关器件的电流较大,所以只要在选用时注意器件的最大功率和最大电流,选用适当参数的固态继电器型号就能达到设计要求。故选择采用方案二。5、键盘模块根据设计要求,水温要由人工设定给定值并设置报警温度。对键盘模块有以下两种方案:方案一:采用矩阵键盘。矩阵键盘可大大节省1/()口的使用,但编程和电路较为复杂。方案二:采用独立键盘。独立键盘编程简单且电路也较为简单,但由于每一个按键都需要一个1/()口,故在
9、1/()资源有限的情况下是一种浪费。考虑到本次设计所需按键较少,系统所需1/()充足,而独立按键编程及电路简单,收采用方案二。6、显示模块根据设计要求,需要实时显示水温。显示模块有以下两种方案:方案一:采用液晶显示屏。液晶显示屏具有功耗小、平面直角显示以及影像稳定不闪烁,可视面积大,画面效果好,抗干扰能力强等特点。但其成本较高,编程工作量大,控制器资源占用较多。方案二:采用七段LED。数码管功耗低、寿命长、耐老化、对外界环境要求较低,且数码管采用BCD编码显示数字,编程简单,资源占用较少。由于本次设计只需显示三位温度值,信息量较少,故采用方案二。本系统中采用数码管的动态显示,节省单片机的内部资
10、源。7、电源模块该模块为单片机及各器件提供电源。采用220V变压整流电路输出5V直流电。8、报警模块为使系统的人机交互界面更友好,设置了两路报警信号和两路标志信号,用于显示越限报瞥、强电电路通断情况以及温度稳定情况。1.3 论证分析经过比较,采用DS18B20测量水温,硬件电路简单,测量精度高,信号易处理,故温度变送器选用DS18B20。驱动加热采用固态继电器,在实行控制的时候不像其它采用D/A转换后再控制调节阀的方法,而是直接外接一个固态继电器,通过内部改变定时器的中断时间来调节一个周期内电子开关的导通和断开时间。这样既节省了材料也可以很大程度上减少硬件电路的结构支系统原理框图如图1-1所示
11、。图1-1系统原理框图综上所述方案有如下的特点:(1)在完成所要求的任务的基础之上还有着结构简单、明了的特点,很容易实现,而且在一定的程度上节约成本。(2)由于采用了离线的方法,很大程度上的减少了编程的麻烦,实现起来较容易。(3)采用了无污染能源,保护环境。同时也省去了为建造燃料供应子系统的费用,节约了成本。采用了模拟的PWM变换,和固态继电器。可以将采样频率提高到很多的水平,使控制结果更准确,实时性、控制效果更好。第2章系统设计整个系统由软件和硬件两部分组成。本章详细介绍了系统的硬件和软件设计,并对硬件和软件的每一个部分进行了分析,在后半部分还对系统模型进行了仿真与程序调试。硬件和软件的每一
12、个坏节都是深思熟虑而成,各自完成相应的功能并组成一个统一的整体。2.1 硬件设计系统的硬件包括:电源模块、温度设定模块、温度采集变送模块、温度偏差处理模块、温度显示模块、报瞥模块、电炉加热模块。2.1.1 电源电路由于整个系统都是用单片机和各类芯片及电阻、电容组成的,其工作电压为+5V,不需要负电压,可采用三端固定正电压集成稳压器7805系列的芯片。其输出电压5V,按输出电流不同可分为78Mo5、78L05,输出电流分别为0.5A和1.0A,转换成功率分别为2.5W和59。从整个系统的设计来看,其中有几块集成芯片和多个电阻、电容等器件,其功率总和应在2W左右,所以考虑整个系统的功率裕量,采用7
13、8Mo5作为整个系统的供电芯片。如团2-1所示。其中输入电压为交流220V,经过变压器其输出为12V,再进行整流。整流可通过四个二极管进行全波整流,也可以利用集成整流堆来进行。后面接电容Cl、C2为滤波电容进行滤波,注意电解电容应该要有一定裕量,否则不能起到很好的滤波效果,本电路中使用的电容大小为470|iF。78Mo5的输出级接入两个滤波电容,用于减小因为电源波动对系统造成的影响和滤波。其不需要采用大容量的电解电容器,容量大小为100pF,再接入470F的电容器,便可减少因为电源波动的影响和滤去纹波,很好地改善负载的瞬态响应叫2.1.2 温度检测与交送环节检测与变送设备主要根据被检测参数的性
14、质与系统设计的总体考虑来决定。被检测参数性质的不同,准确度要求、响应速度要求的不同以及对控制性能要求的不同都影响检测、变送器的选择,要从工艺的合理性、经济性加以综合考虑。DS18B20是数字温度传感器,具有3引脚T()92小体积封装形式;温度测量范围为-55C+125,可编程为9位12位A/D转换精度,测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生。DS18B20的核心功能部件是它的数字温度传感器,它的分辨率可配置为9、10、11、12位,它们对应的温度值分辨率为0.5、0.2530.125、0.0625。温度信息的
15、低位、高位字节内容还包括了符号位S和二进制小数部分。本系统中DS18B20接线图如图2-2所示,当测量距离较远时,可在数据输出口加上拉电阻R9,其阻值为5K左右,确保数据传输的准确性。DS18B20VCCTLlh.R9112_I1224.7K图2-2DS18B20接线图由于本系统中涉及到P1D调节,P1D调节需要精度稍高的输入量,故本系统选取16位分辨率,精度为().0625。2.1.3 单片机最小系统整个系统采用常用的51单片机,90C516RD+是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMQS8位微处理器,称单片机。1 .主要特性:与MCS-51兼容,4K字节可编程闪烁存
16、储器,寿命:1000写/擦循环;数据保留时间:10年;全静态工作:()Hz-24Hz;三级程序存储器锁定;128*8位内部RAM;32个可编程1/。线,两个16位定时器/计数器,5个中断源,可编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时钟电路。2 .本设计中90c516RD+与外围电路的接口本系统采用P3口与键盘电路连接,P1.3口与PS18B20的数据端连接。P0口作为显示与报警电路端口。/VCC端接5V电源,XI,X2接晶振电路,RESET端接复位电路,其余INTI,INTO,Tl,TO,/RD,/WR,RXD,TXD,ALE,PSEN端置空。尸独T2/P1.0vcc2T2EX/P
17、LLPO.O/ADO3P1.2VO.I/ADI384P1.3PO.2/AD2可5IU.4PO.3/AD3366P1.5PO.4/ADI357116PO.5/ADS31HP1.7PO.6/AD6RSTPO.7/AD7用10RX0/P3.0EA21111TXD/P3.1ALE/PROG3012INT0/P3.2PSEN2913INTI/P3.3P2.7/A152814T0/P3.4P2.6/A1427151U/P3.5P2.5/A1326|7TTWR/P3.6P2.I/A122b77丽/P3.7P2.3/A11Z也X1AL2P2.2/A102S|19XTAI.IP2.1/A9222(1VSSP2.
18、0/A821图2-390C516RD+单片机引脚图3.复位电路90C516RD+单片机的复位是由外部的复位电路来实现的。最简单的上电自动复位电路,是通过外部复位电路的电容充电来实现的。只要Vcc的上升时间不超过1毫秒,就可以实现自动上电复位。当时钟频率选用12MHz时,C取22uF,R取1K。除上电复位外,有时还常要按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST端经电阻和电源Vcc接通而实现的,按键手动电平复位电路如图2-4所示。当时钟频率选用12MHz时,C1选取10uF,R18选择1000欧,R20选择1000()欧。VCC110K图2-4复位电路4.晶振电路
19、晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。一般的晶振的负载电容为15pF或12.5pF,如果再考虑元件引脚的等效输入电容,则两个20pF的电容构成晶振的振荡电路就是比较好的选择。晶体振荡器与石英晶体谐振器都是提供稳定电路频率的一种电子器件。石英晶体振荡器是利用石英晶体的压电效应来起振,而石英晶体谐振器是利用石英晶体和内置1C来共同作用来工作的。振荡器直接应用于电路中,谐振器工作时一般带要提供3.3V电压来维持工作。振荡器比谐振器多了一个重要技术参数为:谐振电阻。谐振器没有电阻要求。RR谐振电阻的大小直接影响电路的性能,也是各商家竞争的
20、一个重要参数咒本设计采用12MHz晶振,并联两个20pF电容构成晶振电路。图2-5晶振电路2.1.4 键盘电路要想控制温度,就要采用良好的人机界面。选择用4个按键组成一个小键盘执行某些功能,如清零、预置值、改变测量范围等。如团2-6所示。GND图2-6按键电路其中S1作为设定期望温度、上下限报瞥温度,通过软件配合可实现电炉加热的通断;S2、S3用来设定所需温度的具体数值;S4用来确定温度设定,并启动温度测量程序。2.1.5 显示电路LED显示是用发光二极管显示字段的显示器件,也可称为数码管,其外形结构如图所示,由图可见它由8个发光二极管构成,通过不同的组合可用来显示。9、AF及小数点。段锁存8
21、位共阴数码管图2-7“8”字型共阳数码管及锁存器连接图LED显示器分为共阴极和共阳极,共阴极是将8个发光二极管阴极连接在一起作为公共端,而共阳极是将8个发光二极管的阳极连接在一起作为公共端。在51单片机系统中常用的数码管显示方法有两种:动态扫描显示和串行静态显示。本系统中DS18B20的工作周期为几百毫秒,而旦后续的P1D运算涉及到浮点数运算,PWM波的中断周期小于温度采样周期控制,若采用动态扫描显示,显示时间短,旦容易被中断打断,所以综上考虑,为使显示部分显示的是实时温度,旦为了保持良好的人机界面,必须采用串行静态显示。对于四位数码管的串行静态显示,工作周期不超过4()微秒,完全符合要求。2
22、.1.6 加热驱动模块固体继电器工作可靠,寿命长,无噪声,无火花,无电磁干扰,开关速度快,抗干扰能力强,且体积小,耐冲击,耐振荡,防爆、防潮、防腐蚀、能与TTL、DTL、HTL等逻辑电路兼容,以微小的控制信号达到直接驱动大电流负载。主要不足是存在通态压降,有断态漏电流,交直流不能通用,触点组数少,另外过电流、过电压及电压上升率、电流上升率等指标差。固体继电器目前已广泛应用于计算机外围接口装置,电炉加热恒温系统,数控机械,遥控系统、工业自动化装置;信号灯、闪烁器、照明舞台灯光控制系统;仪器仪表、医疗器械、复印机、自动洗衣机;自动消防,保安系统,以及作为电网功率因素补偿的电力电容的切换开关等等,另
23、外在化工、煤矿等需防爆、防潮、防腐蚀场合中都有大量使用。vccRcs2 3KQ1KpnpGND图2-8加热驱动电路如团2-11所示,PWM口用来进行P1D调节,改变加热丝中电流通断时间。2.1.7 报瞽电路为使系统的人机交互界面更好,设置了两路报瞥信号和两路标志信号,用于显示越限报瞽、强电电路通断情况、温度稳定情况。当电炉中水温高于工作人员所设定的上限温度或者低于设定的下限温度时,则认为发生了越限,L1和L2分别用来表示上限报瞽和下限报瞽。值得一提的是,当系统从低温开始加热,到下限温度以前系统都会出现越限报瞽。当出现越限报瞥时,工作人员应该注意是不是此种情况,此情况可以忽略,利用LED发光进行
24、报瞽。2.2 软件设计系统的软件部分以主程序为入口,在初始化之后调用键盘管理程序,完成对键盘的扫描,读入键值,并根据相应的键值进行各类操作。温度采样频率由软件延时控制,在每一次采样完成之后进行控制时间的计算和显示刷新。软件部分主要包括主函数、延时子函数、温度采集子函数、按键扫描子函数、Pin处理子函数、PWM波产生子函数、报瞥显示函数。2.2.1 主函数主程序作为程序的入口,控制各类程序的调用。在系统中其主要的任务是调用键盘管理程序。然后其它的功能都由DS18B20温度转换程序和中断程序完成。可以说主程序起到了重启动后读入E2PROM中的设计温度和上、下限温度;设计各类定时器和开中断的,并调用
25、键能管理程序的功能。这样处理主程序起到了分散功能的作用,即主程序会变得很容易编写,而具体的功能都由功能子程序完成。流程图如图2-9所示。系统的被控温度、上下限报警温度等都是通过按键来设定的,由于采用键盘的接法是最普通的,所以按键处理函数并不会占用整个程序太多时序。流程图如图2-10所示。图2-10按艇设定流程图223温度采集函数DS18B20是数字式温度传感器,它与单片机的硬件接口电路简单,采用单总线工作方式,所以使用DS18B20需详细了解其工作时序和内部寄存器。主机通过拉低单线48()微秒以上,产生复位脉冲,然后释放该线,进入RX接收模式。主机释放总线时,会产生一个上升沿。DS18B20检
26、测到上升沿后,延时15至60微秒,DS18B20通过拉低总线60-240微秒来产生应答信号,主机接收到有应答信号后,说明有单线器件在线。流程图如图2-11所示。图2-11DS18B20测温流程图2.2.4 P1D运算亍函数常规的模拟Pin控制系统原理框图如图2-12所示。该系统由模拟P1O控制器和被控对象组成。其中r(t)是给定值,y(t)是系统的实际输出值,给定值与实际输出值构成控制偏差t):(2-1)(/) = r(r)-y(/)图2-12模拟P1D控制系统原理图c(t)作为P1D控制的输入,u(t)作为P1D控制器的输出和被控对象的输入,所以模拟W) = Kp +力+(2-2)P1D控制
27、器的控制规律为其中Kp:控制器的比例系数Ti:控制器的积分系数Td:控制器的微分系数1、比例部分在模拟P1D控制器中,比例环节的作用是对偏差瞬间做出反应。偏差一旦产生控制器立即产生控制作用,使控制量向减少偏差的方向变化。控制作用的强弱取决于比例系数Kp,比例系数Kp越大,控制作用越强,则过渡过程越快,控制过程的静态偏差也就越小;但是越大,也越容易产生振荡,破坏系统的稳定性。故而,比例系数Kp选择必须恰当,才能过渡时间少,静差小而又稳定的效果。2、积分部分从积分部分的数学表达式可以知道,只要存在偏差,则它的控制作用就不断的增力叫只有在偏差为()时,它的积分才能是一个常数,控制作用才是一个不会增加
28、的常数。可见,积分部分可以消除系统的偏差。积分环节的调节作用虽然会消除静态误差,但也会降低系统的响应速度,增加系统的超调量。积分常数Ti越大,积分的积累作用越弱,这时系统在过渡时不会产生振荡;但是增大积分常数Ti会减慢静态误差的消除过程,消除偏差所需的时间也较长,但可以减少超调量,提高系统的稳定性。当Ti较小时,则积分的作用较强,这时系统过渡时间中有可能产生振荡,不过消除偏差所带的时间较短。所以必须根据实际控制的具体要求来确定Ti。3、微分部分实际的控制系统除了希望消除静态误差外,还要求加快调节过程。在偏差出现的瞬问,或在偏差变化的瞬间,不但要对偏差量做出立即响应(比例环节的作用),而只要根据
29、偏差的变化趋势预先给出适当的纠正。为了实现这一作用,可在P1控制器的基础上加入微分环节,形成P1D控制器。Pin控制器参数的工程整定,各种调节系统中Pin参数经验数据以下可参照如下数据:温度T:P=2060%,T=180600s,D=3180s压力P:p=3070%,T=24180s液位L:P=20-80%,T=60300s流量L:p=40100%,T=660s本系统中,P1D控制器的输入是实测温度与期望温度的偏差,输出是PWM波的脉宽。由于温度具有热惯性这个特性,且在温度控制场合尽量不允许出现超调现象,所以在在选取比例系数不能太大,但为了和相应时间保持协调,可以当温差大于10时不进行P1D运
30、算,只有当温度偏差进入10范围内时,开启定时器进行P1D控制。根据工程经验,本系统可忽略微分项,只进行比例与积分运算,最终实现稳准快的指标。流程团如图2-13所示。图2-13PID运算流程图2.2.5 PWM产生函数脉冲宽度调制是一种模拟控制方式,其根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。PWM的一个优点是从处理器到被控系统信号都是数字形式的,无需进行数模转换。让信号保持为数字形式可将噪声影响降到最小。噪声只有在强到足
31、以将逻辑1改变为逻辑。或将逻辑()改变为逻辑1时,也才能对数字信号产生影响。用PWM波输入固态继电器的输入端,从而改变电炉加热丝内的电流通断时间口本设计中,PWM由单片机定时器中断产生,与主程序和其他函数不影响。脉宽受P1D控制器的输出量控制,流程图如团2-14所示。重装50喳秒定时器初值i+图2-14PXVM产生流程图3.3系统调试3.3.1 人机界面调试本系统涉及到人机界面的部分包括按键电路、显示电路、报警电路。首先对显示电路进行调试,根据移位寄存器的八个并行输出口与数码管的管脚的连接情况得出()-9、H、L、S的字型码,其中H用来标志上限报瞥值,L用来标志下限报瞽值、S用来标志期望设定值
32、。当SET键第一次被按下时,四位数码管的第三位显示S,随后按动addlO键和addl键,用来设定所带控制的温度值;当SET键第二次被按下时,四位数码管的第三位显示H,随后按动addlO键和addl键,用来设定温度的上限报瞥值;当SET键第三次被按下时,四位数码管的第三位显示L,随后按动addlO键和addl键,用来设定温度的下限报瞥值。当CHECK键被按下时,启动温度测量。当设定温度值小于下限温度值时,下限报瞽指示灯亮;当设定温度值大于上限温度值,上限报瞥指示灯亮。3.3.2 温度显示系统的控制对象为温度,所以温度测量的准确性至关重要,DS18B20采用了12位的分辨率,精度达到0.0625C
33、,由于DS1820与微处理器间采用串行数据传送,占用了一定的时序,并且串行静态显示需要几百毫秒的延时,所以数码管显示的温度大致就是当前的温度。该系统测量精度符合要求,但是响应时间比较慢,这样就对软件设计中的采样周期提出了较高的要求。第3章总结基于90c516RD+单片机温度控制系统,利用温度传感变送器,将采样到的温度信号输入到单片机中,再由单片机作为90C516RD+单片机的控制器,根据测量温度与设定温度的差值和90c516RD+单片机的算法生成控制信号,控制电炉的通电与断电。整个系统结构紧凑、所用芯片少、控制精度高。在键盘、变送器、显示电路上都采用了串行方式,从而减小了单片机口线的使用,也使
34、使用口线小的单片机成为可能,减小了成本开支;电源电路虽未采用流行的开关稳压电源,但也经济实惠,性能稳定。在软件上,基于90c516RD+单片机的算法的温度控制系统采用了经典的90c516RD+单片机的算法,从某个角度上说这种算法优于传统的控制算法,有更稳定、控制精度更高等优点,而控制量的输出上采用了模拟的PWI变换,免去了一级D/A转换器,减小了成本,且简单易行。在程序的编写过程中特别注意了人机的交互性及各种功能的实现,如键盘控制管理程序和90C516RD+单片机的运算程序都是经过深思熟虑而精心设计,使系统的操作界面更容易让人理解,同时使用键毋输入控制温度,虽然一定程度上增加了程序的复杂性,但
35、同时也使系统的温度更容易设定。当然,系统同时也存在几点缺点。在选择89c51单片机的控制器时用了速度相对较慢的单片机,着采用速度更快的单时钟周期系列的单片机,提高采样频率,控制精度将会更高。附录系统源程序/不名称:DS18b20数码管显示内容:显示格式符号xxx.xC可以显示负温度*/#includu包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#includcH18b20.hH#includcndelay.hH#d近比Da忸PortP0定义数据端口程序中遇到DataPort则用P0替换#dcfincuintunsignedint#dcfincucharunsignedchar
36、sbitLATCH1=P22定义锁存使能端口段锁存sbitLATCH2=P2人3;位锁存sbitsct=P3-0;定义按键输入端口sbitaddl=P3A2;sbitadd10=P3A4;sbitchcck=P36;sbitspk=PlA0;警报sbitpwm二P2八7;pwm波structPir)unsignedintsetpoint;unsignedintp;unsignedinti;unsignedintd;signedlonglasttimc;signedlongprevtime;signedlongsumerror;structP1Dspid;bitRsdTcmpFlag;/定义读时
37、间标志unsignedcharcodedofly_r)uanMal0=0x06,0x5b,0x4f,0x66,0x6d,0xd,0x07?0y7f,0x6f;/显示段码值09unsignedcharcodedofly_VTciMa=0xfu,0xfd,0xfb,0xf7,0xuf,0xdf,0xbf,0x7f;分别对应相应的数码管点亮,即位码unsignedcharTcmpr)ata8;存储显示值的全局变量uchardbuf4=0;bitflag;uchark,h_p,l_p;uinttcmp_sut,tcmp_h,u:mp_l,tsut,th,H,c:Jastt;uintuk,uklJp;f
38、loatki,kd;unsignedintTcmpH,TcmpL,tcmp;ucharhiglvtimc=0,low_timc=0,count=0;unsignedintshi,gc;voidr)isplay(unsigncdcharFirstBit,unsignedcharNum);数码管显示函数voidlnit_TimcrO(void);定时器0初始化voidInit_Timcr1(void);定时器1初始化voidds18b20(void);/读取温度+显示+警报voidkcy_sct(yoid);/设置温度及上下限voidkuy_addl(void);力口1voidkcy_addlO(
39、void);力口10voidkcy_chuck(void);显示实时/设置温度voidpidcalc(void);/PID运算voidc_pwm(void);1主函数*/voidmain(void)/unsignedintTcmpH,TcmpL,tcmp;PT1=1;/lnit_TimcrlO;kp=4;ki=0.0015;kd=O;pwm=0;whilc(l)key_setQ;kcy_add1Q;kcy_add100;kcy_chcckQ;whilc(flag=l)ds18b200;if(c0)&(c5)Init_Titncrl();pidcalcQ;elsepwm=0;kcy.sctO;/
40、*显示函数,用于动态扫描数码管输入参数FirstBif表示需要显示的第一位,如赋值2表示从第三个数码管开始显示如输入0表示从第一个显示。Num表示需要显示的位数,如需要显示99两位数值则该值输入2*/voidDisplay(unsignedcharFirstBit,unsignedcharNum)staticunsignedchari=0;ParaPort=0;:清空数据,防止有交替重影LATCH1=1;段锁存LATCH1=0;DataPcrt=dQflyNciMai+FirsiBit;/取位码LATCH2=1;位锁存LATCH2=0;PamPort=TcmpnaiaD;取显示数据,段码LAT
41、CH1=1;段锁存LATCH1=0;i+;if(i=Num)i=0;定时器0初始化于程序vvoidlnitL_TimcrO(void)TMOD | = 0x01;受影响/TH0=0x00;/TL0=0x00;EA=1;ET0= 1;TR0=l;/使用模式1, 16位定时翳,使用符号可以在使用多个定时器时不/给定初值/总中断打开定时器0中断打开定时器。开关打开定时翳0中断于程序*/voidTimcrO_isr(void)interrupt1重新赋值2msstaticunsignedintnum;THO=(65536-2OOO)/256;TL0=(65536-2000)%256;Display(0,8);/调用数码管扫描num+;if(num=300)/num=0;RsdTumpFbg=l;读标志位量1定时器1初始化于程序*/voidInitL_Timcrl(void)TMOD|=0xl0;使用模式1,16位定时器,使用”符号可以在使用多个定时器时不受影响TH1=(65536-50000)/256;给定初值50msTL1=(65536-5OOOO)%256;/THl=0xff;/TLl=0xcc;EA=1;总中断打开ET1=1;定时器1中断打开TR1=1;定时器1开关打开定时器1中断于程序*/voidTimerl_isr(void)interrupt3staticuns
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【MOOC】微信小程序开发从入门到实践-浙江工商大学 中国大学慕课MOOC答案
- 坏死性筋膜炎的临床护理
- 高一地理思政课程设计
- 骨纤维肉瘤的临床护理
- 褐黄病性关节炎的临床护理
- 饿了么课程设计
- 饭店打围施工方案
- 飞机起落架机构课程设计
- 飞机翼肋课程设计
- 飞机机翼课程设计
- 六年级上册科学活动手册参考答案(2023年新改版教科版)
- 托育机构质量评价标准
- N1叉车司机理论考试题及答案
- 与世界地图每个省份可单独改色
- 2012土地开发整理项目预算定额标准
- 劳务公司与劳务队合同范本
- 2023年06月湖南长沙仲裁委员会公开招聘16人笔试题库含答案解析
- 读《吕祖百字碑》有感
- 五年级下册综合实践活动教案-我是校园志愿者-全国通用
- 美容院购销合同
- 旋挖钻孔灌注桩施工记录表优质资料
评论
0/150
提交评论