毕业论文-通用智能测控仪表开放式实验平台软件设计_第1页
毕业论文-通用智能测控仪表开放式实验平台软件设计_第2页
毕业论文-通用智能测控仪表开放式实验平台软件设计_第3页
毕业论文-通用智能测控仪表开放式实验平台软件设计_第4页
毕业论文-通用智能测控仪表开放式实验平台软件设计_第5页
已阅读5页,还剩107页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计(论文)通用智能测控仪表开放式实验平台软件设计GENERALINTELLIGENTMEASUREMENTINSTRUMENTOPENEXPERIMENTALPLATFORMFORSOFTWAREDESIGN院系名称电子信息学院班级电气类112学号学生姓名指导教师2015年6月摘要随着工业和科学技术的迅速发展,目前有些测控仪表已经不能满足大部分工业生产和用户的需求,通用性能比较差。本文以STC89C52RC单片机为核心设计了一款智能通用测量控制仪表,该仪表可以应用于不同的工业生产过程。为方便教学,将这款仪表设计成开放式结构,软件、硬件开放透明,操作方便。软件平台包括基本实验程序、系统试验程序、控制算法常用的数字PID程序等,用户可以根据实际情况不同来选择需要的工作模式。因为工业中大部分被控对象具有一定的滞后性,所以采用了位置式PID和增量式PID两种模式。可以广泛应用于工业生产中。硬件平台包括键盘输入和LED显示电路、控制电路、AD和DA模块、掉电保存和DS1302以及LCD显示模块等。该系统可以用来测量控制液位、压力、流量、温度等物理量,应用于工业生产方面十分方便。所设计的仪表在液位控制中通过了实验检验,控制效果良好。关键词STC89C52RC,增量式PID,位置式PID,测控仪表,开放式实验平台ABSTRACTWITHTHEDEVELOPMENTOFTHEINDUSTRYANDSCIENCEANDTECHNOLOGYFASTERANDFASTER,THEREARESOMEMEASUREMENTANDCONTROLINSTRUMENTCANNOTMEETTHENEEDSOFMOSTINDUSTRIALPRODUCTIONANDUSERS,GENERALPERFORMANCEISBADTHISPAPERDESCRIBEAELECTRICITYANDPIDCONTROLSYSTEMOFMICROCONTROLLERSTC89C52RCTHEINSTRUMENTCANMEETTHEINDUSTRIALPRODUCTIONACCORDINGTODIFFERENTOCCASIONS,INORDERTOFACILITATETEACHING,THISINSTRUMENTDESIGNEDWITHOPENANDTRANSPARENT,CONVENIENTOPERATION,THEUSERCANCHOOSEDIFFERENTWORKMODEACCORDINGTOTHEACTUALSITUATIONOFNEEDBECAUSEMOSTOFTHEPRODUCTIONHASACERTAINLAG,SOSETTHELOCATIONPIDANDINCREMENTALPID,CANBEWIDELYUSEDININDUSTRYTHESEINCLUDETHEKEYBOARINPUTANDLEDDISPALYCIRCUIT,CONTROLCIRCUIT,ADMODULE,DAMODULE,SAVEPOWEROFF,LCDMODULEANDTHECORRESPONDINGPROGRAMFLOWDRAWINGTHESYSTEMCANBEUSEDTOMEASURETHEVOLTAGECURRENTANDCONTROLOFWATERLEVEL,TEMPERATURE,ETCAPPLIEDTOINDUSTRIALPRODUCTIONISVERYCONVENIENTAFTERTEST,THESYSTEMTOBESTABLEANDRELIABLEOPERATIONKEYWORDSSTC89C52RC,LOCATIONPID,INCREMENTALPID,MEASUREMENTANDCONTROLINSTRUMENTS,OPENEXPERIMENTALPLATFORM目录1引言12设计要求33功能模块设计及实验431LED灯模块432键盘和数码管显示模块633AD采集显示模块934DA输出和显示模块1135串行通讯模块1636液晶加实时时钟显示模块1837标度变换和数据采集显示模块2138数字PID基本运算模块254实验调试过程出现问题及分析35心得37致谢38参考文献39附录40附录1LED流水灯程序40附录2按键和数码管程序42附录3AD程序46附录4DA程序47附录5设置参数程序48附录6标度变换和数据采集程序57附录7液晶加实时时钟程序65附录8参数采集和超限报警程序73附录9单片机间通讯程序82附录10PID调节程序851引言智能测控仪表在工农业生产中应用非常广泛。在具体应用时,往往以智能测控仪表为核心,针对不同控制系统对应的被控物理量,配置相应的检测变送装置与执行机构,就可以构成最基本的计算机控制系统。目前高校中,自动化、电气自动化、测控技术与仪器等专业相关实验室里许多实验装置都采用智能测控仪表作为核心控制部件。智能测控仪表核心是计算机,其类型可以是微控制器、可编程控制器、工控机等。如对本文有什么问题可加QQ9719251,验证信息随风学生做实验时,往往采用实验装置配套的现成实验平台与系统程序,按照实验指导书给出方法接线后在应用界面上输入有关参数,运行后就可以获得不同的实验数据。这种实验方法对于相关课程学习来讲,可以从感性认识层面在一定程度上对学生起到帮助作用,但是,由于实验装置对学生不够透明,无论硬件还是软件平台对学生均不开放,不能发挥学生的主观能动性,学生不能在实验过程中按照自己的思想改变实验方法,不能进行设计型实验,因而具有局限性。因此,设计一种可以让学生有更多参与性的开放式实验平台很有必要。开放式平台的组成通用智能测控仪表开放式实验平台选择微控制器作为核心部件,其组成结构图如图11所示。图11智能测控仪表开放式实验平台组成结构图硬件平台设计以某自动化上市公司工业产品为依据,设计原则是每一部分的设计首先保证基本功能,然后预留一定的扩展功能接口电路,以满足不同实践环节的需求。后续章节会剖析每一模块对应的功能及原理电路,并提供相应的模块测试程序。微控制器选择考虑实验平台用途,应该选择学生在专业课程中学习过的计算机通讯接口微控制器基本系统外输入通道参数设置显示部分输出通道蜂鸣器实时时钟LCD数码管键盘型号,以方便学生在具体使用平台时可以相对容易地分析平台结构与组成原理。本文选择的计算机型号为STC89C52RC。外输入通道部分按照工业仪表标准,输入输出信号均为标准电流电压信号,电流420MA,电压15V。输入通道基本部分功能是将两路标准电流与电压信号转换成相应的数字量送给计算机,对应四个输入接线端子,精度要求05级。预留扩展输入接口电路开关量输入电路。输出通道部分基本功能可以同时输出两路工业标准的电流与电压信号,对应四个输出接线端子;预留扩展功能带光电隔离的两路开关量输出,用于驱动固态继电器使用。显示部分基本功能按工业产品基本要求,设计两组四位七段数码显示,一组用于显示设定值,另一组用于显示实际值;预留扩展接口带汉字的液晶显示,触摸屏显示。参数设置部分基本部分为5个功能键,单独或组合完成参数设置、功能选择等任务。通讯接口基本部分包括RS232接口、RS485接口、USB接口等,以满足多级计算机控制与联网需求。除了上述基本组成部分,本设计还包括实时时钟电路等。2设计要求根据开放式实验平台的设计思想,确定了软件平台设计的基本任务1、编制功能块调试程序,用于电路调试。2、主程序设计3、编制部分控制算法程序。4、系统调试(仿真或实际调试)3功能模块设计及实验开放式实验平台硬件电路结构图如图11所示,根据设计任务要求,对硬件结构中不同功能模块的构成简介如下,同时给出相应的模块调试程序。限于篇幅,正文中只给出程序流程图,具体程序参看附录。31LED灯模块LED模块硬件图如图31所示,U10是74HC595串并转换芯片,可以减少控制器IO口使用。控制器输出高电平LED灯亮,P10是下拉排阻。图31LED硬件图74HC595简介Q0到Q7并行数据输出端5。DS串行数据输入端。SHCP上升沿数据移位。STCP上升沿数据更新。程序功能LED循环闪烁。LED模块流程图如图32所示。初始化YNYN图32LED流水灯流程图32键盘和数码管显示模块键盘和数码管显示模块硬件图如图34和图33所示74HC573简介LE高电平输出同步,低电平锁存。D0到D7数据输入端。Q0到Q7数据输出端。数码管简介ABCDEFGH八段码,为1时灭,为0时亮45。给TMP,J赋初值给I赋初值SHCP上升沿STCP上升沿TMP初值循环右移J位I2N0SETSTATENSETPLACE0向LCD写入当前的数据程序功能简介按下S5键将SETSTATE赋值1,当为0时,实时时钟进行工作,当为1时可执行显示数值的修改。按下S4键SETPLACE1,进行的是移位操作,选中秒,分,时,日,年,月,周。按下S3键SETPLACE对应的位执行1。开机后第一行显示中原工学院自动化,第二行显示姓名。按下S5进行可执行修改,通过S4和S3进行各个位数的数值修改,再按下S5,实时时钟进行工作。37标度变换和数据采集显示模块标度变换和数据采集显示模块硬件由以下组成AD采集模块用于采集模拟量转换成数字量。键盘模块用于设定范围以及部分功能按键。数码管模块用于显示数值。NYNYNY图317标度变换和数据采集显示模块标度变换和数据采集显示模块程序如下操作方式简介开机先检测数码管和蜂鸣器是否损坏。第一次按下S7键可以设置上限值。第二次按下S7键可以设置下限值,并结束上限值设定。第三次按下S7键可以设置报警值,并结束下限值设定。有键按下开始存储器初始化数码管和蜂鸣器检测读出上一次的设定值N4NN0S7保存上限N1N2N3下限报警S3S4S5S6返回移位1显示AD采集S5按下停止采集显示第四次按下S7键结束报警值设定,并将上限值下限值报警值保存到24C256。第五次按下S7键可以设置上限值。按下S6键可以返回上一级设置。按下S5键进行数码管的移位操作。按下S4键数码管数值加1。按下S3键进行AD采集并显示,每次显示后判断S5键是否被按下,如果没有被按下,则继续循环采集显示一次,如果被按下,则停止采集显示。数据采集和超限报警模块其硬件图和上一个模块硬件图完全一样,只是内容上多了一个当采集到的数据超过最大报警值得上限或者低于最小报警值得下限时会有所警告。操作手册开机先检测数码管和蜂鸣器是否损坏。第一次按下S7键可以设置上限值。第二次按下S7键可以设置下限值,并结束上限值设定。第三次按下S7键可以设置报警值,并结束下限值设定。第四次按下S7键可以设置设定值,并结束报警值得设定第五次按下S7键结束设定值设定,并将上限值下限值报警值设定值保存到24C256。第六次按下S7键可以设置上限值。按下S6键可以返回上一级设置。按下S5键进行数码管的移位操作。按下S4键数码管数值加1。按下S3键进行AD采集并显示,如果采集到的数值大于报警值或者小于设定值,蜂鸣器响并且数码管闪烁直到数值在规定范围内为止,每次显示后判断S5键是否被按下,如果没有被按下,则继续循环采集显示一次,如果被按下,则停止采集显示。开始存储器初始化数码管和蜂鸣器检测NYNYYNNY图318数据采集和超限报警模块38数字PID基本运算模块数字PID基本运算1445模块其硬件图是在数据采集和超限报警模块上面增加了DA模块。键功能定义17S7键模式选择功能,每按一次进行一次模式加1,进行到模式5后再按会跳到模式1。S7模式1可进行接下去的电压表模式。显示第三位数码管数字显示1。有键按下读出上一次的设定值N5NN0S7保存上限N1N2N3下限报警S3S4S5S6返回移位1报警AD采集S5按下停止采集显示N4设定不在范围显示电压表范围15V。S7模式2可进行接下去的输出电压电流模式。显示第三位数码管数字显示2。电压范围15V。电流范围420MA。S7模式3可进行增量式PID算法模式。显示第三位数码管数字显示3。电压范围15V。电流范围420MA。S7模式4可进行位置式PID算法模式模式。显示第三位数码管数字显示4。电压范围15V。电流范围420MA。S7模式5保护模式显示第三位数码管数字显示5。S6键参数设置功能,每按一次可设置的参数模式加1。S6模式1可设置上限值。显示上面四位数码管显示P100,下面四位数码管显示上限值。设置范围09999(整数)。S6模式2可以设置下限值,并结束上限值设定。显示上面四位数码管显示P200,下面四位数码管显示下限值。设置范围09999(整数)。S6模式3可以设置PID上限值,并结束下限值设定。显示上面四位数码管显示P300,下面四位数码管显示PID上限值。设置范围09999(整数)。S6模式4可以设置PID下限值,并结束PID上限值设定。显示上面四位数码管显示P400,下面四位数码管显示PID下限值。设置范围09999(整数)。S6模式5可以设置设定值,并结束PID下限值得设定显示上面四位数码管显示P500,下面四位数码管显示设定值。设置范围09999(整数)。S6模式6可以设置KP值,并结束设定值得设定。显示上面四位数码管显示P600,下面四位数码管显示KP值。设置范围09999(小数)。S6模式7可以设置KI值,并结束KP值得设定。显示上面四位数码管显示P700,下面四位数码管显示KI值。设置范围09999(小数)。S6模式8可以设置KD值,并结束KI值得设定。显示上面四位数码管显示P800,下面四位数码管显示KD值。设置范围09999(小数)。S6模式9结束KI值设定,并将前面所设的数值保存到24C256。显示上面四位数码管显示P800,下面四位数码管显示RUN0。S5键加1功能,每按一次可让当前选中的数码管加1,加到9以后继续按会跳到0。退出循环功能,当S7键设置完模式并运行以后,长按S5键可退出循环,再次进行参数的设置S4键数码管移位功能,每按一次会将以下的模式加1。进行到模式7以后继续按会跳到模式1S4模式1选中第七位数码管。S4模式2选中第六位数码管。S4模式3选中第五位数码管。S4模式4选中第四位数码管。S4模式5一位数码管都不选中。S3键S7模式运行功能,S7选择运行的模式后,按下S3可以运行模式,如果其中S5键没有按下,则继续运行。操作实例开机先自动检测数码管和蜂鸣器是否损坏如果数码管是好的,每一个数码管会显示8。蜂鸣器会响一声。按下S6键进行选择参数。上限值和下限值根据用户需要进行选择,如用户需要测量的范围来决定,比如,用于想测量的水位范围为0到290,对应的电压为1到5V。那么建议下限值取0,上限值取2900。PID上限值和PID下限1是根据工业生产的实际需要进行设置,如果是一个输入一个输出的情况下,PID上限值和PID下限值可都设置位0;如果是两个输入一个输出的话,PID上限值根据5V对应的幅值和你需要的幅值进行一个小的余量。比如水位5V对应的是2900,而我需要的是1000,那么PID上限值可以设置成0到600。同理PID下限值是根据1V对应的设定值和需要的设定值进行一个小的余量。比如1V时水位时0,但由于是两个输入量,一个开水阀一个进水阀,当输入3V时进水阀进来的水和出去的水相等时,此时的3V值就是余量。接着继续选择参数设置我需要的值,这个值在上限值和下限值之间。继续设置KP,KI,KD参数14,如果想选用位置式PID时,KI要尽量小,以免超调过大,KD要尽量大。增量式PID时,KI不能太小。接着继续按S6保存所设的数值。按下S7键进行模式的选择。用户只想把该仪器当做电压表用可以选择模式1,想输出可调电压和电流可选择模式2,想进行PID控制可选模式3或者模式4。如果需要控制的对象有一定的滞后,例如控制水位,选择增量式PID控制,如果滞后程度很小,例如控制电机,选择位置式PID控制。模式选完后按下S3键就可以执行。按下S3键进行执行选择的模式。如果调节或者测量过程中想退出调节或者测量,可长按S5键可停止。数字PID基本运算模块流程图如图319和图319续所示NY有键按下开始存储器初始化数码管和蜂鸣器检测读出上一次的设定值S6S5S4NY图319PID基本运算模块流程图NYNN9NN0保存上限N1N2N3下限PID上限显示N4PID下限有键按下开始存储器初始化数码管和蜂鸣器检测读出上一次的设定值S7模式1AD采集S3N5N6N7KDKI设定KPN81移位S7NUMNUMNUMNUM0N9时间NYNYNYNYNY图319续PID基本运算模块流程图水位控制调试结果表31增量式调节0到2900可调对应刻度0到290坐标竖轴对应刻度,横轴对应时间表31KP9,KI01,KD1参数设定KPKIKD最终范围调节曲线500对应刻度509011454511515049484730SS5按下S5按下S5按下S5按下DA输出S7模式2S7模式3S7模式4增量式位置式S7模式NUMNUMNUMNUM4显示1500对应刻度15090111476155816015515014514025S2500对应刻度25090112456254725225125024924825S表32增量式调节0到2900可调对应刻度0到290坐标竖轴对应刻度,横轴对应时间表32KP8,KI008,KD08参数设定KPKIKD最终范围调节曲线500对应刻度50800808466523605652484450S1500对应刻度1508008081421154615215014814614440S2500对应刻度2508008082456257025225125024924845S表33增量式调节0到2900可调对应刻度0到290坐标竖轴对应刻度,横轴对应时间表33KP95,KI02,KD2参数设定KPKIKD最终范围调节曲线500对应刻度5095022398523605652484450S1500对应刻度150950221446155817016516015214850S2500对应刻度250950222445258126526125825425060S表34增量式调节0到2900可调对应刻度0到290坐标竖轴对应刻度,横轴对应时间表34KP85,KI009,KD09参数设定KPKIKD最终范围调节曲线500对应刻度508500909477534605652484450S1500对应刻度15085009091421152315014814614414230S2500对应刻度25085009092445254725024924824724620S对于增量式PID根据比较分析,第二组PID参数震荡过于明显,第三组PID参数调节时间比较长,第四组PID参数相对较好,但第一组PID参数比第四组PID参数曲线更加平缓。所以选择第一组PID参数,取KP9;KI01;KD1。4实验调试过程出现问题及分析按照设计方案编制程序后在实际系统中进行了实验调试,调试过程遇到了一些问题,经过分析都得到解决。为了给用户使用实验平台学习提供参考,特总结如下。1问题数码管无法显示第四位,会乱码。原因定义的数值是UCHAR型,而显示的数值是UINT型。办法将定义的数值改为UINT型或者将UINT型分解为两个UCHAR型。1问题开机时键盘S7键总是自动按下原因可能是开机后键盘产生了抖动,由于键盘是两端都是接的IO口,初始电平都不确定。办法将按键模块的去抖动时间稍微加长一点,将显示和按键位置换一下,先显示后判断按键,这样也相当于加长了去抖动时间。2问题AD采集显示每一次数值相差很大原因显示数值有偏差是正常的,但是偏差比较大一是软件问题,二是硬件问题。其中硬件方面是因为本块实验板板上资源多,而IO口只有那么多,所以会产生IO口的复用,其中AD和DA模块就是。办法由于硬件已经无法更改,只能从软件方面设计,而且开机时IO口电平是不确定的,可以在进行AD和DA转换期间将和AD和DA复用IO口的模块功能关掉,这样显示数值是正常的。3问题DS1302不能保持计时,每次开机不能都是显示初始化的时间。原因开始以为是备用电池出了问题,后来通过阅读程序发现是每次开机都设定了初始化,但是不设定初始化,第一次又无法读数(因为还在调试其他程序,端口复用,所以显示乱码)。办法第一种方法可以将程序分两次输入,第一次将初始化输入,第二次将初始化去掉进行输入,通过按键调整数值可以进行实时时钟掉电计时功能。第二种方法是通过定义一个按键来控制是否将初始化一开始就输入。4问题24C256只能掉电保护第一个数值,而其他数值不能保存下来。原因24C256能在多个地址保存不同数值,既然第一个能保存下来,说明程序大问题没有,经查找资料得知是延时时间给的太短,所以每次只保存了第一次数值,后面的来不及保存。办法每次保存一个数值后经过一个10MS的延时再保存下一个数值,这样每个数值都完整的保存下来了。5问题串口单片机和电脑通信时会显示乱码。原因串口通信的程序不长,也容易理解,仔细看下波特率的设定是否有错误以及程序里面的标志位的设置位是否正确以及每次发送接收后是否软件置0。办法经过检查,标志位在写的时候将TI写成了T1,这种问题在编译的时候是无法检查出来的,还有波特率忘记改成9600,而是使用的是4800。6问题在编译连接的时候显示内容太多超过了2K。原因这是程序太长而使用的软件没有破解的问题。办法软件尽量将不必要的地方删掉,使用破解软件将软件破解下可以将2K破解到8K。7问题在控制水位时用当时的电表测得的电流值和平时进行AD和DA转换时测到的电流值相差很大。原因这是由于负载太大的原因,造成了电流值相差很大。办法板子上有一个5V电压输入和大于5V电压输入,将VCC接在大于5V输入上面。8问题AD进行采集时数值会有一定的差异,不是很大,也不是比较小。原因进行采集时有些波动很正常,但是我们仍然可以通过程序使其显示比较稳定。办法在程序中增加滤波,这样可以进行多次采集,然后选取比较合理的数值进行输出。心得大学四年转眼间就过去了,这次毕业设计不仅是对所学的专业知识的一个总结,也是一种提高,增强了我们的实践操作能力和分析问题解决问题的能力,为我们走入社会打好了良好的基础。一开始寒假看老师发的应用手册给我的感觉是有时候感觉自己需要做的东西很少,有时候感觉自己做的东西很多,然后一开始有点懵,后来看了几次后发现自己要做的东西还是比较少的,但是开学后老师给我们开了几次会,感觉自己需要做的东西又比较多了,又开始有点懵了。然后我就出去玩了几天,回来后再看了几次开发板应用手册,发现需要我做的东西还是很少,其实和做课程设计控制电机转速差不了太多,于是我开始一个模块一个模块的开始做,网上和图书馆是我主要的资料来源,开始几天我先把各个模块的硬件原理弄明白,然后再依照硬件的时序图开始自己编程,当出现错误时自己先修改,一般来说都可以改好,实在搞不明白原因我就找老师,网上搜是否遇到和我有一样的问题的,看老师和网友是怎么解决的。这样过了十几天后开始有了大致的模板,然后我和老师讲了下我的思路,老师说可以,于是我就接着做。于是我开始一步一步,从简到繁。通过这次的毕业设计,让我的专业知识更进了一步,在这次毕业设计中我遇到过很多问题,有些问题还比较严重,比如PID调节严重不好,比如AD转换结果非常不理想。总结这些问题,大都是自己没有实战经验,考虑问题不周全,以及对一些微小的细节没有注意到,导致了严重的问题。不过做到现在我还是非常开心的,虽然比较累,每天待在实验室也很无聊,有时候也想出去转转,但是觉得一切都是值得的,至少面对困难时我没有退缩,无论最终的结果如何,至少我无怨无悔了,这就够了。其实做到现在我仍然有这样的感觉,其实毕业设计需要我们做的东西真的很少,如果要想快点完成是很容易,但是你如果真的想做毕业设计,那你永远也做不完,你可以自己去思考我要怎么做,我想怎么做。就像是一件衣服,一件普通衣服作用只要是能套在身上就行,但衣服也可以做成很多种,比如耐磨的,带帽子的,绣花的,加吊带的,透气的,羽绒服,再高端一点的,防弹衣,雨衣,冲锋衣等等,毕业设计也是一个道理,要求我们做的只是一件普通衣服而已,但你想做成什么样的衣服需要你自己选择。致谢在这次毕业设计中首先要感谢我的指导老师张谦老师,每个星期他都会和我们见面,问我们现在的情况和有哪些不懂的地方,在我遇到问题时教我怎么去分析解决,并给我相应的资料。在整个过程中,老师一直良好得扮演着监督者和指引者。其次我要感谢实验室的李红军学长,每次我遇到自己解决不了的问题时,他都会给我提示一下,让我去思考可能会是什么原因,然后我再去解决,我觉得这样非常好。张谦老师和李红军学长这样无私奉献的引路人是我学习的榜样。最后我还要感谢和我一起待在实验室的同学和我自己,到了这个季节,实验室有时候真的很热,但是大家都坚持下来了,有时候自己坚持不下来了,看到别人都在专心的思考,自己也跟着静下心来了。这样不仅大家能够互相学习,也增进了相互之间的感情。参考文献1张谦,王国强,徐昱琳单神经元PID算法在大滞后系统中的应用,中原工学院学报J,2006年12月2杨学昭,马彦霞,薛立AT24C512存储器在无线抄表器中的应用中原工学院学报J,2004年8月3袁东51单片机应用开发实战手册电子工业出版社M,2011年4月325382991291774郭天祥51单片机C语言教程电子工业出版社M,2013年8月561845彭伟单片机C语言程序设计实训100例电子工业出版社M,2010年1月PAGE118121154175,236257,3313426于永,戴佳,刘波51单片机C语言常用模块与综合系统设计实例精讲M电子工业出版社,2008年10月PAGE88113,145158,193208,3193287赵建领,弓雷51系列单片机开发宝典电子工业出版社M,2012年2月PAGE375389,352358,486507,5746058张义和,王敏男,许宏昌,余春长例说51单片机人民邮电出版社M,2008年4月PAGE1341799范红刚,杜林娟51单片机自学笔记北京航空航天大学出版社M,2013年8月PAGE188232,30633110杨学昭,王东云等单片机原理、接口技术及应用(含C51)M西安电子科技大学出版社,2009年11张五一,张道光微型计算机原理与接口技术M郑州,河南科学技术出版社,2006年8月12康华光电子技术基础数字部分M北京,北京高等教育出版社,2009年7月13宋戈,黄鹤松,吕玉良,蒋海峰51单片机应用开发范例大全M人民邮电出版社2012年6月14东南大学,邵裕森,戴先中过程控制工程M机械工业出版社,2008年4月1019915QIFAQUNA,JINGXUEDONGB,ZHAOSHIQINGADESIGNOFSTEPPINGMOTORCONTROLSYSTEMBASEDONAT89C51MICROCONTROLLERJ,WWWSCIENCEDIRECT2014年1月8日16杨军,沈毅PC机与单片机到的多机通讯J,郑州纺织工学院学报,1999年1月17浙江求是科教设备有限公司过程控制系列之设备使用说明书N附录附录1LED流水灯程序INCLUDEINCLUDEDEFINEUCHARUNSIGNEDCHARDEFINEUINTUNSIGNEDINTSBITSTCPP02SBITSHCPP03SBITDSP01UINTZ,X,YUCHARBAI,SHI,GE/延时程序,时间1MS同附录10/LED显示子程序功能LED循环显示简介DS为八位数据,在SHCP每一个上升沿从高位开始按位输入,在STCP每一个上升沿进入存储寄存器/VOIDLEDUCHARI,TEMP,JTEMP0XA0FORJ1J0AXIANSHI附录4DA程序UNSIGNEDCHARCODESHUZI0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0X8C,0XBF,0X7F/09,P,点只需把数组定义改成上面数组定义,其他头文件,变量定义,IO口定义可与附录10相同/延时程序,时间1MS同附录10/数码管显示其中P06是位选锁存端,P05是段选锁存端,P2控制AH,COM8到COM1上面四位数码管显示其中包括小数点显示同附录10/DA转换把0到255转换成4到20MA/AD转换0到5V电压转换为0到255(同附录10)/VOIDMAINWHILE1ADDAFORA50A0AXIANSHI附录5设置参数程序UNSIGNEDCHARCODESHUZI0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0X8C,0XBF,0XC7,0X88,0XC8,0X86/09,P,L,A只需把数组定义改成上面数组定义,其他头文件,变量定义,IO口定义可与附录10相同/延时程序,时间US/VOIDDELAYNOP/延时程序,时间1MS(同附录10)/24C256初始化(同附录10)/24C256启动信号(同附录10)/24C256停止信号(同附录10)/24C256应答信号(同附录10)/24C256写字节(同附录10)/24C256读字节(同附录10)/24C256写地址(同附录10)/24C256读地址(同附录10)/数码管显示其中P06是位选锁存端,P05是段选锁存端,P2控制AH,COM8到COM1上面四位数码管显示(同附录10)/独立按键程序注意地方,在显示的时候需要把一端的IO口设置为高电平,否则会影响显示/VOIDDULIANJIANUCHARI,JRET0K31K41K51K61K71P20X00/先将按键一端置地,当做接地,检测另一端IFK70/检测按键K3是否按下DELAY10/消除抖动IFK70JDELAY10IFJ1/设置第一组参数C1D11E11F11QSHANGXIAN/1000BSHANGXIAN1000/100SSHANGXIAN100/10GSHANGXIAN10IFJ2/设置第二组参数SHANGXIANQ1000B100S10GC2D11E11F11QXIAXIAN/1000BXIAXIAN1000/100SXIAXIAN100/10GXIAXIAN10IFJ3/设置第三组参数XIAXIANQ1000B100S10GC3D11E11F11QBAOJING/1000BBAOJING1000/100SBAOJING100/10GBAOJING10IFJ4/设置第四组参数BAOJINGQ1000B100S10GC4D11E11F11QSHEDING/1000BSHEDING1000/100SSHEDING100/10GSHEDING10IFJ5/保存参数SHEDINGQ1000B100S10GJ0C12D13E11F11Q14B15S11G11WRITE_ADD1,SHANGXIAN/100DELAY10WRITE_ADD2,SHANGXIAN100DELAY10WRITE_ADD3,XIAXIAN/100DELAY10WRITE_ADD4,XIAXIAN100DELAY10WRITE_ADD5,BAOJING/100DELAY10WRITE_ADD6,BAOJING100DELAY10WRITE_ADD7,SHEDING/100DELAY10WRITE_ADD8,SHEDING100DELAY10WHILEI0AXIANSHIDULIANJIAN附录6标度变换和数据采集程序头文件,变量定义,IO口定义可与附录10相同/延时程序,时间US/VOIDDELAYNOP/延时程序,时间1MS(同附录10)/初始化(同附录10)/启动信号(同附录10)/停止信号(同附录10)/应答信号(同附录10)/写字节(同附录10)/读字节(同附录10)/写地址(同附录10)/读地址(同附录10)/蜂鸣器,时间500MS/VOIDBEEFBEE0DELAY50BEE1/数码管显示其中P06是位选锁存端,P05是段选锁存端,P2控制AH,COM8到COM1上面四位数码管显示(同附录10)/AD转换(同附录10)/独立按键程序注意地方,在显示的时候需要把一端的IO口设置为高电平,否则会影响显示/VOIDDULIANJIANUCHARI,COUNT,J,MMMK31K41K51K61K71P20X00/先将按键一端置地,当做接地,检测另一端IFK70/检测按键K3是否按下DELAY10/消除抖动IFK70JIFJ1C10D1E0F0QSHANGXIAN/1000BSHANGXIAN1000/100SSHANGXIAN100/10GSHANGXIAN10IFJ2SHANGXIANQ1000B100S10GC10D2E0F0QXIAXIAN/1000BXIAXIAN1000/100SXIAXIAN100/10GXIAXIAN10IFJ3XIAXIANQ1000B100S10GC10D3E0F0QBAOJING/1000BBAOJING1000/100SBAOJING100/10GBAOJING10IFJ4BAOJINGQ1000B100S10GJ0C10D5E0F0Q0B0S0G0WRITE_ADD1,SHANGXIAN/100DELAY10WRITE_ADD2,SHANGXIAN100DELAY10WRITE_ADD3,XIAXIAN/100DELAY10WRITE_ADD4,XIAXIAN100DELAY10WRITE_ADD5,BAOJING/100DELAY10WRITE_ADD6,BAOJING100DELAY10WHILEI0A/IFADVALBAOJINGBEEF/XIANSHIP20X00WHILEK50VOIDMAININITWEI1P20XFFWEI0DUAN1P20X00DUAN0DELAY1000BEEFSHANGXIAN1READ_ADD1DELAY10SHANGXIAN2READ_ADD2DELAY10SHANGXIANSHANGXIAN1100SHANGXIAN2XIAXIAN1READ_ADD3DELAY10XIAXIAN2READ_ADD4DELAY10XIAXIANXIAXIAN1100XIAXIAN2BAOJING1READ_ADD5DELAY10BAOJING2READ_ADD6DELAY10BAOJINGBAOJING1100BAOJING2WHILE1FORA10A0AXIANSHIDULIANJIAN附录7液晶加实时时钟程序INCLUDEINCLUDEDEFINEUCHARUNSIGNEDCHARDEFINEUINTUNSIGNEDINTSBITWEIP06/位选锁存器SBITDUANP05/段选锁存器UINTZ,X,YSBITCSP07SBITSIDP27SBITSCLKP26SBITDSIOP04SBITSCLKP16SBITRSTP17SBITK3P01SBITK4P03SBITK5P04SBITK6P12SBITK7P16SBITK33P20SBITK44P21SBITK55P22SBITRETP17UCHARCODETABLE1“姓名谢云“UCHARCODETABLE2“中原工学院自动化“UCHARCODETABLE3“UCHARCODETABLE4“UCHARCODETABLE5“0123456J0“UCHARCODEREAD_RTC_ADDR70X81,0X83,0X85,0X87,0X89,0X8B,0X8DUCHARCODEWRITE_RTC_ADDR70X80,0X82,0X84,0X86,0X88,0X8A,0X8CUCHARTIME70,0,0X12,0X01,0X01,0X02,0X13UCHARSETSTATE,SETPLACEVOIDINT0CONFIGURATION/延时程序,时间US/VOIDDELAYNOP/延时程序,时间1MS(同附录10)/DS1302写一个数据/DS1302写命令/VOIDDS1302WRITEUCHARADDR,UCHARDATUCHARNRST0_NOP_SCLK0_NOP_RST1_NOP_FORN0N1SCLK1_NOP_SCLK0_NOP_FORN0N1SCLK1_NOP_SCLK0_NOP_RST0_NOP_/DS1302READ读取一个地址的数据/UCHARDS1302READUCHARADDRUCHARN,DAT,DAT1RST0_NOP_SCLK0_NOP_RST1_NOP_FORN0N1SCLK1_NOP_SCLK0_NOP_NOP_FORN0N1|DAT18SETPLACE0WHILEI9/换成BCD码。TIMESETPLACETIMESETPLACE6IFTIMESETPLACE0X60IFTIMESETPLACE0X32IFTIMESETPLACE0X13IFTIMESETPLACE0X7WHILEI2N0WHILEI0AIFADVALBAOJING/报警BEEFCBAOJING/1000DBAOJING1000/100EBAOJING100/10FBAOJING10IFADVAL0AXIANSHIDULIANJIAN附录9单片机间通讯程序上位机程序INCLUDEDEFINEUCHARUNSIGNEDCHARDEFINEUINTUNSIGNEDINTSBITLED1P00SBITLED2P03SBITK1P10UINTZ,X,Y/延时程序,时间1MS(同附录10)/向串口发送字符/VOIDPUTC_TO_SERIALPORTUCHARCSBUFCWHILET10T10VOIDMAINUCHAROPERATION_NO0SCON0X40TMOD0X20PCON0X00TH10XFDTL10XFDTI0TR11WHILE1IFK10DELAY10IFK10OPERATION_NOOPERATION_NO14SWITCHOPERATION_NOCASE0LED1LED21BREAKCASE1PUTC_TO_SERIALPORTALED1LED1LED21BREAKCASE2PUTC_TO_SERIALPORTBLED2LED2LED11BREAKCASE3PUTC_TO_SERIALPORTCLED1LED1LED2LED1BREAKDELAY100下位机程序INCLUDEDEFINEUCHARUNSIGNEDCHARDEFINEUINTUNSIGNEDINTSBITLED1P00SBITLED2P03UINTZ,X,Y/延时程序,时间1MS/VOIDDELAYZUINTX,YFORXZX0XFORY110Y0YVOIDMAINUCHAROPERATION_NO0SCON0X50TMOD0X20PCON0X00TH10XFDTL10XFDRI0TR11LED1LED21WHILE1IFRIRI0SWITCHSBUFCASEALED1LED1LED21BREAKCASEBLED2LED2LED11BREAKCASECLED2LED2LED11BREAKELSELED1LED21DELAY100附录10PID调节程序INCLUDEINCLUDEDEFINEUCHARUNSIGNEDCHARDEFINEUINTUNSIGNEDINTUNSIGNEDCHARCODESHUZI0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0X8C,0XBF,0X88,0XC1,0XC8/09,P,R,U,NUNSIGNEDCHARCODEWEISHU0X80,0X40,0X20,0X10,0X08,0X04,0X02,0X01/分别选通18个数码管UCHARCODETABLE1“姓名谢云“UCHARCODETABLE2“中原工学院自动化“UCHARCODETABLE3“班级电气112“UCHARCODETABLE4“UCHARCODETABLE5“0123456789“SBITWEIP06/位选锁存器SBITDUANP05/段选锁存器SBITBEEP07/蜂鸣器SBITCSP07SBITSIDP27SBITSCLKP26SBITK3P01SBITK4P03SBITK5P04SBITSCLP00SBITSDAP01SBITK6P12SBITK7P16SBITRETP17SBITCLKP16SBITCSP15SBITD0P04SBITD1P04SBITDADATAP04SBITDACLKP12SBITDALOADP14SBITDALDACP13UINTZ,X,YUCHARQ,B,S,G,C,D,E,F,A,MMM,TEST,DATT,NN,TCNT,SEC,FEC,MEC,AAA,NUMNUMDOUBLEKP,KI,KDINTW,WW,BAOJING,XIABAOJING,DAT,ADVAL,W,WW,CEZHI,SHEZHI,KII,KPP,KDD,SHANGXIAN1,SHANGXIAN2,XIAXIAN1,XIAXIAN2,SHEDING1,SHEDING2,BAOJING1,BAOJING2,KPP1,KPP2,KII1,KII2,CEZHI1,CEZHI2,CEZHI3,KDD1,KDD2INTERRORJ,SHEDING,SHANGXIAN,XIAXIAN,LASTERROR,LLASTERROR,UL/延时程序,时间US/VOIDDELAYNOP/延时程序,时间1MS/VOIDDELAYZUINTX,YFORXZX0XFORY110Y0Y/12864写命令/VOIDSEND_COMMANDUCHARCOMMAND_DATAUCHARIUCHARI_DATAI_DATA0XF8CS1SCLK0FORI0ISHANGXIANUSHANGXIANIFU10000ERRORJ10000IFERRORJLASTERRORERRORERROR20/UINTKPERRORKIERRORJUINTKPERRORKIERRORJKDERRORLASTERRORLASTERRORERRORRETURNU/数码管显示其中P06是位选锁存端,P05是段选锁存端,P2控制AH,COM8到COM1上面四位数码管显示/VOIDXIANSHIDUAN1/第一位数码管显示0P2SHUZICDUAN0P20XFFWEI1P2WEISHU0WEI0DELAY1DUAN1/第二位数码管显示1P2SHUZIDDUAN0P20XFFWEI1P2WEISHU1WEI0DELAY1DUAN1/第三位数码管显示2P2SHUZIEDUAN0P20XFFWEI1P2WEISHU2WEI0DELAY1DUAN1/第四位数码管显示3P2SHUZIFDUAN0P20XFFWEI1P2WEISHU3WEI0DELAY1/数码管显示其中P06是位选锁存端,P05是段选锁存端,P2控制AH,COM8到COM1下面面四位数码管显示/DUAN1/

温馨提示

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

评论

0/150

提交评论