您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > AT89C51单片机的结构《单片机》
2020/5/101第2章AT89C51单片机的结构2.1AT89C51单片机的基本结构2.2AT89C51单片机的存储器配置2.3AT89C51的时钟电路与CPU时序2.4AT89C51复位与复位电路2.5AT89C51单片机的最小系统22020/5/102.1AT89C51单片机的基本结构AT89C51是具有MCS-51内核、片内带有4KB的flashROM的单片机,图2-1为AT89C51基本结构示意图。从图中可以看出,单片机有一条内部总线,各个功能模块都挂在这条总线上,通过内部总线传送数据信息和控制信息。AT89C51主要由以下部件组成。32020/5/10AT89C51单片机基本结构示意图42020/5/1052020/5/10AT89C51主要组成部件1.CPUCPU是单片机的核心部分,CPU包括两个基本部分:运算器和控制器。(1)运算器运算器即算术逻辑运算单元ALU(ArithmeticLogicUint),是进行算术或逻辑运算的部件,可以对半字节(4位)和单字节(8位)数据进行操作。例如可实现加、减、乘、除等算术运算和与、或、异或、取反、移位等逻辑运算。操作的结果一般送回累加器ACC(Accumulator),而其状态信息送至程序状态寄存器PSW(ProgramStatusWord)。(2)控制器控制器是用来控制计算机工作的部件。控制器接收来自存储器的指令,进行译码,并通过定时和控制电路,在规定时刻发出指令所需的各种控制信息和CPU外部所需的各种控制信号,使各部分协调工作,完成指令所规定的操作。62020/5/102.内部数据存储器2.内部数据存储器AT89C51芯片内共有256B(地址为:00H~FFH)的数据存储器,其中高128B(地址为:80H~FFH)被专用寄存器占用,能作为寄存器供用户使用的只是低128B(地址为:00H~7FH),用于存放可读写的数据,如程序执行过程中的变量。72020/5/103.内部程序存储器AT89C51共有4KB(地址为:0000H~0FFFH)的flash程序存储器,用于存放程序、原始数据或表格常数。4.定时/计数器AT89C51共有两个16位的定时/计数器,每个定时/计数器都可以设置成计数方式,用于对外部事件进行计数;也可以设置成定时方式,并可以根据计数或定时的结果实现对单片机运行的控制。82020/5/105.并行I/O口AT89C51共有4个8位的I/O口(P0、Pl、P2、P3)。每个8位的口,既可用作输入口,也可用作输出口,每个口即可以8位同步读写,又可对每一位进行单独的操作,十分的方便。6.串行口AT89C51单片机有一个全双工的串行接口,以实现单片机和其他设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。92020/5/107.中断控制系统AT89C51单片机有较强的中断系统,可以满足控制应用的需要。AT89C51的中断系统有5个中断源,包括两个外中断、两个定时/计数中断和一个串行口中断。8.时钟电路AT89C51芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。102020/5/102.1.2AT89C51单片机的引脚功能AT89C51单片机采用40脚双列直插式的DIP40封装,还提供较小尺寸表面封装形式的PQFP/TQFP44,其引脚排列如图2-2所示。为使结构更加紧凑,单片机的许多引脚具有双重功能。112020/5/10122020/5/10132020/5/10引脚功能40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。142020/5/10⒈电源:⑴VCC-芯片电源,接+5V;⑵VSS-接地端;⒉时钟:XTAL1、XTAL2-晶体振荡电路反相输入端和输出端。⒊控制线:控制线共有4根,⑴ALE/PROG:地址锁存允许/片内EPROM编程脉冲①ALE功能:用来锁存P0口送出的低8位地址②PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。⑵PSEN:外ROM读选通信号。⑶RST/VPD:复位/备用电源。①RST(Reset)功能:复位信号输入端。②VPD功能:在Vcc掉电情况下,接备用电源。⑷EA/Vpp:内外ROM选择/片内EPROM编程电源。①EA功能:内外ROM选择端。②Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。152020/5/10⒋I/O线80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。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:外RAM写选通信号输出端;P3.7——RD:外RAM读选通信号输出端。162020/5/10P3口的第二功能表表2-1P3口的第二功能表端口引脚(DIP40封装)第二功能P3.010RXD(串行输入口)P3.111TXD(串行输出口)P3.212INT0(外部中断0输入)P3.313INT1(外部中断1输入)P3.414T0(定时/计数器0的外部计数输入)P3.515T1(定时/计数器1的外部计数输入)P3.616WR(外部数据存储器写脉冲输出)P3.717RD(外部数据存储器读脉冲输出)172020/5/102.2AT89C51单片机的存储器配置一般微机通常是程序和数据共用一个存储空间,属于“冯.诺依曼”(VonNeumann)结构。而单片机的存储器组织结构则把程序存储空间和数据存储空间严格区分开来,属于“哈佛”(Harvard)结构。182020/5/102.2AT89C51单片机的存储器配置AT89C51单片机存储器在物理结构上分成四个存储空间:片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器。从用户使用的角度,即从逻辑上考虑,则有三个存储空间:片内外统一编址的64KB程序存储器地址空间(0000H~FFFFH)、256B的片内数据存储器地址空间(00H~FFH)及片外数据存储器地址空间(0000H~FFFFH)。CPU在访问三个不同的逻辑空间时,通过采用不同形式的指令,来产生相应的存储器选通信号,访问程序存储器使用MOVC指令、访问片内数据存储器使用MOV指令、访问片外数据存储器使用MOVX指令192020/5/10程序存储器89C51单片机内部有4K的程序存储器,0000H~0FFFH;程序从0000H开始;有一些特殊功能的区域,如中断入口地址。202020/5/10特殊功能寄存器(21个SFR)内部RAM128B00H7FH80HFFH外部RAM(64KB)0000HFFFFHWERD外部ROM(60KB)EA=0/1内部ROM(4KB)EA=1外部ROM(4KB)EA=0PSEN0000H0FFFH1000HFFFFH212020/5/10AT89C51程序存储器配置222020/5/10中断入口地址表:中断源入口地址外部中断00003H定时器0000BH外部中断10013H定时器1001BH串行口0023H232020/5/10数据存储器内部数据存储器在物理上分为两个不同的存储空间:数据存储器空间(低128单元)特殊功能寄存器空间(高128单元)。这两个空间是相连的。从用户角度而言,低128单元才是真正的数据存储器。242020/5/10MCS51数据存储器配置252020/5/10AT89C51低128B的片内数据存储器数据存储器由RAM构成,一旦掉电,其数据将丢失。低128B的数据存储器(地址范围:00H~7FH)用于存放程序运算的中间结果的暂存,用作缓存、堆栈等。低128B的数据存储器的存储器配置如图2-4。数据存储器空间(低128单元)按功能划分为:通用寄存器区位寻址区用户区262020/5/10AT89C51低128B的片内数据存储器用户RAM区工作寄存器区位寻址区00H2FH30H7FH1FH20H工作寄存器3区工作寄存器2区工作寄存器1区工作寄存器0区07H00H08H0FH10H17H18H1FH272020/5/101)片内RAM工作寄存器区:字节地址:00H~1FH位寻址区:字节地址:20H~2FH位地址为:00H~7FH数据缓冲区/堆栈区:字节地址:00H~7FH一般使用30H~7FH282020/5/10工作寄存器区在低128B的RAM区中,将地址00H~1FH共32个单元设为工作寄存器区,分为4组,每组由8个单元按序组成通用寄存器R0~R7。通用寄存器R0~R7不仅用于暂存中间结果,而且是CPU指令中寻址方式不可缺少的工作单元。任一时刻CPU只能选用一组工作寄存器为当前工作寄存器。CPU复位后,自动选中第0组工作寄存器,即R0的地址为00H、R1的地址为01H、R7的地址为07H。同理当选择寄存器组1时,R0的地址为08H。可以通过程序对程序状态字PSW中的RS1、RS0位进行设置,以实现工作寄存器组的切换,对应关系如表2-2。表2-2工作寄存器选择RS1RS0寄存器组片内RAM地址00第0组00H~07H01第1组08H~0FH10第2组10H~17H11第3组18H~1FH292020/5/10位寻址区地址为20H~2FH的16个RAM(字节)单元,既可以作为一般的数据存储器按字节读写,又可以按位存取。16个RAM单元,每个单元8位,共有128位,将每一位分配一个地址,称为位地址,地址编码00~FFH。AT89C51单片机可以对位直接进行操作,程序中常常将一些计算或运行中的状态、标记等作为位变量(布尔变量)存放在位寻址区。表2-3是位地址的分布表。由表2-3可见,字节地址和位地址都是用8位的二进制表示,理解上容易产生混淆。字节地址单元的数据是8位二进制数,而位地址的数据仅是1位二进制数。例如,字节地址2AH单元的数为0,表示位地址50H~57H中8个单元的数均为0,又例如位地址28H的数为0表示字节地址25H的D0位(最低位)为0。也可以用“字节地址.位”表示位地址,例如25H.1(字节地址25H的第1位D1)等于位地址29H。302020/5/10位寻址区RAM中的20H~2FH的16个单元除了可作为一般RAM单元进行字节寻址外,还可进行位寻址,称作位寻址区。位寻址区共有16个RAM单元,合计128位,位地址为00H~7FH。80C51单片机具有位处理机(又称布尔处理机)功能,位处理机的存储空间就包括这个位寻址区。表2-3为位寻址区的位地址表。312020/5/10位寻址区(20H—2FH)16个字节。16*8=128位,每一位都有一个位地址,范围为:00H—7FH,位地址区也可作为一般RAM使用。位寻址区单元地址位地址EH2FH2H20H21H77FH7H76EH7H75DH7H74CH7H73BH7H72AH7H71H79H70H78H07FH0H06EH0H05DH0H04CH0H03BH0H02AH0H01H09H00H08322020/5/10用户RAM区在30H~7FH区的80个RAM单元为用户RAM区,只能按字节存取。30H~7FH区是真正的数据缓冲区。由于工作寄存器区、位寻址区、数据缓冲区统一编址,使用同样的指令访问,这三个区的单元既有自己独特的功能,又可统一调度使用。因此,前两区未使用的单元也可用为一般的用户RAM单元,使容量较小的片内RAM得以充分利用。程序设计时,将中间的计算结果,作为变量存放在该区域。对这部分区域的使用不作任何规定和限制,但应当说明的是,堆栈一般开辟在此区。332020/5/10*关于堆栈堆栈:是一个特殊的存储区域;特点:“后进先出”。单片机的堆栈是地址增加型,即压入数据时地址指针增加。堆站的操作有
本文标题:AT89C51单片机的结构《单片机》
链接地址:https://www.777doc.com/doc-5268372 .html