《MCS51单片机结构及原理讲.ppt》由会员分享,可在线阅读,更多相关《MCS51单片机结构及原理讲.ppt(65页珍藏版)》请在三一办公上搜索。
1、2.2 MCS-51单片机微处理器,2.3 MCS-51单片机存储器组织,2.4 MCS-51单片机并联I/O及应用,2.1 MCS-51单片机总体概括,第 二 章 MCS-51单片机组成结构,下页,8位CPU,片内128B*3 RAM,片内8KB ROM/EPROM(8031无),特殊功能寄存器区 SFR,2个优先级的5个中断源结构,4个8位并行口:P0、P1、P2、P3,一、MCS-52单片机的主要,上页,下页,回目录,功能特点,3个16位定时器/计数器T/C,1个全双工串行口UART,布尔处理机 位处理机,(10)64KB外部RAM地址空间,(11)64KB外部ROM地址空间,(12)片
2、内时钟电路及振荡器,(13)指令系统(111条),上页,下页,回目录,通用异步收发器,半双工 即可接受又可发送,但不同时,单工 只接收或只发送,可同时接收或发送,区别:8051/8751单片机中含有 ROM/EPROM,而 8031中没有,使用时需外接一片 EPROM,二、MCS-51系列单片机的差异,51子系列(基本型),上页,下页,回目录,8031,8051,基本型,8031,52子系列,MCS-51单片机内部结构分析,上页,下页,回目录,CPU,内部 总线,8051/8751,面向用户的结构,8031,共40条引线,用户的内特性,用户外特性,图2-1 MCS-51功能 框图,逻辑结构框图
3、,1、中央处理器,2、存储器,3、I/O口,MCS-51单片机有 4 个 8 位并行口,1 个全双工串行口 UART,2 个 16 位的 T/C。,由运算器和控制逻辑组成。主要功能是产生各种控制信号,控制存储器、I/O端口的数据传送、数据运算、及位处理等操作等。采用SFR集中控制,程序存储器ROM/EPROM(8031中没有,需外接),存放程序和编好的表格及常数等。,数据存储器RAM:存放中间结果、数据暂存、缓冲、及存放标志位等。,上页,下页,回目录,8051/8751,40引脚,双列直插式结构,上页,下页,回目录,RST/VPD,Vss,Vcc,MCS-51单片机的引脚功能,用户外特性,一、
4、51单片机的管脚功能,1、按功能分类,I/O口线 P0、P1、P2、P3 共32条,电 源 Vcc、Vss 共2条,时 钟 XTAL1、XTAL2 共2条,上页,下页,回目录,数据/地址复用口,I/O口,双功能口,2、管脚的功能,(1)电源与时钟,Vcc:接+5V电源端,Vss:接地端,XTAL1:片内振荡电路输入端,XTAL2:片内振荡电路输出端,内时钟方式:,在XTAL1、XTAL2上外接定时元件,使其形成自激振荡器。,时钟电路:,内时钟方式,外时钟方式,上页,下页,回目录,定时元件采用由石英晶体和电容组成并联谐振电路。晶体和电容尽可能靠近单片机芯片。,19,18,C1,C2,振荡频率1.
5、2MHz24MHz,晶振,内时钟方式电路图,上页,下页,回目录,外时钟方式:XTAL1接地,XTAL2接外部振荡器,外时钟方式电路图,外部振荡源,+5V,19,18,上拉电阻,频率低于12MHz,上页,下页,回目录,OC门,几个概念:,振荡周期:Tc=晶振频率fosc(或外加频率)的倒数时钟周期:2个振荡周期状态周期:Ts=1个时钟周期机器周期:Tm=6个状态周期(Ts)=12个振荡周期(Tc)指令周期:Ti:执行一条指令所需的机器周期(Tm)数,牢牢记住:振荡周期=晶振频率fosc的倒数;,1个机器周期=12个振荡周期;,1个指令周期=1、2、4个机器周期,复位信号:高电平复位CPU,低电平
6、CPU工作,ALE,名称,功 能,片外取指信号(片外程序存储器读)输出端低电平有效。通过P0口读回指令或常数。控制的是片外程序存储器,RESET,控制信号,地址锁存信号。ALE低电平时,P0口出现数据信息;ALE高电平时,P0口出现地址信息。,程序存储器选择信号,上页,下页,回目录,0 时,选外部ROM;,1,地址小于8k时,选内部ROM,地址大于8k时,选外部ROM,P0口是数据/地址复用口,用下降沿 锁存P0口的低8位地址到外部锁存器,复位电路,RESET高电平有效,上页,下页,回目录,+5V,10uF,10K,Vcc,RST,GND,上电复位,10uF,10K,Vcc,RST,GND,手
7、动&上电复位,1K,+5V,表 2-2 复位后内部寄存器状态,PC 0000H,ACC 00H,B 00H,PSW 00H,SP 07H,DPTR 0000H,P0P3 0FFH,IP 00000B,IE 000000B,TMOD 00H,TCON 00H,TH0 00H,TL0 00H,TH1 00H,TL1 00H,SCON 00H,SBUF 不定,PCON 0 000B,上页,下页,回目录,P1口:准双向口,读锁存器,写锁存器,内部总线,读引脚,内部上拉电阻,0,1,0,1,0,1,输出,输入,上页,下页,回目录,“读引脚”,P1口位结构,作通用I/O口输出时:,将“1”写入锁存器,输出
8、高电平,将“0”写入锁存器,输出低电平,作通用I/O口输入时:口锁存器必须写“1”,先将“1”写入锁存器,使T截止,口线上的数据取决于外部输入,P1口的驱动能力:驱动4个TTL门,上页,下页,回目录,内部总线为,引脚为,“高电平”,“低电平”,“1”,“0”,准双向口,I/O口,P0口:双向 复用口,地址/数据,控制,读锁存器,写锁存器,内部总线,读引脚,P0口位结构,Vcc,1,1,0,0,1,“读”,0,1,1,0,0,P0口作地址/数据复用总线,上页,下页,回目录,D0D7,A0A7,P0口作地址/数据复用总线,从P0口输出数据或地址信息的过程:,控制端高电平,MUX接反相器输出端,输出
9、级T1连接,与门开锁,信号驱动T0,驱动电路接通,P0口输出数据/地址信息,从P0口输入数据信息:,引脚信号从输入三态缓冲器进入内部总线,上页,下页,回目录,“读”,P0口:作通用I/O口使用,外接上拉电阻,0,1,0,0,写,读修改写功能,上页,下页,回目录,1,ANL P0,A,(P0),&(A),P0,“读”,Vcc,控制端低电平,与门输出低电平,T0截止,输出漏级开路,外接上拉电阻,P0口作通用I/O口使用输出时:,P0口作通用I/O口使用输入时:,先将锁存器写“1”,T0、T1截止,读引脚信号,P0P3口线上的“读修改写”是通过上面一个三态门实现的。,P0的驱动能力:驱动8个TTL门
10、,上页,下页,回目录,P0口作通用I/O口端口操作:,51单片机的4个8位的I/O口,P0.0P0.7:8位数据口和输出低8位地址复用口(复用时是双向口;不复用时也是准双向口)P1.0P1.7:通用I/O口(准双向口),P2.0P2.7:输出高8位地址(用于寻址时是输出口;不寻址时是准双向口)P3.0P3.7:具有特定的第二功能(准双向口),注意:在不外扩ROM/RAM时,P0P3均可作通用I/O口使用,而且都是准双向I/O口(例如:AT89C51)!,小结,A0A7,D0D7,I/O,控制总线CB,二、51单片机的三总线结构,数据总线 DB,地址总线 AB,利用三条总线,可方便地进行系统扩展
11、,晶振 1.212MHZ,上页,下页,回目录,地址总线AB(A0 A15)宽16位 片外寻址64KB,P0.0P0.7,A0A7,P2.0P2.7,A8A15,数据总线DB(D0 D7)宽8位 双向、三态,P0.0P0.7,D0D7,控制总线CB 宽12位,P3口的第二功能状态加上控制线,ALE,RESET,上页,下页,回目录,2.3 MCS-51的存储器组织,存储器,数据存储器,程序存储器,对单片机来讲,ROM和RAM的寻址机构和寻址方式是分开的。,上页,下页,回目录,ROM、EPROM E2ROM或FLASH,RAM,单片机,容量小仅256B,容量大达64KB,普林斯顿结构,哈佛结构,普林
12、斯顿结构,区别:8051/8751单片机中含有 ROM/EPROM,而 8031中没有,使用时需外接一片 EPROM,MCS-51系列单片机的存储器差异,51子系列(基本型),上页,下页,回目录,基本型,52子系列,从物理上分,MCS-51分为4个存储空间,片内程序存储器 ROM,片内数据存储器 RAM,片外程序存储器 ROM,片外数据存储器 RAM(I/O),从逻辑上分,MCS-51分为3个逻辑空间,片内、外统一编址的程序存储器地址空间,256B或384B片内数据存储器地址空间,64KB片外数据存储器或I/O地址空间,上页,下页,回目录,片内固有,需要扩展,需要扩展,从功能上分,MCS-51
13、分为5个地址空间,程序存储器 ROM,片内数据存储器 RAM,特殊功能寄存器区 SFR,位寻址区,外部扩展的数据存储器 RAM(I/O)区,上页,下页,回目录,一、程序存储器,8051/8751内部有4KB ROM/EPROM,地址:0000H 0FFFH,8051/8751外部的ROM/EPROM,地址:1000H FFFFH,8031/8032内部没有ROM/EPROM,地址:0000H FFFFH,上页,下页,回目录,52 子系列内部有8KB ROM/EPROM,地址:0000H 1FFFH,52:2000H FFFFH,上页,下页,回目录,0000H,1FFFH,1FFFH,0000H
14、,2000H,FFFFH,8052,8031,51系列程序存储器配置图,4KB,0000H,1FFFH,1FFFH,0000H,2000H,FFFFH,8052/8752,52系列程序存储器配置图,8KB,上页,下页,回目录,二、内部数据存储器 RAM 地址:00H FFH,内部数据存储器从物理上分为几个不同的块:,MCS-51,128B RAM(地址00H7FH),128B SFR(地址80HFFH),MCS-52,128B RAM(地址00H7FH),128B SFR(地址80HFFH),上页,下页,回目录,256B,384B,间接寻址,直接寻址,128B RAM(地址80HFFH),间接
15、直接皆可,上页,下页,回目录,MCS-51内部RAM配置,直接寻址,内部数据存储器配置图,地址重叠,256B,384B,间接寻址,仅52系列有,1、内部RAM区(MCS-51),MCS-51内部RAM只有128B,内部RAM区分为三部分,地址:00H7FH,上页,下页,回目录,7FH00H,80个字节为真正的 RAM,16个字节分为128个RAM位,32个字节分为四个工作寄存器区每个区8个工作寄存器,0FH08H,17H10H,2FH20H,7FH30H,80个字节RAM,只能按字节寻址,16个字节分为128个RAM位,可按位亦可按字节寻址,四个工作寄存器区,内部RAM区功能配置图,00H,1
16、FH,07H00H,1FH18H,上页,下页,回目录,亦可作普通RAM使用,通用寄存器组 32个RAM单元,共4个区,每个区8个通用工作寄存器 R0R7,“区”的选择由程序状态字PSW中的RS1和RS0确定,上页,下页,回目录,位寻址区(16个RAM单元 VS 12个SFR),字节地址:20H 2FH,16个 RAM 字节共128个 RAM 位,位地址:00H 7FH,12个SFR中的93位具有位寻址功能,位寻址区,128个RAM位,93个SFR位,布尔处理机数据存储器的主要组成部分,上页,下页,回目录,共221位,直接地址能被8所整除的,构成,其中3位无定义,00H,20H,2FH,7FH,
17、1FH,30H,80H,FFH,52子系列才有的RAM区,普通RAM区,位寻址区,工作寄存器区,27H,22H,21H,20H,26H,24H,25H,23H,28H,2FH,单元地址,07 06 05 04 03 02 01 00,0F 0E 0D 0C 0B 0A 09 08,17 16 15 14 13 12 11 10,1F 1E 1D 1C 1B 1A 19 18,27 26 25 24 23 22 21 20,2F 2E 2D 2C 2B 2A 29 28,37 36 35 34 33 32 31 30,3F 3E 3D 3C 3B 3A 39 38,47 46 45 44 43
18、42 41 40,7F 7E 7D 7C 7B 7A 79 78,位地址,总共128个可按位寻址的位,片内RAM中有128个可按位寻址的位。位地址:00H7FH 分布在:20H2FH单元,指令:SETB 07H,用户RAM区(数据缓冲区)共80个单元,字节地址:30H 7FH,8051单片机复位时,堆栈指针SP指向 07H 单元,片内RAM的部分单元可用作堆栈,51的栈区不是固定的,为避开工作寄存器区、位寻址区,用户堆栈一般设置在 30H 7FH 之间,上页,下页,回目录,真正的RAM单元,SP 指针是可编程的寄存器,程序计数器PC,16位专用寄存器,寻址范围64KB,此时的程序是顺序执行的,
19、2.专用寄存器区,通电时自动复位,运行时可手动复位,复位 后,,PC的内容自动清零,用来存放下一条指令地址。CPU取指令时,,将PC内容经地址总线送到程序存储器,从该地址单元取回指令,译码并执行;同时,PC自动加1,如果程序需要转移,可在程序中安排转移或条件转移指令,(JMP或JNC)、调用子程序指令CALL等,上页,下页,回目录,23个专用(3个属于52)其中5个是双字节寄存器,PC物理上是独立的,其余22个属于SFR,共占用26个字节,累加器A 地址:0E0H,最常用的一个专用寄存器,大部分单操作数指令的操作数取自A,很多双操作数指令的一个操作数取自A,算术运算和逻辑运算的结果放在A或AB
20、对中,指令系统采用A 作为累加器的标识符,例:INC A,;执行A中的内容加1操作,ADD A,#data,上页,下页,回目录,位寻址功能,寄存器B 地址:0F0H,8位寄存器,与累加器 A 配合使用,一般用于乘除法运算,例:MUL A B,DIV A B,上页,下页,回目录,次累加器,作 一 RAM单元用,余 B,程序状态字PSW 地址:0D0H,8位寄存器,存放程序的状态信息,格式如下:,进/借位标志CY(PSW.7),加法运算时,如果D7有进位,则CY=1,否则CY=0,减法运算时,如果D7有借位,则CY=1,否则CY=0,布尔运算中被定义为位累加器,上页,下页,回目录,PSW,D7 D
21、0,CY,辅助进位标志AC(PSW.6),8位加法运算时,如果低半字节的D3向D4有进位,则 AC=1,否则AC=0,8位减法运算时,如果低半字节的D3向D4有借位,则AC=1,否则AC=0,标志F0(PSW.5),由用户定义,可用软件来使它置“1”、或清“0”,可由软件测试F0来控制程序流向,上页,下页,回目录,AC,工作寄存器区选择位RS1、RS0(PSW.4、PSW.3),通过软件来改变RS1、RS0的组合,以确定当前工作寄存器区。,上页,下页,回目录,PSW.4 PSW.3,用布尔操作来改变,溢出标志OV(PSW.2),作为有符号数加、减法时由硬件置位或清除,以指示运算结果是否溢出,执
22、行加/减法指令时,用Ci 表示i位向i+1有进/借位,a)第6位向第7位有进/借位,而第7位不向CY进/借位时,b)第6位不向第7位进/借位,而第7位向CY有进/借位时,OV=1,否则 OV=0,若OV=1,意味着加/减法的结果已超出了一个字节 有符号补码数 所表示的范围(-128+127),上页,下页,回目录,即做加法时,最高和次高位之一有进位,或做减法时,最高和次高位之一有借位则OV被置位,D7D6D5D4 D3D2D1D0,例:,0 1 0 1 0 1 1 0(+86)(正),0 0 1 1 0 0 1 0(+50)(正),0,0,0,1,0,0,0,1,此时C6=1、C7=0 则,D7
23、D6D5D4 D3D2D1D0,1 0 0 1 0 1 1 0(-106)(负),1,1,0,1,1,1,0,0,1,(+136)(正),(-197)(负),上页,下页,回目录,符号位,1,1 0 1 0 0 1 0 1(-91)(负),Cy,奇偶标志P(PSW.0),每个指令周期都由硬件置位或清零,以表示累加器A中值为“1”的位数的奇偶性,该标志可用于串行数据通讯,验证数据传输的可靠性,上页,下页,回目录,P=,1 A中1的个数为奇数,0 A中1的个数为偶数,?,思 考,后,程序状态字 PSW中 CY,AC,OV,P 的状态是什么?,上页,下页,回目录,D7D6D5D4 D3D2D1D0,0
24、 1 1 1 1 1 1 1(7FH),0 1 0 0 0 1 1 1(47H),0,1,1,0,0,0,1,1,(C6H),MOV A,#7FH,ADD A,#47H,执行第一条指令后P=1,执行第二条指令后P=0,此时C6=1、C7=0 则,上页,下页,回目录,堆栈指针 SP,8位寄存器,存放栈顶地址,保护CPU现场和断点地址,作用:,工作方式:“先进后出”或“后进先出”,数据压入堆栈时,SP自动加1,数据弹出堆栈时,SP自动减1,SP始终指向栈顶地址,上页,下页,回目录,中断时,转子时,栈区“向上生成”,按“先进后出”工作原则,由SP组织的内部 RAM区域,被称为堆栈。,例:堆栈操作,建
25、立堆栈,压入操作,弹出操作,A的内容,B的内容,MOV SP,#60H,PUSH A,PUSH B,POP direct,上页,下页,回目录,direct,栈 底,数据指针 DPTR,16位寄存器,高字节用DPH表示,低字节用DPL表示,对外部 RAM 或 I/O 口寻址,范围64KB,例:,MOVX A,DPTR,MOVX DPTR,A,;将外部RAM中地址为DPTR的单元内容读到A中,;将A中的内容写到外部RAM中地址为DPTR的单元,MOVC A,A+DPTR,;采用基址+变址的方法读程序存储器内的表格常数,;DPTR为基址寄存器,A为变址寄存器,上页,下页,回目录,(DPTR),A,(
26、A),DPTR,(A)+(DPTR),A,I/O 端口P0 P3 地址:80H 90H 0A0H 0B0H,专用寄存器P0 P3分别是端口P0 P3的锁存器,串行数据缓冲器 SBUF 地址:99H,存放欲发送的数据,存放已接收的数据,一个地址:99H,定时/计数器 T0 T1,MCS-51系列有2个16位定时/计数器T0、T1,MCS-52系列增加了1个16位定时/计数器T2,上页,下页,回目录,SBUF,两个缓冲器共用,“写”发送缓冲器,“读”接受缓冲器,MOV SBUF,A,MOV A,SBUF,其他控制寄存器,上页,下页,回目录,寻址空间64KB,采用寄存器间接寻址方式,间址寄存器有R0
27、、R1(256B),数据指针DPTR(64KB),采用MOVX指令单片机产生读/写信号,对外部RAM产生读写操作,3、外部数据存储器,FFFFH,0000H,上页,下页,回目录,MOVX A,Ri,MOVX A,DPTRi,MOVX Ri,A,MOVX DPTRi,A,“读”指令,“写”指令,通过三条总线扩展,MCS-51 CPU时序,一、机器周期、状态、相位,一个机器周期包括6个S 状态S1S6,每个S状态 分为2(拍)个振荡周期(相位P1,相位P2)。,1个机器周期 6个S状态12(拍)个振荡周期,采用主频为 12MHz 振荡源,每个机器周期为1S,上页,下页,回目录,又称为CPU周期,二
28、、典型指令的取指和执行时序,OSC,ALE,S1,S2,S3,S4,S5,S6,机器周期,读操作码 04H,读下一个操作码(丢掉)PC不增“1”,再读下一个操作码,(a)单字节单周期指令 如:INC A,上页,下页,回目录,机器周期,XTAL2,(a)单字节单周期指令,指令长度为一个字节,执行时间为一个机器周期,在S4P2期间的取指无效,PC不增“1”,在本周期的S6P2期间执行完毕,在S1P2期间读入操作码并锁存在指令寄存器中,上页,下页,回目录,读操作码 24H,读第二字节#data,再读下一个操作码,(b)双字节单周期指令 如:ADD A,#data,上页,下页,回目录,XTAL2,(b
29、)双字节单周期指令,指令长度为2个字节,执行时间为一个机器周期,在S4P2期间读入第2字节,在本周期的S6P2期间执行完毕,在S1P2期间读入操作码并锁存在指令寄存器中,上页,下页,回目录,读操作码 A3H,(c)单字节双周期指令 如:INC DPTR,上页,下页,回目录,读下一个操作码(丢掉)PC不增“1”,“+1”,XTAL2,(c)单字节双周期指令,指令长度为1个字节,执行时间为2个机器周期,因DPTR是16位的,即在本周期的S4P2及下一周期的2次取指无效,在第2周期的S6P2期间执行完毕,在S1P2期间读入操作码并锁存在指令寄存器中在后面3个ALE出现时(PC)不加1,上页,下页,回目录,而CPU是8位的,,需要2次运算,读操作码 E0H,不取指,不取指 无ALE,读下一个操作码(丢掉)PC不增“1”,上页,下页,回目录,XTAL2,MOVX类指令:,在S1P2期间读入操作码并锁存在指令寄存器中,在S5期间送出外部数据存储器地址,随后在S6 直到下一机器周期的S3期间送出或读入数据,在第2周期的S6P2期间执行完毕,上页,下页,回目录,
链接地址:https://www.31ppt.com/p-5439703.html