单片机原理及应用第3章_第1页
单片机原理及应用第3章_第2页
单片机原理及应用第3章_第3页
单片机原理及应用第3章_第4页
单片机原理及应用第3章_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

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

文档简介

1、 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计 3.1汇编语言概述 3.2 MCS-51指令系统简介 3.3汇编语言的编程方法 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用3.1汇编语言概述 3.1.1 汇编语言指令格式汇编语言指令格式 3.1.2 描述操作数的简记符号描述操作数的简记符号3.2 MCS-51指令系统简介 3.3汇编语言的编程方法 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用汇编语言汇编语言(Assem

2、bly Language)用助记助记(字字)符符代替操 作码,用地址符号代替地址码的一种面向机器的程序 设计语言;本章学习目标本章学习目标:了解汇编语言的一般规则,借助指令手册能读懂汇编程序。汇编语言特点汇编语言特点代码精炼、执行速度快,但不便于编写 较复杂的程序;汇编程序处理过程汇编程序处理过程输入源程序检查语法正确性(如有 语法错误,输出错误信息)翻译成二进制目标程序。 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用一条汇编语言指令中最多包含4个区段,其一般格式为: 标号标号: 操作码操作码 操作数操作数 ;注释注释标号(标识符)当前指令行的符号地址,

3、其值为 该指令的机器码首字节在ROM中的存放地址;标号由英文字母开头的16个字符组成,不区分大小写;标号与冒号(英文)可以同时省略。.0122H0123H0124H. xxH xxH xxH 74H 12HROMSTART 标号标号: 操作码操作码 操作数操作数 ;注释注释 START: MOV A,#12H ;机器码7412H 例如: 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用 标号标号: 操作码操作码 操作数操作数 ;注释注释操作码是指令的操作行为,由操作码助记字符操作码助记字符表征;51单片机共有42种操作码助记符,不区分大小写。MOV A,#1

4、2H ; move (传送)SETB P1.0 ; set bit (置位)CJNE A,R0, START ;compare and jump if not equal (比较跳转)举例: 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用 标号标号: 操作码操作码 操作数操作数 ;注释注释操作数是指令的操作对象,用操作数简记符表示,不区分大小写;操作数可以是3个、2个、1个或没有操作数;操作数大于1时要用(英文)逗号隔开。CJNE A,R0, START ;若AR0,转START ADD A,#10H ; A + 10H ACRL A ; A0RET ;子

5、程序返回举例: 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用 标号标号: 操作码操作码 操作数操作数 ;注释注释注释是对指令的解释性说明,用以提高程序的可读 性;可用任何文字或符号描述,可以省略;由(英文)分号开始,无需结束符号。MOV A,#12H ;立即数12HASETB P1.0 ; P1.01CJNE A,R0, START ;若AR0,转START 举例: 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用汇编语言中标示符标示符/十六进制地址十六进制地址/立即数立即数的区别方法:标示符标示符标号或汇编符号统称为

6、标识符,由英文字母 开头的16个字符组成。 例如 EAH,或C6A16进制地址进制地址若存储单元地址的最高位值9时,应加 前缀“0 ” ,以区别标识符。 例如 0EAH,或 5AH立即数立即数出现在指令中的常数叫做立即数,应加前缀 “ # ”以区别于地址 。 例如 #0EAH,或 #5AH 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用3.1汇编语言概述 3.1.1 汇编语言指令格式汇编语言指令格式 3.1.2 描述操作数的简记符号描述操作数的简记符号3.2 MCS-51指令系统简介 3.3汇编语言的编程方法 物理与材料科学学院 第3章单片机的汇编语言与程

7、序设计单片机原理及应用单片机原理及应用指令手册中,每条指令的操作数操作数却是以简记符号简记符号表示的。掌握简记符号简记符号规则便于阅读源程序(查指令手册)真实指令中一般都含有具体的操作数,例如: MOV A, R3 或 MOV A, #35H 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用序号序号 简记符号简记符号 简记符号的意义简记符号的意义 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用简记符号的使用练习 MOV 20H,#34H 以direct取代20H,以#data取代#34H 指令原型为 MOV direct

8、, #data MOV R0,A 以Ri取代R0,A保持不变 指令原型为 MOV Ri, A SJMP 30H 以rel取代30H 指令原型为 SJMP rel1 #data2 #data163 Rn4 Ri5 direct6 addr167 addr118 rel9 bit10 /11 $12 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用3.1汇编语言概述3.2 MCS-51指令系统简介 3.2.1 数据传送与交换类指令数据传送与交换类指令 3.2.2 算术运算类指令算术运算类指令 3.2.3 逻辑运算及移位类指令逻辑运算及移位类指令 3.2.4 控制

9、转移类指令控制转移类指令 3.2.5 寻址方式寻址方式 3.2.6 伪指令伪指令3.3汇编语言的编程方法 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用指令系统指令系统计算机中全部指令的集合51单片机共有111条指令,按功能功能可划分为四大类: 数据传送与交换类(31条) 算术运算类(24条) 逻辑运算类(34条) 转移控制类(22条)*也可将分散于上述四类之中的位操作类位操作类指令汇总为第 五大类指令指令指令CPU用于指挥功能部件完成某一指定动作的指示 和命令 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用可实现可实

10、现RAM、SFR和和ROM之间的数据互传或交换之间的数据互传或交换数据传送与交换类指令数据传送与交换类指令 (31条) 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用数据传送与交换类指令共有8种操作码:MOV用于访问片内RAMMOVX用于访问片外RAMMOVC用于访问程序存储器XCH和XCHD用于字节交换SWAP用于A内半字节交换PUSH和POP用于堆栈操作 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用数据传送类指令的基本通式为:

11、, 表示将源操作数源操作数(src)的内容传送给目的操作数目的操作数 (dest) ,传送后源操作数中内容不变。transfer具有三种具体形式:MOV数据在片内片内RAM范围内传送MOVX数据在A与片外与片外RAM之间传送MOVC数据在A与与ROM之间传送 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用单向箭头表示只能从源源到目的目的双向箭头表示源源和目的目的可以互换位置弧线箭头表示源源和目的目的相同(唯一)箭头线旁边的文字是相应的操作码基本规律基本规律:立即数和ROM地址只能作为源操作数(单向箭头);内外ROM与A的数据传送只能用MOVC操作码助记符;

12、片外RAM与A的数据传送只能用MOVX操作码助记符;PUSH、POP、SWAP只有1个操作数(弧线箭头);位数据传送只能在C(即Cy标志位)与bit间进行。数据传送目的和源的快捷记忆法 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用实例1:试分析并指出以下程序段运行后,21H单元的结果如何?MOV R1, #35HMOV A ,R1 MOV 21H,A【解】【解】分析思路如下: 将具体操作数还原为操作数简记符; 根据指令表查出相应指令功能; 推算出指令的执行结果。源程序源程序 还原简记符还原简记符指令功能指令功能推算结果推算结果MOV R1,#35H MO

13、V Rn,#data Rn#data R1 #35HMOV A,R1 MOV A,Rn A Rn A R1= #35HMOV 21H,A MOV direct,A directA 21H A= #35H答案答案:21H单元的结果为#35H 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用关注:关注: MOV A,R1 (机器码E9H)工作原理工作原理利用通用寄存器通用寄存器查找操作数的做法称为寄存器寻址寄存器寻址通用寄存器通用寄存器:Rn,A,B,CY和DPTR五种类型(一般不考虑A的作用,除非A是指令中唯一的操作数) 根据机器码E9H先找到片内RAM中R1

14、里存放的35H,然后将35H传送给A,即操作结果是通过寄存器R1得到的。 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用实例2:已知片内RAM44H单元为07H,试分析并指出以下程序运行后,21H单元的结果如何? MOV R0, #44H MOV A , R0 MOV 21H,A【解】【解】仿照上例的分析过程:源程序源程序还原简记符还原简记符指令功能指令功能推算结果推算结果MOV R0,#44H MOV Rn,#data Rn#dataR7#44HMOV A,R0MOV A,RiA(Ri)A44H = #07HMOV 21H,AMOV direct,Adi

15、rectA21HA= #07H答案答案:上述程序段执行后,21H单元的结果为#07H。 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用关注关注:MOV A,R0(机器码E6H)工作原理工作原理:根据机器码E6H先找到片内RAM中R0里存放的内容44H,然后以44H为RAM地址将其保存的内容07H传送给A。R0里存放的是操作数的地址,而不是操作数结果。利用寄存器作为地址指针地址指针间接查找操作数的做法称为寄存器间接寻址寄存器间接寻址可以进行间接寻址的寄存器称为间址寄存器 R0、R1和DPTR是51单片机仅有的三个间址寄存器 物理与材料科学学院 第3章单片机的

16、汇编语言与程序设计单片机原理及应用单片机原理及应用属于寄存器间接寻址方式的传送类指令 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用实例3:已知ROM 2040H内容为27H,试分析如下程序段并指出其功能。MOV DPTR,#2010H MOV A,#30H MOVC A,A+DPTRMOV 30H,A【解】仿照上例的分析过程:源程序还原简记符指令功能推算结果MOV DPTR,#2010HMOV DPTR,#data16DPTR#data16DPTR#2010HMOV A,#30HMOV A,#dataA#dataA#30HMOVC A,A+DPTRMOV

17、C A,A+DPTRA(A+DPTR) A(2040H)=27HMOV 30H,AMOVdirect,AdirectA30HA =27H答案答案:将ROM 2040H单元的内容送到片内RAM 30H单元中。 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用关注关注:MOVC A,A+DPTR(机器码93H)工作原理工作原理:根据机器码93H先找出A中存放的内容30H,再找出DPTR中存放的内容2010H,然后以这两项内容之和2040H为ROM地址,将其存放的内容27H交给A。 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应

18、用利用两个寄存器内容之和进行间接查找操作数的做法称为变址寻址变址寻址;A为变址寄存器,DPTR为基址寄存器;PC也可作为基址寄存器,相应指令为MOVC A,A+PC,可实现A(A+PC)的功能。MOVC A,A+DPTR也具有寄存器间接寻址功能,但该操作数的地址是利用A与DPTR两个寄存器内容之和间接取得的,A(A+DPTR) 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用3.1汇编语言概述3.2 MCS-51指令系统简介 3.2.1 数据传送与交换类指令数据传送与交换类指令 3.2.2 算术运算类指令算术运算类指令 3.2.3 逻辑运算及移位类指令逻辑运

19、算及移位类指令 3.2.4 控制转移类指令控制转移类指令 3.2.5 寻址方式寻址方式 3.2.6 伪指令伪指令3.3汇编语言的编程方法 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用算术运算类指令算术运算类指令 可实现加、减、乘、除和增可实现加、减、乘、除和增1、减、减1等运算功能等运算功能 (24条) 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用算术运算类指令共有8种操作码:ADD用于不带进位加法ADDC用于带进位加法SUBB用于带借位减法INC和DEC用于加1和减1MUL用于乘法DIV用于除法 DA用于十进制加

20、法调整 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用特点特点:除加1和减1外,都需以累加器A为目的操作数;一般都会影响PSW中的CY、AC、OV和P四个标志位。AC算术运算类指令快捷记忆法 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用实例4:试解读如下程序并说明其实现的主要功能MOV A,#34HADD A,#0E7HMOV 40H,AMOV A,#12HADDC A,#0FHMOV 41H,A【解】指令分析过程如下:源程序源程序推算结果推算结果MOVA,#34HA#34H ADDA,#0E7HA#34H+#0E7

21、H A=#1BH,CY=1MOV 40H,A40HA = #1BHMOVA,#12HA#12HADDC A,#0FHA#12H+#0FH+CY A=#22H, C= 0 MOV 41H,A41H A = #22H 答案答案:实现两个16位数(1234H与0FE7H)的加法运算,并将结果221BH存入片内RAM 40H41H单元。 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用关注关注:MOV A,#34H(机器码7434H)工作原理工作原理:根据机器码7434H将指令中包含的立即数34H送到累加器A中。这类指令的操作数就存在于指令自身之中;这种以指令中存在

22、的立即数(#data或#data16)作为操作数的做法称为立即寻址立即寻址。 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用实例5:试解读如下程序并说明其功能MOVA,#17HMOVB,#68HMULABMOV30H,AMOV31H,B【解】分析过程如下:源程序源程序推算结果推算结果MOV A,#17HA#17HMOV B,#68HB#68HMUL ABABBA B=#9 A=#58HMOV 30H,A30HA = #58HMOV 31H,B31HB = #9答案答案:实现两个8位数(17H与68H)的乘法运算,并将乘积958H的高8位和低8位分别存入片内

23、RAM 31H和30H单元。 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用3.1汇编语言概述3.2 MCS-51指令系统简介 3.2.1 数据传送与交换类指令数据传送与交换类指令 3.2.2 算术运算类指令算术运算类指令 3.2.3 逻辑运算及移位类指令逻辑运算及移位类指令 3.2.4 控制转移类指令控制转移类指令 3.2.5 寻址方式寻址方式 3.2.6 伪指令伪指令3.3汇编语言的编程方法 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用逻辑运算及移位类指令逻辑运算及移位类指令 可实现可实现与、或、异或、求反、置与

24、、或、异或、求反、置1、清、清0、移位等、移位等功能功能(34条) 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用逻辑运算及移位类指令共有10种操作码:ANL用于逻辑与运算ORL用于逻辑或运算XRL用于逻辑异或运算SETB和CLR用于置1和清0CPL用于取反RL和RR于循环左移和循环右移 RLC和RRC用于带C循环左移和带C循环右移 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用特点特点:字节运算以A为目的操作数(#data与direct的运算例外),位运算以C为目的操作数。CLRCPLCLRSETB逻辑运算指令快捷记

25、忆法 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用特点特点:只能针对A进行操作 左移1位相当于乘2,右移1位相当于除2 。功能功能:对累加器A进行循环移位操作 循环移位指令的四种移位关系 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用实例6:试解读如下程序并说明其功能。 ANLA,#0FHANLP1,#0F0HORLP1,A逻辑或的特性逻辑或的特性:x 0 = x(屏蔽屏蔽);x 1 = 1(置位置位)逻辑与的特性逻辑与的特性:x 0 = 0(清零清零);x 1 = x(屏蔽屏蔽)【解】分析过程如下:源程序源程序推算

26、结果推算结果ANL A,#0FHAA00001111B A = #0000 xxxxBANL P1,#0F0HP1P111110000B P1= #XXXX0000BORL P1,AP1P1A P1= #XXXXxxxxB答案答案:把累加器A的低4位送入P1口的低4位,而P1口的高4位保持不变,即实现了A和P1的数据组合。 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用实例7:试解读如下程序并说明其功能。RL A MOV R0,A RL A ADD A,R0【解】本例中用到的RL A指令是不带C的循环左移源程序源程序推算结果推算结果RL A循环左移一位(相

27、当于A2)MOV R0,AR0 A(保存 A2的值)RL A再次循环左移一位(相当于A4)ADD A,R0A A+R0(相当于 A2 + A4)= A6答案答案:利用移位指令实现了累加器A的内容乘6 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用实例8:试解读如下程序并说明其功能。MOV A,40HCPL AINC AMOV 40H,A【解】分析过程如下:源程序源程序推算结果推算结果MOV A,40HA 40HCPL AA /AINC AA A+1MOV 40H,A40H A 答案答案:对片内RAM 40H单元中的内容取反加1,结果仍送回40H单元 。 物

28、理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用关注关注:MOV 40H,A(机器码F540H)工作工作原理原理:根据机器码F540H将A中存放的内容1BH存放到RAM的40H单元。MOV 40H,A指令的操作数地址操作数地址就存在于指令自身中;以指令中存在的片内RAM地址(direct)作为操作数地址的做法称为直接寻址直接寻址;direct是片内RAM的低128字节地址,也可是SFR名称或SFR的字节地址;例如MOV P0,A与MOV 80H,A都属于直接寻址。 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用3.1汇编语

29、言概述3.2 MCS-51指令系统简介 3.2.1 数据传送与交换类指令数据传送与交换类指令 3.2.2 算术运算类指令算术运算类指令 3.2.3 逻辑运算及移位类指令逻辑运算及移位类指令 3.2.4 控制转移类指令控制转移类指令 3.2.5 寻址方式寻址方式 3.2.6 伪指令伪指令3.3汇编语言的编程方法 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用控制转移类指令控制转移类指令 通过改变程序计数器通过改变程序计数器PC值值,实现程序转移功能,实现程序转移功能 (22条) 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及

30、应用控制转移类指令共有18种操作码: AJMP、SJMP、LJMP、JMP用于无条件转移 ACALL和LCALL用于子程序调用 RET和RETI用于子程序和中断返回 JZ、JNZ、CJNE和DJNZ用于字节条件转移 JC、JNC、JB、JNB和JBC用于位条件转移 NOP用于空操作 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用功能功能:根据转移地址修改PC当前值;转移地址转移地址:LJMP16位;AJMP11位; SJMP8位; JMP16位特点特点:前三项都可用语句标号代替具体地址; (例如 LJMP START 或 SJMP ) 第四项为变址寻址转移

31、指令 PCA+DPTR无条件转移 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用功能功能:根据转移地址(rel )修改PC当前值;特点特点:rel值为-128127,可用语句标号代替; 例如 JC SMALL以 rel表示操作数的存在方式相对寻址相对寻址 条件转移指令快捷记忆法 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用实例9:编程实现如下功能: 比较片内RAM的30H和40H单元中两个无符号数的大小,并将大数存入50H,小数存入51H,若两数相等则使位单元7FH置1。【解】由于指令CJNE具有利用减法判断双方关系

32、且影响C标志位的特点,故可采用先根据CJNE进行一次跳转,然后再根据C进行二次跳转的做法。 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用实例9 仿真程序 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用关注关注: SJMP FINISH(机器码800EH)这种利用偏移量rel修正转移目标地址的做法称为相对寻址相对寻址 工作原理工作原理:根据机器码800EH,由PC当前值0009H和指令中含有的偏移偏移量量0EH得到PC修正后的目标地址0017H(=0009H+0EH),从而引导程序转向FINISH语句行。* rel值由

33、汇编系统根据行号FINISH算出 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用实例10:编程实现如下功能:将存放在片内RAM 20H单元开始的10个数连续传送到片外RAM 50H单元开始的地址处。Rn 0 ?是 PCPC+rel 顺序执行下条指令 Rn Rn - 1【解】 思路分析:将R1作为指向外部RAM的低8位地址(50H起)寄存器,P2作为指向外部RAM的高8位地址(00H)寄存器。利用Rn作为循环计数器,配合DJNZ指令进行操作。 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用 MOV R0,#20H ; 片

34、内RAM数据块指针R0赋初值 MOV R1,#50H ; 片外RAM数据块指针R1赋初值 MOV R3,#0AH ;计数器赋初值 MOV P2,#0; 高8位地址由P2提供,赋初值0LAB: MOV A,R0 ; 利用A做中间交换单元 MOVX R1,A ;传送到片外RAM INC R0; 指针R0加1刷新 INC R1 ; 指针R1加1刷新 DJNZ R3,LAB ; R3减1,判断循环是否结束利用DPTR进行片外RAM寻址 MOV R0,#20H ;片内RAM数据块指针R0赋初值 MOV DPTR,#50H ;片外RAM数据块指针DPTR赋初值 MOV R3,#0AH ;计数器赋初值LAB

35、: MOV A,R0 ;利用A做中间交换单元 MOVX DPTR,A ;传送到片外RAM INC R0 ; 指针R0加1刷新 INC DPTR ; 指针DPTR加1刷新 DJNZ R3,LAB ;R3减1,判断循环是否结束利用R1和P2进行片外RAM寻址 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用实例11:试分析如下延时子程序延时子程序可实现的延时量(设系统采用12MHz晶振)。 DEL50: MOV R7,#200DEL1: MOV R6,#125DEL2: DJNZ R6,DEL2 DJNZ R7,DEL1 RET;循环125次;循环200次 ;返

36、回语句【解解】12MHz晶振时对应的机器周期为1s。查手册可知,指令DJNZ需要占用机时为2s,MOV为1 s ,则改子程序的总延时量应为: (2125+1+2)200+1 = 50.601ms答案答案:该子程序的软件延时量约为50毫秒。 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用实例12:编程将A中的并行数据转换为串行数据,并通过P1.0口输出。要求数据输出时高位在先。 MOV R2,#8;计数器初值CLR C;CY清零NEXT: RLC A ;数据移位至CY中 MOV P1.0,C ;从P1.0输出串行数据 DJNZ R2,NEXT;若转换未完,继

37、续【解】利用带进位循环和循环控制指令可实现并/传转换 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用关注关注:CLR C(机器码C3H)这种利用位地址bit作为指令操作数的做法称为位寻址;位寻址;bit可以是片内RAM可位寻址区内的位地址,也可以是SFR中的位地址或位名称;该程序的第二和第四条指令都属于位寻址方法。工作原理工作原理:根据机器码C3H,将进位标志CY的值清零。由于CY具有0D7H位地址,因而CLR C与CLR 0D7H具有同等功能。 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用3.1汇编语言概述3.2

38、MCS-51指令系统简介 3.2.1 数据传送与交换类指令数据传送与交换类指令 3.2.2 算术运算类指令算术运算类指令 3.2.3 逻辑运算及移位类指令逻辑运算及移位类指令 3.2.4 控制转移类指令控制转移类指令 3.2.5 寻址方式寻址方式 3.2.6 伪指令伪指令3.3汇编语言的编程方法 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用寻址方式是对操作数存在规律的归纳,一条指令究竟属于哪种寻址方式往往并不重要,也不会影响它的使用,因而不必过意追究。51单片机共有七种寻址方式: 直接寻址、寄存器寻址、寄存器间接寻址、立即寻址、 变址寻址、位寻址、相对寻

39、址。寻址方式越多,单片机的功能就越强;CPU取得操作数的方法称为寻址方法 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用(1)直接寻址)直接寻址 指令中包含direct形式操作数的寻址方式称为直接寻址direct既可以是片内RAM的低128字节地址,也可以是除A、B、C、DPTR外的其它特殊功能寄存器名。 MOV 40H, A ;指令原形 MOV direct,A 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用(2)寄存器寻址)寄存器寻址 指令中包含通用寄存器通用寄存器形式操作数的寻址方式称为寄存器寻址通用寄存器只能是

40、Rn,A,B,CY和DPTR五种类型MOV A,R1 ;指令原形 MOV A,Rn 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用(3)寄存器间接寻址)寄存器间接寻址 MOV A, R0 ;指令原形 MOV A,Ri指令中包含“间址寄存器间址寄存器”形式操作数的寻址方式称为寄存器间接寻址间址寄存器只能由R0、R1或DPTR三个寄存器兼任 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用MOV A, #44H;指令原形 MOV A,#data(4)立即寻址)立即寻址 指令中包含#data或#data16形式操作数的寻址方式

41、称为立即寻址 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用(5)变址寻址)变址寻址 MOVC A, A+DPTR ;A(A+DPTR)指令中包含“A+基址寄存器基址寄存器”形式操作数的寻址方式称为变址寻址方式基址寄存器只能由DPTR或PC兼任兼任 MOVC A,A+PCMOVC A,A+DPTRJMP A, A+DPTR仅有3条变址寻址指令 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用MOV C, 2FH ; 指令原形 MOV C,bit SETB 0E0H ; 指令原形 SETB bitCLR P1.0 ; 指令

42、原形 CLR bit(6)位寻址)位寻址 指令中包含bit形式操作数的寻址方式称为位寻址方式bit形式的位地址可以是片内RAM中的位地址,也可以是SFR中的位地址或位名称 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用(7)相对寻址)相对寻址 SJMP FINISH; 指令原形 SJMP rel指令中包含rel形式操作数的寻址方式称为相对寻址方式rel可以是片内RAM或ROM地址偏移量的形式,也可以是标号的形式。 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用3.1汇编语言概述3.2 MCS-51指令系统简介 3.2.

43、1 数据传送与交换类指令数据传送与交换类指令 3.2.2 算术运算类指令算术运算类指令 3.2.3 逻辑运算及移位类指令逻辑运算及移位类指令 3.2.4 控制转移类指令控制转移类指令 3.2.5 寻址方式寻址方式 3.2.6 伪指令伪指令3.3汇编语言的编程方法 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用3.2.5.伪指令伪指令 汇编语言指令的两类指令:n硬指令硬指令(指令性语句)汇编后可以产生机器 码的指令,如前介绍的111条指令;n伪指令伪指令(指示性语句)用于指示汇编系统软件要完成的操作 ,一般不产生机器码常用的伪指令: ORG、END、EQU、

44、DATA、BIT、DB 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用 MCS-51常用伪指令 伪指令名称格式功能描述ORG(Oringin)程序起始地址ORG 16位地址用于定义汇编程序或数据在ROM中存放的起始地址EQU(Equate)等值指令标识符 EQU 数或汇编符号用于将一个数值或汇编符号赋给该标示符DATA(Data)数据地址赋值标识符 DATA 内存字节地址用于将一个内部 RAM 的地址赋给该标示符BIT(Bit)位地址赋值标识符 DATA 位地址或位名称用于将一个位地址或位名称赋给该标示符DB(Define Byte)定义字节标号: DB

45、用于把项或项表中的字节(8位)数值依次存入标号开始的存储单元中END(End)结束汇编END用于指示汇编源程序段结束 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用(1)ORG(= origin)格式:ORG xxxx(16位地址)功能:用于定义汇编程序或数据在ROM中存放的首地址举例: ORG 100H START: MOV A,R4 MOV B,A : ORG后面第1条指令的首地址为100H,即START的值为100H。 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用(2)EQU(= equate)格式:标示符标示

46、符 EQU 数值或汇编符号数值或汇编符号功能:用于将一个数值或汇编符号赋给该标示符举例:ADDR EQU 2000H ;将2000H赋予 ADDR ADDR EQU MEM2 ;将MEM2赋予 ADDR说明说明: 第2条语句的汇编符号MEM2必须是已赋值过的 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用(3)DATA(= data)格式:标示符标示符 DATA 内部内部RAM地址或表达式地址或表达式功能:用于将一个内部 RAM 的地址赋给该标示符举例: COUNT DATA 50H ;将50H赋予 COUNT COUNT EQU 50H ;将50H赋予

47、COUNTEQU与与DATA区别区别: 1)EQU须先定义后使用,而DATA可无须如此。 2)EQU可用于汇编符号,而DATA不能。 3)DATA可用于表达式,而EQU不行。 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用(4)BIT(= bit)格式:标示符标示符 BIT 位地址或位名称位地址或位名称功能:用于将一个位地址或位名称赋给该标示符举例: KEY1 BIT P1.0 ;将P1.0赋予KEY1 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用(5)DB(= define byte)格式:标号标号: DB n1,

48、n2,ni功能:用于定义以字节为单位以字节为单位的常数表规则: ”ni”按顺序存在标号地址开始的单元中; 常数之间用英文逗号分开,最后一个不要逗号例如: JPH: DB 12H,20H,35H,40H,58H 表示字节常数12H将放置在JPH语句标号对应的ROM地址处,其它常数依此顺延排列 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用(6)END(= end)格式:END功能:用于表示汇编程序到此结束说明:放在源程序的最后一行,并只允许有一个END 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用3.1汇编语言概述 3.2指令系统简介 3.3汇编语言的编程方法 物理与材料科学学院 第3章单片机的汇编语言与程序设计单片机原理及应用单片机原理及应用汇编语言程序设计步骤汇编语言程序设计步骤 分析问题,确定算法或解题思路 画程序流程图编写汇编程序程序调试与修改用汇编语言进行程序设计的过程和用高级语言进行程序设计的过程类似,一般需要经过以下几个步

温馨提示

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

评论

0/150

提交评论