MCS-51单片机汇编语言程序设计教材(PPT 45页).ppt_第1页
MCS-51单片机汇编语言程序设计教材(PPT 45页).ppt_第2页
MCS-51单片机汇编语言程序设计教材(PPT 45页).ppt_第3页
MCS-51单片机汇编语言程序设计教材(PPT 45页).ppt_第4页
MCS-51单片机汇编语言程序设计教材(PPT 45页).ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章MCS 51单片机汇编语言程序设计 程序设计 指令的有序罗列 两个方面 1 选择某种语言 2 解决问题的方法与步骤 算法 本章介绍汇编语言程序设计的基本问题 包括 5 1程序设计概述5 2基本的程序设计5 3基本功能程序的设计5 4数字滤波程序 5 1程序设计概述 一 程序设计步骤 1 分析问题 确定问题的数学模型 2 确定符合计算机运算的算法 3 绘制流程图 4 内存单元分配 5 据流程图编写汇编语言程序 6 程序调试与修改 二 程序设计技术 1 模块化程序设计 2 自顶向下的程序设计 3 软件的抗干扰技术 三 评价程序质量的标准 程序的执行时间 程序所占用的内存字节数 程序的逻辑性 可读性 程序的兼容性 可扩展性 程序的可靠性 5 2基本的程序设计 在程序设计过程中 无论多复杂的程序结构都是由基本的程序结构组成的 一 顺序结构程序设计二 分支结构的程序设计三 循环结构的程序设计 一 顺序结构的程序 顺序结构程序是一种最简单 最基本的程序 按照程序编写的顺序逐条依次执行 直到程序结束 这是程序的最基本的形式 任何程序都离不开这种形式 例5 1 编程将片内RAM21H单元的低3位和20H单元的低5位合并为一个字节送片内RAM30H 要求21H的低3位放在高位上 分析 1 将RAM20H的高位屏蔽掉 2 将21H的高3位屏蔽掉 然后将其低5位移到高5位上 3 将以上两者合并即可 MOV30H 20H 20H中内容处理ANL30H 1FHMOVA 21H 21H中内容处理SWAPARLAANLA 0E0HORL30H A 两数合并 例5 2 求内部RAM20H 21H中的4位压缩BCD数与22H 23H中的4位压缩BCD数的差 结果送24H 25H中 即 20H 21H 22H 23H 24H 25H 分析 9999H 1 22H 23H 20H 21H CLRCMOVA 9AH 用999AH 22H 23H SUBBA 23HMOV25H A 结果送24H和25HMOVA 99HSUBBA 22HMOV24H AMOVA 25H 24H 25H 20H 21H ADDA 21HDAAMOV25H A 结果存24H25HMOVA 24HADDCA 20HDAAMOV24H A 补充例题 片外RAM1000H 1001H分别存放两个无符号数10010001B和10001010B 如果视其为二进制数 编程完成其加法和减法运算 结果放到片外RAM1002H和1003H单元 如果视其为BCD码 编程完成其加法运算和减法运算 结果放到片外RAM1004H和1005H单元 框图 二 分支结构的程序 分支结构程序是利用条件转移指令 使程序执行到某一指令时 根据条件是否满足 来改变程序执行的顺序 编写分支结构的程序主要在于正确使用转移指令 编写分支结构的程序的关键是确定好分支条件转移指令有三种 无条件转移条件转移散转 1 无条件转移 它的程序转移方向是设计者事先安排的 与已执行程序的结果无关 使用时只需给出正确的转移目标地址或偏移量即可 如 ORG0000HLJMPMAIN ORG0030HMAIN 2 条件转移 它是根据已执行程序对标志位或累加器或对内部RAM某位的影响结果 决定程序的走向 形成各种分支 可用于分支结构的指令 JZ JNZ CJNE DJNZ JC JNCJB JNB JBC 程序框图 a b正确 c错误 3 散转 它是根据某种已输入的或运算的结果 使程序转向各个处理程序中去 一般单片机实现散转程序常用于逐次比较和算法处理的方法 这些方法一般比较麻烦 易出错 MCS 51单片机具有一条专门的散转指令JMP A DPTR 可以使它较方便地实现散转功能 例5 3 编制程序使y按下式赋值 VAREQU30HFUNCEQU31HSTART MOVA VAR 取xJZCOMP 为0转COMPJNBACC 7 POSI 0转POSIMOVA 0FFH 0 1 ASJMPCOMPPOSI MOVA 01HCOMP MOVFUNC ARET 例5 4 设外部存储器单元ST1和ST2存放两个不带符号的二进制数 找出其中的大数存入ST3单元 START1 CLRC 进位位清0MOVDPTR ST1 设数据指针MOVXA DPTR 取第一个数MOVR1 A 暂存第一个数INCDPTRMOVXA DPTR 取第二个数MOVR2 A 暂存第二个数SUBBA R1 两数比较JNCBIG1XCHA R1 第一个数大SJMPLBIG1 MOVA R2L INCDPTRMOVX DPTR A 存大数 例5 5 空调机在制冷时 若排出空气比吸入空气温度低8 则认为工作正常 否则认为工作故障 并设置故障标志 设片内RAM40H中存放吸入空气温度值 41H中存放排除空气温度值 若 40H 41H 8 则空调机制冷正常 在42H单元中存放 0 否则在42H单元中存放 FFH 以示故障 在此42H单元被设定为故障标志 为了可靠地监控空调机的工作情况 应做两次减法 第一次减法 40H 41H 若C 1 则肯定有故障 第二次减法用两个温度的差值减去8 若C 1 说明温差小于8 空调机也不正常工作 ORG0000HSTART MOVA 40H 吸入温度值送ACLRCSUBBA 41HJCERROR C 1有故障SUBBA 8JCERROR 温差小于8 有故障MOV42H 0 工作正常标志SJMPEXITERROR MOV42H 0FFH 工作故障标志EXIT SJMP END 三 循环结构的程序 循环程序是强制CPU重复执行某一指令序列的一种程序结构形式 循环结构的程序一般由5部分组成 初始化 循环体 处理部分 循环修改 循环控制 继续循环吗 和结束部分 关键 循环体 做什么 变化量 如何变化 初始化 控制与判断 例5 10 5 11 5 12 1 工作单元清0 2 多个单字节数据求和 3 设在DAT开始的片内RAM中存放10个无符号字节数 找出最大值 并暂存在A中 实验3 10个数 去掉一个最大值 一个最小值 求剩余8个数的平均值 例5 15 多重循环 设计软件延时 12MHZ 1ms冒泡程序5 16 注意循环结构 5 3基本功能程序的设计 一 查表程序的设计二 子程序的设计三 算术逻辑运算程序四 数制转化程序 一 查表程序 查表法是对一些复杂的函数运算如sinx等 事先把其全部可能范围的函数值按一定的规律编成表格存放在计算机的程序存储器中 当用户程序中需要用到这些函数时 直接按编排好的索引值 或程序号 寻找答案 在控制应用场合或智能仪器仪表中 经常使用查表法 例5 17 已知数据0 9的平方 设变量x的值在累加器A中 查表后求x2的值放回累加器 试编制程序 X2 MOVDPTR X2TABMOVCA A DPTRRETX2TAB DB00H 01H 02H 64H 81H 例5 18 设计一个将十六进制数转换成ASCII码的子程序 设十六进制数存放在R0的低4位 要求转换后的ASCII码送回R0中DB30H 31H 39H 41H 46H如果不用查表 应该怎样做 例5 19 某智能化仪器的键盘程序中 根据命令的键值 0 1 2 9 转换成相应的双字节16位命令操作入口地址 其键值与对应入口地址关系如下 键值 入口地址 0 0123H 1 0186H 2 0234H 3 0316H 4 0415H 5 0520H 6 0626H 7 0710H 8 0818H 9 0929H 设键值存放在片内RAM20H单元中 出口地址值存放在片内RAM22H和23H中 DB01H 23HDB01H 86H DB09H 29H 二 子程序设计 在实际问题中 常常会遇到在一个程序中有许多相同的运算或操作 因此在实际应用中 通常把这些多次使用的程序段 按一定结构编好 存放在内存中 当需要时 程序可以去调用这些独立的程序段 通常将这种可以被调用的程序段称为子程序 调用子程序的程序称为主程序 使用子程序的过程称为调用子程序 子程序执行完毕后返回主程序的过程称为子程序返回 例5 22 5 23 1 用程序实现c a2 b2 设a b均小于10 a存在片内RAM31H单元中 b存在32H单元中 把c存入33H单元中 2 求两个无符号数据块中的最大值 数据块的首地址分别为片内RAM60H和70H 每个数据块的第1个字节都存放数据块的长度 结果存入5FH单元 三 算术逻辑运算程序 1 多字节二进制数加法2 多字节压缩BCD码加法3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论