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