微控制器原理与应用——结构第3章单片机的结构和工作原理内容提要MCS-51单片机内部结构引脚时钟电路和复位电路存储器微控制器原理与应用——结构51系列单片机内部结构如图所示。图(图中“/”两边分别为基本型和增强型)P3P1P2可编程串行I/O口P0外部中断基准频率源控制128/256B数据存储器4KB/8KB程序存储器2/3个16位定时/计数器振荡器及定时电路CPU64KB总线扩展控制可编程并行I/O口内部中断计数脉冲串行输出串行输入微控制器原理与应用——结构MCS-51单片机组成原理MCS-51单片机的组成:1.8位CPU2.片内ROM/EPROM、RAM3.片内并行I/O接口4.片内16位定时器/计数器5.片内中断处理系统6.片内全双工串行I/O口不同型号MCS-51单片机CPU处理能力和指令系统完全兼容,只是存储器和I/O接口的配置有所不同。微控制器原理与应用——结构3.2.1运算器1.算术逻辑单元(ALU—ArithmeticLogicUnit)2.累加器(ACC—Accumulator)3.寄存器B4.程序状态字(PSW—ProgramStatusWord)5.布尔处理器3.2.2控制器1.程序计数器(PC—ProgramCounter)2.指令译码器ID3.数据指针(DPTR)4.堆栈指针(SP——StackPointer)3.2中央处理器CPU微控制器原理与应用——结构3.2.1运算器功能:运算部件实现算术、逻辑运算、位变量处理、移位、数据传送1.算术逻辑单元(ALU)8位用来完成二进制四则运算和布尔代数的逻辑运算,运算结果影响PSW的有关标志位2.累加器(ACC)8位存放操作数和中间结果,是CPU中使用最频繁的寄存器,大多数操作均通过它进行3.寄存器B8位乘法时用于存乘数/积的高8位,除法时用于存除数/余数4.程序状态字(PSW)8位特殊功能寄存器5.布尔处理器1位它以进位标志(CY)作为累加位进行位操作微控制器原理与应用——结构程序状态字PSW各位标志的含义CYACF0RS1RS0OV-PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0CY(PSW.7)进位标志位AC(PSW.6)辅助进位(或称半进位)标志F0(PSW.5)用户标志位RS1和RS0(PSW.4,PSW.3)工作寄存器组选择位OV(PSW.2)溢出标志位PSW.1未定义位P(PSW.0)奇偶标志位微控制器原理与应用——结构CY是PSW中最常用的标志位。由硬件或软件置位和清零。*在字节运算时:它表示运算结果是否有进位(或借位)。加法时:有进位Cy由硬件置“1”即Cy=1;无进位CY被硬件清“0”即Cy=0。减法时:有借位Cy由硬件置“1”即Cy=1;无借位CY被硬件清“0”即Cy=0。*在位操作(布尔操作)时:CY作为累加器使用,其作用相当于字节操作的累加器ACC。微控制器原理与应用——结构在指令中可作为转移的条件JCrel;cy=1转移JNCrel;cy=0转移位操作指令中做累加器ANLC,bitANLC,/bitORLC,bitORLC,/bitSETBCCLRCCPLCMOVC,bitMOVbit,c微控制器原理与应用——结构AC(PSW.6)辅助进位(或称半进位)标志。当执行加减运算时,其运算结果产生低四位向高四位进位或借位时,AC由硬件置“1”;否则AC位被自动清“0”。一般在BCD码运算时,系统用于进行十进制调整。微控制器原理与应用——结构OV(PSW.2)溢出标志位它反映运算结果是否溢出,溢出时则由硬件将OV位置“1”;否则置“0”。只有在补码运算时起作用。微控制器原理与应用——结构溢出和进位是两种不同性质的概念溢出是指有正负号的两个数运算时,运算结果超出了累加器以补码所能表示一个有符号数的范围。而进位则表示两数运算最高位(D7)相加(或相减)有无进位(或借位)。因此使用时应加以注意。微控制器原理与应用——结构F0(PSW.5)用户标志位。用户可根据自己的需要对F0位赋予一定的含义,由用户置位或复位,作为软件标志。SETBF0;置位CLRF0;复位微控制器原理与应用——结构P(PSW.0)奇偶标志位P标志表明累加器ACC中1的个数的奇偶性。在每条指令执行完后,单片机根据ACC的内容对P位自动置位或复位。若累加器ACC中有奇数个“1”,则P=1;若累加器ACC中有偶数个“1”,则P=0。微控制器原理与应用——结构1.程序计数器(PC)16位计数器(重要)PC是程序的字节地址计数器,其内容是将要执行的(下一条)指令的地址,寻址范围达64KB。PC有自动加1功能,从而实现程序的顺序执行。可以通过转移、调用、返回等指令改变其内容,以实现程序的转移。3.2.2控制器微控制器原理与应用——结构2.指令译码器ID当指令取出经指令寄存器IR送至指令译码器ID时,ID对该指令进行译码,即把指令转变成所需的电平信号,CPU根据ID输出的电平信号使定时控制电路定时地产生执行该指令所需的各种控制信号,以使计算机能正确执行程序所要求的各种操作。程序存储器PC取出指令码指令寄存器IR指令译码器ID把指令转变成所需要得电平信号CPU产生执行该指令所需的各种控制信号取指令分析指令执行指令微控制器原理与应用——结构3.数据指针(DPTR)16bit数据指针DPTR为16位寄存器。它的功能是存放16位的地址,作为访问外部程序存储器和外部数据存储器时的地址。编程时,DPTR既可按16位寄存器使用,也可以按两个8位寄存器分开使用。即:DPHDPTR的高8位DPLDPTR的低8位4.堆栈指针(SP)8bitSP的内容就是堆栈栈顶的存储单元地址。不论是数据进栈还是数据出栈,都是对堆栈的栈顶单元进行的,即对栈顶单元的写和读操作。微控制器原理与应用——结构MCS-51系列单片机有40个引脚,HMOS工艺制造的芯片采用双列直插式封装(DIP)。3.3MCS-51单片机外部特性微控制器原理与应用——结构微控制器原理与应用——结构1.电源引脚Vcc和VssVcc为+5V电源端,Vss为电压接地端。2.时钟电路引脚XTAL1和XTAL2XTAL1和XTAL2是外接晶体引线端。当芯片使用内部时钟时,用于外接石英晶体和电容;当用外部时钟时,用于接外部时钟脉冲信号。3.3.1引脚功能3.控制信号引脚ALE/PROG地址锁存控制信号。①ALE地址锁存允许。ALE输出脉冲的频率为振荡频率的1/6。②PROG对8751单片机片内EPROM编程时,编程脉冲由该引脚引入。输出读外部程序存储器的选通信号。微控制器原理与应用——结构PSEN程序存储器允许。输出读外部程序存储器的选通信号。EA/VPP访问外部程序存储器的控制信号,低电平有效①EA=0,单片机只访问外部程序存储器。EA=1,单片机访问内部程序存储器。②在8751单片机片内EPROM编程期间,此引脚引入21V编程电源VPP。微控制器原理与应用——结构RST/VPP复位信号,高电平有效。①复位信号输入。②接备用电源,当VCC掉电后,在低功耗条件下保持内部RAM中的数据。P0.0~P0.7:P0口,数据/低八位地址复用总线端口。P1.0~P1.7:P1口,静态通用端口。P2.0~P2.7:P2口,高八位地址总线端口。P3.0~P3.7:P3口,双功能静态端口。微控制器原理与应用——结构3.3.2引脚的第二功能P3.0RxD串行口输入端P3.1TxD串行口输出端P3.2INT0外部中断0请求输入端P3.3INT1外部中断1请求输出端P3.4T0定时器/计数器0计数脉冲输入端P3.5T1定时器/计数器1计数脉冲输入端P3.6WR外部RAM写选通输出端P3.7RD外部RAM读选通输出端1.P3口线的第二功能微控制器原理与应用——结构图1-7在51系列单片机的2051/1051型号中因无P0口和P2口总线引脚,因此只有20个引脚(见图1.7),由于不能进行外部扩展,因此无PSEN引脚,它们内部有一个模拟比较器,相比较的模拟信号由P1.0(AIN0)和P1.1(AIN1)输入,而模拟比较器的输出接P3.6,在内部已连接,因此外部无P3.6引脚。微控制器原理与应用——结构在增强型的52系列单片机中,P1.0、P1.1除为端口线外,还为定时/计数器2的外部引脚T2和T2EX。微控制器原理与应用——结构3.4MCS-51单片机时钟电路及CPU的工作时序3.4.1时钟电路单片机的时钟信号用来提供单片机内各种微操作时间基准,8XX51单片机的时钟信号通常有两种电路形式:内部振荡方式和外部振荡方式。微控制器原理与应用——结构内部振荡方式:在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)如图1-3所示。电容器C01、C02起稳定振荡频率、快速起振的作用。电容值一般为5~30PF。XTAL1XTAL2GND8XX51C01C02图1-3内部振荡方式由于单片机内部有一个高增益运算放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。微控制器原理与应用——结构外部振荡方式把已有的时钟信号引入单片机。这种方式适宜用于使单片机的时钟与外部信号保持一致。外部振荡方式如图1-4所示。对HMOS的单片机(8031、8031AH等)外部时钟信号由XTAL2引入,对于CHMOS的单片机(8XCXX),外部时钟由XTAL1引入。外部时钟XTAL1XTAL2GND8XX51悬空外部时钟XTAL1XTAL2GND悬空CHMOSHMOS图1-4外部振荡方式8XX51微控制器原理与应用——结构时序是非常重要的概念,它指明单片机内部以及内部与外部互相联系所遵守的规律。3.4.2CPU的工作时序单片机在执行指令时,通常将一条指令分解为若干基本的微操作,这些微操作所对应的脉冲信号在时间上的先后次序称为单片机的时序。微控制器原理与应用——结构微控制器原理与应用——结构MCS-51的时序定时单位从小到大依次为:振荡周期(节拍)、时钟周期(状态)、机器周期和指令周期。1.振荡周期振荡周期是指为单片机提供定时信号的振荡源的周期,也称为节拍(用P表示)。2.时钟周期时钟周期又称状态周期或S周期。时钟周期是振荡周期的两倍,时钟周期被分成两个节拍,即P1节拍和P2节拍。在每个时钟的前半周期,P1信号有效,这时通常完成算术逻辑操作;在每个时钟的后半周期,P2信号有效,内部寄存器与寄存器间的传输一般在此状态发生。3.机器周期一个机器周期由6个状态(S1、S2…S6)组成,即6个时钟周期,12个振荡周期。可依次表示为S1P1、S1P2、S2P1、S2P2、…S6P1、S6P2共12个节拍,每个节拍持续一个振荡周期,每个状态持续两个振荡周期。可以用机器周期把一条指令划分成若干个阶段,每个机器周期完成某些规定操作。4.指令周期指令周期是指执行一条指令所占用的全部时间,一个指令周期通常含有1~4个机器周期(依指令类型而定)。显然,当振荡频率为12MHz时,一个机器周期为1μs,当振荡频率为6MHz时,一个机器周期为2μs。微控制器原理与应用——结构微控制器原理与应用——结构3.5存储器分类及配置3.5.1程序存储器3.5.2数据存储器总结微控制器原理与应用——结构80C51单片机在系统上采用了哈佛型,其存储器在物理结构上分程序存储器(ROM)和数据存储器(RAM)。有四个物理上相互独立的存储空间:其配置如图所示。60KB4KB64KB片内ROM片外ROM片内RAM片外RAM/I/O口128BRAM128BSFR微控制器原理与应用——结构用户使用的角度上看,80C51存储空间分为3类:片内、片外统一编址0000H~0FFFFH的64K字节的程序存储器地址空间;256字节数据存储器地址空间;64K字节片外数据存储器/I/O口地址空间,地址也从0000H~0FFFFH。上述三个空间地址是重叠的,即程序存储器中片内外低4K字节地址重叠;数据存储器与程序存储器64K地址全部重叠;数据存储器中片内外低256个字节地址重叠。虽然地址重叠,但由于采用了不同的操