




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机的恒温箱智能控制系统的设计方案1 引言近年来为了保证产品的质量,各个行业行为规范就越来越高,众多机械类、医药类、化工类、建筑类等工业和企业都离不开恒温箱的使用;为了确保恒温箱许多主要技术的指标可以达到国家技术所要求的规定,必须对其进行检测,保证产品的质量1。本系统所设计、研发的数字恒温箱能非常好地解决这些问题。温度的控制系统是自动控制系统较为复杂的控制,其控制的滞后性是整个系统中最难克服的难题,因为温度的变化是纯滞后环节,而温度的控制也是一个惯性大,应变慢的控制对象2。在温度的控制系统中一般用到的是较为先进的控制系统理论和控制算法。本系统中采用了PID算法,其算法应用到了系统软件的设计中,对整个加热过程使用模糊PID控制方案,对于加热过程中所产生的各种干扰和恒温箱的惯性问题都进行了分析3。恒温箱的智能控制系统采用半导体集成温度传感器满足温度测量要求,温度传感器将采集的温度信号转换成电流信号,然后再由转换电路将电流信号转换为电压信号,通过放大电路和模/数转换芯片将电压信号转换成数字信号,由单片机处理后,将测量得到的温度值显示于液晶显示器上。系统的全部输入输出控制集中由单片机统一管理,各有关运行参数的设定,可通过键盘输入,设定温度、箱温实时值在液晶显示模块上显示,操作方便。该系统具有实时温度显示和温度设定功能,还具有温度上、下限报警和自动控制功能。当温度高于或低于设定值一定程度时,发出生光报警,消除由于单片机系统意外失控所造成的危险,提高了恒温箱工作的可靠性和使用安全性。设计任务为:用单片机设计一个控制温度范围在3080的智能温度控制系统。设计要求:完成该系统的软硬件设计,学习掌握单片机采集测控系统的设计方法,提高学习新知识、新技能的能力,培养独立设计的能力。2 系统设计分析2.1 系统功能分析恒温箱的智能控制系统由核心处理模块、温度采集模块、键盘输入模块、液晶显示模块、及控制执行模块等组成。本控制系统有以下功能及指标: 温度控制设定波动范围小于1%,测量精度小于1%,控制精度小于2%; 实现功能:可以升温、控温; 温度实时显示; 按键输入,设定可控制范围内任意温度值; 温度上、下限越限报警。根据以上控制系统要求,可得出恒温箱的智能控制系统的结构框图,如图2-1所示。图2-1 恒温箱的智能控制系统工作框图2.2 系统结构方案确定恒温箱的智能控制系统采用半导体集成温度传感器对温度进行检测,并将温度信号转换成电流信号,然后通过电流电压转换电路转换为电压信号,通过放大电路最终通过模/数转换芯片转换成数字信号,经单片机处理后,各个检测信号、控制信号、显示信号通过单片机的I/O接口传输,并显示于液晶显示器上。2.2.1 温度传感器的选择采用集成半导体温度传感器AD590。AD590是一种2端集成电路式半导体传感器,输出电流与它所受的温度成线性关系。温度传感器具有重复性好、精度高等特点,其测量温度范围为:-55+150,线性度0.3,电压范围:+4V+30V,低功耗。AD590具有标准化的输出,固有的线性关系6。对于本系统要求对恒温箱的温度实现实时和快速控制,DS18B20在速度上满足不了要求,所以温度传感器采用AD590。2.2.2 A/D转换器的选择采用高精度A/D转换器。TLC2543是11个模拟输入端的12位开关电容逐次逼近模/数转换器,具有转换快、稳定性好、与微处理器接口简单等优点。TLC2543的主要特性如下:66ksps的采样速率;最大转换时间为10S;SPI串行接口;线性度误差最大为1LSB;低供电电流(1mA典型值);掉电模式电流为4A。本系统要求控制精度较高,且占用单片机的接口较多。而TLC2543精度高,且与单片机接口简单,所以A/D转换器采用TLC2543。2.2.3 控制元件的选择恒温箱控制系统的执行元件是电热丝,电热丝的供电电源为市电交流220V,其功率对于单片机来说非常大,单片机不能直接控制的,所以,我们还要解决电热丝的供电的控制方案。采用晶闸管对电热丝的供电进行控制。晶闸管的优缺点:1、优点: (1)功率放大倍数可达几十万倍;(2)控制灵敏,反应快;(3)损耗小,效率高;(4)体积小,重量轻;(5)改善了工作条件,维护方便。 2、缺点:(1)过载能力弱;(2)抗干扰能力差;(3)导致电网电压波形畸变;(4)控制电路比较复杂8。综上所述,选用晶闸管作为电热丝供电的控制元件。2.2.4 单片机的选择基于系统要求,系统所用的单片机选择了AT89C52。AT89C52是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内含8k bytes可反复擦写的只读程序存储器(EPROM)和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C52单片机适合于许多较为复杂控制应用场合,可为许多嵌入式控制应用系统提供高性价比的解决方案.3 系统硬件的分析与设计单片机系统的硬件和软件的结合是一个非常严格的过程,对于一个系统,硬件的设计不是一成不变的,不一定只有一种方案才能实现,但是每个模块都有一个最佳的设计方案,我们要综合考虑如何搭配各个方案,选择哪一种方案更好,不仅要考虑一个系统的精度,还要从成本上考虑等很多方面的问题。恒温箱以AT89C52为CPU组成单片机系统,负责输入信号的处理和输出信号的控制。用温度传感器检测箱内温度,由于温度传感器的输出信号很微弱,需经过放大电路放大,再由模/数转换电路将模拟信号转换成数字信号,经单片机处理,将温度值显示在液晶显示器上。为了确保恒温箱工作可靠和使用安全,在输出中设置报警接口。3.1 直流稳压电源的设计1、直流稳压电源电路原理电子设备一般都需要直流电源供电。这些直流电大多数都采用把交流电(AC)转变成直流电(AD)的稳压电源的方法。直流的稳压电源有电源变换的电路、整流的电路、滤波的电路、稳压的电路和负载的电路五部分组成,其原理框图如图3-1所示。电网提供的交流电压U1(220V,50Hz)经变压器的降压后,得到电路所需的电压U2,然后用整流电路转换成大小随时间变化、方向不变脉动电压U3,接着用滤波器过滤去交流分量,就得到了比较平直直流电压U4。但这样的直流输出电压,还会随交流电网电压的波动或负载的变动而变化。在对直流供电要求较高的场合,还需要使用稳压电路,以保证输出直流电压更加稳定,这样就得到了比较稳定直流电压U0。图3-1 直流稳压电源电路原理框图电源变换电路一般由变压器或阻容分压电路来完成;整流电路主要是利用二极管的单向导电性的原理,将交流电压变化为单向脉动电压;滤波电路是利用电容的充放电储能原理,将波动变化大的脉动电压滤波成较平滑的电压;稳压电路是直流稳压电源的核心,因为整流滤波之后的电压虽然已是直流电压,但它还是随输入电网的波动而变化,是一种电压值不稳定的直流电压,而且纹波系数也比较大,所以须加入稳压电路才能输出稳定的直流电压。2、稳压电源电路原理图由于OP07采用5V供电线性区太小,放大倍数太小,所以采用12V电源供电;晶闸管作为电热丝供电的控制元件,所以触发电压采用9V电源供电;而单片机则采用5V供电。因此,电源变压器采用双15V变压器,输入220V,50Hz交流电,经过单相桥式整流电路进行整流,滤波,在分别经过L7812、L7809和L7805进行稳压后得到12V、9V和5V电压分别给OP07、晶闸管和单片机进行供电,电路原理图如图3-2所示。图3-2 直流稳压电源电路原理图3.2 温度采集电路的设计输入电路部分主要是温度的采集,通过半导体集成温度传感器AD590检测温度,并将温度传感器输出的电流信号转换成电压信号,经放大电路放大后,再经模/数转换芯片,将模拟信号转换成数字信号。3.2.1 温度传感器AD590的概述AD590是一种2 端恒流集成电路式半导体传感器,输出电流与它所受的温度成线性关系。AD590 温度传感器具有重复性好、精度高等特点,其测量温度范围为:-55+150,线性度0.3,电压范围:+4V+30V,低功耗。AD590 具有标准化的输出,固有的线性关系,因而便于使用。AD590输出电流值和它所测绝对温度有精确的线性关系,由于生产厂家生产时采用激光微调来校正集成电路内的薄膜电阻,使其在摄氏零度(对应绝对温度为273.2K),输出电流为273.2uA,灵敏度为1uA/。当其感受的温度升高或者降低时,则其电流就以1uA/的速率增大或减小,因而在应用中将电流转换为电压,即可以用电压来表示温度大小。 AD590的输出电流是以摄氏零度(对应绝对温度为273K)为基准,每增加1,它会增加1A输出电流,因此在室温25时,其输出电流Iout=(273+25)=298A。AD590基本应用电路如图3-3所示。图3-3 AD590基本应用电路注意事项:1、Vo的值为Io乘上10K,以室温25而言,输出值为10K298A=2.98V2、测量Vo时,不可分出任何电流,否则测量值会不准6。3.2.2 放大电路的设计由于AD590的输出信号微弱,为A级,所以需要把信号放大,再输入到模/数转换芯片,完成模拟信号到数字信号的转换。本设计的放大电路采用高精度集成运放OP07做放大元件, OP07的电源电压范围为:318V,输入电压范围为:014V。根据系统工作特性及精度要求,设计的放大电路如图3-4所示。图3-4 AD590放大电路电路分析:1、AD590的输出电流I=(273+T)A(T为摄氏温度),因此测量的电压V为(273+T)A10K=(2.73+T/100)V。为了测量电压需要使输出电流I不分流出来,使用电压跟随器,其输出电压V2等于输入电压V。2、然后使用差动的放大器,其输出Vo为(100K/10K)(V2-V1)=T/10,假设温度为摄氏28,则输出电压是2.8V,输出的电压接A/D转换器,那么A/D转换器输出的数字值就与摄氏温度成比例线性关系。3.3 AD的选择及接口电路A/D、D/A转换器是过程控制及仪器仪表、工控设备等检测与控制装置中应用非常广泛的器件。由于大规模集成的电路技术发展,各种高精度的、低功耗的、可编程的、低成本的A/D转换器不停推出,这促使微机控制的系统电路更加的简洁,更高可靠性。3.3.1 TLC2543的介绍TLC2543是11个输入端的12位开关电容逐次逼近模/数转换器,具有转换速度快、稳定性好、分辨率高、与微处理器接口简单等优点。3.3.2 TLC2543与单片机接口电路TLC2543与单片机接口电路如图3-5所示。图3-5 TLC2543与单片机接口电路3.4 AT89C52最小系统设计3.4.1 单片机系统概述AT89C52是一种高性能低功耗的采用CMOS工艺制造的8位微控制器,它提供下列标准特征:片内含8k的可反复擦写的ROM和2568bit内部RAM,32条I/O线,3个16位可编程定时/计数器中断,2个外部中断源,共8个中断源,片上震荡器和时钟电路。P0口:双向8位三态 I/O口,可驱动8个LS型TTL负载。当P0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。在这种模式下,P0口具有内部上拉电阻。在EPROM编程时,P0口接收指令字节,同时输出指令字节在程序校验时需要外接上拉电阻。P1口:内部带有上拉电阻的8位准双向I/O口,可驱动4个LS型TTL负载。当对P1口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。当作为输入端使用时,P1口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(IIL)。P2口:内部带有上拉电阻的8位双准向I/O口,与地址总线(高8位)复用,能驱动4个LS型TTL负载。P2口在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。在这种情况下,P2口使用强大的内部上拉电阻功能。当利用8位地址线访问外部数据存储器时,P2口输出特殊功能寄存器的内容。P3口:内部带有上拉电阻的8位准双向I/O口,双功能复用口,能驱动4个LS型TTL负载。当向P3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。RST:复位输入,在此引脚上出现两个机器周期的高电平(由低到高跳变),将使单片机复位。ALE/ :ALE为地址锁存允许信号,当访问外部存储器时,ALE输出信号的负跳沿用于单片机发出的低8位地址经外部锁存器的锁存控制信号;位本脚第二功能,在对内EPROM编程写入时,此引脚作为编程脉冲输入端。 :程序存储允许时外部程序存储器的读选通信号。当AT89C52执行外部程序存储器的指令时,每个机器周期两次有效,除了当访问外部数据存储器时,将跳过两个信号。/VPP:功能为内外程序存储器选择控制端,当=0时,则只使用片外ROM;当=1时,则允许使用片内ROM。VPP为本脚的第二功能,当执行内部编程指令时, 应该接到VCC端。3.4.2 硬件接口电路的设计复位是单片机的初始化操作。单片机应用系统在上电启动运行是,都需要先复位。其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。因而,复位是很重要的操作方式。但由于本身是不能自动进行复位的必须配合相应的外部复位电路才能实现。3.4.3 液晶显示电路大多数的数字系统都有人机接口模块,本系统也不例外,本系统的显示部分使用的是TM240128A液晶显示模块,TM240128A是内藏T6963C控制器的240128点阵图形液晶显示模块,在LCD板中还有行列驱动器,8KB随机存储器,控制电路和时序电路等,通过对T6963C的编程,可以实现点阵式LCD的各种应用。TM240128A主要技术和性能如下:1、电源:VDD:5V10%;模块内可自带-10V负压,用于LCD的驱动电压;2、显示内容:240(列)128(行)点;3、全屏幕点阵;4、带8K外部数据存储器(其地址由软件设定);5、其接口适配8080系列和Z80系列MPU的控制时序;6、驱动方式:1/128 DUTY,1/9 BIAS;7、工作温度:1060;存储温度:2070;8、模块可带LED或EL背光;背光电流100mA;9、60CLOCK显示。TM240128A与单片机接口电路如图3-6所示。图3-6 TM240128A 与单片机接口电路其内部没有中文字库,所以在显示中文时,对其进行图形方式写屏,其取模方式如图3-7 TM240128A字模所示。图3-7 TM240128A字模其取模的方式为:左上左下右上右下。共十六个字符串型代码,因此这样程序的代码会很长,所以在本系统的设计中,由于AT89C52的内部存储器容量有限,不可以用过多的汉字显示。还因为单片机的处理速度不是很高,所以汉字要尽量使用静态显示,在程序运行时只对动态的数据进行刷新。3.4.4 键盘接口电路对于数字系统,其输入部分大多为键盘,键盘的形式有很多种,一般分为两类,独立式和矩阵式。矩阵键盘由一组排列成矩阵形式的按键开关组成,通常有编码键盘和非编码键盘两种类型。在键盘数目较多的系统中,还要使用键盘专用芯片。(1)编码键盘编码键盘中某个键按下后,能够提供与该键相对应的编码信息。它的缺点是硬件设备随着键数的增加而增加。(2)非编码键盘它是用较为简单的硬件和一套专用程序来识别按下键的位置,并提供与按下键相对应的中间代码,然后再把中间代码转换成要对应的编码。由于键盘通常排列成矩阵格式,因此可以用硬件或软件的方法对行、列分别进行扫描去查找按动的键。常用的方法有:(1)行反转法(2)行扫描法(3)行列扫描法本文所设计的智能控制系统还要有数据的选择,设定值的增加、减少,本系统信息输入量小,所以采用三键式的输入,其电路图如图3-8 按键电路图所示。图3-8 系统按键电路本系统使用P1口,不使用上拉电阻,其工作原理是:按键在没有按下时,I/0口出现的是高电平,当按下时I/O口会出现低电平,为了减少硬件资源,在硬件中没有使用消抖电路,在程序中,可以使用软件编程的方法进行消抖。其中,“SEL”键为系统的选择按钮,“ADD”为设定值加键,“DEC”为设定值减键。当按下“SEL”键时,系统对设定温度、上限报警温度、下限报警温度进行选择。当按下“ADD”键时,系统设定值加一,当按下“DEC”键时,系统设定值减一。3.4.5 报警电路设计报警电路采用一个小功率三极管Q1驱动蜂鸣器,当单片机接收到超过上限温度信号或下限温度信号时,单片机输出高电平,Q1导通,是蜂鸣器通电工作,发出报警声。同时,液晶显示出此时的实时温度。报警电路如图3-9所示。图3-9 系统报警电路3.5 强电控制及过零检测电路3.5.1 电热丝的控制电路在本系统中,因为被控制电路为市电220V强电,所以在微电控制强电的电路中,要用到隔离电路对开关信号进行隔离,较为常用的是光电耦合器。光电耦合器是以光为媒介传输电信号的一种电光电转换的器件。光电耦合器的测试可用万用表判断好坏,断开输入端电源,用R1k档测1、2脚电阻,正向电阻为几百欧,反向电阻几十千欧,3、4脚间电阻应为无限大。1、2脚与3、4脚间任意一组,阻值为无限大,输入端接通电源后,3、4脚的电阻很小。调节RP,3、4间脚电阻发生变化,说明该器件是好的。注:不能用R10k档,否则导致发射管击穿。在本系统中用到的是TLP521-1光耦,其控制电路如图3-10所示。图3-10 光耦控制电路由于光电耦合器的受控端的驱动电流不是很大,而晶闸管的导通电流比较大,所以在光电耦合器的输出端接入一个三极管,来增加晶闸管的驱动电流。3.5.2 过零检测电路工频电压是一个交流电压,所以每个0.01秒也就是半个周期后都有一个0V的电压,而我们要控制晶闸管的方法也就是以此处为切入点,来控制晶闸管的导通角,达到控制加在电热丝两端的电压的有效值的目的。由于220V的强电压对单片机系统来说是一个非常大的电压,所以在采集220V 50Hz电压的信号是不能直接接收的,在本系统中,我用到的是过零检测电路,其电路如图3-11 过零检测电路所示。图3-11 过零检测电路我们先假设,当变压器T1加正半周电压时,D2的正端加高电压,使Q3导通,这时INT输出低电平;同样,当T1加负半周电压时,D1的正端输入高电压,使得三极管Q3导通,INT端同样出现的是低电平;只有在T1的两端输入电压降至0.7V以下时,两个二极管的正端都没有电压,这样三极管的基极电压为0,使得三极管截止,这时INT出现高电平,将此信号接入单片机的中断引脚,当INT端有一个高电平到低电平的跳变时,开始计时,就可以控制晶闸管什么时候导通这样我们就完成了一个晶闸管的导通角的控制过程。我们根据过零检测信号可以得到正弦波的零点位置,然后用CPU可以算出晶闸管的导通角控制信号的触发信号,这样,系统就可以根据温度的需要控制电热丝所加电压的有效值的大小,来控制温度。系统原理图:4 软件的仿真与调试4.1 软件控制方案本文主要分析单片机应用系统出错以及不可靠不稳定的原因,并结合他人的研发经验,探讨一些解决的办法。软件的设计对于单片机系统来说也占在一个非常有影响的地位的,系统软件的运行的抗干扰性、可操作性、人机界面的友好性,都是判别单片机系统好与不好的出发点。4.2 系统的干扰及软件处理措施4.2.1 单片机应用系统出错的外部原因从设计和制造的角度来看,造成应用系统容易受干扰的主要原因是:(1)系统提供的电源抗干扰不好或者功率不足;(2)控制程序没有抗干扰措施或措施不足;(3)器件间的驱动功率不足,处在比较临界的状态;(4)长远距离传输数据的电源、电压较低;(5)没有使用屏蔽保护措施;(6)元件质量差。针对以上出现的各种问题,我们从软件方面来探讨一些提高单片机的应用系统抗干扰的方法。4.2.2 单片机应用系统的软件抗干扰设计单片机应用系统的抗干扰能力不可能全部依靠硬件来解决,软件的抗干扰设计同样是防止与消除整个系统的故障的重要途径。1、在控制状态失常下的软件对策(1)软件冗余技术。对于有条件控制的系统,对控制条件的每一次采样、每一次处理控制的输出改为循环地采样、循环地处理的控制输出。像这种方法在处理惯性较大控制系统拥有超棒的抗干扰能力。(2)设置当前输出状态寄存单元,当干扰影响输出通道引起输出状态被破坏时,系统能够及时查询所在寄存单元输出状态的信息,及时地纠正输出的状态。(3)设置自检程序技术。在单片机的特定内部或某些其它内存单元设置状态标志,在开机后,运行中不断地循环测试,来保证系统中的信息存储、运算、传输的高可靠性。2、采集数据误差的软件处理用程序滤波算法,可以滤掉一部分由于输入信号干扰所带来的输出控制类错误。最常用的方法有算术平均值滤波、比较舍取滤波、中值滤波、惯性滤波。具体选取某种滤波,必须依据信号变化的规律选择。4.3 软件控制方案在本系统中,用到了很多关于控制的变量,对应此变量要控制一些执行器的动作,所以在单片机系统中,要控制这些执行器的动作就要用到软件的一些控制算法,比如本系统的执行器是晶闸管,它的导通和截止就不可以用简单的送开/关信号来控制,我们不单要控制晶闸管的通断,还要知道我们什么时候应该让晶闸管导通,前面也提到了过零检测电路,通过过零检测得到的信号,系统怎么样来控制晶闸管,时间是多长,这都是系统经过软件算法得到的。下面我们就来分析一下本系统的控制方案。4.3.1 按键程序的设计恒温箱智能控制系统的按键电路采用三个独立式按键,在程序的设计中,由于系统的温度必须可以人为设定,所以在程序设计中,我们用两个按键用作设定值的加和设定值的减,另外一个按键用来数据的选择。这样按键较少,不必使用行列式键盘,在程序的设计中,用查询的方式对这三个键子的状态进行判断,硬件电路中没有加入消抖电路,所以在程序中,使用延时的方法消除按键的抖动和误动作。这样作可以节省硬件电路,减少开支,针对本系统可以满足系统的实时性要求。4.3.2 液晶显示程序的设计恒温箱控制系统的显示选用液晶TM240128A作为显示器,其内部没有字库,所有的汉字都要自行编写。而这些字的字模都要写到程序的代码中。在程序的运行中,如果显示汉字多,液晶的数据传输量就很大,所以在程序设计中,固定不变的字要使用初始化的方法写入,这种方法在程序的执行中只在程序的初始化中才执行,而在初始化过后这些汉字不变,没有必要循环写入。我们只对变化的数据进行动态写入,仅当显示数据变化时进行数据传输,这样设计可以提高总程序的扫描速度。4.3.3 A/D转换程序的设计恒温箱控制系统对温度的采集使用的传感器的AD590,经过电流电压转换电路和放大电路后,进入A/D转换器。本系统采用TLC2543芯片,它是串行接口芯片,且精度比较高,温度的变比较慢,所以其转换速度也可以满足要求,根据如图4-1 TLC2543时序图可以作出其程序。图4-1 TLC2543时序图AT89C52的I/O接口内部有上拉电阻,所以在程序中只对I/O口写“1”或写“0”即可完成如图4-2的时序图,使TLC2543正常的工作。4.4 控制框图在编程的过程序中,对于系统的控制,如果要把程序作的严谨、稳定、漏洞少就要对整体的软件程序做好模块化的分割,因为在CPU处理程序时,它是从主程序进入,然后在主程序中调用各个模块程序,如果一个复杂的系统的所有语句都在主程序中编写的话,会使程序的可读性非常差,而且更重要的一点就是,在CPU执行程序时,它会将一个模块的程序都调到内存中执行,这样,如果模块的代码很长的话容易使程序指针出错导致进行死循环或死机,这样的系统是不可用的,是不稳定的,所以程序应该做成小的模块,尤其是像延时一类在程序执行中常被调用的程序。一个成功的编程人员所编的程序是十分容易理解的,这不光要写的有条理,还要适当的加一些注释,因为一个大的程序一个程序员是不能完成的,需要一个团队共同完成,这样如果自己编的程序只有自己才能看懂的话就不能与别人的程序很好的接口。编写程序之前一定要先分析一下本系统的整体的程序框图和中断的框图,程序的模块化会使程序的编写不至于枯燥,每完成一步,都调试到完全正确,全部程序都一下子的写进去然后再一起调试会使编程的人感到不知道是哪里出了错误,找原因无从下手。4.4.1 主程序框图恒温箱控制系统主程序的顺序应该先初始化系统,如把晶闸管关闭、初始化液晶、初始化定时器等等,这些都是为系统下一步做好运行的准备;然后是程序的正式运行, CPU做的应该是数据的读取、处理、输出。如图4-3画出了本系统的主程序的框图。其中初始化包括定时器、液晶的初始化和变量的初始化;通过数据选择按键来控制设定温度、上限报警温度和下限报警温度的选择,然后用设定值加和设定值减按键来调节设定值,这种方法不会影响系统,还省去了系统资源。在程序执行中,系统读取设定值和实际测量值,通过算法进行比较并运算,然后单片机输出信号来控制晶闸管进行处理,最终显示在液晶显示器上。在这里,只对主程序的框图进行初步的分析,其中的具体模块程序会在以后的几节中进行介绍。图4-2 控制系统主框图4.4.2 温度检测与控制程序温度的检测是通过对A/D转换器的数据的读取来测量的,温度与数字量不是一一对应的,甚至还有可能不是呈线性变化的,所以在本系统中,用查表并求插值的方法算出温度的真实值,数据表是在实际的温度中测量的数字信号,但是表格不能完全将所有温度的数字信号都记录下来,用插值的方法就可以将表中没有的温度值算出来,这样可以做到分段的线性,使温度测量值更接真实值。用AD590作为检测元件,其检测速度较快,本系统用到的A/D转换器TLC2543对电压的转换是滞后的,所以在检测的过程中,温度的测量是前一时刻的瞬时值,但因为温度的变相比之下非常缓慢,所以这种系统可以满足对温度的测量速度要求。温度的控制是工业过程控制中最难控制的变量之一,它的惯性大,调节效果不是很明显,所以在大多数的控制系统中,温度的控制大多采用PID控制,但是针对不同的系统,又有不同的PID控制方案,单纯的PID是很少用的,一般用的较多的有位置式PID、增量式PID等,这些都是因为单纯的PID不能很好的完成温度的控制,进而衍生出来了一些好的控制方法。在温度的控制中,还要考虑到过零检测信号的输入,所以本系统中温度的控制是一个难点,再有就是PID处理后的输出量的处理,在数学公式中这些都是十分好算的,但是在编程的实现中,这些没有实际所想象的那样容易。这就要我们来分析一下温度控制的软件过程:假设我们要求温度上升1,当前的晶闸管的导通角是30。导通角每增加1定时器时间延长100S。这时的控制流程是:我们首先计算定时的时间长度,如果要温度上升,导通角要减小1,延时减少100S。先将定时器的初值增加100S,当单片机接到一个过零检测信号,启动定时器,当定时器溢出时,发送一个晶闸管的导通控制信号。此时系统完成一个周期的温度控制过程。控制框图如图4-3 所示。图4-3 温度控制框图4.4.3 显示程序介绍恒温箱智能控制系统用TM240128A液晶显示器作为显示部分,本液晶内部有数字和英文字母以及符号的字库,在刷新数据时,要用到数字的字库,但是在显示数据时,不可以直接传送一个几位的整数,更不能写入带浮点的小数,因为其内部只有单个的数字的字模,系统只能将一个整数拆开,比如:1234,系统要拆成“1”、“2”、“3”、“4”然后分别送入液晶显示器才能显示出来,浮点数还要把浮点传送进去才行。这是一个时间相对很长的过程,汉字的传送时间更长,所以本系统将汉字在初始化时就写入,这样处理不影响后续温度控制时的扫描速度。在这里,介绍一下数据处理的过程,系统取到一个待显示的数据后,第一步将这个数除以1000取整(/1000),得到的值就是千位的值,第二步将这个数除以100(/100)模10(10),得到的值就是百位的值,第三步将这个数除10(/10)模(10),得到的值就是十位的值,第四步将这个数模10,得到的数就是个位的值。但是如果要显示的数据不是四位的数的话,如果只做以上处理的话在最高位就会出现0千的效果,怎样避免这种结果呢?我们做如下处理,可以判断一下待显示的数据多大的数,如果小于1000,那第一位就不能显示了依此类推。这样,我们的数据就可以十分准确的显示在显示器上面了。4.4.4 键盘输入及其程序设计上面介绍了单片机的输出设计,接下来就应该是输入部分了,在单片机的控制系统中,如果没有人为的输入接口,再称之为智能控制系统难免有点说不过去,智能控制的优点在于对输入的信号判断,并作出相应的反应,如果没有了输入,系统没有了反应的依据,控制也就没有了效果,也没有了工作的信号,使整个系统不受人的控制,也就没有了智能的成分。图4-4 按键读取程序框图本系统键盘数量少,所以在软件的设计中,我们选用查询的方式设计键盘的程序,可以减少CPU的资源的使用,且能满足流程的安排,根据系统需要,设计键盘的作用分别为数据的选择、设定值加和设定值减,在程序的设计中,系统的设定值不是说加多少就能加多少的,本系统温度的最高值在80,因此设定值加键只能加到80就不能再加了,同理设定值减也只能到30。数据的选择键是对设定温度、上限报警温度和下限报警温度之间相互转换的选择,然后通过设定值加和设定值减来调节温度值。此三个按键的程序构图如图4-4 所示。4.4.5 系统数据运算的设计程序的设计没有固定的思路,一个数据的处理过程可能有很多的方法,但是一定会有一个方法是最简单得方法,这就要程序员的思路开阔,逻辑思考能为强,比如一个十六进制数的乘2运算,在C语言中,我们可以用乘法的运算,但是,专业的程序就不会用这样的算法,而是把这个数向左移一位完成乘2的运算,因为这样的运算CPU处理的时钟周期要比直接乘2少,所以我们学习编程就要学习怎么样用最简单的方法去处理一个复杂的事件,这样才能编出较为严谨的程序。本系统程序的设计有许多需要考虑的模块,比如数据的显示处理程序,在液晶的显示中,没有对数据整体的显示功能,它只能对一个几位的数据进行分位显示,这就要编程中将数据的各个位的数提出来,然后再把它分别送入液晶中显示出来,在现实的处理中可以很简单,但是CPU在处理乘除运算时是靠移位的处理方法实现的,所以一个大数的乘除对于单片机是一个非常复杂的过程,如果一个系统要进行很多的乘除运算,那么CPU的运算量会很大,会大大的降低CPU的执行速度在单片机系统中,还有很多需要处理的信号,相对应的也都有软件的设计技巧,这就要多学习一些别人作的程序,看看他们作的哪个地方值得我们去学习,那些地方我们可以做的更好,用这种方法使自己的编程思路更开阔。5 整体系统调试在完成了系统的硬件后,根据系统将要完成的功能,设计好整体系统的软件流程后,就要对每个模块的程序进行调试,调试的过程是个反复实验的过程,调试的过程中会出现这样那样的问题,可能是硬件电路的问题,也可能是编程中出现的差错,所以调试中要注意思路,不要只是认为是某方面的问题,这样会扰乱思路,使自己处理问题片面到某点上。5.1 硬件电路的调试在硬件电路的调试中,最值得注意的是电源的部分,因为电路的设计时不可能都做成PCB电路板再做调试,一般为了调试的速度,都是只做个草草的电路只是用来测试一下电路的效果是不是令人满意,如果达到了我们想要的效果,这个电路就是对的了,然后再用各种方法测试它的稳定性,如完全成功,再焊接好电路,或是制作成PCB电路板,电路的调试不是把所有的电路都做到一起再调试效果,一般都是把一个复杂的电路分成几个小的模块,分别对每个模块做调试,从最基本的模块做起,测试成功后就做与其相联系的模块,另一个模块做好调试成功后再将两个模块连接到一起,连起来才能较好的完成一个复杂的系统。如果把所有的电路都做完就连到一起,不去测试这些模块的可行性,出现问题后会无从下手,不知道是哪里出了问题,使电路检查起来非常麻烦。5.2 软件程序调试软件程序的调试对于硬件来说就比较容易,程序的调试只要改一下代码就可以了,不像硬件那样需要改电路,51单片机的仿真可以用仿真器,所以在改变程序的代码后,只要执行一下,就可以看到改变程序后的效果,但是调试程序要有很好的逻辑思路,程序执行到哪里都要知道硬件电路的效果,比如用示波器看看波形对不对、用万用表测一下电压等,对于复杂的系统,软件和硬件是不能单独调试的,还要结合起来一起考虑。有按键或外部触发程序系统,要对每个触发的电路进行严密的调试,这样在系统运行时才不会
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025届四川省部分学校高三5月联考地理试题 及答案
- 小学生行为养成中的家校合作机制分析与优化
- 消防心理健康教育课件模板
- 具身认知视角下的小学数学益智课程开发
- 建筑项目中的技术人员培训
- 桥梁工程制图心得体会
- 制造车间HR三支柱岗位职责
- 学校校园新冠肺炎疫情防控应急演练与实施流程
- 心梗的急救与护理个案
- 2025版城市地下空间斜巷运输安全技术措施
- 仪表工基础知识课件
- 2025年医院管理知识考试试题及答案
- 福建省厦门市2025年高一化学第二学期期末调研模拟试题含解析
- 危险废物突发事故应急演练方案
- DB11-T 2408.1-2025城市管理大数据平台 第1部分:架构及接口规范
- 2023年08月江苏省高邮市招考70名村级工作人员笔试上岸试题历年
- 2025年山东省济南市槐荫区八年级下期末语文试题(含答案)
- DB41∕T 610-2024 高速公路收费人员操作规范
- 北京安全生产治本攻坚三年行动方案
- 建设单位全员安全生产责任清单
- 项目计划管理培训
评论
0/150
提交评论