版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ChapterTwoAT89C51单片机的结构目录CONTENT2.1AT89C51单片机的基本结构 2.2AT89C51单片机的存储器配置 2.3AT89C51的时钟电路与CPU时序2.4AT89C51复位与复位电路2.5AT89C51单片机的最小系统2.1AT89C51单片机的基本结构AT89C51是具有MCS-51内核、片内带有4KB的flashROM的单片机,图2-1为AT89C51基本结构示意图。从图中可以看出,单片机有一条内部总线,各个功能模块都挂在这条总线上,通过内部总线传送数据信息和控制信息。AT89C51主要由以下部件组成。AT89C51单片机基本结构示意图AT89C51主要组成部件CPU是单片机的核心部分,是单片机的指挥和执行机构。AT89C51是8位单片机,CPU的各种运算和操作都是以单字节8位为基础进行的。从功能上看,CPU包括两个基本部分:运算器和控制器。(1)运算器运算器即算术逻辑运算单元ALU(ArithmeticLogicUnit),是进行算术或逻辑运算的部件,可以对单字节(8位)数据进行操作。例如可实现加、减、乘、除等算术运算和与、或、异或、取反、移位等逻辑运算。操作的结果一般送回累加器ACC(Accumulator),而其状态信息送至程序状态寄存器PSW(ProgramStatusWord)。(2)控制器控制器是用来控制单片机工作的部件。控制器接收来自存储器的指令,进行译码,并通过定时和控制电路,在规定时刻发出指令所需的各种控制信息和CPU外部所需的各种控制信号,使各部分协调工作,完成指令所规定的操作。CPU1内部数据存储器2AT89C51芯片内共有256B(地址为:00H~FFH)的数据存储器,其中高128B(地址为:80H~FFH)被专用寄存器SFR占用,能作为数据存储器供用户使用的只是低128B(地址为:00H~7FH),用于存放可读写的数据,如程序执行过程中的变量等。内部程序存储器3AT89C51共有4KB(地址为:0000H~0FFFH)的flash程序存储器,用于存放程序、原始数据或表格常数。定时/计数器4AT89C51共有两个16位的定时/计数器,每个定时/计数器都可以设置成计数方式,用于对外部事件进行计数;也可以设置成定时方式,并可以根据计数或定时的结果实现对单片机运行的控制。并行I/O口5AT89C51共有4个8位的I/O口(P0、P1、P2、P3)。每个8位的口,既可用作输入口,也可用作输出口,每个口即可以8位同步读写,又可对每一位进行单独的操作,十分的方便。串行口6AT89C51单片机有一个全双工的串行接口,实现单片机和其他设备之间的串行数据交换。该串行口功能较强,既可作为全双工异步通信使用,也可作为同步移位器使用。中断控制系统7AT89C51单片机有较强的中断系统,可以满足控制应用的需要。AT89C51的中断系统有5个中断源,包括两个外中断、两个定时/计数中断和一个串行口中断。时钟电路8AT89C51芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。2.1AT89C51单片机的基本结构AT89C51单片机采用40脚双列直插式的DIP40封装,还提供较小尺寸表面封装形式的PQFP/TQFP44,其引脚排列如右图所示。为使结构更加紧凑,单片机的许多引脚具有双重功能。封装引脚功能40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。AT89C51主电源引脚Vcc和VssVcc:接主电源+5V。Vss:电源接地端GND,是单片机的公共参考地。时钟电路引脚XTAL1和XTAL2为了产生时钟信号,在AT89C51内部设置了一个反相放大器,XTAL1是片内振荡器反相放大器的输入端;XTAL2是片内振荡器反相放大器的输出端,也是内部时钟发生器的输入端。当使用自激振荡方式时,XTAL1和XTAL2外接石英晶振和微调电容,构成稳定的自激振荡器,产生与石英晶振同频率的时钟振荡信号。当使用外部时钟源时,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。并行I/O口P0~P4端口引脚MCS-51单片机有4个并行的8位输入输出I/O双向端口,分别是P0~P3,每个并行端口有8个引脚,对应端口的第0位到第7位,每1位可以作为输入或者输出单独操作,因此共有32位的I/O端口。P1~P3口内部有上拉电阻,而P0口是漏极开路型端口,没有内部上拉电阻,使用时大多需要外加上拉电阻。P1口其中1位的结构图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读选通信号输出端。表2-1P3口的第二功能表端口引脚(DIP40封装)第二功能P3.010RXD(串行输入口)P3.111TXD(串行输出口)P3.212INT0(外部中断0输入)P3.313INT1(外部中断1输入)P3.414T0(定时/计数器0的外部计数输入)P3.515T1(定时/计数器1的外部计数输入)P3.616WR(外部数据存储器写脉冲输出)P3.717RD(外部数据存储器读脉冲输出)P3口的第二功能表2.2AT89C51单片机的存储器配置一般微机通常是程序和数据共用一个存储空间,属于“冯.诺依曼”(VonNeumann)结构。而单片机的存储器组织结构则把程序存储空间和数据存储空间严格区分开来,属于“哈佛”(Harvard)结构。AT89C51单片机存储器在物理结构上分成四个存储空间:片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器。从用户使用的角度,即从逻辑上考虑,则有三个存储空间:片内外统一编址的64KB程序存储器地址空间(0000H~FFFFH)、256B的片内数据存储器地址空间(00H~FFH)及片外数据存储器地址空间(0000H~FFFFH)。CPU在访问三个不同的逻辑空间时,通过采用不同形式的指令,来产生相应的存储器选通信号。访问程序存储器使用MOVC指令、访问片内数据存储器使用MOV指令、访问片外数据存储器使用MOVX指令2.2.1AT89C51存储器配置的特点特殊功能寄存器(21个SFR)内部RAM128B00H7FH80HFFH外部RAM(64KB)0000HFFFFHWERD外部ROM(60KB)EA=0/1内部ROM(4KB)EA=1外部ROM(4KB)EA=0PSEN0000H0FFFH1000HFFFFH89C51单片机内部有4K的程序存储器,0000H~0FFFH;程序从0000H开始;有一些特殊功能的区域,如中断入口地址。2.2.2AT89C51的程序存储器在程序存储器中,AT89C51定义了6个地址单元用于特殊用途:0000H:CPU复位后,PC=0000H,程序从程序存储器的0000H单元开始执行;0003H:外部中断0中断服务程序入口地址;000BH:定时器/计数器0溢出中断服务程序的入口地址;0013H:外部中断1中断服务程序入口地址;001BH:定时器/计数器1溢出中断服务程序的入口地址;0023H:串行口中断服务程序的入口地址;2.2.2AT89C51的程序存储器片内数据存储器-片内RAM
内部数据存储器在物理上分为两个不同的存储空间:数据存储器空间(低128单元)特殊功能寄存器空间(高128单元)。这两个空间是相连的。从用户角度而言,低128单元才是真正的数据存储器。2.2.3AT89C51低128B的片内数据存储器低128B的片内数据存储器数据存储器由RAM构成,一旦掉电,其数据将丢失。低128B的数据存储器(地址范围:00H~7FH)用于存放程序运算的中间结果的暂存,用作缓存、堆栈等。低128B的数据存储器的存储器配置如下图。数据存储器空间(低128单元)按功能划分为:位寻址区通用寄存器区用户区2.2.3AT89C51低128B的片内数据存储器用户RAM区工作寄存器区位寻址区00H2FH30H7FH1FH20H工作寄存器3区工作寄存器2区工作寄存器1区工作寄存器0区07H00H08H0FH10H17H18H1FHAT89C51低128B的片内数据存储器2.2.3AT89C51低128B的片内数据存储器工作寄存器区:字节地址:00H~1FH位寻址区:字节地址:20H~2FH位地址为:00H~7FH数据缓冲区/堆栈区:字节地址:00H~7FH一般使用30H~7FH片内RAM2.2.3AT89C51低128B的片内数据存储器工作寄存器区在低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工作寄存器选择RS1RS0寄存器组片内RAM地址00第0组00H~07H01第1组08H~0FH10第2组10H~17H11第3组18H~1FH位寻址区RAM中的20H~2FH的16个单元除了可作为一般RAM单元进行字节寻址外,还可进行位寻址,称作位寻址区。位寻址区共有16个RAM单元,合计128位,位地址为00H~7FH。AT89C51单片机具有位处理机(又称布尔处理机)功能,位处理机的存储空间就包括这个位寻址区。下表为位寻址区的位地址表。2.2.3AT89C51低128B的片内数据存储器位寻址区(20H—2FH)16个字节。16*8=128位,每一位都有一个位地址,范围为:00H—7FH,位地址区也可作为一般RAM使用。用户RAM区在30H~7FH区的80个RAM单元为用户RAM区,只能按字节存取。30H~7FH区是真正的数据缓冲区。由于工作寄存器区、位寻址区、数据缓冲区统一编址,使用同样的指令访问,这三个区的单元既有自己独特的功能,又可统一调度使用。因此,前两区未使用的单元也可用为一般的用户RAM单元,使容量较小的片内RAM得以充分利用。程序设计时,将中间的计算结果,作为变量存放在该区域。对这部分区域的使用不作任何规定和限制,但应当说明的是,堆栈一般开辟在此区。2.2.3AT89C51低128B的片内数据存储器用户RAM区堆栈区域与堆栈指针SP在应用程序中,往往需要一个后进先出的RAM缓冲区,用于子程序调用和中断响应时保护断点及现场数据。这种后进先出的RAM缓冲区称之为堆栈。编程时,需要预留足够的堆栈RAM空间,在RAM中需开辟一个区域作为堆栈区。堆栈区可设在内部RAM的00H~7FH的任意区域,但由于00H~1FH及20H~2FH区域的特殊作用,堆栈区一般设在30H~7FH的范围内。习惯上将堆栈设置在靠近7FH的内部RAM的顶端。由堆栈指针SP指向栈顶单元,在程序设计时,应对SP初始化来设置堆栈区。2.2.3AT89C51低128B的片内数据存储器关于堆栈堆栈:是一个特殊的存储区域特点:“后进先出”单片机的堆栈是地址增加型,即压入数据时地址指针增加。堆站的操作有压入:PUSH弹出:POP堆栈操作示意图利用堆栈将30H单元和31H单元的数据交换。假设当前的SP等于60H。解:PUSH30H PUSH31H POP30H POP31H例AT89C51的特殊功能寄存器SFR(高128单元)内部RAM的高128单元是给特殊寄存器使用的,因此称之为专用寄存器区,其单元地址为80H~FFH。因为这些寄存器的功能已作专门规定,所以称其为专用寄存器或特殊功能寄存器(SpecialFunctionRegisters)。特殊功能寄存器的总数为21个,仅占用了80H~FFH中的很小一部分。表中给出了这些特殊功能寄存器的符号、名称和地址等。特殊功能寄存器SFR占用字节地址:80H~FFH2.2.4AT89C51的特殊功能寄存器2.2.4AT89C51的特殊功能寄存器2.2.4AT89C51的特殊功能寄存器AT89C51的特殊功能寄存器SFR(高128单元)21个特殊功能寄存器是不连读地分散在内部RAM的高128单元之中,尽管其中还有许多空闲地址,但用户不能使用。程序计数器PC是独立于SFR之外的唯一的一个不可寻址的专用寄存器。PC不占RAM单元,在物理上是独立存在的。它不包括在21个特殊功能寄存器中。在21个特殊功能寄存器中,有11个寄存器不仅可以字节寻址,也可以进行位寻址。凡是能进行位寻址的SFR,其特征是字节地址都能被8整除(字节地址的末位是0或8)。IP中有3位、IE中有2位、PSW中有一位对用户无实际意义,所以直接寻址位为82位;再加上数据存储器中的128位,AT89C51共计有210位可寻址位。12341.程序状态字寄存器PSWPSW是8位寄存器,用作程序运行状态的标志,字节地址D0H,位地址格式如表2-5所示。P:奇偶标志该位始终跟踪累加器A的内容中1的个数的奇偶性。如果有奇数个1,则置P为1,否则P为0。例如,A=01100010B(3个1),则P=1;A=01000010B(2个1),则P=0;在AT89C51的指令系统中,凡是改变累加器A中内容的指令均影响奇偶标志位P。F1:用户标志由用户置位或复位。OV:溢出标志有符号数运算时,如果发生溢出,OV置1,否则清0。对于1字节的有符号数,如果用最高位表示正、负号,则只有7位有效位,能表示-128~+127之间的数。如果运算结果超出了这个数值范围,就会发生溢出,此时,OV=1,否则OV=0。在乘法运算中,OV=1表示乘积超过255;在除法运算中,OV=1表示除数为0。RS0、RS1:工作寄存器组选择位选择当前的工作寄存器组。单片机在复位后,RS0=RS1=0,CPU选中第0组为当前工作寄存器组。可利用数据传送指令或位操作指令来改变RS0和RS1的值,以切换当前选用的工作寄存器组。F0:用户标志位用法同F1。AC:半进位标志当进行加法(或减法)运算时,如果低半字节(位3)向高半字节(位4)有进位(或借位),AC置1,否则清0。AC亦可用于BCD码调整时的判别位。CY:进位标志在进行加法(或减法)运算时,如果操作结果最高位(位7)有进位(或借位),CY置1,否则清0。在进行位操作时,CY又作为位操作累加器C。2.累加器ACC累加器ACC(Accumulator)是8位的寄存器,是最重要的特殊功能寄存器,许多指令的操作数取自ACC,大部分运算结果也存放在ACC中。在指令系统中,累加器ACC的助记符记为A,作为直接地址时助记符为ACC。3.寄存器B寄存器B是8位寄存器,主要用于乘法和除法操作指令。对于其他指令,寄存器B可作为一般数据寄存器使用。4.堆栈指针SP堆栈指针SP(StackPointer)是一个8位寄存器,用它存放栈顶的地址。进栈时,SP自动加1,将数据压入SP所指向的单元;出栈时,则将SP所指向单元的内容弹出,然后SP自动减1。因此,SP总是指向栈顶5.数据指针寄存器DPTR由于AT89C51可以外接64KB的数据存储器和I/O接口电路,因此在控制器中设置了一个16位的专用地址指针。它主要用以存放16位地址,作为间址寻址寄存器使用。它可对外部存储器和I/O口进行寻址。DPTR由高字节DPH和低字节DPL两个独立的8位寄存器组成,在CPU内分别占据83H和82H两个地址。6.程序计数器PC程序计数器PC(ProgramCounter)是16位专用寄存器,其内容就是下一条要执行的指令首地址。PC具有自动加1的功能。PC实际上是一个地址指示器,改变PC的内容就可以改变指令执行的次序,即改变程序执行的路线。当系统复位后,PC=0000H,CPU便从这一固定的入口地址0000H开始执行程序。PC客观存在于单片机中,但不在上述的RAM存储器内,这意味着不能对PC直接用指令进行读和写,是不可寻址的专用寄存器。但可以用跳转等流程控制方式改变PC的值。7.电源控制寄存器PCON电源控制寄存器PCON位于SFR区的地址87H,不能位寻址,各位的定义如表2-6。8.端口P0~P3特殊功能寄存器P0~P3分别是I/O端口P0~P3的锁存器。AT89C51单片机是把I/O当作一般的特殊功能寄存器使用,不专设端口操作指令,使用方便。一个单片机的简单应用系统特殊功能寄存器P0~P3分别是I/O端口P0~P3的锁存器。AT89C51单片机是把I/O当作一般的特殊功能寄存器使用,不专设端口操作指令,使用方便。当I/O端口某一位用于输入信号(读端口)时,对应的锁存器必须先置1。例如在例1-1中P32作为输入端口,在判断P32状态前必须先将P32置1。P32=1; //P32作为输入端口必须先置1if(P32==0){ //P32是低电平?如果S1按下,P32为低
P20=1; //S1按下,则P20输出高电平,报警灯亮}else{ //如果S1没有按下
P20=0; //则P20输出低电平,报警灯灭}AT89C51的片外数据存储器外部数据存储器又称外部RAM,当片内RAM的容量不能满足要求时,可通过总线端口和其他I/O口扩展外部数据RAM,其最大容量可达64K字节。外部数据存储器和内部数据存储器的功能基本相同,但外部数据存储器不能用于堆栈操作,对外部外部数据存储器的访问只能使用间接寻址方式。2.2.5AT89C51的片外数据存储器内部RAM128B特殊功能寄存器(21个SFR)00H7FH80HFFH外部RAM(64KB)0000HFFFFHWERD外部ROM(60KB)EA=0/1内部ROM(4KB)EA=1外部ROM(4KB)EA=0PSEN0000H0FFFH1000HFFFFHAT89C52的存储器配置AT89C52相当于MCS-51单片机中的52子系列,与51子系列的AT89C51相比,片内的程序存储器flashROM增加到了8KB,片内的数据存储器增加了128B。AT89C52的存储器结构如图所示。外部ROM(56KB)EA=0/1内部ROM(8KB)EA=1外部ROM(8KB)EA=0PSEN0000H1FFFH2000HFFFFH特殊功能寄存器(27个SFR)内部RAM低128B00H7FH80HFFH内部RAM高128B内部数据存储器内、外程序存储器2.2.6AT89C52的存储器配置AT89C51的存储器配置小结从物理上分,AT89C51的存储器有4个存储空间:片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器。从逻辑上分,AT89C51有3个存储器地址空间:片内外统一的64KB的程序存储器地址空间、256B的内部数据存储器地址空间(其中128B的专用寄存器地址空间,仅有部分字节有实际意义)和64KB的外部数据存储器地址空间。为了区分不同的存储器空间,在用指令访问这三个不同的逻辑空间时采用了不同形式的指令。AT89C51的片内集成有一定容量的程序存储器4K和数据存储器(128B)。当然,还可以根据需要对存储器进行外部扩展。
2.3AT89C51的时钟电路与CPU时序晶体振荡器时钟方式利用芯片内部的振荡器,然后在引脚XTAL1和XTAL2两端跨接晶体振荡器(简称晶振),就构成了稳定的自激振荡器。外接晶振通常为石英晶体振荡器或振荡器。使用石英晶体振荡器时,C1和C2的值为30pF左右;选用晶振的频率也就是单片机的时钟频率,AT89C51最高时钟频率可达到24MHz。晶振和电容要尽可能安装得与单片机引脚XTAL1和XTAL2靠近。XTAL1XTAL2AT89C51C1C2
2.3AT89C51的时钟电路与CPU时序外部时钟方式
从单片机外部直接引入振荡时钟脉冲。振荡时钟脉冲从AT89C51的XTAL1输入,XTAL2应悬空。XTAL1XTAL2AT89C51悬空外部时钟CPU时序单片机的时序是指CPU在执行指令时所需控制信号的时间顺序。时序信号是以时钟脉冲为基准产生的。CPU发出的时序信号有两类:一类用于片内各功能部件的控制,由于这类信号在CPU内部使用,用户无须了解;另一类信号通过单片机的引脚送到外部,用于片外存储器或I/O端口的控制,这类时序信号对单片机系统的硬件设计非常重要。时钟周期也称为振荡周期,定义为时钟脉冲频率(fosc)的倒数,是计算机中最基本的、最小的时间单位。对同一种机型的计算机,时钟频率越高,计算机的工作速度就越快,但是,由于不同的计算机硬件电路和器件不完全相同,所以其所要求的时钟频率范围也不一定相同。时钟周期完成一个基本操作所需要的时间称为机器周期。AT89C51有固定的机器周期,规定一个机器周期就有12个时钟周期,也就是说一个机器周期共包含12个振荡脉冲,即机器周期就是振荡脉冲的12分频,显然,如果使用6MHz的时钟频率,一个机器周期就是2µs,而如果使用12MHz的时钟频率,一个机器周期就是1µs。机器周期指令周期是执行一条指令所需要的时间一般由若干个机器周期组成,指令不同,所需要的机器周期数也不同。对于一些简单的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其他的机器周期。对于一些比较复杂的指令,例如,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年固废资源化利用知识考试题库(含答案)
- 2026年工贸企业双重预防机制考试试卷试题及答案
- 2026年儿童意外伤害预防处置指南培训考试试卷试题及答案
- 2026年查对制度落实全场景考试试卷试题及答案
- 2026年0‑6岁儿童健康管理业务考试试卷试题及答案
- 2026年天津市公务员考试(统计专业科目)练习试题及答案
- 职业教师考试相关试题和答案
- 2026年市政工程质量员考试(专业管理实务)综合能力测试题及答案
- 2026年汽车维修电工资格试卷及答案
- 2025年五年级语文口语交际试题及答案
- 肛门疼痛学习课件
- 教师作业批改检查记录表
- 征兵体检培训试题及答案
- 英语句子成分及五种简单句PPT
- GB/T 880-2008无头销轴
- GB/T 8685-2008纺织品维护标签规范符号法
- GB/T 20066-2006钢和铁化学成分测定用试样的取样和制样方法
- 第四部分沥青路面养护课件
- 规划环评资料清单
- 深圳民润农产品配送连锁商业有限公司鲜活员工手册
- 中国茶文化(中文版)课件
评论
0/150
提交评论