1、第第2章章 AT89C51单片机结构和原理单片机结构和原理 2.1 AT89C51单片机的结构单片机的结构 2.2 AT89C51单片机的引脚及其功能单片机的引脚及其功能 2.3 AT89C51存储器存储器2.4 单片单片机的工作方式机的工作方式2.5 AT89C51时钟电路与时序时钟电路与时序2.1 AT89C51单片机的结构单片机的结构 图 2.1 单片机结构框图 2.1.1 中央处理器中央处理器CPU 运算器运算器 控制器控制器 寄存器阵列寄存器阵列算术、逻辑、位运算分析、控制指令执行保存计算的中间、最终结果1、算术逻辑单元、算术逻辑单元ALU 2、累加器、累加器ACC(Accumula
2、tor)3、暂存寄存器、暂存寄存器TEMP1,TEMP2 4、程序状态字、程序状态字PSW(Programe State Word)P15 CyACF0RS1RS0OVPD7 D6 D5 D4 D3 D2 D1 D0 一、运算器一、运算器要点要点:掌握掌握PSW各位的含义各位的含义表表 2.2 RS1、RS0与片内工作寄存器组的对应关系与片内工作寄存器组的对应关系 RS1RS0寄存器组片内PAM地址通用寄存器名称000组00H07HR0R7011组08H0FHR0R7102组10H17HR0R7113组18H1FHR0R7二、控制器二、控制器 控制器由程序计数器PC,指令寄存器IR,指令译码器
3、ID和定时控制逻辑电路等构成。(1)程序计数器)程序计数器PC(Program Counter)PC用于存放CPU下一条要执行的指令地址,是一个16位的专用寄存器,可寻址范围是0000H0FFFFH共64KB。程序中的每条指令存放在ROM区的某一单元,并都有自己的存放地址。CPU要执行哪条指令时,就把该条指令所在的单元的地址送上地址总线。在顺序执行程序中,当PC的内容被送到地址总线后,会自动加 1,即(PC)(PC)+1,又指向CPU 下一条要执行的指令地址。(2)指令寄存器和指令译码器)指令寄存器和指令译码器 指令寄存器中存放指令代码。CPU执行指令时,由程序存储器中读取的指令代码送入指令存
4、储器,经译码器译码后由定时与控制电路发出相应的控制信号,完成指令所指定的操作。三、寄存器阵列三、寄存器阵列 通用寄存器组和专用寄存器组。2.1.2.存储器存储器 AT89C51 有128B内部RAM和4KB FLASH ROM。2.1.3 I/O端口端口 1、并行、并行I/O端口端口 P0P3 2、串行、串行I/O端口端口 串行I/O端口 RXD(P3.0),TXD(P3.1),和串行口控制寄存器SCON,电源和波特率选择寄存器PCON,串行数据缓冲器SBUF配合使用,实现串行通讯。2.1.4 定时器和计数器定时器和计数器 AT89C51有两个16位可编程定时器/计数器 T0/T1。T0由TH
5、0,TL0构成,T1由TH1,TL1构成。T0/T1在定时控制寄存器TCON和方式选择寄存器TMOD控制下,可实现定时或计数。2.1.5 中断系统中断系统 1、中断的概念 2、AT89C51的中断系统由中断源、中断允许控制器IE,优先级控制器IP,定时器控制器TCON(中断标志寄存器)等构成,共有5个中断源。两个外部中断源INT0,INT1,三个内部中断源:定时器0溢出中断,定时器1溢出中断,串口中断。2.1.6 内部总线内部总线 AT89C51是单总线结构,地址线和数据线是共用的,采用分时操作和使用,不会冲突。2.2 单片机的引脚及其功能单片机的引脚及其功能 图 2.6 单片机引脚及总线结构
6、2.2.1 I/O端口功能端口功能 1、P0口口 图 2.3 P0 口位结构图 P0口有八条口线P0.0P0.7,是一个三态双向I/O口。(1)P0 口可以作为普通的I/O口使用。由于是开漏极,必须外接上拉电阻。当读外部输入数据时,必须先向P0口写入“1”,然后再读。(2)在需要外部扩展存储器时P0口作地址/数据总线使用。2、P1、P2和和P3口口 P1口是用户专用 8 位准双向I/O口,具有通用输入/输出功能,每一位都能独立地设定为输入或输出。当有输出方式变为输入方式时,该位的锁存器必须写入“1”,然后才能进入输入操作。P1、P2 和P3 口为准双向口,均可作为基本的I/O口使用。P2口是
7、8 位准双向I/O口。外接I/O设备时,可作为扩展系统的地址总线,输出高8位地址,与P0 口一起组成 16 位地址总线。P3口是一个多用途的准双向口。第一功能是作普通I/O口使用,其功能和原理与P1口相同,同样作输出口时不需要上拉电阻。第二功能是作控制和特殊功能口使用。表表 2.3 P3口的第二功能口的第二功能 2.2.2 电源线电源线 VCC:+5V VSS:地2.2.3 外接晶体引脚外接晶体引脚 XTAL1:片内震荡器反线放大器的输入端和内部时钟工作的输入端。XTAL2:片内震荡器反线放大器的输出端。具体时钟电路具体时钟电路 内部时钟电路 外部振荡源 2230P424M(2)ALE/PRO
8、G 地址锁存允许/编程线。当访问外部存储器时ALE输出一个高电平脉冲,将P0口输出的低8位地址锁存到地址锁存器中。常用的地址锁存器有74LS373,74LS573。不访问外外部存储器时ALE以1/6晶振频率输出脉冲序列,因而可利用它来给其他电路(例如8155,ADC0809等)提供脉冲,做脉冲源使用。在对AT89C51内部FLASH ROM编程时,输入编程负脉冲。2.2.4 控制线控制线 (1)RST:复位输入端:复位输入端 (3)PSEN EA=1 时先访问内部程序存储器,=0时访问外部程序存储器。在对AT89C51内部FLASH存储器编程时,施加编程电压。(4)EA/VPP 外部程序存储器
9、的读选通线。2.3 存储器的结构存储器的结构 2.3.1 程序存储器程序存储器 对于AT89C51来说,程序存储器(ROM)的内部地址为 0000H0FFFH,共 4 KB;最多可外扩 64 KB程序存储器,使用内部还是外部由EA脚控制。64KB的ROM中,6 个单元地址具有特殊用途,是保留给系统使用的。0000H是系统的启动地址,一般在该单元中存放一条绝对跳转指令。0003H、000BH、000BH、001BH和 0023H对应 5 种中断源的中断服务入口地址。1、内部、内部RAM 片内RAM为 256 字节,地址范围为00HFFH,分为两大部分:低 128 字节(00H7FH)为真正的RA
10、M区;高 128 字节(80HFFH)为特殊功能寄存器区SFR。2.3.2 数据存储器数据存储器 00H1FH共 32 单元是 4 个通用工作寄存器区。每一个区有 8 个通用寄存器R0R7。(1)用户)用户RAM 30H7FH,80个单元。存放用户数据、开辟堆栈。(2)工作寄存器)工作寄存器(3)位寻址)位寻址RAM表 2.2 寄存器与RAM 地址对照表 选用哪选用哪一组呢?一组呢?表 2.4 RAM中的位寻址区地址表(4)特殊功能寄存器区)特殊功能寄存器区SFR 片内80HFFH这一区间,集合了一些特殊用途的寄存器,一般称之为特殊功能寄存器SFR,它们的功能是固定的,用户不得更改。每个SFR
11、占有一个RAM单元。它们离散地分布在80HFFH地址范围内。DPLDPTRDPH表 2.6 SFR特殊功能寄存器地址表 位地址接在用户位寻址后编址SP表 2.6 SFR特殊功能寄存器地址表 表表 2.6 SFR特殊功能寄存器地址表特殊功能寄存器地址表 数据指针寄存器数据指针寄存器DPTR 数据指针DPTR是一个 16 位的专用寄存器,其高位字节寄存器用DPH表示,低位字节寄存器用DPL表示。既可作为一个 16 位寄存器DPTR来处理,也可作为两个独立的 8 位寄存器DPH和DPL来处理。DPTR 主要用来存放 16 位地址,当对 64 KB外部数据存储器空间寻址时,作为间址寄存器用。在访问程序
12、存储器时,用作基址寄存器。堆栈指针堆栈指针SP(Stack Pointer)堆栈操作是在内存RAM区专门开辟出来的按照“先进后出”原则进行数据存取的一种工作方式,主要用于子程序调用及返回和中断处理断点的保护及返回,它在完成子程序嵌套和多重中断处理中是必不可少的。为保证逐级正确返回,进入栈区的“断点”数据应遵循“先进后出”的原则。SP用来指示堆栈所处的位置,在进行操作之前,先用指令给SP赋值,以规定栈区在RAM区的起始地址(栈底层)。当数据推入栈区后,SP的值也自动随之变化。MCS-51 系统复位后,SP初始化为07H。2.外部外部RAM 外部数据存储器一般由静态RAM构成,其容量大小由用户根据
13、需要而定,最大可扩展到 64 KB RAM,地址是 0000H0FFFFH。CPU通过MOVX指令访问外部数据存储器,用间接寻址方式,R0、R1和 DPTR都可作间接寄存器。注意,外部RAM和扩展的I/O接口是统一编址的,所有的外扩I/O 口都要占用 64 KB中的地址单元。2.4 单片机工作方式单片机工作方式 1.复位方式复位方式 2.程序执行方式程序执行方式 3.省电方式省电方式 4.EPROM编程和校验方式编程和校验方式表表2-7 特殊功能寄存器的复位状态特殊功能寄存器的复位状态特殊功能寄存器初始状态特殊功能寄存器初始状态ACC00HTH100HPSW00HP0P3FFHSP07HIP0
14、0 0000BDPTR0000HIE00 0000BTCON00HTMOD00HTL000HSCON00HTH000HSBUF不定TL100HPCON0 0000B2.5 单片机工作的基本时序单片机工作的基本时序 1.机器周期和指令周期机器周期和指令周期 (1)振荡周期:也称时钟周期,是指为单片机提供时钟脉冲信号的振荡源的周期。(2)状态周期:每个状态周期为时钟周期的2倍,是振荡周期经二分频后得到的。(3)机器周期:一个机器周期包含 6 个状态周期S1S6,也就是 12 个时钟周期。在一个机器周期内,CPU可以完成一个独立的操作。(4)指令周期:它是指CPU完成一条操作所需的全部时间。每条指令执行时间都是有一个或几个机器周期组成。MCS-51 系统中,有单周期指令、双周期指令和四周期指令。内部振荡器外部时钟状态时钟和机器周期2.指令的取指指令的取指/执行时序执行时序 图:单片机取指/执行时序3.访问外部访问外部ROM和和RAM的时序的时序 图 2.8 读外部程序ROM时序 图 2-9 读外部数据RAM时序 图 2.10 写外部数据RAM的时序