计算机控制技术第3章-常用应用程序设计.ppt

上传人(卖家):三亚风情 文档编号:3391889 上传时间:2022-08-26 格式:PPT 页数:120 大小:1.19MB
下载 相关 举报
计算机控制技术第3章-常用应用程序设计.ppt_第1页
第1页 / 共120页
计算机控制技术第3章-常用应用程序设计.ppt_第2页
第2页 / 共120页
计算机控制技术第3章-常用应用程序设计.ppt_第3页
第3页 / 共120页
计算机控制技术第3章-常用应用程序设计.ppt_第4页
第4页 / 共120页
计算机控制技术第3章-常用应用程序设计.ppt_第5页
第5页 / 共120页
点击查看更多>>
资源描述

1、第3章 常用应用程序设计 3.1 数字滤波3.2 标度变换3.3 越限报警3.4 键盘控制程序3.5 显示程序设计3.1 数字滤波数字滤波 所谓数字滤波,就是在计算机中用某种计算方法对输入的信号进行数学处理,以便减少干扰在有用信号中的比重,提高信号的真实性。这种滤波方法不需要增加硬件设备,只需根据预定的滤波算法编制相应的程序即可达到信号滤波的目的。数字滤波可以对各种干扰信号,甚至极低频率的信号进行滤波。数字滤波由于稳定性高,滤波参数修改也方便,一种滤波子程序可以被各控制回路调用,因此得到广泛的应用。3.1 数字滤波数字滤波3.1.1 程序判断滤波程序判断滤波 程序判断滤波的方法,是根据生产经验

2、,确定出两次采样输入信号可能出现的最大偏差y。若超过此偏差值,则表明该输入信号是干扰信号,应该去掉;如小于此偏差值,可将信号作为本次采样值。当采样信号由于随机干扰,如大功率用电设备的启动或停止,造成电流的尖峰干扰或误检测,以及变送器不稳定而引起的严重失真等,使得采样数据偏离实际值太远,可采用程序判断滤波。程序判断滤波可分为两种,即限幅滤波和限速滤波。3.1 数字滤波数字滤波1限幅滤波当|Y(n)-Y(n-1)|Y时,则取Y(n)=Y(n),取本次采样值当|Y(n)-Y(n-1)|Y时,则取Y(n)=Y(n-1),取上次采样值 Y(n)第n次采样值;Y(n-1)第n-1次采样值;Y相邻两次采样值

3、所允许的最大偏差,它的大小取决于采样周期T及被测参数Y应有的正常变化率。一定要按照实际情况来确定Y,否则非但达不到滤波效果,反而会降低控制品质。Y通常可根据经验数据获得,必要时,也可由实验得出。3.1 数字滤波数字滤波程序流程图如图3-1所示。3.1 数字滤波数字滤波 设Y存放在LIMIT单元,两次采样值Y(n-1)、Y(n)存放在DATA1、DATA2中,滤波结果存放在DATA单元中,限幅滤波程序如下:PUSHPSW;保护现场PUSHA CLRC;进位标志位清零MOVDATA,DATA1MOVA,DATA2SUBBA,DATA;求Y(n)Y(n-1)JNCCOMPARE;如果Y(n)-Y(n

4、-1)0,转COMPARECPLA;如果Y(n)-Y(n-1)Y,DATA1DATAOVER:POPA;恢复现场POPPSWRET;返回LIMITEQU30HDATA1 EQU31HDATA2 EQU32HDATAEQU33H 限幅滤波能有效地克服因偶然因素引起的脉冲干扰,但无法抑制周期性的干扰且平滑度差。3.1 数字滤波数字滤波2限速滤波 设顺序采样时刻tn-1、tn、tn+1所采集的参数分别为Y(n-1)、Y(n)、Y(n+1),那么输入计算机)()(时,则取)()(当)输入计算机(时,)()(当)(继续采样取得)不采用,但仍保留,(时,)()(当)输入计算机(时,当21|1|1|1|1|

5、1|)1()(|nYnYYnYnYnYYnYnYnYnYYnYnYnYYnYnY3.1 数字滤波数字滤波 限速滤波是一种折衷的方法,既照顾了采样的实时性,又顾及了采样值变化的连续性。缺点:第一是Y的确定不够灵活,必须根据现场的情况不断更换新值;第二是不能反映采样点数n3时各采样数值受干扰情况。因此,它的应用受到一定的限制。在实际使用中,可用 取代Y,这样也可基本保持限速滤波的特性,虽增加一步运算,但灵活性大为提高。2/)1()()(1(nYnYnYnY3.1 数字滤波数字滤波程序流程图如图3-2所示 3.1 数字滤波数字滤波3.1.2 算术平均值滤波算术平均值滤波 算术平均值法滤波的实质即把一

6、个采样周期内对信号的n次采样值进行算术平均,作为本次的输出 ,即)(nYninYnnY1)(1)((3-3)n值决定了信号平滑度和灵敏度。随着n的增大,平滑度提高,灵敏度降低。应视具体情况选取n,以便得到满意的滤波效果。为方便求平均值,n值一般取4、8、16之类的2的整数幂,以使用移位来代替除法。通常流量信号取12项,压力信号取6项,温度、成分等缓慢变化的信号取2项甚至不平均。3.1 数字滤波数字滤波 设8次采样值依次存放在以DIGIT为首地址的连续单元中,求出平均值后,结果保留在SAMP单元中。计算的中间结果存放在FLAG和TEMP单元中,程序清单如下:PUSHPSW;现场保护PUSHAMO

7、VFLAG,#00H;进位位清零MOVR0,#DIGIT;设置数据存储区首址MOVR7,#08H;设置采样数据个数CLRA;清累加器LOOP:ADDA,R0;两数相加JNCNEXT;无进位,转NEXTINCFLAG;有进位,进位位加13.1 数字滤波数字滤波NEXT:INCR0;数据指针加1DJNZR7,LOOP;未加完,继续加MOVR7,#03H;设置循环次数DIVIDE:MOVTEMP,A;保存累加器中的内容MOVA,FLAG;累加结果除2CLRCRRCAMOVFLAG,A MOVA,TEMPRRCADJNZR7,DIVIDE;未结束,继续执行MOVSAMP,A;保存结果至SAMP中POP

8、A;恢复现场POPPSWRET3.1 数字滤波数字滤波 算术平均值滤波主要用于对压力、流量等周期脉动的采样值进行平滑加工,但对偶然出现的脉冲性干扰的平滑作用尚不理想,因而它不适用于脉冲性干扰比较严重的场合。另外该滤波方法比较浪费RAM。3.1 数字滤波数字滤波3.1.3 加权平均值滤波加权平均值滤波加权平均值滤波法公式为11110010nnniiiYkYkYkYkY(3-4)其中,k0、k1、kn-1为加权系数,体现了各次采样值在平均值中所占的比例,它们都为大于0的常数项,且满足110niik(3-5)一般采样次数愈靠后,取的比例愈大,这样可增加新的采样值在平均值中的比例。这种滤波方法可以根据

9、需要突出信号的某一部分,抑制信号的另一部分。适用于纯滞后较大的被控对象。3.1 数字滤波数字滤波3.1.4 中值滤波中值滤波 所谓中值滤波是对某一参数连续采样n次(一般n取奇数),然后把n次的采样值从小到大或从大到小排队,再取中间值作为本次采样值。n 个数据按大小顺序排队的具体做法是两两进行比较,设R1为存放数据区首地址,先将(R1)与(R1)+1)进行比较,若是(R1)(R1)+1)则不交换存放位置,否则将两数位置对调。继而再取(R1)+1)与(R1)+2)比较,判断方法亦然,直到最大数沉底为止。然后再重新进行比较,把次大值放到n-1位,如此做下去,则可将n个数从小到大顺序排列。3.1 数字

10、滤波数字滤波 设采样值从8位A/D转换器输入5次,存放在SAMP为首地址的内存单元中,其程序流程图如图3-3所示。3.1 数字滤波数字滤波程序清单如下:ORG8000HINTER:MOVR4,#04H;置大循环次数SORT:MOVA,R4;小循环次数R5MOVR5,AMOVR1,#SAMP;采样数据存放首地址R1LOOP:MOVA,R1;比较INCR1MOV R2,ACLRCSUBBA,R1MOVA,R2JCDONE3.1 数字滤波数字滤波MOV A,R1;(R1)(R1)+1)DECR1XCHA,R1INCR1MOVR1,ADONE:DJNZR5,LOOP;R50,小循环继续进行DJNZR4

11、,SORT;R40,大循环继续进行INCR1MOVR1,ARET 中值滤波对于去掉由于偶然因素引起的波动或采样器不稳定而造成的误差所引起的脉动干扰比较有效。若变量变化比较缓慢,采用中值滤波效果比较好,但对快速变化过程的参数(如流量),则不宜采用。一般n取35次。3.1 数字滤波数字滤波3.1.5 去极值平均滤波去极值平均滤波 去极值平均值滤波的算法是:连续采样n次,去掉一个最大值,再去掉一个最小值,求余下n-2个采样值的平均值。程序的流程图如图3-4所示。为使平均滤波方便,n-2应为2、4、8、16,故n常取4、6、10、18。3.1 数字滤波数字滤波图3-4 去极值平均滤波3.1 数字滤波数

12、字滤波3.1.6 滑动平均滤波滑动平均滤波 滑动平均滤波法把n个测量数据看成一个队列,队列的长度固定为n,每进行一次新的采样,把测量结果放入队尾,而去掉原来队首的一个数据,这样在队列中始终有n个“最新”的数据。然后把队列中的n个数据进行算术平均运算,就可获得新的滤波结果。滑动平均值滤波对周期性干扰有良好的抑制作用,平滑度高,灵敏度低;但对偶然出现的脉冲性干扰的抑制作用差,不易消除由于脉冲干扰引起的采样值的偏差,因此它不适用于脉冲干扰比较严重的场合,而适用于高频振荡系统。通常对流量信号,n取12,压力信号n取4,液面参数n取412,温度信号n取14。3.1 数字滤波数字滤波 假定n个双字节型采样

13、值,40H单元为采样队列内存单元首地址,n个采样值之和不大于16位。新的采样值存于3EH、3FH单元,滤波值存于60H、61H单元。FARFIL为算术平均滤波程序。程序清单为:MOVR2,N-1;采样个数MOVR0,42H;队列单元首地址MOVR1,43HLOOP:MOVA,R0;移动低字节DECR0DECR0MOVR0,AMOVA,R0;修改低字节地址ADDA,04HMOVR0,A3.1 数字滤波数字滤波MOVA,R1;移动高字节DECR1DECR1MOVR1,AMOVA,R1;修改高字节地址ADDA,04HMOVR1,ADJNZR2,LOOPMOVR0,3EH;存新的采样值MOVR1,3F

14、HACALL FARFIL;求算术平均值RET3.1 数字滤波数字滤波3.1.7 低通数字滤波低通数字滤波 对于变化过程比较缓慢的随机变量采用短时间内连续采样,然后求平均值的方法进行滤波,其效果往往不够理想。为了提高滤波效果,可以仿照模拟系统RC低通滤波器的方法,将普通硬件RC低通滤波器的微分方程用差分方程来表示,便可以用软件算法来模拟硬件滤波器的功能。RC低通滤波器如图3-5所示。图3-5 RC低通滤波器3.1 数字滤波数字滤波 由图3-5可以写出模拟低通滤波器的传递函数为11)()()(ssXsYsG(3-6)其中,为RC滤波器的时间常数,。RC将式(3-6)离散后,可得:Y(n)=(1-

15、)Y(n-1)+X(n)(3-7)式中,X(n)本次采样值;Y(n-1)上次的滤波输出值;滤波系数,/Te1 3.1 数字滤波数字滤波 RC滤波器时间常数,=RC;T采样周期;Y(n)本次滤波的输出值。低通数字滤波适用于高频和低频的干扰信号。3.1 数字滤波数字滤波3.1.8 复合滤波程序复合滤波程序 为了进一步提高滤波效果,改善控制精度,有时可以把两种或两种以上有不同滤波效果的数字滤波器组合起来,形成复合数字滤波器,或称多级数字滤波器。例如:把中值滤波和算术平均值滤波结合起来,就可以结合两者的优点,既可以消除周期性的干扰信号,又可对随机的脉冲干扰信号进行滤波。滤波步骤为:把n次采样值按照从大

16、到小或者从小到大的顺序排列。采用中值滤波,去掉最大值和最小值。对其余的n-2个采样值取算术平均值,作为滤波的输出值。3.1 数字滤波数字滤波 如果把n次采样值已经按照从小到大的顺序排列了,并且依次为Y1、Y2、Yn,则滤波输出值为1221niiYnY(3-8)此外,也可以采用多重滤波的方法,把多个滤波器串联起来,前一个数字滤波器的输出作为后一个数字滤波器的输入。比如:可以把两个低通滤波器串联起来,形成双重滤波,这样滤波效果会更好些。其滤波算式可以采用迭代方法求出。3.1 数字滤波数字滤波由式(3-7)可知:第一级滤波输出为 Y(n)=(1-)Y(n-1)+X(n)(3-9)第二级滤波输出为 Z

17、(n)=(1-)Z(n-1)+Y(n)(3-10)将式(3-9)代入式(3-10)得Z(n)=(1-)Z(n-1)+(1-)Y(n-1)+2X(n)(3-11)3.1 数字滤波数字滤波由式(3-10)可以求出 Y(n)=Z(n)-(1-)Z(n-1)(3-12)再用n-1代替n,可得Y(n-1)=Z(n-1)-(1-)Z(n-2)(3-13)将式(3-13)代入式(3-11),就得到两级数字滤波算式Z(n)=2(1-)Z(n-1)-(1-)2Z(n-2)+2X(n)(3-14)3.2 标度变换标度变换标度变换:在计算机控制系统中,生产中的各个参数都有着不同的数值和量纲,所有这些参数都经过变送器

18、转换成A/D转换器所能接收的05V统一电压信号,又由AD转换成00FFH(8位)的数字量。为进一步显示、记录、打印以及报警等,必须把这些数字量转换成不同的单位,以便操作人员对生产过程进行监视和管理。这就是所谓的标度变换。3.2 标度变换标度变换3.2.1 线性参数标度变换线性参数标度变换 所谓线性参数,指一次仪表测量值与A/D转换结果具有线性关系,或者说一次仪表是线性刻度的。标度变换公式为 0000)(NNNNAAAAmxmx(3-15)式中,A0 一次测量仪表的下限;Am 一次测量仪表的上限;Ax 实际测量值(工程量);N0 仪表下限对应的数字量;Nm 仪表上限对应的数字量;Nx 测量值所对

19、应的数字量。3.2 标度变换标度变换 为使程序简单,一般把被测参数的起点A0(输入信号为0)所对应的A/D输出值为0,即N0=0,这样上式可化作00)(AAANNAmmxx(3-16)比如:某热处理炉温度测量仪表的量程为2001000,在某一时刻计算机采样并经数字滤波后的数字量为0CDH,设仪表量程为线性的,求出此时温度值。A0=200 ,Am=1000 ,Nx=0CDH=(205)D,Nm=0FFH=(255)D,根据式(3-16)可得此时温度为843200)2001000(255205)(00AAANNAmmxx3.2 标度变换标度变换 有时,工程量的实际值还需经过一次变换。如电压测量值是

20、电压互感器的二次测的电压,则其一次侧的电压还有一个互感器的变比问题,这时上式应再乘上一个比例系数,即)(00AAANNkAmmxx(3-17)3.2 标度变换标度变换3.2.2 非线性参数标度变换非线性参数标度变换比如:在过程控制中,最常见的非线性关系是差压变送器信号P与流量Q的关系PkQ(3-18)式中,Q流量;K流量系数,与流体的性质及节流装置的尺寸有关;P节流装置前后的差压。3.2 标度变换标度变换据此,可得测量流量时的标度变换式为 0000NkNkNkNkQQQQmxmx整理得0000)(QQQNNNNQmmxx(3-19)3.2 标度变换标度变换式中 Q0流量仪表的下限值;Qm流量仪

21、表的上限值;Qx被测量的流量值;N0差压变送器下限所对应的数字量;Nm差压变送器上限所对应的数字量;Nx差压变送器所测得的差压值(数字量)。对于流量测量仪表,一般下限取0,此时Q0=0,N0=0,故上式变为mxmxNNQQ(3-20)3.3 越限报警越限报警 在计算机控制系统中,为了安全生产,对于一些重要的参数或系统部位,都设有上、下限检查及报警系统,以便提醒操作人员注意或采取相应的措施。其方法就是把计算机采集的数据经计算机进行数据处理、数字滤波、标度变换之后,与该参数上、下限给定值进行比较,如果高于(或低于)上限(或下限),则进行报警,否则就作为采样的正常值,以便进行显示和控制。报警系统一般

22、为声光报警信号,在某些系统中,需要增加功能,还带有打印输出,如记下报警的参数、时间等,并能自动进行处理,如自动切换到手动,切断阀门或自动拨出电话号码等。3.3 越限报警越限报警报警程序的设计方法主要有两种:一种是软件报警。这种方法的基本作法是把被测参数如温度、压力、流量、速度、成分等参数,经传感器、变送器、AD转换送入计算机后,再与规定的上、下限值进行比较,根据比较的结果进行报警或处理,整个过程都由软件实现。另一种是直接报警。基本作法是被测参数与给定值的比较在传感器中进行,如果被测参数超过给定值,就会通过硬件向CPU提出中断请求,CPU响应中断后,会产生报警信号。3.3 越限报警越限报警不论是

23、软件报警,还是直接报警,都需要经过以下三个步骤:对被测参数进行采样。将采样值与给定值的上、下限值进行比较。根据比较结果执行相应的报警处理程序。下面分别举例介绍这两种报警程序的设计。3.3 越限报警越限报警3.3.1 软件报警程序设计软件报警程序设计 假设被测参数的采样值为Ux,设定该参数的上、下限值分别为Umax、Umin。要求若被测参数Ux Umax时,则上限报警;若被测参数Ux Umax吗ALARM1:CJNE A,31H,BB;Ux Umax,转AOUT1AJMPALARM1BB:JCAOUT2;Ux Umin,转AOUT2AJMPDONEAOUT1:SETB00H;置Ux超上限报警标志

24、AJMPDONEAOUT2:SETB01H;置Ux越下限报警标志AJMPDONE3.3 越限报警越限报警3.3.2 直接报警程序直接报警程序 这种报警方法的前提条件是被测参数与给定值的比较是在传感器中进行的。当检测值超过上限或低于下限时,结点开关闭合,从而产生报警信号。这类报警系统的电路如图3-8所示。3.3 越限报警越限报警 在图3-8中,SL1和SL2分别为被测参数的上、下限报警结点。当被测参数处于正常范围时,P1.0和P1.1均为高电平,当参数超过上限或低于下限时,其中的一个结点就会闭合,这样就会由高电平变为低电平,向CPU发出中断请求。CPU响应中断后,读入报警状态P1.0和P1.1,

25、然后从P1.4和P1.5输出报警信号,完成越限报警。3.3 越限报警越限报警具体报警程序如下:ORG6000HAJMPMAIN;上电自动转向主程序ORG0003H;外部中断方式0入口地址AJMPALARMORG0200HMAIN:SETBIT0;选择边沿触发方式SETBEX0;允许外部中断0SETBEA;CPU允许中断HERE:SJMPHERE;模拟主程序ORG0220HALARM:MOVA,#0FFH;设P1口为输入口MOVP1,AMOVA,P1;取报警状态SWAP A;ACC.7ACC.4与ACC.3ACC.0交换MOVP1,A;输出报警信号RETI3.3 越限报警越限报警 在实际的控制系

26、统中,往往为了避免测量值在极限值附近摆动造成频繁报警,可以在上、下限附近设定一个回差带,如图3-9所示。图3-9 上、下限设置回差带3.3 越限报警越限报警 H是上限带,L是下限带。规定只有当被测量值越过A点时,才认为越过上限,测量值穿越H带区,下降到B点以下才认为是复限。同样道理,测量值在L带区内摆动均不做超越下限处理,只有它回到D点之上时,才作越下限后复位处理。这样就避免了频繁的报警和复限。具体上、下限带宽的选择应根据被测参数的具体情况来决定。3.4 键盘控制程序键盘控制程序3.4.1 键盘的组成、特点及消除抖动的措施键盘的组成、特点及消除抖动的措施1键盘的组成及特点 一个按键电路如图3-

27、10所示。当按键未按下时,VA=1,为高电平;当按键S按下时,VA=0,为低电平。因此,可以通过高、低电平的检测,便可确定按键是否被按下。图3-10 按键电路3.4 键盘控制程序键盘控制程序 由于机械触点的弹性作用,一个按键开关在闭合或断开时不会马上稳定下来,会有瞬间的抖动,具体波形如图3-11所示。图3-11 按键抖动波形3.4 键盘控制程序键盘控制程序2消除按键抖动的措施 消除按键抖动的措施有两种:硬件方法和软件方法。(1)硬件方法 采用RC滤波消抖电路或RS双稳态消抖电路,如图3-12所示。3.4 键盘控制程序键盘控制程序(2)软件方法 当按键数量较多时,硬件消抖将无法胜任。在这种情况下

28、,可以采用软件的方法进行消抖。在第一次检测到有按键闭合时,首先执行一段延时10ms的子程序,然后再确认该按键电平是否仍保持闭合状态电平,如果保持闭合状态电平则确认为真正有按键按下,从而消除了抖动的影响。3.4 键盘控制程序键盘控制程序3.4.2 独立式按键接口技术独立式按键接口技术 所谓独立式按键就是每个按键各接一根输入线,各个按键的工作状态互不影响。因此,通过检测输入线的电平状态可以很容易判断哪个按键被按下了。如图3-13所示为利用8255A可编程并行接口扩展的独立式按键电路。当某一按键未被按下时,对应位应为1,当按键按下时,对应位应为0,因此,用位检测可以识别按键的工作状态。3.4 键盘控

29、制程序键盘控制程序图3-13 利用8255A可编程并行接口扩展的独立式按键3.4 键盘控制程序键盘控制程序 由图3-13可知8255A的口地址为:PA口地址为7FFCH、PB口地址为7FFDH、PC口地址为7FFEH、控制口地址为7FFFH。查询方式编程如下:ORG3000HMOVDPTR,#7FFFH;8255A初始化MOVA,#90HMOVX DPTR,AKBSPR:ACALL KEY;读键的状态JZDONE;若无按键闭合,转DONEACALL DL10mS;若有键按下,延时10mS以防抖动ACALL KEY;重读键的状态JZDONE;若无按键闭合,转DONEJBACC.0,S1;转S1键

30、处理JBACC.1,S2;转S2键处理3.4 键盘控制程序键盘控制程序JBACC.2,S3;转S3键处理JBACC.3,S4;转S4键处理JBACC.4,S5;转S5键处理JBACC.5,S6;转S6键处理JBACC.6,S7;转S7键处理JBACC.7,S8;转S8键处理DONE:RETKEY:MOVDPTR,#7FFCH;判断有无按键闭合MOVX A,DPTRCPLA;若(A)=0,则无按键闭合RET3.4 键盘控制程序键盘控制程序DL10mS:MOV R5,#14H;延时10mS子程序DL:MOVR6,#0FFHDL0:DJNZR6,DL0DJNZR5,DLRETS1:S1键处理S2:S

31、2键处理3.4 键盘控制程序键盘控制程序 独立式键盘与计算机的接口也可以采用中断方式,如图3-14所示。3.4 键盘控制程序键盘控制程序3.4.3 矩阵式键盘接口技术矩阵式键盘接口技术1矩阵式键盘工作原理 矩阵式键盘由行线和列线组成,按键位于行、列线的交叉点上,行、列线分别连接到按键开关的两端。行线通过上拉电阻接到5V上,如图3-15所示 图3-15 矩阵式键盘结构3.4 键盘控制程序键盘控制程序 如图3-15所示,行线通过上拉电阻接到5V上,平时无按键动作时,行线处于高电平状态,而当有按键按下时,行线电平状态将由与此行线相连的列线电平决定。列线电平如果为低,则行线电平为低;列线电平如果为高,

32、则行线电平亦为高。这一点是识别矩阵键盘按键是否被按下的关键所在。3.4 键盘控制程序键盘控制程序2按键的识别方法 目前常用的方法有两种:一种是用硬件电路来识别,称为编码键盘;另一种是利用软件方法来识别,称为非编码键盘。在编码键盘中设有硬件检测电路,以确定哪一个按键闭合,并产生该键的代码,非编码键盘则是依靠外部的硬件电路和软件来判别哪一个按键闭合。常用的非编码键盘的按键识别方法有两种,一种是扫描法,另一种是线反转法。3.4 键盘控制程序键盘控制程序(1)扫描法 矩阵键盘按键的识别方法,此方法分两步进行:第一步,识别键盘有无键被按下;第二步,如果有键被按下,识别出具体的按键。识别键盘有无键被按下的

33、方法是:让所有列线均置为0电平,检查各行线电平是否有变化,如果有变化,则说明有键被按下,如果没有变化,则说明无键被按下。(实际编程时应考虑按键抖动的影响,通常总是采用软件延时的方法进行消抖处理。)识别具体按键的方法是(亦称之为扫描法):逐列置零电平,其余各列置为高电平,检查各行线电平的变化,如果某行电平由高电平变为零电平,则可确定此行此列交叉点处的按键被按下。3.4 键盘控制程序键盘控制程序(2)线反转法线反转法只须经过两步便能获得此按键所在的行与列的值。第一步:将行线编程为输入线,列线编程为输出线,并使输出线输出为全零电平,则行线中电平由高到低所在行为按键所在行。第二步:同第一步完全相反,将

34、行线编程为输出线,列线编程为输入线,并使输出线输出为全零电平,则列线中电平由高到低所在列为按键所在列。综合一、二两步的结果,可确定按键所在行和列,从而识别出所按的键。3.4 键盘控制程序键盘控制程序线反转法的原理如图3-16所示。图3-16 线反转法原理图3.4 键盘控制程序键盘控制程序 假设7号键被按下,那么:第一步即在P1.0P1.3输出全为0,然后,读入P1.4P1.7位的状态,结果P1.5=0,而P1.4、P1.6和P1.7均为1,因此,第1行出现电平的变化,说明第1行有键按下;第二步让P1.4P1.7输出全为0,然后,读入P1.0P1.3位,结果P1.0=0,而P1.1、P1.2和P

35、1.3均为1,因此第3列出现电平的变化,说明第3列有键按下。综合一、二两步,即第1行第3列按键被按下,此按键即是7号键。3.4 键盘控制程序键盘控制程序3键盘工作方式 键盘工作方式有3种,即:编程扫描、定时扫描和中断扫描。(1)编程扫描法 所谓编程扫描就是CPU对键盘的扫描采取程序控制方式,一旦进入键扫描状态,则反复地扫描键盘,等待用户从键盘上输入命令或数据。而在执行键入命令或处理键入数据过程中,CPU将不再响应键入要求,直到CPU返回重新扫描键盘为止。3.4 键盘控制程序键盘控制程序(2)定时扫描法 定时扫描工作方式就是CPU每隔一定的时间(例如10ms)对键盘扫描一遍。当发现有键按下时,便

36、进行读入键盘操作,以求出键值,并分别进行处理。定时时间间隔由单片机内部定时器/计数器来完成,这样可以减少计算机扫描键盘的时间,以减少CPU的开销。具体做法是,当定时时间到,定时器便自动输出一脉冲信号,使CPU转去执行扫描程序。(3)中断扫描法 当没有键入操作时,CPU不对键盘进行扫描,以节省出大量的时间对系统进行监控和数据处理。一旦键盘有输入,则向CPU申请中断。CPU响应中断后,即转到相应的中断服务程序,对键盘进行扫描,以便判别键盘上闭合键的键号,并做出相应的处理。3.4 键盘控制程序键盘控制程序 综上所述,对键盘所做的工作分为三个层次:第1层:监视键盘的输入。体现在键盘的工作方式上就是:编

37、程扫描工作方式;定时扫描工作方式;中断扫描工作方式。第2层:确定具体按键。体现在按键的识别方法上就是:扫描法;线反转法。第3层:键功能程序执行。3.4 键盘控制程序键盘控制程序4键盘接口及编程方法 图3-17为一个48矩阵键盘通过8255A扩展IO口与80C51单片机的接口电路原理图。图3-17 8255A扩展I/O口组成的48矩阵式键盘3.4 键盘控制程序键盘控制程序 在图3-17中,8255A的PA、PB、PC口地址分别为:7FFCH、7FFDH、7FFEH,控制口地址为7FFFH。当PA口工作于方式0输出,PC口低4位工作于方式0输入时,方式命令控制字可设为89H。键盘扫描子程序完成如下

38、4个功能。(1)判断键盘上有无键闭合。(2)消除按键机械抖动(3)判别闭合键的键号(4)使CPU对键的一次闭合仅作一次处理3.4 键盘控制程序键盘控制程序键输入子程序的框图如图3-18所示。3.4 键盘控制程序键盘控制程序 下面为键输入程序的清单,从该程序返回后输入键的键号在BUFF单元中。ORG5000HPROG:MOV DPTR,#7FFFH ;8255A初始化 MOV A,#89H ;89H=10001001MOVX DPTR,AKEY1:ACALL KS1 ;判断有无键闭合JNZ LK1 ;(A)0,说明有键闭合AJMP KEY1 ;(A)=0,说明无键闭合LK1:ACALL DL10

39、ms ;延时10ms(消抖)ACALL KS1 ;再次判断有无键闭合JNZ LK2 ;(A)0,有键闭合,转LK2AJMP KEY1 ;继续查询3.4 键盘控制程序键盘控制程序LK2:MOV R2,#0FEH ;扫描模式R2MOV R4,#00H ;R4为列计数器LK4:MOV DPTR,#7FFCH ;扫描模式8255PA口MOV A,R2 MOVX DPTR,AINC DPTRINC DPTRMOVX A,DPTR ;读8255PC口JB ACC.0,LONE ;ACC.0=1,说明0行无键闭合,转 判第1行MOV A,#00H ;0行有键闭合,首键号0A AJMP LKPLONE:JBA

40、CC.1,LTWOMOV A,#08H ;1行有键闭合,首键号8AAJMP LKP3.4 键盘控制程序键盘控制程序LTWO:JB ACC.2,LTHRMOV A,#10H;2行有键闭合,首键号16AAJMP LKPLTHR:JB ACC.3,NEXT ;转判下一列MOV A,#18H;3行有键闭合,首键号24ALKP:ADD A,R4 ;键号=列号+行首键号PUSH ALK3:ACALL KS1 ;判断键是否释放JNZ LK3 ;直到A=0,键释放POP A MOV BUFF,A ;存键值(如:以备显示)AJMPKNDNEXT:INC R4 ;列计数器加1MOV A,R2 ;判断是否扫描到最后

41、一列JNB ACC.7,KND RL A ;A7A0 A73.4 键盘控制程序键盘控制程序MOV R2,AAJMP LK4KND:AJMP KEY1KS1:MOV DPTR,#7FFCH ;全0扫描口PAMOV A,#00HMOVX DPTR,AINC DPTRINC DPTRMOVX A,DPTR ;读键入状态PC03CPL AANL A,#0FH ;屏蔽高4位(若(A)=0,说明键没闭合)RETDL10ms:MOV R5,#14HDL:MOV R6,#0FFH DL0:DJNZ R6,DL0DJNZ R5,DLRET3.4 键盘控制程序键盘控制程序3.4.4 双功能键的设计及重键处理技术双

42、功能键的设计及重键处理技术1双功能键的设计 解决的办法是设置上/下档开关来实现。如图3-19所示。3.4 键盘控制程序键盘控制程序 当上下档键控制开关处于上档时,按键为上档功能,当此控制开关处于下档时,按键为下档功能。在编程时,键盘扫描子程序应不断测试P1.7口线的电平状态,根据此电平状态的高低,赋予同一个键两个不同的键码,从而由不同的键码转入不同的键功能子程序;或者同一个键只赋予一个键码,但根据上/下档标志,相应转入上/下档功能子程序。3.4 键盘控制程序键盘控制程序2重键处理技术 当发现有按键按下时,可以用扫描法进行按键定位,则所有的行(或列)均应扫描一次,这时就可以确定按下的是单键或多键

43、,同时确定出各按键的具体位置,然后可以采取相应的措施:(1)如果是单键,则以此键为准,其后(指等待此键释放的过程中)其他的任何按键均无效。(2)如果是多键,则可以有3种处理方法,即:可视此次按键操作无效(通常应鸣响以示告警)。可视多键都有效,按扫描顺序,将识别出的按键依次存入缓冲区中以待处理。不断对按键进行定位处理,或者只令最先释放的按键有效,或者只令最后释放的按键有效。3.5 显示程序设计显示程序设计3.5.1 LED显示器接口技术显示器接口技术1LED数码显示器结构与原理 LED数码显示器是由发光二极管组成的,如图3-20所示。图3-20 LED数码管的结构及外形图3.5 显示程序设计显示

44、程序设计 LED数码显示管中的dp显示段用来显示小数点。LED中每一段二极管与数据线的对应关系如下:数据线:D7 D6D5D4D3D2D1D0LED段:dpgfedcba这样,共阴极和共阳极LED数码显示器的字型码如表3-1所示。3.5 显示程序设计显示程序设计显示字符共阴极接法共阳极接法显示字符共阴极接法共阳极接法 03FHC0HC39HC6H106HF9HD5EHA1H25BHA4HE79H86H34FHB0HF71H8EH466H99HP73H8CH56DH92HU3EHC1H67DH82H31HCEH707HF8HY6EH91H87FH80HH76H89H96FH90HL38HC7HA

45、77H88H“灭”00HFFHB7CH83H3.5 显示程序设计显示程序设计2LED数码显示器的显示方式 图3-21是4位共阴极LED显示器的结构原理图。3.5 显示程序设计显示程序设计 从图中可以看出,4位LED显示器有4根位选线和84根段选线。则N位LED显示器有N根位选线和8N根段选线。段选线控制显示字符的字型,而位选线则控制显示位的亮、暗。根据位选线和段选线的连接方法不同,显示方式也不同。LED显示器有静态显示和动态显示两种显示方式。3.5 显示程序设计显示程序设计(1)静态显示方式 所谓静态显示方式,是由单片机一次输出显示后,就能保持该显示结果,直到下次送新的显示字型码为止。LED工

46、作于静态显示方式时,各位的共阴极(或共阳极)连接在一起并接地(或接+5V);每位的段选线分别与一个8位的锁存输出相连。静态显示方式中,在同一时间里,每一位显示的字符可以各不相同。优点:显示器的亮度都较高,占用机时少,显示可靠,编程容易,管理也简单,因而在工业过程控制中得到了广泛的应用。缺点:使用元件多,且线路比较复杂,因而成本比较高。3.5 显示程序设计显示程序设计 图3-22给出了用8255A的三个口控制三位LED数码显示器的接口电路。3.5 显示程序设计显示程序设计 假设8255A的控制口地址为7FFFH,PC、PB、PA三个口地址分别为7FFEH、7FFDH、7FFCH,实现PA口显示“

47、0”,PB口显示“1”,PC口显示“2”的程序如下:ORG2000HSDISP-1:MOV DPTR,#7FFFH;8255初始化MOV A,#80H MOVX DPTR,AMOV DPTR,#7FFCH;PA口显示“0”MOV A,#3FHMOVX DPTR,AINC DPTR ;PB口显示“1”MOV A,#06HMOVX DPTR,AINC DPTR ;PC口显示“2”MOV A,#5BHMOVX DPTR,ARET3.5 显示程序设计显示程序设计 利用BCD-7段锁存/译码/驱动器来实现静态显示,如图3-23所示。3.5 显示程序设计显示程序设计 其中MC14513为BCD-7段锁存/

48、译码/驱动器,A、B、C、D为BCD码输入端,RBI为高位零消隐输入端,RBO为高位零消隐输出端,LE为锁存允许端,为高电平时,锁存输入的BCD码。此三位静态显示器能显示0999之间的任何数。使该显示器显示456的程序如下:3.5 显示程序设计显示程序设计ORG3F00HDISP-2:MOVA,#04H;数4送AMOVP1,A;写入P1口SETBP1.4;锁存入MC14513(1)中,百位显示4MOVA,#05H;数5送AMOVP1,A;写入P1口SETBP1.5;锁存入MC14513(2)中,十位显示5MOVA,#06H;数6送AMOVP1,A;写入P1口SETBP1.6;锁存入MC1451

49、3(3)中,个位显示6CLRP1RET3.5 显示程序设计显示程序设计(2)动态显示方式 所谓动态显示,就是单片机定时地对显示器件扫描,在这种方法中,显示器件分时工作,每次只能有一个器件显示,而其他各位熄灭,但由于人眼有视觉暂留现象,只要每位显示间隔足够短,则可造成多位同时亮的假象,达到显示的目的。优点:使用硬件少,因而价格低。缺点:占用机时长,只要单片机不执行显示程序,就立刻停止显示。由此可见,这种显示方式将使计算机的开销增大。故在以工程控制为主的控制系统中应用较少。3.5 显示程序设计显示程序设计 图3-24所示为利用8255A扩展的4位LED动态显示器接口电路。图3-24 4位LED动态

50、显示器接口电路3.5 显示程序设计显示程序设计 假设8255A的口地址分别为:PA口地址为7FFCH、PB口地址为7FFDH、PC口地址为7FFEH、控制口地址为7FFFH。现在80C51的RAM存储器中设置4个显示缓冲单元77H7AH,分别存放4位显示器的显示数据,则动态显示程序如下:ORG3000HMOV DPTR,#7FFFH ;8255初始化MOV A,#80H;PA、PB口均为方式0输出MOVX DPTR,ADIR:MOV R0,#77H ;置缓冲器指针初值MOV R3,#08H ;置扫描模式初值,位选码指向 最左边一位MOV A,R33.5 显示程序设计显示程序设计LD0:MOV

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(计算机控制技术第3章-常用应用程序设计.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|