- 1、本文档共72页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机原理与接口技术PPT电子课件教案-第4章_MCS-51汇编语言程序设计参考
本章教学要求 (1) 了解汇编语言编程的基础知识。 (2) 了解汇编语言程序设计的基本步骤和方法。 (3) 了解汇编语言目标程序效率高、占存储空间少、运行速度快、实时性强等特点。 (4) 掌握MCS-51汇编语言的顺序、分支、循环、查表及子程序的结构。 (5) 掌握算术运算、数制转换及标度变换等实用汇编程序的编程方法。 本 章 目 录 4.1 程序设计概述 4.1.1 程序设计的步骤 4.1.2 程序设计的方法 4.1.3 汇编语言的规范 4.1.4 汇编语言程序编辑和汇编 4.2 结构化程序设计方法 4.1 程序设计概述 本章介绍使用MCS-51指令系统编写汇编程序的方法。与高级语言相比,汇编语言具有实时性好、代码效率高、执行速度快以及节约内存空间等优点,同时还可以充分利用机器的硬件结构与功能来操作硬件端口。 本章介绍汇编语言程序编写的一般知识、程序设计的基本步骤和格式,以及各种类型的程序设计,包括顺序程序、分支程序、循环程序、查表程序和子程序等。 4.1.1 程序设计的步骤 4.1.1 程序设计的步骤 使用汇编语言设计一个程序,大致可分为以下几个步骤: 1) 分析题意,明确要求。 2) 确定算法。 3) 画程序流程图,用图解来描述和说明解题步骤。 4) 分配内存单元,确定程序与数据区的存放地址。 5) 编写源程序。 6) 程序优化。 7) 上机调试、修改和最后确定源程序。 4.1.2 程序设计的方法 1.模块化程序设计 2.尽量采用循环及子程序结构 3.自上而下的程序设计 4.1.3 汇编语言的规范 4.1.3 汇编语言的规范 4.1.3 汇编语言的规范 4.1.3 汇编语言的规范 4.1.3 汇编语言的规范 4.1.3 汇编语言的规范 4.1.3 汇编语言的规范 4.1.3 汇编语言的规范 4.1.3 汇编语言的规范 4.1.3 汇编语言的规范 4.1.3 汇编语言的规范 4.1.3 汇编语言的规范 4.2 结构化程序设计方法 在汇编语言程序设计中,普遍采用结构化程序设计方法。采用这种设计方法的主要依据是任何复杂的程序都可由顺序结构、分支结构及循环结构程序等构成。 每种结构只有一个入口和出口,整个程序也只有一个入口和出口。 结构程序设计的特点是程序的结构清晰、易于读写和验证、可靠性高。下面主要介绍结构化程序设计的基本程序设计方法。 4.2.1 顺序结构程序 例4-1 将片内RAM的20H单元中的压缩BCD码拆成两个ACSII码存入21H、22H单元。低4位存在21H单元,高4位存在22H单元。 4.2.1 顺序结构程序 4.2.2 分支程序 4.2.2 分支程序 4.2.2 分支程序 4.2.3 循环程序 4.2.3 循环程序 例4-5 设有一带符号的数组存放在内部RAM以20H为首址的连续单元中,其长度为90,要求找出其中的最大值,并将其存放到内部RAM的1FH单元中,试编写相应的程序。 4.2.3 循环程序 4.2.3 循环程序 例4-6 将内部RAM中起始地址为data的数据串传送到外部RAM中起始地址为buf的存储区域内,直到发现“$”字符停止传送。 本例结束条件为找到“$”停止传送。 程序如下: 4.2.3 循环程序 例4-7 设8031单片机使用12MHz晶振(机器周期T为lμs),试设计延迟100ms的延时程序。 4.2.3 循环程序 在上例程序中采用了多重循环程序,即在一个循环体中又包含了其他的循环程序,这种方法是实现延时程序的常用方法。使用多重循环时,必须注意以下几点。 (1) 循环嵌套,必须层次分明,不允许产生内外层循环交叉; (2) 外循环可以一层层向内循环进入,结束时由里往外一层层退出; (3) 内循环可以直接转入外循环,实现一个循环由多个条件控制的循环结构方式。 4.2.4 查表程序 查表程序是一种常用的程序,它广泛使用于LED显示器控制、打印以及数据补偿、计算、转换等功能程序中,具有程序简单、执行速度快等优点。查表,就是根据变量x在表格中查找y,使y=f (x)。 例4-8 试编写程序,将16进制数转换成ASCII码。 分析:16进制0~9的ASCII码为30~39H,A~F的ASCII码为41H~46H,ASCII码表的首地址为ASCTAB。 入口:HEX单元的低四位存放16进制数。 出口:转换后的ASCII码送回HEX单元。 4.2.4 查表程序 4.2.4 查表程序 例4-9 设有一个巡回检测报警装置,需对16路输入进行检测,每路有一个最大允许值,它为双字节。检测时需根据测量的路数,找出该路的最大允许值。再判断输入值是否大于最大允许值,如大于则报警。这里只考虑查找最大值。 分析:设x为路数,放在R2中。y为
文档评论(0)