第1章-51单片机结构课件_第1页
第1章-51单片机结构课件_第2页
第1章-51单片机结构课件_第3页
第1章-51单片机结构课件_第4页
第1章-51单片机结构课件_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

第1章MCS-51单片机结构

Oscillator4KProgramMemory128ByteRAMSFRTimer1Timer280C51CPUInterruptParallelInterfaceSerialInterfaceT0T1P3P0INT1INT0TxdRxdMicrocontroller第1章单片机结构011.1.1单片机的内部编程结构此图是内部编程结构图,掌握了内部结构和引脚功能,才有可能设计硬件电路和着手编程。1.1单片机的内部结构及资源1.1.280C51系列单片机内部资源扩展总线控制逻辑指令系统CPU时钟系统速度扩展中断系统中断源扩展定时、计数器数量功能扩展串行口增强扩展ROM4KBMaskROMEPROMOTPROMFLASHROM容量扩展RAM128B容量扩展I/O接口数量扩展功能扩展ADC,DACWDT,PWMIIC,SIPCAN电源5V电源扩展2.7-6VXTAL1XTAL2RSTALEEA#PSEN#P0-P3P4-P6Microcontroller第1章单片机结构02

在保持内核不变的基础上,很多厂家对51系列单片机根据用户的需求进行了扩展,主要在以下几方面:

(1)速度扩展提高时钟频率,最高已达40M。提高总线速度,采取RISC和指令流水线技术,缩短机器周期。(2)CPU外围扩展程序存储器,从原来的ROM

Less、MaskROM、EPROM向OPTROM,EEPROM和FLASHROM,转变,容量也大增。数据存储器扩展,仍采用SRAM,但容量已达到1KB。I/O端口的扩展,由原来的4个扩展到6个或7个。(3)基本功能单元扩展中断源有的达到15个。定时计数器不仅数量增加,而且在功能上增强,例如扩展的CCU(Capture/CompareUnit)和PCA(ProgramCounterArray),可以实现高速的输入输出,并将捕获、定时、高速输出、PWM和WDT以可编程的方式结合在一起。(4)其他扩展串行口的数量和功能,例如增加UART的AAR(AutoAddressRecognition)ADC,DAC,PWM,WDT,IIC,CAN,TCP/IP等。电源范围已扩展到2.7-6V。Microcontroller第1章单片机结构03Microcontroller第1章单片机结构04(1)并行总线的删减有用串行总线替代并行总线的趋势,一些小型芯片,由于内部ROM和RAM得到扩充,又采用串口作通信,所以芯片引脚只在20-28之间。1.1.380C51系列单片机内部资源删减(2)功能的删减从满足一些简单特殊的用途和降低成本出发,减少了片内存储容量,减少定时计数器数量,去除串行接口等。1.1.4总线和非总线几种应用模式Microcontroller第1章单片机结构05专用单片机时钟复位专用外设I/O口通用单片机时钟复位并行扩展I/O口串行扩展总线应用通用单片机时钟复位DBABCBI/O口串行扩展非总线应用非总线单片机时钟复位串行扩展I/O口(1)专用型应用模式(2)通用总线型应用模式(3)通用非总线型应用模式(4)非总线型应用模式1.2存储器1.2.1存储器的结构存储器的结构分冯·诺尔曼(von·Neumann)和哈佛(Harvard)两种结构。冯.诺尔曼结构将程序存储器和数据存储器合二为一,例如PC机中的内存,就是典型的冯·诺尔曼结构。将两者分开的结构就称之为哈佛结构,由于单片机属于嵌入式的控制器,它的程序不需要改变,小容量的数据存储器又能与CPU集成,可以加快存取的速度,所以单片机都采用哈佛结构。这样的结构使这些存储器与ACC紧耦合,不仅速度快,还可以完成类似累加器的操作,所以在单片机中得到广泛应用。51系列单片机程序存储器和数据存储器独立编址,采用16根地址线,它们最大的容量分别可达64K,与Intel8086的存储器与I/O接口独立编址一样,靠不同的访问指令来予以区分。由于程序存储器最大有64K,片外数据存储器最大也有64K,再加上51片内有128字节的RAM和128字节的SFR,所以51系列存储器最大的容量达到(128+1/4)K。52系列则是(128+3/8)K。Microcontroller第1章单片机结构061.2.2单片机存储器的分类如图所示分5类:在单片机的片内的有1.内部数据存储器(RAM)、2.内部程序存储器(ROM)3.特殊功能寄存器(SFR),在单片机外的有片4.外程序存储器(ROM)5.片外的数据存储器(RAM)。Microcontroller第1章单片机结构07ExternalROM4ExternalRAM5123Microcontroller第1章单片机结构088051InternalROMInternalRAMSFRs12ExternalRAM4ExternalROM538051内部ROM4k扩展ROM60k外部ROM64k0000H1000HFFFFHEA#=0EA#=1Microcontroller第1章单片机结构091.2.3程序存储器程序存储器存放程序、表格和常数,它分片内和片外两部分,早期8031属于片内无程序存储器型,所以一定要在片外加装程序存储器,此时引脚EA#一定要接低电平。51之后的单片机,都不同程度地集成了一定数量的片内存储器,此时引脚EA#应该接高电平,否则片内的存储器就白白浪费了。运行时单片机先使用片内程序存储器,当寻址范围超出片内的地址范围时,单片机会自动搜寻片外的地址,在电路设计的时候,要注意片外程序存储器地址线的接法。

程序存储器只能用MOVC来读取。FFFFH1000H外部ROM0FFFH0000H内部ROMEA=1外部ROMEA=0128051Microcontroller第1章单片机结构102、几个固定的特定程序的入口地址:在51系列单片机中,它的复位后的和中断的入口地址是固定的,如下表所示:由于入口之间的间隔很小,所以无法放入完整的中断服务子程序,常常在里面置入跳转指令,再转移到宽松的程序区域去执行。0000H0001H0002H0003H0004H0005H0006H0007H0008H0009H000AH000BH000CH000DH000EH000FH0010H0011H0012H0013H0014H0015H0016H0017H0018H0019HRESETINT0T0INT1ROM1.2.4片外数据存储器用于存放随机读写的数据。由于片内已经有128字节的RAM,当它们已能满足应用的要求,就可以不扩展片外数据存储器。片外数据存储器与程序存储器采用独立编址,所以分别采用不同的访问指令。需要注意的是,它和外围扩展电路统一编址,例如扩展并行口8255,定时计数器8253以及ADC、DAC等器件时,一定要注意与接口芯片中的寄存器端口加以区分。

片外数据存储器只能用MOVX来读写。外部RAM0000HFFFFH外部RAM扩展接口Microcontroller第1章单片机结构11Microcontroller第1章单片机结构121.2.5片内数据存储器它有以下区域和实现相应的功能:通用寄存器区,堆栈区,位寻址区,运算操作数存放区,存放随机读写的数据。片内数据存储器用MOV来读写。F8寄存器区位寻址区通用RAM区特殊功能寄存器Microcontroller第1章单片机结构131、8051片内数据存储器分布图Bank0Bank1Bank2Bank316AddressableREG.80Gen.Por.Reg.128SFRs128Freelocation00H07H08H0FH10H17H18H1FH20H2FH30H7FH80HFFH80HFFH可用直接或间接寻址只能用直接接寻址只能用间接接寻址从图中可知,内部数据存储器一共有128个字节,地址是从00H到7FH,它分成4个区:①寄存器区:内含4个寄存器组,每组8个字节,共32个字节,通过对特殊功能寄存器(SFR)中的PSW(ProgramStatusWord)内的RS1和RS0两位的设置,来决定用此4组中的那一组作为工作寄存器组。被选中的一组相当于一般CPU中的通用寄存器,可以使用R0、R1、…..R7作寄存器名进行访问。未被选中的其它3组如同一般的数据存储器,只能按字节来读写。Microcontroller第1章单片机结构14Microcontroller第1章单片机结构15②位地址区:地址20H-2FH的区域,共16个字节(Byte),128位(Bit),其中的每一位都可以单独操作,所以位处理的能力很强。③剩下来的是通用的RAM区,用来存放中间值和作为堆栈,其地址范围是从30H-7FH,共有80个字节。④特殊功能寄存器,完成各种功能的设置,相当8086系统接口芯片中的控制寄存器。2、内部数据RAM的操作所谓操作就是如何访问这些存储器,即如何完成对它们的读写,采用的是MOV指令,寻址方式可以用直接寻址或用工作寄存器组中的R0和R1作间接寻址。注意:对52系列,它有256BRAM,由于超出80H的存储器和SFR的地址重叠,因此这部分只能用间接寻址的方法访问,而SFR只能用直接寻址的方法,如此来加以区分。其中另一个难点是,对于位地址区的存储单元,它既可以按字节也可以按位操作,而且字节地址和位地址重名,一般区分的方法是:①根据指令符,例如:CLRC;SETB00H;这种指令是专门对位进行操作的。②根据操作数的类型,例如:MOV43H,#22H;立即数是8位的,因此肯定是进行字节操作。Microcontroller第1章单片机结构161.2.6特殊功能寄存器(SFR)1、结构和功能:从图中可见,51系列的特殊功能寄存器一共才21个,分布在80H-FFH的区域内,只占此区域中很小的一部分,而且它的字节地址不是连续的。剩下来的可以作为功能升级时的扩充用。第一列的寄存器可进行位操作(它们的地址可以被8整除)从功能上它分成3类:①作为I/O端口的镜对称寄存器,例如,若P0口设为输出,只要往P0寄存器写入数据就可以通过P0口往外输出,输入也一样。②作为控制寄存器,完成对中断、定时计数、串口等的初始化。③作为累加器、缓存器、指针(地址、堆栈)以及初始值等的设置。

SFR中也有83个可进行位操作的单元,使用时要注意。另外,SFR中无论字节地址还是位地址,常常都有双名,一个是它的地址,另一个是它的别名,由于别名是唯一的,而且用英文缩写符来命名,更便于记忆和区分,所以推荐使用。Microcontroller第1章单片机结构17Microcontroller第1章单片机结构18这一排的寄存器有位处理的功能Microcontroller第1章单片机结构192、具体的SFR的功能:Port0(P0.0-P0.7):引脚P0的镜对称寄存器。Port1(P1.0-P1.7):引脚P1的镜对称寄存器。Port2(P2.0-P2.7):引脚P2的镜对称寄存器。Port3(P3.0-P3.7):引脚P3的镜对称寄存器。8051i/OPinsSensorLED5V0VAccumulator:A累加器是用来存放运行过程中间结果的通用寄存器,运算前的操作数、由ALU运算获得的结果都存放在这里,当两个寄存器进行数据交换的时候也要经过它。由于它担当多重角色,所以它是使用最频繁的寄存器,是任何一个MCU最重要的组成部分。自带有全零标志Z,A=0则Z=1;A≠0则Z=0.Bregister:B寄存器在乘法和除法中要用到它,有些指令也要用它作为第二累加器。Microcontroller第1章单片机结构20StackPointer(SP):堆栈指针,它始终指向堆栈中的栈顶,每压入一个数据SP就自动增1,每弹出一个数据就自动减1.一旦复位后,SP恢复到常值07,如果将它改成其他数值,整个堆栈就会移动到相应的新的位置。ProgramStatusWord(PSW):程序状态字,它是最重要的SFR寄存器,它就是标志寄存器,能自动反映指令执行的结果,常利用它进行分支处理。它由8位构成,51中只用了7位,分别如下:Microcontroller第1章单片机结构21P

(bit0)-Paritybit.奇偶标志位,若累加器中8位数据里1的个数是奇数,则它为0,否则为1.常用在串行通信时作奇偶校验。(bit1)–这位目前没有使用,可用于日后的扩展。OV

(bit2)-Overflowbit.

溢出位,当算术运算的结果超出255,它就等于1,表示数据已经超出可运算的范围,溢出了。RS1,RS0(bits3and4)工作寄存器选择位,通过对它的设定,从RAM中4个寄存器组中去选定那一组作为工作寄存器组,设定的方法如下表所示:Microcontroller第1章单片机结构22F0

(bit5)-Flag0。

无特别的用途,可用来做标志位。AC

(bit6)-AuxiliaryCarryFlag。辅助进位位,在使用BCD码进行运算时用。CY

(bit7)-CarryFlag。进/借位位,用于算术运算和移位操作。DataPointer(DPTR):数据指针由2个8位的寄存器组成,一个是DPH,另一个是DPL,由它们组成一个完整的16位地址,来实现片外程序存储器和数据存储器的寻址,它是唯一的的一个可编程的16位寄存器,当不用做寻址的时候,也可以用来存放数据。Microcontroller第1章单片机结构23TMOD-TimerMode:

定时计数器的模式寄存器,它用来给定时计数器0和1设置工作模式,请看下面的表格,它的低4位用来设置T0,高4位用来设置T1。TCON-TimerControl:

定时计数器的控制寄存器,通过对它的设置和查询,来实现定时计数的操作,其中定时计数器只用到高4位,低4位用于中断管理。Microcontroller第1章单片机结构24TimerT0:

T0的计数初值寄存器,如下图所示,它也由2个8位的寄存器构成,可以设置16位二进制数。但是在51单片机中,定时计数是采用加1计数的方法,所以存进去的初值要采用补码。TimerT1:T1的计数初值寄存器,它的功能和T0的完全一样。Microcontroller第1章单片机结构25SCON(SerialPortControlRegister):串行通信控制寄存器,用它来完成串行通信的各种设置。SBUF:串行通信的数据缓冲寄存器,用它来装载待发送或已经接收到的数据。IE(InterruptEnable):中断使能寄存器,用来开通或屏蔽中断源。Microcontroller第1章单片机结构26PCON(PowerControl):

电源控制寄存器,8051只用了其中的3位,IDL用来设置休闲模式,PD用来设置掉电模式,SMOD设成1可以使串行通信的波特率提高1倍。IP(InterruptPriority):中断优先级寄存器,用它来设置中断源的优先级,来实现中断的嵌套。DoublethebaudGeneralFlagMicrocontroller第1章单片机结构273、SFR的操作注意它也分字节和位两种操作,在编程时通常采用它的别名作为地址的方法,用对片内RAM访问的指令MOV来完成数据的传送,只能采用直接寻址的方式。对它进行操作主要是完成模式初始化、完成初值的设置以及完成数据的输入输出,所以对SFR的掌握十分重要。1.4时钟与复位电路1.4.1时钟1、时钟电路①内部振荡方式利用片内的振荡电路和外接的石英晶振构成,如右图所示:Microcontroller第1章单片机结构28②外部振荡方式R外部振荡器VCCXTAL1XTAL2Vss(a)8051外时钟源接法8051NC外部振荡器XTAL1XTAL2Vss(b)80C51外时钟源接法80C51TTLCMOSMicrocontroller第1章单片机结构292、基本的时序单位以12M的时钟频率为例:时钟周期:CLK=1/fosc=1/12MH=0.0833μs状态周期:S=2*CLK=0.167μs机器周期:MC=6*S=12*CLK=1μs指令周期=1-4个机器周期=1-4μsCLK机器周期1取指令、译码机器周期(12*CLK)机器周期2取操作数、执行SMicrocontroller第1章单片机结构30例如INCA例如ADDA,#data例如INCDPTR此图表明,当指令只有单或双字节,但是执行时间需要1或2个机器周期,则只有第一个机器周期内的读操作码有效,其他时间是用于指令的执行。ALE时钟S1S4S6S5S3S2读操作码读操作码(无效)(a)1字节1周期指令读下一指令S1S4S6S5S3S2读操作码读第二字节(b)2字节1周期指令读下一指令S1S4S6S5S3S2读操作码读操作码(无效)(c)1字节2周期指令读下一指令S1S4S6S5S3S2Microcontroller第1章单片机结构311.4.2复位电路1、复位的作用复位操作使单片机的片内电路初始化(置零或进入特定状态),使单片机的程序指针返回到规定的位置(0000H)开始运行。当MCS-51系列单片机的复位引脚RST出现5ms以上的高电平时,单片机就完成了复位操作。如果RST持续为高电平,单片机就处于循环复位状态。复位操作通常有2种基本形式:上电复位,开关复位。>5msMicrocontroller第1章单片机结构32Vcc8051VccRST/VpdVssR11kC122μFR21kC222μFRESETVcc8051VccRST/VpdVssR1kC22μFVcc8051VccRST/VpdVssR1200C22μFR21kRESET①②③2、几种典型的复位电路记住一些特殊功能寄存器复位后的主要状态,对于熟悉单片机操作,缩短应用程序中的初始化部分的内容是十分有好处的。Microcontroller第1章单片机结构332、复位后各寄存器的状态Microcontroller第1章单片机结构341.5引脚功能(1)电源VccVss(2个)(2)时钟XTAL1XTAL2(2个)8051PDIP(3)控制引脚(相当8086的控制总线,4个)

①RST/Vpd(Reset/Vpowerdrop)此引脚的功能一是作为清零,二是当掉电时接备用电源。②ALE/PROG(AddressLatchEnable/Programming)它也有两种功能,一是作为地址的锁存信号,二是作为往片内的EPROM写入程序时的编程脉冲的输入端。③PSENProgramStoreEnable它作为读外部程序存储器的选通信号,常用作ROM的读信号。④EA/Vpp(ExternalAccess/Vprogrammingpower)它有两种功能:一是作为片内或片外地址的寻址信号,二是作为往片内的EPROM写入程序时的编程脉冲电源的输入端。Microcontroller第1章单片机结构35(4)输入输出接口(32个)①

P0(P0.0-P0.7)

可作输入或输出,当访问外部寄存器时,它分时复用,既作地址的低8位,又作数据线,常称作总线口。②

P1(P1.0–P1.7)

可作输入或输出,是51系列中唯一的单功能静态通用I/O端口。③

P2(

P2.0–P2.7)可作输入或输出,当访问外部寄存器时,它作地址的高8位,与P0一起构成完整的16位寻址地址。④

P3(P3.0–P3.7)双功能静态端口。既可以作输入输出,也能作为单片机的控制总线,输出控制信号和接受外设的请求信号。Pin0:RXD

温馨提示

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

最新文档

评论

0/150

提交评论