单片机原理与应用及实验报告

上传人:人*** 文档编号:456644767 上传时间:2023-05-12 格式:DOC 页数:11 大小:126.50KB
返回 下载 相关 举报
单片机原理与应用及实验报告_第1页
第1页 / 共11页
单片机原理与应用及实验报告_第2页
第2页 / 共11页
单片机原理与应用及实验报告_第3页
第3页 / 共11页
单片机原理与应用及实验报告_第4页
第4页 / 共11页
单片机原理与应用及实验报告_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《单片机原理与应用及实验报告》由会员分享,可在线阅读,更多相关《单片机原理与应用及实验报告(11页珍藏版)》请在金锄头文库上搜索。

1、单片机原理与应用(二)第三章 单片机的指令系统及程序设计单片机的应用可归纳为是对单片机的内、外存储器进行“存取”的操作,而“输入输出”的操作是对P0、P1、P2、P3这四个与芯片外部引脚相连的专用存储器的“存取”。 “存取”操作是在存储器之间进行的,可以直接用存储器的地址,如18、35H也可以用专用的或自定义的变量名,如 A,R1, P3, Addr1,X1,ON。3.1 MCS-51单片机指令系统概述共有111条指令。指令长度:单字节有49条,双字节有45条,三字节有17条。执行时间:单周期指令有57条,双周期指令有52条,四周期指令有2条。有7种寻址方式,42种助记符,33种功能。指令可分

2、为三大类:1数据传送指令:MOV、MOVC、MOVX2运算指令: ADDC、SUBB、RLC、ANL、SETB、CLR3转移控制指令:LJMP、JB、JNB、JZ、CJNE、DJNZ、LCALL、RET指令格式:标号: 功能助记符 (目标操作数),(源操作数) ;注释 例 START: MOV R1,#25H ; 常数25H送给寄存器R1 MOV A,45H ; 地址45H单元中的内容送给寄存器A功能助记符也叫操作码。3.2 MCS-51单片机指令系统的寻址方式 立即(常数)寻址:MOV A,#18 ; 等价于C语言的A=18 表示为:A18MOV A,#3CH ; 等价于C语言的A=0X3C

3、 A3CH MOV DPTR,#25D8H 直接寻址: MOV A,18 ; 等价于C语言的A=数组名18 A(18)MOV A,5BH ; 等价于C语言的A=数组名5BH A(5BH) MOV DPH,62H ANL 40H,#50HLJMP 1234H 寄存器寻址: MOV A,R1 ; 等价于C语言的A=R1 AR1MOV 27H,SP 寄存器间接寻址:MOV A,R1 ; 等价于C语言的A=数组名R1 A(R1)MOVX A,R1 MOVX A,DPTR ; 等价于C语言的A=数组名DPTR A(DPTR)MOV R0,#56H ; 等价于C语言的数组名R0=0X56 (R0)56H

4、相对(PC)寻址: SJMP 0E4H ; 等价于C语言的 goto 标号;JZ -115 ; 等价于C语言的 if (A=0) goto 标号; 变址寻址:MOVC A,A+DPTR ; 等价于C语言的A=数组名A+DPTR A(A+DPTR)MOVC A,A+PC 位寻址: MOV C,25H C(25H) MOV 25H,C (25H)C SETB P1.0 P1.01 CLR P2.5 P2.50 SETB 37H (37H)1 应表示为:(26H).71 更确切。 因为: MOV 37H, #1 也表示为:(37H)1 3.3 MCS-51单片机指令系统的使用要点 3.3.1 会影响

5、标志位的指令PSW中的 C:进位 AC:半进位 OV:溢出 P:奇偶例:(-104)+(-117)= (10011000) + (10001011) 补码运算执行 MOV A, #98H 10011000 ADD A, #8BH 10001011 之后 A=23H=35, C=1, AC=1, OV=1, P=1 100100011关于溢出:指令进行算术运算时,是以补码进行的。 值的范围:-128+127,当运算的结果超出此范围时,OV=1 。例:(-5)+(-6)= (11111011) + (11111010)执行 MOV A, #0FBH 11111011ADD A, #0FAH +11

6、111010之后 A=F5H= -11, C=1, AC=1, OV=0, P=0 111110101 3.3.2 伪指令:提供汇编的控制信息。1. ORG 16位地址 ;指明下一条的地址 例1:ORG100H ;指明下一条指令的地址是100HLJMPMain1 ;这条指令从程序存储器地址的100H开始存放2. 标号: DB 单字节数据项表 ;针对程序存储器 例2: ORG 2000H MA:DB 68H,0F5H,128 ;MA2000H,(2000H)=68H,(2001H)=128 若执行指令 MOV DPTR,#MA ;等价于 MOV DPTR,#2000H CLR A ; A0MOV

7、C A,A+DPTR ;A(A+DPTR)=(0+2000H)=68H3. 标号: DW 双字节数据项表 ; 例3: ORG0F00H MA: DW68F5H,0234H4. 名字 EQU 表达式 ;给表达式的值或字符串取名这里的“名字”等同于高级语言中的变量名。高级语言中注重“变量”,而汇编语言注重“地址”。 例4:ABCEQU58H ; ABC58H DianHuoEQUP1.4 ; DianHuoP1.4指令 MOVA,ABC ; 等价于 MOV A,58H ;A(58H)指令 MOVA,#ABC ; 等价于 MOV A,#58H ;A58H 指令 SETBDianHuo ; 等价于 S

8、ETB P1.45. 名字 DATA 直接字节地址 ;给内存RAM单元取名 6. 名字 WDATA 直接字节地址 ;给外存RAM单元取名7. 名字 BIT 位地址 ;给可寻址的位单元取名例5: DianHuo EQUP1.4 ; DianHuoP1.4(或 DianHuo BITP1.4 ; DianHuoP1.4 ) 指令 SETBDianHuo ; 等价于 SETB P1.4BIT、DATA、WDATA是EQU的特例。8. 标号: END ;9. 标号: DS 表达式 ;空出若干个存储单元 3.3.3 指令系统的分类:共111条,可分为五大类。1. 数据传送指令:不影响C、AC、OV ,影

9、响P。1). 内部数据存储器RAM的传输指令 汇编指令 机器指令 MOV A,R5 11101r r r MOV A,65H 11100101 01100101 MOV A,#65H 11100100 01100101 MOV A,R1 1110011 i MOV R6,A (书上有错) MOV R3,82H 10101r r r 10000010 MOV R0,#7DH 01111r r r 01111101 MOV 15H,A ; (15H)A MOV 38H,R5 ; (38H)R5 MOV 6EH,R1 ; (6EH)(R1) MOV 53H,#8EH ; (53H)8EH例: K3E

10、QU 38H ; 请注意格式的对齐 MOV K3,R5 ; (K3)R5 MOV 0E3H,2AH MOV R0,A MOV R1,75H MOV R0,#3BH MOV DPTR,#15A3H ; DPTR15A3H PUSH 67H ; SPSP+1 , (SP)(67H) POP PSW ; PSW(SP), SPSP1 XCH A,R3 ; 字节交换 AR3 XCH A,27H ; A(27H) XCH A,R1 ; A(R1) XCHDA,R0 ; 字节的低4位交换,高4位不变 SWAPA ; A的高4位和低4位交换2). 累加器A与外部数据存储器RAM的传送指令 MOVX A,DP

11、TR ; A(DPTR) MOVX DPTR,A MOVX A,R1 ;A(P2R1) MOVX R0,A ;(P2R0) A3). 查表指令(对程序存储器ROM) MOVC A,A+PC MOVC A,A+DPTR ; A(DPTR+A)例:对内部RAM:MOV A,R0 ; R0的内容为表格中存放数据的地址。对外部RAM:MOVX A,R0 ; P2,R0 为存放数据的地址MOVX A,DPTR ; 对程序ROM:MOVC A,A+DPTR ;一般A=0,DPTR作为增量。 表中取出的值与指定的值(如字符B)比较、判别: CJNE A, B, L1或 CJNE A,#42H,L1 ; 若 A42H 则转移到L1执行。2. 算术操作指令1). 加法指令 :、会影响C、AC、OV 、P。 不带进位的加法运算 ADD

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

当前位置:首页 > 办公文档 > 工作计划

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