单片机基本知识与接口技术4.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《单片机基本知识与接口技术4.ppt》由会员分享,可在线阅读,更多相关《单片机基本知识与接口技术4.ppt(96页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章 汇编语言程序设计,4.0 绪 4.1 汇编语言源程序格式 4.2 汇编语言源程序的编辑和汇编,4.0 绪,评价程序质量的标准 程序的执行时间; 程序所占用的内存字节数目; 程序的逻辑性、可读性; 程序的兼容性、可扩展性; 程序的可靠性,4.0 绪,采用汇编语言的优点 占用内存单元和CPU资源少; 程序简短、执行速度快; 可直接调动计算机的全部资源,并可以有效利用计算机的专有特性; 能准确地掌握指令的执行时间,适用于实时控制,4.1 汇编语言源程序格式,4.1.1 编程的步骤 4.1.2 汇编语言源程序格式 4.1.3 伪指令 4.1.4 编程的方法和技巧 4.1.5 汇编语言程序的基本
2、结构,4.1.1 编程的步骤,一、分析问题 二、确定算法 三、画程序流程图 四、编写程序,根据问题要实现的目标: 首先设计硬件电路。 然后再根据具体的硬件环境进行程序设计。,一、分析问题,对需要解决的问题进行分析,以求对问题正确的理解。如: 解决问题的任务是什么? 工作过程是什么? 现有的条件,已知数据,对运算的精度 和速度方面的要求? 设计的硬件结构是否方便编程?,在编程以前,先要对几种不同的算法进行分析、比较,找出最适宜的算法,二、确定算法,三、画程序流程图,程序流程图是使用各种图形、符号、有向线段等来说明程序设计过程的一种直观的表示。 流程图步骤分得越细致,编写程序是也越方便。 画流程图
3、是程序结构设计是采用的一种重要手段。 一个系统软件有总的流程图(主程序框图)和局部的流程图。,椭圆框,或桶形框,:表示程序的开始或结束。,矩形框,:表示要进行的工作。,菱形框,:表示要判断的事情,菱形框内的表达式表示要判断的内容。,流程图常采用的图形和符号。,圆 圈,:表示连接点,指向线,:表示程序的流向,流程图常采用的图形和符号。,四、编写程序,汇编语言编写的源程序行(一条语句)包括四 个部分,也叫4个字段。 这四个字段是: 标号: 操作数 ;注释 每个字段之间要用分隔符分隔,而每个字段 内部不能使用分隔符。,4.1.2 汇编语言源程序格式,可以用作分隔符的符号有: 空格“ ” 冒号“:”
4、逗号“,” 分号“;” 例如, LOOPl: MOV A,#00H ;立即数00H送A,4.1.2 汇编语言源程序格式,标号是用户定义的符号地址。 一条指令的标号是该条指令的符号名字, 标号的值是汇编这条指令时指令的地址。 标号由以英文字母开始的18个字母或数 字串组成,以冒号:结尾。 标号可以由赋值伪指令赋值。,4.1.2 汇编语言源程序格式,标 号,如果标号没有赋值,汇编程序就把存放该指令目标码第一字节的存储单元的地址赋给该标号, 所以,标号又叫指令标号。 注意:系统中保留使用的关键字不能用 作标号。,4.1.2 汇编语言源程序格式,标 号,对于一条汇编语言指令,这个字段是必不 可少的,
5、它用一组字母符号表示指令的操作码。 89C51中,它由指令系统助记符组成。,4.1.2 汇编语言源程序格式,操作码,汇编语言指令可能要求或不要求操作数。 若有两个操作数,操作数之间应用逗号分开 操作数字段的内容是复杂多样的, 它可能包括下列诸项: 工作寄存器名 特殊功能寄存器名 标号 常 数 $ 表达式,4.1.2 汇编语言源程序格式,操作数,操作数: 工作寄存器名,由PSW.3和PSW.4规定的当前工作寄存器区中的R0R7都可以出现在操作数字段中。 MOV A, R4 MOV A, R0,操作数: 特殊功能寄存器名,89C51中的21个特殊功能寄存器的名字都可以作为操作数使用。 MOV A,
6、 P1 MOV TMOD, #01H SETB ET0,可以在操作数字段中引用的标号名包括: 赋值标号 由汇编命令EQU等赋值的标号可以作为 操作数。 指令标号 指令标号虽未给赋值,但这条指令的第一 字节地址就是这个标号的值,在以后指令操作数字段中可以引用。,操作数: 标号名,LOOP: MOV A, R2 LJMP LOOP,操作数: 标号名,汇编语言指令允许以各种数制表示常数, 常数可以写成二进制、十进制或十六进制。 常数总是要以一个数字开头 若十六进制的 第一个数为AF字符,前面要加零, 数字后要直接跟一个表明数制的字母,B二 进制,H十六进制。,操作数: 常数,MOV A,#00000
7、111B MOV A,#07H MOV A,#07 MOV A, #0FDH,操作数: 常数,“$”,用来表示程序计数器的当前值。 这个符号最常出现在转移指令中, JNB TF0, $表示若TF0为零仍执行该指令,否则往下执行,它等效于 $:JNB TF0, $,操作数: $,汇编程序允许把表达式作为操作数使用。 在汇编时,计算出表达式的值; 并把该值填入目标码中。 例如, MOV A, SUM +l,操作数: 表达式,注 释 注释字段不是汇编语言的功能部分,只是用 于增加程序的可读性。 注释是汇编语言程序编写中的重要组成部分 以“;”隔开。,4.1.2 汇编语言源程序格式,例: LOOP:M
8、OV A,#00H;立即数00HA,伪指令不是真正的指令,无对应的机器码, 在汇编时不产生目标程序, 只是用来对汇编过程进行某种控制。,4.1.3 伪指令,4.1.3 伪指令,ORG END EQU DATA,DB DW DS BIT,ORG 汇编起始命令,格式:ORG 16位地址 功能:规定该伪指令后面程序的汇编地址,即汇编后生成目标程序存放的起始地址。 例如:,ORG 汇编起始命令,例如: ORG 2000H START: MOV A,#64H 规定了START的地址是2000H,又规定了汇编后的第一条指令码从2000H开始存放。,END 汇编结束指令,格式:END 功能:通知汇编程序结束
9、汇编。在END之后所有的汇编指令均不予以处理。,EQU 赋值命令,格式:字符名称 EQU 项(数或汇编符号) 功能:把“项”赋给“字符名称”。 注意:字符名称不等于标号(其后没有冒号);其中的项,可以是数,也可以是汇编符号。EQU赋值过的符号名可以用作数据、代码地址、位地址或一个立即数。可以是8位的,也可以是16位的。 例如:,EQU 赋值命令,例1: AA EQU R1 MOV A,AA;AA代表工作寄存器R1,EQU 赋值命令,例2: A10 EQU 10 DELY EQU 07EBH MOV A,A10; A10作为片内的一个直接地址 LCALL DELY; DELY作为一个16 位子程
10、序的入口地址,DATA 数据地址赋值命令,格式:字符名称 DATA 表达式 功能:与EQU类似, 但有以下差别: EQU定义的字符名必须先定义后使用,而DATA定义的字符名可以后定义先使用。 用EQU伪指令可以把一个汇编符号赋给一个名字,而DATA只能把数据赋给字符名。,DATA 数据地址赋值命令,3、DATA语句可以把一个表达式的值赋给字符名称,其中的表达式应是可求值的。DATA伪指令在程序中用来定义数据地址,DB 定义字节命令,格式:DB(项或项表) 功能:通知汇编程序从当前ROM地址开始,保留一个字节或字节串的存储单元,并存入DB后的数据。 注意:项或项表可以是一个字节,用逗号隔开的字节
11、串或括在单引号中的ASCII字符串。 例如:,DB 定义字节命令,ORG 2000H DB 0A3H LIST:DB 26H,03H STR:DB ABC ,经汇编后 (2000H)=A3H, (2001H)=26H, (2002H)=03H, (2003H)=41H, (2004H)=42H, (2005H)=43H,(41H,42H, 43H分别为A,B,C的ASCII码),DW 定义字命令,格式:DW 16位数据项或项表 功能:把DW后的16位数据项或项表从当前地址连续存放。每项数值为16位二进制数,高8位先放,低8位后存放。 DW用于定义一个地址表。 例如:,DW 定义字命令,ORG
12、1500H TABLE:DW 7234H,8AH,10H 经汇编后(1500H)=72H, (1501H)=34H, (1502H)=00H, (1503H)=8AH, (1504H)=00H, (1505H)=10H,,DS 定义存储空间命令,格式:DS 表达式 功能:在汇编时,从指定地址开始保留DS之后表达式的值所规定的存储单元以备后用。 例如:,DS 定义存储空间命令,ORG 1000H DS 08H DB 30H,8AH 汇编后,从1000H保留8个单元,从1008H按DB命令给内存赋值,即(1008H)=30H (1009H)=8AH,BIT 位地址符号命令,格式:字符名 BIT 位
13、地址 功能:把BIT后的位地址值赋给字符名。其中字符名不是标号,其后没有冒号,但字符名是必须的。,BIT 位地址符号命令,例如: A1 BIT P1.0 A2 BIT 02H 汇编后,P1口第0位的位地址90H就赋给了A1,而A2的值则为02H。,4.1.4 编程的方法和技巧,一、模块化的程序设计方法 二、编程技巧,一、模块化的程序设计方法,1、程序功能模块化的优点 2、划分模块的原则,1、程序功能模块化的优点,单个模块结构的程序功能单一,易于编写、调试和修改。 便于分工,从而可使多个程序员同时进行程序的编写和调试工作,加快软件研制进度。 程序可读性好,便于功能扩充和版本升级。 对程序的修改可
14、局部进行,其它部分可以保持不变。 对于使用频繁的子程序可以建立子程序库,便于多个模块调用。,2、划分模块的原则,每个模块应具有独立的功能,能产生一个明确的结果,即单模块的功能高内聚性。 模块之间的控制耦合应尽量简单,数据耦合应尽量少,即模块间的低耦合性。控制耦合是指模块进入和退出的条件及方式,数据耦合是指模块间的信息交换方式、交换量的多少及交换频繁程度。 模块长度适中。20条100条的范围较合适。,二、编程技巧,1、尽量采用循环结构和子程序。 2、尽量少用无条件转移指令。 3、对于通用的子程序,考虑到其通用性,除了用于存放子程序入口参数的寄存器外,子程序中用到的其他寄存器的内容应压入堆栈(返回
15、前再弹出),即保护现场。,二、编程技巧,4、在中断处理程序中,除了要保护处理程序中用到的寄存器外,还要保护标志寄存器。 5、用累加器传递入口参数或返回参数比较方便,在子程序中,一般不必把累加器内容压入堆栈。,4.1.5 汇编语言程序的基本结构,一、顺序程序 二、分支程序 三、循环程序,一、顺序程序,顺序程序是最简单的程序结构,即顺序结构。 程序按顺序一条一条地执行指令。,例1 双字节加法。被加数地址:addr2,addr1. 加数地址:addr4,addr3. 和在:addr2,addr1中.,例2、双字节求补子程序CPLD 算法:正数不变,负数取反+1解: 入口参数:(R7R6) = 待求补
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 基本知识 接口 技术
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内