2021年 01月 01日 星期五
您的位置: 威廉希尔主页 > 单片机技术 >

at89c51单片机的结构《单片机》教学教材

来源:未知     作者:威廉希尔     发布时间:2020-12-31 15:21         

  单片机原理与应用 课件 教学配套课件 作者 杭和平 第2章_AT89C51单片机的结构a (全套课件 齐)

  2018/5/9 1第 第2章 章 AT89C51 单片机的结构2.1 AT89C51单片机的基本结构2.2 AT89C51单片机的存储器配置2.3 AT89C51的时钟电与CPU时序2.4 AT89C51复位与复位电2.5 AT89C51单片机的最小系统 22018/5/92. 1 AT89C51 单片机的基本结构 AT89C51是具有MCS-51内核、片内带有4KB的flashROM的单片机,图2-1为AT89C51基本结构示意图。 从图中可以看出,单片机有一条内部总线,各个功能模块都挂在这条总线上,通过内部总线传送数据信息和控制信息。AT89C51主要由以下部件组成。 32018/5/9AT89C51 单片机基本结构示意图 42018/5/9 52018/5/9AT89C51 主要组成部件1.CPUCPU是单片机的核心部分,CPU包括两个基本部分:运算器和控制器。(1)运算器运算器即算术逻辑运算单元ALU(Arithmetic Logic Uint),是进行算术或逻辑运算的部件,可以对半字节 (4位)和单字节 (8位)数据进行操作。例如可实现加、减、乘、除等算术运算和与、或、异或、取反、移位等逻辑运算。操作的结果一般送回累加器 ACC (Accumulator),而其状态信息送至程序状态寄存器PSW(Program Status Word)。(2)控制器控制器是用来控制计算机工作的部件。控制器接收来自存储器的指令,进行译码,并通过定时和控制电,在时刻发出指令所需的各种控制信息和CPU外部所需的各种控制信号,使各部分协调工作,完成指令所的操作。 62018/5/92.内部数据存储器2 .内部数据存储器AT89C51芯片内共有256B(地址为:00H~FFH)的数据存储器,其中高128B(地址为:80H~FFH)被专用寄存器占用,能作为寄存器供用户使用的只是低128B(地址为:00H~7FH),用于存放可读写的数据,如程序执行过程中的变量。 72018/5/93 .内部程序存储器AT89C51共有4KB(地址为:0000H~0FFFH)的flash程序存储器,用于存放程序、原始数据或表格。4 .定时/ 计数器AT89C51共有两个16位的定时/计数器,每个定时/计数器都可以设置成计数方式,用于对外部事件进行计数;也可以设置成定时方式,并可以根据计数或定时的结果实现对单片机运行的控制。 102018/5/92.1.2 AT89C51 单片机的引脚功能AT89C51单片机采用40脚双列直插式的DIP40封装,还提供较小尺寸表面封装形式的PQFP/TQFP44,其引脚排列如图2-2所示。为使结构更加紧凑,单片机的许多引脚具有双重功能。 112018/5/9 122018/5/9 132018/5/9引脚功能40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。 142018/5/9⒈ ⒈ 电源: ⑴ ⑴ V V CC - 芯片电源,接+5V;⑵- 芯片电源,接+5V;⑵ V V SS - 接地端;⒉- 接地端;⒉ 时钟: XTAL1 、- XTAL2 - 晶体振荡电反相输入端和输出端。⒊晶体振荡电反相输入端和输出端。⒊ 控制线根,⑴控制线根,⑴ ALE/ / PROG:地址锁存允许/片内EPROM编程脉冲① ALE功能:用来锁存P0口送出的低8位地址② PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。⑵:地址锁存允许/片内EPROM编程脉冲① ALE功能:用来锁存P0口送出的低8位地址② PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。⑵ PSEN:外ROM读选通信号。⑶外ROM读选通信号。⑶ RST/ /V V PD : :复位/备用电源。① RST(Reset)功能:复位信号输入端。② V复位/备用电源。① RST(Reset)功能:复位信号输入端。② V PD 功能:在Vcc掉电情况下,接备用电源。⑷功能:在Vcc掉电情况下,接备用电源。⑷ EA/ / Vpp:内外ROM选择/片内EPROM编程电源。① EA功能:内外ROM选择端。② Vpp功能:片内有EPROM的芯片,在EPROM编程期间,编程电源Vpp。:内外ROM选择/片内EPROM编程电源。① EA功能:内外ROM选择端。② Vpp功能:片内有EPROM的芯片,在EPROM编程期间,编程电源Vpp。 152018/5/9⒋ ⒋ I/O线口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线口,共32个引脚。P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线 RXD:串行口输入端;P3.1:串行口输入端;P3.1 TXD:串行口输出端;P3.2:串行口输出端;P3.2 INT0:外部中断0请求输入端;P3.3:外部中断0请求输入端;P3.3 INT1:外部中断1请求输入端;P3.4:外部中断1请求输入端;P3.4 T0:定时/计数器0外部信号输入端;P3.5:定时/计数器0外部信号输入端;P3.5 T1:定时/计数器1外部信号输入端;P3.6:定时/计数器1外部信号输入端;P3.6 WR:外RAM写选通信号输出端;P3.7:外RAM写选通信号输出端;P3.7 RD :外RAM读选通信号输出端。 162018/5/9P3 口的第二功能表表 表2-1 P3口的第二功能表端口 引脚(口的第二功能表端口 引脚(DIP40 封装) 第二功能P3.0 10 RXD (串行输入口)P3.1 11 TXD (串行输出口)P3.2 12 INT0 (外部中断0 输入)P3.3 13 INT1 (外部中断1 输入)P3.4 14 T0 (定时/ 计数器0 的外部计数输入)P3.5 15 T1 (定时/ 计数器1 的外部计数输入)P3.6 16 WR (外部数据存储器写脉冲输出)P3.7 17 RD (外部数据存储器读脉冲输出) 172018/5/92.2 AT89C51 单片机的存储器配置一般微机通常是程序和数据共用一个存储空间,属于“冯.诺依曼”(Von Neumann)结构。而单片机的存储器组织结构则把程序存储空间和数据存储空间严格区分开来,属于“哈佛”(Harvard)结构。 182018/5/92.2 AT89C51 单片机的存储器配置AT89C51单片机存储器在物理结构上分成四个存储空间:片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器。从用户使用的角度,即从逻辑上考虑,则有三个存储空间:片内外统一编址的64KB程序存储器地址空间(0000H ~ FFFFH)、256B的片内数据存储器地址空间(00H ~ FFH)及片外数据存储器地址空间(0000H ~ FFFFH)。CPU在访问三个不同的逻辑空间时,通过采用不同形式的指令,来产生相应的存储器选通信号,访问程序存储器使用MOVC指令、访问片内数据存储器使用MOV指令、访问片外数据存储器使用MOVX指令 192018/5/9程序存储器 89C51单片机内部有4K的程序存储器,0000H~0FFFH; 程序从0000H开始; 有一些特殊功能的区域,如中断入口地址。 202018/5/9特殊功能寄存器(特殊功能寄存器(21 个SFR) )内部RAM128B00H7FH80HFFH外部RAM( (64KB) )0000HFFFFHWE RD外部ROM( (60KB) )EA=0/1内部ROM( (4KB) )EA=1外部ROM( (4KB) )EA=0PSEN0000H0FFFH1000HFFFFH 212018/5/9AT89C51 程序存储器配置 222018/5/9中断入口地址表:中断源 入口地址外部中断0 0003H定时器0 000BH外部中断1 0013H定时器1 001BH串行口 0023H 232018/5/9数据存储器内部数据存储器在物理上分为两个不同的存储空间: 数据存储器空间(低128单元) 特殊功能寄存器空间(高128单元)。这两个空间是相连的。从用户角度而言,低128单元才是线 低128B 的片内数据存储器数据存储器由RAM构成,一旦掉电,其数据将丢失。低128B的数据存储器(地址范围:00H~7FH)用于存放程序运算的中间结果的暂存,用作缓存、堆栈等。低128B的数据存储器的存储器配置如图2-4。数据存储器空间(低128单元)按功能划分为: 通用寄存器区 位寻址区 用户区 262018/5/9AT89C51 低128B 的片内数据存储器用户RAM区工作寄存器区位寻址区00H2FH30H7FH1FH20H工作寄存器3区工作寄存器2区工作寄存器1区工作寄存器0区07H00H08H0FH10H17H18H1FH 272018/5/91) 片内RAM工作寄存器区:字节地址:00H ~1FH位寻址区:字节地址:20H ~2FH位地址为:00H ~7FH数据缓冲区/ 堆栈区:字节地址:00H ~7FH一般使用30H ~7FH 282018/5/9工作寄存器区在低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 工作寄存器选择RS1 RS0 寄存器组 片内RAM地址0 0 第0组 00H~07H0 1 第1组 08H~0FH1 0 第2组 10H~17H1 1 第3组 18H~1FH 292018/5/9位寻址区地址为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。 302018/5/9位寻址区 RAM中的20H~2FH的16个单元除了可作为一般RAM单元进行字节寻址外,还可进行位寻址,称作位寻址区。 位寻址区共有16个RAM单元,合计128位,位地址为00H~7FH。80C51单片机具有位处理机(又称布尔处理机)功能,位处理机的存储空间就包括这个位寻址区。表2-3为位寻址区的位地址表。 312018/5/9位寻址区(20H2FH)16个字节。16*8=128位,每一位都有一个位地址,范围为:00H7FH,位地址区也可作为一般RAM使用。位寻址区单元地址 位地址EH 2FH 2H 20H 21H 77FH 7H 76EH 7H 75DH 7H 74CH 7H 73BH 7H 72AH 7H 71H 79H 70H 78H 07FH 0H 06EH 0H 05DH 0H 04CH 0H 03BH 0H 02AH 0H 01H 09H 00H 08 322018/5/9用户RAM区 区 在30H~7FH区的80个RAM单元为用户RAM区,只能按字节存取。30H~7FH区是真正的数据缓冲区。由于工作寄存器区、位寻址区、数据缓冲区统一编址,使用同样的指令访问,这三个区的单元既有自己独特的功能,又可统一调度使用。因此,前两区未使用的单元也可用为一般的用户RAM单元,使容量较小的片内RAM得以充分利用。程序设计时,将中间的计算结果,作为变量存放在该区域。 对这部分区域的使用不作任何和,但应当说明的是,堆栈一般开辟在此区。 332018/5/9*关于堆栈 堆栈:是一个特殊的存储区域; 特点:“后进先出”。 单片机的堆栈是地址增加型,即压入数据时地址指针增加。 堆站的操作有压入:PUSH弹出:POP 342018/5/9堆栈操作示意图89H 1EH F5H 6BH 60H61H6BH SP 栈顶 栈底 RAM 图 2-5 堆栈和堆栈指针示意图 352018/5/9 图 2-6 例 2-1 堆栈操作示意图 PUSH 30H 60H 61H 62H SP PUSH 31H (31H)(30H)POP 30H30H POP 31H31H SP 60H 61H 62H RAM60H 362018/5/9AT89C51 的特殊功能寄存器 SFR (高128 单元) 内部RAM的高128单元是给特殊寄存器使用的,因此称之为专用寄存器区,其单元地址为80H~FFH。因为这些寄存器的功能已作专门,所以称其为专用寄存器或特殊功能寄存器(Special Function Registers)。特殊功能寄存器的总数为21个,仅占用了80H~FFH中的很小一部分。表中给出了这些特殊功能寄存器的符号、名称和地址等。 372018/5/9特殊功能寄存器SFR占用字节地址:80H ~FFH位寻址寄存器:其字节地址可被位寻址寄存器:其字节地址可被8 整除。 专用寄存器:A 、B 、PSW 、DPTR 、SP I/O 接口寄存器:P0 、P1 、P2 、P3 、SBUF 、TMOD 、TCON、 、SCON 382018/5/9寄存器 位地址/位定义 地址F7 F6 F5 F4 F3 F2 F1 F0 B F0HE7 E6 E5 E4 E3 E2 E1 E0 ACC E0D7 D6 D5 D4 D3 D2 D1 D0 PSWCY AC F0 RS1 RS0 OV / PD0HBF BE BD BC BB BA B9 B8 IP B8HB7 B6 B5 B4 B3 B2 B1 B0 P3P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0B0HIE A8HA7 A6 A5 A4 A3 A2 A1 A0 P2P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0A0HSBUF 99H特殊功能寄存器符号极其分布表 392018/5/9SCON 98H97 96 95 94 93 92 91 90 P1P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.090HTH1 8DHTH0 8CHTL1 8BHTL0 8AHTMOD GATE C/T M1 M0 GATE C/T M1 M0 89H8F 8E 8D 8C 8B 8A 89 88 TCONTF1 TR1 TF0 TR0 IE1 IT1 IE0 IT088HPCON SMOD / / / GF1 GF0 PD IDL 87HDPH 83HDPL 82HSP 81H87 86 85 84 83 82 81 80 P0P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.080H注意:位地址和字节地址的区分和表达 402018/5/9 21个特殊功能寄存器是不连读地分散在内部RAM的高128单元之中,尽管其中还有许多空闲地址,但用户不能使用。 程序计数器PC是于SFR之外的唯一的一个不可寻址的专用寄存器。PC不占RAM单元,在物理上是存在的。它不包括在21个特殊功能寄存器中。 在21个特殊功能寄存器中,有11个寄存器不仅可以字节寻址,也可以进行位寻址。凡是能进行位寻址的SFR,其特征是字节地址都能被8整除(字节地址的末位是0或8)。 IP中有3位、IE中有2位、PSW中有一位对用户无实际意义,所以直接寻址位为82位;再加上数据存储器中的128位,89C51共计有210位可寻址位。 412018/5/9( 1 )程序计数器PC PC是一个16位的计数器。其内容为将要执行的指令地址,寻址范围达64KB。PC有自动加1功能,从而实现程序的顺序执行。PC没有地址,是不可寻址的(但在物理上是存在的),因此用户无法对它进行读写;但可以通过转移、调用返回等指令改变其内容,以实现程序的转移。 422018/5/9(2) 累加器A 累加器A为8位寄存器,是最常用的专用寄存器,功能较多。它既可用于存放操作数,也可用来存放中间结果。89C51单片机中大部分单操作数指令的操作数就取自累加器,许多双操作数指令中的一个操作数也取自累加器。加、减、乘、除运算指令的运算结果都存放在累加器A或AB寄存器对中。 432018/5/9(3) B寄存器 B寄存器是一个8位寄存器,主要用于乘除运算。乘法运算时,B是乘数。乘法操作后,乘积的高8位存于B中。除法运算时,B存放除数。除法操作后,余数存于B中。此外,B寄存器也可作为一般数据寄存器使用。 442018/5/9(4) 字 程 序 状 态 字 PSW ( ( PROGRAM STATUSWORD) ) 程序状态字PSW是一个8位寄存器,用于存放程序运行的状态信息。其中,有些位的状态是程序执行的结果,是由硬件自动置位的;而有些位的状态则采用软件的方法来设定。PSW的位状态可以用专门指令进行测试,也可以用指令读出。一些条件转移指令会根据PSW有关位的状态进行程序转移。PSW的各位含义如图所示。其中PSW.1为保留位,未用。 452018/5/9程序状态字PSW 位序 PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0位含义 CY AC F0 RS1 RS0 OV / P 462018/5/9 CY(PSW.7) :进位标志位CY是PSW中最常用的标志位,其功能有二:一是存放算术运算的进位标志;二是在位操作中作累加位使用。位传送、位与、位或操作,操作数之一为进位标志位。 AC(PSW.6) :辅助进位位当进行加法或减法操作而产生由低4位向高4位的进位或借位时,由硬件将AC置1;否则就被清除。AC还用于十进制调整,同DA A 指令结合起来使用。 472018/5/9 F0(PSW.5) :用户标志位它是用户定义的一个状态标记,可以用软件来使它置位或清除,也可用软件测试F0以控制程序的流向。 RS1 、RS0 (PSW.4 ,PSW.3) ):当前寄存器区选择位用软件来置位或清除,以选择和确定当前工作寄存器区。 482018/5/9 OV(PSW.2) 溢出标志位① 在带符号数运算中,OV=1,表示加减运算结果超出了累加器A所能表示的符号数的有效范围(128~+127),即产生了溢出,因此运算结果是错误的;否则OV=0,运算结果正确,无溢出。② 在乘法运行中,OV=1,表示乘积超过255,即乘积分别放在B与A中;否则OV=0,表示乘积只放在A中。③ 在除法运行中,OV=1,表示除数为0,除法不能进行;否则,OV=0,表示除数不为0,除法可正常进行。 492018/5/9 P(PSW.0 ):奇偶位每个指令周期都由硬件来置位或清除,以表示累加器A中1的个数的奇偶性。P=1,则累加器A中1的个数为奇数;若P=0,则累加器A中1的个数为偶数。在串行通讯中用于校验数据的正确性。 502018/5/9(5) 栈指针SP栈指针SP是一个8位专用寄存器。它出堆栈顶部在内部数据存储器中的。系统复位后,SP初始化为07H,使得堆栈向上由08H单元开始。考虑到08H~1FH单元属于工作寄存器区,若程序设计中要用到这些区,最好把SP的值置为1FH或更大一些,一般将堆栈开辟在30H~7FH区域中。SP的值越小,堆栈深度就越深,但最大为128字节。 512018/5/9 SP的值除了可以用软件直接改变外(MOVSP, #DATA),在执行堆栈操作,程序调用、子程序返回及中断返回等指令时,SP的值自动增量或减量。堆栈操作指令为:PUSH ACC (压入堆栈)POP ACC (弹出堆栈) 522018/5/9(6) 数据指针DPTR 数据指针DPTR是唯一1个16位的可寻址的专用寄存器; 由两个8位寄存器DPH和DPL拼装而成,其中DPH为DPTR的高8位,DPL为DPTR的低8位。它既可作为一个16位寄存器来使用,也可作为2个的8位寄存器(DPH和DPL)来使用。 DPTR通常用来存放16位地址。既可访问外部RAM,也可访问ROM。例如: MOV DPTR, #2000H MOVX A, @PPTR;将外RAM2000H单元内容A MOVC A, @A+DPTR;访问ROM指令 532018/5/9(7) 端口P0~P3 专用寄存器P0、P1、P2和P3分别是I/O口P0~P3的锁存器。 在89C51中,I/O 和RAM统一编址,既可以字节寻址,也可以位寻址,使用起来较方便。有关P0~P3的详细情况,在后续内容中介绍。 542018/5/9+5V+5V+5VS2 C122uFY112MC2 30PC3 30PS1 U1 AT89C51EA/VP31X119X218RESET9INT0/P3.212INT1/P3.313T0/P3.414T1/P3.515P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P0.039P0.138P0.237P0.336P0.435P0.534P0.633P0.732P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728RD/P3.717WR/P3.616PSEN29ALE/P30TXD/P3.111RXD/P3.010VCC40VSS20R11KK1继电器 Q19013R2 R3 报警灯D1 220V AC12 100D2 1 2一个单片机的简单应用系统 552018/5/9特殊功能寄存器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输出低电平,报警灯灭} 562018/5/9(8) 串行数据缓冲器SBUF 串行数据缓冲器SBUF用于存放欲发送或接收的数据,它实际上由两个的寄存器组成,一个是发送缓冲器,另一个是接收缓冲器。当要发送的数据传送到SBUF时,进入的是发送缓冲器,当要从SBUF取数据时,则取自接收缓冲器,取走的是刚接收到的数据。 572018/5/9(9) 定时器/计数器 80C51单片机有两个16位定时器/计数器T0和T1,它们分别由两个的8位寄存器组成,共有4个的寄存器:TH0,TL0,TH1,TL1,可对这4个寄存器寻址,但不能把T0和T1当成16位寄存器来访问。 582018/5/9(10) 其它控制寄存器 IP、IE、TMOD、TCON、SCON和PCON寄存器分别包含有中断系统、定时器/计数器、串行口和供电方式的控制和状态位,这些寄存器将在以后内容中介绍。 592018/5/9AT89C51 的片外数据存储器外部数据存储器又称外部RAM,当片内RAM的容量不能满足要求时,可通过总线端口和其他I/O口扩展外部数据RAM,其最大容量可达64K字节。外部数据存储器和内部数据存储器的功能基本相同,但外部数据存储器不能用于堆栈操作,对外部外部数据存储器的访问只能使用间接寻址方式。 602018/5/9特殊功能寄存器(特殊功能寄存器(21 个SFR) )内部RAM128B00H7FH80HFFH外部RAM( (64KB) )0000HFFFFHWE RD外部ROM( (60KB) )EA=0/1内部ROM( (4KB) )EA=1外部ROM( (4KB) )EA=0PSEN0000H0FFFH1000HFFFFH 612018/5/9AT89C52 的存储器配置AT89C52相当于MCS-51单片机中的52子系列,与51子系列的AT89C51相比,片内的程序存储器flash ROM增加到了8KB,片内的数据存储器增加了128B。AT89C52的存储器结构如图2-7所示。外部ROM( (56KB) )EA=0/1内部ROM( (8KB) )EA=1外部ROM( (8KB) )EA=0PSEN0000H1FFFH2000HFFFFH特殊功能寄存器(27个SFR)内部RAM低128B00H7FH80HFFH内部RAM高128B内部数据存储器内、外程序存储器 622018/5/989C51 的存储器配置小结89C51的片内集成有一定容量的程序存储器和数据存储器(128B)。当然,还可以根据需要对存储器进行外部扩展。 从物理上分,89C51的存储器有4个存储空间:片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器。 从逻辑上分,89C51有3个存储器地址空间:片内外统一的64KB的程序存储器地址空间、256B的内部数据存储器地址空间(其中128B的专用寄存器地址空间,仅有部分字节有实际意义)和64KB的外部数据存储器地址空间。 为了区分不同的存储器空间,在用指令访问这三个不同的逻辑空间时采用了不同形式的指令。 632018/5/92.3 AT89C51 的时钟电与CPU 时序晶体振荡器时钟方式利用芯片内部的振荡器,然后在引脚XTALl和XTAL2两端跨接晶体振荡器(简称晶振),就构成了稳定的自激振荡器,发出的脉冲直接送入内部时钟电。外接晶振通常为石英晶体振荡器或振荡器。使用石英晶体振荡器时,Cl和C2的值为30pF左右;使用陶瓷振荡器时,Cl和C2的值为40pF左右;选用晶振的频率也就是单片机的时钟频率,AT89C51最高时钟频率可达到24MHz。晶振和电容要尽可能安装得与单片机引脚XTALl和XTAL2靠近。XTAL1XTAL2AT89C51C1C2 642018/5/92.3 AT89C51 的时钟电与CPU 时序外部时钟方式从单片机外部直接引入振荡时钟脉冲。振荡时钟脉冲从AT89C51的XTALl输入,XTAL2应悬空。XTAL1XTAL2AT89C51悬空外部时钟 652018/5/9CPU 时序单片机的时序是指CPU在执行指令时所需控制信号的时间顺序。时序信号是以时钟脉冲为基准产生的。CPU发出的时序信号有两类:一类用于片内各功能部件的控制,由于这类信号在CPU内部使用,用户无须了解;另一类信号通过单片机的引脚送到外部,用于片外存储器或I/O端口的控制,这类时序信号对单片机系统的硬件设计非常重要。为了便于对CPU时序进行分析,人们按指令的执行过程了几种周期,即时钟周期、机器周期和指令周期,也称为时序定时单位。 662018/5/9CPU 时序时钟周期时钟周期也称为振荡周期,定义为时钟脉冲频率(fosc)的倒数,是计算机中最基本的、最小的时间单位。对同一种机型的计算机,时钟频率越高,计算机的工作速度就越快,但是,由于不同的计算机硬件电和器件不完全相同,所以其所要求的时钟频率范围也不一定相同。机器周期完成一个基本操作所需要的时间称为机器周期。AT89C51有固定的机器周期,一个机器周期就有12个时钟周期,也就是说一个机器周期共包含12个振荡脉冲,即机器周期就是振荡脉冲的12分频,显然,如果使用6MHz的时钟频率,一个机器周期就是2s,而如果使用12MHz的时钟频率,一个机器周期就是1s。 672018/5/9指令周期指令周期是执行一条指令所需要的时间一般由若干个机器周期组成,指令不同,所需要的机器周期数也不同。对于一些简单的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其他的机器周期。对于一些比较复杂的指令,例如,转移指令、乘除运算则需要两个或两个以上的机器周期。 682018/5/9读外部RAM或I/O的时序图 MOVX A, @DPTR 692018/5/92.4 AT89C51 复位与复位电复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H 单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系 统出现死机时,也必须对单片机进行复位,使其重新从头开始工作。 702018/5/9复位电当AT89C51通电,时钟电开始工作,在AT89C51单片机的RST(DlP40封装第9脚)引脚加上大于24个时钟周期以上的高电平脉冲,AT89C51单片机系统即初始复位。初始化后,程序计数器PC指向0000H,P0~P3输出口全部为高电平,堆栈指针写入07H。系统即从0000H地址开始执行程序。单片机的外部复位电有上电自动复位、按键手动复位、以及外部复位信号输入等方式。 712018/5/9上电复位上电复位利用电容器的充电实现。如图2-10(a)是AT89C51单片机的上电复位电。图中给出了复位电参数。上电瞬间,由于电容两端电压不能突变,RST引脚端为高电平,出现正脉冲,其持续时间取决于RC电的时间。RST引脚要有足够长的时间才能单片机有效地复位。 722018/5/9按键复位图2-10(b)是AT89C51单片机的上电+按键复位电。上电复位过程同上。当单片机工作过程中需要复位时,按下复位按键K1,复位端RST通过100Ω的电阻与VCC电源接通,使RST引脚为高电平。复位按键弹起后,RST端经1KΩ的电阻接地,完成复位过程。图中VCC是单片机的供电电压,一般为+5V。 732018/5/9 742018/5/9外接复位芯片为了单片机可靠地复位,有时需要外接复位芯片,特别是当单片机处于间歇工作情况的时候,单片机需要频繁的复位,例如,在计算机监测系统中,电池供电的单片机系统由主计算机控制,平时单片机系统处于断电状态(节省电能),当主计算机接通单片机系统电源后,单片机需要可靠的上电复位进入工作状态。为提高复位的可靠性,可选用专用的复位芯片。如图2-11是使用MAX810(可与IMP810互换,IMP810更廉价,两者的工作原理相同)芯片的复位电。 752018/5/9 762018/5/9 772018/5/98051 的外部引脚及功能 782018/5/92.5 AT89C51 单片机的最小系统单片机最小系统就是能使单片机工作的最少的器件构成的系统,是单片机系统中必不可少的部分。由于AT89C51其内部己经包含了4KB的程序存储器,可以很简单的构建单片机的最小系统,在外部只需接上电源、增加时钟电和复位电即可,如图2-14。早期的MCS-51系列的8031等单片机由于无片内ROM,其最小系统要复杂得多。 792018/5/9 802018/5/9单片机最小系统5.0V12VDC - 24VDCRS4851C510uY1 3.6864MHzC630PC730PU2 AT89C51EA/VP31X119X218RESET9INT012INT113T014T115P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P0.039P0.138P0.237P0.336P0.435P0.534P0.633P0.732P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728RD17WR16PSEN29ALE/P30TXD11RXD10R110KC2100uU3 MAX485RORE#DEDI GNDABVCCU1LM7805VIN1GND3VOUT2C3100uJ21234C10.1C40.1J1POWER12 812018/5/9作业:P40:5、6、7、11;选作10、 12

      威廉希尔