MSC51存储器配置 FFFFH FFFFH FFH A EOH SFR 80H 数据缓冲区 30H 20H 位寻址区 寄存器区 0000HI 00H 0000HI ROM 内RAM 外RAM
0000H FFFFH 0000H FFFFH 00H FFH 寄存器区 位寻址区 数据缓冲区 SFR 20H 30H 80H E0H A MSC51存储器配置 ROM 内RAM 外RAM
第3章McS-51指令系统 指令的格式: LOOP: MOV RO 将R0的内容送A [标号]操作码第一操作数第二操作数 [注释] (目的操作数)(源操作数) 注:黑色的内容不是必须的
第3章 MCS-51指令系统 指令的格式: LOOP: MOV A, R0 ;将R0的内容送A [标号] 操作码 第一操作数 第二操作数 [注释] (目的操作数) (源操作数) 注:黑色的内容不是必须的
32数据传输类指令 1.以累加器A为目的操作数的指令 MOv A. t data A←#data MOV A. R ;n=0-7,A←(Rn) MOV A, R i=0, 1,A+((R ) MOVA, direct;A←( direct) direct为内部RAM或SFR地址 注 MOVA,@R1以R的内容为地址,把该地址中的内容送到 A中去。A←(R) MOVA,R0将R0的内容送到A去。A←(R MOVA,#20H;(A)=20HA的内容为20H MOVA,20H;(A)=(20H)A的内容为20H中的内容 注意以上两组指令的不同点
3.2 数据传输类指令 1. 以累加器A为目的操作数的指令 MOV A, #data ; A←#data MOV A, Rn ;n=0~7, A←(Rn) MOV A, @Ri ; i=0,1 , A← ((Ri)) MOV A, direct ; A←(direct) direct为内部RAM或SFR地址 注: MOV A, @Ri 以Ri的内容为地址,把该地址中的内容送到 A中去。A←((Ri)) MOV A, R0 将R0的内容送到A去。 A←(R0) MOV A, #20H ; (A) = 20H A的内容为20H MOV A, 20H ; (A) = (20H) A的内容为20H中的内容 注意以上两组指令的不同点
例:MOVA,@RQ0;A←((R0) 这条指令表示从R中找到源操作数40H 所在单元的地址,把该地址中的内 容传送给A(存放地址的寄存器称为 间址寄存器) 34H 40H 设指令执行前(R0)=34H (34H)=40H 执行指令后,(A)=40H RO 34H
例: MOV A,@R0 ;A←((R0)) 这条指令表示从R0中找到源操作数 所在单元的地址,把该地址中的内 容传送给A(存放地址的寄存器称为 间址寄存器). A 40H 34H 40H R0 34H … … 40H 设指令执行前 (R0)=34H (34H)=40H 执行指令后,(A)=
2.以Rn为目的操作数的指令 MOVR,A;Rn←(A),n=0~7 Mov Rn, direct Rn(direct) MOV R t dat a ←#data
2. 以Rn为目的操作数的指令 MOV Rn, A ;Rn ← (A) , n=0~7 MOV Rn , direct ;Rn ← (direct) MOV Rn ,#data ;Rn ← #data
3以直接地址为目的操作数的指令 Mov direct, a direct+(A) Mov direct, Rn direct+(Rn), n=ON7 MOv direct, @R; direct+(( RiD), i=0, 1 Mov direct, direct direct(direct) Mov direct, #data direct + data
3.以直接地址为目的操作数的指令 MOV direct, A ;direct← (A) MOV direct, Rn ; direct← (Rn) , n=0~7 MOV direct, @Ri ; direct← (( Ri)) , i=0,1 MOV direct, direct ;direct← (direct) MOV direct, #data ;direct← #data
4.以寄存器间接地址为目的操作数指令 MOV ORi, a (RD+(A)i=0, 1 MOV @R;, direct (R))-(direct) MOV @R,, #t data (Ri))+# data
4. 以寄存器间接地址为目的操作数指令 MOV @Ri, A ; ((Ri))← (A) i=0,1 MOV @Ri , direct ; ((Ri))← (direct) MOV @Ri ,#data ; ((Ri))← #data
应用举例1 MOV PI. #OFEH: 11111110B P10 可以使P10上的发光二极管点亮 MOvP1,#0FOH;11110000B 可以使P1口上的上面4个发光二 极管点亮 P13 V P14 P1.5 P1.6 P1.7
应用举例1 MOV P1, #0FEH ; 11111110B 可以使P1.0上的发光二极管点亮 MOV P1, #0F0H ; 11110000B 可以使P1口上的上面4个发光二 极管点亮 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 5v
8段数码管显示 aIDOC\o P1.0a o0日 P1.1b IP1. 2 C P1.3d 日 P14 NiSin P1.5f MOVP1,#00H;显示8. P1.6g MOVP1,#0F8H;显示7 P1.7d MOVP1,#8H;显示A
8段数码管显示 P1.0 a P1.1 b P1.2 c P1.3 d P1.4 e P1.5 f P1.6 g P1.7 dp 5v MOV P1, #00H ; 显示 8. MOV P1, #0F8H ; 显示 7 MOV P1, #88H ; 显示 A
应用举例2 一个引脚的高低电平,可以通过“光电耦合器”控制继 电器,从而以“弱电”控制“强电”。 ~220V P1.0
应用举例2 一个引脚的高低电平,可以通过“光电耦合器”控制继 电器,从而以“弱电”控制“强电