1、第二章 MCS-51系列单片机的硬件结构,第一节总体概况 主要功能 MCS-51系列单片机是Intel公司1980年推出的高性能8位单片微型计算机,包括51和52子系列。 在51子系列中,主要有8031、8051、8751三种机型,它们的指令系统和芯片引脚完全兼容,仅片内ROM有所不同。,51子系列的主要功能为: 8位CPU 。 片内带振荡器,振荡频率fosc范围为 1.212MHz;可有时钟输出。 128个字节的片内数据存储器。 4K字节的片内程序存储器(8031无)。 程序存储器的寻址范围为64K字节。 片外数据存储器寻址范围为64K字节。 21个字节专用寄存器。 4个8位并行I/O接口:
2、P0、P1、P2、P3。 1个全双工串行I/O接口,可多机通信。,2个16位定时器/计数器 。 中断系统有5个中断源,可编程两个优先级。 111条指令,含乘法指令和除法指令。 有强的位寻址、位处理能力。 片内是单总线结构。 用单一 +5V电源。,52子系列主要有8032、8052种机型。 与51子系列不同处为: 片内数据存储器增至256个字节; 片内程序存储器增至8KB(8032无); 有3个16位定时器/计数器; 中断系统有6个中断源 。 其他性能都和 51子系列相同。,内部结构框图,编程结构图,外部引脚说明,MCS-51系列单片机芯片有40个引脚。 HMOS (High-performan
3、ce MOS)工艺的芯片采用双列直插式封装,CMOS工艺的芯片也有方型式封装的。,外部引脚说明,各引脚说明如下: 主电源引脚 外接晶体引脚 输入/输出引脚 控制线,外部引脚说明,归纳起来有两点: 功能多,引脚少,许多引脚有第二功能。 单片机对外呈三总线形式。,第二节 微处理器,运算器 微处理器又称CPU,由运算器和控制器组成。 运算器在图2-1的中部,如右,运算器,算术逻辑单元 在控制器所发出的内部控制信号的控制下进行各种算术、逻辑操作。 51的ALU除了能完成一般操作外,其特点是: 在B寄存器配合下,能完成乘法与除法操作。 可进行多种内容交换操作。 能作比较判跳操作。 有很强的位操作功能。,
4、运算器,累加器 累加器A是最常用的专用寄存器。 进入ALU作算术操作和逻辑操作的操作数很多来自A ,操作的结果也常送回A。 许多单操作数指令都是针对A的。 如 INC A、 CLR A、 RL A 大量双操作数指令的一个操作数 也来自A。 如 ADD A,#dataANL A,#data,运算器,程序状态字 程序状态字PSW是8位寄存器。,程序状态字,进位标志位C(PSW.7): 在执行某些算术操作类、逻辑操作类指令时,可被硬件或软件置位或清零。如8位加法运算结果的最高位D7有进位,或者减法运算结果的最高位D7有借位,C=1;没有进位或借位,C=0。 半数以上的位操作类指令都与C有关,可见在位
5、处理时,它起“位累加器”的作用。 如 ORL C,bit,程序状态字,辅助进位标志位AC(PSW.6): 8位加法运算时,若低半字节的最高位D3有进位,AC=1,否则AC=0 ; 8位减法运算时,若低半字节的最高位D3有借位,AC=1,否则AC=0。 在BCD码运算时进行二-十进制调整被用到,程序状态字,辅助进位标志位AC(PSW.6): 8位加法运算时,若低半字节的最高位D3有进位,AC=1,否则AC=0 ; 8位减法运算时,若低半字节的最高位D3有借位,AC=1,否则AC=0。 软件标志位F0 (PSW.5): 这是用户定义的一个标志位。,程序状态字,工作寄存器组选择位RS1、RS0(PS
6、W.4、PSW.3): 可用软件置位或清零,以选定4组工作寄存器之一投入工作。,程序状态字,溢出标志位OV(PSW.2): 在进行8位补码加、减法运算时,OV=1,表示溢出(结果超出-128127范围); OV=0,表示没有溢出。 (无符号数加减也影响,OV=C6 + C7) 乘法:MUL AB 当积255时 ,OV=1,否则OV=0。 除法:DIV AB 当B中为0时, OV=1,否则OV=0。,程序状态字,奇偶标志位P (PSW.0): 每执行一条指令,单片机都能根据累加器A中1的个数的奇偶自动令置位或清零。 奇为1,偶为0。,例2-1试分析执行指令MOV A,#7FHADD A,#47H
7、 后,累加器A、C、AC、OV、P的内容是什么?,0111 1111 (7FH),0100 0111 (47H),0,、,例2-1试分析执行指令MOV A,#7FHADD A,#47H 后,累加器A、C、AC、OV、P的内容是什么?,0111 1111 (7FH),0100 0111 (47H),0,1,1,、,、,、,例2-1试分析执行指令MOV A,#7FHADD A,#47H 后,累加器A、C、AC、OV、P的内容是什么?,0111 1111 (7FH),0100 0111 (47H),0,0,0,1,1,、,、,、,、,、,例2-1试分析执行指令MOV A,#7FHADD A,#47H
8、 后,累加器A、C、AC、OV、P的内容是什么?,0111 1111 (7FH),0100 0111 (47H),1,0,0,0,0,1,1,、,、,、,、,、,、,、,例2-1试分析执行指令MOV A,#7FHADD A,#47H 后,累加器A、C、AC、OV、P的内容是什么?,0111 1111 (7FH),0100 0111 (47H),(C6H),1,0,0,0,0,1,1,1,、,、,、,、,、,、,、,(A)= C6H,C=0 AC=1,OV=1,P=0,控制器,在图2-1的左下方。 含指令寄存器、指令译码器、定时及控制电路,能根据不同的指令产生相应的操作时序和控制信号。,振荡器和
9、CPU时序,振荡器 51单片机内含一个高增益的反相放大器,通过XTAL1、XTAL2外接作为反馈元件的晶体后,构成自激振荡器。 也可采用片外振荡器。 接法见表2-2,振荡器和CPU时序,CPU时序 振荡器输出的脉冲经过2分频成为内部时钟信号,用作单片机内部各功能部件按序协调工作的控制信号;其周期称为时钟周期(也称状态周期)。 6个时钟周期构成1个机器周期。 CPU执行一条指令的时间称为指令周期。 指令周期以机器周期为单位。51单片机除乘法指令、除法指令是4周期指令外,其余都是单周期指令和双周期指令。,振荡器和CPU时序,CPU时序 以S1、S2、S6表示一个机器周期的6个时钟周期,已P1、P2
10、表示每个时钟周期的2个节拍,则一个机器周期依次有S1P1、S1P2、S2P1、S2P2、S6P2等12个振荡周期。除了访问片外数据存储器外,ALE脉冲于每个机器周期的S1P2至S2P1及S4P2至S5P1期间各发生一次。,振荡器和CPU时序,第三节 存储器,既然是单片微机,片内除CPU外,必然还有存储器。目前一般计算机常用的是von neumann结构,即数据与程序合用一个存储空间; 而单片机大多采用harvard结构,即数据存储空间与程序存储空间相互分离开来。 一般把ROM用作程序存储器,而RAM用作数据存储器。,第三节 存储器,MCS-51系列单片机内含存储器的容量,程序存储器,编址与访问
11、 程序计数器PC指明取指令的地址,PC有16位,程序存储器可寻址范围(地址空间)是64KB。 程序存储器编址从0000H开始,最大可至FFFFH。 64KB程序存储器空间由片内程序存储器空间和外部程序存储器空间组成。 在8051/8951片内,分别驻留最低地址空间的4KB的ROM/EPROM,而8031则无内部程序存储器,需外部扩展EPROM。 8052内部驻留最低地址空间的8KB ROM,8032无内部程序存储器,同样需外部扩展EPROM。,程序存储器,程序存储器编址规律为:先片内,后片外,片内、片外连续,二者一般不重叠。,51子系列,52子系列,程序存储器,7个特殊单元 第一个是0000H
12、单元。计算机系统复位后自0000H单元开始执行程序。 另外6个则对应中断源,数据存储器,编址与访问 51单片机的数据存储器地址空间分为片内RAM和片外RAM独立的两部分。 片内RAM用8位寻址,不使用三总线; 片外RAM用16位寻址,使用三总线,可寻址范围(地址空间)是64KB,编址从0000H开始,最大可至FFFFH。 从软件的角度看,访问内部数据存储器,用MOV指令;访问片外RAM,用MOVX指令。,数据存储器,在51系列单片机中,除了有片内RAM外,还有特殊功能寄存器(SFR),也占有128B的地址空间。内部数据存储器在地址空间上又可以区分为前128B和后128B两块: 00H7FH(0
13、127)单元组成低128B的地址空间。 80HFFH(128255)单元组成高128B的地址空间。 在51子系列中,只有128B的RAM和128B的特殊功能寄存器块,后者占有80HFFH(128255)地址空间,两块地址空间是相连的。 在52子系列中,高128B的RAM和128B的特殊功能寄存器块共同占有80HFFH(128255)地址空间,这两块地址空间是重叠的,采用不同寻址方式的指令来访问这部分地址空间可以区别是访问高128B的RAM ,还是访问SFR 。,数据存储器,数据存储器的编址图51子系列 52子系列,数据存储器,当只需要扩展少量片外数据存储器,容量不超过256个单元时,也可以按8
14、位二进制数编址,从00H开始,最大可至FFH。 此外,使用位操作指令还可以访问某些片内RAM与SFR块单元其中的一位,这些位也是按8位二进制数编址,从00H开始,最大可至FFH。构成另一个独立的地址空间-“位地址”空间。 对于这些不同的地址空间,是通过采用不同的指令来加以区别的,不会造成混淆。,数据存储器,数据存储器,片内数据存储器 右为51子系列单片机片内RAM的配置图。共分三个区域: 工作寄存器区 位寻址区 数据缓冲区,32个单元 00H1FH,16个单元 20H2FH 前128个位地址 位地址:00H 7FH,80个单元 30H7FH,数据存储器,(1)工作寄存器区 工作寄存器也称通用寄
15、存器,R0R7共8个。 工作寄存器区有32个单元,分成4个组。每组8个单元,用作8个寄存器,都以R0R7来表示。 PSW中RS1、RS0指定哪一组是当前正在工作的工作寄存器组,其它工作寄存器组不工作,待用。,数据存储器,CLR PSW.4 SETB PSW.3 MOV R0,#28H第三条指令将28H送 入工作寄存器1组的 R0,即送入片内RAM 的08H单元.,数据存储器,(2)位寻址区 每位都被编址。 8bit16=128bit 00H7FH 可用为标志、状态、位变量,数据存储器,数据存储器,(3)数据缓冲区 用户RAM有80个单元,30H7FH(52子系列有208个单元,30HFFH)。
16、 由于三个区统一编址,前两个区(工作寄存器区、位寻址区)也可按字节访问,所以对于没有使用的前两个区的单元,也可作为用户RAM使用。 (4)堆栈和堆栈指针 片内RAM的部分单元还可作为堆栈使用。 51单片机复位后,堆栈指针SP=07H,堆栈栈顶从08H单元开始使用。为了不占工作寄存器区、位寻址区,可将SP用指令置为2FH或更大值。如果SP=2FH,则栈顶从30H单元开始使用。,数据存储器,特殊功能寄存器块特殊功能寄存器(SFR)也称专用寄存器。包括累加器A、B寄存器、PSW、并行I/O口、串行I/O口、定时器/计数器、中断系统等,都有专门用途。51单片机将(除PC外的)SFR与片内RAM统一编址
17、,可直接寻址。占用后128个地址空间,80HFFH。,数据存储器,特殊功能寄存器块 51子系列除PC外,有18个专用寄存器,其中3个是双字节的,共占用21个字节。52子系列除PC外,有21个专用寄存器,其中5个是双字节的,共占用26个字节。若地址可被8整除,即地址为xxxxx000B(x0H、x8H。)的是可位寻址的单元。其中有12个可位寻址的单元,共有可寻址位=812-3(未定义)=93位。 字节地址也是该单元最低位的位地址。,数据存储器,特殊功能寄存器块,数据存储器,特殊功能寄存器块,数据存储器,特殊功能寄存器块,第三章 MCS-51系列单片机的指令系统和 汇编语言程序示例,第一节汇编语言
18、与指令系统 汇编语言程序设计的重要性 计算机语言分机器语言、汇编语言、高级语言。 高级语言面向过程。汇编语言面向机器,优秀的程序员编出的程序质量优于高级语言编制的程序(高级语言编制的程序比汇编语言编制的程序长度长出15%200%,程序执行的时间长出50%300%) 。,内部结构框图,编程结构图,数据传送方式,堆栈指针SP(Stack Pointer)是一个专用地址寄存器,它指明栈顶位置,起着管理堆栈的作用。,字长 计算机内部并行处理的数据宽度 (以二进制位计),微机的字长有1、4、8、16、32位。目前国内应用最多的是8、16、32位。 微型计算机结构 CPU集成在一块芯片上,称微处理机或微处
19、理器(Microprocessor)。 存储器也集成在一块块独立的芯片。,第二 节 微处理器,不同型号的CPU的结构有所不同 图1-14是典型的8位微处理器结构框图 这种结构称为编程结构,四、程序计数器PC,程序计数器PC(Program Counter)特殊功能寄存器 复位功能 计数功能 直接置位功能使程序可以顺序执行又可以跳转执行,0000H 74H08H MOV A,#08H 0002H 24H04H ADD A,#04H 0004H 24H05H ADD A,#05H 0006H 02H22H00H LJMP 2200H 0009H 2200H 78H7FH MOV R0,#7FH,四、程序计数器PC,程序计数器PC(Program Counter)特殊功能寄存器 复位功能 计数功能 直接置位功能使程序可以顺序执行又可以跳转执行,以下哪个是用双字节补码表示的-1? A)1001H B)8001H C)FFFEH D)FFFFH 以下哪个是用双字节原码表示的-1? A)1001H B)8001H C)FFFEH D)FFFFH 以下哪个或哪些说法是错误的? A)CUP每读取一条指令时, PC的内容就自动加1。 B)标志寄存器F,用来存放ALU的运算结果。 C)磁盘属于外围设备组成部分。 D)采用补码表示目的是为了在微机的运算器中就只设置加法器。,