●●●6●●● 第九章常用控制程序设计 ●●●●●●●●●●●● 第六章常用控制程序设计 6.1判断程序设计 6,2巡回检测程序设计 63数字滤波程序设计 6.4标度变换程序设计 6.5上下限报警处理程序设计 6.6LED数码管显示程序设计 6,7定时程序设计 6.8键盘控制程序设让 69抗干扰技术 6,10电机控制程序设计 6,11步进电机控制
第九章 常用控制程序设计 第六章 常用控制程序设计 6.1 判断程序设计 6.2 巡回检测程序设计 6.3 数字滤波程序设计 6.4 标度变换程序设计 6.5 上下限报警处理程序设计 6.6 LED数码管显示程序设计 6.7 定时程序设计 6.8 键盘控制程序设计 6.9 抗干扰技术 6.10 电机控制程序设计 6.11 步进电机控制
●●●6●●● 第九章常用控制程序设计 ●●●●●●●●●●●●●●●● 61判断程序设计 6.,1.1算术判断程序 612逻辑判断程序 6.13标志判断程序 返回本章首页:
第九章 常用控制程序设计 6.1 判断程序设计 6.1.1 算术判断程序 6.1.2 逻辑判断程序 6.1.3 标志判断程序 返回本章首页
●●●6●●● 第九章常用控制程序设计 ●●●●●●●●●●● 判断程序就是分支执行程序。程序在执行时,首先判定给 定的条件是否满足,根据判定的结果(真或假)再执行相 应的操作。 例如:在转速控制系统中,电机的恒速运转一般是通过控 制输入电压来实现的,首先检测出电机的实际转速,再比 较电机的实际转速和给定转速,如果电机的转速低于给定 转速,就需要增加输入电压;如果电机的转速高于给定转 速,就需要降低输入电压。上述功能的执行过程如图3-1 所示
第九章 常用控制程序设计 判断程序就是分支执行程序。程序在执行时,首先判定给 定的条件是否满足,根据判定的结果(真或假)再执行相 应的操作。 例如:在转速控制系统中,电机的恒速运转一般是通过控 制输入电压来实现的,首先检测出电机的实际转速,再比 较电机的实际转速和给定转速,如果电机的转速低于给定 转速,就需要增加输入电压;如果电机的转速高于给定转 速,就需要降低输入电压。上述功能的执行过程如图3-1 所示
●●●6●●● 第九章常用控制程序设计 ●●●●●●●●●●●●●●●● 检测电机转速 是 是否大于 否 给定转速 低输入电压 提高输入电压 图6-1判断程序框图
第九章 常用控制程序设计 图6-1 判断程序框图 检测电机转速 是否大于 给定转速 降低输入电压 提高输入电压 是 否
●●●6●●● 第九章常用控制程序设计 ●●●●●●●●●●●●●●●● MCS51系列的程序状态字(PSW)是一个用于存储程序 运行状态信息的8位寄存器,其位定义如表6-所示。其中 有些位状态是根据程序运算结果由硬件自动设置;而有些 位状态则是通过软件设定的。PSW的位状态可通过指令读 出,以实现程序的转移。 表61PSw的位定义 位序 PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW. PSW.O 位标志 CY AC R 返回本节
第九章 常用控制程序设计 MCS-51系列的程序状态字(PSW)是一个用于存储程序 运行状态信息的8位寄存器,其位定义如表6-1所示。其中 有些位状态是根据程序运算结果由硬件自动设置;而有些 位状态则是通过软件设定的。PSW的位状态可通过指令读 出,以实现程序的转移。 返回本节 6-1
●●●6●●● 第九章常用控制程序设计 ●●●●●●●●●●●●●●●● 6.1.1算术判断程序 1.两个8位无符号数比较 2两个16位无符号数比较 3两个8位有符号数的比较
第九章 常用控制程序设计 6.1.1 算术判断程序 1. 两个8位无符号数比较 2. 两个16位无符号数比较 3. 两个8位有符号数的比较
●●●6●●● 第九章常用控制程序设计 ●●●●●●●●●●●●●●●● 1.两个8位无符号数比较 标志位设定 M一一A M-N=否 否 否 M-N>? 是 转M=N 转M 处理程序 处理程序 处理程序 图6-28位无符号数的比较流程框图
第九章 常用控制程序设计 1. 两个8位无符号数比较 图6-2 8位无符号数的比较流程框图
●●●6●●● 第九章常用控制程序设计 ●●●●●●●●●●●●●●●● 8位无符号数的比较程序清单 CLR CY ;进位标志清零 MOV AM;A←M SUBB A,N;求M一N EQU;累加器A=0,则M=N,转EQU JC ESS;CY=1,有借位,则MN处理程序;无借位,则MN,执行BIG处理程序 EQU:M=N处理程序 LESS:M<N处理程序
第九章 常用控制程序设计 … … CLR CY ;进位标志清零 MOV A,M ;A←M SUBB A,N ;求M-N JZ EQU ;累加器A=0,则M=N,转EQU JC LESS ;CY=1,有借位,则MN处理程序 ;无借位,则M>N,执行BIG处理程序 EQU: M=N处理程序 LESS: M<N处理程序 … … 8位无符号数的比较程序清单:
●●●6●●● 第九章常用控制程序设计 ●●●●●●●●●●●●●●●● 2.两个16位无符号数比较 标志位设定 M和N高八位比较 否 高八位相等否? 是 低八位比较 低八位相等否? 是 百借位否是 N处理程序MN处理程序 MN处理程序 图6-316位无符号数的比较流程框图
第九章 常用控制程序设计 2. 两个16位无符号数比较 图6-3 16位无符号数的比较流程框图 标志位设定 高八位相等否? M和N高八位比较 低八位比较 低八位相等否? M=N处理程序 M>N处理程序 M<N处理程序 借位否? 是 是 是 否 否 否
●●●6●●● 第九章常用控制程序设计 ●●●●●●●●●●●●●●●● 16位无符号数的比较程序清单: CLR CY 标志位清零 MOvA,MH;A←-MH MovR2,NH;R2←NH SUBB A,R2;高8位比较 JZ HEQU;高8位相等,转低8位比较 JC LESS;有借位,转M<N处理程序 AJMP BIG;无借位,转MN理程序
第九章 常用控制程序设计 16位无符号数的比较程序清单: … … CLR CY ;标志位清零 MOV A,MH ;A←MH MOV R2,NH ;R2←NH SUBB A,R2 ;高8位比较 JZ HEQU ;高8位相等,转低8位比较 JC LESS ;有借位,转MN 理程序