单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,教学内容,:单片机的基本组成、80C51单片机的引脚功能、80C51的结构框图、80C51 CPU的结构、PC、DPTR、PSW、SP功能,时钟电路(内部时钟、外部时钟)、时序概念(振荡周期、时钟周期或称状态周期、机器周期、指令周期)、80C51单片机的存贮器配置、工作寄存器、寄存器的分区结构、特殊功能寄存器、位地址空间、布尔处理器、复位状态和复位电路、低功耗工作方式。,教学要求,:,掌握MCS-51单片机的组成及其结构特点,掌握MCS-51单片机储存器的配置形式及其地址空间;掌握程序储存器、外部数据储存器、内部数据储存器、特殊功能寄存器在使用时的要求,以及各个储存器空间的功能划分;理解时序概念;了解复位状态和复位电路、低功耗工作方式。,第二章 单片机的基本结构与工作原理,第二章,单片机的基本结构与工作原理,2.1 单片机的基本组成,(,P13 图2-1,),各组成部分的特点,:,1.中央处理器(CPU):较一般CPU增设了位处理等“面向控制”的功能。,2.存储器:有程序和数据存储器统一寻址的普林斯顿结构与分别寻址的哈佛结构(2种)。MCS-51采用哈佛结构。程序存储器为ROM,数据存储器RAM。且有片内、片外之分。,3.并行I/O口:有4个8位的I/O口(,P0-P3,)。部分I/O口还是系统总线或控制信号线。,4.串行口:有1个通用异步接收和发送器(UART)即串行通信口。,5.定时器/计数器:有2个16位的可编程定时器/计数器。,6.时钟电路:时钟是定时的基础,单片机内有一个反相放大器构成振荡电路,可用内部或外部两种方式产生单片机所需的时钟。,7.中断源:有多个可编程的中断源,可设置优先级。,下面我们将以,80C51,为主,对其功能和结构作详细介绍。,2.2 80C51单片机的引脚功能和结构框图,2.2.1,80C51,的引脚功能,(有40脚,DIP,和44脚,QFP,封装,2,种,P16,),各引脚的功能如下:,(1)电源和晶振:Vcc(+5V),Vss(地),XTAL1/2(接晶振)。,(2)I/O口:4个,32根。其中,P0:8位双向口,地址和数据分时复用,可驱动8个TTL负载。,P1:8位准双向口,可驱动4个TTL负载。,P2:8位准双向口,输出高8位地址,可驱动4个TTL负载。,P3:8位准双向口,具有多功能(见下),可驱动4个TTL负载。,P3.0RXT(串行输入),P3.1 TXD(串行输出);,P3.2外部中断0,/INT0 ,P3.3 外部中断1,/INT1;,P3.4 T0,/,计数器0输入,P3.5 T1,/,计数器1输入;,P3.6 /WR(片外存写选通),P3.7 /RD(读选通);,(3)控制线:4根(RST,/EA,ALE,/PSEN),输入:,RST,复位输入信号,高电平有效。在振荡器工作时,在RST上作用,两个机器周期以上的高电平,,将器件复位。,/EA/V,PP,片外程序存储器访问允许信号,低电平有效。在编程时,其上施加21V或12 V的编程电压,输入、输出,:,ALE/PROG,地址锁存允许信号,输出。,用做片外存储器访问时,低字节地址锁存。ALE以1/6的振荡频率稳定速率输出,可用做对外输出的时钟或用于定时。在EPROM编程期间,作输入。输入编程脉冲/PROG)。ALE可以驱动8个LSTTL负载。,输出控制线,:,PSEN,片外程序存储器选通信号,低电平有效。在从片外程序存储器取指期间,在每个机器周期中,当/PSEN有效时,程序存储器的内容被送上P0口(数据总线)。/PSEN可以驱动8个LSTTL负载。,80C51的内部结构框图和组成(见 P18 图2-3),主要包括,算术逻辑部件ALU、累加器ACC(有时也简称为A)、只读存储器ROM、随机存取存储器RAM、指令寄存器IR、程序地址寄存器、程序计数器PC、数据指针DPTR、定时器计数器、并行IO口 P0P3、串行口、程序状态标志寄存器PSW以及定时控制逻辑电路等,。这些部件通过内部总线连接起来,构成一个完整的微型计算机。,2.3 80C51CPU的结构和特点(P1928),这里主要介绍控制器、运算器及时序电路,而工作寄存器放在以后与片内寄存器一起讲。,2.3.1 中央控制器,它是识别指令,并根据指令控制计算机各组成部分进行工作的部件。包括:程序计数器PC、地址寄存器、指令寄存器及译码器、条件转移逻辑电路及定时控制逻辑电路。,1。程序计数器PC和数据指针DPTR(16位),程序计数器PC的变化决定程序的流程,每步自动加1,它的宽度决定了程序存储器的寻址范围(16位-64K),PC的值即下一条指令的地址。中断或子程序调用,PC值将入栈,返回时出栈。,PC的输出也就是程序的地址,与P0、P2口各位的关系,见 P20图2-4,:,PC0 P0.0 A0,PC7 P0.7 A7 (低8位地址),PC8 P2.0 A8,PC15 P2.7 A15(高8位地址),数据指针DPTR 既可以作为16位的,数据寄存器,,也可以拆成两个8位的寄存器(DPH,DPL);在间接寻址时,作为片外数据存储器的,地址寄存器,,与P0、P2口各位的关系,见 P20 图2-5,:,续,DPTR,与,P0,、,P2,口各位的关系:,DPL0 P0.0 A0 ,DPL7 P0.7 A7 (低8位地址)DPH0 P2.0 A8 ,DPH7 P2.7 A15(高8位地址),例,:,访问片外数据存储器:MOVX A,DPTR (读),MOVX DPTR,A (写),PC 和DPTR也可作为访问程序存储器时的基址寄存器:,MOVC A,A+PC,MOVC A,A+DPTR JMP A+DPTR,PC,和,DPTR,的异同点:,两者都是与地址有关的16位寄存器,但PC只和程序存储器地址有关,DPTR和数据存储器地址有关(也可和程序存储器地址有关);此时,它们的内容都经P0和P2口输出。,PC的输出与ALE及/PSEN有关;DPTR的输出,则与ALE、/WR、/RD相联系。,PC 只能作为16位寄存器使用,DPTR还可作为两个8位寄存器(DPH,DPL)对待,PC不能;PC具有自动加1功能,而DPTR 不能自动加1,需用INC DPTR 增1(无 INC PC),。,续上页,2.3.1 中央控制器,2。指令寄存器、指令译码器及控制逻辑,指令寄存器用来存放指令操作码,经指令译码器进行译码后,送定时控制逻辑电路产生控制信号(见,P21图2-6,)。,2.3.2 运算器(见P22 图2-7),运算器,主要用于实现算术与逻辑运算及位操作,包括算术逻辑单元ALU、累加器ACC(A)、暂存器、B寄存器、程序状态字PSW 等。,1。算术逻辑单元ALU:,它是计算机中必不可少的数据处理单元。实质是一个全加器,其运算输入主要来自两个暂存器和累加器ACC。,2。累加器ACC:,它是CPU中使用最频繁的一个寄存器,简称A寄存器。它既是ALU的输入单元之一,又是ALU运算结果的存放单元;且CPU的数据传送大部分都通过累加器。,3。B寄存器:,可作为一个普通的8位寄存器。同时它在乘、除运算中有特殊用途:,乘法中,两个乘数分别放在A、B,乘积的低位放A、高位放B中;,除法中,被除数放在A,除数放在B,商放在A、余数放在B中。,续上页,2.3.2,运算器,4。程序状态字PSW:,它是一个逐位定义的、程序可以,按位,访问的8位寄存器,其中每位的定义如下:,PSW.0 P:,奇偶标志位。若累加器A中为1的位数是奇数个,,则P=1,否则,P=0。,PSW.1 -,:,保留位,未定义。,PSW.2 OV,:,溢出标志位。若运算结果超出A所能表示的带,符号的数的范围(-128 +127),则 OV=1,否则置0。,PSW.6 AC,:,辅助进位标志位。当加减运算时,若低4位向,高4位发生进位或借位时,AC=1,否则置0。,PSW.7 CY:,进位标志位。表示运算结果中,若最高位有进,位或借位,则CY=1,否则置0。,PSW.5 F0:,用户定义位。可由用户根据需要自定义之。,CY,AC,F0,RS1,RS0,OV,P,5。堆栈指针SP:,它是一个8位的特殊功能寄存器,SP的内容 可指向8051/31片内00H-7FH RAM的任何单元。,MCS-51单片机把堆栈设置在片内数据RAM区中,具体位置可由SP设定。,开机或系统复位后,,SP初始化为07H,(即默认的栈底地址为07H),每执行一次入栈操作(PUSH),SP+1;而执行一次出栈操作(POP),,SP-1。,例题,:已知(A)=7AH,(R1)=30H,(30H)=A5H,(PSW)=81H,问执行以下指令的结果。,1,.,XCH A,R1 (A)=30H ,(R1)=7AH ,P=0,2,.,XCHD A,R1 (A)=75H,(30H)=AAH,P=1,3.,ADDC A,R1 (A)=ABH,(CY)=0,P=1,4.,SUBB A,#30H (A)=49H,(CY)=0 ,(OV)=0,5.,RLC A (A)=F5H ,(CY)=0 ,P=0,6.,RR A (A)=3DH ,(CY)=1 ,P=1,2.3.3 时钟电路及CPU的工作时序,1。时钟电路:,8051内部有一个高增益反相放大器,其输入端为 XTAL1,输出端为XTAL2。在XTAL1和XTAL2两端跨接适当的石英晶振及2个10-30 PF的小电容,就可构成稳定的自振荡器,(见下图A 或 P24图2-8),。,两个小电容对振荡频率有微调作用,同时其大小影响振荡器的稳定性与起振的快速性。电路板设计时,石英晶振及2个小电容应尽可能靠近 CPU 芯片。,也可使用外部振荡脉冲信号,由XTAL2端输入,XTAL1端接地,(见下图B),,这种外部振荡脉冲方式常用于多块CPU同时工作的系统,以便于同步,外部脉冲信号应是频率低于12MHz的方波。,2。时序定时单位:,80C51的时序定时单位共有4种,从小到大为:,节拍:即振荡脉冲周期,用P1、P2表示(其频率=fosc)。,状态:一个状态S包含两个节拍。前半周为P1,后半周为P2。,机器周期:规定一个机器周期的宽度为6个状态,依次表示,为S1、S2、,、S6,因为每个状态有2个节拍,所以,一个机器周期共12个节拍,,分别记为S1P1,S1P2,S6P1,S6P2(即机器周期是振荡脉冲的12分频)。,指令周期:执行一条指令所需要的时间称为指令周期。,80C51的指令周期依指令不同,可包含1,2,3,4个,机器周期(但大部分为单机器周期和双机器周期)。,3。80C51指令时序:,8031/8051共有111条指令,按指令所占的,字节长度可分为:,单字节,、,双字节,、,三字节,指令。,执行这些指令所需的机器周期数是不同的,概括起来有(6种):,单字节单机器周期;,单字节双机器周期;,双字节单机器周期;,双字节双机器周期;,三字节(全)双机器周期;,单字节(乘除)四机器周期;,从书中,P21图2-10,可看到单周期和双周期指令的执行时序举例:,例如:,单机器周期指令时(见,图2-10,的 b 和 a):,若是双字节指令(如 ADD A,#0BH),在,S1P2,读入操作码到指令寄存器;在,S4P2,再读入第二个字节。,若是单字节指令(如 INC A),在,S1P2,读入操作码到指令寄存器;在,S4P2,也读入第二个字节,但内容被忽略,且PC不加1。,图2-10,其它指令的时序留作自学。下面作几点补充说明:,(1)图中的,ALE,是,地址锁存允许信号,,其频率为,1,/,6,振荡脉冲频率,在一个机器周期中,,ALE,信号两次有效,每有效一次将对应一次读指令操作。(见前面的时序图和,P21 图2-10 a,b,c,),(2)但在单字节双周期的,MOVX,类指令中,第1机器周期时,是从,ROM,读取指令,与上述情况相同;第二机器周期时,是进行外,RAM,访问,其,S1