最新单片机原理及应用(课件)4ppt课件.ppt

上传人:豆**** 文档编号:24244789 上传时间:2022-07-04 格式:PPT 页数:51 大小:717.50KB
返回 下载 相关 举报
最新单片机原理及应用(课件)4ppt课件.ppt_第1页
第1页 / 共51页
最新单片机原理及应用(课件)4ppt课件.ppt_第2页
第2页 / 共51页
点击查看更多>>
资源描述

《最新单片机原理及应用(课件)4ppt课件.ppt》由会员分享,可在线阅读,更多相关《最新单片机原理及应用(课件)4ppt课件.ppt(51页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、4.1 4.1 编程的步骤、方法和技巧编程的步骤、方法和技巧4.1.1 4.1.1 编程的步骤编程的步骤4.1.2 4.1.2 编程的方法和技巧编程的方法和技巧4.1.3 4.1.3 汇编语言程序的基本汇编语言程序的基本结构结构标号 标号是用户定义的符号地址。标号是用户定义的符号地址。 一条指令的标号是该条指令的符号名字,标号的一条指令的标号是该条指令的符号名字,标号的值是汇编这条指令时指令的地址。值是汇编这条指令时指令的地址。 标号由以英文字母开始的标号由以英文字母开始的18个字母或数字组成,个字母或数字组成,以冒号以冒号“:”结尾。结尾。 标号可以由赋值伪指令赋值,如果没有赋值,汇标号可以

2、由赋值伪指令赋值,如果没有赋值,汇编程序把存放该指令目标码第一字节的存储单元编程序把存放该指令目标码第一字节的存储单元的地址赋给该标号,所以,标号又叫指令标号。的地址赋给该标号,所以,标号又叫指令标号。操作码 操作码是必不可少的。操作码是必不可少的。 它用一组字母符号表示指令的操作码。在它用一组字母符号表示指令的操作码。在89C51中,由中,由89C51的指令助记符组成。的指令助记符组成。操作数 汇编语言指令可能要求或不要求操作数,所以这一字段汇编语言指令可能要求或不要求操作数,所以这一字段可能有也可能没有。可能有也可能没有。 若有两个操作数,操作数之间用逗号若有两个操作数,操作数之间用逗号“

3、,”分开。分开。 操作数包括的内容有:操作数包括的内容有: (1)工作寄存器:由)工作寄存器:由PSW.3和和PSW.4规定的当前工作寄规定的当前工作寄存器区中的存器区中的R0R7。 (2)特殊功能寄存器:)特殊功能寄存器:21个个SFR的名字。的名字。 (3)标号名:赋值标号)标号名:赋值标号由汇编指令由汇编指令EQU等赋值的标号;等赋值的标号;指令标号指令标号指令标号指示的指令的第一字节地址是该标指令标号指示的指令的第一字节地址是该标号的值。号的值。 (4)常数:可用二进制()常数:可用二进制(B)、十进制、十六进制)、十进制、十六进制(H),若常数以字符开头,前面加),若常数以字符开头,

4、前面加0。 (5)$:用来表示程序计数器的当前值。:用来表示程序计数器的当前值。 (6)表达式:汇编时,计算出表达式的值填入目标码。)表达式:汇编时,计算出表达式的值填入目标码。注释 注释部分不是汇编语言的功能部分,只是注释部分不是汇编语言的功能部分,只是用语增加程序的可读性。用语增加程序的可读性。 良好的注释是汇编语言程序编写中的重要良好的注释是汇编语言程序编写中的重要组成部分。组成部分。4.1.2 4.1.2 编程的方法和技巧编程的方法和技巧一、模块化的程序设计方一、模块化的程序设计方法法二、编程技巧二、编程技巧一、模块化的程序设计方法1、程序功能模块化的优点、程序功能模块化的优点2、划分

5、模块的原则、划分模块的原则1、程序功能模块化的优点 单个模块结构的程序功能单一,易于编写、调试单个模块结构的程序功能单一,易于编写、调试和修改。和修改。 便于分工,从而可使多个程序员同时进行程序的便于分工,从而可使多个程序员同时进行程序的编写和调试工作,加快软件研制进度。编写和调试工作,加快软件研制进度。 程序可读性好,便于功能扩充和版本升级。程序可读性好,便于功能扩充和版本升级。 对程序的修改可局部进行,其它部分可以保持不对程序的修改可局部进行,其它部分可以保持不变。变。 对于使用频繁的子程序可以建立子程序库,便于对于使用频繁的子程序可以建立子程序库,便于多个模块调用。多个模块调用。2、划分

6、模块的原则 每个模块应具有独立的功能,能产生一个明确的每个模块应具有独立的功能,能产生一个明确的结果,即单模块的功能高内聚性。结果,即单模块的功能高内聚性。 模块之间的控制耦合应尽量简单,数据耦合应尽模块之间的控制耦合应尽量简单,数据耦合应尽量少,即模块间的低耦合性。控制耦合是指模块量少,即模块间的低耦合性。控制耦合是指模块进入和退出的条件及方式,数据耦合是指模块间进入和退出的条件及方式,数据耦合是指模块间的信息交换方式、交换量的多少及交换频繁程度。的信息交换方式、交换量的多少及交换频繁程度。 模块长度适中。模块长度适中。20条条100条的范围较合适。条的范围较合适。二、编程技巧1、尽量采用循

7、环结构和子程序。、尽量采用循环结构和子程序。2、尽量少用无条件转移指令。、尽量少用无条件转移指令。3、对于通用的子程序,考虑到其通用性,除了用、对于通用的子程序,考虑到其通用性,除了用于存放子程序入口参数的寄存器外,子程序中用于存放子程序入口参数的寄存器外,子程序中用到的其他寄存器的内容应压入堆栈(返回前再弹到的其他寄存器的内容应压入堆栈(返回前再弹出),即保护现场。出),即保护现场。4、在中断处理程序中,除了要保护处理程序中用、在中断处理程序中,除了要保护处理程序中用到的寄存器外,还要保护标志寄存器。到的寄存器外,还要保护标志寄存器。5、用累加器传递入口参数或返回参数比较方便,、用累加器传递

8、入口参数或返回参数比较方便,在子程序中,一般不必把累加器内容压入堆栈。在子程序中,一般不必把累加器内容压入堆栈。4.1.3 4.1.3 汇编语言程序的基本结构汇编语言程序的基本结构一、顺序程序一、顺序程序二、分支程序二、分支程序三、循环程序三、循环程序一、顺序程序 顺序程序是最简单的程序结构,即顺顺序程序是最简单的程序结构,即顺序结构。序结构。 程序按顺序一条一条地执行指令程序按顺序一条一条地执行指令。二、分支程序 程序分支是通过条件转移指令实现的,即根据条程序分支是通过条件转移指令实现的,即根据条件对程序的执行进行判断、满足条件则进行程序件对程序的执行进行判断、满足条件则进行程序转移,不满足

9、条件就顺序执行程序。转移,不满足条件就顺序执行程序。 分支程序又分为单分支和多分支结构。分支程序又分为单分支和多分支结构。 多分支程序是首先把分支程序按序号排列,然后多分支程序是首先把分支程序按序号排列,然后按序号值进行转移。按序号值进行转移。二、分支程序 在在MCS-51指令系统中,通过条件判断实现单分指令系统中,通过条件判断实现单分支程序转移的指令有:支程序转移的指令有:JZ、JNZ、CJNE、DJNZ等。此外还有以位状态作为条件进行程序分支的等。此外还有以位状态作为条件进行程序分支的指令,如指令,如JC、JNC、JB、JNB、JBC等。使用等。使用这些指令可以完成这些指令可以完成0、1、

10、正、负,以及相等、不、正、负,以及相等、不相等作为各种条件判断依据的程序转移。相等作为各种条件判断依据的程序转移。 结构如图结构如图4-1所示。所示。 例子如例例子如例4-1所示。所示。例4-1例例4-1: 128种分支转移程序。种分支转移程序。功能:根据入口条件转移到功能:根据入口条件转移到128个目的地址。个目的地址。入口:(入口:(R3)=转移目的地址的序号转移目的地址的序号00H7FH。出口:转移到相应子程序入口。出口:转移到相应子程序入口。128个子程序首址JMP_128:MOV A,R3 RL A MOV DPTR,#JMPTAB JMP A+DPTRJMPTAB:AJMP ROU

11、T00 AJMP ROUT01 AJMP ROUT7F二、分支程序 说明:此程序要求说明:此程序要求128个转移目的地址个转移目的地址(ROUT00 ROUT7FH)必须驻留在与绝对转)必须驻留在与绝对转移指令移指令AJMP相同的一个相同的一个2KB存储区内。存储区内。 RL指令对变址部分乘以指令对变址部分乘以2,因为每条,因为每条AJMP指令指令占两个字节。占两个字节。图4-1 分支程序结构散转指令转向0分支转向1分支转向n-1分支转向n分支K=0K=1K=n-1K=n三、循环程序 在程序运行时,有时需要连续重复执行某在程序运行时,有时需要连续重复执行某段程序,可以使用循环程序。其结构包括段

12、程序,可以使用循环程序。其结构包括四部分:四部分: 1、置循环初值、置循环初值 2、循环体(循环工作部分)、循环体(循环工作部分) 3、修改控制变量、修改控制变量 4、循环控制部分、循环控制部分 其组织方式如图其组织方式如图4-2所示。所示。1、置循环初值 对于循环程序中所使用的工作单元,在循对于循环程序中所使用的工作单元,在循环开始时应置初值。环开始时应置初值。 例如,工作寄存器设置计数初值,累加器例如,工作寄存器设置计数初值,累加器A清清0,以及设置地址指针、长度等。,以及设置地址指针、长度等。2、循环体(循环工作部分) 重复执行的程序段部分,分为循环工作部重复执行的程序段部分,分为循环工

13、作部分和循环控制部分。分和循环控制部分。 循环控制部分每循环一次,检查结束条件,循环控制部分每循环一次,检查结束条件,当满足条件时,就停止循环,往下继续执当满足条件时,就停止循环,往下继续执行其他程序行其他程序3、修改控制变量 在循环程序中,不许给出循环结束条件。在循环程序中,不许给出循环结束条件。 常见的是计数循环,当循环了一定的次数常见的是计数循环,当循环了一定的次数后,就停止循环。后,就停止循环。 在单片机中,一般用一个工作寄存器在单片机中,一般用一个工作寄存器Rn作作为计数器,对该计数器赋初值作为循环次为计数器,对该计数器赋初值作为循环次数。每循环一次,计数器的值减数。每循环一次,计数

14、器的值减1,即修改,即修改循环控制变量,当计数器的置件为循环控制变量,当计数器的置件为0时,就时,就停止循环。停止循环。4、循环控制部分 根据循环结束条件,判断是否结束循环。根据循环结束条件,判断是否结束循环。 89C51可采用可采用DJNZ指令来自动修改控制变指令来自动修改控制变量并能结束循环。量并能结束循环。置初值循环体循环修改循环控制退出循环未完完(a)置初值循环体循环修改循环控制退出循环未完完(b)图4-2 循环组织方式流程图4.2 4.2 汇编语言源程序的编辑和汇编汇编语言源程序的编辑和汇编4.2.1 4.2.1 源程序编辑源程序编辑4.2.2 4.2.2 源程序的汇编源程序的汇编4

15、.2.3 4.2.3 伪指令伪指令4.2.1 4.2.1 源程序编辑源程序编辑 在微型计算机上,借助编辑软件,编在微型计算机上,借助编辑软件,编写或修改汇编语言源程序。如行编辑写或修改汇编语言源程序。如行编辑或屏幕编辑软件。或屏幕编辑软件。4.2.2 4.2.2 源程序的汇编源程序的汇编 汇编:将汇编语言源程序转换为机器码表汇编:将汇编语言源程序转换为机器码表示的目标程序的过程。对单片机有:示的目标程序的过程。对单片机有: 一、手工汇编一、手工汇编 二、机器汇编二、机器汇编 三、反汇编三、反汇编一、手工汇编 通过手工方式查指令编码表,逐个把助记通过手工方式查指令编码表,逐个把助记符指令符指令“

16、翻译翻译”成机器码,然后把得到的成机器码,然后把得到的机器码程序键入单片机,进行调试和运行。机器码程序键入单片机,进行调试和运行。 手工汇编的缺点:手工汇编的缺点: 1、偏移量的计算容易出错、偏移量的计算容易出错 2、程序的修改会引起后面指令地址的变、程序的修改会引起后面指令地址的变化,转移指令的偏移量也要重新计算。化,转移指令的偏移量也要重新计算。二、机器汇编 机器汇编是在计算机上使用交叉汇编程序机器汇编是在计算机上使用交叉汇编程序进行源程序的汇编。汇编工作由机器自动进行源程序的汇编。汇编工作由机器自动完成,最后得到以机器码表示的目标程序。完成,最后得到以机器码表示的目标程序。三、反汇编 将

17、二进制机器语言程序翻译成汇编语言程将二进制机器语言程序翻译成汇编语言程序的过程称反汇编。序的过程称反汇编。 汇编和反汇编的过程如图汇编和反汇编的过程如图4-3所示。所示。源程序(汇编语言)目标码(机器语言)汇编(汇编程序)反汇编(汇编程序)图4-3 汇编和反汇编过程4.2.3 4.2.3 伪指令伪指令 伪指令不是真正的指令,无对应的机器码,伪指令不是真正的指令,无对应的机器码,在汇编时不产生目标程序,只是用来对汇在汇编时不产生目标程序,只是用来对汇编过程进行某种控制。编过程进行某种控制。ORG 汇编起始命令 格式:格式:ORG 16位地址位地址 功能:规定该伪指令后面程序的汇编地址,即汇功能:

18、规定该伪指令后面程序的汇编地址,即汇编后生成目标程序存放的起始地址。例如:编后生成目标程序存放的起始地址。例如: ORG 2000HSTART:MOV A,#64H 规定了规定了START的地址是的地址是2000H,又规定了汇编后,又规定了汇编后的第一条指令码从的第一条指令码从2000H开始存放。开始存放。END 汇编结束指令 格式:格式:END 功能:通知汇编程序结束汇编。在功能:通知汇编程序结束汇编。在END之之后所有的汇编指令均不予以处理。后所有的汇编指令均不予以处理。EQU 赋值命令 格式:字符名称格式:字符名称 EQU 项(数或汇编符号)项(数或汇编符号) 功能:把功能:把“项项”赋

19、给赋给“字符名称字符名称”。 注意:字符名称不等于标号(其后没有冒号);注意:字符名称不等于标号(其后没有冒号);其中的项,可以是数,也可以是汇编符号。其中的项,可以是数,也可以是汇编符号。EQU赋值过的符号名可以用作数据、代码地址、位地赋值过的符号名可以用作数据、代码地址、位地址或一个立即数。可以是址或一个立即数。可以是8位的,也可以是位的,也可以是16位位的。的。 例如:例如:EQU 赋值命令例例1:AA EQU R1 MOV A,AA;AA代表工作寄存器代表工作寄存器R1例例2: A10 EQU 10DELY EQU 07EBH MOV A,A10;A10作为片内的一个直作为片内的一个直

20、接地址接地址 LCALL DELY;DELY作为一个作为一个16位子程位子程序的入口地址序的入口地址DATA 数据地址赋值命令 格式:字符名称格式:字符名称 DATA 表达式表达式 功能:与功能:与EQU类似,但有以下差别:类似,但有以下差别: 1、EQU定义的字符名必须先定义后使用,而定义的字符名必须先定义后使用,而DATA定义的字符名可以后定义先使用。定义的字符名可以后定义先使用。 2、用、用EQU伪指令可以把一个汇编符号赋给一个伪指令可以把一个汇编符号赋给一个名字,而名字,而DATA只能把数据赋给字符名。只能把数据赋给字符名。 3、DATA语句可以把一个表达式的值赋给字符名语句可以把一个

21、表达式的值赋给字符名称,其中的表达式应是可求值的。称,其中的表达式应是可求值的。DATA伪指令伪指令在程序中用来定义数据地址在程序中用来定义数据地址DB 定义字节命令 格式:格式:DB(项或项表)(项或项表) 功能:通知汇编程序从当前功能:通知汇编程序从当前ROM地址开始,地址开始,保留一个字或字节串的存储单元,并存入保留一个字或字节串的存储单元,并存入DB后的数据。后的数据。 注意:项或项表可以是一个字节,用逗号注意:项或项表可以是一个字节,用逗号隔开的字节串或括在单引号中的隔开的字节串或括在单引号中的ASCII字符字符串。串。 例如:例如:DB 定义字节命令 ORG 2000H DB 0A

22、3HLIST: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用于用于定义一个地址表。定义

23、一个地址表。 例如:例如:DW 定义字命令 ORG 1500HTABLE:DW 7234H,8AH,10H 经汇编后(经汇编后(1500H)=72H, (1501H)=34H, (1502H)=00H, (1503H)=8AH, (1504H)=00H, (1505H)=10H,DS 定义存储空间命令 格式:格式:DS 表达式表达式 功能:在汇编时,从指定地址开始保留功能:在汇编时,从指定地址开始保留DS之后之后表达式的值所规定的存储单元以备后用。表达式的值所规定的存储单元以备后用。 例如:例如:ORG 1000HDS 08HDB 30H,8AH汇编后,从汇编后,从1000H保留保留8个单元,然后从个单元,然后从1008H按按DB命令给内存赋值,即(命令给内存赋值,即(1008H)=30H (1009H)=8AHBIT 位地址符号命令 格式:字符名格式:字符名 BIT 位地址位地址 功能:把功能:把BIT后的位地址值赋给字符名。其中字后的位地址值赋给字符名。其中字符名不是标号,其后没有冒号,但字符名是必须符名不是标号,其后没有冒号,但字符名是必须的。的。 例如:例如: A1 BIT P1.0 A2 BIT 02H 汇编后,汇编后,P1口第口第0位的位地址位的位地址90H就赋给了就赋给了A1,而而A2的值则为的值则为02H。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁