第2章AT89C51单片机片内硬件结构_第1页
第2章AT89C51单片机片内硬件结构_第2页
第2章AT89C51单片机片内硬件结构_第3页
第2章AT89C51单片机片内硬件结构_第4页
第2章AT89C51单片机片内硬件结构_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

第2章AT89C51单片机片内硬件结构P3P1P2全双工串行I/O口P0外部中断基准频率源控制128B数据存储器4KB程序存储器2个16位定时/计数器

振荡器及定时电路CPU64KB总线扩展控制准双向并行I/O口内部中断计数脉冲串行输出串行输入FlashROM2.1AT89C51单片机的硬件组成(1)微处理器(CPU);1个8位微处理器及1个布尔处理器(2)数据存储器(RAM);128B(128字节)(3)程序存储器(4KBE2PROM);(4)4个8位可编程并行I/O口(P0口、P1口、P2口、P3口);(5)1个全双工串行通信接口;(UART)(6)2个16位定时器/计数器;(7)中断系统;5个中断源,2个优先级的中断嵌套结构(8)特殊功能寄存器(SFR)。21个还有:片外存储器(64KB+64KB)扩展总线的控制电路。准双向图2-1AT89C51单片机片内结构P.10除电源、复位、时钟外都是I/O端,多数引脚为多功能复用/AD0/AD1/AD2/AD3/AD4/AD5/AD6/AD7/A15/A14/A13/A12/A11/A10/A9/A8

图2-22.2AT89C51单片机的引脚介绍40只引脚双列直插封装(DIP)。

+5V电源电源地逻辑地P.11AT89C51P0口地址和数据总线P1口通用口P2口地址总线P3口RXDTXDINT0INT1T0T1WRRDVCCVSSRST/VDDEA/VPPPSENALE/PROGXTAL1XTAL2接电源+5V端接电源地端①复位信号输入。②接备用电源。外部中断请求定时/计数器外部计数信号输入端片外数据存储器写选通片外数据存储器读选通1、访问外部程序存储器控制信号;2、编程电源VPP。准双向I/O口1、准双向I/O口2、第二功能

外接晶振,晶体振荡电路反相输出端

外接晶振,晶体振荡电路反相输入端1、准双向I/O口2、有扩展外部存储器或并行I/O口时,作为数据总线/低8位地址总线分时复用1、准双向I/O口2、有扩展外部存储器或并行I/O口时,作为高8位地址总线串行口接收串行口发送1、ALE地址锁存允许。2、编程脉冲由该引脚引入。外部程序存储器读选通信号。40只引脚按功能分为3类:(1)电源及时钟引脚:Vcc、Vss;XTAL1、XTAL2。(2)控制引脚:PSEN*、EA*、ALE、RESET(即RST)。(3)I/O口引脚:P0、P1、P2、P3为4个8位I/O口的外部引脚。2.2.1电源及时钟引脚

电源引脚

(1)Vcc(40脚):+5V电源;

(2)Vss(20脚):接地。时钟引脚

(1)XTAL1(19脚):接外部晶体,采用外接振荡器时,外部振荡器的输出应接到此引脚上。

(2)XTAL2(18脚):接外部晶体,采用外接振荡器时悬空。2.2.2控制引脚

提供控制信号,有的引脚还具有复用功能。(1)RST/VPD(9脚):复位/备用电源(“1”电平令CPU硬件复位)(2)EA/VPP

(EnableAddress/VoltagePulseofProgRam-ing,31脚)

第一功能:EA:片外程序存储器选择控制端

(接“0”全部使用片外程存)

第二功能:VPP:用于施加编程电压(例如+21V或+12V)。对AT89C51,加在VPP脚的编程电压为+12V或+5V。(3)ALE/PROG

(30脚):

第一功能:ALE为地址锁存允许,运行时,ALE端一直有正脉冲信号输出,此频率约为时钟振荡器频率fosc的1/6。

第二功能:PROG

为编程脉冲输入端。(4)PSEN

(29脚):外部程序存储器的读选通信号。在单片机读外部程序存储器时,此引脚输出脉冲的负跳沿作为读外部程序存储器的选通信号。2.2.3并行I/O口引脚(简介)P0口:8位准双向I/O口,可驱动8个LS型TTL负载。

当8051扩展外部存储器及I/O接口芯片时,P0口作为地址总线(A0~A7)与数据总线(D0~D7)的分时复用端口。(2)P1口:8位准双向I/O口,可驱动4个LS型TTL负载。唯一专用I/O口(3)P2口:8位准双向I/O口,可驱动4个LS型TTL负载。

当8051外部扩展时作地址总线(A8~A15)用,(4)P3口:8位准双向I/O口,双功能复用口,可驱动4个LS型TTL负载。

P3口还可提供第二功能,定义如书中表2-1所列,应熟记。准双向口:有条件限制地实现输入输出双向功能的接口。

(MCS-51:当作为普通的输入端口使用时,应先向相应端口的输出锁存器写入1。)1P1锁存器P1驱动器P0驱动器P0锁存器定时及控制指令寄存器ALUPSW程序地址寄存器P3锁存器P3驱动器暂存2暂存1PCONSCONTMODTCONT2CONTHOTL0TH1TL1TH2*TL2*RLDH*RLDL*SBUFIEIP中断、串行口、定时器DPTRPCPC+1缓冲器ACC寄存器

BSPRAM地址寄存器RAMP2驱动器P2锁存器EPROM/ROMVCCVSSPSENALEEARST2.3AT89C51单片机的CPUPSW用来存放运算结果的状态标志所有的算术运算和大部分的逻辑运算都是通过A来完成程序计数器堆栈指针2.3.1运算器(Arithmeticandlogicunit)功能—在控制器的控制下,对二进制数进行算术运算、逻辑运算及位操作。算术运算:加、减、乘、除逻辑运算:与、或、非位操作中心部件—

算术逻辑单元ALU暂存原始数据、中间结果及运算结果ALU累加器Acc暂存器TMP寄存器(Register)标志寄存器PSW保存运算结果的状态标志存放第一操作数和操作运算结果2.3.2控制器

分析和执行指令的部件,指挥中枢。解释输入计算机中的命令并发出响应的控制信号的机构。在它的控制下执行命令、原始数据的输入、机器内部的信息处理、处理结果的输出、外设与主机的信息交换,以及对异常情况和特殊情况的处理等操作。

程序计数器PC(16bit)

存放即将执行的下一条指令的16bit地址;顺序执行指令时,微处理器每取出一条指令的一个字节,PC自动+1(如一条指令是2个字节,则执行完毕时PC的内容要+2);当遇到转移指令或子程序时,PC内容就被指定的转移的目标地址取代,实现程序转移;系统开机初始化时,PC=0000H,可寻址范围64KB。2.4AT89C51单片机的存储器结构

MCS-51的存储器结构与常见的微型计算机的配置方法不同,采用哈佛结构它将程序存储器和数据存储器分开,各有自己的寻址方式、控制信号和功能。

程序存储器用来存放程序、始终要保留的表格常数。

数据存储器存放程序运行中所需要的常数和变量。

P.15半导体存储器的结构存储器由存储体、地址译码器和读/写控制电路组成。地址译码器读/写控制CPUAB地址0000H0001H0002HFFFFH内容0011101011000111CPUDBCPU读/写信号A14A15D7D0D1D2……存储体由大量存储单元组成,每个单元存放若干位二进制码,若放8bit,称为字节单元存储单元(0002H)=C7H用一定位数的二进制码对存储单元进行编号,称为存储单元的地址。n位二进制码可寻址2n个单元,如:28=256、216=65536。对存放在地址寄存器中的地址进行译码,以选择指定的存储单元存储单元取出/存入信息的操作称为读/写操作A0A1A2……补充1.读操作(例如:要将01H单元的内容3AH读出)存储器的读写操作过程地址译码器读/写控制CPUAB地址00H01H02HFFH内容0011101011000111CPUDB读/写信号A0A1A2A3A4A5A6A7D5D0D1D2D3D4D6D7第一步:送地址10000000经地址译码器选通01H单元第二步:CPU发出“读”信号第三步:01H单元的内容送数据总线上01011001地址译码器读/写控制CPUAB地址00H01H02HFFH内容0011101011000111CPUDB读/写信号A0A1A2A3A4A5A6A7D5D0D1D2D3D4D6D7存储器的读写操作过程2.写操作(例如:要将D5H写入02H单元)第一步:送地址01000000经地址译码器选通02H单元第二步:CPU将D5H送到数据总线上10101110第三步:CPU发出“写”信号D5H从数据总线送到02H单元11010101存储器的读写操作过程对存储单元的读操作,不会破坏其原内容,是复制;对存储单元的写操作,改变了其原来内容。从物理空间(实际结构)看,AT89C51有四个存储器地址空间:

外部数据存储器(RAM)外部程序存储器(ROM)内部程序存储器内部数据存储器AT89C51AT89C51存储器物理结构

从逻辑上(使用角度)看,AT89C51有三个存储器空间:片内、片外统一编址的程序存储器片外数据存储器、片内数据存储器

内部程序存储器外部程序存储器外部数据存储器内部数据存储器归为一个空间AT89C51存储器逻辑结构1、程序存储器(ROM)内部ROM0000H0FFFH4KB地址重叠0000HFFFFH外部扩展ROM0FFFH片外共64KB4KB访问程序存储器使用MOVC指令地址线:A15~A0用PSEN作为读选通信号P.281、程序存储器(ROM)EA引脚电平高低对程序执行走向的影响EA外部程序存储器选择控制端EA引脚电平高低对程序执行走向的影响内部ROM0000H0FFFH4KB0000HFFFFH外部扩展ROM0FFFH片外共64KB4KBEA接高电平程序执行走向PC≤0FFFHPC>0FFFHEA引脚电平高低对程序执行走向的影响内部ROM0000H0FFFH4KB0000HFFFFH外部扩展ROM0FFFH片外共64KB4KBEA接低电平全部执行外部程序在8051系列中,有的单片机如8031,片内无ROM,程序只能装在片外扩充的ROM中,这时用户必须把EA接地。

EA引脚电平高低对程序执行走向的影响接高电平还是低电平,由用户根据需要连接:如果片内ROM有要执行的程序,这时应接+5V;如果执行的程序全部在片外ROM中,这时应接地;也可以用一个开关切换。程序存储器中的几个特殊地址的使用:地址用途0000H复位时程序入口地址0003H外部中断0服务程序入口地址000BH定时器0中断服务程序入口地址0013H外部中断1服务程序入口地址001BH定时器1中断服务程序入口地址0023H串行口中断服务程序入口地址由于两入口地址之间的存储空间有限,因此在编程时,通常在这些入口地址开始的两三个地址单元中,放入一条转移类指令,使相应的程序转到指定的程序存储器区域中执行。2、外部数据存储器

0000HFFFFH外部扩展数据存储器64KB作用:用于存放随机读写的数据。 外部I/O口地址影像区。包括两部分空间:1、外部RAM2、扩展的I/O口地址程序存储器与外部数据存储器的比较

0000HFFFFH外部数据存储器64KB0000HFFFFH程序存储器64KB相同:地址线A15~A0不同:访问的指令不同,读写信号不同MOVC指令MOVX指令只读,PSEN作为外部ROM读信号可读写,RD作为读信号,WR作为写信号21个SFR内部RAMFFH00H7FH80H(128B)3、内部数据存储器(单元数少,但最复杂)00HFFH内部数据存储器特殊功能寄存器空间,离散分布作数据缓冲器、标志位等8bit地址MOV指令P.16~193、内部数据存储器21个SFR内部RAMFFH00H7FH80H(128B)32B00H1FH工作寄存器区16B(16×8bit)20H2FH位寻址区30H7FH普通RAM(1)工作寄存器区32B00H1FH00H1FH0FH17H18H10H08H07H0区1区2区3区R0R7……R0R7……R0R7……R0R7……当前使用哪一个区由PSW寄存器的RS1和RS0两个位来决定RS1RS0寄存器区R0~R7所占单元的地址000区00H~07H011区08H~0FH102区10H~17H113区18H~1FH工作寄存器区的选择RS1:程序状态字寄存器PSW的D4位;RS0:程序状态字寄存器PSW的D3位;CLRRS1

;RS1清0SETBRS0

;RS0置1复位时,自动选中0区。工作寄存器区的选择一旦选中其中一个区,其它三区只能作为普通RAM单元使用,而不能作为工作寄存器使用。设置多个工作寄存器区可以方便保护现场。(2)位寻址区16B(16×8bit)20H2FH共16个字节单元,每字节单元有8位,每位有一个位地址,共128位,位地址范围为00H~7FH,该区既可位寻址,又可字节寻址。

2FH7F7E7D7C7B7A79782EH777675747372717022H171615141312111021H0F0E0D0C0B0A090820H0706050403020100位寻址区位地址分配字节地址位地址D7D6D5D4D3D2D1D0…………字节地址与位地址在使用上如何区别?MOVC,20HMOVA,20H例:

2FH7F7E7D7C7B7A797824H272625242322212023H1F1E1D1C1B1A191822H171615141312111021H0F0E0D0C0B0A090820H0706050403020100字节地址位地址D7D6D5D4D3D2D1D0…………位操作指令MOVC,20H位地址!!!其内容只有1bit

2FH7F7E7D7C7B7A797824H272625242322212023H1F1E1D1C1B1A191822H171615141312111021H0F0E0D0C0B0A090820H0706050403020100字节地址位地址D7D6D5D4D3D2D1D0…………字节操作指令MOVA,20H字节地址!!!其内容共8bit表2-5内部RAM的可寻址位及位地址P.19符号指令中可用<字节地址>.<位次>暂代其位地址20H.720H.620H.520H.420H.320H.220H.120H.02FH.72FH.62FH.52FH.42FH.32FH.22FH.12FH.0如:符号指令中可用21H.5

暂代位地址

0DH21H.721H.621H.521H.421H.321H.221H.121H.0(位地址00H~7FH)(共128个位)(3)普通RAM区30H7FH数据缓冲区堆栈区工作单元只能字节寻址(以一个字节单元作为一个整体操作)堆栈的概念:临时存储某些数据信息的存储器专用区(4)特殊功能寄存器SFR(SpecialFuctionRegister)

地址空间21个SFRFFH80HA累加器、状态标志寄存器;单片机内部各部件专用的控制、状态寄存器;并行口、串行口影射寄存器;特殊功能寄存器(SFR)名称特殊功能寄存器符号(SFR名)寄存器寻址符号位地址D7~D0B寄存器BF7H~F0H累加(寄存)器ACCAE7H~E0H程序状态字

(标志寄存器)PSWD7H~D0H中断优先级控制寄存器IPBFH~B8HP3口P3B7H~B0H中断允许控制寄存器IEBFH~B8HP2口P2A7H~A0H串行口数据缓冲器SBUF串行口控制寄存器SCON9FH~98HP1口P197H~90H定时器/计数器1(高字节)TH1定时器/计数器0(高字节)TH0定时器/计数器1(低字节)TL1定时器/计数器0(低字节)TL0定时器/计数器方式控制寄存器TMOD定时器/计数器控制寄存器TCON8FH~88H电源控制PCON数据指针高字节DPH数据指针低字节DPL堆栈指针SPP0口P087H~80H字节地址FOHE0HD0HB8HB0HA8HA0H99H98H90H8DH8CH8BH8AH89H88H87H83H82H81H80HABDPTR符号指令中可用<SFR名>暂代其字节地址直接地址direct(80H.....F0H)位地址bit(80H....F7H)(16位)字节地址为x0H或x8H的SFR可位寻址!且D0位址同字节址表2-5SFR中的位地址分布

(可位寻址的SFR)P.19P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0P3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0ACC.7ACC.6ACC.5ACC.4ACC.3ACC.2ACC.1ACC.0符号指令中可用位名、<SFR名>.<位次>、<SFR字节地址>.<位次>暂代其位地址

CYACF0RS1RS0OV-PB.7B.6B.5B.4B.3B.2B.1B.0PSPT1PX1PT0PX0

EAESET1EX1ET0EX0

SM0SM1SM2RENTB8RB8TIRITF1TR1TF0TR0IE1IT0IE0IT0√√√√√√例如D4H位:可用RS1、PSW.4、0D0H.4暂代其位地址0D4H字节地址为x0H或x8H的SFR可位寻址!且D0位址同字节址位地址空间组成及位地址表示法⑴内部数据存储器的20H~2FH共16个单元可按位寻址,128位;⑵专用寄存器地址能被8整除的可按位寻址。例1:位地址1EH=23H.6即字节地址单元23H的D6位例2:位地址D4H=D0H.4=PSW.4=RS1位地址字节地址.位次寄存器名称.位次位名称【思考】下列指定位的位地址值是多少:

ACC.1:E1H

P2.7:A7H

ET1:

ABH

2DH.5:

6DH

PSW.2:

D2H

A.2:

B寄存器的D6:

F6H

30H.3:

P:

D0

H

D0H.2:D2H⑴累加器A(8bit)最常用;存放操作数或运算结果⑵B寄存器(8bit)

乘、除指令,用B寄存器作为其中的一个操作数;几个特殊功能寄存器SFR介绍P14、18D7D6D5D4D3D2D1D0CyAC

F0RS1RS0OV

F1P位地址位名称(3)PSW-程序状态字寄存器(8bit)进/借位标志Cy=1,有进/借位;Cy=0,无进/借位。AC:反映高半字节与低半字节之间的进/借位,AC=1有进/借位;AC=0无进/借位。用户标志位工作寄存器组选择位OV:溢出标志有溢出OV=1,无溢出OV=0。用户标志位P:奇偶标志运算结果有奇数个“1”,P=1;偶数个“1”,P=0。(5)堆栈指针SP(8bit)指明栈顶单元的地址。可由软件设置初始值,系统复位时设置为07H。(6)数据指针DPTR(16bit)

作为访问外部数据存储器(包括外部RAM和扩展的I/O口)的间接寻址寄存器,即存放要访问的外部存储单元或接口的地址。由DPH、DPL组成。在某些情况下,DPH、DPL也可单独使用。堆栈的主要作用:用于响应中断或调用子程序时保护断点地址;保护现场和恢复现场。操作原则:先进后出或后进先出。指针寄存器(4)程序计数器PC(16bit)(注意:不属于SFR地址空间)访问不同的存储器空间使用不同的指令程序存储器,使用MOVC指令;内部数据存储器,使用MOV指令;外部数据存储器,使用MOVX指令;特殊功能寄存器,使用MOV指令;位地址空间,使用MOV、SETB、CLR等指令。2.6时钟电路与时序

2.6.1时钟电路

时钟电路用于产生89C51单片机工作所必需的时钟控制信号。(工作时钟)时钟频率直接影响单片机的速度,电路的质量直接影响系统的稳定性。★电容器C01、C02起稳定振荡频率、快速起振的作用。电容典型值一般选择为30PF。内部时钟方式由于单片机内部有一个高增益运算放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。P.24晶体的振荡频率在1.2MHz~12MHz之间,某些已达40MHz

(如AT89S52)。XTAL1XTAL2GNDAT9C51C01C02内部时钟方式

外部时钟方式是把已有的时钟信号引入单片机。这种方式适宜用于使单片机的时钟与外部信号保持一致。常用于多片89C51单片机同时工作。

外部时钟XTAL1XTAL2GND悬空AT89C51外部时钟方式2.6.2机器周期、指令周期与指令时序

单片机执行的指令的各种时序均与时钟周期有关1.时钟周期:单片机的基本时间单位。时钟周期Tosc=1/fosc

如:fosc=6MHz,Tosc=0.1667us;fosc=11.0592MHz,Tosc=0.090422453us2.机器周期:CPU完成一个基本操作所需的时间称为机器周期。8051单片机每12个时钟周期为1个机器周期,记TM

如:fosc=6MHz,TM=12/fosc=2us;fosc=11.0592MHz,TM=1.085069444us

一个机器周期分为6个状态:S1~S6。每个状态分为两拍:P1和P2。3.指令周期:执行一条指令所需的时间。51单片机1~4个TM。图2-13TMTMP.25例:单片机外接晶振频率fosc=12MHz时的各种时序单位:

振荡周期Tosc=1/fosc=1/12MHz=0.0833us状态周期=2/fosc=2/12MHz=0.167us

机器周期TM

=12/fosc=12/12MHz=1us指令周期=(1~4)机器周期=1~4us2.7复位操作和复位电路2.7.1复位操作单片机的初始化操作,摆脱死锁状态。(CPU硬件复位)引脚RST加上大于2个机器周期的高电平就可使MCS-51复位。复位时,程序计数器PC为0000H,使单片机从0000H开始执行程序。除PC之外,复位操作还对其它一些寄存器有影响:见复位状态表。2.7.2复位电路上电自动复位电路+手动复位电路上电自动复位电路单片机与外围接口芯片的退出复位的电平阀值有所差异,为保证系统同步起始工作,建议在程序初始延迟一定时间(如20~50mS)再启用接口芯片。P.26

RST

8051

R

C

+5V

+

RST

8051

R

R1

C

+5V

+

温馨提示

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

评论

0/150

提交评论