51单片机学习资料ppt课件

上传人:我*** 文档编号:144770597 上传时间:2020-09-14 格式:PPT 页数:67 大小:444KB
返回 下载 相关 举报
51单片机学习资料ppt课件_第1页
第1页 / 共67页
51单片机学习资料ppt课件_第2页
第2页 / 共67页
51单片机学习资料ppt课件_第3页
第3页 / 共67页
51单片机学习资料ppt课件_第4页
第4页 / 共67页
51单片机学习资料ppt课件_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《51单片机学习资料ppt课件》由会员分享,可在线阅读,更多相关《51单片机学习资料ppt课件(67页珍藏版)》请在金锄头文库上搜索。

1、单片微机原理及应用教学课件,第二讲:指令与编程,本讲重点: 寻址方式; MCS-51指令集; 伪指令; 汇编语言与简单程序设计.,单片微机原理及应用教学课件,第三章 指令系统及程序设计(P.43),51系列单片机指令集含有111条指令,每条指令在执行时要花去一定的时间,以机器周期为单位。按指令执行时间分类: 单周期(64条);双周期(45条);4周期(2条),按指令的功能分类,可分为5大类: 数据传送类(29条);算术运算类(24条) 逻辑运算及移位类(24);控制转移类(17条) 位操作类(17条),每条指令在程序存储器ROM中占据一定的空间,以字节为单位。按指令所占字节数分类: 单字节(4

2、9条);双字节(46条);3字节(16条),单片微机原理及应用教学课件,ASM-51指令的格式(P.44),方括符 表示可选项 标号代表指令所在地址,1-8个字母/数字,“:”结尾 操作码就是指令功能助记符,指令实体 目的操作数 源操作数 注释,以“;”开头,标号:操作码 目的操作数,源操作数;注释,单片微机原理及应用教学课件,51单片机指令的寻址方式(P.45),寄存器寻址 立即寻址 寄存器间接寻址 直接寻址 变址寻址(基址寄存器+变址寄存器间接寻址) 相对寻址 位寻址,寻址方式:指令按地址获得操作数的方式 七种寻址方式,一条指令可能含多种寻址方式,单片微机原理及应用教学课件,寄存器寻址(P

3、.45) 从寄存器中读取操作数或存放操作数进寄存器 例:MOV A,B ; (A) (B) MOV 30H,R0 ;(30H)(R0) MOV A,R1 ; (A) (R1),单片微机原理及应用教学课件,立即寻址(P.45) 操作数直接就出现在指令中 例:MOV A,#64H ;(A) 立即数 64H ADD A,#05H ;(A)(A)+立即数 05H 注意:符号“#”表明其后跟的是立即数, 立即数就是数字量本身。,单片微机原理及应用教学课件,寄存器间接寻址(P.46) 寄存器中的内容是一个地址,由该地址单元 寻址到所需的操作数,注意: 1)“间接”表示某寄存器中的“内容”只是一个“单元地址

4、”,这个地址单元中存放的数据才是要找的“操作数”。 2)符号“”表示“在”,其含义与读音皆同“at”。,例: MOV R1,#30H ;(R1) 立即数30H , MOV R1,#30H ;(R1) 立即数30H MOV R1,#0FH ;(30H)立即数0FH MOV A,R1 ;(A)(30H)=#0FH,单片微机原理及应用教学课件,直接寻址(P.46) 指令中直接给出了操作数所在单元的地址或名称 例:MOV R1,1FH ;(R1) (1FH) MOV 30H,4AH ;(30H)(4AH),在本单片机中规定:访问特殊功能寄存器SFR只能采用直接寻址方式。例如: MOV A, SP ;

5、(A) (SP) MOV A, 81H ; (A) (SP) MOV P1, #5AH ; (P1)(#5AH) MOV 90H,#5AH ; (P1)(#5AH) MOV B, 30H ; (B) (30H),SFR的地址见 P.33表,相同,相同,单片微机原理及应用教学课件,在本单片机中访问特殊功能寄存器SFR只能采用直接寻址方式的原因:SFR分布在80H0FFH范围内,而52系列单片机有256字节的片内RAM,其中的80H0FFH的RAM与SFR所占地址重叠。,MOV A, 90H 等效于 MOV A, P1 属直接寻址 MOV A, R0 ;事先已知 (R0) = #90H 执行的操作

6、:A (90H) 属寄存器间接寻址, 随意写的指令如:MOV A, 85H 则是非法的!,于是规定: 80H0FFH范围内的RAM只能用寄存器间接寻址方式,而SFR只能用直接寻址方式。从而解决了地址冲突的问题。例如:,单片微机原理及应用教学课件,存储器配置(片内RAM),89C51片内RAM 128字节(00H7FH) 89C52片内RAM 256字节(00H0FFH),00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有 的RAM区,普通RAM区,位寻址区,工作寄存器区,SFR分布在80H-FFH 其中92个位可位寻址,80H,FFH,89C51 128字节,89C

7、52 256字节,只能直接寻址,只能寄存器间接寻址,单片微机原理及应用教学课件,变址寻址(P.47) 也称为: 基址寄存器+变址寄存器间接寻址,以16位的地址指针寄存器DPTR或 16位的PC寄存器为基址寄存器,以累加器 A 为变址寄存器,两者中的“内容”形成一个16位的“地址”,该“地址”所指的存储单元中的内容才是操作数。,P47例:设:A中已存有#A4H,DPTR中已存有#1234H MOVC A,A+DPTR;(A)(A)+(DPTR) 操作:将A4H+1234H=12D8H单元中的数放进累加器A,单片微机原理及应用教学课件,相对寻址(P.47) 当前PC值加上指令中规定的偏移量 rel

8、,构成实际的操作数地址 例: SJMP rel 操作:跳转到的目的地址 = 当前16位PC值 + rel,注意: 1)“当前PC值”指程序中下一条指令所在的首地址, 是一个16位数; 2)符号“rel”表示“偏移量”,是一个带符号的单字 节数,范围是:-128+127(80H7FH),在实际编程中,“rel” 通常用标号代替,单片微机原理及应用教学课件,位寻址(P.48) 指令中直接给出了操作数所在的位地址。 例: CLR P1.0 ;(P1.0) 0 SETB ACC.7 ;(ACC.7) 1 CPL C ;( C ) NOT( C ),注意: 1)位地址里的数据只可能是一个 0 或 1 2

9、)有的位地址十分明确,如 P1.0, ACC.7等, 有的位地址则“不太明确”,如: MOV A,17H ; (A)(17H),17H是字节地址 MOV ACC.0,17H ;(ACC.0)(17H),这里ACC.0 是位地址所以该指令中的17H是22H单元的第7位,单片微机原理及应用教学课件,片内RAM中有128个位可按位寻址的位,位地址:00H7FH分布在:20H2FH单元; 另外,在SFR中还有92个位可按位寻址,00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有 的RAM区,普通RAM区,位寻址区,工作寄存器区,27H,22H,21H,20H,26H,24H

10、,25H,23H,28H,07 06 05 04 03 02 01 00,0F 0E 0D 0C 0B 0A 09 08,17 16 15 14 13 12 11 10,1F 1E 1D 1C 1B 1A 19 18,27 26 25 24 23 22 21 20,2F 2E 2D 2C 2B 2A 29 28,37 36 35 34 33 32 31 30,3F 3E 3D 3C 3B 3A 39 38,47 46 45 44 43 42 41 40,2FH,7F 7E 7D 7C 7B 7A 79 78,位地址,总共128个可按位寻址的位,单元地址,17,D7 D6 D5 D4 D3 D2

11、 D1 D0,单片微机原理及应用教学课件,位寻址(P.48) 指令中直接给出了操作数所在的位地址。 例: CLR P1.0 ;(P1.0) 0 SETB ACC.7 ;(ACC.7) 1 CPL C ;( C ) NOT( C ),注意: 1)位地址里的数据只可能是一个 0 或 1 2)有的位地址十分明确,如 P1.0, ACC.7等, 有的位地址则“不太明确”,如: MOV A,17H ; (A)(17H),17H是字节地址 MOV ACC.0,17H ;(ACC.0)(17H),这里ACC.0 是位地址所以该指令中的17H是22H单元的第7位,单片微机原理及应用教学课件,MCS-51指令集

12、,功能分五类,共111条指令,单片微机原理及应用教学课件,MCS-51指令集(五大类功能)P.49页,数据传送类指令: (29条) 算术运算类指令: (24条) 逻辑运算及移位类指令: (24条) 控制转移类指令: (17条) 位操作(布尔操作)类指令:(17条),单片微机原理及应用教学课件,内部存储器间传送: (MOV16条) 外部数据存储器与累加器间传送: (MOVX4条) 程序存储器向累加器传送: (MOVC2条) 数据交换:(XCH,XCHD,SWAP5条) 堆栈操作: (PUSH,POP2条),(一)数据传送类指令(5种/29条) P.49,见P.49的表32,单片微机原理及应用教学

13、课件,Acc 累加器,Direct 直接寻址,Ri 间接寻址,Rn 寄存器,#data 立即数,Rn: R0R7 Ri: R0,R1 #data:8位立即数 #data16:16位立即数 direct:直接地址 rel: 8位带符号偏移量,(一)数据传送类指令(5种/29条),内部存储器间传送指令 (16条): MOV 类指令的操作方向总是后面的 操作数 指向前面的操作数! 例:MOV A,30H (A)(30H),单片微机原理及应用教学课件,数据传送类指令(续) P.52,外部数据存储器与累加器间传送 (4条): MOVX类指令可在累加器与以DPTR或Ri所代表的外部 RAM 之间进行数据传

14、送。,例如: MOVX A, DPTR (A) (DPTR) MOVX A, Ri (A) (Ri) MOVX DPTR, A (DPTR) (A) MOVX Ri, A (Ri) (A),单片微机原理及应用教学课件,程序存储器向累加器传送指令(2条): MOVC A,A+DPTR MOVC A,A+PC 通常称为查表指令,寻址方式属: “基址寄存器 + 变址寄存器间接寻址”,数据传送类指令(续) P.52,A+DPTR或A+PC指向程序存储器中的某单元。拟传送给累加器ACC 的数据就是程序中事先写进去的表格数据。这些表格数据往往用伪指令 DB,DW 等定义在程序中。,单片微机原理及应用教学课

15、件,数据传送类指令(续),数据交换指令(5条): P.53 XCH A,direct (字节互换) XCH A,Ri (字节互换) XCH A,Rn (字节互换) (A) (direct)或(Ri),或(Rn),XCHD A,Ri 累加器 Acc的低4位与(Ri)的低4位互换,各自的高4位不变,SWAP A 累加器 Acc的低4位与自身的高4位互换,单片微机原理及应用教学课件,堆栈操作指令(2条): P.54,PUSH压栈指令,POP 弹栈指令,堆栈区由特殊功能寄存器堆栈指针SP 管理 堆栈区可以安排在 RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,而是放在RAM区的靠后的位置 堆栈总是指向栈顶 通常PUSH与POP两条指令成对使用,数据传送类指令(续),单片微机原理及应用教学课件,例如:设(A)=7BH; (35H)=11H 并且知道(SP)60H PUSH ACC ;(61H) #7BH PUSH 35H ;(62H) (35H) 即:(62H) #11H,POP ACC ;(A) (62H) 即:(A) #11H POP 5AH ;(5AH) (61H) 即:(5AH) #7BH,单片微机原理及应用教学课件,(二)算术运算类指令(6种/24条) P.54,加法运算: (ADD4条) 带进位加法运算: (ADDC

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号