最新MCS-51单片机的结构和原理(共153张PPT课件).pptx
MCS-51单片机的结构单片机的结构(jigu)和原和原理理 MCS-51单片机的结构单片机的结构8051单片机的引脚及功能单片机的引脚及功能 MCS-51单片机的时序单片机的时序 MCS-51单片机外部存储器扩展单片机外部存储器扩展第一页,共一百五十三页。3.1 MCS-51单片机的结构单片机的结构3.1.1 MCS-51单片机的基本单片机的基本(jbn)组成组成时钟时钟(shzhng)电电路路ROMRAM定时定时(dn sh)/计计数器数器CPU处理器处理器并行接口并行接口串行接口串行接口中断系统中断系统内部数据总内部数据总线线 P0 P1 P2 P3 TxD RxD INT0 INT1 T0 T1外部晶振外部晶振 212MHz第二页,共一百五十三页。3.1.2 MCS-51系列系列(xli)表表3.1 MCS-51系列单片机性能表系列单片机性能表ROM形式形式 片内片内ROM(kB) 片内片内RAM(B) 寻址寻址范围范围(kB) I/O 中中断断源源 片内片内ROM 片内片内EPROM 外接外接EPROM计计数数器器 并并行行口口 串串行行口口 80518751 8031412826421648 1580C5187C5180C3141282642164815805287528032825626431648 1680C5287C5280C3282562643164817第三页,共一百五十三页。1.不带不带EPROM和和EEPROM(带片内带片内 掩膜掩膜ROM)的的80系列系列(xli):1 片内片内RAM 128B(字节(字节(z ji)) 2 片内片内RAM 256B(字节)(字节) 1 片内片内RAM 128B,片内,片内(掩膜掩膜)ROM 4kB 2 片内片内RAM 256B,片内,片内(掩膜掩膜)ROM 8kB3580第四页,共一百五十三页。2.带带EPROM和和EEPROM的的87和和89 系列系列(xli): 1 片内片内RAM 128B,片内,片内EPROM 4kB 2 片内片内RAM 256B,片内,片内EPROM 8kB 1 片内片内RAM 128B,片内,片内EEPROM 4kB 2 片内片内RAM 256B,片内,片内EEPROM 8kB 87C589C5第五页,共一百五十三页。3.1.3 MCS-51单片机内部单片机内部(nib)结构图结构图 RAM地址地址(dzh)寄存器寄存器RAM1288P0驱动器驱动器P2驱动器驱动器ROM48KP0锁存器锁存器P2锁存器锁存器B寄存器寄存器暂存器暂存器TMP1ACCPC值值递增递增(dzng)器器堆栈堆栈SP暂存器暂存器TMP2缓冲器缓冲器程序地址寄程序地址寄存器存器DPTR程序计数程序计数器器PC指指 令令 寄寄 存存 器器指指 令令 译译 码码 器器定定 时时 控控 制制ALUPSW中断、串行口和定时器中断、串行口和定时器P3驱动器驱动器P3锁存器锁存器P1驱动器驱动器P1锁存器锁存器OSCPSENALEEARSTVccVssP0.0P0.7 P2.0P2.7P1.0P1.7 P3.0P3.7XTAL1XTAL2第六页,共一百五十三页。1 存储器空间存储器空间(kngjin)及结构及结构 片外片外ROMRAM(8052/8032)特殊特殊功能功能(gngnng)寄存寄存器器数据数据(shj)缓缓冲区冲区RAM位寻址区位寻址区工作寄存器区工作寄存器区0 3组组片内片内ROM(EA=1)外部外部RAM片外片外ROM(EA=0) 程序存储器程序存储器 内部数据存储器内部数据存储器 外部数据存储器外部数据存储器0FFFH00FFFFH1000H0FFH0FFFH00FFFFH0020H1FH80H0FFH80H7FH30H2FH第七页,共一百五十三页。位寻址区位寻址区D7D6D5D4D3D2D1D0070605040302010020H0F0E0D0C0B0A090821H22H23H22212024H2EH7F7E7D7C7B7A79782FH (MSB) (LSB)置置 “1”第八页,共一百五十三页。2. CPU 组成(z chn) ALU :运算器 控制器:完成算术、逻辑运算 特殊功能寄存器:ACC、B、PSW、SP、DPTR 通用寄存器:R0R7第九页,共一百五十三页。3并行并行(bngxng)I/O口口(1)8031 P1口位结构口位结构 D Q 锁存器锁存器CP QP1.XPIN读锁存器读锁存器(读端口)(读端口)Vcc管脚管脚三态门三态门 1T内部内部(nib)上拉上拉电阻电阻三态门三态门 2读引脚读引脚内部内部(nib)总线总线写锁存器写锁存器第十页,共一百五十三页。(2) 8031 P3口位结构口位结构(jigu) D Q 锁存器锁存器CP P3.XPIN读锁存器读锁存器Vcc管脚管脚三态门三态门 1T内部内部(nib)上拉上拉电阻电阻三态门三态门 2读引脚读引脚内部内部(nib)总线总线写锁存器写锁存器第二输出功能第二输出功能 第二输入功能第二输入功能 第十一页,共一百五十三页。(3) 8031 P2口位结构口位结构(jigu) D Q 锁存器锁存器CP P2.XPIN读锁存器读锁存器Vcc管脚管脚三态门三态门 1T内部内部(nib)上拉上拉电阻电阻三态门三态门 2读引脚读引脚内部内部(nib)总线总线写锁存器写锁存器 MUX地址地址 控制控制 第十二页,共一百五十三页。(4) 8031 P0口位结构口位结构(jigu) D Q 锁存器锁存器CP QP0.XPIN读锁存器读锁存器Vcc管脚管脚三态门三态门 1T三态门三态门 2读引脚读引脚内部内部(nib)总线总线写锁存器写锁存器 MUX地址地址/数据数据(shj) 控制控制 T第十三页,共一百五十三页。4 定时器组成(z chn): T0 T1特点: 作计数器 作定时器 长度:16位 可编程 定时计数到可向CPU发中断第十四页,共一百五十三页。5 中断(zhngdun)系统中断源: 五个 INT0 INT1 T0 T1 串行口特点: 中断入口(r ku)固定 有两级中断 6 串行口特点: 可编程 全双工 第十五页,共一百五十三页。3.2 8051单片机引脚及功能(gngnng) 特点: 各型号芯片互相兼容 双列直插式芯片 引脚: VSS 地 VCC 电源 并行口: P0P3 有第二功能 ALE/PROG: 地址锁存 / 编程脉冲输入(8751) PSEN:外部程序存储器读选通信号 EA/VPP : 外部ROM选择信号(xnho)/编程电源(8751) RST/VDP: 复位/RAM备用电源 XTAL1 XTAL2: 晶振输入端第十六页,共一百五十三页。3.3 MCS-51单片机工作(gngzu)方式 复位方式:CPU复位到初始状态 PC=0000H ACC=00H PSW=00H SP=07H P0P3 =0FFH 程序执行方式: 从ROM的0000H开始执行 单步执行方式 : 每次执行一条指令 掉电和节电方式: 用备用(biyng)电源维持RAM和SFR 编程和校验方式: 对内部EPROM编程和校验第十七页,共一百五十三页。3.4 MCS51的时序的时序 3.4.1 机器机器(j q)周期和指令周期周期和指令周期1 机器周期机器周期:包括包括12个振荡周期(时钟周期)个振荡周期(时钟周期)2 一个机器周期分为六个一个机器周期分为六个S状态:从状态:从S1S6。3 每个每个S状态由两拍组成状态由两拍组成(z chn),称为,称为P1、P2所以,一个机器周期可以表示为:所以,一个机器周期可以表示为: S1P1、S1P2、S2P1、S6P2 S1 S2 S6P1 P2P1 P2 P1 P2 第一周期第一周期(zhuq)(机器周期(机器周期(zhuq)) 第第二周期二周期(zhuq)时钟时钟第十八页,共一百五十三页。 S1P1 P2 ALE S1 P2 S4 P2 S1 P2 S4 P2 S1 P2 1字节字节1周期指令。例:周期指令。例:MOV A,R0;机器码:机器码:E8 读操作码读操作码 读操作码读操作码 (由于(由于PC指针指针(zhzhn)未加未加1,为无效读,为无效读取)取) 读下一指令读下一指令 S6 S1 S2 S3 S4 S5 S6 S1 S6 S1 S2 S3 S4 S5 S6 S1 S6 S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 S1 2字节字节(z ji)1周期指令。例:周期指令。例:MOV A,30H;机器码:机器码:E530 读操作码读操作码 读第二字节读第二字节 读下一指令读下一指令 1字节字节(z ji)2周期指令。例:周期指令。例:RET;机器码:机器码:22 读操作码读操作码 读读下一指令下一指令 读操作码(无效)读操作码(无效) 第一周期(机器周期)第一周期(机器周期) 第二周期第二周期3.4.2 MCS51的取指的取指/执行时序执行时序时钟时钟第十九页,共一百五十三页。3.4.3 外部外部(wib)存储器读周期存储器读周期(不执行不执行(zhxng)MOVX指令指令) ALE 锁存低锁存低8位地址位地址(dzh) 锁存低锁存低8位地址位地址(dzh) P1 P2 P1 P2 S1 S2 S3 S4 S5 S6 S1选通选通 ROM PSEN 读数读数 (80H)(80H) RD、WRP2 地址地址 A15A8 地址地址 A15A8 (00H) (74H) (01H) (28H) P0A7A0 A7A0 第二十页,共一百五十三页。 (执行执行(zhxng)MOVX指令指令)P 1 P 2 P 1 P 2 P 1 P 2 P 1 P 2 P 1 P 2 P 1 P 2 P 1 P 2 P 1 P 2 P 1 P 2 P 1 P 2 P 1 P 2 P 1 P 2 P 1 P 2 P 1 P 2 第一周期第一周期(zhuq) 第二周期第二周期(zhuq) S6 S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 ALE 锁存锁存 锁存锁存 PSEN 读数读数(dsh)RD、WR 读、写读、写 (80H) (82H) P2 PCH输出输出 PCH或或P2口输出口输出 (00H) (E0H) (12H) (56H) 指令指令 外部外部RAM 外部外部RAM 无效无效 低低8位地址位地址 数据数据P0 PCL 第二十一页,共一百五十三页。3.5 MCS-51外部外部(wib)扩展扩展 PSENRD8031WRP2EAALEP0锁存器锁存器控制总线控制总线(zn xin)高高8位地址线位地址线A15A8地址总线地址总线低低8位地址线位地址线A7A0数据总线数据总线D7D0第二十二页,共一百五十三页。锁锁 存存 器器CLRCLKDQLXXLHHHHLLHLXQ0输出控输出控制制OC使能使能GD输出输出LHHHLHLLLLXQ0HXXZOESTBDQLHHHLHLLLLXQ0HXXZGCLKDQQHXXQ0Q0LHHLLLLHXLXQ0Q074LS273功能表功能表74LS377功能表功能表74LS373功能表功能表8282功能表功能表CLK273CLRCLK377GG373OCSTB8282OEALEALEALEALE+5V第二十三页,共一百五十三页。3.5.1 程序程序(chngx)存储器扩展存储器扩展 P2.7P2.6P2.5P2.4P2.3P2.2 P2.1P2.0ALE 8031P0.7P0.0EA PSENCE2716A10A9A8A7A0O7O0OEG74LS37388第二十四页,共一百五十三页。3.5.2 数据数据(shj)存储器扩展存储器扩展 P2.7P2.6 8031P2.5P2.4P2.3P2.2 P2.1P2.0ALE P0.7P0.0EARDWRCS6116A10A9A8A7A0D7D0OEWEG74LS373811100100译译码码器器8第二十五页,共一百五十三页。第四章 MCS-51单片机的指令系统(zh ln x tn) 内容 指令和指令程序 寻址方式(fngsh) 指令 传送指令 运算指令 控制指令第二十六页,共一百五十三页。4.1 指令(zhlng)和指令(zhlng)系统 4.1.1 指令和助记符 指令:计算机能识别和执行的命令 指令形式: 二进制码或机器码 特点: 机器真正执行语言、不便记忆 构成: 操作码 操作数 由机器码的集合构成机器语言 助记符: 由助记符号表示(biosh)的机器指令 特点: 便于记忆、不能直接执行 由助记符构成的语言称汇编语言 第二十七页,共一百五十三页。4.1.2 指令(zhlng)的字节数: 单字节(49条)、 双字节(45)、三单字节(17)4.2 寻址方式 1 寄存器寻址: 以通用寄存器作为(zuwi)操作数 通用寄存器:R0R7 例: MOV A , R0 2 直接寻址: 直接给出操作数地址 例: MOV A , 20H 3 立即寻址: 操作数为8位或16位二进制数 例: MOV A , #30H 第二十八页,共一百五十三页。4寄存器间接寻址: 以寄存器给出操作数的地址 例 MOV A , R05变址寻址: 以基址寄存器加上一个相对量为操作数地址。 例 MOVC A , A+PC6相对寻址: 相对转移指令中以相对偏移量为操作数 转移目的(md)地址= 源地址 + 转移指令字节数+rel 例 2000H SIMP rel(8位有符号数) 若 rel = 40H 目的地址=2000H+2+40H=2042H rel=0FEH 目的地址=2000H+2+(-2)=2000H第二十九页,共一百五十三页。7位寻址 在指令中给出一位二进制数的操作数地 址 位地址区域: 内部RAM 20H2FH共128位 某些特殊功能寄存器(地址能被8整除) 位地址表示(biosh): (1)用位地址00HFFH表示 20H2FH单元中: 位地址=(单元地址-20H)* 8+ 位数(07) 特殊功能寄存器: 位地址= 单元地址 + 位数(07)第三十页,共一百五十三页。 (2)用 “单元(dnyun)地址 . 位 ” 表示表示 例例 20H.5 2FH.7 . (3)用 “寄存器名.位数” 表示(SFR) 例 P0.1 P2.0 P3.7 ACC.7 (4)用伪指令表示第三十一页,共一百五十三页。MCS-51指令分类:共有111条指令分为五大类(1) 数据传送(chun sn)指令:28条 (2) 算术运算指令:24条(3) 逻辑移位指令:25条 (4) 控制转移指令:17条(5) 位操作指令:17条 . 符号定义: Rn:工作寄存器组 R0R7 #data :8位立即数 direct : 8位直接(zhji)地址.用于寻址内部RAM Ri : 寄存器间接寻址 Ri = R0 或 R1 #data16 : 16位立即数 DPTR : 16位寄存器间接寻址第三十二页,共一百五十三页。4.3 数据传送(chun sn)指令4.3.1 内部(nib)RAM之间数据传送 1 立即寻址 MOV A , #data ; A data MOV Rn , #data ; Rn data MOV Ri , #data ; (Ri) data MOV direct , #data ; (direct) data 2 直接寻址 MOV A , direct ; A (direct) MOV direct ,A ;(direct) A第三十三页,共一百五十三页。 MOV Rn,direct ;Rn (direct) MOV Ri,direct ;(Ri) (direct) MOV direct2,direct1 ;(direct2)(direct1) 3 间接(jin ji)寻址 MOV A,Ri ; A (Ri) MOV Ri, A ;(Ri) A MOV direct, Ri ; (direct) (Ri)第三十四页,共一百五十三页。 4 寄存器寻址 MOV A, Rn ; A Rn MOV Rn, A ; Rn A MOV direct, Rn ;(direct) Rn 注:传送指令不影响标志位4.3.2 外存的传送指令 1 16位地址(dzh)传送指令 MOV DPTR, #data16 DPTR可以用于寻找RAM或ROM中数据第三十五页,共一百五十三页。 2 访问外部(wib)ROM指令 MOVC A, A+DPTR MOVC A, A+PC 3 访问外部RAM指令 MOVX A, Ri MOVX Ri, A MOVX A, DPTR MOVX DPTR , A第三十六页,共一百五十三页。 4.3.3 堆栈(duzhn)操作指令 1 进栈 格式: PUSH direct 操作: SP=SP+1 (direct) (SP) 例 PUSH 20H PUSH ACC 2 出栈 格式: POP direct 操作: (direct) (SP) SP=SP-1 注: 堆栈操作只能在内部RAM中设置 第三十七页,共一百五十三页。 4.3.4 数据交换指令 XCH A, Rn ; A Rn XCH A, direct ; A (direct) XCH A, Ri ; A (Ri) XCHD A, Ri ; A03 (Ri)03 特点(tdin): 交换指令是在A及内部RAM之间进行交换 交换后除标志寄存器受A内容变化影响外, 其它标志位不变第三十八页,共一百五十三页。4.4 算术运算(yn sun)指令4.4.1 加法指令 ADD A, Rn ; A A+Rn ADD A, direct ; A A+(direct) ADD A, Ri ; A A+(Ri) ADD A, #data ; A A+data 注: 加法运算(yn sun)影响标志位第三十九页,共一百五十三页。例 MOV A, #0FFH ADD A, #0FH 求PSW中各标志位状态 11111111 + 00001111 100001110 Cy=1 P=1 AC=1 OV=0 注意(zh y): Cy用于判断无符号数 OV用于判断有符号数 第四十页,共一百五十三页。4.4.2 带进位加法指令 ADDC A,Rn ;A A+Rn+Cy ADDC A,direct ;A A+(direct)+Cy ADDC A,Ri ;A A+(Ri)+Cy ADDC A,#data ;A A+data+Cy注:Cy=0时ADDC和ADD结果(ji gu)完全一样 第四十一页,共一百五十三页。4.4.3 加1指令 INC A ; A A+1 INC Rn ; Rn Rn+1 INC direct ; (direct) (direct)+1 INC Ri ; (Ri) (Ri)+1 注: (1) 与ADD指令的区别: ADD指令影响各标志位 INC指令不影响各标志位(除加A时影响P外) (2) INC指令一般(ybn)用来修改地址第四十二页,共一百五十三页。4.4.4 带借位减法指令和减1指令 SUBB A, Rn ; A A-Rn-Cy SUBB A, direct ; A A-(direct)-Cy SUBB A, Ri ; A A-Ri-Cy SUBB A, #data ; A A- data-Cy 注: (1) MCS51没有不带借位的减法指令 开始应使Cy=0 : CLR C (2) 作为有符号数时溢出判断规则(guz)为: 正数-负数结果为负则溢出 负数-正数结果为正则溢出第四十三页,共一百五十三页。减1指令(zhlng) DEC A ;A A-1 DEC Rn ;Rn Rn-1 DEC direct ;(direct) (direct)-1 DEC Ri ;(Ri) (Ri)-1 注:DEC指令同样不影响标志位 (除减A指令 影响标志位P外) 第四十四页,共一百五十三页。4.4.5 乘、除指令和其他运算指令 1 乘、除指令 MUL AB ; A B=BA DIV AB ;A/B=AB 注:(1) 乘、除指令均为无符号8位数运算指令 (2) 乘、除指令只影响Cy、OV和P标志(biozh) 乘法:Cy=0 ,P由A中1的奇偶性决定 B=0 则OV=0 否则OV=1 除法:Cy=0 ,P由A中1的奇偶性决定 B=0 则OV=1 否则OV=0第四十五页,共一百五十三页。例:如果A0B4H,B11H,求执行指令 MULAB后的结果(ji gu)。 因为A0B4H为无符号数180D B11H为无符号数17D 执行 MULAB 后: BA0BF4H3060D。因为B0, 因此Cy0,OV1 第四十六页,共一百五十三页。 2 十进制调整指令 DA A 作用: BCD码加法调整(对累加器A) 调整: 低4位大于9或AC=1,则A=A+06H 高4位大于9或Cy=1,则A=A+60H 例: ADDA,R0 DA A 指令执行前,A28H,R068H 执行ADD指令后,A90H,Cy0,AC1 因AC1而做加6运算 AA06 得A96H,结果(ji gu)正确 第四十七页,共一百五十三页。 3 数据指针加1指令 INC DPTR 操作(cozu): DPTR = DPTR + 1 特点: 不影响标志位 例 编程对DPTR减1 CLR C ; Cy=0 MOV A, DPL ; A=DPL SUBB A, #1 ;A=A-1 MOV DPL, A ;DPL=A MOV A, DPH ;A=DPH SUBB A, #0 ;A=A-0-Cy MOV DPH, A ;DPH=A第四十八页,共一百五十三页。4.5 逻辑运算及移位指令4.5.1 逻辑“与”运算(yn sun)指令 ANL A, Rn (direct, Ri, #data) ANL direct, A ANL direct , #data 特点: 按位“与” 即: 1“与”1=1 1“与”0=0 0“与”0=0 例 A=85H R7=67H ANL A, R7 则 A=05H A=85H R7=00H ANL A, R7 则 A=00H A=85H R7=0FFH ANL A, R7 则 A=85H第四十九页,共一百五十三页。4.5.2 逻辑“或”运算指令(zhlng) ORL A, Rn (direct, Ri, #data) ORL direct, A ORL direct , #data 特点: 按位“或” 即: 1“或”1=1 1“或”0=1 0“或”0= 0 例 A=85H R7=67H ORL A, R7 则 A=0E7H A=85H R7=00H ORL A, R7 则 A=85H A=85H R7=0FFH ORL A, R7 则 A=0FFH 第五十页,共一百五十三页。4.5.3 逻辑“异或”运算指令(zhlng) XRL A, Rn (direct, Ri, #data) XRL direct, A XRL direct , #data 特点: 按位“异或” 即: 1“异或”1=0 1“异或”0=1 0“异或”0= 0 例 A=85H R7=67H ORL A, R7 则 A=0E2H A=85H R7=00H ORL A, R7 则 A=85H A=85H R7=0FFH ORL A, R7 则 A=7AH 第五十一页,共一百五十三页。 4.5.4 累加器清零(qn ln)及取反指令 CLR A ; A=0 CPL A ; A=A 注:所有逻辑指令对标志都不产生影响(除对A操作的指令对P产生影响) 另:MCS-51没有求补指令。可用求反加1实现。 例 N为绝对值一小于128的负数,求其补码 MOV A,#N CPL A ( XRL A, #0FFH ) ADD A, #1第五十二页,共一百五十三页。4.5.5 移位指令 RL A RLC A RR A RRC A A7 A0A7 A0CyA7 A0A7 A0Cy第五十三页,共一百五十三页。 SWAP A ; A03 A47 第五十四页,共一百五十三页。控制(kngzh)转移指令符号(fho)定义: addr16: 16位地址 addr11: 11位地址 rel: 8位转移相对偏移量4.6.1 无条件转移指令 1 长转移指令 LJMP addr16 操作: addr16 PC 范围: 64K跳转 特点: 绝对寻址 第五十五页,共一百五十三页。2 绝对跳转指令 AJMP addr11 操作: addr11 A 010(PC07,1315) 范围: 2K跳转 特点: 绝对寻址 3 短转移(zhuny)指令 SJMP rel 操作: PC = PC + 2 + rel 范围: 相对现PC地址:-128 +127 特点: 相对寻址 第五十六页,共一百五十三页。 4 变址方式(fngsh)转移指令 JMP A+DPTR 操作: A+DPTR PC 范围: 64K 特点: 间接寄存器寻址 (用于分支程序)第五十七页,共一百五十三页。4.6.2 条件(tiojin)转移指令 1 判零条件转移 JZ rel ; if A=0, PC= PC+2+rel else PC = PC+2 JNZ rel ; if A 0, PC=PC+2+rel else PC = PC+2 特点: 判A中内容是否为零(不需计算) 2 比较条件转移指令第五十八页,共一百五十三页。 CJNE A, #data(direct), rel CJNE Rn,#data, rel CJNE Ri, #data, rel 一般格式(g shi): CJNE 数1, 数2, rel 操作: 当 数1 数2 , PC = PC+3+rel 否则 PC = PC+3 数1 数2 : Cy = 0第五十九页,共一百五十三页。 3 减1条件转移指令(zhlng) DJNZ Rn(direct), rel 操作: Rn(direct)=Rn(direct) 1 if result = 0 PC = PC+2 else PC=PC+2+rel 转移第六十页,共一百五十三页。 4.6.3 子程序调用及返回指令 1 调用指令 ACALL addr11 长度: 2字节(z ji) 操作: PC = PC + 2 SP = SP + 1 , PC07 (SP) SP = SP + 1 , PC815 (SP) addr11 PC010 调用范围: 2K 第六十一页,共一百五十三页。 LCALL addr16 长度: 3字节 操作(cozu): PC = PC + 3 SP = SP + 1 , PC07 (SP) SP = SP + 1 , PC815 (SP) addr16 PC015 调用范围: 64K 2 返回 子程序返回 RET 第六十二页,共一百五十三页。 操作: (SP) PC815 SP=SP-1 (SP) PC07 SP=SP-1 中断子程序返回(fnhu) RETI 操作: (SP) PC815 SP=SP-1 (SP) PC07 SP=SP-1 清除中断优先级状态触发器 4.6.4 空操作指令 NOP 操作: PC = PC + 1第六十三页,共一百五十三页。4.7 布尔变量操作(cozu)指令4.7.1 位传送指令(zhlng) MOV C, bit ; (bit) Cy MOV bit, C ; Cy (bit) C: Cy bit : 位地址 SFR : ACC, B, P0, P1, P2,SBUF等 20H2FH单元 例 MOV C, 10H MOV C, 22H.0第六十四页,共一百五十三页。4.7.2 位置(wi zhi)位指令 CLR C ; 0 Cy CLR bit ; 0 (bit) SETB C ; 1 Cy SETB bit ; 1 (bit)第六十五页,共一百五十三页。 4.7.3 位运算指令 ANL C, bit ; Cy (bit) Cy ANL C, /bit ; Cy (bit) Cy ORL C, bit ; Cy (bit) Cy ORL C, /bit ; Cy (bit) Cy CPL C ; Cy Cy CPL bit ; (bit) (bit) 注: /bit为bit的内容取反, 但不改变bit位的内容 MCS51没有(mi yu)异或命令第六十六页,共一百五十三页。 4.7.4 位控制转移指令 1 以Cy为条件(tiojin)的转移指令 JC rel 两字节指令 操作: if Cy=1 then PC=PC+2+rel 转移 else PC=PC+2 JNC rel 两字节指令 操作: if Cy=0 then PC=PC+2+rel 转移 else PC=PC+2第六十七页,共一百五十三页。 2 以位地址为条件(tiojin)的转移指令 JB bit, rel 三字节指令 操作: if (bit)=1 then PC=PC+3+rel 转移 else PC=PC+3 JNB bit, rel 三字节指令 操作: if (bit)=0 then PC=PC+3+rel 转移 else PC=PC+3 JBC bit, rel 三字节指令 操作: if (bit)=1 then PC=PC+3+rel (bit)=0 else PC=PC+3第六十八页,共一百五十三页。第五章 汇编语言(hu bin y yn)程序设计5.1 汇编语言源程序的格式 格式: 标号: 操作码 操作数 ;注释 1 标号和注释可以省略(shngl) 2 每部分之间可有一个或多个空格 3 标号后紧跟 “ ; ” , 注释紧跟 “ ; ” 4 有些指令无操作数 5.1.1 标号 组成: 由8个或8个以下字符组成 1 字符集为 A,BY,Z,09, _ 2 标号必须以英文字母开头 3 标号不能有以上字符集以外字符及保留字 第六十九页,共一百五十三页。 5.1.2 操作数 种类: 立即数、直接地址、寄存器和偏移量 1 立即数: 为“#”后面跟数字,如 #30H等 (1) 数据(shj)可用各种进制数据(shj)表示(后面用B、Q、D、H表示) (2) 数据高位为AF时,数据前面加“0” 2 直接地址: (1) 数据(各种进制) 如 MOV A, 30H (2) 符号地址(已定义) 如 MOV R1, BUFFER1 (3) 特殊功能寄存器 如 MOV A, P0 (4) 表达式 如 MOV A, ADDR1+2第七十页,共一百五十三页。 3 寄存器 通用及特殊寄存器 如 A、B、Rn、 P1等等 4 偏移量rel 除有数据、标号地址外,还有“$” $: 表示本条指令地址 5.1.3 注释 作用: 为非执行语句, 用于解释语句作用 汇编时“ ; ”后面的不进行汇编,均为注释 所以(suy)注释可用英语、汉语等各种形式第七十一页,共一百五十三页。5.2 伪指令 5.2.1 ORG 汇编起始地址 格式: 标号: ORG 地址 例 ORG 2000H MAIN: MOV A, 20H . 注: 若无 ORG 则汇编时将程序从0000H开始(kish)存放 5.2.2 END 汇编结束 格式: 格式: END END必须放在所有程序的后面第七十二页,共一百五十三页。 5.2.3 EQU 赋值命令 格式: 字符名 EQU 数或符号 作用: 将数或符号的值赋给字符名,可以作为数据(shj)、 地址 符号: (1) 可以是寄存器名 如R0 R1 等 (2) 已定义过的符号 5.2.4 DATA 数据地址赋值命令 格式: 字符名 DATA 表达式 DATA与EQU的区别: (1) EQU 先定义后使用,DATA可以先使用后定义 (2) 符号名可以赋给EQU,不能赋给DATA (3) 表达式可赋给DATA,且字符名可在表达式中第七十三页,共一百五十三页。 5.2.5 DB 定义字节命令 格式: 标号: DB 字节数据列表 功能: 在程序ROM区开辟若干字节存放数据 (1) 若DB紧跟程序,则紧跟程序顺序存放(cnfng) (2) 可用ORG确定数据列表存放地址 例 ORG 2000H TAB1 DB 12H,10,A,6 TAB2 DB 45H,67H第七十四页,共一百五十三页。 5.2.6 DW 定义(dngy)字命令 格式: 标号: DW 字数据列表 功能: 在程序ROM区开辟若干单元存放数据 (1) 存放顺序是先高(低地址)后低(高地址) (2) 若数据列表中有字节数,则高位补零 例 ORG 1500H TAB1 DW 1234H,56H TAB2 DB 78H第七十五页,共一百五十三页。5.2.7 DS 定义(dngy)空间命令 格式: 标号: DS 表达式 功能: 保留表达式数值的字节空间 例 ORG 2000H A1: DS 10H A2: DB 10H,20H5.2.8 BIT 位地址符号命令 格式: 字符名 BIT 位地址 功能: 将位地址赋给字符名 例 START BIT P1.0 STOP BIT P1.1第七十六页,共一百五十三页。第六章 微型计算机的输入(shr)/输出6.1 I/O接口电路概述6.1.1 I/O接口电路的作用 1 速度匹配 解决高速计算机与低速外设之间的工作速度的匹配 2 提供输入/输出过程的状态信号 接口根据外设及计算机的状态给出双方的“握手”信号 3 解决计算机与外设之间信号的不一致(yzh) 电平转换 编码转换 数模转换 串并转换等第七十七页,共一百五十三页。6.1.2 接口与端口的差别 接口: 计算机与外设交换信息的通道 如 串行接口 数模转换接口等 特点: 有两个接口面分别与计算机和外设相连 每个接口可以有多个端口 端口: 接口中与计算机相连的各个信息口 如数据输入口 数据输出(shch)口 控制口等 特点: 每个端口对应一个口地址 第七十八页,共一百五十三页。 6.1.3 外设的编址方式(fngsh) 1 外设端口单独编址 优点: (1) 不占用存储器地址 (2) I/O指令短,执行速度快 缺点: (1) I/O指令少,功能简单 (2) 需要CPU具有专门的I/O控制线 增加了CPU控制逻辑的复杂性 2 外设与存储器统一编址 优点: (1) 指令功能齐全 (2) I/O口地址范围广第七十九页,共一百五十三页。 缺点: (1) I/O口占用了存储器地址空间 (2) 操作指令比专用(zhunyng)I/O指令执行时间长 6.1.4 将外设当作数据存储器访问 1 MCS51与外设是采用存储器统一编址方式 2 所用信号线与数据存储器相同 3 用访问外部数据存储器的指令访问外设第八十页,共一百五十三页。6.2 输入/输出传送(chun sn)方式6.2.1 无条件传送 可用无条件传送的条件 1 外设的工作速度足够快 2 两次传送数据的时间足够长 特点:优点:控制程序简单 缺点(qudin):它必须是在确保外设已准备就绪的情况下 使用 第八十一页,共一百五十三页。6.2.2 查询式传送 计算机与外设间通过状态信息确认数据的传送 可用查询传送的条件 1 外设必须有反映(fnyng)工作状态的信号 2 接口能分别提供数据端口和状态信息端口 读取状态信息传送数据否 准备好? 是第八十二页,共一百五十三页。6.2.3 中断传送方式 由外设事件向CPU提出请求,CPU向外设提供相应的服务 特点: 1 在外设允许时进行传送 2 与程序查询方式相比,中断控制方式的数据传送大大提高了CPU的工作效率 3 硬件接口复杂6.2.4 直接存储器存取(DMA)方式 外设与内存之间直接进行交换(jiohun)数据的方式 不需要CPU干预,也不需要软件介入 ,由硬件完成第八十三页,共一百五十三页。第七章 MCS-51的中断(zhngdun)和中断(zhngdun)接口7.1 中断概述 7.1.1 中断源 中断源:引起(ynq)中断请求的事件或来源 中断源分类: 软件中断源和硬件中断源 软件中断:中断指令、指令执行错误中断 硬件中断:由计算机系统故障源、外设引起的 中断 。