《基于单片机的水位控制专业综合实验》课程设计报告.doc_第1页
《基于单片机的水位控制专业综合实验》课程设计报告.doc_第2页
《基于单片机的水位控制专业综合实验》课程设计报告.doc_第3页
《基于单片机的水位控制专业综合实验》课程设计报告.doc_第4页
《基于单片机的水位控制专业综合实验》课程设计报告.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

武汉大学课程设计报告基于单片机的水位控制专业综合实验课程设计报告专 业: 自动化 班 级: 姓 名: 学 号: 指导教师: 2011年1月20日目 录目 录21 引言42 系统分析42.1 实验目的42.2实验任务42.3实验要求42.4实验分析53 stc12c5a16s2系列单片机63.1 stc12c5a16s2系列单片机的简介63.2 stc12c5a16s2系列单片机的内部结构63.4 stc12c5a16s2系列单片机特点63.5 stc12c5a16s2系列单片机的定时器/计数器73.6 stc12系列单片机eeprom的应用73.7 stc12c5a16s2系列单片机的串行口通信83.8 stc12c5a16s2系列单片机的a/d转换器83.9 stc12c5a16s2系列单片机的pwm应用94系统硬件设计94.1原理图的绘制94.1.1 protel简介94.1.2原理图的组成104.1.3原理图元件的组成104.1.4原理图元件的制作过程104.1.6原理图的设计流程114.2具体硬件电路设计分析114.2.1单片机的晶振电路和复位电路114.2.2按键输入电路124.2.3输出显示电路124.2.4 a/d转换外围电路134.2.5 d/a转换外围电路144.2.6报警电路144.2.7串口通信电路154.2.8电源开关电路154.2.9电压变换电路164.2.10单片机的数字量输出外围电路164.3 pcb板的制作165系统软件设计165.1 pid控制算法和编程软件介绍175.1.1 模拟pid调节器原理175.1.2 数字pid控制算法18这样,就避免了位置型算式中累加求和的麻烦,仅需要记录三个历史数据,即、,占用存储空间小,运行速度快。同时,为了防止液位突变,对液位采集值进行了限幅滤波,当采集值超出一定范围舍去不用。18控制流程图为185.1.3 keil uvision3简介205.2系统控制软件设计205.2.1 控制系统总体分析205.2.2控制系统具体设计215.3系统监控软件设计245.3.1监控软件kingview简介245.3.2应用程序项目的建立255.3.3组态王软件与单片机之间的通讯265.3.4应用组态王建立系统控制平台276 总结28参考文献29 1 引言单片机是将中央处理器(cpu)、随机存储器(ram)、只读存储器(rom或eprom)、定时器芯片和一些输入/输出接口电路集成在一个芯片上的微控制器(microcontroller)。目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的通讯网络与数据传输,工业自动化过程的实时控制和数据处理,广泛使用各种智能ic卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机,更不用说自动控制领域的机器人、智能仪表、医疗机械等。本实验旨在设计一个单容水箱的水位控制系统,以stc12c5a16s2单片机为核心控制器件,采用pid控制算法,利用组态王来提供可视化监控画面,实现对水位控制系统的有效监控,并使系统具备手动/自动切换、报警、控制参数整定等功能。2 系统分析2.1 实验目的1)学习并掌握单片机的具体应用方法,能够独自开发设计简单的控制系统。2)熟练掌握pid控制方法,理解pid各个参数对控制效果的影响,并了解常规pid算法缺点及改进方法。3)学习并掌握有关电路设计软件,能够熟练使用protel软件绘制电路原理图、电路板,学习使用仿真软件multisium,能够对单元电路进行仿真,减少系统设计时间。4)学习并掌握c51单片机程序的编写,能够使用keil工具来进行单片机系统的开发和调试。5)学习使用监控组态软件组态王kingview,能够实现绘制监控画面、动画显示控制设备的状态、进行报警等功能。2.2实验任务1利用水箱、阀门、管道、水泵、cy3011a型水位传感器、stc12c5a16s2单片机、pl2303通讯接口和上位机,构建单容水箱液位控制系统。2利用组态王开发上位机监控软件,使此系统具有良好的人机交互画面。2.3实验要求1根据现场设备实际运行情况自行构建单容水箱的液位控制系统,开发pid调节器,实现对水箱液位的控制,并画出控制系统的流程图。2在“组态王”中组态,对水箱水位控制系统进行有效的监控,实现报警、实时趋势、参数修改、手/自动切换等功能。2.4实验分析本实验所要设计的系统,其被控对象为单容水箱,被调量为单容水箱的水位,测量变送器为cy3011a型水位传感器,用于测量水位;dv707型交流变频器和水泵作为执行机构,控制器是stc12c5a16s2单片机。此外,系统的其它组成设备还有水箱、阀门、管道等。本系统采用下位机以单片机为核心的闭环控制系统,控制回路中包括水位传感器、调节器、执行器、被控对象四个主要部分。此外回路中还有信号处理电路,如a/d,d/a转换器。上位机采用普通pc机,通过串口与单片机进行通信。同时利用组态王设计了监控控制画面,使其具有友好的人机界面,方便实验者对液位进行监控,实现了控制参数整定、手自动切换和报警等功能。基于单片机的水箱水位控制系统框图如图1所示。图1水箱水位控制系统框图水位传感器把测量到的水位经a/d转换后,与水位给定值(即设定水位)进行比较计算,把偏差e传送到控制器进行计算,得出控制量u经d/a转换后送到交流变频器,交流变频器根据接收到的4-20ma电流信号输出不同的频率,调节水泵转速,从而达到控制水位的目的。下面具体来分析一下控制系统各部分的作用。1)水位传感器本系统采用cy3011a型水位传感器作为检测部件,用以测量水箱里的水位,并将被测水位参数转换为统一标准信号(4-20ma)输送给调节器。水位传感器输出的电信号与水位之间的关系可以用如下公式换算:其中:为满量程高度,为变送器输出信号。2)调节器本系统的调节控制器采用宏晶科技生产的stc12c5a16s2系列单片机,单片机内部有集成的a/d、d/a转换器,故系统设计时只需要进行相应的硬件设置和软件编程,不必再选用外部的adc、dac,简化了设计过程。其工作过程为:由cy3011a型水位传感器送来的4-20madc信号(被调量)进入调节器与给定值进行比较,其偏差信号经过比例、积分、微分运算后,再经d/a转换成编程统一的4-20ma dc信号送到变频器。3)执行器本实验设计使用的变频器是dv707型交流变频器,它把单片机输出的电信号(4-20ma)转换成频率信号送到交流马达,从而调节水泵转速,进而达到控制水位高度的目的。4)水泵本实验中使用的水泵能够根据变频器输出的频率来改变转速。把水抽进水箱,水箱又通过阀门将水排出,这样构成水循环系统。3 stc12c5a16s2系列单片机3.1 stc12c5a16s2系列单片机的简介stc12c5a60s2/ad/pwm系列单片机是宏晶科技生产的单时钟/机器周期(1t)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成max810专用复位电路(外部晶体12m以下时,复位脚可直接1k电阻到地),2路pwm,8路高速10位a/d转换(250k/s,即25万次/秒),针对电机控制,强干扰场合。3.2 stc12c5a16s2系列单片机的内部结构stc12c5a60s2系列单片机的内部结构框图如下图2所示。stc12c5a60s2单片机中包含中央处理器(cpu)、程序存储器(flash)、数据存储器(sram)、定时/计数器、uart串口、串口2、i/o接口、高速a/d转换、spi接口、pca、看门狗及片内r/c振荡器和外部晶体振荡电路等模块。stc12c5a60s2系列单片机几乎包含了数据采集和控制中所需的所有单元模块,可称得上一个片上系统。图2 stc12c5a60s2系列内部结构框3.4 stc12c5a16s2系列单片机特点i/o口工作类型设定:p3、p2、p1和p0口设定不同的pxm1和pxm0中x的含义即为设定不同的px口的i/o模式设定。stc12c系列单片机其所有i/o 口均可由软件配置成4种工作类型之一,如p1m1和p1m0模式等。4种不同的工作模式分别对应着4种不同类型的配置。这4种类型分别为:准双向口(标准 8051 输出模式)、推挽输出、仅为输入(高阻)或开漏输出功能。每个口由2个控制寄存器中的相应位控制每个引脚工作类型。stc12c系列单片机上电复位后为准双向口(传统8051 的i/o 口)模式。2v 以上时为高电平,0.8v 以下时为低电平。每个i/o口驱动能力均可达到20ma,但整个芯片最大不得超过120ma。外部中断可用i/o口有7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的pca模块,power down模式可由外部中断唤醒,int0/p3.2,int1/p3.3,t0/p3.4,t1/p3.5,rxd/p3.0,ccp0/p1.3(也可通过寄存器设置到p4.2),ccp1/p1.4(也可通过寄存器设置到p4.3)。3.5 stc12c5a16s2系列单片机的定时器/计数器stc12c5a60s2系列单片机有4个定时器,其中定时器0和定时器1是两个16位定时器,与传统8051的定时器完全兼容,也可以设置为1t模式。当在定时器1做波特率发生器时,定时器0可以当两个8位定时器用(另外2路pca/pwm可以再实现2个16位定时器)。定时器0和1 定时和计数功能由特殊功能寄存器tmod 的控制位c/t进行选择,tmod寄存器的各位信息如下表所列。可以看出,2 个定时/ 计数器有4 种操作模式,通过tmod 的m1 和m0 选择。2 个定时/ 计数器的模式0、1和 2 都相同,模式 3 不同,各模式下的功能如下所述。3.6 stc12系列单片机eeprom的应用利用isp/iap技术将内部data flash当eeprom,擦写次数10万次以上。5v单片机在3.7v以上对eeprom进行操作才有效,3.7v以下对eeprom进行操作,mcu 不执行此功能,但会继续往下执行程序.3.3v单片机在2.4v以上对eeprom进行操作才有效,2.4v以下对eeprom进行操作,mcu 不执行此功能,但会继续往下执行程序.所以建议上电复位后在初始化程序时加200ms延时。程序在用户应用程序区时, 仅可以对数据flash区(eeprom)进行字节读/字节编程/扇区擦除,stc12c5206pwm/12le5206ad/12le5206pwm除外,这几个型号可在应用程序区修改应用程序区。stc12c5a60s2/ad/pwm系列单片机的eeprom起始地址从0000h开始,每个扇区512字节,类推下去从0200h 开始。3.7 stc12c5a16s2系列单片机的串行口通信stc12c5a60s2系列单片机具有2个采用uart(universal asynchronous receiver/transmitter)工作方式的全双工串行通信接口(串口1和串口2)。每个串行口由2个数据缓冲器、一个移位寄存器、一个串行控制寄存器和一个波特率发生器等组成。每个串行口的数据缓冲器由2个互相独立的接收、发送缓冲器构成,可以同时发送和接收数据。发送缓冲器只能写入而不能读出,接收缓冲器只能读出而不能写入,因而两个缓冲器可以共用一个地址码。串行口1的两个缓冲器共用的地址码是99h;串行口2的两个缓冲器共用的地址码是。串行口1的两个缓冲器统称串行通信特殊功能寄存器sbuf;串行口2的两个缓冲器统称串行通信特殊功能寄存器s2buf。stc12c5a60s系列单片机的两个串行口都有4种工作方式,其中两种方式的波特率是可变的,另两种是固定的,以供不同应用场合选用。用户可用软件设置不同的波特率和选择不同的工作方式。主机可通过查询或中断方式对接收/发送进行程序处理,使用十分灵活。stc12c5a60s2系列单片机的串行通信口,除用于数据通信外,还可方便地构成一个或多个并行i/o口,或作串并转换,或用于扩展串行外设等。3.8 stc12c5a16s2系列单片机的a/d转换器stc12c5a60s2系列带a/d转换的单片机的a/d转换口在p1(p1.7-p1.0),有8路10位高速a/d转换器,速度可达到250khz(每秒钟25万次)。8路电压输入型a/d,可做温度检测、电池电压检测、按键扫描、频谱检测等。上电复位后p1口为弱上拉型i/o口,用户可以通过软件设置将8路中的任何一路设置为a/d转换,不需作为a/d使用的口可继续作为i/o口使用。图3 adc典型电路adc_start: 模数转换器(adc)转换启动控制位,设置为“1”时,开始转换,转换结束后为0。adc_flag: 模数转换器转换结束标志位,当a/d转换完成后,adc_flag = 1,要由软件清0。不管是a/d转换完成后由该位申请产生中断,还是由软件查询该标志位a/d转换是否结束, 当a/d转换完成后,adc_flag = 1,一定要软件清0。3.9 stc12c5a16s2系列单片机的pwm应用stc12c5a60s2系列单片机集成了两路可编程计数器阵列(pca)模块,可用于软件定时器、外部脉冲的捕捉、高速输出以及脉宽调制(pwm)输出。脉宽调制(pwm,pulse width modulation)是一种使用程序来控制波形占空比、周期、相位波形的技术,在三相电机驱动、d/a转换等场合有广泛的应用。stc12c5a60s2系列单片机的pca模块可以通过程序设定,使其工作于8位pwm模式。4系统硬件设计4.1原理图的绘制4.1.1 protel简介protel是portel公司在80年代末推出的eda软件,在电子行业的cad软件中,它当之无愧地排在众多eda软件的前面,是电子设计者的首选软件,它较早就在国内开始使用,在国内的普及率也最高,有些高校的电子专业还专门开设了课程来学习它,几乎所有的电子公司都要用到它,许多大公司在招聘电子设计人才时在其条件栏上常会写着要求会使用protel。早期的protel主要作为印制板自动布线工具使用,运行在dos环境,对硬件的要求很低,在无硬盘286机的1m内存下就能运行,但它的功能也较少,只有电原理图绘制与印制板设计功能,其印制板自动布线的布通率也低,而现今的protel已发展到protel99(网络上可下载到它的测试板),是个庞大的eda软件,完全安装有200多m,它工作在windows95环境下,是个完整的板级全方位电子设计系统,它包含了电原理图绘制、模拟电路与数字电路混合信号仿真、多层印制电路板设计(包含印制电路板自动布线)、可编程逻辑器件设计、图表生成、电子表格生成、支持宏操作等功能,并具有client/server (客户/服务器)体系结构,同时还兼容一些其它设计软件的文件格式,如orcad,pspice,excel等,其多层印制线路板的自动布线可实现高密度pcb的100布通率。在国内protel软件较易买到,有关protel软件和使用说明的书也有很多,这为它的普及提供了基础。protel软件的原厂商altium公司推出了protel系列的最新高端版本altium designer 6.0。altium designer 6.0,它是完全一体化电子产品开发系统的一个新版本,也是业界第一款也是唯一一种完整的板级设计解决方案。altium designer 是业界首例将设计流程、集成化pcb 设计、可编程器件(如fpga)设计和基于处理器设计的嵌入式软件开发功能整合在一起的产品,一种同时进行pcb和fpga设计以及嵌入式设计的解决方案,具有将设计方案从概念转变为最终成品所需的全部功能。 本实验是应用altium designer6.0进行原理图、电路板的绘制的。4.1.2原理图的组成电路图主要由元件符号、连线、结点、注释四大部分构成。1)元件符号。元件符号表示实际电路中的元件,它的形状与实际的元件不一定相似,甚至完全不一样。但是它一般都表示出了元件的特点,而且引脚的数目都和实际元件保持一致。2)连线。连线表示实际电路中的导线,连线要画成水平线或竖直线,一般不画斜线。在原理图中虽然只是一根线,但在常用的印制电路板中有可能不是线而是各种形状的铜箔块,对于总线,一般用粗线加标注表示。箭头线用于表示电气信号的传递方向。3)结点。结点表示几个元件引脚或几条导线之间的连接关系。所有和结点相连的元件引脚、导线,不论数目多少,都是导通的。四端互相连接的交叉线应该在交叉处用圆点画出,否则表示跨越。三端相连的交叉处可以不画圆点。4)注释。电路图的注释用来说明元件的型号、名称、数值等。电路图中所有的文字都可以归入注释类。元件的技术数据一般标在图形符号近旁。当连接线水平布置时,尽可能标在图形符号下方,垂直布置时,则标在图形符号的右方。电源一般用标电压值的方法,地线可用地线符号代替。围框也是一种注释,当需要在图上显示出图的一部分,如功能单元、结构单元,可用点画围框表示。4.1.3原理图元件的组成原理图元件由两大部分组成:用以标识元件功能的标识图和元件引脚。1)标识图。标识图仅仅起着提示元件功能的作用,并没有什么实质作用。实际上,没有标识图或者随便绘制标识图都不会影响原理图的正确性。2)引脚。引脚是元件的核心部分。元件图中的每一根引脚都要和实际元件的引脚对应,而这些引脚在元件图中的位置是不重要的。每一根引脚都包含序号和名称等信息。引脚序号用来区分各个引脚,引脚名称用来提示引脚功能。引脚序号是必须有的,而且不同引脚的序号不同相同。引脚名称根据需要设计,名称能反映该引脚的功能。4.1.4原理图元件的制作过程绘制一个实际元件原理图时,为了保证正确和高效,一般建议遵循以下步骤。1)收集必要的资料。收集的资料主要包括元件的引脚功能。2)绘制元件标识图。如果是集成电路等引脚较多的元件,因为功能复杂,不可能用标识图表达清楚,往往是画个方框代表。如果引脚较少的分立元件,一般尽量画出能够表达元件功能的标识图,这对于电路图的阅读会有很大帮助。3)添引脚并编辑引脚信息。在标识图的合适位置添加引脚,引脚的排列应遵循以下规则:(1)电源引脚放在元件上部,地线引脚放在元件下部。(2)输入引脚放在元件左边,输出引脚放在元件右边。(3)功能相关的引脚靠近排列,功能不相关的引脚保持一定间隙。4.1.6原理图的设计流程用protel绘制电路原理图的基本步骤如下:1)启动protel电路原理图编辑器;2)设置电路图纸大小和环境参数;3)规划电路图的总体布局,在图纸上放置需要进行设计的元件;4)对所放置的元件进行布局布线;5)对布局布线后的元件进行调整;6)保存文档并打印输出。4.2具体硬件电路设计分析4.2.1单片机的晶振电路和复位电路简单的说,没有晶振,就没有时钟周期,没有时钟周期,就无法执行程序代码,单片机就无法工作。单片机工作时,是一条一条地从rom中取指令,然后一步一步地执行。单片机访问一次存储器的时间,称之为一个时钟周期,这是一个时间基准。一个机器周期包括12个时钟周期,机器周期不仅对于执行指令有着重要意义,而且也是单片机定时器和计数器的时间基准。例如一个单片机选择了12mhz晶振,它的时钟周期是1/12us,它的一个机器周期是12(1/12)us,即为1us,并且当定时器的数值加1时,实际经过的时间就是1us,这也是单片机的定时原理。晶振一般可分为晶体振荡器和晶体谐振器。在单片机系统中,晶体振荡器将外围的电容集成到振荡器内部,无需再设计晶振电路,只需要将电源加载到晶振上,晶振就可以起振,并通过两个引脚输出到单片机的晶振引脚上。由于晶体振荡器的体积较大,价格较贵,本实验选用了16mhz的晶体谐振器(立式晶振),需要如图6所示的外部晶振电路才可以起振。图4 单片机晶振电路和复位电路任何单片机在工作之前都要有复位过程。复位对单片机来说,是程序还没开始执行,是在做准备工作。一般的复位只需要5ms的时间。只要在单片机的rst引脚上加上高电平就可以实现复位电路。常用的实现方法是电源复位,即外部的复位电路在系统通上电之后直接使单片机工作,单片机的启停通过电源控制。对于stc12c5a16s2系列的单片机的复位电路,若时钟频率低于12mhz时,可以不用rc电路,直接接1k电阻到地;若时钟频率高于12mhz时,建议使用第二复位功能脚。由于本系统采用的是16mhz的时钟频率,如图6所示,采用的是电源复位,ea引脚即为stc12c5a16s2单片机的第二复位功能脚rst2/ex_lvd/p4.6口。4.2.2按键输入电路本实验采用了如图7所示的独立式按键,单片机直接通过读入输入线的状态就可得知是否有键按下。工作原理是:当按键s2按下时,aj1与gnd连通,aj1=0,即p00=0;当按键s2未按下时,aj1与vcc连通,aj1=1,即p00=1,就这样实现了单片机的按键输入功能。图5按键输入电路4.2.3输出显示电路1)指示灯显示电路为了方便控制,本实验通过编写程序,设计了与按键控制输入相对应的指示灯进行显示,硬件电路如图8所示。当led0=0时,二极管led1发光;当led0=1时,二极管led1不亮。图6指示灯显示电路2)数码管显示电路数码管在仪器仪表中主要是显示单片机的输出数据、状态等,因而,作为典型的外围器件,数码管显示是反映系统输出和操作输入的有效器件。本实验中8段数码管是采用静态显示方法。静态显示就是显示驱动电路电路具有输出所存功能,单片机将要显示的数据送出后就不再控制led,直到下一次显示时再传送一次新的数据。静态显示的数据稳定,占用的cpu时间少。显示驱动电路如图9所示,使用单片机的2个端口p3.4、p3.5,配以4片串入并出移位寄存器74ls164。其中74ls164的引脚q0q7为8位并行输出端,为8段数码管提供单独锁存的i/o接口;引脚a、b为串行输入端,接收从单片机p3.5口送来的数据data;引脚clk与单片机 p3.4相连接,为时钟脉冲输入端;引脚与vcc相连,在时,74ls164锁存数据。图7 8段数码管显示电路4.2.4 a/d转换外围电路由于stc12c5a16s2系列单片机内部有集成的adc,所以本实验设计了如图10所示的a/d转换外围电路,插座j2连接的是水位传感器,在电路板焊接元器件时,把p1、p7的两个引脚短接,构成通路。本实验中水位传感器把水位值转换成统一标准的420ma电流信号,经过电路转换,adc0采集到的模拟量是相应的电压值,送到单片机进行a/d转换。adc7采集到的电压值是随着滑动变阻器的接入电路的阻值而变化的,起到adc测试作用。图8 a/d转换外围电路4.2.5 d/a转换外围电路stc12c5a60s2系列单片机的pca模块可以通过程序设定,使其工作于8位pwm模式,可用作dac。经过d/a转换后的模拟电流量从单片机引脚pwm2出来,经过器件运算放大器u10来提高对连接在插座j5上的变频器的驱动能力。图9 d/a转换外围电路4.2.6报警电路在电路板焊板过程中,把s1的1、2引脚短接,构成通路,vcc引入报警电路,当单片机引脚sound输出是0时,驱动三极管q1,蜂鸣器b1报警;当sound=1时,三极管驱动电路不工作,b1不报警。图10报警电路4.2.7串口通信电路本实验采用器件pl2303来实现usb信号与rs232信号的转换,电路原理图如图13所示。pl2303是prolific公司生产的一种高度集成的rs232-usb接口转换器,可提供一个rs232全双工异步串行通信装置与usb功能接口便利联接的解决方案。该器件内置usb功能控制器、usb收发器、振荡器和带有全部调制解调器控制信号的uart,只需外接几只电容就可实现usb信号与rs232信号的转换,能够方便嵌入到各种设备。该器件作为usb/rs232双向转换器,一方面从主机接收usb数据并将其转换为rs232信息流格式发送给外设;另一方面从rs232外设接收数据转换为usb数据格式传送回主机。这些工作全部由器件自动完成,开发者无需考虑固件设计。图11串口通信电路图12器件p5引脚图stc12c5a60s2系列单片机具有在系统可编程(isp)特性,isp的好处是:省去购买通用编程器,单片机在用户系统上即可下载/烧录用户程序,而无须将单片机从已生产好的产品上拆下,再用通用编程器将程序代码烧录进单片机内部。有些程序尚未定型的产品可以一边生产,一边完善,加快了产品进入市场的速度,减小了新产品由于软件缺陷带来的风险。由于可以在用户的目标系统上将程序直接下载到单片机看运行结果对错,故无须仿真器。在电路板中,我们把器件p5的引脚usbtx和cpurxd(单片机的p3.0)相短接,usbrx和cputxd(单片机的p3.1)相短接,如图14所示,通过器件u9,就把含gnd/p3.1/p3.0/vcc四个信号线都引入了usb插座j4中,这样就可以在用户系统上直接编程。要注意图中的二极管d1的方向不能接反了,否则不能正常下载程序。4.2.8电源开关电路图15中的插座p6上接通的是带锁开关,用来系统控制电源的通断,用pled1的亮灭状态来指示。图13电源开关电路4.2.9电压变换电路图16所示的电路主要是完成5v到24v的电压变化,给水位传感器提供电压。图14电压变换电路4.2.10单片机的数字量输出外围电路图17中器件u8起到光电隔离和信号转换作用。图15单片机的数字量输出外围电路4.3 pcb板的制作确认原理图没有错误之后,开始pcb板的绘制。首先绘出pcb板的轮廓,假如pcb尺寸过大时,印制线条长,阻抗增加,抗噪声能力下降,成本也增加;pcb尺寸过小,则散热不好,且邻近线条易受干扰。应根据具体电路需要确定pcb尺寸,然后,确定工艺要求(使用几层板等)。最后,将原理图传输到pcb板中来,在网络表、设计规则和原理图的引导下布局和布线。本实验中采用的是自动布线,这有待改进使用手动布线。此外,电路板使用的是老师统一发的板子,在此就不再分析制板原理、注意事项等内容了。5系统软件设计本实验中,系统软件的设计开发均在windows环境下进行。应用组态王6.51建立上位机实时监控界面,实现人机交互;利用上位机编程软件keil uvision 3对控制器单片机完成模块的初始化、数据交换、数字pid控制算法等功能。在整个控制过程中,通过modbus通信协议实现上位机、下位机和现场设备的数据交换。系统软件设计时,首先必须对确定的软件任务和要求进行仔细的分析、明确,进一步具体化,对计算机资源进行具体分配。例如,各个功能部件的口地址;p1 i/o口的功能分配;定时器/计数器、中断源、数据存储单元等的功能分配;数据结构、设计的各种算法等,都应通过研究确定下来。确定软件结构之后,划分程序模块,画出系统软件整体结构框图如图19所示,下面将分别从系统控制软件和系统监控软件两方面来进行系统设计。图16系统软件设计结构框图5.1 pid控制算法和编程软件介绍5.1.1 模拟pid调节器原理按偏差的比例、积分、微分进行控制的调节器简称pid调节器。这种调节器将设定值与实际输出值进行比较构成偏差:并将其比例、积分、微分通过线性组合构成控制量。对于本系统设定值即为设定液位,实际值为水位传感器测量的实际液位。控制量为变频器输出。结构如下图所示。图17模拟pid控制结构图pid调节器中的比例作用是对偏差即时反应,减小偏差;积分的作用主要是消除静差,实现无差调节;微分的作用主要是加快系统的响应。pid调节器的控制规律为:其中,为比例系数,为积分时间,微分时间,为偏差,为控制量。5.1.2 数字pid控制算法在计算机控制系统中,pid控制规律的实现必须用数值逼近的方法。当采样周期足够小时,我们可以用求和代替积分、用向后差分代替微分,使模拟pid离散化为差分方程。数字pid位置型控制算式为,可知位置型控制算式要累加所有的偏差,这不仅要占用较多的存储单元,而且不便于程序的编写,使用不够方便。在本实验中,运用stc12c5a16s2单片机对液位进行控制,则必须考虑到单片机内存容量的大小。所以我们采用理想pid控制算法的增量式。对位置式pid算法采用向后差分法进行离散化,得到差分方程的形式的pid控制算式。式中:,。 这样,就避免了位置型算式中累加求和的麻烦,仅需要记录三个历史数据,即、,占用存储空间小,运行速度快。同时,为了防止液位突变,对液位采集值进行了限幅滤波,当采集值超出一定范围舍去不用。控制流程图为控制量输出控制电机转速,程序中设定电机转速的上下限,当输出超出上下限是,即进行越限处理。根据数字pid算式计算出的控制量超出了变频器的上下限,例如,那么实际输出控制量只能取上限值。由于控制量受到限制,系统输出的增长要比没有受到限制时慢,偏差将比正常情况下持续更长的时间保持正值,因此pid算式中的积分项有较大的累积值。当输出超过给定值,出现负偏差时,由于积分项值较大,需要很长一段时间才能脱离饱和,即系统出现明显的超调。这种积分饱和现象必须抑制。克服积分饱和的方法有多种,其中积分分离方法比较简单且经试验效果很好,因此本设计采用积分分离方法。积分分离方法的基本思想为:在开始并不进行积分,直达偏差达到一定的阈值后才进行积分的累积。这样,一方面防止一开始有过大的控制量;另一方面,即使进入饱和后,因为积分累积较小,也能较快退出,减小超调。因此,偏差在阈值范围内时,积分作用,消除静差,为pid调节器;偏差在阈值范围之外时,积分不作用,为pd调节器。其流程图如下。5.1.3 keil uvision3简介对于单片机的编程,我们有多种选择,其中,比较通用的有两种,一种是汇编语言,另一种是c51语言。在单片机系统中,尽管有些单片机也配置了简易高级语言,但是应用最广泛的还是汇编语言。这是因为汇编语言源程序结构紧凑,灵活,会变成德目标程序有效率高,占用内存储空间少,运行速度快和实时性强等特点,适合实施测控等应用领域的要求。由于汇编语言面向机器,因而有应用软件(源程序)不能移植,缺乏通用性,编程繁琐等缺点。而c语言是一种编译型程序设计语言,既有高级语言具有的库函数丰富,语法限制少,可读性强,移植好等优点,还有汇编语言具有的面向硬件操作,木匾代码质量高等长处。此外,其他模块化的程序结构也为软件的开发提供了极大的方便。本实验选用c语言对程序进行设计,编程软件选用keil uversion3,此款软件是keilsoftware公司推出的uvision3是一款可用于多种8051mcu的集成开发环境(ide),除增加了源代码、功能导航器、模板编辑以及改进的搜索功能外,uvision3还提供了一个配置向导功能,加速了启动代码和配置文件的生成。此外其内置的仿真器可模拟目标mcu,包括指令集、片上外围设备及外部信号等。uvision3提供逻辑分析器,可监控基于mcui/o引脚和外设状态变化下的程序变量。keilc51标准c编译器为8051微控制器的软件开发提供了c语言环境,同时保留了汇编代码高效,快速的特点。c51编译器的功能不断增强,更加贴近cpu本身,及其它的衍生产品。c51已被完全集成到uvision3的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uvision3 ide可为它们提供单一而灵活的开发环境。5.2系统控制软件设计 5.2.1 控制系统总体分析本控制系统设计任务如下:采用闭环负反馈形式,stc12c5a16s2单片机是整个控制的核心。外部模拟量通过测量变送器传入单片机内部进行a/d转换,与给定值比较得出偏差,送入pid控制算法进行自动控制,显示出当前水位状态。同时可对pid算法进行参数整定,找出最优算法。pid输出量以一定的换算关系转换为电机频率增量,驱动电机,从而实现对水位的控制。同时,stc单片机还有一个特定的温度测量输入引脚ds18b20,可以对温度进行显示。显示器采用编程简单应用广泛的8位led数码管作为数据显示,同时贴片式lcd配合显示当前控制状态。此外,还可通过设置水位的上下限,对危险情况进行报警。软件设计是硬件功能实现的基础,硬件模块的设计是软件设计的依据。通过分析控制系统设计任务,我们给出系统功能要求与拟定实现措施。1、系统功能要求1)水位给定值。通过led显示水位给定值,同时可通过键盘进行手动增、减。2)lcd灯。各种状态的切换可通过lcd灯亮、暗的组合表示。3)水位测量值。经测量变送器(压力传感器)输入单片机,与给定液位比较,产生偏差,经过pid运算,输出量对电机转速进行控制。4)报警。除了在程序运行中,水位超过上、下限进行报警外,程序启动前也可启动报警电路,检测蜂鸣器的状态。5)温度显示。读取温度传感器数值,并显示当前温度。6)通信。与pc机通信,可接受键盘输入,发什么收什么。2、拟定实现措施根据总体功能要求,拟定相应的实现措施如下:1)6个按键,分别实现设置、加一、减一、显示温度、手/自动切换、运行六种不同的功能。 2)4个贴片式lcd分别对应着水位、温度、手动和自动四种模式。3)编写pid算法,实现对水位测量值的控制,主要是通过改变pwm的占空比实现的。4)设置最大与最小水位值,防止水位超限。5)通过对18b20引脚功能操作,进行温度显示。6)设置上位机通信crc高位字节值表与低位字节值表,实现modbus通信。5.2.2控制系统具体设计 整个液位控制系统主要分为按键处理模块,水位控制模块,通信模块,显示模块。下面具体来介绍各个模块的控制流程图和主要程序的编写。 1、按键处理模块首先,对按键进行延时去抖动。void time0_int() interrupt 1 using 1 /定时器0中断4ms th0 =0xeb;tl0=0x2a; if(aj_b=1) ajnum+; if (ajnum20 & (p0|0xc0=0xff)aj_b=0; 然后判断按键地址,根据按键的识别分别转向不同的功能实现函数。其中,0xfe,0xfd,0xfb,0xf7,0xef,0xdf分别为六个按键的地址码。分别对应着设置,加一,减一,显示温度,手自动切换,运行,六种模式。当按下不同的按键,则取执行相应的功能。图18按键处理流程图void anjian() /主程序 ucharip0,x=0,x_bak=1;hard_init();aj_b=0;a3=0;a2=0;ea=1; /开中断while(1) ip0=p0 | 0xc0; if (ip0 !=0xff) ajnum=0; if (ip0 !=0xff & aj_b=0) aj_b=1;switch (ip0) case 0xfe:x+;/按键:设置if (x99) x=0;break;case 0xfd: x-;/按键:加一 if (x100) x=99; break;case 0xfb: x=0; /按键:减一 break; case 0xf7: x=0;/显示温度 break;case 0xef: x=0;/手自动切换 break;case 0xdf: x=0;/运行 break;default: break; 2、水位控制模块如图21所示,首先stc12c5a16s2单片机的a/d转换模块从外界测量变送器处得到水位模拟量输入电压,然后,a/d转换模块把被控对象的各种模拟信息编程计算机可以识别的数字信息。其中,变量lu指定a/d转换模块输入路数,变量cnum则指定a/d转换模块的采样平均次数。然后,令adc_contr=i;启动ad转换,等待adc_flag标志,a/d转换结束。当手动控制标志manb置0时,即启动pid自动控制。程序采用两种pid控制算法,当偏差为超限时,采用理想pid控制算法,当偏差e超过积分分离阈值时(设100)则采用积分分离算法。图19水位控制模块流程图水位控制程序如下(具体程序可参见附录a):uint adconv(uchar lu, uchar cnum) /ad转换,lu:第几路,cnum:采样平均次数 adval=adconv(0, 8);/得到ad转换结果void inc_pid();/pid控制算法3、通信模块图20通信模块流程图相关程序:uchar w_mult_reg(void) /写多寄存器uchar r_mult_reg(void) /读多寄存器unsigned short crc16(unsigned char *puchmsg , unsigned short usdatalen )/循环冗余校验void rece_disposal(void)/接收信息处理crc(循环冗余校验)是网络数据封包或电脑档案等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。生成的数字在传输或者储存之前计算出来并且附加到数据后面,然后接收方进行检验确定数据是否发生变化。然后,设置变量如下:uchar *t_buffer; /设置内存指针uchar rece_beg=0; / 0 表示接收区有数据了bit rece_ok=0; /=1表示接收完成,可以处理了bit txd_ok=0; /=1表示可以发送数据了uchar idata txd_buf32;/用于存储发送数据uchar idata rxd_buf16;/用于存储接受数据uchar txd_num,rxd_num; /接收和发送缓冲区已用的字节数 采用中断查询方法,当中断标志ti或ri为1时,即进行写寄存器处理或者读寄存器处理。同时,通过rece_ok 和txd_ok可检测通信是否结束。当通信结束时,通过调用显示模块,将结果显示在8为led数码管上。4、显示模块图21显示模块流程图相关程序:void xianshi(void)/显示 uchar i,j,val;for (i=0;i4;i+) val=tableai ;for (j=0;j1; 单片机上焊接4个8为led数码管,因此,全局变量a4用来存储要显示的内容。通过循环,将数组a4中的内容显示到数码管上即可。5.3系统监控软件设计5.3.1监控软件kingview简介组态软件是指一些数据采集和过程控制的专用软件,它们是在自动控制系统监控层一级的软件平台和开发环境,使用灵活的组态方式,为用户提供快速构建工业自动控制系统监控功能的、通用层次的软件。随着对工业自动化的要求越来越高,以及大量控制设备和过程监控装置之间的通讯的需要,“监控和数据采集系统”越来越受到用户的重视,从而导致组态软件的大量使用。组态王是一个集成的人机界面(hmi)系统和监控管理系统,可以与可编程序控制器(plc)、智能模块、单片机、板卡、智能仪表、远程数据采集装置(rtv)等多种外部设备进行通讯。而其软件系统与用户最终使用的现场设备无关,对于不同的硬件设施,用户只需要按照安装向导的提示完成i/o设备的配置工作,为组态王配置相应的通讯设备的硬件驱动程序并由硬件设备驱动程序完成组态王与i/o 设备的通讯。在系统运行的过程中,组态王通过内嵌的设备管理程序完成与i/o设备的实时数据交换,从而完成对所控对象的管理和监控。组态王是运行在windows98/nt/2000上的一种组态软件。它具有以下特点:(1)使用组态王,用户可以方便地构造适应自己需要的“数据采集系统”,在任何需要的时候把生产现场的信息实时地传送到控制室,保证信息的畅通。(2)组态王的网络功能使企业的基层和其它部门建立起联系,现场操作人员和工厂管理人员都可以看到各种数据。管理人员不需要深入生产现场,就可以获得实时和历史数据,优化控制现场作业,提高生产率和产品质量。(3)组态王易于学习和使用,拥有丰富的工具箱、图库和操作向导,既可以节省大量时间,又能提高系统性能。(4)组态王与现场的i/o设备直接进行通讯。i/o设备的输入提供现场的信息,i/o设备的输出通常用于对现场的控制。有些i/o设备(例如plc),其本身的程序完成对现场的控制,程序根据输入决定各输出的值。(5)输入输出的数值存放在i/o设备的寄存器中,

温馨提示

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

评论

0/150

提交评论