2019/11/26 8051单片机的基本组成 单片机原理及其应用 第一章单片机基础如识 内中 器 000 时32 M0s-51的信 55(20):接地端 以实现对片外R 复位信号/备用电 输入 C风U行片内 ROCL-)0 031 ,子其无片内ROM,版EA 该的第二功能VPP是对8751片内 9程写入时,作为21V程电的 园辑符号 8061单片机引脚图 入时007内 8051单片机引脚图 逻对号 1
2019/11/26 1 第一章 单片机基础知识 振荡器和 时序 OSC 程序存储器 4KB ROM 数据存储器 256B RAM 定时/计数器 2 个 16 位 8051 CPU 64KB 总线 扩展控制器 并行 I/O 接口 4 个 串行 I/O 接口 1 个 内 部 总 线 内中断 外中断 控制 P0 P1 P2 P3 串行输入 串行输出 外部时钟 源 外部事件计数 8051单片机的基本组成 P1.0 XTAL2 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 XTAL1 RST/VPD VSS P2.0 P1.1 P0.0 1 3 4 5 6 7 8 2 10 9 8051 11 13 14 15 16 17 18 12 19 20 40 38 37 36 35 34 33 39 31 32 30 28 27 26 25 24 23 29 22 21 RXD/P3.0 TXD/P3.1 T0/P3.4 T1/P3.5 VCC PSEN ALE/PROG EA/VPP INT0/P3.2 INT1/P3.3 WR/P3.6 RD/P3.7 8051 VSS VCC RST/VPD XTAL1 XTAL2 EA/VPP PSEN ALE/PROG P3 口 P2 口 P1 口 P0 口 8051单片机引脚图 DIP引脚图 逻辑符号 MCS-51的信号引脚 时钟引脚(2根) XTAL1(19脚):接外部晶振的一端。采用外部 时钟电路时,对HMOS工艺的单片机,此引脚 应接地;对CHMOS,此引脚接外部时钟的输入 端。 XTAL2(18脚):接外部晶振的另一端。使用外 部时钟时,对HMOS工艺的单片机,此引脚应 接外部时钟的输入端;对CHMOS,此引脚悬空。 ALE/PROG(-) (30脚):地址锁存允许信号 输出/编程脉冲输入引脚。当CPU访问片外 存储器时,ALE输出信号控制锁存P0口输 出的低8位地址,从而实现P0口数据与低 位地址的分时复用。当8051上电正常工作 后,自动在ALE端输出频率为fosc/6的脉冲 序列(fosc代表振荡器的频率)。 该引脚的第二功能PROG是对8751内 部4KB EPROM编程写入时,作为编程脉冲 的输入端。 VPP/EA(-)(31脚):外部程序存储器地址允 许输入端/编程电压输入端。 当EA(-)接高电平时,CPU执行片内 ROM指令,但当PC值超过0FFFH时,将自 动转去执行片外ROM指令;当EA(-)接低电 平时,CPU只执行片外ROM指令。对于 8031,由于其无片内ROM,故其EA(-)必 须接低电平。 该引脚的第二功能VPP是对8751片内 EPROM编程写入时,作为21V编程电压的 输入端。 P1.0 XTAL2 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 XTAL1 RST/VPD VSS P2.0 P1.1 P0.0 1 3 4 5 6 7 8 2 10 9 8051 11 13 14 15 16 17 18 12 19 20 40 38 37 36 35 34 33 39 31 32 30 28 27 26 25 24 23 29 22 21 RXD/P3.0 TXD/P3.1 T0/P3.4 T1/P3.5 VCC PSEN ALE/PROG EA/VPP INT0/P3.2 INT1/P3.3 WR/P3.6 RD/P3.7 8051 VSS VCC RST/VPD XTAL1 XTAL2 EA/VPP PSEN ALE/PROG P3 口 P2 口 P1 口 P0 口 8051单片机引脚图 DIP引脚图 逻辑符号 MCS-51的信号引脚 电源引脚(2根) VCC(40脚):电源端,接 +5V电源。 VSS(20脚):接地端。 RST/VPD(9脚):复位信号/备用电源 输入引脚。 当RST引脚保持两个机器周期的 高电平后,就可以使8051完成复位 操作。 ALE/PROG(-) (30脚):地址锁存允许信号 输出/编程脉冲输入引脚。当CPU访问片外 存储器时,ALE输出信号控制锁存P0口输 出的低8位地址,从而实现P0口数据与低 位地址的分时复用。当8051上电正常工作 后,自动在ALE端输出频率为fosc/6的脉冲 序列(fosc代表振荡器的频率)。 该引脚的第二功能PROG是对8751内 部4KB EPROM编程写入时,作为编程脉冲 的输入端。 PSEN(-)(29脚):片外ROM读 选通信号端。在读片外ROM 时,PSEN(-)有效,为低电平, 以实现对片外ROM的读操作。 1 2 3 4
2019/11/26 7(3-32):P阳口的8位双向 脚 用外 P3口第二功能 使用了 第二功侧标记 第二功能注麻 -P471- RXD P1口作为通用的/0口使用。 。 TXD 中行口登择发 P20-P2721-28):P2口的8收双向 外部中菌 0请 外部中断 请求输人据 门用 定时/计数器 P30-3710-17):P3口的8发准双向 片外数存储器读通 逻辑符号 1单片机引脚图 8051单片机的时钟信号 ·1时钟情号的产生 ,2引入外都膝冲食号 在MCS-51芯片内部有一个高增益反相放大器,其输入 在由多片单片机组成的系统中,为了各单片机之间时钟信号的同步,应当引入 ·编为芯片引脚XTAL1,其输出端为引脚XTAL2,而在芯片的 惟一的公用外部赫冲信号作为各单片机的振蒸脉冲。这时,外部的脉冲信号是经 ·外部,XTAL1和XTAL2之间跨接品体振菇器和微调电容,从 XTAL2引注入, ·而构成一个稳定的自激振荡备 时钟电路产生的振荡脉冲经过触发器进行二分须之后, ·才成为单片机的时钟脉冲信号 2
2019/11/26 2 P1.0 XTAL2 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 XTAL1 RST/VPD VSS P2.0 P1.1 P0.0 1 3 4 5 6 7 8 2 10 9 8051 11 13 14 15 16 17 18 12 19 20 40 38 37 36 35 34 33 39 31 32 30 28 27 26 25 24 23 29 22 21 RXD/P3.0 TXD/P3.1 T0/P3.4 T1/P3.5 VCC PSEN ALE/PROG EA/VPP INT0/P3.2 INT1/P3.3 WR/P3.6 RD/P3.7 8051 VSS VCC RST/VPD XTAL1 XTAL2 EA/VPP PSEN ALE/PROG P3 口 P2 口 P1 口 P0 口 8051单片机引脚图 DIP引脚图 逻辑符号 MCS-51的信号引脚 P0.0~P0.7(39~32脚):P0口的8位双向 I/O口线。 P0口即可作地址/数据总线使用,又可作 通用的I/O口使用。当CPU访问片外存储器 时,P0口分时先作低8位地址总线,后作双 向数据总线,此时,P0口就不能再作I/O口 使用了。 P2.0~P2.7(21~28脚):P2口的8位准双向 I/O口线。 P2口即可作为通用的I/O口使用,也可作 为片外存储器的高8位地址总线,与P0口配 合,组成16位片外存储器单元地址。 P3.0~P3.7(10~17脚):P3口的8位准双向 I/O口线。 P3口除了作为通用的I/O口使用之外,每 个引脚还具有第二功能。 P1.0~P1.7(1~8脚):P1口的8位准双向I/O 口线。 P1口作为通用的I/O口使用。 P3口第二功能 • 1. 时钟信号的产生 • 在MCS-51芯片内部有一个高增益反相放大器,其输入 • 端为芯片引脚XTAL1,其输出端为引脚XTAL2 。而在芯片的 • 外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从 • 而构成一个稳定的自激振荡器。 • 时钟电路产生的振荡脉冲经过触发器进行二分频之后, • 才成为单片机的时钟脉冲信号。 8051单片机的时钟信号 1 XTAL1 XTAL2 C1 C2 晶振 8051 至内部时钟电路 • 2. 引入外部脉冲信号 • 在由多片单片机组成的系统中,为了各单片机之间时钟信号的同步,应当引入 惟一的公用外部脉冲信号作为各单片机的振荡脉冲。这时,外部的脉冲信号是经 XTAL2引脚注入。 8051 1 XTAL1 XTAL2 VSS TTL 外部时 钟信号 VCC 5 6 7 8
2019/11/26 3.cPU时序 ,CPU时序就是CPU执行指令时所需拉制信号的时间顺序。 单片机的时序定时单位从小到大依次为: ·一条指令的执行过程分作几个基本操作,完成一个基本操作所需 的时间称作机爸周期(TM1 ·时钟周期、状态周刷、机器周则和指令周期。 ·一个机器周期的宽度为6个状态周期、12个振菇周期 ·时钟周期为单片机提供定时信号的振菇源的周期成外部擒入时钟信号的 周期,也称为振荔周期【TosC)减节拍用P表示。 ·机卷周期就是振满脉冲的十二分颖。 ·振荡脉冲经过二分须后,就是单片机的时钟信号的周期,定义为状态周 ,当振荡脉冲频事为12MH2时,一个机器周期为15:当振荡藤冲 期【用S表示),所以,一个状态就包含两个节拍,前半周期对应的节 率为6MHz时,一个机器周期为25 拍叫节拍1(P1】,后半周期对应的节拍2(P2 10 指令周期 8051单片机的存俺疆 ,指令周期是最大的时序定时单位: 执行一条指令所需要的时间称为指令周期。 MCS-51单片机中存放程序的程序存储备和存放数据的数据存储器,在物 ·它一般由若干个机器周期组成。 理空间上是相互独立哈佛结构, ·MCS-51单片机通常可以分为单周期指令、双周期指令和四周 MCS-51单片机的存储器空间的管理,分为3个逻辑地址空间进行: 期指令等三种。四周期指令只有乘法和除法指令两条,其余均 为单周期和双周期指令。 一片内片外统一编址的64KB程序存储器地址空间: 一片内独立编址的256B数据存储器地址空间: 按照指令字节教和机器周期数,8051的111条指令可分为6类,分 的 明指令 的 ~片外独立编址的64KB数据存储器地址空间。 指令 期指令 12 3
2019/11/26 3 3. CPU 时序 • CPU时序就是CPU执行指令时所需控制信号的时间顺序。 • 单片机的时序定时单位从小到大依次为: • 时钟周期、状态周期、机器周期和指令周期。 • 时钟周期为单片机提供定时信号的振荡源的周期或外部输入时钟信号的 周期,也称为振荡周期(Tosc)或节拍用P表示。 • 振荡脉冲经过二分频后,就是单片机的时钟信号的周期,定义为状态周 期(用S表示),所以,一个状态就包含两个节拍,前半周期对应的节 拍叫节拍1(P1),后半周期对应的节拍2(P2) • 一条指令的执行过程分作几个基本操作,完成一个基本操作所需 的时间称作机器周期(TM) • 一个机器周期的宽度为6个状态周期、12个振荡周期 • 机器周期就是振荡脉冲的十二分频。 • 当振荡脉冲频率为12 MHz时,一个机器周期为1μs;当振荡脉冲 频率为6 MHz时,一个机器周期为2μs。 • 指令周期 • 指令周期是最大的时序定时单位; • 执行一条指令所需要的时间称为指令周期。 • 它一般由若干个机器周期组成。 • MCS-51单片机通常可以分为单周期指令、双周期指令和四周 期指令等三种。四周期指令只有乘法和除法指令两条,其余均 为单周期和双周期指令。 按照指令字节数和机器周期数,8051的111条指令可分为6类,分 别是:单字节单周期指令、单字节双周期指令、单字节四周期指令、 双字节单周期指令、双字节双周期指令、三字节双周期指令 MCS-51单片机中存放程序的程序存储器和存放数据的数据存储器,在物 理空间上是相互独立哈佛结构。 MCS-51单片机的存储器空间的管理,分为3个逻辑地址空间进行: 片内片外统一编址的64KB程序存储器地址空间; 片内独立编址的256B数据存储器地址空间; 片外独立编址的64KB数据存储器地址空间。 8051单片机的存储器 9 10 11 12
2019/11/26 8051单片机存储器地址空间示意图 程序存储器 ■程序存储器用来存放程序、常数或表格等。 ■在8051中,其存储空间分布如下: ●片内有48的R0存储单元,地址为0000H-OFFFH。 (/o ●片外最多可扩至64KB的OM,地址为1000州-FFF ●片内外0统一编址, ■当队(一引脚接高电平时,CU首先访问片内,当指令地址超过 OFFFHE时,自动转向片外O取指令。 T南 当E队(一】引脚接低电平时,PU只访问片外OM。片外RW的地址从 五= 0000H开始编址.对于8O31,由于其片内无R0■,所以使用时必须使 000u 内部0 扩展动 内部 扩展 E队(一】接低电平,以便能够从片外扩展的EP中取指令。 程序存错 处据存待器 14 ■程序计数器PC ·MCS-51的程序存储器中有些单元具有特殊功能: ·0000H-0002H,启动单元. 落C是一个18位的绳址套布器。用于布放下一条精要执行的指令的 ·0003H-002AH,5个中新源的中断地址区】 ※PC的基本工作方式有: 0003H-000AH外部中断0中断地址区 ()自动加1.CPU从R0M中每读一个字节,自动执行 000BH-0012H定时/计数器0中断地址区 PC+1→PC: 0013H-001AH外部中断1中断地址区 (2②执行转移指令时,PC会根据该指令要求修改下一次读新的地 址 001BH-0022H定时/计数器1中断地址区 (③)执行调用子程序成发生中断时,CPU会自动将当前PC值压入堆栈, 0023H-002AH串行中断地址区 将子程序入口地址或中断入口地址装入PC:子程序返回成中断返 回时,恢复原有被压入堆栈的P心植,继续执行原顺序程序指令。 16 4
2019/11/26 4 8051单片机存储器地址空间示意图 程序存储器ROM用来存放程序、常数或表格等。 在8051中,其存储空间分布如下: 片内有4KB的ROM存储单元,地址为0000H~0FFFH。 片外最多可扩至64KB的ROM,地址为1000H~FFFFH。 片内外ROM统一编址。 当EA(-)引脚接高电平时,CPU将首先访问片内ROM,当指令地址超过 0FFFH时,自动转向片外ROM取指令。 当EA(-)引脚接低电平时,CPU只访问片外ROM。片外ROM的地址从 0000H开始编址。对于8031,由于其片内无ROM,所以使用时必须使 EA(-)接低电平,以便能够从片外扩展的EPROM中取指令。 程序存储器 • MCS-51的程序存储器中有些单元具有特殊功能: • 0000H~0002H,启动单元。 • 0003H~002AH,5个中断源的中断地址区。 • 0003H~000AH 外部中断0中断地址区 • 000BH~0012H 定时/计数器0中断地址区 • 0013H~001AH 外部中断1中断地址区 • 001BH~0022H 定时/计数器1中断地址区 • 0023H~002AH 串行中断地址区 ⑶ 执行调用子程序或发生中断时,CPU会自动将当前PC值压入堆栈, 将子程序入口地址或中断入口地址装入PC;子程序返回或中断返 回时,恢复原有被压入堆栈的PC值,继续执行原顺序程序指令。 程 序 计 数 器 P C ※ PC是一个16位的地址寄存器,用于存放下一条将要执行的指令的 地址。 ※ PC的基本工作方式有: ⑴ 自动加1。CPU从ROM中每读一个字节,自动执行 PC+1→PC; ⑵ 执行转移指令时,PC会根据该指令要求修改下一次读ROM新的地 址; 13 14 15 16
2019/11/26 数据存情器 1.内部数据存储器 ·MCS51单片机数据存储器是RAM型存储器,用于暂存数据和运算 结果等 ·也分为片内数据存储器和片外数据存储器, ·■8051片内RAM地址空间共有256B,又分为两个部分: ·片外数据存储器的容量不超过64KB。 ··低128BOOH-7FH)为真正的RAM区(片内RAM:内部RAM),分为 ·内部和外部数据存储器空间存在重叠,通过不问指令来区别,当访 工作寄存洛区、位导址区、用户RAM区。 问内部RAM时,用MOV类指令;当访问外部RAM时,则用MOVX 高128B80H-FH为特殊功能寄存器SFR)区 类指令。 17 18 1.内部数据存情器低128B 2)位得址 单片机片内M中2阳-2地址范围中共16个字节单元称为位寻址区 该区的1B个字节单元,既可作为一般的使用,进行字节操作,也 30H~7FH 数据缓冲区 号物翰红2型站恶物时 00 0翊1海0烟0烟哪海0m 可以对单元中的每一位进行位操作。18个字节单元共128位,每位有位地 址,地址范围是00姐-. 20H~2FH 位寻址区 1 位寻址区中的每一位地址有两种表示形式:一是表中位地址形式,另一种 (007F 01谢1m1☒1细1细1翻1园1m 是单元地址·位序形式. ISH~IFH 1 10-7H 作春奇蒂2区 霸的起心种年九 4组通用寄存强占宽内部RAM的 O0H一1FH单元地址, OSH~OFH 热新1区 在任一时 00用-07H 森区 案决定。 19 20 5
2019/11/26 5 • MCS-51单片机数据存储器是RAM型存储器,用于暂存数据和运算 结果等 • 也分为片内数据存储器和片外数据存储器。 • 片外数据存储器的容量不超过64KB。 • 内部和外部数据存储器空间存在重叠,通过不同指令来区别。当访 问内部RAM时,用MOV类指令;当访问外部RAM时,则用MOVX 类指令。 数据存储器 1. 内部数据存储器 • 8051片内RAM地址空间共有256B,又分为两个部分: • 低128B(00H~7FH)为真正的RAM区(片内RAM;内部RAM),分为 工作寄存器区、位寻址区、用户RAM区。 • 高128B(80H~FFH)为特殊功能寄存器(SFR)区。 • 1) 寄存器区 • 8051共有4组寄存器,每组8个寄存 单元,各组都以R0~R7作寄存单元 编号。 • 4组通用寄存器占据内部RAM的 00H~1FH单元地址。 • 在任一时刻,CPU只能使用其 中的一组寄存器,由程序状态字寄 存器PSW中RS1、RS0位的状态组合 来决定。 30H ~7FH 数据缓冲区 20H ~2FH 位寻址区 (00H~7FH) 18H ~1FH 工作 寄 存器3区 (R7~R0) 10H ~17H 工作 寄 存器2区 (R7~R0) 08H ~0FH 工作 寄 存器1区 (R7~R0) 00H ~07H 工作 寄 存器0区 (R7~R0) 1. 内部数据存储器—低128B 2)位寻址区 单片机片内RAM中20H~2FH地址范围中共16个字节单元称为位寻址区。 该区的16个字节单元,既可作为一般的RAM使用,进行字节操作,也 可以对单元中的每一位进行位操作。16个字节单元共128位,每位有位地 址,地址范围是00H~7FH。 位寻址区中的每一位地址有两种表示形式:一是表中位地址形式,另一种 是单元地址•位序形式。 17 18 19 20