单片机课件第二_第1页
单片机课件第二_第2页
单片机课件第二_第3页
单片机课件第二_第4页
单片机课件第二_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

1、引言引言2.12.1 寻址方式寻址方式2.22.2 数据传送与交换指令数据传送与交换指令2.3 2.3 算术运算和逻辑运算指令算术运算和逻辑运算指令2.42.4 控制转移指令控制转移指令2.52.5 位操作指令位操作指令2.62.6 本章小结本章小结程序是如何进程序是如何进单片机的?单片机的?74FE7807F590 23110B D8F97FC8 7EFA DEFEDFFA22 编程器编程器 标号标号 : 操作码操作码 操作数操作数 ; 注释注释 RnRn:工作寄存器中的寄存器工作寄存器中的寄存器R0R0、R1R7R1R7之一之一工作寄存器中的寄存器工作寄存器中的寄存器R0R0或或R1R18

2、 8位立即数位立即数1616位立即数位立即数8 8位直接字节地址(片内位直接字节地址(片内RAMRAM或或SFRSFR地址)地址)间接寻址寄存器前缀间接寻址寄存器前缀片内片内RAMRAM或或SFRSFR的位地址的位地址1111位目的地址位目的地址1616位目的地址位目的地址 补码形式的补码形式的8 8位地址偏移量。偏移范围为位地址偏移量。偏移范围为-128-128127127位操作指令中,该位求反后参与操作,不影响该位位操作指令中,该位求反后参与操作,不影响该位片内片内RAMRAM的直接地址或寄存器的直接地址或寄存器相应地址单元中的内容相应地址单元中的内容立即寻址立即寻址直接寻址直接寻址寄存器

3、寻址寄存器寻址寄存器间接寻址寄存器间接寻址变址寻址变址寻址相对寻址相对寻址位寻址位寻址(Immediate Addressing)(Immediate Addressing) 指令中直接给出操作数的寻址方式称为指令中直接给出操作数的寻址方式称为 立即数用一个前面加立即数用一个前面加“ ”号的号的8 8位数或位数或1616位数表示,位数表示,存放在存放在中。中。 指令的机器码中立即数在操作符之后,因此立即寻指令的机器码中立即数在操作符之后,因此立即寻址的指令多为二字节或三字节指令。址的指令多为二字节或三字节指令。(Direct Addressing)(Direct Addressing)指令中直

4、接给出操作数的字节地址(指令中直接给出操作数的字节地址(dirdir)的寻址方)的寻址方式称为式称为内部数据存储器、内部数据存储器、SFRSFR、位寻址空间、位寻址空间(Register Addressing)(Register Addressing)以通用寄存器的内容为操作数的寻址方式称为以通用寄存器的内容为操作数的寻址方式称为工作寄存器工作寄存器R0R0R7R7、累加器、累加器A A、寄存器、寄存器B B、数据指、数据指针针DPTRDPTR。 R0MOV A , R0MOV A , R0 XX 40H40H A工作寄存器就是内存单元的一部分,如果我们工作寄存器就是内存单元的一部分,如果我们

5、选择工作寄存器组选择工作寄存器组0 0,则,则R0R0就是就是RAMRAM的的00H00H单元,那么这样一单元,那么这样一来,来,MOV AMOV A,00H00H 和和 MOV AMOV A,R0R0不就没什么区别了吗?不就没什么区别了吗?(Register Indirect Addressing)(Register Indirect Addressing)以寄存器中的内容为地址,该地址中的内容为操作数的寻以寄存器中的内容为地址,该地址中的内容为操作数的寻址方式称为址方式称为片内片内RAMRAM(采用(采用R0R0,R1R1),),MOVMOV指令指令 片外片外RAMRAM(采用(采用R0R

6、0,R1R1或或DPTR DPTR ),),MOVXMOVX指令指令R0R0,R1-8R1-8位地址,片内低位地址,片内低128128字节或片外(由字节或片外(由P2P2口提供高口提供高8 8位外部位外部RAMRAM地址)地址)DPTR-16DPTR-16位,片外位,片外64KB64KB(Base-Register-plus-Index-Register-Indirect (Base-Register-plus-Index-Register-Indirect Addressing)Addressing)以基址寄存器以基址寄存器PCPC或或DPTRDPTR中内容加上变址寄存器(累加器中内容加上变

7、址寄存器(累加器A A)之和形成操作数地址的寻址方式称为之和形成操作数地址的寻址方式称为这种寻址方式主要用于查表操作,只有读操作无写操作,这种寻址方式主要用于查表操作,只有读操作无写操作,共有以下三条变址寻址指令。共有以下三条变址寻址指令。 操作数在程操作数在程序存储器中序存储器中E0A2040H 9320E0H 472041H DPH 20DPL 00ALU20E0H47指令代码指令代码E0AALU2121H452040H 832121H 452041H 2120H 47当前当前PCPC指令代码指令代码(Relative Addressing)(Relative Addressing) 以当

8、前以当前PCPC的内容为基值,加上指令给出的一个字节补码的内容为基值,加上指令给出的一个字节补码数(偏移量),形成新的数(偏移量),形成新的PCPC值的寻址方式称为值的寻址方式称为 这种寻址方式主要用于分支转移指令中修改这种寻址方式主要用于分支转移指令中修改PCPC值。值。ALU1025H1000H 401025H 451001H 23 1024H 471002H 3023H1002H(Bit Addressing)(Bit Addressing)对位地址中的内容作位操作的寻址方式称为对位地址中的内容作位操作的寻址方式称为位寻址是一种直接寻址方式,由指令给出直接位地址。位寻址是一种直接寻址方式

9、,由指令给出直接位地址。MOVMOV 单片机内部RAM中的数据传递MOVXMOVX 累加器和单片机外部数据存储器间数据传递MOVCMOVC 累加器和程序存储器之间的数据传递XCH XCH 累加器和某个内部RAM单元进行数据交换XCHDXCHD 累加器和某个内部RAM单元进行低半字节数据交换PUSHPUSH 将某个内部RAM单元的数据压入堆栈POPPOP 将堆栈内的数据弹出操作符操作符目的操作数目的操作数源操作数源操作数外部外部RAM外部外部I/O接接口芯片口芯片 外部外部ROMMOVCMOVXMOVCMOV内部内部RAM内部内部ROMCPUXCHXCHDPUSH POPSWAPdirectAR

10、iRn#data MOV DPTR, MOV DPTR, # #data16data16 MOVMOVX X A A, RiRi/ / DPTRDPTRMOVMOVX X RiRi/ / DPTRDPTR ,A A MOVMOVC C A A, A APCPCMOVMOVC C A A, A ADPTRDPTR指令功能:将指令功能:将ROMROM中的数送入中的数送入A A中中 PUSH directPUSH direct POP direct POP directPUSHPUSH指令功能:先将堆栈指针指令功能:先将堆栈指针SPSP的内容加的内容加1 1,然后把,然后把直接寻址单元中的数据压入到

11、直接寻址单元中的数据压入到SPSP所指示的单元中。若所指示的单元中。若数据已压入堆栈,则堆栈指针数据已压入堆栈,则堆栈指针SPSP指向最后推入数据所指向最后推入数据所在存储单元。在存储单元。POPPOP指令功能:先将堆栈指针指令功能:先将堆栈指针SPSP所指单元内容送入直接所指单元内容送入直接寻址单元中,然后将寻址单元中,然后将SPSP的内容减的内容减1 1,此时堆栈指针,此时堆栈指针SPSP指指向新的栈顶。向新的栈顶。 XCH AXCH A,RnRn XCH A XCH A,directdirect XCH A XCH A,RiRi XCHD A XCHD A, RiRi SWAP A SW

12、AP A说明:说明:前三条是整字节交换指令,后两条是半字节前三条是整字节交换指令,后两条是半字节交换指令。交换指令。 ADDADD A A,RnRn / /direct /direct / RiRi / /# #datadata ADDCADDC A A,RnRn / /direct /direct / RiRi / /# #datadata SUBB ASUBB A,RnRn SUBB A SUBB A,directdirect SUBB ASUBB A, RiRi SUBB ASUBB A,# #datadata INC AINC A INC Rn INC Rn INC direct IN

13、C direct INC Ri INC Ri INC DPTRINC DPTR DEC ADEC A DEC Rn DEC Rn DEC direct DEC direct DEC Ri DEC Ri DA ADA A MUL ABMUL AB DIV AB DIV AB (40H)= H (50H) = H A= H (41H)= H (51H)= H R0= H 例例11设内部设内部RAMRAM中中(40H)=50H(40H)=50H,(41H)=60H(41H)=60H,(50H)=30H(50H)=30H, (51H)=70H(51H)=70H,执行下列片段后:,执行下列片段后:a.

14、MOV R0,40H MOV A,R0 INC R0 MOV R0,Ab. MOV R0,#40H MOV A,R0 INC R0 MOV A,R0课堂作业1.1.试编写试编写1234H-0FA3H1234H-0FA3H的程序段,将结果高的程序段,将结果高8 8位存入位存入51H51H, 低低8 8位存入位存入50H50H单元。单元。 思考题:思考题: ANL AANL A, RnRn / /directdirect / / RiRi / /# #datadata ANL directANL direct, A A / /# #data data ORL AORL A,RnRn / /dire

15、ctdirect / / RiRi / /# #datadata ORL directORL direct,A A / /# #datadata XRL AXRL A,RnRn / /directdirect / / RiRi / /# #datadata XRL directXRL direct,A A / /# #datadata 取反:取反: CPL ACPL A 清零清零: CLR ACLR A RL ARL ARR ARR ARLC ARLC ARRC ARRC AA.7 A.7 A.0 A.0A.7A.7 A.0 A.0A.7A.7 A.0 A.0CYCYCYCYA.7A.7 A.

16、0 A.0综合举例:综合举例:MOV A, directMOV A, directRL ARL AMOV R1MOV R1,A ARL ARL ARL ARL AADD AADD A,R1R1MOV directMOV direct,A A BCDBCD 0 0 1 1 2 2. 9 9ASCIIASCII 30H 30H 31H 31H 32H 32H . . 39H 39H内部RAM22H21H20H6 93 63 9(20H)A留A中低4位A+30H(21H)(20H)AA的高低半字节交换的高低半字节交换保留A中低4位,A+30HAA(22H)开始开始结束结束 ORG 2000H ORG

17、 2000H MOV AMOV A,20H20H ANL A ANL A,#0FH#0FH ADD A ADD A,#30H#30H MOV 21H MOV 21H,A A MOV A MOV A,20H20H ANL A ANL A,#0F0H#0F0H SWAP ASWAP A ADD A ADD A,#30H#30H MOV 22HMOV 22H,A A END END(20H)A10HBA/B,A中为高中为高4位位BCD码,码,B中为低中为低4位位BCD码码B+30HBB(21H)A+30HAA(22H)开始开始结束结束 ORG 2000H ORG 2000H MOV AMOV A,2

18、0H20H MOV B MOV B,#10H#10H DIV AB DIV AB ORL BORL B,#30H#30H MOV 21HMOV 21H,B B ADD AADD A,#30H#30H MOV 22HMOV 22H,A A END END 这一类指令的功能是改变指令的执行顺序,转这一类指令的功能是改变指令的执行顺序,转到指令指示的新的到指令指示的新的PCPC地址执行。此类指令一般不影地址执行。此类指令一般不影响响PSWPSW。AJMPAJMP 标号标号LJMPLJMP 标号标号SJMPSJMP 标号标号JMPJMP A+DPTRA+DPTR转移范围转移范围:2KB2KB64KB6

19、4KB-128-128+127+127CJNE ACJNE A,# #datadata,标号标号 CJNE ACJNE A,directdirect,标号标号CJNE RnCJNE Rn,# #datadata,标号标号CJNECJNE RiRi,# #datadata,标号标号 利用这些指令,不仅可以判断两数是否利用这些指令,不仅可以判断两数是否相等相等,而且加上而且加上一条判别一条判别CYCY的指令,可以的指令,可以比较比较两数的两数的大小大小 JZJZ 标号标号 ;如果;如果A=0A=0,则转移,否则顺序执行。,则转移,否则顺序执行。 JNZJNZ 标号标号 ;如果;如果A0A0,就转移

20、,就转移 A AXXNY开始开始 A AX-YX-YA=0A=0C=1C=1A A0FFH0FFH A A01H01H 40H 40HAA结束结束 ORG 0100HSTART: MOV DPTR, #2000H MOVX A, DPTR CLR C SUBB A, 30H JZ GIV JC NEG MOV A, #01H SJMP GIV NEG:MOV A, #0FFH GIV:MOV 40H, A END A AXXYN开始开始A A与与Y Y比较比较C=1C=1A A0FFH0FFH A A01H01H 40H 40HAA结束结束不相等不相等 A A00H00H相等相等 ORG 0100HSTART: MOV DPTR,#2000H MOVX A, DPTR CJNE A,30H,CON CLR A SJMP GIV CON:JC NEG MOV A, #01H SJMP GIV NEG: MOV A, #0FFH GIV: MOV 40H, A END DJNZ RnDJNZ Rn,标号标号 DJ

温馨提示

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

评论

0/150

提交评论