MCS-51单片机第二章 联系客服

发布时间 : 星期一 文章MCS-51单片机第二章更新完毕开始阅读f188472ebe23482fb4da4cc1

一、MCS-51单片机的基本组成: 1个8 位中央处理单元(CPU)、128B或256B单元片内数据存储器(RAM)、4KB或8KB片内程序存储器(ROM或EPROM)、4个并行I/O端口P0-P3、2个定时器/计数器、5个中断源的中断管理控制系统、1个全双工串行I/O端口UART(通用异步接受、发送器)及片内振荡器与时钟产生电路等。

二、MCS-51单片机内部结构 1、 中央处理单元(CPU):由由运算器和控制器等组成

(1) 运算器 包括可进行8位算术运算和逻辑运算的单元ALU、8位暂存器1与暂

存器2、8位累加器A、寄存器B、程序状态字寄存器PSW等。

(2) 控制器 包括程序计数器PC、指令寄存器、指令译码器、振荡器及时钟与控

制电路等。

A、 程序计数器PC:16位,由2个8位的计数器(PCH和PCL)组成。8051可

寻址64KB程序存储器。 B、 振荡器及时钟控制电路:8051单片机内有振荡器(OSC),通过XTAL1、XTAL2

连接片外石英晶体及两个频率微调电容。

2、 存储器 8051单片机内有地址空间相互独立的只读程序存储器(ROM/EPROM)

和随机数据存储器(RAM)

(1)程序存储器 8051和8071片内程序存储器的容量为4KB,地址范围为0000H—0FFFH,用于存放数据和表格常数。 (2)、数据存储器 8051、8071和8031片内数据存储器均为256B,分为地址为00H-7FH的低RAM区(用于数据暂存和数据缓冲等)和地址为80H-FFH的高RAM区(其中有的单元只是散落分布着21个特殊功能寄存器)

3、I/O端口 P0~P3,共占32个引脚,为4个8位特殊功能寄存器,分别是四个并行I/O端口的锁存器。它是单片机数据或信息控制信号进、出的通道。8051有4个8位并行端口,即P0-P3,每个端口各有8条I/O端口线,并且都是双向端口。每条I/O端口线均可独立用作输入或输出,用作输出时,可以锁存数据,用作输入时,可以缓冲数据。 三、MCS-51单片机的引脚及其功能 1、电源端Vcc和Vss Vcc端:(40脚) 电源端,接+5V; Vss端:(20脚) 接地端

2、时钟电路端XTAL1和XTAL2 XTAL2端(18脚):片内振荡电路反相放大器输出端。 XTAL1端(19脚):片内振荡电路反相放大器输入端。

3、RST/VPD端(9脚) 复位信号输入端/备用电源输入端,该端高电平有效。RST端的第二功能是VPD为片内RAM备用电源的输入端。

4、ALE/PROG非端(脚) 地址锁存允许信号端/片内EPROM编程脉冲端。ALE端一般常用来外接地址锁存器芯片的锁存端。它的第二功能是PROG非。

5、PSEN非端(29脚) 程序存储器允许输出信号端,它一般连接程序存储器的选通信号端。

6、EA非/Vpp端(31脚) 外部程序存储器地址允许输入端/固化编程电压输入端。它的第二功能是Vpp,对于片内有EPROM的芯片固化编程时,他作为施加较高编程电压(一般为12~21V)的输入端。

7、P0(P0.0~P0.7, 39~32脚)、P1(P1.0~P1.7, 1~8脚)、P2(P2.0~P2.7, 21~28脚)、P3(P3.0~P3.7,10~17脚)都可以作为一般的I/O端口,用于开关量信息的输入和输出,并

且P0、P2口又可以作为数据/地址信号口实现外扩存储器内容的存取。

8、P3口第二功能 即输出控制信号和输入外部状态信息等 P3.0 串行口通信数据输入线 P3.1 串行口通信数据输出线

P3.2 INT0非 外部中断0信号输入 P3.3 INT1非 外部中断1信号输入 P3.4 T0 定时器0的脉冲信号外部输入 P3.5 T1 定时器1的脉冲信号外部输入

P3.6 片外数据存储器的写选通控制输出 WR非 P3.7 片外数据存储器的读选通控制输出 RD非 四、MCS-51单片机的存储器配置

1、8051单片机存储器在物理结构上分为程序存储器空间和数据存储器空间,具体分为片内程序存储器和可扩展的片外程序存储器空间以及片内数据存储器和可扩展的片外数据存储器空间。

2、8051/8071片内ROM的容量为4KB,地址范围为0000H-0FFFH。而8051单片机外部扩展最多可达64KB EPROM,地址范围为0000H-FFFFH,其中低4KB EQROM的地址也编址为0000H-0FFFH,和内部4KB ROM的地址重叠。

3、CPU是执行内部ROM中的程序还是执行外部扩展程序存储器中的程序,由它的 EA非 端的电平决定。当EA端接高电平时,CPU首先从片内0000H地址单元开始取指令执行程序;当PC中内容超过0FFFH后,就自动转向片外扩展的EPROM对应单元中取指令执行,这时芯片外部地址重叠为0000H-0FFFH的低4KB EPROM被忽略不用。如果EA端接低电平,复位后CPU直接从片外EPROM的0000H地址单元中开始取指令执行,这时芯片内部的4KB ROM/EPROM被忽略不用。

4、对于内部没有ROM的芯片如8031等,必须外部扩展程序存储器,它的EA端应该接低电平,CPU直接从片外扩展EPROM的0000H地址单元中开始取执行指令。程序存储器的某些单元是专门预留给系统的,如0003H-002AH单元均匀的分为五段,用做五个中断程序的入口。

五、数据存储器地址空间 1、片外数据存储器

见上(四、2容量,地址)

2、片内数据存储器 8051片内有256B数据存储器单元,地址范围为00H-0FFH,分为低128B(00H-7FH)数据存储区和高128B(80H-FFH)特殊功能寄存器区。 (1)、低128B数据存储器区 按功能特点划分为:

A、工作寄存器区 00H-1FH的32B存储器单元,分为四个组,每组有8个工作寄存器单元,定名位R0、..........、R7.

B、位寻址区 20H-2FH的16B地址单元中共128位,每一位都有相应的位地址,可用位寻址方式对其进行置位、复位、内容传送、逻辑运算等操作。 C、一般数据存储区 30H-7FH,用于原始数据及运算结果的存储。

注意:30H-7FH中一部分字节单元可以开辟出一块遵守“后进先出”或“先进后出”规则的特殊数据区——堆栈。堆栈由8位特殊功能寄存器自动管理,始终存放堆栈顶部字节单元的地址。进行堆栈操作有两种方式:1、数据压入堆栈(PUSH)。2、数据弹出堆栈(POP)。 (2)、高128B数据存储器区 离散的分布着21个特殊功能寄存器(SHR) PSW:程序状态字寄存器。PSW寄存器(D0H)是一个8位特殊功能寄存器.

位地址 位标志 D7H CY D6H AC D5H F0 D4H RS1 D3H RS0 D2H OV D1H —— D0H P CY:(PSW.7)进位标志位。执行加减法运算时,如果运算结果最高位(位7)有进位或借位,CY由硬件自动置“1“;如果没有,则CY清零。CY也被称为位累加器。 AC:半进位标志位。当执行加减法操作时,如果运算结果和或差的低半字节向高半字节有进位或借位,则AC自动置“1“;否则自动清零。 F0:用户标志位。

RS0和RS1:工作寄存器组选择控制位。

OV:溢出标志位。进行补码运算时,当运算结果超出8位数能够表示的-128~+127范围时,OV自动置“1“;无溢出时,OV=0.

PSW.1:保留位。8051未用,而8052作为用户标志位F1。

P:奇偶校验位。该位始终跟踪指示每条指令执行完后累加器A中1的个数,如果A中有奇数个1,则P=1;否则P=0.常用于校验串行通信中的数据传送是否出错。 注:

A:数据指针(DPTR)。它是一个16位的特殊功能寄存器,分为两个寄存器并占用两个字节单元。它既可以作为一个16位寄存器来处理,也可以作为两个独立的8位寄存器分别使用。DPTR主要用以存放片外扩展数据存储器的16位数表示的字节单元地址,以便对片外64KB RAM做间接寻址。

B:程序计数器PC;是一个不可寻址的特殊功能寄存器。 六、振荡器与时钟电路

1、时钟信号的周期称为机器状态时间S,它是振荡周期的2倍。在每个时钟周期的前半周期,相位P1信号有效;而后半个周期,相位P2信号有效。 2、MCS-51单片机工作的一个机器周期由6个S状态周期组成。

3、一个机器周期包括12个振荡周期等于6个S状态周期。若采用12MHz晶体振荡器,则每个机器周期恰为1us。

4、MCS-51单片机指令长度分为1B、2B、3B 3种,按CPU执行每条指令的时间分为单机器周期指令、双机器周期指令、四机器周期指令3种,若采用12MHz晶体振荡器,执行一条指令的时间(指令周期)有1us,2us和4us 3种。

5、当对片外RAM进行读/写时,ALE(地址锁存允许信号端)信号不是周期性的。在其他情况下,ALE信号是一种周期性信号。

6、对于算术和逻辑指令的操作,一般发生在P1期间;而片内寄存器之间的数据传送操作指令发生在P2期间。 七、并行I/O端口

1、访问片外扩展存储器时,p2口送出16位地址中的高8位地址;P0口先送出16位地址中的低8位地址,再做数据的输入/输出通道。 2、P0口作用

A、作为一般I/O端口使用(输入输出口)

B、作为地址/数据总线使用 有外扩存储器的单片机系统,P0口只能分时作为地址/数据总线,即先作为地址线送出要操作字节单元的低8位信息地址,然后作为数据线对操作单元内容进行数据传输。

注意:作为地址/数据总线分为两种情况: 1) p0口先送出低8位地址在输出数据 2) p0口先送出低8位地址在输入数据

3、 p1口 准双向口,用作I/O端口 注意:p0口和P1口作为I/O端口的主要区别在于P1口有输出上拉电阻,P0口没有,而数据输出、运算以及读端口等指令及注意事项两者相同。

4、 P2口 作为低8位地址线输出口,也可以作为通用I/O端口。 5、 P3口 准双向I/O端口的功能,还具有第二功能。

注:A、作为I/O端口,与p0、P1、P2相同。

B、作为第二功能(P3.0~P3.7)

6、端口的负载能力

A、P0口的每一位输出可驱动8个LS型TTL负载。

B、P1~P3口 他们的输出级接有内部上拉电阻,每一位输出可驱动4个LS型TTL

负载。

C、ALE端 它的负载驱动能力为8个LS型TTL负载。 D、PSEN非端 它可驱动8个LS型TTL负载。

7、8051的XTAL1和XTAL2端连接石英晶体和两个微调电容,为系统提供震荡时钟。

RST端接由电阻、电容组成的上电复位电路,在系统加电时向系统提供复位信号。它的Vcc端接+5V,而Vss或GND端接地。