chap2 MCS-51的结构及原理_第1页
chap2 MCS-51的结构及原理_第2页
chap2 MCS-51的结构及原理_第3页
chap2 MCS-51的结构及原理_第4页
chap2 MCS-51的结构及原理_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章MCS-51单片机的结构及原理电力学院王克英第2章MCS-51单片机的结构及原理2.1MCS-51单片机的结构2.2MCS-51的存储器结构2.3复位、时钟与时序2.4并行I/O端口22第2章MCS-51单片机的结构及原理2.1MCS-51单片机的结构2.2MCS-51的存储器结构2.3复位、时钟与时序2.4并行I/O端口332.1.1MCS-51单片机的内部结构OSCROMRAMT/CCPUBECI/OUART时钟源计数输入外部中断内部中断控制信号并行口串行通讯4451子系列与52子系列51子系列:8031、8051、8751【128BRAM;4KBROM;2个16位定时器/计数器;5个中断源】52子系列:8032、8052、8752【256BRAM;8KBROM;3个16位定时器/计数器;6个中断源】实际常用器件——AT89C51、AT89C52AT89C51——4KBFlashROMAT89C52——8KBFlashROM2.1.1MCS-51单片机的内部结构552.1.1MCS-51单片机的内部结构OSCROMRAMT/CCPUBECI/OUART时钟源计数输入外部中断内部中断控制信号并行口串行通讯CPU66CPU(CentralProcessingUnit)由运算器和控制器构成运算器——对数据进行算术、逻辑运算和位操作,核心为算术逻辑运算单元ALU,最主要的数据来源为累加器ACC控制器——控制各单元协调工作,包括指令寄存器、指令译码器及控制逻辑电路,其中一个重要的寄存器是程序计数器PC(ProgramCounter)77CPU(CentralProcessingUnit)PC(ProgramCounter)指向ROM存储单元的地址指针存放下一条要执行的指令在程序存储器中的起始地址基本工作方式:(1)复位时PC初值为0→复位后程序从0开始运行(2)PC自动加1【程序顺序执行】(3)执行转移指令、子程序调用或中断调用时,PC将被置入新的数值【改变程序流向】88CPU(CentralProcessingUnit)PC(ProgramCounter)MCS-51单片机的PC为16位二进制寄存器寻址能力:216=65536=64KBPC最小值0000000000000000B=0000HPC最大值1111111111111111B=FFFFH99CPU(CentralProcessingUnit)数据指针DPTR(DataPointer)指向ROM或RAM存储单元的地址指针存放CPU读取或写入数据的地址为16位二进制寄存器寻址能力:216=65536=64KB地址范围0000H~FFFFH包括两个8位寄存器 DPH(高8位) DPL(低8位)1010CPU(CentralProcessingUnit)累加器Acc(Accumulator)是一个最常用的寄存器,可写为A。大多数单操作数指令的操作数取自累加器,很多双操作数指令的一个操作数也取自累加器运算结果通常存放在累加器1111CPU(CentralProcessingUnit)程序状态字PSW(ProgramStatusWord)存放程序运行过程中的各种状态信息8位寄存器,每位有不同的含义CYACF0RS1RS0OVF1P1212程序状态字PSW(ProgramStatusWord)CY(PSW.7)——进位/借位标志位

在进行加或减运算时,如果运算结果最高位有进位或借位,CY由硬件置“1”,否则清“0”。10010011+11110000110000011运算结果CYCYACF0RS1RS0OVF1P.1313程序状态字PSW(ProgramStatusWord)AC(PSW.6)——辅助进位标志位

在进行加或减运算时,如果运算结果低四位向高四位产生进位或借位,由硬件置“1”,否则清“0”。01001111+1010000111110000运算结果CY=0CYACF0RS1RS0OVF1P.AC=11414程序状态字PSW(ProgramStatusWord)F0(PSW.5)、F1(PSW.1)——用户标志位

用户可以用软件置位或清位,也可以用软件测试它,以便控制程序的流向。CYACF0RS1RS0OVF1P1515程序状态字PSW(ProgramStatusWord)RS1,RS0(PSW.4~3)工作寄存器组选择位

软件置位或清零,指定当前工作寄存器组。CYACF0RS1RS0OVF1PRS1RS0寄存器组片内RAM地址00第0组00H~07H01第1组08H~0FH10第2组10H~17H11第3组18H~1FH1616程序状态字PSW(ProgramStatusWord)OV(PSW.2)——溢出标志

当执行算术指令时,由硬件置位或清零,以指示运算是否产生溢出:(1)加减运算——OV为Cy7与Cy6的异或,“1”表示带符号数加减结果超过补码范围(2)乘法运算——结果超过255时,OV=1(3)除法运算——除数为0时,OV=1CYACF0RS1RS0OVF1P1717程序状态字PSW(ProgramStatusWord)CYACF0RS1RS0OVF1P01010011+1111110001001111..CY=Cy7=1Cy6=1OV=Cy7⊕Cy6=0无符号:83+252=335>255,有进位,Cy=1有符号:83+(-4)=79,无溢出,OV=01818程序状态字PSW(ProgramStatusWord)CYACF0RS1RS0OVF1P10000101+1010111100110100.CY=Cy7=1Cy6=0OV=Cy7⊕Cy6=1无符号:133+175=308>255,有进位,Cy=1有符号:-123+(-81)=-204,有溢出,OV=11919程序状态字PSW(ProgramStatusWord)P(PSW.0)——奇偶标志位该位始终跟踪累加器A中含“1”个数的奇偶性如果A中有奇数个“1”,则P置“1”,否则置“0”。CYACF0RS1RS0OVF1P若A=10011111,则P=0若A=11000001,则P=1用途:串行通讯中的数据校验——奇偶校验判断是否存在传输错误。20202.1.2MCS-51引脚及功能40引脚双列直插封装(DIP—DualIn-linePackage)44引脚的方形扁平封装(QFP—QuadFlatPackage)(4只引脚无用)21212.1.2MCS-51引脚及功能40只引脚按功能分为4类:电源引脚:Vcc、Vss Vcc(40脚):Supplyvoltage,+5V电源; Vss(20脚):Ground,接地。时钟引脚:XTAL1、XTAL2 XTAL1(19脚):反相放大器的输入端. XTAL2(18脚):反相放大器的输出端.22222.1.2MCS-51引脚及功能控制引脚:RST、ALE、/PSEN、/EARST/VPD(9脚):复位/备用电源 Reset.保持2个机器周期(24个振荡周期)的高电平完成复位第二功能:VPD,备用电源施加端:当主电源Vcc下降以后由VPD为片内RAM提供备用电源,用以保护片内RAM的数据23232.1.2MCS-51引脚及功能控制引脚:RST、ALE、/PSEN、/EAALE/PROG(30脚):

第一功能:地址锁存允许ALE(AddressLatchEnable),下降沿用于锁存P0口输出的低8位地址第二功能:编程脉冲输入端PROG24242.1.2MCS-51引脚及功能控制引脚:RST、ALE、/PSEN、/EAPSEN(29脚):ProgramStoreEnable

外部程序存储器的读选通信号。CPU对片外程序存储器读指令或常数期间,该信号在每个机器周期两次有效。在访问片外数据存储器期间,该引脚无输出信号25252.1.2MCS-51引脚及功能控制引脚:RST、ALE、/PSEN、/EAEA/VPP(31脚):

第一功能:EA(ExternalAccessEnable)片外程序存储器选择控制端第二功能:VPP(VoltagePulseofProgramming)用于施加编程电压26262.1.2MCS-51引脚及功能I/O端口引脚P0.0~P0.7:P0口 8位双向数据总线和地址总线(低8位), 或8位准双向I/O端口。P1.0~P1.7:P1口

8位准双向I/O端口。P2.0~P2.7:P2口

地址总线(高8位) 或8位准双向I/O端口。27272.1.2MCS-51引脚及功能I/O端口引脚P3.0~P3.7:P3口 8位准双向I/O端口。 或第二功能:串行口、外部中断、定时器/计数器、读写控制信号28282.2MCS-5l的存储器结构MCS-51单片机的存储器结构采用哈佛结构(HarvardArchitecture),它把程序存储器和数据存储器分开,各有自己的寻址系统、控制信号。程序存储器:存放程序和表格之类的固定常数。数据存储器:存放程序运行中所需的常数或变量。29292.2MCS-5l的存储器结构从物理存储空间【硬件】看,MCS-51单片机有四个存储器地址空间:片内程序存储器:4KB片内数据存储器:128B片外程序存储器:0~64KB片外数据存储器:0~64KB30302.2.2程序存储器(ROM)可寻址的地址空间为64K字节内部ROM4K外部ROM4K外部ROM60K0000H0FFFH0000H0FFFH1000HFFFFHEA=1EA=031312.2.2程序存储器(ROM)ROM与PC的关系程序存储器可寻址的地址空间为64K字节,以16位的程序计数器PC作地址指针关于物理存储空间片内、外ROM是统一编址的,只能算1个逻辑存储空间,所以51单片机的4个物理存储空间相当于3个逻辑存储空间:内外统一的ROM、内部RAM、外部RAM32322.2.2程序存储器(ROM)ROM中的特殊单元——用于程序引导0000H:主程序入口地址【复位入口地址】MCS-51复位后,PC=0000H,系统从0000H单元开始读取指令并执行程序,它是系统执行程序的起始地址。0003H、000BH、0013H、001BH、0023H:5个中断服务程序入口地址【第5章】。33332.2.3数据存储器(RAM)RAM从物理上或逻辑上都分为两个地址空间:内部数据存储器内部RAM——128B:地址为00~7FH;特殊功能寄存器21个:地址80H~FFH外部数据存储器64KB:地址为0000~FFFFH。(因此,二者地址可以重叠。)3434片内数据存储器(片内RAM)用户RAM区位寻址区工作寄存器区00H1FH20H2FH30H7FH共128个单元32个单元16个单元80个单元3535工作寄存器区(00H~1FH)

工作寄存器与RAM地址对照表

寄存器组RS1RS0R0R1R2R3R4R5R6R7第0组0000H01H02H03H04H05H06H07H第1组0108H09H0AH0BH0CH0DH0EH0FH第2组1010H11H12H13H14H15H16H17H第3组1118H19H1AH1BH1CH1DH1EH1FH3636位寻址区(20H~2FH)字节操作16个字节,作为一般RAM单元使用,地址范围20H~2FH位操作——位寻址区16个字节共有128位(16×8)位地址范围:00H~7FH通常把各种程序状态标志、位控制变量设在位寻址区内3737位寻址区的位地址分配表字节地址20H~2FH位地址00H~7FH3838用户RAM区(30H~7FH)80个单元,只能进行字节寻址用作堆栈区、数据区【实际应用中,寄存器区除了当前寄存器组以外的单元、位寻址区的单元均可作为堆栈区、数据区】3939

MCS-51单片机内各种控制寄存器和状态寄存器都是以特殊功能寄存器SFR(SpecialFunctionRegister)的形式出现的,地址分布在80H~FFH。实际有21个8位寄存器,只占80H~FFH中的一部分。特殊功能寄存器SFR404021个特殊功能寄存器(SFR)414121个特殊功能寄存器(SFR)有的SFR可进行位寻址,其字节地址的末位是0H或8H。42422.3单片机的复位、时钟与时序复位操作在振荡器工作的情况下,RST引脚保持至少两个机器周期(即24个振荡周期)的高电平,实现复位【实际应用≥10ms的高电平】复位电路复位电路通常采用上电自动复位和按钮复位两种方式。43432.3单片机的复位、时钟与时序最简单的上电自动复位电路:实际复位电路:8051RST9+5VCR8051RST9+5VCR4444复位后单片机的状态寄存器复位状态寄存器复位状态PC0000HTMOD00HA00HTCON00HPSW00HTH000HB00HTL000HSP07HTH100HDPTR0000HTL100HP0~P3FFHSCON00HIPxxx00000BSBUFxxxxxxxxBIE0xx00000BPCON0xxx0000B4545复位后单片机的状态小结PC=0000HPSW=00H,当前工作寄存器区为第0区SP=07H,堆栈从内部RAM的08H单元开始P0~P3口的内容均为FFH(即各端口都为1,直接做输入口)其他特殊功能寄存器都复位为0不影响片内RAM的内容。46462.3.2时钟电路时钟电路:产生单片机工作所需要的时钟控制信号常用的时钟电路有两种方式:内部时钟方式外部时钟方式内部时钟方式8051片内有一个由反相放大器构成的振荡电路,XTAL1和XTAL2分别是振荡电路的输入端和输出端外接1个晶体振荡器和2个微调电容47472.3.2时钟电路内部时钟方式——具体电路晶振频率:1.2~12MHz,C1和C2典型值30pF石英晶体振荡器(晶振)8051XTAL218XTAL119C1C248482.3.2时钟电路外部时钟方式——80518051XTAL119XTAL218外部时钟49492.3.3单片机时序时序:各信号之间的相互时间关系单片机时序:CPU执行指令的时间顺序MCS-51单片机的时序单位:时钟周期/振荡周期(拍节)P状态周期S:一个状态周期等于两个时钟周期,包括拍节1(P1)、拍节2(P2)机器周期:CPU完成一个基本操作所需要的时间.=6个状态周期=12个时钟周期指令周期:1-4个机器周期5050MCS-51单片机各种周期的关系5151例:若MCS-51单片机外接晶振频率为12MHz时,则单片机的四种周期分别为:振荡周期=1/12MHz=(1/12)μs=0.0833μs状态周期=2×1/12MHz=0.167μs机器周期=12×1/12MHz=1μs指令周期=1~4μs52522.4并行I/O端口端口(Port)的概念端口是一个集数据输入缓冲、数据输出缓冲、驱动及锁存等多项功能为一体的I/O电路4个双向的8位并行I/O端口——P0~P3每个端口有8个I/O引脚。可以作为输入端口,例如连接开关、按键可以作为输出端口,例如连接LED、数码管可以作为“总线”——地址总线、数据总线、控制总线53532.4并行I/O端口P0~P3四个口的功能有所不同,故它们的电路结构也不完全一样,但基本工作原理相似。P1口结构最简单,也是最基本的一个输出锁存器(D锁存器)一个输出驱动电路,由FET(场效应管)构成两个三态缓冲器。一个用于读锁存器、一个用于读引脚。54541.P1口的结构RVccP1.n1读引脚DQQP1.n锁存器内部总线写锁存器2读锁存器55551.P1口的结构P1口只能作一般I/O使用,有3种操作方式输出数据方式:CPU通过内部总线向端口写数据,且保存在端口锁存器中。读端口引脚方式(读引脚):通过“读引脚”信号来选通三态缓冲器1【例如指令MOVA,P1】读端口数据方式(读锁存器):通过“读锁存器”信号来选通三态缓冲器2【“读-修改-写”指令,例如指令ANLP1,A】P1口读引脚时的注意事项:读引脚之前,必须先向相应的端口写一个“1”——有条件的输入/输出口称为“准双向”I/O56562.P3口的结构RVccP3.nDQQP3.n锁存器内部总线写锁存器2读锁存器1读引脚第二输入功能第二输出功能57572.P3口的结构双功能口:1、作一般I/O端口使用,用法与P1口相同2、作第二功能使用58582.P3口的结构P3口的第二功能 P3.0 RXD(串行口数据接收) P3.1 TXD(串行口数据发送) P3.2 INT0(外部中断0) P3.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论