文档详情

第三节常用控制程序设计.ppt

发布:2017-08-07约2.35万字共174页下载文档
文本预览下载声明
第三章 常用控制程序设计 3.1 判断程序设计 3.2 巡回检测程序设计 3.3 数字滤波程序设计 3.4 标度变换程序设计 3.5 上下限报警处理程序设计 3.6 LED数码管显示程序设计 3.7 定时程序设计 3.8 键盘控制程序设计 3.9 抗干扰技术 3.10 电机控制程序设计 3.11 步进电机控制 3.1 判断程序设计 3.1.1 算术判断程序 3.1.2 逻辑判断程序 3.1.3 标志判断程序 判断程序就是分支执行程序。程序在执行时,首先判定给定的条件是否满足,根据判定的结果(真或假)再执行相应的操作。 例如:在转速控制系统中,电机的恒速运转一般是通过控制输入电压来实现的,首先检测出电机的实际转速,再比较电机的实际转速和给定转速,如果电机的转速低于给定转速,就需要增加输入电压;如果电机的转速高于给定转速,就需要降低输入电压。上述功能的执行过程如图3-1所示。 MCS-51系列的程序状态字(PSW)是一个用于存储程序运行状态信息的8位寄存器,其位定义如表3-1所示。其中有些位状态是根据程序运算结果由硬件自动设置;而有些位状态则是通过软件设定的。PSW的位状态可通过指令读出,以实现程序的转移。 3.1.1 算术判断程序 1. 两个8位无符号数比较 2. 两个16位无符号数比较 3. 两个8位有符号数的比较 两个8位无符号数比较 … … CLR CY ;进位标志清零 MOV A,M ;A←M SUBB A,N ;求M-N JZ EQU ;累加器A=0,则M=N,转EQU JC LESS ;CY=1,有借位,则MN,转LESS BIG: MN处理程序 ;无借位,则MN,执行BIG处理程序 EQU: M=N处理程序 LESS: MN处理程序 … … 2. 两个16位无符号数比较 16位无符号数的比较程序清单: … … CLR CY ;标志位清零 MOV A,MH ;A←MH MOV R2,NH ;R2←NH SUBB A,R2 ;高8位比较 JZ HEQU ;高8位相等,转低8位比较 JC LESS ;有借位,转MN 处理程序 AJMP BIG ;无借位,转MN 理程序 HEQU: CLR CY ;标志位清零 MOV A,ML ;A←ML MOV R2,NL ;R2←NL SUBB A,R2 ;低8位比较 JZ EQU ;A=0,则M=N,转EQU JC LESS ;有借位,则MN,转LESS BIG: MN处理程序 ;无借位,执行MN 理程序 EUQ: M=N 处理程序 LESS: MN 处理程序 … … 3. 两个8位有符号数的比较 由于M和N均为有符号数, M和N两数在比较时,可能出现以下四种情况: (1)M0,N0, 即两数均为正数。 (2)M0,N0, 即M为正数,N为负数。 (3)M0,N0, 即M为负数,N为正数。 (4)M0,N0, 即两数均为负数。 8位有符号数比较程序清单: … … MOV A,M ;A←M MOV R2,N ;R2←N SUBB A,R2 ;M和N 比较 JZ EQU ;M和N相等,转相等处理程序 JB PSW.2,FLOW ;判断是否溢出 JB ACC.7,LESS ;无溢出,且A的最高位为1,则MN AJMP BIG ;否则,MN FLOW: JB ACC.7,BIG ;有溢出,且A的最高位为1,则MN LESS: MN处理程序 ;否则,MN,执行LESS执行程序 BIG: MN处理程序 EUQ: M=N处理程序 … … 3.1.2 逻辑判断程序 逻辑判断程序的设计步骤: (1)读入数据(开关状态或阀门的位置); (2)屏蔽不需要的状态位; (3)与所要求的状态比较; (4)判断比较结果,选择程序入口。 例3-1 图3-5中A、B、C、D表示4个开关,当四个开关均闭合时,顺序执行相应的程序,否则,继续检测。 逻辑判断程序流程框图如图3-6所示。 逻辑判断程序清单: … … CHECK: MOV A,P1 ;读入开关状态 ANL A,#55H ;屏蔽无用位 XRL A,#00H ;判断A、B、C、D是否全部闭合 JNZ CHECK ;A、B、C、D没全部闭合,继续检测 … ;否则顺序执行相应程序 … 3.1.3 标志判断程序 标志判断的设计思想是:根据某一设定的标志单元(
显示全部
相似文档