第六章 常用控制程序设计
更新时间:2023-05-30 17:58:01 阅读量: 实用文档 文档下载
- 第六章至暗抉择推荐度:
- 相关推荐
常用单片机控制程序
第六章
常用控制程序设计
6.1 判断程序设计 6.2 数据采集程序设计
6.3 数字滤波程序设计6.4 标度变换程序设计
6.5 上下限报警处理程序设计6.6 LED数码管显示程序设计
6.7 定时程序设计6.8 键盘控制程序设计
常用单片机控制程序
6.1 判断程序设计 6.1.1 算术判断程序 6.1.2 逻辑判断程序 6.1.3 标志判断程序
返回本章首页
常用单片机控制程序
判断程序就是分支执行程序。例如:电机转速控制系统检测电机转速
是
电机输入电压降低输入电压
是否大于 给定转速
否
提高输入电压
图6-1 判断程序框图
常用单片机控制程序
6.1.1 算术判断程序 6.1.2 逻辑判断程序(1)读入数据(开关状态或阀门的位置); (2)屏蔽不需要的状态位; (3)与所要求的状态比较; (4)判断比较结果,选择程序入口。 例 6-1 A、B、C、 D4个开关,当四个开 关均闭合时,顺序执 行相应的程序,否则, 继续检测。R1 R2 R3 R4 A B C D
+5V
图6-5
开关位置检测图
.
P1.6
.
P1.4
.
P1.2
.
8031 P1.0
常用单片机控制程序
图 6 6 开 关 状 态 检 测 流 程 图
读入开关状态
屏蔽不需要的位
否
满足要求否? 是 继续执行
… … CHECK:MOV A,P1 ;读入开关状态 ANL A,#55H;屏蔽无用位 XRL A,#00H;判断A,B,C,D 是否全部闭合 JNZ CHECK;A,B,C,D没全 部闭合,继续检测 … ;否则顺序执 行相应程序 …
常用单片机控制程序
6.1.3 标志判断程序根据某一设定的标志单元(或标志位)的状态,决定程序的 执行方向。 FLAG BIT 00H ; 标志位判断 设定00H为电机旋转方向控制位 … 是 否 标志位为1否? JB FLAG RIGHT ;FLAG=1, 转RIGHT LEFT: … ;FLAG=0,顺时针 执行顺时针旋 执行逆时针旋 … 转控制程序 转控制程序 RIGHT: … ;逆时针图6-7 电机旋转方向控制程序流程图
常用单片机控制程序
6.2 数据采集程序设计对生产过程中的各个参数按照一定的周期进行检查和 测量,检测的数据经处理后进行显示、打印和报警等操作。P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.039 38 37 36 35 34 33 32
.. .
.. .
..
74LS3733 D7 4 D6 7 D5 8 D4 13 D3 14 D2 17 D1 18 D0
Q1 Q0 1 OE
_ R/C A0
8031AH
..12 28 17 16 1 2 3
..
AD574A27DB11 26 DB10 DB10 25 DB9 24 23 DB8 22 DB7 21 DB6 20 DB5 19 DB4 18 DB3 17 DB2 16 DB1 28 3 6
+Vs
11 7 13
+15V -15V
-Vs 10Vspn
模拟温度信号输入
REF IN REF OUT BIP OFF
10 8 12
.
100Ω
.
+15V 100K 100 Ω 100K -15V
INT0 P2.7 RD WR
DB0 STATUS Q0 CS CE
AN-GND 9 _ 12/8 2
.
7400
常用单片机控制程序
开
始
开
始
中断向量设置
关中断
AD574地址设置
读A/D转换数据高8位
数据存储首址设置
保存数据
外部中断0设置
改变存储地址
启动A/D转换
读A/D转换数据低4位
中断等待
开中断
结
束
返 回 (b) 中断服务程序
(a) 转换主程序
常用单片机控制程序
ORG AJMP ORG AJMP START: MOV SETB SETB
0000H START 0003H SAMPLE R0,#40H IT0 ;转至数据采样程序 ;设置数据存储初址 MOV DPTR,
#0000H;建立AD574A的地址 EX0 ;允许外部中断0 ;外部中断0请求信号方式为脉冲方式
SETBMOVX HERE:
EA
;中断允许;启动A/D转换
@DPTR,A
AJMP HERE;等待中断
常用单片机控制程序
中断服务程序清单: SAMPLE: MOV MOVX MOV INC INC MOVX SETB RETI CLR EA ;关中断 DPTR,#0002H; A,@DPTR ;读A/D转换数据的高8位 @R0,A ;保存数据 R0 DPTR A,@DPTR ;读A/D转换数据的低4位 EA ;开中断
返回本节
常用单片机控制程序
3.3 数字滤波程序设计 1. 程序判断滤波 2. 中值滤波 3. 算术平均滤波
返回本章首页
常用单片机控制程序
1. 程序判断滤波限幅滤波 │Yn-Yn-1│≤△y, 则Yn=Yn , 取本次采样值 │Yn-Yn-1│ >△y, 则Yn=Yn-1 ,取上次采样值
开
始
现场保护
读Yn-1,Yn
Yn-1 -Yn≥0 是
否 求 Yn -Yn-1
Yn-1 -Yn > Y 是 取上次采样值
否
取本次采样值
现场恢复
返 回
常用单片机控制程序
PUSH PUSH CLR MOV MOV SUBB JNC CPL INC
PSW ;保护现场 A C ;进位标志位清零 DATA,DATA2; A,DATA1 ; A,DATA ;求Yn-1 -Yn COMPARE ;如果Yn-1 -Yn≥0,转COMPARE A ;如果Yn-1 -Yn<0, 求补 A ;│Yn-Yn-1│和△y比较 ;│Yn-Yn-1│≤△y,DATA2→DATA ;│Yn-Yn-1│>△y,DATA1→DATA ;恢复现场 ; ;返回
COMPARE: CLR C SUBB A,LIMIT JC OVER MOV DATA,DATA1 OVER: POP A POP PSW RET
常用单片机控制程序
2. 中值滤波对某一被测参数开 始
连续采样n次(奇数),然后把n次 采样值按顺序排
现场保护 设置数据区首址 设置数据个数 读 数据排序 否
图 6 中 值 滤 波 程 序 流 程 框 图 7
列,取其中间值做为本次采样值。
排序 据 完成否? 是 是 取中值现场恢复 返 回
常用单片机控制程序
PUSH PSW PUSH SORT: MOV CLR LOOP: MOV INC MOV CLR SUBB JC MOV DEC MOV INC SETB
A MOV R0,DATA ;数据存储区单元首址 R7,TIME ;读比较次数 FLAG ;清交换标志位 MOV A,@R0 ;取第一个数 FIRST,A ;保存第一个数 R0 SECOND,@R0 ;保存第二个数 C A,@R0 ;两数比较 NEXT ;第一数小于第二数,不交换 @R0,FIRST R0 @R0,SECOND ;交换两数 R0 FLAG ;置交换标志位
常用单片机控制程序
NEXT:DJNZ JB DEC CLR MOV RRC MOV CONT:DEC DJNZ MOV POP POP RET
R7,LOOP ;进行下一次比较 FLAG,SORT ;进行下一轮比较 R0 C A,TIME A R7,A R0 R7,CONT SAMP,@R0 ;取中值 A PSW
常用单片机控制程序
开
始
现场保护
设置数据区首址
3. 算术平均滤波 把n个采样值相加,然后 取其算术平均值作为本次 有效的采样信号,即:否
设置循环次数
读数据
图 6 10 算 术 平 均 滤 波 程 序 流 程 图
-
累加求和
所有数据 加完否? 是 求平均值
恢复现场
返
回
常用单片机控制程序
PUSHPUSH MOV
PSW ;现场保护A FLAG,#00H ;进位位清零
MOVMOV CLR
R0,DATAR7,#08H A
;设置数据存储区首址;设置采样数据个数
;清累加器
LOOP:JNC INC NEXT: DJNZ MOV
ADD A,@R0
;两数相加
NEXT ;无进位,转NEXT FLAG ;有进位,进位位加1 INC R0 ;数据指针加1 ;未加完,继续加 ;设置循环次数 R7, LOOP R7,#03H
常用单片机控制程序
DIVIDE: MOV CLR RRC
MOV MOV RRC DJNZ
MOV TEMP,A A,FLAG C A FLAG,A A,TEMP A
;保存累加器中的内容
;累加结果除2
R7,DIVIDE ;未结束,继续执行
MOVPOP POP
SAMP,AA PSW
;保存结果至SAMP中
;恢复现场
RET
常用单片机控制程序
6.4 标度变换程序设计 一般的线性仪表,标度变换公式为:
为了简化程序设计,一般把被测参数的起点A0所对应的A/D 转换值设定为0,即N0=0:
返回本章首页
常用单片机控制程序
BD:Am-Ao
Nx-No
$
MOV SUB1_L,AM INC AM MOV SUB1_H,AM MOV SUB2_L,A0 INC A0 MOV SUB2_H,A0 ACALL SUB2 MOV MUL1_H,DIFF_H MOV MUL1_L,DIFF_L MOV SUB1_L,NX INC NX MOV SUB1_H,NX MOV SUB2_L,N0 INC N0 MOV SUB2_H,N0 ACALL SUB2 MOV MUL2_H,DIFF_H MOV MUL2_L,DIFF_L ACALL MULTD MOV DIV1_H,PR_H MOV DIV1_L,PR_L MOV SUB1_L,NM
INC MOV MOV INC MOV ACALL MOV MOV ACALL CLR MOV ADDC MOV INC A0 MOV ADDC MOV RET
NM SUB1_H,NM SUB2_L,N0 Nm-No N0 SUB2_H,N0 SUB2 DIV2_H,DIFF_H DIV2_L,DIFF_L DUBDIV $ C Nm-No A,DIV1_L A,A0 AX,A 结果+Ao A,DIV1_H A,A0 AX,A
正在阅读:
第六章 常用控制程序设计05-30
江苏省南通市2018年中考物理试卷含答案11-28
对组织部意见和建议09-04
苏教版三年级英语上册第七单元测试04-15
山东省兖州六中2019届高三二轮复习3月份地理名师精编定时练 Word版含答案04-29
单纯形法06-06
征信知识竞赛试题库09-22
百一测评 - 2015年—造价工程师考试--建设工程技术与计量(安装工程部分)--重点难点试题(部分)01-12
高二4班班主任工作计划兰青青08-08
参观武钢毕业实习报告05-10
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 程序设计
- 常用
- 控制
- 领导在人代会小组讨论发言
- 大学教务管理系统需求分析报告
- 国际资金项目网 高善文
- 高考第一轮复习单元测试卷(3)数列
- 11级第一学期口语考试试题
- 生物工程设备第一章生物质原料处理过程与设备
- 牛津初中英语7A单词表(英汉
- 7个习惯使创业者成功创业
- 建筑房地产成本预算
- 麻婆豆腐做法 英文
- 区堤防总段2011年党风廉政建设宣传教育活动方案
- 基于读写结合的初中英语高效课堂的构建策略
- 袁国平-BIM软件平台(Bentley)及应用进展
- 人教八年级物理第一学期期末考试试题
- 关于中国式过马路罚款问题的研究
- 关于保世博加强建设工程管理工作的实施细则
- GHOST使用教程图解_快速上手版
- 赡养老人,遵守孝道
- 关于道德模范的英语美文
- 重视生命教育构建幸福人生