




已阅读5页,还剩72页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章 MCS-51 单片机的结构与原理,第2章主要内容,2.1 MCS-51单片机的结构 2.2 MCS51单片机引脚及功能 2.3 8051单片机存储器 2.4 CPU时序 2.5 复位及复位电路 2.6 输入/输出端口结构,退出,2.1 MCS-51单片机的结构,2.1.1 MCS-51单片机主要组成,一个8位的微处理器(CPU) 片内数据存储器RAM(128B/256B) 片内程序存储器ROM/EPROM(4KB/8KB) 四个8位并行I/O接口P0P3,每个口即可做输入也可做输出 2个定时器/计数器 五个中断源的中断控制系统 一个全双工UART(通用异步接收发送器)的串行I/O口 片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接.,MCS-51系列单片机性能表,型号带“C”表示所用的是CMOS工艺,具有低功耗的特点。如8051功耗为630mW,80C51功耗只有120mW,用于便携式产品中。,MCS-51单片机典型芯片的性能比较,MCS-51系列单片机有多种产品,典型的为8051/8751/8031,它们的外部引脚和指令系统完全兼容,只是内部程序存储器的形式不同。 8051: 片内4KBROM,程序在制作芯片时已烧好,适于低成本的大批量生产。 8751: 片内4KBEPROM,价格较贵,适于开发样机。 8031: 片内无ROM,需扩展外部程序存储器。,2.1.2 MCS-51单片机内部结构,中央处理单元(CPU),CPU包括运算器和控制器二大部分: 1 、 运算器 运算器包括算术逻辑部件(ALU)、累加器A、暂存寄存器、寄存器B、程序状态寄存器(PSW),十进制调整电路等。运算器主要用于实现算术/逻辑运算及位操作运算。下面介绍运算器的各组成部分。 a、算术逻辑部件ALU b、累加器A c、寄存器B d、程序状态字寄存器PSW,2、控制器 控制器包括程序计数器PC、指令寄存器IR、指令译码器ID、振荡器及定时电路等。 a、程序计数器PC b、指令寄存器IR及指令译码器ID c、振荡器及定时电路,存储器,程序存储器(ROM) 8051及8751的片内程序存储器容量为4KB,地址从0000H开始,存放程序和表格常数。 数据存储器(RAM) 8051/8751/8031片内数据寄存器为128B,地址为00H7FH,用于存放运算的中间结果、数据暂存以及数据缓冲等。 8051内部还有SP、DPTR、PCONIE,IP等特殊寄存器,地址为80HFFH。,I/O接口,8051由四个8位并行接口,即P0P3,它们都是双向端口,每个端口有8条I/O线,均可输入/输出。P0P3四个锁存器同RAM统一编址,可以把I/O口当作一般特殊寄存器来寻址。,2.2 MCS-51单片机引脚及其功能,MCS-51单片机的引脚及逻辑符号图,MCS-51单片机芯片外形图,MCS-51单片机有两种封装形式: a. 40脚的双列直插DIP封装; b. 44脚的PLCC。,(DIP封装),电源引脚 Vcc和Vss 时钟电路引脚XTAL1和XTAL2 XTAL2:接外部晶体和微调电容的一端,在8051片内它是振荡电路反相放大的输出端,振荡电路的频率就是晶体固有频率.若需采用外部时钟电路时该引脚输入外部时钟脉冲。 要检查振荡电路是否正常,可以示波器查看XTAL2是否有脉冲输出。 XTAL1:接外部晶体和微调电容的另一端,在片内是振荡电路反相放大器输入端,在采用外部时钟输入时,该引脚必须接地。,引脚功能,3.控制信号引脚RST,ALE,,EA,RST/VPD :RST复位信号输入端,高电平有效. 当此输入端保持两个机器周期(24个时钟振荡周期)的高电平时,就可以完成复位操作。 RST引脚的第二功能是VPD 即备用电源的输入端。当主电源Vcc 发生故障,降低到低电平规定值时,将5V电源自动接到RST端,为RAM提供备用电源,以保证存储在RAM中的信息不丢失。,ALE/PROG (Address Latch Enable/Programming):地址锁存允许 当8051上电正常工作后,ALE引脚不断向外输出正脉冲信号,此频率为振荡周期fosc 的1/6。(该信号可用于判断8051是否正在正常工作?) CPU访问外部存储器时,ALE输出信号作为锁存低8位地址的控制信号, 平时不访问片外存储器时,ALE端以振荡频率的1/6固定输出。 第二功能PROG:对片内4Kb EPROM的8751编程写入时的编程脉冲输入端。,(Program Store Enable):程序存储器允许输出信号端,在访问外部程序存储器时,此端定时输出负脉冲作为读片外存储器的选通信号,此引脚接EPROM的OE端, 有效,即允许读EPROM/ROM中的指令码。,/Vpp(ENABLE ADDRESS/VOLTAGE PULSE OF PROGRAMMING):外部程序存储器地址允许输入端/固化编程电源输入端。,接高电平时,CPU先访问片内EPROM/ROM,并执行内部程序存储器中的指令,当PC(程序计数器)的值超过0FFFH时,将自动转去执行片外程序存储器内的程序。,接低电平时,CPU只访问片外EPROM/ROM,不管片内是否有程序存储器,对无片内ROM的8031或8032,需外扩EPROM,此端必须接地,如果有片内ROM的,外扩EPROM的也要将EA接地。,EA,4.输入/输出端口P0,P1,P2,P3 P0口(P0.0P0.7):是一个漏极开路的8位准双向I/O端口,作为漏极开路的输出端口,每位能驱动8个LS型TTL负载.当P0口作为输入口使用时,应先向锁存器写入全1,此时P0口的全部引脚浮空,可作为高阻抗输入。 在CPU访问片外存储器时,P0口是分时提供8位地址和8位数据的复用总线。,P1口(P1.0P1.7):是一个带内部上拉电阻的8位准双向I/O端口,每位能驱动4个LS型TTL负载。 当P1口作为输入口使用时,应先向锁存器写入全1,此时P1口的全部引脚由内部上拉电阻拉成高电平。,P2口(P2.0P2.7):是一个内部带上拉电阻的8位准双向I/O端口, 每位能驱动4个LS型TTL负载。 在CPU访问片外存储器时,P2口输出高8位地址。 P3口(P3.0P3.7):是一个内部带上拉电阻的8位准双向I/O端口, 每位能驱动4个LS型TTL负载。 P3口与其他I/O端有很大区别,它除作为一般准双向I/O外,每个引脚还具有第二功能。,2.3 存储器配置,一般微机:通常只有一个地址空间,ROM和RAM可以随意安排在这一地址范围内不同的空间,CPU访问存储器时,一个地址对应唯一的存储器单元,此类结构称为普林斯顿结构。 8051的存储器:与典型微机不同,它把程序存储器和数据存储器截然分开,各有自己的寻址系统、控制信号和功能,这种程序存储器和数据存储器分开的结构称为哈佛结构。,物理上分4个存储器空间 内部程序存储器 外部程序存储器 内部数据存储器 外部数据存储器 逻辑上分3个存储器空间 片内外统一的64KB程序存储器 256B(含SFR块)片内数据存储器 64KB片外数据存储器,8051存储器地址空间分配,在8051单片机的内部集成了4K的程序存储器和256B的数据存储器,同时还可以使用片外的程序存储器和数据存储器,其扩展能力都是64K。,64k程序存储器地址空间,片内外统一编址0000hFFFFh 256B片内数据存储器地址空间,指令用MOVC,指令用MOV,指令用MOVX,64kb片外数据存储器地址空间,0000hFFFFh,注意: 1、访问片内RAM20H存储单元; MOV A,20H 2、访问片外RAM存储单元; MOV R0,#20h MOVX A,R0 3、尽管片内与片外的RAM单元的00H-FFH地址相重叠,但由于指令的不同不会发生地址混乱。,2.3.1 程序存储器地址空间,程序存储器是存放编好的程序、常数和表格的,只能读不能写。该空间有几个特殊单元,应用过程中应加以注意。 在MCS-51单片机中,当引脚EA=1时,系统使用片内的ROM;EA=0时,系统使用片外的ROM。 无论是使用片内还是使用片外的ROM(既 EA=1或EA=0),其起始地址都是从0000H单元开始,0000H是系统的启动地址。 0003H002BH是中断服务程序入口地址。,8051、52系列保留的存储单元,8051中断矢量地址表,思考: 如何合理安排程序存储器空间?,2.3.2 数据存储器地址空间,片外数据存储器 片内数据存储器 分为两个部分 : 1、低128B RAM(00H7FH) 00H1FH,4个通用工作寄存器区 20H2FH,位地址空间 堆栈的设定 2、高128B特殊功能存储器 (SFR) (80HFFH),特殊功能 寄存器 SFR,片内 通用数据 存储器,80H 7FH,00H,FFH,片外数据 存储器 64KB,0000H,FFFFH,低128Bytes RAM,高128bytes RAM,R0R7寄存器分配,思考: 工作寄存器为何分为四组,如何正确使用工作寄存器?,片内 RAM(20H-2FH)中的位寻址区结构图,2FH,20H,字节地址,位地址,位寻址区内的地址是位地址。共有00-7FH(共128个位); 要区分字节地址和位地址这两个不同的地址概念: 从物理的角度:每一个字节地址内包含了8个位,既: D7,D6,D5,D4,D3,D2,D1,D0 (我们提到的RAM地址一般都是指字节地址)。 从逻辑的角度:字节地址和位地址是靠不同类型的指令来 区分的。如, MOV A, 20H ;将RAM的20单元内容送累加器A; MOV C ,20H ;将RAM位寻址区中20H位送CY中。 在这二个例子中,第一条指令为字节传送指令,既20H为字节地址;第二个例子中的指令为位操作指令,20H为位地址。有关详细内容将在后续章节中描述。,堆栈的设定 设置在内部数据存储器,理论深度最大为128字节,但实际小很多。堆栈指针是8位SP寄存器,复位后SP=07H,建议SP=30H以上(如:5FH)。SP总是指向栈顶,堆栈是向上生成的,即入栈时SP加1,出栈时SP减1。,堆栈操作过程: 进栈: PUSH ACC指令(设 SP=07H) 1,SP+1送SP,此时SP=08H; 2,ACC送RAM的08H单元; 出栈: POP ACC (设SP=08H); 1,将RAM 中08H单元内容送A; 2,SP-1送SP ,此时SP=07H。,07H,SP,RAM,x,累加器A,堆栈操作示意图,08H 07H,思考: 复位后8051堆栈最大容量是多少?,特殊功能寄存器: 共22个(3个只属52子系列),PC在物理上是独立的,其余21个分布在SFR区,共占26个字节(5个双字节寄存器)。 这21个中,有11个寄存器具有位寻址功能,即寄存器中的每位都具有位地址,它们的特点是字节地址正好能被8整除。,注意: 1、128B的SFR区中仅有26B是有定义的,若访问没有定义的单元,将得到一个不确定的随机数。 2、访问SFR时只能采用直接寻址方式。,特殊功能寄存器简介,程序计数器PC 16位,寻址范围64KB,用于安放下一条要执行的指令地址,在物理上是独立的。 累加器A(ACC) 8位,是CPU中工作最频繁的,大部分操作数取自累加器,运算结果也存放在A中。 B寄存器 8位,用于乘除指令中,对其他指令可作RAM中的一个单元用。,程序状态字(或标志寄存器)PSW 8位,存放运算结果的一些状态信息,各位含义如下:,CY(PSW.7):进位标志位。在进行加法(或减法)运算时,若运算结果最高位有进位或借位,则CY自动置“1”,否则CY置“0”,在进行布尔操作运算时,CY(简称C)作为布尔处理器。 AC:辅助进位标志位。当进行加法或减法时,若低4位向高4位有进位(或借位)时,AC被置“1”,否则AC被置“0”。在十进制调整指令中AC还作为十进制调整的判别位。 F0:用户标志位。用户可用软件对F0位置“1”或清“0”以决定程序的流向。,OV:溢出标志位,当运算结果溢出时OV为“1”,否则为“0”,此标志位反映了带符号数运算结果是否溢出。OV的结果可以用一个算法来表示: OV=CPCS 其中:CP为A7的进位;CS为A6的进位。 PSW.1:未定义位。 P(PSW.0):奇偶标志位。当累加器A中“1”的个数为奇数时,P置“1”,否则P置“0”。此位反映累加器A中内容“1”的奇偶性,它常常用于单片机间通信。 RS1、RS0:工作寄存器区选择位。用来选择当前工作的寄存器区。用户通过改变RS1 、RS0的内容来选择当前工作寄存器区。RS1、RS0的内容与工作寄存器区的对应关系如表2-1所示。,栈指针SP 8位,指示堆栈顶部在内部RAM中的位置,初始化SP=07H,可重新设定SP初值,当SP初值,堆栈深度。指令系统中的栈操作指令是:PUSH,POP。 数据指针DPTR 16位,可分作DPH、DPL两个独立的8位寄存器,也可作位16位DPTR处理。主要用来保持16位地址,对外部数据存储器进行寻址,也可用于访问程序存储器。如: MOVX A,DPTR MOVC A,A+DPTR,端口P0P3 8位,分别是I/O端口P0P3的锁存器。 SFR中的P0-P3实际上就是I/O端口的数据锁存器。与RAM中的任意一个单元一样,P0-P3都有自己的RAM地址:80H、90H、A0H、B0H。所以,在51单片机中的输入、输出操作实际上就是个普通的RAM单元操作一样:如 输出指令 MOV 80H,A ;将累加器中的数据送到P0口输出 输入指令 MOV A,90H ;将P1口的数据输入到累加器A中 即MCS-51的指令系统中没有专用的输入、输出(IN、OUT)指令,而是把P0-P3作为普通的内存单元来使用。,串行数据缓冲器SBUF 8位,用于存放欲发送或接收的数据。实际上是两个独立的寄存器,一个是发送缓冲器,另一个是接收缓冲器。 定时器/计数器TH0,TL0,TH1,TL1,TH2,TL2(52子系列) 其它控制寄存器IP,IE,TMOD,TCON,SCON,PCON,MCS-51对外部数据存储器的扩展能力为64KB,采用间接寻址方式访问。 8位地址寄存器:R0,R1 16位地址寄存器:DPTR,外部数据存储器(I/O),例: MOV R0,#20H ;将外部RAM单元地址20H送R0寄存器 MOVX A,R0 ;从外部RAM20H单元取数据到累加器A 这里使用了R0做间址寄存器,所以寻址范围为256B。 例: MOV DPTR,#2000H ;将外部 RAM 单元的地址的2000送DPTR MOVX A ,DPTR ;从外部 RAM 2000H单元中取数据到A 这里使用了16位的寄存器DPTR,所以寻址范围为64KB。,2.4 CPU时序,2.4.1 片内振荡器及时钟信号产生 2.4.2 机器周期和指令周期 2.4.3 CPU取指和执行周期时序,2.4.1 时钟电路,内部方式时钟电路,电容C1和C2取值: 30pF左右 振荡频率范围: 1.212MHz,外接时钟源接法,该方式常用于多块8051芯片同时工作,以便同步。,8051片内振荡器及时钟发生器,2.4.2 时序,基本概念 (1)振荡周期 振荡周期指为单片机提供定时信号的振荡源的周期,即晶体振荡器直接产生的振荡信号的振荡周期。,(2)时钟周期(状态周期 ) 时钟周期是振荡周期的两倍。是对振荡器2分频的信号。时钟周期又称状态周期,用S来表示,一个时钟周期,分为两个节拍,P1和P2节拍。P1节拍通常完成算术逻辑操作,P2节拍通常完成内部寄存器间数据的传递。 (3)机器周期 一个机器周期由12个振荡周期即6个状态周期组成,即S1S6,如果把一条指令的执行过程划分为几个基本操作,则完成一个基本操作所需的时间称为机器周期。 (3)指令周期 指令周期是执行一条指令所需的全部时间。MCS-51单片机的指令周期通常由14个机器周期组成。,补充一个概念 指令的字节数:一条指令所占内存单元的数量。 MCS-51单片机的指令系统中有: 单字节指令(占用1个ROM字节) ; 双字节指令(占用2个ROM字节) ; 三字节指令(占用3个ROM字节) 。 思考: 指令的字节数与指令执行的时间有关系吗? 是否指令的字节数越多,其执行的时间就越长? 指令的字节数越少,执行就越快?,机器周期、状态周期、振荡周期之间的关系: 1机器周期=6状态周期=12振荡周期 例:已知fosc=12MHz,则1机器周期= 1/12s121=1s 指令的运算速度与它所包含的机器周期数有关。机器周期数越少,执行的速度就越快。 MCS-51单片机的指令系统除了乘、除法指令为四个机器周期外,其余都是单周期和双周期指令。,CPU取指、执行周期时序 每条指令的执行都包括取指和执行两个阶段,典型指令的取指和执行指令时序如下页图:,几 种 典 型 的 取 指 和 执 行 时 序,2.5 复位及复位电路,2.5.1 复位操作 复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。 除PC外,复位操作还会影响其他一些寄存器,如下表所示。,2.5.2 复位信号及其产生,RST引脚是复位信号的输入端,复位信号高电平有效,其有效时间应持续24个振荡周期(即两个机器周期)以上。 如使用6MHz的晶振,则复位信号持续时间应超过4us才能完成复位操作。,2.5.3 复位电路,复位操作有上电自动复位和按键手动复位两种.,2.6 输入/输出端口结构,8051框图中没有像8086CPU一样明确表示出地址线和数据线,它的数据线和地址线是由并行端口引出的,以使有限的引脚能完成更多的功能。 P0P3每个端口都有一个锁存器,即特殊功能寄存器P0P3,一个输出驱动器和两个三态缓冲器(P3口为3个),这种结构在数据输出时可一直锁存保存不变,但对输入信号是不锁存的,所以外设欲输入的数据必须保持到取数指令执行为止。,2.6.1 P0口,图3 P0某位结构图,作一般(通用)I/O口:,控制信号=0,模拟转换开关将输出级T2与锁存器的 Q端接通。 输出级是开漏电路,输出时需外接上拉电阻才能获得高电平输出。 输入结构中有两个缓冲器是为适应“读修改写”这样的指令。如:ANL P0,A指令,不是读引脚上的数据,而是读D锁存器中的数据。 是准双向口,输入数据时应先向端口写“1”,使两个FET均截止,然后作高阻抗输入。(复位时已是1),作低8位地址/数据总线口:,控制信号=1,模拟转换开关把CPU内部地址/数据总线经反向器与驱动场效应管T2接通。 作总线时,上下两个FET处于反相,构成推拉式的输出电路,不需外接上拉电阻,且大大提高了负载能力。当访问外部存储器时,CPU自动向端口写入FFH,所以对用户而言P0口作地址/数据总线时是一个真正的双向口。 当P0口已作地址/数据总线口时,就不能作一般I/O口。,2.6.2 P1口,图4 P1某位结构图,P1口是一个标准的准双向口,内部接有上拉电阻,在组成应用系统时,往往作通用的I/O口使用。只是在52子系列中,P1.0和P1.1是多功能的。 P1.0:作定时器/计数器2的外部输入端。 P1.1:作定时器/计数器2的外部控制输入端。,2.6.3 P2口,图5 P2某位结构图,P2口与P0口结构类似,由控制信号控制模拟转换开关,若接通上边,则地址信号加到输出线路,若接通下边,则锁存器Q端与输出线路接通,P2口作一般I/O口。 作一般(通用)I/O口: 准双向口,内部接有上拉电阻(同P1,P3口)。 作高8位地址总线口: 用于输出高8位地
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 金融行业合同公文写作范文
- 化学危险品运输合同
- 木器手工艺品制作合同
- 荒沟土地承包合同
- 贸易居间服务合同
- 标准建筑工程合同范本谁提供
- 珍珠采购长期合同
- 技术服务合同终止协议书模板
- 四人合资创业合同模板
- 建筑工程施工合同管理与执行
- 金庸人物课件
- 2024年普通高等学校招生全国统一考试·新课标卷(化学)附试卷分析
- 人教版五年级下册数学第2单元测试题带答案
- 再生资源门店加盟协议书
- DB62-T 3268-2024 人民防空工程平战功能转换技术标准
- 天车工技能竞赛理论考试题库500题(含答案)
- 疗愈珠宝的科学与艺术
- 新能源汽车车位租赁合同
- 《人工智能导论》(第2版)高职全套教学课件
- 39 《出师表》对比阅读-2024-2025中考语文文言文阅读专项训练(含答案)
- 医共体信息化项目建设方案(技术方案)
评论
0/150
提交评论