基于单片机的智能阀门定位器测控系统.doc

上传人:文库蛋蛋多 文档编号:4153337 上传时间:2023-04-07 格式:DOC 页数:36 大小:698.50KB
返回 下载 相关 举报
基于单片机的智能阀门定位器测控系统.doc_第1页
第1页 / 共36页
基于单片机的智能阀门定位器测控系统.doc_第2页
第2页 / 共36页
基于单片机的智能阀门定位器测控系统.doc_第3页
第3页 / 共36页
基于单片机的智能阀门定位器测控系统.doc_第4页
第4页 / 共36页
基于单片机的智能阀门定位器测控系统.doc_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《基于单片机的智能阀门定位器测控系统.doc》由会员分享,可在线阅读,更多相关《基于单片机的智能阀门定位器测控系统.doc(36页珍藏版)》请在三一办公上搜索。

1、西北工业大学课程设计报告题目:基于单片机的智能阀门定位器测控系统 选 题 第七题 课程设计申报表学生信息姓名学号姓名学号姓名 学号姓名 学号2课程设计题目基于单片机的智能阀门定位器测控系统课程设计任务书一.设计目的 设计一个由单片机组成的智能阀门定位器测控系统。通过这个过程学习熟悉键盘控制和七段数码管使用,掌握智能阀门定位器控制和测试方法。二.预习与参考C程序语言、计算机控制技术、自动控制原理、三. 设计内容及要求1具有显示功能在显示器上显示任意四位十进制数;2具有按键输入和操作功能;3实现:(1)键盘功能;(2)显示界面;(3)给出原理图;(4)给出控制算法及相应程序;(5)开发串口通信功能

2、;进度计划1、 布置任务,查阅资料,确定系统方案(1天)2、 被控对象建模(1天)3、 算法推导,程序设计(3天)4、 仿真研究(2天)5、撰写、打印设计说明书(2天)6、答辩(1天)评语及成绩论文质量: 答辩: 总 成 绩: 指导教师签字: 年 月 日摘 要 在生产生活中,阀门作为主要的控制器件,在现代控制领域扮演着重要角色。所以,如何精确的定位阀门位置就显得特别的重要。利用传统的控制方法,阀门的定位存在诸多问题(如:控制精度不高,能耗大,安装不方便等),所以利用智能定位器改进阀门控制精度就显得尤为重要。基于上述问题,本文是以单片机为中心,利用数字控制理论,实现智能阀门定位系统的。以控制阀为

3、主要研究对象,围绕系统核心单片机,通过PID控制算法,产生PWM经驱动放大电路控制直流电机的转向、转速,进而控制阀门开度,达到阀门定位器的功能。建模阶段 针对被控对象控制阀和执行机构直流电机,经查阅大量相关资料和严密的理论推导,在合理假设的条件下,其传递函数为一阶惯性环节。算法控制 本文主要利用经典PID控制理论,并结合计算机仿真软件Matlab对系统的传递函数进行simulink仿真研究,通过试凑法对PID参数进行整定,得出相关的控制算法。硬件设计 本为选用STC89C52为主要控制芯片,主要包括采样调理及A/D转化模块,串行通信模块,数码显示模块,按键输入模块,PWM输出及驱动电路模块,电

4、源电路模块。软件编程 以硬件设计的电路为蓝本,利用C语言实现各部分的相关程序。通过以上四个环节,就实现了集数码显示,按键输入,串行通信为一体的智能阀门定位系统的功能。关键字:定位器 控制阀 PID 目 录第一章 绪论51.1 阀门定位器概述51.2 阀门定位器工作原理51.3 设计任务5第二章 总体方案设计与模拟仿真62.1 系统框图62.2 模块分析62.3 模块模拟9第3章 系统硬件设计103.1 采样调理电路103.2 数码管显示电路113.3 电机驱动模块133.4 单片机STC89C5213第4章 系统的软件设计144.1 主程序设计144.2 键盘扫描子程序设计154.3控制子程序

5、设计16参考文献18附录18第一章 绪论阀门定位器(又称:气动阀门定位器)是调节阀的主要附件,通常与气动调节阀配套使用,它接受调节器的输出信号,然后以它的输出信号去控制气动调节阀,当调节阀动作后,阀杆的位移又通过机械装置反馈到阀门定位器,阀位状况通过电信号传给上位系统。阀门定位器按输入信号分为气动阀门定位器、电气阀门定位器和智能阀门定位器。智能电气阀门定位器它将控制室输出的电流信号转换成驱动调节阀的气信号,根据调节阀工作时阀杆摩擦力,抵消介质压力波动而产生的不平衡力,使阀门开度对应于控制室输出的电流信号。并且可以进行智能组态设置相应的参数,达到改善控制阀性能的目的。1.1 阀门定位器概述阀门定

6、位器能够增大调节阀的输出功率,减少调节信号的传递滞后的情况发生,加快阀杆的移动速度,能够提高阀门的线性度,克服阀杆的摩擦力并消除不平衡力的影响,从而保证调节阀的正确定位。常用执行机构分气动执行机构,电动执行机构,有直行程、角行程之分。用以自动、手动开闭各类阀门、风板等。 阀门定位器按输入信号分为气动阀门定位器、电气阀门定位器和智能阀门定位器。按动作的方向可分为单向阀门定位器和双向阀门定位器。按阀门定位器是否带CPU可分为普通电气阀门定位器和智能电气阀门定位器。普通电气阀门定位器没有CPU,因此,不具有智能,不能处理有关的智能运算。智能电气阀门定位器带CPU,可处理有关智能运算,例如,可进行前向

7、通道的非线性补偿等,现场总线电气阀门定位器还可带PID等功能模块,实现相应的运算等。1.2 阀门定位器工作原理阀门定位器是控制阀的主要附件。它将阀杆位移信号作为输入的反馈测量信号,以控制器输出信号作为设定信号,进行比较,当两者有偏差时,改变其到执行机构的输出信号,使执行机构动作,建立了阀杆位移倍与控制器输出信号之间的一一对应关系。因此,阀门定位器组成以阀杆位移为测量信号,以控制器输出为设定信号的反馈控制系统。该控制系统的操纵变量是阀门定位器去执行机构的输出信号。1.3 设计任务本设计以STC89C52单片机为核心,用键盘控制模块、四个七段数码管显示模块、采样调理模块、电机驱动模块等模拟智能阀门

8、定位器测控系统,以实现在数码管上显示设定值和实际值;通过按键进行输入和操作功能等。第二章 总体方案设计与模拟仿真2.1 系统框图定位系统结构框图如图所示,该系统由PWM控制器,执行机构,电位传感器等组成。2.2 模块分析2.2.1 控制器本系统采用PWM方式和PID算法控制直流电机,当位置偏差较大时,则输出连续信号给压电阀(快速调节);当位置偏差大小适中,则输出脉冲序列给压电阀(慢速调节);当位置偏差在设定的很小范围0.1%(死区)内时,认为执行器到达设定位置,此时关闭调节阀,使执行器定位在当前位置。2.2.2 压电阀根据现实条件,本系统以直流电机模拟压电阀。建立其数学模型时,首先列写出电动机

9、主电路电压平衡方程式,轴上力矩平衡方程式和励磁电路电压平衡方程式等基本关系式,加以整理,然后进行拉普拉斯变换,根据此变换,即可求出电动机的动态结构图和传递函数的表达式。其过程为:(1)根据下图的直流电机的等效电路写出基本关系式:其中: 为电枢电路时间常数; 为励磁电路时间常数;为电动机磁极对数;为励磁绕组和电枢绕组的互感。(2)将其进行拉氏变换。经过化简,可得电动机磁场恒定时,其传递函数为:或写成: 式中: 固有振荡频率 衰减系数或阻尼比 电势系数或转矩系数 电动机的电气机械时间常数当2,即Tm4Ta时,传递函数可写成如下形式:上式表明,在外施阶跃电压作用下,首先产生由于时间常数而滞后的电枢电

10、流,然后下一步输出因滞后的响应速度。略去电枢电感时:其传递函数为: 其中: 在本次设计中选取某型号直流电机,经计算可得:电动机磁场恒定时, 略去电枢电感时,2.2.3 执行机构和反馈部分(1)执行机构在本次设计中,为了方便将其看作比例模型,比例系数为1。直流电机直接控制阀门的开度,直流电机通过正转和反转分别控制阀门开大和关小。其中,直流电机的输入电压为05V。(2)反馈环节反馈环节采用电位器传感器,将阀门的开度范围转化为电信号,经过放大器放大后与设定值进行比较。如果设定值大于反馈值,直流电机正转,阀门开度增大;如果设定值小于反馈值,直流电机反转,阀门开度减小。由于实际试验时,缺少电位器传感器原

11、件,我们用滑动变阻器代替。滑动变阻器的电阻范围为010K,通过改变滑动变阻器的阻值,改变电路反馈电压,与设定值进行比较。2.3 模块模拟采用simulink进行仿真,使用PID进行调节时,使用试凑法,方法如下:只采用比例调节,改变的值,得到最佳效果;采用比例积分调节,保持的值不变,改变的值,得到最佳效果;采用比例积分微分调节,保持、的值不变,改变的值,得到最佳效果。当、时,仿真效果最佳,simulink仿真图如下:这里,设定值,采用如上PID调节,simulink仿真结果如下。结果显示,调节效果较优。第3章 系统硬件设计 总方案:此方案所选用的主控芯片为STC89C52,整个控制系统的算法都有

12、此芯片负责完成。给单片机输入一个位移量作为阀门的的设定值,然后通过滑动变阻器模拟的位移传感器测得阀门的实际位移值,通过求差得到此时的偏移量e,利用设定好的控制算法计算得到此时的控制量输出u,再根据u可得知驱动电机的电压,由此即可知道所需的PWM波的占空比,据此输出一个与计算结果相符合的PWM波,用于驱动电机。电机转过一定的角度,则此时的偏差e减小,控制量u也因此而减小,电机的转速下降,直到实际测得的阀门位移量与设定值相等,则此时的偏差e与控制量u都为0,电机停止转动,此时电机的位置即为设定的位移量。在单片机的外围还有数码管显示电路与按键扫描电路。数码管显示电路用于显示当前的测量值与定值,该电路

13、通过两片74LS573锁存器实现数码管的动态显示。按键扫描电路共有3个按键,分别用于设定值的加一、减一与复位。电路当中所需的15V与5V供电电压由供电电路提供,供电电路先后通过变压器、电桥、滤波电路与稳压芯片产生15V与5V的电压,为整个电路供电。 由上述方案可知,此电路共分为供电电路、数控电路部分(包括按键扫描电路、数码管显示电路)、采样调理电路与电机驱动电路等5部分,下面分别介绍各部分电路的组成与作用。3.1 采样调理电路 由于阀门的位置信号为位移信号。因此这里的传感器应为位移式传感器。位移式传感器的原理为:通过指针与阀门相连,当阀门动作时带动其相连的指针一起运动。指针的另一端为精密滑动变

14、阻器的滑动端,如此便可改变滑动变阻器连入电路当中的阻值,进而改变此传感器的电压输出值。 在此系统中我们用一个滑动变阻器模拟位移式传感器,其上所加的电压为5伏,则此滑动变阻器的电压输出范围为0-5V正好可以被AD转化芯片所转化,变为数字量为单片机直接利用。3.1.1 ADC0809芯片介绍AD转换采用采用ADC0809CCN芯片,ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。(1)内部结构ADC0809是CMOS单片型逐次逼近式A/D转换器,内

15、部结构如图所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。(2)外部特性(引脚功能)ADC0809芯片有28条引脚,采用双列直插式封装,如图所示。下面说明各引脚功能。IN0IN7:8路模拟量输入端。2-12-8:8位数字量输出端。ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。ALE:地址锁存允许信号,输入,高电平有效。START: A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。EOC: A/D转换结束信号,输出,当A/D转换

16、结束时,此端输出一个高电平(转换期间一直为低电平)。OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。REF(+)、REF(-):基准电压。VCC:电源,单一+5V。GND:地。3.1.2 采样调理电路的设计此系统中采样调理电路是由ADC0809和滑动变阻器组成,原理图如图所示。采样调理电路中所选用的滑动变阻器为20k,当指针指在滑动变阻器的最下端时,加在电压跟随器同相端的电压为0V,当指针指在滑动变阻器上的任意位置时(除0以外),此时接入电路的电阻为x,则加在电压跟随器同相

17、端的电压为(x/20)*5V,电阻R7上无分压的原因是,集成运放的输入电阻极大,R7的组织与其相比可以忽略,因此R7上无分压,即滑动变阻器上的电压即为加在运算放大器同相端的电压。(1).采样电路的供电电压 如图,采样电路的供电电压是通过5V的输出电压接电压跟随器与滤波电路的作用之后给滑动变阻器供电。接电压跟随器的目的是增大输入电阻减小输出电阻,进而提高其带负载能力。接滤波电路的原因是,采样信号的精度要求比较高,应尽量减小纹波对采样信号的影响,以免影响控制精度。 (2).采样电路的输出电路如图,利用滑动变阻器来模拟位移传感器,由上述分析可知滑动变阻器的输出电压为0V到5V,输出电压经过型滤波及电

18、压跟随器的作用后作为ADC0809的模拟量输入值输入,并进行转化。3.2 数码管显示电路 选用的数码管为七段共阴极数码管,该数码管内的发光二极管的公共端接低电平,二极管的点亮通过各引出端来控制,输出高电平时发光二极管点亮,共阴极数码管的编码表为uchar code table_x= /编码表无点数码管显示0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,当P1口分别输出这些值时数码管显示分别为0到9。数码管的选通端与一片锁存器相连,用于通过锁存器选用哪一片数码管有效,数码管的数据输入端与另外一片锁存器相连,用于在该数码管选通时给数码管输入数据。

19、由于片选锁存器一次性只能选通一片数码管,因此同一时刻只能有一个数码管显示数字,而我们要求的是同时显示其设定值与反馈值,所以需要让数码管显示程序循环执行,利用人的视觉具有延迟性这一特点让数码管看起来同时点亮。3.2.1 74AC573B芯片介绍74HC573包含八进制3态非反转透明锁存器,span是一种高性能硅门CMOSspan器件。SL74HC573跟LS/AL573的管脚一样。器件的输入是和标准CMOS输出兼容的,加上拉电阻他们能和LS/ALSTTL输出兼容。HC573引脚功能表:PIN No 引脚号SYMBOL符号NAME AND FUNCTION名称及功能1OE3 State outpu

20、t Enable Input (Active LOW)3态输出使能输入(低电平)2, 3, 4, 5, 6, 7, 8, 9D0 to D7Data Inputs数据输入12,13,14,15,16,17,18,19Q0 to Q73 State Latch Outputs 3态锁存输出11LELatch Enable Input 锁存使能输入10GNDGround接地(0V)20VCCPositive Supply Voltage电源电压3.2.2 数码管显示电路的设计此系统中数码管显示电路是由HC573缓冲器和数码管组成,原理图如图所示。 选用的数码管为七段共阴极数码管,该数码管内的发光二

21、极管的公共端接低电平,二极管的点亮通过各引出端来控制,输出高电平时发光二极管点亮,共阴极数码管的编码表为uchar code table_x= /编码表无点数码管显示0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,当P1口分别输出这些值时数码管显示分别为0到9。数码管的选通端与一片锁存器相连,用于通过锁存器选用哪一片数码管有效,数码管的数据输入端与另外一片锁存器相连,用于在该数码管选通时给数码管输入数据。由于片选锁存器一次性只能选通一片数码管,因此同一时刻只能有一个数码管显示数字,而我们要求的是同时显示其设定值与反馈值,所以需要让数码管显示程

22、序循环执行,利用人的视觉具有延迟性这一特点让数码管看起来同时点亮。3.3 电机驱动模块此系统中电机驱动模块是由2个综合高电流驱动电动机BTN7971B和滤波电路组成,原理图如图所示。由上图可知,电机驱动模块是由2个综合高电流驱动电动机MOTORA、MOTORB组成。其中,MOTORA控制电机正转,MOTORB控制电机反转,从而控制阀门开度。直流电机驱动电路的驱动芯片选用的是BTN7971,该芯片内部由两个MOS管组成,由此可知,两片BTN7971驱动芯片可以组成一个全桥驱动电路,用于驱动电机正反转。 BTN7971的1管脚为接地端。2管脚为PWM波的输入端,两个BTN7971的2管脚分别与P3

23、.4,P3.5相连,这里P3.4,P3.5两个管脚用作普通的I/O引脚,而非其定时器功能,利用调用延时函数的方法产生PWM波,延时的长短决定了PWM波的占空比的大小。BTN7971的3管脚为芯片的使能端,两片芯片的3管脚都连接到了开关电路之中,用于控制电机驱动电路的开关。4管脚与8管脚均为驱动芯片的输出端,用于输出驱动电机的直流信号。5管脚决定了芯片的转换频率,由5管脚与GND之间连接的电阻决定。6管脚为芯片的电流反馈管脚。7为供电电压管脚,BTN7971的供电电压的范围为8V到45V,因此15V电压安全可靠,15V电压经过滤波电路后作为芯片的供电电压使用。3.4 单片机STC89C523.4

24、.1 STC89C52介绍 STC89C52的封装如图所示: 本文采用STC89C52单片机。其中,STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3

25、个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。引脚部分:STC89C52单片机引脚基本电路部分与普通设计无异,31脚和40脚接Vcc+5V,20脚接地。X1,X2两脚接12MHZ的晶振,构成时钟电路。可得单片机机器周期为1微秒。RST

26、脚外延一个RST复位电路。P0口作为数据总线与ADC0809的数据输入端相连,用于接收经过ADC0809转换后的采样信号。P1口用于数码管显示部分的连接,该口为复用口,与两个锁存器相连接,一个锁存器用于对四个数码管选择使能,即所谓的片选,另一个锁存器用于向数码管传送数据,即段选。两片锁存器的输入使能管脚分别与P2.5,P2.6相连接,通过这两个管脚选通锁存器进而选则特定的数码管,并输出所需的数据,我们的方案中钱两个数码管用于显示设定值,后两个数码管用于显示测量值。P2.3,P2.2,P2.1三个引脚用于连接三个按键,分别进行设定值现场控制的加、减及清零运算。3.4.2 STC89C52连接图S

27、TC89C52原理图如下所示。3.5 供电电路设计 供电电路部分包括:变压、整流、滤波和稳压等4个部分。整流选用桥式整流,滤波选用电容滤波,稳压采用LM7815、LM7805,产生15V及5V电压,为系统供电。该部分电路图如下: 1.参数的确定 (1).变压器的型号 由LM7815的datasheet可知,其输入电压的取值范围为 |17.5V|Vi|30V|,因此滤波电路的输出电压可选为17.5V,考虑到纹波的影响以及电网的波动可取滤波电路的输出电压为21.175V。由于我们所选用的滤波电路为电容滤波,而电容滤波电路的输出电压 VL=(1.11.2)V2 取VL=1.15*V2得,整流电路的输

28、出电压 V2为21.175/1.1519.82V 而整流电路我们所选用的是1N4007,其正向压降:0.6V0.7V,因此变压器的输出电压应至少为20V。本方案中选用的变压器为25V。(2).功率部分 在桥式整流电路中,变压器次级电流与滤波器输出电流的关系为: I2=(1.52.0)I1(1.52.0)Io=1.750.5A=0.875A 取变压器的效率为=0.8 P=U2I2/=180.875/0.8=19.687520W (3).电容的选取 在电容滤波电路当中负载平均电压VL升高纹波减小,且RLC越大,电容放电速率越慢,则负载电压中的纹波成分越小,负载平均电压越高。 为了得到平滑的负载电压

29、,一般取 Td=RLC(35)T/2 式中T为电源交流电压的周期。 RL=U1/I1=21.175/0.5=42.35 则 C(35)T/2/371180uF 本系统中该电容的容值为4700uF(电容越大,电容放电速率越慢,则负载电压中的纹波成分越小)。 又因为Ucmax=2U2(1+10%)=38.89V 因此电解电容C选用4700F,50V的电解电容。 另外为了滤除高频干扰和改善电源的动态特性还需在滤波电容两端并联0.01uF到0.1uF的高频瓷片电容。在这里选用104瓷片电容。 2.整流部分 整流部分选用桥式整流 ID=1/2*I2max=1/20.875=0.4375A URM=2*U

30、2(1+10%)=28.64V(反向电压) 所以整流二极管选用1N4007(ID=1A ,URM=1000V)可以满足设计要求。3.稳压芯片的选择根据题目要求可选取LM7815,LM7805 稳压芯片,其稳压系数,输出电阻,纹波大小等性能指标均能满足设计要求。3.6 串口通信电路单片机与PC上位机进行串口通信时通常需要进行两种电平之间的转换,单片机使用的是TTL电平,而PC上位机使用RS232电平,其高电平为+12V低电平为-12V。本电路中使用MAX232芯片完成上述两种电平的转换,其连接电路如下:第4章 系统的软件设计4.1 主程序设计本系统中单片机STC89C52的主要功能是实现数据的读

31、取、数码管显示、按键扫描、控制直流电机等功能。首先进行初始化,然后确定设定值,与反馈值比较并用PID和PWM进行控制。其主程序流程如下图所示:4.2 键盘扫描子程序设计调用键盘扫描子程序,反复的扫描键盘,等待用户从键盘上输入命令或数据,来响应键盘的输入请求。 其主程序流程如下图所示:4.3控制子程序设计调用控制子程序,首先判断偏差值确定是否满足要求,如不满足则确定正反转并根据偏差选用对应速度。其主程序流程如下图所示:4.4 LED显示设计缓冲器U8选择4个LED灯中某一个,缓冲器U7决定LED灯的数值。LED灯高位使用8段数码管,小数点一直点亮;低位使用7位数码管。LED显示设计的主程序流程如

32、下图所示:参考文献1 阎 石.数字电子技术基础M.高等教育出版社.2006,12.2 史新福,冯萍. 32位微型计算机原理接口技术及其应用M.清华大学出版社.2007,1.3 程国钢.案例解说单片机C语言开发基于8051+Proteus仿真M.电子工业出版社. 2012,9.4 卢京潮. 自动控制原理M.西北工业大学出版社.2009,8. 5 廖正军.智能阀门定位器PID 单参数模糊自适应控制设计J.2003,5月.6 廖玮.基于HART协议的智能定位阀控制系统的研制和开发J.2009,5月.7 高金源.计算机控制系统M.北京航空航天大学出版社.2001.附录1、控制系统主程序#includ#

33、include #define uchar unsigned char#define uint unsigned intsbit pwm1=P35;sbit pwm0=P34;sbit START=P36;sbit EOC=P30;sbit OE=P27;sbit LE1=P26;sbit LE2=P25;sbit K1=P20;sbit K2=P21;sbit K3=P22;sbit LE1=P26;sbit LE2=P25;unsigh double R=0;uint adval;double m,n;bit JIA=0;bit JIAN=0;uchar tab1=0x3f,0x06,0x

34、5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x5f; /共阴极LED 09的七段数码管段码uchar tab2=0xbf,0x86,0xdb,0xcf,0xe6, 0xed,0xfd,0x87,0xff,0xef; /共阴极LED 09的八段数码管段码unsigned char a,b,m,n,x,y,s1,s2;void delayms(unit ms); /延时程序 void scan_key(); /键扫描程序void ADC(); /A/D程序void led_volt(); /数码管显示程序 void PWM0_creat(); /PWM0产生程序void

35、PWM1_creat(); /PWM1产生程序void PID(); /PID控制程序void main() while(1) scan_key(); /键扫描程序 ADC(); led_volt(); /数码管显示电压值 PID(); 2、延迟子程序void delayms(unit ms) /延时程序(假设晶振为12MHZ) uchar j; while(ms-) for(j=0,j=s1) /测得偏差值与设定偏差值进行比较,若不在设定范围内则大功率正转 a=255; else if(m=s1) /测得偏差值与设定偏差值进行比较,若不在设定范围内则大功率反转 b=255; else if(nadval) /设定值采集量, 电机正转,开大阀门。e0=e1; e1=e2; e2=R-adval; du=p*(e2-e1)+i*e2+d*(e2-2*e1+e0); /PID算法 m=e2;x=du;u=u+x; pwm0=1; PWM1_creat();/顺时针转动 else e0=e1; e1=e2; e2=adval-R; du=p*(e2-e1)+i*e2+d*(e2-2*e1+e0); /PID算法 n=e2; y=du; u=u+y; pwm1=1; PWM0_creat();/逆向转动 8、STC89C52+ADC0809+串

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号