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