490 likes | 614 Views
第二章 MCS-51 单片机的硬件结构和工作原理. 2.1 MCS-51 单片机的主要性能特点 2.2 MCS-51 单片机内部结构 2.3 MCS-51 单片机的引脚功能 2.4 MCS-51 单片机的存储器配制 2.5 时钟电路 , 复位电路和 CPU 时序 2.6 并行 I/O 口. 1. 教学内容 : MCS-51 单片机的内部结构及其特性 ( 片内结构、引脚功能及片外总线结构、存储器组织及扩展、 I/O 结构、中断、时钟和复位电路。 2. 教学重难点 MCS-51 单片机的引脚功能、存储器组织及扩展、 I/O 结构、中断 3. 课时 8 4. 作业
E N D
第二章 MCS-51单片机的硬件结构和工作原理 2.1 MCS-51单片机的主要性能特点 2.2 MCS-51单片机内部结构 2.3 MCS-51单片机的引脚功能 2.4 MCS-51单片机的存储器配制 2.5 时钟电路,复位电路和CPU时序 2.6 并行I/O口
1.教学内容: • MCS-51单片机的内部结构及其特性(片内结构、引脚功能及片外总线结构、存储器组织及扩展、I/O结构、中断、时钟和复位电路。 • 2.教学重难点 • MCS-51单片机的引脚功能、存储器组织及扩展、I/O结构、中断 • 3.课时 • 8 • 4.作业 • 习题2 ,3 ,4,7
2.1 MCS-51单片机主要性能特点 • MCS-51为8位高档单片机系列,采用HMOS工艺,提高芯片集成度,性能有很好 改善。 • 特点: 1)扩大了ROM和RAM的容量 2)具有布尔代数运算能力 3)具有32个双向可被独立寻址的I/O口 4)具有5-6个中断源,可分为两个中断优先级 5)具有丰富的指令系统 6)具有全双工传输信号UART的能力 7)片内具有时钟振荡电路 8)可采用一次性烧写的内含ROM或可重复烧写的EPROM
2.2 MCS-51单片机内部结构 表1.1
2.2.1 MCS-51单片机的内部结构 计数脉冲输入 T0 T1 时钟源 定时器/计数器 时钟电路 SFR和RAM ROM CPU 系统总线 并行端口 串行端口 中断系统 RXD P0 P1 TXD P2 P3 8051内部结构图
运算器 控制器 2.2.2 MCS-51单片机的内部结构介绍 • 1.CPU(中央处理器)完成单片机的运算和控制能力 ALU、布尔处理器、ACC、寄存器B、暂存器TMP1,TMP2、PSW寄存器、十进制调整电路 定时控制逻辑、指令寄存器、译码器、 信息传输控制部件
2.2.2 MCS-51单片机的内部结构介绍 2.内部存储器 程序存储器ROM 存放程序指令,常数和数据表格(只读) 数据存储器 RAM 存放数据,分为内部和外部数据存储器(随机) 单片机内有256个RAM单元,作为寄存器被用户使用的只有前128个单元,后128个被专用寄存器占用 内部RAM指的是前128单元
2.2.2 MCS-51单片机的内部结构介绍 • 3.定时与中断系统 MCS-51单片机内有两个16位的定时器/计数器:实现定时和计数,并将其结果作为查询和中断的控制凭据; MCS-51单片机内有5个中断源 (2个中断优先级) 2个外部中断源 2个定时器/计数器中断源 1个串行口中断源
2.2.2 MCS-51单片机的内部结构介绍 • 4.并行I/O口 • 4个8位的并行I/O口 (P0 P1 P2 P3 )实现数据并行输入输出 • 5.串行I/O口 • 一个全双工的串行口 实现与外部的串行数据传送 • 6.时钟电路 • 为单片机产生时钟脉冲序列,协调和控制单片机的工作. MCS-51单片机内部有时钟电路(但是需外接石英晶体振荡器和微调电容) • 最高时钟频率为12MHZ
2.3 MCS-51单片机的引脚定义及功能 1.单片机的引脚图
2.3 MCS-51单片机的引脚定义及功能 2. 引脚说明: (1) P0口 (32脚 --39脚)有三种使用方法 1) 作为与外部传送数据的8位数据总线(D0—D7) 2) 作为扩展外部存储器时的低8位地址总线(A0---A7) 3) 作为一般I/O口,需外接上拉电阻 •
2.3 MCS-51单片机的引脚定义及功能 • (2) P1口 (1脚--8脚)有两种使用方法 P1口是用户专用 8 位准双向I/O口, 具有通用输入/输出功能, 每一位都能独立地设定为输入或输出。80C52的P1.0和P1.1有特殊功能 • 1引脚 P1.0/T2 定时器/计数器T2计数端输入 • 2引脚 P1.1/T2 T2的捕捉/重新加载的触发输入
2.3 MCS-51单片机的引脚定义及功能 • (3) P2口 (21脚--28脚)有两种使用方法 • 1)作为一般I/O口,不需外接上拉电阻 • 2)作为扩展外部存储器时的高8位地址总线(A8---A15) • (4) P3口 (10脚--17脚)有两种使用方法 • 1)作为一般I/O口,不需外接上拉电阻 • 2)具有特殊功能 见表1-1
2.3 MCS-51单片机的引脚定义及功能 • (5) Vcc (40脚) 接+5V电源 (6) Vss 接地 (7) XTAL1(19脚) XTAL2(18脚) 接外部石英晶振的引 脚,也可引入外部时钟 HMOS型 XTAL1接地 XTAL2接外部时钟输入 端 CHMOS型 XTAL1接时钟输入端 XTAL2悬空 机器周期=12/石英晶振频率 • (8) RST/VPD (9脚) 复位信号引脚 • 该引脚出现2个机器周期的高电平才可靠
2.3 MCS-51单片机的引脚定义及功能 • (9) ALE/PROG (30脚) 地址锁存允许信号 1)外接存储器时,ALE的输出用于锁存地址的低8位,一般接锁存器的EN端 2)没有外接存储器时,ALE端可输出脉冲信号,频率为石英振荡频率的1/6,可为外部芯片提供输出的时钟,或用于定时 3)烧写EPROM时,作烧写时钟的输入端 (10) (29脚) 外部程序存储器的读选通信号 读外部ROM时,低电平有效,每个机器周期动作两次,与外部ROM的OE脚相连 读外部RAM时,无输出
2.3 MCS-51单片机的引脚定义及功能 (31脚) 访问程序存储器的控制信号 • (11 ) 接低电平时,对ROM的读操作限定 在外部程序存储器 接高电平时,对ROM的读操作从内部开始 8751单片机烧写内部EPROM时,该脚输入21V的烧写电压
2.4 存储器配置 • MCS-51 单片机把程序存储器和数据存储器分开,具有各自的寻址系统和控制信号。 1. 内部程序存储器(ROM) 存放程序和表格常数 8051为4KB 8052为8KB 2. 内部数据存储器(RAM) 存放运算过程中的数据 8051/8031为128B 8052/8032为256B 3. 外部程序存储器(ROM) 存放程序 最大可扩展为64KB (包括内部ROM) 4.外部数据存储器(RAM) 存放大量数据 最大可扩展为64KB (不包括内部RAM)
2.4.1 内部数据存储器及专用寄存器 • 1.内部数据存储器 • 片内RAM为 256 字节, 地址范围为00H~FFH, 分为两大部分: 低 128 字节(00H~7FH)为真正的RAM区; 高 128 字节(80H~FFH)为特殊功能寄存器区SFR。 FFH FFH 间接寻址 可直接寻址 (SFR) 80H 7FH 80H 可直接(间接)寻址 内部数据存储器空间分配 00H
2.4.1 内部数据存储器及专用寄存器 在低 128 字节RAM中, 00H~1FH共 32 单元是 4 个通用工作寄存器区。每一区有 8 个通用寄存器R0~R7。 7FH 用户RAM区 30H 2FH 位寻址区 20H 1FH 寄存器0,1,2,3组 07H R7 寄存器0组 R6 R5 R4 R3 内部数据存储器的结构 R2 R1 R0 00H
2.4.1 内部数据存储器及专用寄存器 • (1)用户RAM区 内部数据存储器的30H-7FH 可在编程时暂存数据,不作规定.(堆栈区也设在该区) 例: MOV 30H , A ;将累加器A中的内容送入30H (2)位寻址区 内部数据存储器的20H-2FH 16个单元,128位,每位都有相应位地址,位地址为00H-7FH 不作位寻址时,可作为一般RAM单元字节寻址 位地址和字节地址都为00H-7FH 注意区分位与字节地址
2.4.1 内部数据存储器及专用寄存器 表1.4
2.4.1 内部数据存储器及专用寄存器 • (3) 寄存器组内部数据存储器的00H-1FH(32单元) • 4个通用工作寄存器组,每组有8个寄存器R0—R7 • 存放操作数和中间结果 • (由PSW中的RS1和RS2位来控制使用哪一组) 表1.5
2.4.1 内部数据存储器及专用寄存器 寄存器与RAM 地址对照表
2.4.1 内部数据存储器及专用寄存器 • 2.专用寄存器(特殊功能寄存器)80H-FFH 用来设置片内电路的运行方式,记录电路的运行状态,并 表明有关标志 51系列有21个 52系列有26个,只占了空间的一小部分 但是其他空间还是不能进行读,写操作. 其中有11个不仅可进行字节寻址,还能进行位寻址(字节地址末位为0或8)
位地址 字节地址 寄存器符号 B7 B6 B5 B4 B3 B2 B1 B0 F0H B F1 F0 F7 F6 F5 F3 F2 F4 A7 A6 A5 A4 A3 A2 A1 A0 A E0H E7 E6 E5 E4 E3 E2 E1 E0 CY AC F0 RS1 RS0 OV P PSW D0H D7 D6 D5 D4 D3 D2 D1 D0
2.4.1 内部数据存储器及专用寄存器 • (1)B寄存器,常用于乘除法运算 乘法时: B是乘数,结果高8位存在B中 除法时: B放除数,结果的余数放在B中 (2)累加器ACC,可以按位寻址, 可存放运算结果和操作数 (3)程序状态字PSW 存放程序运行的状态信息,可按位寻址,其中PSW.1为保留位 位 7 6 5 4 3 2 1 0 PSW CY AC F0 RS1 RS0 OV P
2.4.1 内部数据存储器及专用寄存器 • (4)定时器2寄存器 • (5)IP寄存器 • (6)IE寄存器 • (7)SCON寄存器 • (8)SBUF寄存器 • (9)定时器0和定时器1寄存器 • (10)P0-P3端口寄存器 • (11)堆栈指针寄存器 • (12)数据指针(DPTR)寄存器
2.4.1 内部数据存储器及专用寄存器 • 3. 程序计数器(PC) PC中存储的是将要执行的指令地址,是一个16位计数器,可寻址范围是0000H~0FFFFH共 64KB PC没有地址,是不能寻址的, 程序中的每条指令存放在ROM区的某一单元, 并都有自己的存放地址。 CPU 要执行哪条指令时, 就把该条指令所在的单元的地址送上地址总线。 在顺序执行程序中, 当PC的内容被送到地址总线后, 会自动加 1, 即(PC)← (PC)+1, 又指向CPU 下一条要执行的指令地址在转移,调用和返回的指令中,PC的值会改变 PC是一个特殊的寄存器,不占内部RAM单元,在物理上是独立的.
2.4.1外部数据存储器 外部数据存储器一般由静态RAM构成,其容量大小由用户根据需要而定, 最大可扩展到 64 KB RAM , 地址是 0000H~0FFFFH。外部RAM和扩展的I/O接口是统一编址的, 所有的外扩I/O 口都要占用 64 KB中的地址单元。 1) CPU通过MOVX指令访问外部数据存储器, 用间接寻址方式, R0、 R1和 DPTR都可作间接寄存器,当用RO或R1作寄存器间接寻址时,由P2端口提供高8位地址,R0或R1提供低8位地址。 2) 单片机扩展外部数据存储器时,利用 P0口加锁存器作为 • 低8位地址线,P2口作为高8位地址线(0---64KB)(见图)
2.4 .1外部数据存储器 例1: MOVX A,@DPTR ; 读外部RAM中的数据 例2:MOV P2, #20H ;立即数20H MOV R0, #30H ;立即数30H P2 R0 MOVX @R0, A ; A 外部数据RAM中2030H单元
2.4.2 程序存储器 • • 对于8051来说, 程序存储器(ROM)的内部地址为 0000H~0FFFH, 共 4 KB; 外部地址为 1000H~FFFFH, 共 60 KB。 当程序计数器由内部 0FFFH执行到外部 1000H 时, 会自动跳转。 • 对于 8751 来说, 内部有 4 KB的EPROM, 将它作为内部程序存储器 • 8031 内部无程序存储器, 必须外接程序存储器 =1时,单片机读内部ROM,若超出范围,CPU自动读外部ROM =0时,CPU完全读取外部ROM 变为低电平 当读取外部ROM时, 保持为高电平 当读取内部ROM时,
2.5 单片机的复位电路与时钟电路 • 2.5.1 单片机的复位电路 单片机工作时,上电前要复位,发生故障后要复位 复位必须要准确可靠 1. 复位条件 时钟电路开始工作后,必须在单片机的RESET端(9脚)至少维持两个机器周期以上的高电平(PC=0000H, 程序从0000H开始执行) 若RESET端持续为高电平,单片机处于循环复位状态 例:若时钟周期为12MHZ,机器周期为12/12MHZ=1 以上的时间的高电平就能 单片机的RESET端需维持2 进入复位状态
2.5 单片机的复位电路与时钟电路 • 2. 复位后的状态 • 复位使单片机进入初始化状态,片内低128B的内容不变,SFR的值被初始化.见表1.3 • 注意:1)复位期间,ALE 和 为高电平 (不取址) 2)SP的值在初始化中,要重新设定,一般置为用户RAM区 的地址 3) P0-P3的值为0FFH,将这些端口作为输入端口做准备 4)其余各寄存器在使用时要先赋值
2.5 单片机的复位电路与时钟电路 • 3.复位电路 有两种: 上电复位电路和手动复位电路 上电复位电路:通过接通电源的一瞬间所产生的一个脉冲来提 供复位所需的高电平 手动复位电路:按RESET键时,电路接通,复位端产生一个高电平
2.5.2 单片机的时钟电路 • 单片机的各项工作都是在时钟信号的控制下协调进行的 • 时钟电路为单片机提供一个时钟信号,有内部时钟方式和外部时钟方式 • 1)工作于内部时钟方式时,XTAL1和XTAL2之间跨接晶振和两个微调电容,与内部振荡电路构成稳定的自激振荡器,XTAL2引脚上输出一个3V左右的正弦波 • 2)工作于外部时钟方式时,注意引脚的接法 振荡信号进入内部时钟电路后,要对其进行二分频,并向CPU提供两个时钟信号P1和P2
2.5.3 单片机的CPU时序 • 所谓时序就是CPU总线信号在时间上的顺序关系。 • CPU控制器实际上是复杂的同步时序电路,所有的工作都是在时钟信号的控制下进行的。每执行一条指令,CPU控制器都要发出一系列特定的控制信号,这些控制信号在时间上的相互关系就是CPU的时序。 • 一个单片机系统要想正常工作,除了要做到电平匹配、功率匹配外,还要做到时序匹配.
2.5.3 单片机的CPU时序 • 1. 振荡周期: 也称节拍P, 是指为单片机提供时钟脉冲信号的振荡源的周期。 • • 2.时钟周期:也称状态周期S,每个状态周期为振荡周期的 2 倍, 是振荡周期经二分频后得到的。前半个周期为P1,用于完成算术和逻辑运算;后半个周期为P2,完成传送指令 • • 3. 机器周期: 一个机器周期包含 6 个状态周期S1~S6, 也就是 12 个振荡周期。 在一个机器周期内, CPU可以完成一个独立的操作。 • • 4. 指令周期: 它是指CPU完成一条操作所需的全部时间。 每条指令执行时间都是有一个或几个机器周期组成。MCS - 51 系统中, 有单周期指令、双周期指令和四周期指令,如下图
2.6 并行I/O口 • MCS-51 共有32条并行双向I/O口线,分成4个I/O端口:P0 P1 P2 P3 每个端口都由数据输入缓冲器、数据输出驱动和锁存器组成 1. P0口
2.6 并行I/O口 • P0口的特点: 1) 可进行位寻址,地址为80H 2) 既可作为地址/数据总线使用,又能作通用I/O口 作为地址/数据总线时,不需外接上拉电阻,地址和数据 信号可准确从引脚输出,是真正的双向口 3) 为双向I/O口,输出漏极开路,需接上拉电阻(与门 被封锁,VT2漏极开路,P0.x输出始终为高电平,需加电阻对Vcc分压) 可驱动8个TTL 电路 4)作输入口时,应区分读引脚和读存储器 读引脚时,先向锁存器写1 凡属于读—修改—写方式的指令从锁存器读入,其它指 令从引脚读
2.6 并行I/O口 • 2. P1、P2和P3口 • P1、P2 和P3 口为准双向口, 在内部差别不大, 但使用功能有所不同。 • P1口是用户专用 8 位准双向I/O口, 具有通用输入/输出功能, 每一位都能独立地设定为输入或输出。作输出口时,不需接上拉电阻,当由输出方式变为输入方式时, 该位的锁存器必须写入“1”, 然后才能进入输入操作。 • P2口是 8 位准双向I/O口。外接I/O设备时, 可作为扩展系统的地址总线, 输出高8位地址, 与P0 口一起组成 16 位地址总线。作输出口时,不需接上拉电阻,当由输出方式变为输入方式时, 该位的锁存器必须写入“1”, 然后才能进入输入操作。 • 对于 8031 而言, P2 口一般只作为地址总线使用, 而不作为I/O线直接与外部设备相连。
2.6 并行I/O口 • 说明: • 1. 各个端口引脚在作输入口之前,都要先向对应的口寄存器中写“1”,不然不能作输入口用。 • 2. P0口内部没有上拉电阻(其他都有),所以作通用IO口用时为“开漏”输出,必须外加上拉电阻。在作总线使用时不需要加上拉。其他的口可加可不加。 (上拉电阻的阻值确定,5.1K或者4.7K都可以)。 • 3. P3口作第二功能使用时,相应的口锁存器必须为 • “1” 状态。 • 4. 如果使用了外部存储器,不要再写P0口。