微电脑多路染色机温度控制器设计 毕业论文.doc_第1页
微电脑多路染色机温度控制器设计 毕业论文.doc_第2页
微电脑多路染色机温度控制器设计 毕业论文.doc_第3页
微电脑多路染色机温度控制器设计 毕业论文.doc_第4页
微电脑多路染色机温度控制器设计 毕业论文.doc_第5页
免费预览已结束,剩余48页可下载查看

下载本文档

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

文档简介

第一章 前言在中国,服装制造加工业在工业结构中占据重要的比例。而染色机作为一种适应范围广泛的成品之理想的漂染设备,广泛应用于羊毛衫、晴纶和棉毛衫等成衣的染色、漂白、煮炼和水洗等工艺,也可应用于手套、袜子、毛巾等成品的漂染处理。在染色机染色的生产过程中,温度是一个大的滞后系统,且受多种因素的影响,这些因素的变化范围虽然不大,但他们是不确定的。染色工艺对于温度控制要求非常严格,染液的升温、保温和降温必须符合工艺要求,否则将会产生色差、缸差、着色不匀等次品。温度是工业生产和科学实验中的重要参数之一,具有非线性、强耦合、时变、时滞等特性。在化工、冶金、工业炉窑等工业生产中,对温度的控制直接影响到许多产品的质量及使用寿命。而随着现代科技的发展,电子计算机已用于温室环境的控制。自70年代以来,由于工业过程控制的需要,特别是在微电子技术和计算机技术的迅猛发展以及自动控制理论和设计方法发展的推动下,国外温度控制系统发展迅速,并在智能化、自适应、参数自整定等方面取得成果。在这方面,以日本、美国、德国、瑞典等国家技术领先,都生产出了一批商品化的、性能优异的温度控制器以及仪器仪表,并在各行业广泛应用。它们主要具有以下特点:1、 适应大惯性、大滞后等复杂温度控制系统的控制。2、 能够适应于受控系统数学模型难以建立的温度控制系统的控制。3、 能够适应于受控系统过程复杂、参数时变的温度控制系统的控制。4、 这些温度控制系统普遍采用自适应控制、自校正控制、模糊控制、人工智能等理论以及计算机技术,运用先进的算法,适用范围广泛。5、 温度控制系统具有控制精度高、抗干扰能力强、鲁棒性好的特点。例如lm56是美国国家半导体公司(nsc)推出的低功耗、可编程集成温度控制器,内部含有温度传感器和基准电压源。两个集电极开路的数字信号输出端,用来进行温度控制,利用外接电阻分压器可以方便地对上下限温度进行设定。当温度超过上限温度或低于下限温度时,其数字信号输出端输出相应的逻辑电平,经驱动电路实现对温度的控制,控温范围为一40+125,控温误差小于士2。内部含有迟滞电压比较器,利用迟滞电压比较器的滞后特性,可有效地避免执行机构在控温点附近频繁动作,滞后温度为5。另有一个模拟信号输出端,输出与摄氏温度成线性关系的电压信号。该电压信号经模数转换后,可用来驱动显示装置,以实现对自身温度的精确测量。集成温度控制器ds56是美国dallas半导体公司推出的低功耗、可编程集成温度控制器,内部包含有温度传感器和高精度基准电压源。有两个集电极开路的数字信号输出端,专门用来进行温度控制,利用外接的精密电阻分压器可以实现对上下限温度的准确设定,当温度超过上限温度或低于下限温度时,其数字信号输出端将输出相应的逻辑电平,经驱动电路以实现对温度的控制。控温范围为40+125,在400内,精度为3,在085内,精度为2,在85125内,精度为3 。内部含有迟滞电压比较器,利用迟滞电压比较器的滞后特性,可有效地避免执行机构在控温点附近频繁动作,滞后温度thyst为+5。另有一个模拟信号输出端,输出与摄氏温度成线性关系的电压信号,该电压信号经模/ 数转换后,可用来驱动显示装置,以实现对自身温度的精确测量。该集成温度控制器可广泛应用于家用电器和办公设备的过热保护、数据采集系统及电池供电系统的温度监测、工业过程控制、降温风扇控制、电器设备的过热保护等领域。相对于国外的发展水平,国内生产的温度控制器总体水平不高。目前,我国在这方面的总体水平处于20世纪80年代中后期的水平,成熟产品主要以“点位”控制以及常规的pid控制器为主,它只能适应一般温度系统控制,难于控制滞后、复杂、时变温度系统控制。而适应于较高控制场合的智能化、自适应控制器,国内技术还十分不成熟。但我国在温度控制系统上还是取得了一些成果和进步的。例如唐山钢铁公司高速线材厂运用模糊控制理论和传统的pid控制相结合,不仅成功的实现了温度自动控制,而且还使吨钢油耗指标大幅度下降,取得了近千万元的经济效益。随着生产力的发展和对温度控制精度要求的不断提高,温度控制系统的控制技术得到迅猛发展,当前比较流行的温度控制系统有基于单片机的温度控制系统、基于plc的温度控制系统、基于工控机(ipc)的温度控制系统、集散型温度控制系统(dcs)、现场总线控制系统(fcs)等。第二章 系统组成及工作原理2.1系统设计要求与技术指标本课题要求采用铂热电阻测温,其控温范围为:25-135;采用数字pid算法,使控温精度达到2;能实时输入控温工艺,实时显示染缸实测温度,超温时能报警。该控制器能对8台染色机实现温度控制。其具体技术要求如下:1、实现对多路温度信号进行采集;2、采用数字pid控制算法对系统进行控制;3、控温范围为:25-135,控温精度达到2;2.2 系统功能及工作原理系统采用stc89c52单片机作为核心控制器,控制系统正常工作。通过由pt-100构成的电桥电路采集温度信号,由于电桥产生的电压信号过低,通过tlc084构成的放大电路将输出电压控制在0-5v的范围内,并将输出电压信号送入adc0804进行模数转换,将转换数据送入单片机进行显示,并通过pid算法实现对系统的加热与制冷时间长短进行控制。各模块具体功能如下所示:1、 通过cd4051模拟开关采集8路染色机信号,并将模拟信号转换成数字信号送入单片机处理;2、 键盘及显示模块实现对控制温度和时间的设定及显示,以及实现通道的选择与显示;3、 pt-100电桥电路模块实现对温度信号的采集,并通过放大电路使输出电压范围控制在-5v;4、 报警模块由isd1420组成,实现超温时的报警功能;5、 加热,降温模块由光耦及双向可控硅构成,通过单片机控制实现对系统的加热及降温。2.3 系统组成及框图系统由硬件与软件两大部分组成,硬件电路由以下几个部分组成:温度采集部分、单片机最小系统控制部分、7279键盘部分、时钟电路部分、加热控制电路部分、制冷控制部分、语音报警电路部分和液晶显示部分。其中温度采集部分由pt-100电桥电路、tl084放大电路、cd4051模拟开关以及adc0804模数转换电路构成;加热控制电路部分和制冷控制部分电路由光耦和双向可控硅组成;单片机控制部分由max232通信模块、复位电路和时钟晶振组成;语音报警电路部分由isd1420及其外围电路组成,采用lm386驱动功率为1w的喇叭。系统的硬件电路组成框图如图2.1所示:stc89c52温度采集电路模拟开 关放大电路键盘控制电路液晶显示电路语音报警电路电 源复位电路a/d转换电路加温降温控制电路时钟电路图2.1 系统硬件电路组成框图系统的软件部分采用模块化的设计方法,将软件分为主程序模块、中断服务模块、温度采集模块、7279键盘模块、时钟模块、液晶显示模块、语音报警模块、pid算法模块和pid控制模块。其中ad数据采样及处理、语音报警、pid控制算法子程序和pid控制值输出用中断服务模块来处理。在中断程序中,将定时器0定时为1秒,当开定时器0时,每隔一秒进入中断处理程序进行数据的采集和处理。键盘显示模块通过直接使用7279芯片的读键盘数据指令来获取键值进行比较处理后转入相应的处理程序,能达到更好的人机交互效果。加温降温控制通过使用pid算法计算出控制值,然后使用定时器1产生的pwm波控制p2.1口和p2.2口的高低电平转换来控制双向可控硅的通断来实现加热降温的控制。第三章 微电脑多路染色机温度控制器的硬件设计硬件是整个系统正常工作的基础,硬件电路的优劣与合理设计关系到系统能否正常及其稳定性。本系统硬件电路主要由温度采集部分、单片机最小系统控制部分、7279键盘部分、时钟电路部分、加热控制电路部分、制冷控制部分、语音报警电路部分和液晶显示部分组成,其各部分设计如下。3.1 单片机最小系统单片机最小系统主要由单片机、时钟电路、复位电路组成。其电路图如图3.1所示:图3.1 单片机最小系统电路图为将程序通过keil uvision2软件写入单片机,通过max232串口通信电路实现单片机与计算机之间的通信,其电路如图3.2所示:图3.2 max232串口通信电路图3.1中,stc89c52的x1、x2端分别是反相放大器输入和输出端,外接晶振产生时钟送至单片机内部的各个部件,在本次实验中使用的是12m频率的晶振。其中c10、c11是33pf的反馈电容。其作用有两个:其一是使振荡器起振,其二是对振荡器的频率f起微调作用。同时,由于p0口作为语音芯片isd1420的地址输出口,且stc89c52中p1口没有上拉电阻,故在p1口接阻值为10k的上拉电阻。在本系统中采用的复位方式是手动复位。手动复位是直接通过按键s2使res信号维持高电平一段时间即可。当单片机复位以后,除sp=07,p0、p1、p2、p3为0ff外,其它寄存器都为0。3.2 温度采集部分3.2.1 温度转换电路温度转换电路是由pt-100电桥电路和tl084放大电路组成。pt-100电桥电路采用pt-100型铂热电阻作为温度传感器,铂热电阻是利用阻值随温度变化而变化的特性来测量温度,它有很好的稳定性和测量精度,测量范围宽,被广泛应用于作温度的基准,pt-100将温度的变化转化为电阻的变化,并通过桥堆将电阻的变化转化为电压的变化,因为所得的压差只有毫伏级,所以要经过tl084放大器放大,再通过a/d转换器,把电压量转换成数字量,然后将转换的数值送cpu处理。温度转换电路如图3.3所示:图3.3 温度转换电路tl084是四输入运算放大放大器,具有高转换率、低输入偏置和偏置电流以及低失调电压温度系数的特点。在图3.3中,运放结构的测量放大器由tlc084两级组成,两个对称的同相放大器构成第一级,第二级为差动放大器减法器。通过改变电阻r38的大小,可方便地调节放大器的增益,在集成化的测量放大器中,r38是外接电阻,用户可根据整机的增益要求来选择r38的大小。3.2.2 a/d转换电路a/d转换电路由模拟开关cd4051和模数转换器adc0804组成,其作用是将经模拟开关选通的模拟信号转换成对应的数字信号,从而实现多路温度采集。adc0804是8 位coms 依次逼近型的a/d 转换器,其转换时间是100us。转换结束时,可由cpu打开三态门,读出8位的转换结果。a/d转换电路如图3.4所示:图3.4 a/d转换电路图3.3 7279键盘部分hd7279是一片具有串行接口的可同时驱动8位共阴式数码管(或64只独立led)的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,单片即可完成led显示、键盘接口的全部功能。hd7279内部含有译码器,可直接接受bcd码或16进制码,而且具有2种译码方式。hd7279还具有多种控制指令,如左移(a1h)、右移(a0h)、消隐(98h)、闪烁(88h)、段寻址等。在本系统中,考虑到单片机的i/o口使用个数的限制,故舍弃矩阵式键盘的按键方式,采用7279显示板上的键盘来进行按键操作。在操作过程中,只需接4根接口线,分别为:片选线cs、串行时钟线clk、串行数据线data以及键盘申请线key,其中cs为片选信号(低电平有效)。其原理图如图3.5所示。图3.5 7279显示板原理图3.4 时钟电路部分在本系统中,时钟电路部分采用串行时钟芯片ds1302,它是一种高性能、低功耗的时钟芯片,包括实时时钟/日历和31个字节的静态ram。可实时的对秒、分、时、日、周、月、年进行计数处理,可通过外部可充电池加电长期保存数据,并能为电池慢速充电。它与单片机之间能简单地采用同步串行的方式进行通信,因此连线简单,仅需用到 、i/o和sclk三个口线。其电路图如图3.6所示:图3.6时钟电路图3.5 液晶显示部分液晶显示部分采用的是fyd12864汉字图形点阵液晶显示模块,它具有非常完备的字库,内置8192个16x16点汉字,128个16x8点ascii字符集,还可以显示自定义图形,能够满足多种显示的需要。同时它具有并行和串行两种工作方式,考虑到单片机i/o使用数目的限制,故在使用液晶显示是采用的是串行通信的工作方式。其与单片机的连线图如图3.7所示: 图3.7 液晶模块连线图3.6 语音报警电路部分语音报警电路部分由isd1420语音芯片及其外围电路组成。其中,a0-a7为语音芯片的地址端,每位地址代表125ms的寻址,l60个地址覆盖20s(160xo125s=20s)的语音范围,录音及放音功能均从设定的起始地址开始。地址端与单片机的p0口相连,通过软件将isd1420的地址置为ox00作为起始地址来进行录放音。录音过程中,通过长按s1键,此时led点亮表示录音正常。17、18管脚为:mic、micref,两管脚之间接咪头,进行录音。14、15管脚为sp+、sp-,由于采用的喇叭功率为1w,若接两管脚间容易失真。故采用单端输出,sp-接10uf到地以防止烧坏isd1420芯片,sp+接外部功率放大器lm386。喇叭功放电路如图3.9所示。图3.9中r21为电位器,通过调节电位器阻值的大小可以调节喇叭声音的高低。语音报警电路如图3.8所示。图3.8 语音报警电路图3.9 喇叭功放电路3.7加热控制电路部分本部分设计主要由驱动器7407、光耦moc3041和双向可控硅构成。加热控制电路主要利用光电耦合器实现强电与弱电的隔离,避免回执机构的运行对前端电路的影响,并将光耦输出的控制信号送至双向可控硅的控光制端,实现控制其开关状态的关断与闭合,从而控制加热器件的加热时间,以实现对系统温度的控制,并且此电路还有低噪声、可靠性高、驱动功率小、对电源电压适应能力强和抗干扰能力强等优点。所以在控制电路的设计中,采用了此电路作为加热控制开关。在加热部分中,采用电烙铁作为加热器件。当双向可控硅导通时,电烙铁加热。其具体电路如图3.10所示。图3.10 加热控制电路图3.8 降温控制电路部分本部分电路设计原理和加热控制电路原理相同,由驱动器7407、光耦moc3041、双向可控硅组成。降温器件为直流电机,双向可控硅导通后,直流电机驱动进行降温处理。其原理图如图3.11所示。图3.11 降温控制电路图第四章 微电脑多路染色机温度控制器的软件设计系统软件设计采用c51语言,在windows xp环境下采用keil uvision2软件进行编写,对stc89c52进行编程。4.1软件整体设计思路系统的软件一般由主程序和若干子程序以及中断程序组成。在主程序中调用子程序,子程序中对每个模块进行实际的操作。通过对每个子程序的调试并结合硬件实现每个功能模块的作用。然后在主程序中,合理的排列子程序的执行顺序,关键是要将整个程序的逻辑顺序表示清楚。在系统软件的设计过程中,采用模块化的结构设计思想能使每个模块的设计无须过多地关联其它模块,可以独立进行修改和调试。为系统的开发及调试提供了相当大的便利。系统软件包括九个模块:主模块、中断服务模块、温度采集模块、7279键盘模块、时钟模块、液晶显示模块、语音报警模块、pid算法模块和pid控制模块。主程序主要完成液晶显示及键盘处理功能,通过判断是否有键按下,按下的键值与功能键是否相等来执行相应的功能,如对温度参数的设定、时间的设定、通道选择等。中断程序主要完成对ad数据采样及处理、语音报警、pid控制算法子程序和pid控制值输出等功能。其余子程序则是对系统功能的丰富及完善,如时钟模块。4.2 系统变量定义及i/o口分配在编写软件程序前,将stc89c52的i/o口进行合理地分配,能使软件编写过程方便且资源不产生冲突。单片机的i/o口分配表如表4.1所示。表4.1 单片机i/o分配表 fyd12864液晶ds1302时钟adc0804p1.0cs_lcdp1.3sclk_ds1302p3.6wrp1.1sid_lcdp1.4io_ds1302p3.7rdp1.2sclk_lcdp1.5rst_ds1302p2.0cs_ad7279键盘cd4051加热降温控制p1.6csp2.3cd_ap2.1k_jianp1.7clkp2.4cd_bp2.2k_jiap3.4datp2.5cd_cisd1420p3.5keyp2.6play_e编写程序时,由于采用的程序语言为c51,在软件编写前应定义全局变量,以供整体程序使用。全局变量定义情况如下所述:str416 存放四行十六列的液晶数据变量str_temp3 存放三位的温度数据变量keynum 定义键值变量 flag 定义液晶界面切换标志位flag1 定义温度设定值个位/十位/百位切换标志位 flag2 定义通道选择标志位 chanl 定义所选通道号变量set_flag 定义时间设定值秒/分/时等的切换标志位cc3 存放三次温度采样值 bai 定义温度设定值的百位shi 定义温度设定值的十位 ge 定义温度设定值的个位同时,在ds1302时钟模块变量和pid算法模块变量的定义中,采用结构体的定义方式将所需的变量定义在一个结构体中,使数据处理清晰方便。其定义情况如下所示:1、ds1302时钟模块结构体定义 typedef struct time_struct uchar second; 定义ds1302时钟芯片的秒位变量 uchar minute; 定义ds1302时钟芯片的分位变量 uchar hour; 定义ds1302时钟芯片的时位变量 uchar week;定义ds1302时钟芯片的星期变量 uchar day;定义ds1302时钟芯片的日变量 uchar month;定义ds1302时钟芯片的月变量 uchar year;定义ds1302时钟芯片的年变量 ; struct time_struct time_;2、pid算法模块结构体定义typedef struct pidvalue uchar ek3; 存放采样值与设定值之间的差值 uchar ekflag3; 存放采样值与设定值之间的差值的符号位 uchar kp; 定义pid中的p系数uchar ki; 定义pid中的i系数uchar kd; 定义pid中的d系数uchar uk; 定义pid的输出值 uchar rk; 定义pid中的设定值 uchar ck; 定义pid中的实际值 ;struct pidvalue pid; 4.3 软件模块化分析系统的软件设计主要包括以下几个模块:主模块、中断服务模块、温度采集模块、7279键盘模块、时钟模块、液晶显示模块、语音报警模块、pid算法模块和pid控制模块。下面是关于这几个模块的设计过程。4.3.1 主程序模块在系统上电以后,主程序进行时钟芯片初始化、液晶初始化、定时器/计数器初始化、定时器/计数器启动、液晶显示初始界面及键盘扫描判断有键按下否。如无键按下,则显示液晶初始化界面;有键按下,则分析标志位根据所得标志位的值执行相应的子程序。然后通过相应的键值执行时间的设定、控制温度的设定以及通道选择的子程序。系统主流程图如图4.1所示:开始lcd初始化调用液晶初始化界面子程序定时器初始化时钟芯片初始化键盘扫描,判断flag=?0 12调用screen_2(),开定时器0中断调用screen_3()图4.1 主程序流程4.3.2 中断服务模块本次软件设计中,中断服务模块的设计是整个软件设计的重要部分。在中断服务模块中,通过开启定时器t0来定时调用一些子程序进行操作。在中断服务模块中执行下列操作:调用adc0804进行温度数据的采集和处理;将采集到的温度与设定的温度进行比较,判断系统是要加热还是制冷,同时判断是否进行超温报警的操作;然后启动pid算法和pid控制输出等。在中断服务模块的设计中,通过设置th0=(65536-50000)/256、tl0=(65536-50000)%256。使得定时器t0的时间为50ms。其流程图如图4.2所示:中断入口保护现场重赋定时器初值时间变量aa+aa=20?调用a/d子程序,清零aa采样t=设定t?采样t设定t?语音报警pid控制算法pid控制输出恢复现场中断返回nyyny n图4.2 中断服务程序流程图4.3.3 ds1302时钟模块时钟芯片ds1302内含有一个实时时钟/日历和31字节静态ram,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、日期、月、年的信息,每月的天数和闰年的天数可自动调整。时钟程序模块主要完成对ds1302的读写以及将读出值送入显存单元等功能,并能够在按键按下时进行时钟调整。ds1302主要由移位寄存器、控制逻辑、振荡器、实时时钟以及ram组成。在串行传输任何数据前,必须先把置为高电平“1”,数据输入(写操作)是在sclk的上升沿进行,即在上升沿到达前,数据必须有效;数据的输出(读操作)是在sclk的下降沿进行。如果为低电平,那么所有的数据传输终止,且i/o引脚变为高阻抗状态。写入时,最先传入的一个字节为命令字,命令字节中包含读/写操作、操作对象和地址信息,随后的时钟周期在读操作时输出数据,在写操作时输入数据。无论是命令字还是数据,它们的传送都是低位在前,高位在后。 对时钟芯片的操作,一般有以下六个步骤:1.通过对写保护寄存器的操作,关闭写保护,使ds1302允许写入; 2.通过将秒寄存器最高位置1,使时钟振荡器停止,以便设定初值;3.初始化ds1302,将设定值写入各时钟寄存器;4.将设定值读出;5.将秒寄存器的最高位置0,启动时钟;6.打开写保护,禁止对任何寄存器进行写操作。要正确读写ds1302,关键在于时序。在控制命令字输入后的下一个sclk时钟的上升沿时,数据被写入ds1302,数据输入从低位即位0开始, 同样,在紧跟8位的控制命令字后的下一个sclk脉冲的下降沿读出ds1302的数据,读出数据时从低位0位至高位7。单字节数据读写时序如图4.3所示。 图4.3 单字节数据读写时序图在对ds1302操作时,定义一个结构体time_struct来存储时钟的时、分、秒、日期等数据。在ds1302时钟芯片的程序编写中,关键是搞懂ds1302的写子程序以及读子程序。写子程序及读子程序的流程图如图4.4、图4.5所示。在时钟模块中,通过写子程序将时间初值写入ds1302芯片寄存器中,然后通过读子程序将写入的初值读出并通过液晶显示子程序将时间显示出来。由于在硬件电路中并没有外接干电池故在程序中写入“2011年5月25日 wed 02:30:00”。入口允许传输数据发送地址接受数据关闭传输数据返回入口允许传输数据发送地址发送数据返回关闭传输数据 图4.4 写子程序流程图图4.5 读子程序流程图ds1302中共有12个寄存器,其中7个寄存器与日历、时钟有关,它们均以bcd码格式存放,如表4.2所示:表4.2 ds1302时钟寄存器地址与格式寄存器名 命令字取值范围 格 式 读操作 写操作 d7d6d5d4d3d2d1d0秒寄存器81h80h0059ch秒(十位)秒(个位)分寄存器83h82h00590分(十位)分(个位)时寄存器85h54h0112或012312或240 a/p 时(十位)时(十位)时(个位)日寄存器87h86h 0128/30/3100日(十位)日(个位)月寄存器89h88h0112000月(十位)月(个位)周寄存器8bh8ah010700000周年寄存器8dh8ch0099年(十位)年(个位)4.3.4 温度采集模块在温度采集模块中,通过cd4051八路模拟开关与模数转换器adc0804相结合的方法达到多路温度采集的功能。cd4051是单8通道数字控制模拟电子开关,有三个二进制控制输入端a、b、c和inh输入,具有低导通阻抗和很低的截止漏电流。在操作过程中,只要改变a、b、c的值,就可以选通不同的通道。其中,inh是禁止端,当inh置1时,所有通道截止。cd4051的真值表如表4.3所示。 表4.3 cd4051真值表inhcba输出00000000110010200113010040101501106011171均不导通adc0804是8位逐次逼近型a/d转换器,它的转换时间是100us,adc0804进行模拟/数字的转换时,控制adc0804动作的信号只有cs、wr、rd。因此,在进行a/d转换的软件编写中,只需要送出所需的cs、wr、rd的控制信号。其流程图如图4.6所示。启动a/d转换p0=0xff,允许输入数据调用100us延时子程序p0口数据处理送显示返回入口图4.6 a/d转换流程图4.3.5 液晶显示模块在液晶显示模块中,采用的是fyd12864液晶显示模块。它具有两种通讯模式:并行通讯模式和串行通讯模式。由于i/o口的限制和考虑到接线数量的简单,采用串行通讯模式将psb直接接地,则液晶显示模块为串口通讯模式。在液晶显示模块与单片机stc89c52的连接中,只需连接cs、sid、clk三根口线,它们分别为:模组片选端、串行数据输入端、串行同步时钟。该模块的液晶每行可以显示8个汉字(双字节)或16个半角字符(单字节),共可以显示四行。在对每行进行送数时,要先把要显示的汉字或字符的位置算好,否则很容易显示乱码。字符显示ram在液晶模块中的地址为80h90h,字符显示ram的地址与32个字符显示区域有着一一对应的关系,其对应关系如表4.4所示:表4.4 字符显示ram地址表第一行首址80h81h82h83h84h85h86h87h第二行首址90h91h92h93h94h95h96h97h第三行首址88h89h8ah8bh8ch8dh8eh8fh第四行首址98h99h9ah9bh9ch9dh9eh9fh在对液晶显示程序的编写过程中,要对液晶的相关时序图有所了解,这是将液晶显示子程序写好的重点和难点。其串行模式数据传输时序图如图4.7所示,串口方式读写数据时序图如图4.8所示。图4.7 串行模式数据传输时序图图4.8 串口方式读写数据时序图由图4.7可知,在进行数据传输时,无论是命令字还是数据,都必须是在cs信号为高电平的情况下进行的,一个字节的数据要先传送高四位,中间间隔四个低电平,再传送该数据的低四位。在使用液晶显示模块时,必须进行液晶的初始化。设定好液晶的工作模式以及显示状态,比如:清除显示、显示状态开/关、游标或显示移位控制、反白选择等。将液晶初始化后进行发送子程序的编写,其流程图如图4.9所示。在液晶的写子程序中调用两次发送子程序,分别用来发送指令与数据,并且必须先发送指令再发送数据。液晶的写子程序如图4.10所示。ny入口i=0i8?i+,数据最高位送数据线产生同步时钟信号返回入口cs=1发送写指令/数据取高四位并发送取低四位并发送返回图4.9 发送子程序流程图 图4.10 写子程序流程图将发送以及写子程序编写好后,通过调用写子程序将液晶的显示子程序编写好,其流程图如图4.11所示。n返回y入口液晶初始化将写命令写入首字节设置显示位置将写数据写入首字节将要显示的字符的代码送数据线是否写完?图4.11 液晶显示子程序流程图以下是编程时经常用到的控制器接口信号和指令的说明:1. rs、r/w的配合选择决定控制界面的4种模式及e信号:表4.5 控制界面的4种模式rsr/w功能说明llmpu写指令到指令暂存器(ir)lh读出忙标志(bf)及地址记数器(ac)的状态hlmpu写入数据到数据暂存器(dr)hhmpu从数据暂存器(dr)中读出数据表4.6 e信号e状态执行动作结果高低i/o缓冲dr配合/w进行写数据或指令高dri/o缓冲配合r进行读数据或指令低/低高无动作2. 模块控制芯片提供两套控制命令,基本指令和扩充指令,一般情况下,只需用到基本指令,基本指令如表4.7所示:表4.7 基本指令表(re=0)指 令 码功 能指令rsr/wd7d6d5d4d3d2d1d0清除 显示0000000001将ddram填满20h,并且设定ddram的地址计数器(ac)到00h地址 归位000000001x设定ddram的地址计数器(ac)到00h,并且将游标移到开头原点位置;这个指令不改变ddram 的内容显示状态开/关0000001dcbd=1: 整体显示 on c=1: 游标on b=1:游标位置反白允许进入点设定00000001i/ds指定在数据的读取与写入时,设定游标的移动方向及指定显示的移位设定gram地址0001ac5ac4ac3ac2ac1ac0设定cgram 地址设定ddram 地址0010ac5ac4ac3ac2ac1ac0设定ddram 地址(显示位址) 第一行:80h87h 第二行:90h97h读取忙标志和地址01bfac6ac5ac4ac3ac2ac1ac0读取忙标志(bf)可以确认内部动作是否完成,同时可以读出地址计数器(ac)的值写数据到ram10数 据将数据d7d0写入到内部的ram (ddram/cgram/iram/gram)读出ram值11数 据从内部ram读取数据d7d0 (ddram/cgram/iram/gram)4.3.6 语音报警模块在语音报警模块中,使用的是isd1420语音芯片。其功能主要是在采集温度大于设定温度时,将语音芯片的playe端置“0”,此时启动语音芯片的播放功能,实现报警作用。在isd1420语音芯片中,a0-a7地址输入有双重功能,根据地址中的a6,a7的电平状态决定功能。如果a6,a7有一个是低电平,a0a7输入全解释为地址位,作为起始地址用。a0-a7 由低位向高位排列,每位地址代表125 毫秒的寻址,160个地址覆盖20秒(160*0.125s=20s)的语音范围,录音及放音功能均从设定的起始地址开始,录音结束由停止键操作决定,芯片内部自动在该段的结束位置插入结束标志(eom);而放音时芯片遇到eom标志即自动停止放音。在isd语音报警的硬件电路中,人工手动录取报警音乐。将芯片的25脚(recled)端通过按键接地,当按键接地时,recled置“0”,此时isd1420录音。在录音前通过软件赋予p0口首地址0x00,而语音芯片的地址端与p0口相连,故录音首地址为0x00。当温度超过设定温度时,将isd操作模式设为软件置playe为“0”,此时播放录音。isd1420语音芯片的地址功能表如表4.8所示。表4.8 isd1420地址功能表地址状态功能说明dip开关12345678(on=0,off=1)地址位a0a1a2a3a4a5a6a7(1为高电平,0为低电平,*为高或低电平)00000000一段式最长20 秒录放音,从首地址开始。10000000以八位二进制表示地址,每个地址代表125 毫秒。地址模式00000010一段从a6 地址开始的12 秒录放音。*0只要a6、a7 有一位是0,就处于地址模式。*0*00010011循环放音操作,按一下pe 键可循环放音,按pl 键停止;或按住pl 键放音,松开即停止。操作模式00001011按顺序连续分段录放音,每段语音长度不限。00000011地址指针复位,开始录放第一段。10001011按pe 键可快速选段放音isd1420语音芯片的程序流程图如图4.12所示:入口设置isd1420工作方式写入播放首地址playe端置“0”延时10秒playe端置“1”返回 图4.12 语音芯片放音流程图4.3.7 7279键盘模块7279键盘模块在系统中的作用是完成对按键按下的识别和对相应按键进行处理。它包括温度设定、时钟的调整、检测通道的选择。在设计系统按键控制的过程中,考虑到单片机i/o口使用的方便和合理,采用7272键盘。同时,传统的按键在实际应用当中,应该进行消抖处理。常用的方法有:硬件消抖和软件消抖。而7279键盘显示模块具有自动去抖动功能。因此,使用7279键盘能更加稳定和方便。7279键盘显示板具有许多指令,比如:右移指令(a0h)、循环左移指令(a3h)、闪烁控制(88h)、消隐控制(98h)、读键盘数据指令(15h)等。在系统中,关键用到的是7279的读键盘数据指令。通过该条指令将7279键盘的每个按键键值读出并用7279显示板得数码管显示出来。其键值表如表4.9所示。表 4.9 7279键盘键值表按键号键值功能说明161fh秒/分/时/星期等时间切换151eh时间加141dh时间减131ch液晶工作界面切换1217h温度设定值个位/十位/百位切换1116h温度设定值加1015h温度设定值减914h通道选择在7279键盘模块中,通过读键盘指令将读出的键盘数据赋给key_num,通过读出的key_num值与表4.9中的键值相比较,如果相等的话转入相应的程序中进行处理。在系统中,使用了8个按键分别为916,其键值如表4.9中所示。在进入键盘模块时,当读出的键盘值为“1ch”时flag=1,此时系统启动从开机界面转入工作界面。第二次读出键值为“1ch”时flag=2,此时系统结束工作进入结束界面。第三次读出键盘值为“1ch”时flag=1,再次进入工作界面。当读出的键值为“1fh”时set_flag+,set_flag加到8时,再次置“1”。set_flag值大小从16,其对应的处理方式为秒、分、时、星期、日、月、年的设置。其中,键值为“1eh”、“1dh”分别对应时间加、时间减。当读到的键值为“17h”时flag1+,flag1值的大小从1到3,分别对应温度的个位、十位、百位。而键值“16h”、“15h”分别对应温度加,温度减。当读到的键值为“14h”时flag2+,其值大小从1到3,分别对应通道0、通道1、通道2。其流程图如图4.13所示。读键值,赋给key_num入口判定键值,key_num=?1ch1fh07h04h界面设置时间设置温度设置通道选择返回图4.13 7279键盘模块流程图4.3.8 pid算法模块在微电脑多路染色机温度控制器的软件设计中,pid算法模块是重中之重,同时也是一个比较大的难点。pid控制是目前工程上应用最广的一种控制方法,它的优点在于结构简单,且不依赖被控对象模型,控制所需的信息量也很少,因而非常易于工程实现,同时通过参数的调整也可获得较好的控制效果。pid控制是将误差信号的比例(p)、积分(i)和微分通过线性组合构成控制量,故称之为pid控制。因此,在使用中只需要设定三个参数即可。在软件编写中,通过使用结构体将pid算法的变量都定义好。分别有偏差值、偏差值符号、p系数、i系数、d系数、设定值、实际值。在进行pid运算时,通过将设定值与采样值相减,即=设定值-采样值。则为本次偏差信号, 为前一次偏差信号,为前两次的偏差信号,为pid控制算法的比例系数,为pid控制算法的积分系数,为pid控制算法的微分系数。然后将这些数据按增量式pid控制算法的计算公式进行计算。pid算法是这样的:控制器的输出是与控制器的输入(误差)成正比,与输入的积分成正比和输入的导数成正比的这三个分量之和。pid控制器的性能就决定于、这三个系数。采用增量式pid算法的系统框图如图4.14所示。图4.14 增量式pid算法系统框图当增大比例系数时,系统的动作变灵敏,速度加快,稳态误差减小;但振荡次数也会加多,调节时间加长。积分控制使系统的稳定性下降,但能消除稳态误差,提高系统的控制精度。微分控制可以改善动态特性,它对偏差的变化趋势进行超前调整,从而可以有效地提高系统的动态性能,加大阻尼,减小超调量。pid运算后的最终结果是算出pid控制值。通过定时器1定时50ms,每50mspid控制值自减直到控制值减为“0”。此时,系统进行加热降温处理。其流程图如图4.15所示。系统设计的pid参数的大小是通过软件不断的来调整以达到控制温度的目的的,过程比较繁琐,需要耐心。经过调试,取kp=90、ki=31、kd=43。图4.15 pid控制算法流程图4.3.9 pid控制模块本模块的作用是通过定时器1将pid算法子程序中计算出的pid值送给pid控制模块进行相应的处理。其处理方法为:通过定时器1定时50毫秒,当时间到50毫秒时将pid值自减,直到pid值减为0为止,在这段时间内进行加热的处理。主要原理是采用pwm波控制双向可控硅的通断时间来进行温度控制。在pid算法子程序中,pid的满值为100。则由此可知,pid控制子程序的周期为5秒。如图4.16所示。pwm 1 0 1 2 3 100 t/50ms 一个控制周期 控制值输出 pwm 1 0 5 t/s图4.16 pwm控制输出原理图第五章 微电脑多路染色机温度控制器的系统调试微电脑多路染色机温度控制

温馨提示

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

评论

0/150

提交评论