89C51单片机硬件结构和基本的原理_第1页
89C51单片机硬件结构和基本的原理_第2页
89C51单片机硬件结构和基本的原理_第3页
89C51单片机硬件结构和基本的原理_第4页
89C51单片机硬件结构和基本的原理_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

1、89C51单片机硬件结构和基本的原理主要掌握基本组成(内部资源)引脚存储器的配置I/O口的应用功能(以89C51(AT89C51、P89C51、STC89C51)为代表讲解)2.1 89C51单片机的基本组成1. 89C51单片机结构框图8位CPU256字节RAM4KB Flash ROM4个8位I/O口2个定时/计数器5个中断源1个全双工串行口片内振荡器和时钟产生电路(最高允许振荡频率为24MHz)节电工作方式(空闲、掉电)Flash ROM89C5189C51bus3. 89C51 CPU功能介绍由运算器和控制器构成运算器:进行算术运算、逻辑运算,由ALU、A、B、PSW、暂存器组成。控制

2、器:包括PC、IR、ID、振荡器和时钟电路单片机的核心ALU Arithmetic Logic Unit 算术/逻辑运算单元A 最忙碌的寄存器 累加器B 多用于乘除运算 寄存器PSW 用于指示指令执行后的状态信息, 可供程序查询和判别用。程序状态字寄存器PC Program Counter,下一条指令的地址。改变PC的内容可以改变程序运行方向。 IR Instruction Register 指令寄存器ID Instruction Decoder 指令译码器振荡器及时钟电路:提供片内时钟2.2 89C51单片机的引脚及功能MCS-51单片机信号引脚简介 P3口线的第二功能VCCVSSXTAL2

3、XTAL1RSTALE2、振荡电路:XTAL1、XTAL23、复位引脚:RST4、并行口:P0、P1、P2、P37、ALE:地址锁存控制信号1、电源线:VCC(+5V)、VSS(地)EAPSEN5、EA:访问程序存储控制信号6、PSEN:外部ROM读选通信号RXD/TXD/INT0/ INT1/ T0/ T1/WR/ RD/123456789101112819204039383736353433323252424222180318051 875189C512.3 89C51单片机的存储器配置1. 存储器结构普林斯顿结构一般微机采用的结构ROM、RAM安排在同一个地址空间相同指令访问ROM、RA

4、M哈佛结构89C51采用此结构ROM和RAM占用不同的物理空间采用不同指令访问2. 89C51 存储空间物理结构ROM片内、片外RAM片内、片外逻辑结构(从用户使用的角度看)ROM: MOVC 0000-FFFFH片内RAM :MOV 0000-00FFH片外RAM: MOVX 0000-FFFFH12345678910111213142827262524232221 201918171615EPROM276412345678910111213142827262524232221 201918171615EPROM2764123456789101112819204039383736353433

5、323252424222112345678910111213142827262524232221 201918171615RAM6264 12345678910111213142827262524232221 201918171615RAM6264 存储器80318751805189C51片内RAM片内ROM256B(字节)4K64K64K3. 程序存储器与ROM密切相关的两个引脚 、 通过16位PC寻址,最大可寻址64kB地址空间当ROM容量不够时,尽量选择高容量存储器空间的单片机,如89C52、89C54、89C58等,应避免外扩程序存储器,因为会增加硬件负担。程序存储器程序存储器内部外部

6、0000H0FFFH(4K)0000HFFFFH(64K)0000H0FFFH(4K)0000H0001H0002H(PC)0000H是程序执行的起始单元,在这三个单元存放一条无条件转移指令中断5中断4中断3中断2中断10003H000BH0013H001BH0023H002BH外部中断0定时器0中断外部中断1定时器1中断串行口中断8位0FFFH0FFEHEA=1 EA=0程序存储器资源分布中断入口地址4. 数据存储器如何区分0000-00FFH的地址空间是片内RAM还是片外RAM?片内RAM:低128B片内RAM 0000-007FH 高128B片内RAM 0080-00FFH片内、片外分开

7、编址SFR:特殊功能寄存器区0000HFFFFH(64K)内部外部数据存储器数据存储器00HFFH7FH80H(高128B)(低128B)RAM专用寄存器00H07H08H0FH10H17H18H1FH0区R0R7R0R7R0R7R0R71区2区3区工作寄存器区可位寻址区20H2FH7F 7807 0030H7FH数据缓冲区/堆栈区内部RAM存储器 1 1第 3 区18H1FH 0 1第 1 区08H0FHRS1 RS0寄存器区片内RAM地址 0 0第 0 区00H07H 1 0第 2 区10H17H工作寄存器区选择位RS0、RS1PSW位地址 CY ACF0RS1RS0OVF1PMSBMos

8、t Significant Bit (最高有效位)LSB Least Significant Bit (最低有效位)单元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F07 MSB 位地址 LSB7E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A

9、322A221A120A027971696159514941393129211911090178706860585048403830282018100800RAM位寻址区位地址表高128个单元离散分布有21个特殊功能寄存器SFR。 11个可以进行位寻址。特别提示:对SFR只能使用直接寻址方式,书写时可使用寄存器符号,也可用寄存器单元地址。5. 特殊功能寄存器(SFR)ACCBDPTR: Data Pointer,16位,对64kB片外RAM/ROM和外围设备作间接寻址。 例:MOV DPTR,#2000H MOVX A,DPTR 则: DPH=20H, DPL=00H, DPTR=2000H

10、结果是:取出片外RAM地址为2000H的数据,存放于A。特殊功能寄存器PSW:Program Status Word:进位carry、辅助进位auxiliary、用户标志flag zero、寄存器选择register select、溢出overflow、奇偶parity。CYACF0RS1RS0OVP例:MOV A,#0FH ADD A,#0F8H 0000 1111+ 1111 1000 1 0000 0111 AC=1, CY=1, OV=CYAC=11=0,P=1,所以:1101特殊功能寄存器SP :堆栈指针 (Stack Pointer), 8位,专门存放堆栈的栈顶单元的地址。入栈时自

11、动加1,出栈时自动减1。复位后,SP07H0708090A0B35PUSH ACC,SP08H0708090A0BC135PUSH PSW,SP09H0708090A0B35POP PSW,SP08H0708090A0B0708090A0BPOP ACC,SP07H单片机工作条件单片机正常工作最基本条件是:正确的电源、时钟和复位信号。单片机最小系统1、时钟电路要给单片机CPU提供时钟信号,就需要相关的硬件电路,即振荡器和时钟电路。51系列单片机内部有一个高增益反相放大器,这个反相放大器的作用就是构成振荡器,但要形成时钟,外部还需要加一些附加电路。51系列单片机本身一般不能自动进行复位的,必须配

12、合相应的外部电路才能实现。当5l系列单片机的复位引脚RST出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。2.复位电路2.4 时钟电路及CPU时序1. 时钟电路 根据硬件电路的不同,单片机的时钟连接方式可分为内部时钟方式和外部时钟方式,如图所示。89C51XTAL1Vcc外部时钟输入TTL(a)内部时钟电路;(b) HMOS型外部振荡源 (C) CHMOS型外部振荡源 外接晶振时,电容的值一般取30pF;外接陶瓷谐振器时,电容的值一般取47pF2. 基本概念振荡器: 产生内部脉冲信号 若采用外部脉冲信号时钟发生器:根据脉冲信号产生时钟信号

13、振荡周期P:脉冲信号周期时钟周期(状态周期)S :(机器状态时间)S=P1+P2机器周期: 指令执行的单位=6S=12P指令周期: 指令执行的时间=N * 6S,N=1、2、3对HMOS单片机:XTAL2输入,XTAL1接地对CHMOS单片机:XTAL1输入,XTAL2悬空3. CPU取指、执行周期时序ALE有效时,表示可以读取指令。一个机器周期内,ALE有效两次提问:若采用12MHz的晶振频率,计算机器周期?2.5 复位操作MCS-51单片机复位(RST高电平2个机器周期) 任何单片机在工作之前都要有个复位的过程,复位是什么意思呢?对单片机来说,是程序还没有开始执行,是在做准备工作-初始状态

14、。 如何进行复位呢?只要在单片机的RST引脚上加上高电平,就可以了。为了达到这个要求,可以用很多种方法,见图。一、复位电路在通电瞬间,由于RC的充电过程,在 RST端出现2个机器周期以上的高电平,只要该正脉冲保持2个机器周期以上,就能使单片机自动复位。根据应用的要求,复位操作通常有两种基本形式,即上电复位和按键复位805187518031RSTCRR1R25V上电复位按键复位上电后,由于电容充电,使 RST持续一段高电平时间。当单片 机已在运行过程中时,按下复位键 也能使 RST持续一段时间的高电平, 从而实现上电且开关复位的操作。 通常选择 C=10f ,R=10K。二、复位后单片机的状态复

15、位后各寄存器的状态PC 0000H(程序入口) P0、P1、P2、P3 0FFH (可以直接输入) SP 07H (栈底已经设好)PSW 00H (选择0组寄存器)其余大部分都是0熟悉复位后各寄存器的状态,可以减短初始化程序。2.6 89C51单片机的低功耗工作方式89C51提供两种节电工作方式:空闲(待机)工作方式:不向CPU供电,只供中断、串行口、定时器部分。可以通过中断触发方式退出待机模式。掉电工作方式:所有功能停止工作。方式的设定PCON(电源控制寄存器)8051:HMOS(高密度短沟道MOS)半导体工艺89C51:CHMOS=HMOS+CMOSSMOD - - -GF1GF0PDID

16、L2.7 输入/输出端口单片机I/O口的使用对单片机的控制,其实就是对I/O口的控制,无论单片机对外界进行何种控制,亦或接受外部的控制,都是通过I/O口进行的。单片机总共有P0、P1、P2、P3四个8位双向输入输出端口,每个端口都有锁存器、输出驱动器和输入缓冲器。4个I/O端口都能作输入输出口用,其中P0和P2通常用于对外部存储器的访问。一. I/O口的构成口锁存器(CPU通过内部总线把数据写入口锁存器)输出驱动器输入缓冲器锁存器的含义CTR开关Bus锁存器其它器件0OUT=Bus1OUT保持OUT二. 89C51的 I/O口4个8位并行I/O口:P0,P1,P2,P3;均可作为双向I/O端口

17、使用。(1)特点: P0:访问片外扩展存储器时, 复用为低8位地址线和数据线 P2:高8位地址线。P1:双向I/O端口 P3:第二功能123456789101112819204039383736353433323252424222180318051 875189C51准双向口含义: 端口每位都可以定义为输入/输出,但作为输入时,必须先向该位的口锁存器写”1”。在读入端口数据时,如果T导通,就会将输入的高电平拉成低电平,产生误读。所以在端口进行输入操作前,应先向端口锁存器写“1”,使T截止,引脚处于悬浮状态,变为高阻抗输入。这就是所谓的准双向口。D QCLK QP1.n读锁存器内部总线写锁存器读

18、引脚VCCRTP1口引脚CPU对I/O口的读操作一是读口锁存器的状态二是CPU读口引脚上的外部输入信息D QCLK QP1.n读锁存器内部总线写锁存器读引脚VCCRTP1口引脚4个I/O口的用途P1口只有通用输入/输出端口的功能;P0,P2,P3除了可以作为通用的I/O口,还可以用于其他用途。共同点:P0、P1、P2、P3都是准双向口;执行“读修改写”类指令时,读的是锁存器而不是引脚,如:ANL P1,AORL P1,#dataXRL P1,ACPL P1. INC P1DEC P1下图为P0口的某位(n=07)结构图,它由一个输出锁存器、两个三态输入缓冲器和输出驱动电路及控制电路组成。从图中

19、可以看出,P0口既可以作为I/O用,也可以作为地址/数据线用。D QCLK QMUXP0.n读锁存器内部总线写锁存器读引脚地址/数据控制VCCT1T2P0口引脚1、P0口的结构(1)P0口作为普通I/O口输出时CPU发出控制电平“0”封锁“与”门,将输出上拉场效应管T1截止,同时使多路开关MUX把锁存器与输出D QCLK QMUXP0.n读锁存器内部总线写锁存器读引脚地址/数据控制VCCT1T2P0口引脚驱动场效应管T2栅极接通。故内部总线与P0口同相。由于输出驱动级是漏极开路电路,若驱动NMOS或其它拉流负载时,需要外接上拉电阻。D QCLK QMUXP0.n读锁存器内部总线写锁存器读引脚地

20、址/数据控制VCCT1T2P0口引脚如果是驱动led,那么用1K左右的就行了。如果希望亮度大一些,电阻可减小,最小不要小于200欧姆,否则电流太大;如果希望亮度小一些,电阻可增大,增加到多少呢,主要看亮度情况,以亮度合适为准,一般来说超过3K以上时,亮度就很弱了,但是对于超高亮度的LED,有时候电阻为10K时觉得亮度还能够用。通常就用1k的。 对于驱动光耦合器,如果是高电位有效,即耦合器输入端接端口和地之间,那么和LED的情况是一样的;如果是低电位有效,即耦合器输 入端接端口和VCC之间,那么除了要串接一个之间的电阻以外,同时上拉电阻的阻值就可以用的特别大,用100k500K之间的都行,当然用

21、10K的也可以,但是考虑到省电问题,没有必要用那么小的。 对于驱动晶体管,又分为PNP和NPN管两种情况:对于NPN,毫无疑问NPN管是高电平有效的,因此上拉电阻的阻值用2K20K之间的,具体的大小还要看晶体管的集电极接的是什么负载,对于LED类负载,由于发管电流很小,因此上拉电阻的阻值可以用20k的,但是对于管子的集电极为继电器负载时,由于集电极电流大,因此上拉电阻的阻值最好不要大于,有时候甚至用2K的。对于PNP管,毫无疑问PNP管是低电平有效的,因此上拉电阻的阻值用100K以上的就行了,且管子的基极必须串接一个110K的电阻,阻值的大小要看管子集电极的负载是什么,对于LED类负载,由于发

22、光电流很小,因此基极串接的电阻的阻值可以用20k的,但是对于管子的集电极为继电器负载时,由于集电极电流大,因此基极电阻的阻值最好不要大于。 对于驱动TTL集成电路,上拉电阻的阻值要用110K之间的,有时候电阻太大的话是拉不起来的,因此用的阻值较小。但是对于CMOS集成电路,上拉电阻的阻值就可以用的很大,一般不小于20K,我通常用100K的,实际上对于CMOS电路,上拉电阻的阻值用1M的也是可以的,但是要注意上拉电阻的阻值太大的时候,容易产生干扰,尤其是线路板的线条很长的时候,这种干扰更严重,这种情况下上拉电阻不宜过大,一般要小于100K,有时候甚至小于10K。( 输入时-分读引脚或读锁存器读引

23、脚:由传送指令(MOV)实现; 下面一个缓冲器用于读端口引脚数据,当执行一条由端口输入的指令时,读脉冲把该三态缓冲器打开,这样端口引脚上的数据经过缓冲器读入到内部总线。D QCLK QMUXP0.n读锁存器内部总线写锁存器读引脚地址/数据控制VCCT1T2P0口引脚(2)P0作为地址/数据总线 在系统扩展时,P0端口作为地址/数据总线使用时,分为: P0引脚输出地址/数据信息。 D QCLK QMUXP0.n读锁存器内部总线写锁存器读引脚地址/数据控制VCCT1T2P0口引脚 CPU发出控制电平“1”,打开“与”门,又使多路开关MUX把CPU的地址/数据总线与T2栅极反相接通,输出地址或数据。

24、由图上可以看出,上下两个FET处于反相,构成了推拉式的输出电路,其负载能力大大增强。P0的输出级可驱动8个LSTTL负载。D QCLK QMUXP0.n读锁存器内部总线写锁存器读引脚地址/数据控制VCCT1T2P0口引脚(2) P0作为地址/数据总线 P0引脚作输入口 输入信号是从引脚通过输入缓冲器进入内部总线。(2) P0作为地址/数据总线D QCLK QMUXP0.n读锁存器内部总线写锁存器读引脚地址/数据控制VCCT1T2P0口引脚2、P2的内部结构(1)P2口作为普通I/O口D QCLK QMUXP2.n读锁存器内部总线写锁存器读引脚地址控制VCCRTP2口引脚CPU发出控制电平“0”

25、 ,使多路开关MUX倒向锁存器输出Q端,构成一个准双向口。其功能与P1相同。 (2) P2口作为地址总线 在系统扩展片外程序存储器扩展数据存储器且容量超过256B (用MOVX DPTR指令)时,CPU发出控制电平“1”,使多路开关MUX倒内部地址线。此时,P2输出高8位地址。D QCLK QMUXP2.n读锁存器内部总线写锁存器读引脚地址控制VCCRTP2口引脚3、 P1口、P3口的内部结构 (1)P1口的一位的结构 它由一个输出锁存器、两个三态输入缓冲器和输出驱动电路组成-准双向口。D QCLK QP1.n读锁存器内部总线写锁存器读引脚VCCRTP1口引脚(2)P3的内部结构D QCLK

26、Q读锁存器内部总线写锁存器读引脚VCCRTP3口引脚第二输入功能第二输出功能作为通用I/O口与P1口类似-准双向口(W=1)W(2)P3的内部结构D QCLK Q读锁存器内部总线写锁存器读引脚VCCRTP3口引脚第二输入功能第二输出功能 P3第二功能(Q=1)此时引脚部分输入(Q=1、W=1) ,部分输出(Q=1、W输出) 。WP3第二功能各引脚功能定义:P3.0:RXD串行口输入P3.1:TXD串行口输出P3.2:INT0外部中断0输入P3.3:INT1外部中断1输入P3.4:T0定时器0外部输入P3.5:T1定时器1外部输入P3.6:WR外部写控制P3.7:RD外部读控制端口的负载能力和接

27、口要求 1、P0口的负载能力和接口要求负载能力:可驱动8个LS(低功耗、甚高速)型TTLP0接口要求:作为一般I/O口输出时,若驱动的是NMOS电路或OC门电路,其引脚要接上拉电阻,否则高电平电位不确定; 2、P1P3口的负载能力和接口要求负载能力:可驱动4个LS型TTL接口要求:作为一般I/O口输出时,驱动任何电路都不需要要接上拉电阻(因为内部有上拉电阻);作为一般I/O口为准双向口。指令寄存器译码地址译码程序计数器地址寄存器累加器A运算器存储器内部数据总线外部地址总线AB数据缓冲器外部数据总线DB寄存器区外部控制总线CB内部控制信号时钟及清零总结:单片机的工作过程取指过程例: MOV A,

28、#09H 74H 09H ;把09H送到累加器A中执行过程PC=0000H0001H0000H0002H0 1 1 1 0 1 0 00 0 0 0 1 0 0 1(PC)(PC)0001H0002H0000H外部控制总线CB取指过程(PC)执行过程你知道PC的作用吗?1、CPU主要的组成部部分为( )。B加法器,寄存器 C运算器,寄存器 D运算器,指令译码器A运算器,控制器 课堂练习2、8031有四个工作寄存器区,由PSW状态字中的RS1、RS0两位的状态来决定,单片机复位后,若执行 SETB RS1 指令,此时只能使用( )区的工作寄存器。A0区B1区C2区D3区课堂练习3. 09H位所在的单元地址是( )A 02HC 08HB 21HD20H课堂练习4.单片机在进行取指令操作时,指令的地址是由( )的内容决定。A SPC DPTRD PSEN和ALE BPC课堂练习5. P0,P1口作输入用途之前必须( )。A外接高电平 B外接上拉电阻C相应端口先置0 D相应端口先置1 课堂练习6.程序计数器PC用来( )。A存放指令 B存放上一条的指令地址D存放正在执行的指令地址 C存放下一条的指令地址 课堂练习1. 8031单片机内部RAM包括( ) 。 A.程序存储区 B堆栈区

温馨提示

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

评论

0/150

提交评论