MCS51单片机.ppt

上传人:夺命阿水 文档编号:242045 上传时间:2023-03-16 格式:PPT 页数:152 大小:1.87MB
返回 下载 相关 举报
MCS51单片机.ppt_第1页
第1页 / 共152页
MCS51单片机.ppt_第2页
第2页 / 共152页
MCS51单片机.ppt_第3页
第3页 / 共152页
MCS51单片机.ppt_第4页
第4页 / 共152页
MCS51单片机.ppt_第5页
第5页 / 共152页
点击查看更多>>
资源描述

《MCS51单片机.ppt》由会员分享,可在线阅读,更多相关《MCS51单片机.ppt(152页珍藏版)》请在课桌文档上搜索。

1、MCS-51单片机的结构和原理 MCS-51单片机的结构8051单片机的引脚及功能 MCS-51单片机的时序 MCS-51单片机外部存储器扩展,3.1 MCS-51单片机的结构3.1.1 MCS-51单片机的基本组成,时钟电路,ROM,RAM,定时/计数器,CPU处理器,并行接口,串行接口,中断系统,内部数据总线,P0 P1 P2 P3 TxD RxD INT0 INT1,T0 T1,外部晶振 212MHz,3.1.2 MCS-51系列表3.1 MCS-51系列单片机性能表,1.不带EPROM和EEPROM(带片内 掩膜ROM)的80系列:,1 片内RAM 128B(字节)2 片内RAM 25

2、6B(字节)1 片内RAM 128B,片内(掩膜)ROM 4kB 2 片内RAM 256B,片内(掩膜)ROM 8kB,3,5,80,2.带EPROM和EEPROM的87和89 系列:,1 片内RAM 128B,片内EPROM 4kB 2 片内RAM 256B,片内EPROM 8kB 1 片内RAM 128B,片内EEPROM 4kB 2 片内RAM 256B,片内EEPROM 8kB,87C5,89C5,3.1.3 MCS-51单片机内部结构图,RAM地址寄存器,RAM1288,P0驱动器,P2驱动器,ROM48K,P0锁存器,P2锁存器,B寄存器,暂存器TMP1,ACC,PC值递增器,堆栈

3、SP,暂存器TMP2,缓冲器,程序地址寄存器,DPTR,程序计数器PC,指 令 寄 存 器指 令 译 码 器定 时 控 制,ALU,PSW,中断、串行口和定时器,P3驱动器,P3锁存器,P1驱动器,P1锁存器,OSC,PSENALEEARST,VccVss,P0.0P0.7 P2.0P2.7,P1.0P1.7 P3.0P3.7,XTAL1,XTAL2,1 存储器空间及结构,片外ROM,RAM(8052/8032),特殊功能寄存器,数据缓冲区RAM位寻址区工作寄存器区0 3组,片内ROM(EA=1),外部RAM,片外ROM(EA=0),程序存储器 内部数据存储器 外部数据存储器,0FFFH,0,

4、0FFFFH,1000H,0FFH,0FFFH,0,0FFFFH,0,0,20H1FH,80H,0FFH,80H,7FH,30H2FH,位寻址区,(MSB)(LSB),置“1”,2.CPU,组成 ALU:运算器 控制器:完成算术、逻辑运算 特殊功能寄存器:ACC、B、PSW、SP、DPTR 通用寄存器:R0R7,并行I/O口(1)8031 P1口位结构,D Q 锁存器CP Q,P1.XPIN,读锁存器(读端口),Vcc,管脚,三态门 1,T,内部上拉电阻,三态门 2,读引脚,内部总线,写锁存器,(2)8031 P3口位结构,D Q 锁存器CP,P3.XPIN,读锁存器,Vcc,管脚,三态门 1

5、,T,内部上拉电阻,三态门 2,读引脚,内部总线,写锁存器,第二输出功能,第二输入功能,(3)8031 P2口位结构,D Q 锁存器CP,P2.XPIN,读锁存器,Vcc,管脚,三态门 1,T,内部上拉电阻,三态门 2,读引脚,内部总线,写锁存器,MUX,地址 控制,(4)8031 P0口位结构,D Q 锁存器CP Q,P0.XPIN,读锁存器,Vcc,管脚,三态门 1,T,三态门 2,读引脚,内部总线,写锁存器,MUX,地址/数据 控制,T,4 定时器,组成:T0 T1特点:作计数器 作定时器 长度:16位 可编程 定时计数到可向CPU发中断,5 中断系统,中断源:五个 INT0 INT1

6、T0 T1 串行口特点:中断入口固定 有两级中断 6 串行口特点:可编程 全双工,3.2 8051单片机引脚及功能,特点:各型号芯片互相兼容 双列直插式芯片引脚:VSS 地 VCC 电源 并行口:P0P3 有第二功能 ALE/PROG:地址锁存/编程脉冲输入(8751)PSEN:外部程序存储器读选通信号 EA/VPP:外部ROM选择信号/编程电源(8751)RST/VDP:复位/RAM备用电源 XTAL1 XTAL2:晶振输入端,3.3 MCS-51单片机工作方式,复位方式:CPU复位到初始状态 PC=0000H ACC=00H PSW=00H SP=07H P0P3=0FFH 程序执行方式:

7、从ROM的0000H开始执行单步执行方式:每次执行一条指令掉电和节电方式:用备用电源维持RAM和SFR编程和校验方式:对内部EPROM编程和校验,3.4 MCS51的时序 3.4.1 机器周期和指令周期,1 机器周期:包括12个振荡周期(时钟周期)2 一个机器周期分为六个S状态:从S1S6。3 每个S状态由两拍组成,称为P1、P2所以,一个机器周期可以表示为:S1P1、S1P2、S2P1、S6P2,S1 S2 S6P1 P2P1 P2 P1 P2,第一周期(机器周期)第二周期,时钟,S1P1 P2,ALE,S1 P2,S4 P2,S1 P2,S4 P2,S1 P2,1字节1周期指令。例:MOV

8、 A,R0;机器码:E8 读操作码 读操作码(由于PC指针未加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字节1周期指令。例:MOV A,30H;机器码:E530 读操作码 读第二字节 读下一指令,1字节2周期指令。例:RET;机器码:22 读操作码 读下一指令 读操作码(无效),第一周期(机器周期)第二周期,3.4.2 MCS51的取指/执行时序,时钟,3.4.3 外部存储器读周期,(不执行MOVX指令),ALE 锁存低8位地址

9、 锁存低8位地址,P1 P2 P1 P2 S1 S2 S3 S4 S5 S6 S1,选通 ROM,PSEN 读数,(80H)(80H),RD、WR,P2 地址 A15A8 地址 A15A8,(00H)(74H)(01H)(28H),P0A7A0 A7A0,(执行MOVX指令),P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2,第一周期 第二周期,S6 S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6,ALE 锁存 锁存,PSEN 读数,RD、WR 读、写,

10、(80H)(82H),P2 PCH输出 PCH或P2口输出,(00H)(E0H)(12H)(56H),指令 外部RAM 外部RAM 无效 低8位地址 数据,P0 PCL,3.5 MCS-51外部扩展,PSENRD8031WRP2EAALEP0,锁存器,控制总线高8位地址线A15A8地址总线低8位地址线A7A0数据总线D7D0,锁 存 器,74LS273功能表,74LS377功能表,74LS373功能表,8282功能表,CLK273CLR,CLK377G,G373OC,STB8282OE,ALE,ALE,ALE,ALE,+5V,3.5.1 程序存储器扩展,P2.7P2.6P2.5P2.4P2.3

11、P2.2 P2.1P2.0ALE 8031P0.7P0.0EA PSEN,CE2716A10A9A8A7A0O7O0OE,G74LS373,8,8,3.5.2 数据存储器扩展,P2.7P2.6 8031P2.5P2.4P2.3P2.2 P2.1P2.0ALE P0.7P0.0EARDWR,CS6116A10A9A8A7A0D7D0OEWE,G74LS373,8,11100100,译码器,8,第四章 MCS-51单片机的指令系统,内容 指令和指令程序 寻址方式 指令 传送指令 运算指令 控制指令,4.1 指令和指令系统,4.1.1 指令和助记符 指令:计算机能识别和执行的命令 指令形式:二进制码

12、或机器码 特点:机器真正执行语言、不便记忆 构成:操作码 操作数 由机器码的集合构成机器语言 助记符:由助记符号表示的机器指令 特点:便于记忆、不能直接执行 由助记符构成的语言称汇编语言,4.1.2 指令的字节数:单字节(49条)、双字节(45)、三单字节(17),4.2 寻址方式 1 寄存器寻址:以通用寄存器作为操作数 通用寄存器:R0R7 例:MOV A,R0 2 直接寻址:直接给出操作数地址 例:MOV A,20H 3 立即寻址:操作数为8位或16位二进制数 例:MOV A,#30H,寄存器间接寻址:以寄存器给出操作数的地址 例 MOV A,R0变址寻址:以基址寄存器加上一个相对量为操作

13、数地址。例 MOVC A,A+PC相对寻址:相对转移指令中以相对偏移量为操作数 转移目的地址=源地址+转移指令字节数+rel 例 2000H SIMP rel(8位有符号数)若 rel=40H 目的地址=2000H+2+40H=2042H rel=0FEH 目的地址=2000H+2+(-2)=2000H,位寻址 在指令中给出一位二进制数的操作数地 址 位地址区域:内部RAM 20H2FH共128位 某些特殊功能寄存器(地址能被8整除)位地址表示:(1)用位地址00HFFH表示 20H2FH单元中:位地址=(单元地址-20H)*8+位数(07)特殊功能寄存器:位地址=单元地址+位数(07),(2

14、)用“单元地址.位”表示 例 20H.5 2FH.7.(3)用“寄存器名.位数”表示(SFR)例 P0.1 P2.0 P3.7 ACC.7(4)用伪指令表示,MCS-51指令分类:共有111条指令分为五大类(1)数据传送指令:28条(2)算术运算指令:24条(3)逻辑移位指令:25条(4)控制转移指令:17条(5)位操作指令:17条.,符号定义:Rn:工作寄存器组 R0R7#data:8位立即数 direct:8位直接地址.用于寻址内部RAM Ri:寄存器间接寻址 Ri=R0 或 R1#data16:16位立即数 DPTR:16位寄存器间接寻址,4.3 数据传送指令,4.3.1 内部RAM之间

15、数据传送 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 间接寻址 MOV A,Ri;A(Ri)MOV Ri,A;(Ri)A MOV direct,Ri;(direc

16、t)(Ri),4 寄存器寻址 MOV A,Rn;A Rn MOV Rn,A;Rn A MOV direct,Rn;(direct)Rn 注:传送指令不影响标志位4.3.2 外存的传送指令 1 16位地址传送指令 MOV DPTR,#data16 DPTR可以用于寻找RAM或ROM中数据,2 访问外部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 堆栈操作指令 1 进栈 格式:PUSH direct 操作:SP=SP+1(direct)(SP)例 PUSH

17、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 特点:交换指令是在A及内部RAM之间进行交换 交换后除标志寄存器受A内容变化影响外,其它标志位不变,4.4 算术运算指令,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

18、A+data 注:加法运算影响标志位,例 MOV A,#0FFH ADD A,#0FH 求PSW中各标志位状态 11111111+00001111 100001110 Cy=1 P=1 AC=1 OV=0 注意: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结果完全一样,4.4.3 加1指令 INC A;A A+1 INC Rn;Rn Rn+1 IN

19、C direct;(direct)(direct)+1 INC Ri;(Ri)(Ri)+1 注:(1)与ADD指令的区别:ADD指令影响各标志位 INC指令不影响各标志位(除加A时影响P外)(2)INC指令一般用来修改地址,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)作为有符号数时溢出判断规则为:正数-负数结果为负则溢出 负数-正数结果

20、为正则溢出,减1指令 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标志 乘法:Cy=0,P由A中1的奇偶性决定 B=0 则OV=0 否则OV=1 除法:Cy=0,P由A中1的奇偶性决定 B=0 则OV=1 否则OV=0,例:如果A0B4H,B

21、11H,求执行指令 MULAB后的结果。因为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,结果正确,3 数据指针加1指令 INC DPTR 操作:DPTR=DPTR+1 特点:不影响标志位 例 编程对DP

22、TR减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 逻辑“与”运算指令 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=85

23、H R7=0FFH ANL A,R7 则 A=85H,4.5.2 逻辑“或”运算指令 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 逻辑“异或”运算指令 XRL A,Rn(direct,Ri,#data)XRL direct,A XRL direct,#data 特

24、点:按位“异或”即: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 累加器清零及取反指令 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 R

25、LC A RR A RRC A,A7 A0,A7 A0,Cy,A7 A0,A7 A0,Cy,SWAP A;A03 A47,控制转移指令,符号定义: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 短转移指令 SJMP rel 操作:PC=PC+2+rel 范围:相对现PC地址:-128+127 特点:相对寻址,4

26、 变址方式转移指令 JMP A+DPTR 操作:A+DPTR PC 范围:64K 特点:间接寄存器寻址(用于分支程序),4.6.2 条件转移指令 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 一般格式:CJNE 数1,数2,rel 操作:当 数1 数2,PC=PC+3+rel 否则 PC=

27、PC+3 数1 数2:Cy=0,3 减1条件转移指令 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字节 操作:PC=PC+2 SP=SP+1,PC07(SP)SP=SP+1,PC815(SP)addr11 PC010 调用范围:2K,LCALL addr16 长度:3字节 操作:PC=PC+3 SP=SP+1,PC07(SP)SP=SP+1,PC815(SP)addr16 PC015 调

28、用范围:64K 2 返回 子程序返回 RET,操作:(SP)PC815 SP=SP-1(SP)PC07 SP=SP-1 中断子程序返回 RETI 操作:(SP)PC815 SP=SP-1(SP)PC07 SP=SP-1 清除中断优先级状态触发器 4.6.4 空操作指令 NOP 操作:PC=PC+1,4.7 布尔变量操作指令,4.7.1 位传送指令 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 位置位指令 CLR C;0

29、 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没有异或命令,4.7.4 位控制转移指令 1 以Cy为条件的转移指令 JC rel 两字节指令 操作:if Cy=1 then PC=PC+2+rel 转移 else PC=PC+2 JNC r

30、el 两字节指令 操作:if Cy=0 then PC=PC+2+rel 转移 else PC=PC+2,2 以位地址为条件的转移指令 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,第五章 汇编语言程序设计,5.1 汇编语言源程序的格式 格式:标号:操作码

31、 操作数;注释 1 标号和注释可以省略 2 每部分之间可有一个或多个空格 3 标号后紧跟“;”,注释紧跟“;”4 有些指令无操作数 5.1.1 标号 组成:由8个或8个以下字符组成 1 字符集为 A,BY,Z,09,_ 2 标号必须以英文字母开头 3 标号不能有以上字符集以外字符及保留字,5.1.2 操作数 种类:立即数、直接地址、寄存器和偏移量 1 立即数:为“#”后面跟数字,如#30H等(1)数据可用各种进制数据表示(后面用B、Q、D、H表示)(2)数据高位为AF时,数据前面加“0”2 直接地址:(1)数据(各种进制)如 MOV A,30H(2)符号地址(已定义)如 MOV R1,BUFF

32、ER1(3)特殊功能寄存器 如 MOV A,P0(4)表达式 如 MOV A,ADDR1+2,3 寄存器 通用及特殊寄存器 如 A、B、Rn、P1等等 4 偏移量rel 除有数据、标号地址外,还有“$”$:表示本条指令地址 5.1.3 注释 作用:为非执行语句,用于解释语句作用 汇编时“;”后面的不进行汇编,均为注释 所以注释可用英语、汉语等各种形式,5.2 伪指令 5.2.1 ORG 汇编起始地址 格式:标号:ORG 地址 例 ORG 2000H MAIN:MOV A,20H.注:若无 ORG 则汇编时将程序从0000H开始存放 5.2.2 END 汇编结束 格式:格式:END END必须放

33、在所有程序的后面,5.2.3 EQU 赋值命令 格式:字符名 EQU 数或符号 作用:将数或符号的值赋给字符名,可以作为数据、地址 符号:(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紧跟程序,则紧跟程序顺序存放(2)可用ORG

34、确定数据列表存放地址 例 ORG 2000H TAB1 DB 12H,10,A,6 TAB2 DB 45H,67H,5.2.6 DW 定义字命令 格式:标号:DW 字数据列表 功能:在程序ROM区开辟若干单元存放数据(1)存放顺序是先高(低地址)后低(高地址)(2)若数据列表中有字节数,则高位补零 例 ORG 1500H TAB1 DW 1234H,56H TAB2 DB 78H,5.2.7 DS 定义空间命令 格式:标号:DS 表达式 功能:保留表达式数值的字节空间 例 ORG 2000H A1:DS 10H A2:DB 10H,20H5.2.8 BIT 位地址符号命令 格式:字符名 BIT

35、 位地址 功能:将位地址赋给字符名 例 START BIT P1.0 STOP BIT P1.1,第六章 微型计算机的输入/输出,6.1 I/O接口电路概述6.1.1 I/O接口电路的作用 1 速度匹配 解决高速计算机与低速外设之间的工作速度的匹配 2 提供输入/输出过程的状态信号 接口根据外设及计算机的状态给出双方的“握手”信号 3 解决计算机与外设之间信号的不一致 电平转换 编码转换 数模转换 串并转换等,6.1.2 接口与端口的差别 接口:计算机与外设交换信息的通道 如 串行接口 数模转换接口等 特点:有两个接口面分别与计算机和外设相连 每个接口可以有多个端口 端口:接口中与计算机相连的

36、各个信息口 如数据输入口 数据输出口 控制口等 特点:每个端口对应一个口地址,6.1.3 外设的编址方式 1 外设端口单独编址 优点:(1)不占用存储器地址(2)I/O指令短,执行速度快 缺点:(1)I/O指令少,功能简单(2)需要CPU具有专门的I/O控制线 增加了CPU控制逻辑的复杂性 2 外设与存储器统一编址 优点:(1)指令功能齐全(2)I/O口地址范围广,缺点:(1)I/O口占用了存储器地址空间(2)操作指令比专用I/O指令执行时间长 6.1.4 将外设当作数据存储器访问 1 MCS51与外设是采用存储器统一编址方式 2 所用信号线与数据存储器相同 3 用访问外部数据存储器的指令访问

37、外设,6.2 输入/输出传送方式,6.2.1 无条件传送 可用无条件传送的条件 1 外设的工作速度足够快 2 两次传送数据的时间足够长 特点:优点:控制程序简单 缺点:它必须是在确保外设已准备就绪的情况下 使用,6.2.2 查询式传送 计算机与外设间通过状态信息确认数据的传送 可用查询传送的条件 1 外设必须有反映工作状态的信号 2 接口能分别提供数据端口和状态信息端口,6.2.3 中断传送方式 由外设事件向CPU提出请求,CPU向外设提供相应的服务 特点:1 在外设允许时进行传送 2 与程序查询方式相比,中断控制方式的数据传送大大提高了CPU的工作效率 3 硬件接口复杂6.2.4 直接存储器

38、存取(DMA)方式 外设与内存之间直接进行交换数据的方式 不需要CPU干预,也不需要软件介入,由硬件完成,第七章 MCS-51的中断和中断接口,7.1 中断概述 7.1.1 中断源 中断源:引起中断请求的事件或来源 中断源分类:软件中断源和硬件中断源 软件中断:中断指令、指令执行错误中断 硬件中断:由计算机系统故障源、外设引起的 中断。7.1.2 硬件中断分类:屏蔽中断:CPU可以通过设置允许或禁止该类 中断申请 非屏蔽中断:CPU必须处理该类中断,7.1.3 中断的开放与关闭 对可屏蔽中断可用相应的方法设置CPU开放或 止中断源的申请7.1.4 中断源的判别和中断优先级 1 单线中断,软件查

39、询,2 多线中断 由多条中断申请线构成,每条申请线对应一个中断事件 3 矢量中断 中断源的判别是通过中断源提供的中断矢量来实现的 4 中断优先级 中断有下列情况时应利用优先级来管理(1)多个中断同时申请(2)多个中断有嵌套,7.2 中断处理过程 7.2.1 中断请求 由中断源向CPU发出请求信号 7.2.2 中断响应 1 中断响应条件(1)该中断未禁止(2)一条指令执行完毕(3)当前中断源优先级高于正执行的中断 2 中断响应操作(1)终止现行程序,保护断点(2)确定中断程序入口,转入中断服务程序,3 中断入口地址的获得(1)固定中断入口(2)从中断地址表获得 7.2.3 中断处理 1 保护现场

40、 保护断点处的有关寄存器的内容 2 处理开关中断 根据要求控制中断的允许与禁止 3 执行中断服务程序 根据不同的中断源编制不同的中断程序 4 恢复现场 恢复断点处保护的有关寄存器内容,5 结束中断服务程序 利用中断返回指令返回断点处继续原程序的执行 7.2.4 中断返回,7.3 MCS-51的中断系统极其控制 7.3.1 中断系统的一般功能 中断系统:对各中断源进行管理的系统 其主要任务如下:1 对中断申请的屏蔽或开放 MCS-51没有专门指令禁止或开放中断 可通过设置有关寄存器的相应位实现 2 中断的排队 对多个中断源利用优先级来管理 MCS-51有两级中断优先级,3 中断响应 保护断点 转

41、入中断程序 MCS-51保护PC 转入固定入口 4 中断的撤除 返回主程序前,清掉中断申请标志 MCS-51中有些可自动清除,有些则必须用 指令清除 7.3.2 MCS-51中断源及有关寄存器 1 中断源 外部中断:INT0 INT1 定时器中断:T0 T1 串行口中断:SBUF,INT0 INT1中断:输入引脚分别为P3.2和P3.3,有电平触发(低电平)和边沿触发(负边沿)方式 T0 T1中断:内部中断,当计数/定时溢出(从全1变成全0)时产生中断请求 SBUF中断:内部中断,当串行口发送或接收一个字符后产生中断请求 2 中断标志位和有关寄存器(1)定时器控制寄存器TCON TCON的单元

42、地址为88H,位地址88H8FH。注意:TCON寄存器中的TR1和TR0是控制定时器的启、停,与中断无关。,(2)串行口控制寄存器串行口控制器SCON的控制位SCON单元地址为98H,位地址98H9FH。注意:这里只给出了与中断有关的位(占有SCON的98H、99H两位。)(3)中断允许寄存器中断允许寄存器IE的控制位,IE实现对中断的开放的两级控制。所谓两级控制(见前中断系统内部结构示意图),即是指在IE寄存器中可以看到有前后两路控制开关来控制通路的开断。(4)中断优先级寄存器中断优先级寄存器IP的控制位 某位为0则对应中断源为低优先级,反之为高优先级 同级:(高)INT0 T0 INT1

43、T1 串行口(低),中断系统内部结构示意图,IE0TF0IE1TF1TIRI,EA EX0 ET0 EX1 ET1 ES,1010 101010,高低,高低,+,IT0=0,IT0=1,IT1=0,IT1=1,INT0,INT1,P3.2,P3.3,T0 定时器0,P3.4,T1 定时器1,P3.5,TxD 串行发送,P3.1,RxD 串行接收,P3.0,PX0,PT0,PX1,PT1,PS,TCON,IE,IP,高优先级中断请求,低优先级中断请求,向量,向量,中断源 中断请求标志位 中断允许 中断总允许 中断 TCON 控制位 控制位 优先级 SCON IE IP,7.3.5 MCS-51的

44、中断响应 1 中断响应过程(1)中断申请(2)标志位置1 INT0:IE0 INT1:IE1 T0:TF0 T1:TF1 串行口:RI(接收)TI(发送)(3)CPU响应中断,转入相应中断服务程序 2 中断响应的条件(1)没有同级或高级的中断正在响应(2)必须执行完一条指令后才能响应(3)在访问IE、IP或RETI后再执行一条指令,3 中断入口地址的确定以上五个入口地址之间,各有8个字节单元的地址空间。,7.3.7 中断请求的撤除 中断撤除:取消已响应中断源的申请 1 标志消除(1)INT0、INT1、T0、T1 响应中断后硬件自动复位TCON中对应的标志(2)串口中断申请标志RI、TI 硬件

45、自动置位,但必须软件复位RI或TI 清RI:中断返回前用 CLR RI 清TI:中断返回前用 CLR TI,2 中断源消除(1)边沿触发:不须消除(2)电平出发:需给S端一个负脉冲 例 ANL P0,#0FEH ORL P0,#01H,INT0,8051,P1.0,Q D,S CP,中断请求,7.3.8 中断系统初始化 任务:1 开中断 INT0:SETB EX0 或 MOV IE,#01H T0:SETB ET0 或ORL IE,#02H INT1:SETB EX1 T1:SETB ET1 SBUF:SETB ES 最后 SETB EA,2 确定各中断源的优先级(1)初始状态 所有中断源处于

46、低优先级(2)设置优先级 例:设INT0为高优先级 则:MOV IP,#01H 或 SETB PX0 例:设T0为低优先级 则:ANL IP,#0FDH 或 CLR PT0,3 对外中断定触发方式 例 定INT0为边沿出发,INT1为电平出发 SETB IT0 CLR IT1 也可用其它指令实现 ORL TCON,#01H ANL TCON,#0FBH 4 定转移地址 例 已知外部中断1的服务程序在1000H开始区域 T0服务程序在2000H ORG 000BH ORG 0013H LJMP 2000H LJMP 1000H,7.4 MCS-51外部中断源的扩展 7.4.1 借用计数/定时器溢

47、出中断扩展 可将T0、T1两个中断扩展成外部中断使用 方法:(1)置定时器为计数方式(2)设定时器初值为全1(3)引脚T0(P3.4)、T1(P3.5)为中断申请端(4)在定时器中断入口放外部中断服务程序 地址 例 T0:000BH LJMP INTP1 T1:001BH LJMP INTP2,7.4.2 用查询方式扩展中断源 中断过程:IX INT0 响应INT0 转至 0003H LJMP INTR 7.4.3 用8259中断控制器扩展中断源,8051,P1.0,P1.1,P1.2,I1,I2,I3,INT0,第八章 MCS-51的并行接口,8.1 MCS-51内部I/O口极其应用 8.1

48、.1 MCS-51的I/O口直接用于输入/输出,锁存器,D,CP,Q,Q,读锁存器,数据总线,写入,读引脚,P1.X,VCC,P1并行口逻辑图,1 输出:直接将数据送至PX口锁存器 MOV P0,A MOV P1,R1 MOV P0,R1 2 输入:有两种读方式(1)读引脚 需先将锁存器置1,再读PX口 例 读P1口状态 MOV A,#0FFH MOV P1,A MOV A,P1,(2)读锁存器(读改写)利用某些指令可以首先读取锁存器中数据,进行处理,然后再把结果从新写入锁存器 此类指令:ANL,ORL,XRL,CPL,INC,DEC,DJNZ CLR 等 例 ANL P0,A;读P0,与A再

49、送P0 8.1.2 MCS-51的I/O口改组为非8位端口,8.1.3 MCS-51并行I/O口作总线扩展外设 将P0、P2、P3口用作数据、地址和控制总线 与外部RAM统一编址,8051,锁存,译码,外设,RAM,P2,P0,P3,例 设外设8255的地址为2000H2003H,RAM的地址为10001FFFH,试从1000H单元取数送到8255的A口输出 MOV DPTR,#1000H MOVX A,DPTR MOV R0,A MOV DPTR,#2003H MOV A,#80H MOVX DPTR,A MOV A,R0 MOV DPTR,#2000H MOV DPTR,A SJMP$,8

50、.4 MCS-51内部定时/计数器极其应用,特点:(1)有两个定时/计数器T0、T1(2)最大计数长度为16位(3)为加1计数器(4)定时/计数器可以有多种工作方式8.4.1 MCS-51内部定时/计数器的工作方式 方式0:13位计数器 方式1:16位计数器 方式2:可自动重装计数初值的8位计数器 方式3:T0为两个8位计数器,T1停止计数,方式0:13位计数(T0、T1)13位初值分别放在TH的高8位和TL的低5位 例 已知计数初值为1733H=1011100110011B 则 TL=10011B=13H TH=10111000B=0B9H 范围:18192方式1:16位计数(T0、T1)1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号