《第02章 MCS-51单片机内部结构》由会员分享,可在线阅读,更多相关《第02章 MCS-51单片机内部结构(67页珍藏版)》请在金锄头文库上搜索。
1、MSC-51单片机的基本的结构封装与引脚I/O口的结构与功能存储器的配置时钟及时序单片机的复位电路设计低功耗工作方式,第2章单片机的硬件结构,本章内容,Single Chip Microcomputer,单片机的基本结构,MCS-51单片机种类繁多,性能各异,但其基本组织结构基本相同。,MCS-51单片机的组成 :1. 8位CPU2. 片内存储器3. 片内并行 I/O接口4. 片内16位定时器/计数器5. 片内中断处理系统 片内全双工串行I/O口 时钟电路 总线,MSC-51单片机的封装及引脚,1电源和晶振 VCC(40):接+5V电源正端 VSS(20):接电源地端XTAL1(19):接外部
2、石英晶体的一端XTAL2(20):接外部石英晶体的另一端2. I/ O口引脚 4个8位并行 I/O 接口引脚P0.0 P0.7 、P1.0P1.7 、P2.0P2.7 和 P3.0P3.7 为多功能引脚,可自 动切换用作数据总线、地址总线、控制总线和或I/O 接口外部引脚,3控制线ALE/PROG(30):地址锁存有效信号输出端 EA/VPP(31):片外程序存储器选择信号端和编程电源 输入端 PSEN(29):片外程序存储器读选通信号输出端,低电平有效 RST/VPD(9):复位信号端和后备电源输入端。 输入 10ms以上高电平脉冲,单片机复位。 VPD 使用后备电源,可实现掉电保护。,/口
3、的结构与功能,MCS-51单片机共有四个8位的并行双向口,共计有32根输入/输出(I/O)口线。各端口的每一位均有锁存器,输出驱动器和输入缓冲器。但由于它们在结构上有一定的差异,所以各端口的性质和功能也各不相同。,1P0口(3932脚) P0.0P0.7统称为P0口。在不接片外存储器与不扩展I/O口时,可作为准双向输入/输出口。在接有片外存储器或扩展I/O口时,P0口分时复用为低8位地址总线和双向数据总线。,2P1口(18脚) P1.0P1.7统称为P1口,可作为准双向I/O口使用。对于52子系列,P1.0与P1.1还有第二功能:P1.0可用作定时器/计数器2的计数脉冲输入端T2,P1.1可用
4、作定时器/计数器2的外部控制端T2EX。,3P2口(2128脚) P2.0P2.7统称为P2口,一般可作为准双向I/O口使用;在接有片外存储器或扩展I/O口且寻址范围超过256字节时,P2口用作高8位地址总线(输入时要先置),准双向口的特点,4P3口(1017脚) P3.0P3.7统称为P3口。除作为准双向I/O口使用外,还可以将每一位用于第二功能,而且P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。 3口的第二功能就是做控制总线要用分别列出各端口的对应的功能,P3口的第二功能,P0口的某位P0.n(n=07)结构图,它由一个输出锁存器、两个三态输入缓冲器和输出驱动电路及控制电路
5、组成。从图中可以看出,P0口既可以作为I/O用,也可以作为地址/数据线用。,.,1、P0口作为普通I/O口,输出时CPU发出控制电平“0”封锁“与”门,将输出上拉场效应管T1截止,同时使多路开关MUX把锁存器与输出,驱动场效应管T2栅极接通。故内部总线与P0口同相。由于输出驱动级是漏极开路电路,若驱动NMOS或其它拉流负载时,需要外接上拉电阻。P0的输出级可驱动8个LSTTL负载。, 输入时-分读引脚或读锁存器读引脚:由传送指令(MOV)实现; 下面一个缓冲器用于读端口引脚数据,当执行一条由端口输入的指令时,读脉冲把该三态缓冲器打开,这样端口引脚上的数据经过缓冲器读入到内部总线。, 输入时-分
6、读引脚或读锁存器读锁存器:有些指令 如:ANL P0,A称为“读-改-写” 指令,需要读锁存器。 上面一个缓冲器用于读端口锁存器数据。,*原因:如果此时该端口的负载恰是一个晶体管基极,且原端口输出值为1,那么导通了的PN结会把端口引脚高电平拉低;若此时直接读端口引脚信号,将会把原输出的“1”电平误读为“0”电平。现采用读输出锁存器代替读引脚,图中,上面的三态缓冲器就为读锁存器Q端信号而设,读输出锁存器可避免上述可能发生的错误。*,准双向口: 从图中可以看出,在读入端口数据时,由于输出驱动FET并接在引脚上,如果T2导通,就会将输入的高电平拉成低电平,产生误读。所以在端口进行输入操作前,应先向端
7、口锁存器写“1”,使T2截止,引脚处于悬浮状态,变为高阻抗输入。这就是所谓的准双向口。,2、P0作为地址/数据总线,在系统扩展时,P0端口作为地址/数据总线使用时,分为: P0引脚输出地址/数据信息。,CPU发出控制电平“1”,打开“与”门,又使多路开关MUX把CPU的地址/数据总线与T2栅极反相接通,输出地址或数据。由图上可以看出,上下两个FET处于反相,构成了推拉式的输出电路,其负载能力大大增强。,2、P0作为地址/数据总线,P0引脚输出地址/输入数据 输入信号是从引脚通过输入缓冲器进入内部总线。 此时,CPU自动使MUX向下,并向P0口写“1”,“读引脚”控制信号有效,下面的缓冲器打开,
8、外部数据读入内部总线。,2、P0作为地址/数据总线,-真正的双向口,2. P1口的结构及特点,它由一个输出锁存器、两个三态输入缓冲器和输出驱动电路组成-准双向口。,3. P2口的结构及特点,1.P2口作为普通I/O口,CPU发出控制电平“0” ,使多路开关MUX倒向锁存器输出Q端,构成一个准双向口。其功能与P1相同。,2.P2口作为地址总线 在系统扩展片外程序存储器扩展数据存储器且容量超过256B (用MOVX DPTR指令)时,CPU发出控制电平“1”,使多路开关MUX倒内部地址线。此时,P2输出高8位地址。,4. P3口的结构及特点,D QCLK Q,P3.n,读锁存器,内部总线,写锁存器
9、,读引脚,VCC,R,T,P3口引脚,第二输入功能,第二输出功能,一、作为通用I/O口与P1口类似-准双向口(W=1),W,P3的内部结构,D QCLK Q,P3.n,读锁存器,内部总线,写锁存器,读引脚,VCC,R,T,P3口引脚,第二输入功能,第二输出功能,二、P3第二功能(Q=1)此时引脚部分输入(Q=1、W=1) ,部分输出(Q=1、W输出) 。,W,Mcs-51引脚功能归纳:,4个并行I/O口均由内部总线控制,端口功能复用会自动识别,不用用户选择.P0是8位漏级开路的准双向I/O口,可驱动8个LSTTL负载,作地址/数据总线口时,是一真正双向I/O.P1是8位准双向I/O口,具有内部
10、上拉电阻,可驱动4个LSTTL负载。P2同P1,并可作为高8位地址总线。P3同P1,P3口的所有口线都具有第二功能。单片机功能多,引脚少,因而许多引脚都具有第二功能。单片机对外呈现三总线形式:P0,P2组成16位地址总线;P0口分时复用为数据总线;由ALE,/PSEN,RST,/EA与P3口中的/INT0(1),T0,T1,/WR,/RD共10个引脚组成控制总线。,2.3.5端口输出电路,1。LED驱动,2.继电器,3.固态继电器驱动,4.喇叭驱动,5.光电耦合驱动,2.3.6端口输入电路,存储器的配置,MCS-51单片机的存储器采用的是程序存储器与数据存储器截然分开的哈佛(Harvard)结
11、构,即程序存储器和数据存储器各有自己的寻址方式、寻址空间和控制系统。,物理空间与地址物理上分成4个存储器空间: 片内程序存储器、片外程序存储器 片内数据存储器、片外数据存储器逻辑上分成3个地址空间: 片内、片外统一编址的64KB程序存储器空间 片内256B的数据存储器地址空间 片外64KB的数据存储器空间,1程序存储器(ROM)程序存储器(Program memory)主要用于存放经调试正确的应用程序和常数表格。由于MCS-51单片机采用16位的程序计数器PC和16位的地址总线,因而程序存储器可扩展的地址空间为64KB。程序存储器物理上可分为片内和片外。由引脚电平的高低来决定:,1)当EA=1
12、时,CPU从片内程序存储器开始读取指令。当PC的内容超过片内程序存储器地址的最大值(51子系列为0FFFH,52子系列为1FFFH)时,将自动转去执行片外程序存储器的程序。 2)当EA=0时,CPU将直接从片外程序存储器中读取指令。,MSC-51单片机中7个特殊地址,2数据存储器(RAM)MCS-51单片机的数据存储器分为内部数据存储器和外部数据存储器两部分。,1内部数据存储器,内部数据存储器及专用寄存器,内部数据存储器在结构上可分为两个不同的存储空间,即低128单元的数据存储器空间(00H7FH)和高128单元的具有特殊功能的专用寄存器存贮器空间(80H0FFH)。,1)片内RAM工作寄存器
13、区: 字节地址:00H1FH位寻址区: 字节地址:20H2FH 位地址为:00H7FH数据缓冲区/堆栈区: 字节地址:00H7FH 一般使用30H7FH,2. 特殊功能寄存器SFR占用字节地址:80HFFH位寻址寄存器: 其字节地址可被8整除。专用寄存器: A、B、PSW、DPTR、SPI/O接口寄存器: P0、P1、P2、P3、SBUF、 TMOD、TCON、SCON ,(1)B寄存器B寄存器是一个8位寄存器,即可作为一般寄存器使用,也可用于乘除运算。做乘法运算时,B是乘数。乘法操作后,乘积的高8位存于B中。做除法运算时,B存放除数。除法操作后,余数存放在B中。(2)累加器ACC(Accum
14、ulator)累加器A是在编程操作中最常用的专用寄存器,功能较多,可按位寻址。,(3)程序状态字PSW(Program Status Word),CY:进位标志。 加减运算时,最高位有进位(加法时)或有借位(减法时),则CY=1,否则CY=0,可由软件置位或清零。 AC:半进位标志。 例:78H+97H 0111 1000 +1001 0111 1 0000 1111,有进位CY=1,没有半进位AY=0,(4)栈指针SP寄存器栈指针SP寄存器指示出堆栈顶部在内部数据存储器中的位置。系统复位后,SP初始化为07H,如果不重新设置,就使得堆栈由08H单元开始。但08H1FH单元属于工作寄存器区,所
15、以在程序设计中,最好把SP的值设置的大一些,一般将堆栈开辟在30H7FH区域中。SP的值越小,堆栈容量就越大,但最大为128字节。,(5)数据指针DPTR寄存器数据指针DPTR由两个8位寄存器DPH和DPL组合而成一个16位专用寄存器,其中DPH为DPTR的高8位,DPL为DPTR的低8位。(6)程序计数器PC,程序计数器PC中存储的是将要执行的指令地址,是一个16位的计数器。寻址范围达64KB。,MSC-51单片机的时钟及时序,时钟电路单片机工作时,是在统一的时钟脉冲控制下有序进行的。这个脉冲是由单片机控制器中的时钟电路产生的。时钟电路由振荡器和分频器组成,振荡器产生基本的振荡信号,然后进行分频,得到相应的时钟。振荡电路通常有两种方式:内部振荡方式和外部振荡方式,