资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第二章 MCS-51单片机芯片硬件结构(2-5),2.1 MCS-51系列单片机结构及组成,2 .1 .1 MCS-51系列单片机结构框图,MCS-51系列单片机属于,总线结构,1,2,2 .1 .2 MCS-51系列单片机组成,一个8位CPU,包括运算器、控制器以及假设干存放器等部件组成。,算术和逻辑运算,可对半字节4位和单字节数据进行操作;,加、减、乘、除、加1、减1、比较等算术运算;,与、或、异或、求补、循环等逻辑运算;,布尔处理器。,1运算器,3,PC用来存放即将要执行的,指令地址,,共16位,可对64KROM直接寻址。PC低8位经P0口输出,高8位经P2口输出。,2程序计数器PC,指令存放器存放指令代码。,CPU执行指令过程:,由程序存储器ROM中读取指令代码送入指令存放器,经译码器译码后由定时与控制电路发出相应的控制信号,完成指令功能。,3指令存放器,4,时钟电路:,MCS-51芯片内部有一个高增益反相放大器,其输入端为XTAL1,输出端为XTAL2。,有两种时钟生成电路,内部方式,外部方式,。,4定时与控制部件,5,4k/8k字节程序存储器(ROM),51系列4k字节;52系列8k字节,128/256字节数据存储器(RAM),51系列128字节;52系列256字节,2/3个16位定时/计数器,51系列2个16位定时/计数器;52系列3个,6,可寻址64k外部数据存储器RAM和64k外部程序存储器ROM,32条可编程I/O口线4个8位并行I/O端口,一个可编程全双工串行口;,五个中断源、两个优先级嵌套中断结构,7,2 .1 .3 MCS-51系列单片机芯片引脚,8,ALE/ (30),,ALE:允许地址锁存信号。(数据线、地址线复用)当访问外部存储器时,ALE信号负跳变将P0口上低8位地址送入锁存器。,ALE低电平时,P0口上的内容和锁存器输出一致,1主电源引脚;,2外接晶体或外部振荡器引脚;XTAL1、XTAL2,引脚分布40脚双列直插封装DIP方式,3控制、选通或复用电源引脚:,9,非访问外部存储器期间,ALE以1/6振荡频率输出,访问外部存储器时以1/12振荡频率输出。,为编程脉冲输入端,对片内程序存储器进行,编程时,此脚输入编程脉冲。,RST9脚:复位信号,延续两个机器周期以上的高电平,复位有效。,10,(29脚):,访问外部程序存储器选通信号,,低电平有效。,/Vpp31脚:访问内部或外部ROM选择信号。 高电平时( ) ,访问内部ROMPC指针超过4K,0FFFH时,自动转向外部ROM,保持低电平,那么访问外部ROM。对于8031, 接低电平,11,四个8位双向I/O端口P0、P1、P2、P3;,每一条I/O线都能独立地作输入或输出。,P0口32-39低8位地址/数据线复用或I/O口。,P1口18常用的I/O口。,P2口2128常用I/O口或高8位地址线。,P3口1017双功能口。,4I/O口引脚32个引脚,12,信号引脚的第二功能,P3口第二功能,13,2-2 MCS-51存储器,数据存储器RAM-用来存放程序运行中所需要的常数和变量。当然,全局数据也可以放在RAM中。,特点:程序存储器ROM、数据存储器RAM分开,各有各的寻址系统、控制信号和功能。,程序存储器ROM-用来存放程序和始终要保存的数据。,14,从物理空间上看:,MCS-51单片机有四个存储器地址空间。,片内程序存储器,片外程序存储器,片内数据存储器,片外数据存储器,15,程序存储器映象,数据存储器映象,8051存储器映象,16,2.2.1 程序存储器,程序存储器以PC程序计数器作地址指针,可寻址空间为64K0000HFFFFH字节。,8051/8751单片机内局部别驻留4K0000H0FFFH,字节ROM/EPROM。,8031那么没有片内程序存储器。,17,8031单片机 接低电平。,51系列单片机64K字节程序存储器,统一编址,。,程序从片内ROM开始执行,当PC值超过片内ROM容量时会自动转向外部存储器空间。,程序从外部存储器开始执行。,18,51系列单片机复位后PC=0000H,系统从0000H开始执行程序。安排一条跳转指令。,0003H0032H单元被保存专用于中断效劳程序入口地址。,每个中断效劳程序只有8个字节单元存放,显然不够,故此8个单元通常放一条跳转指令。指向被实际分配的中断效劳程序段。,19,20,中断效劳程序首地址:,外部中断0 0003H,定时器0溢出中断000BH,外部中断1 0013H,定时器1溢出中断001BH,串行口中断0023H,定时器2溢出/T2EX负跳变002BH,21,2-2-2 数据存储器,MCS-51系列单片机的数据存储器在物理和逻辑上都分为两个地址空间。,00H7FH0127128字节RAM区;,80HFFH128255128字节专用存放器区。,22,内部RAM低128字节00H7FH,四个通用存放器区,每个区有8个工作存放器R0R7,D,4,D,3,=000区; D,4,D,3,=011区;,D,4,D,3,=102区; D,4,D,3,=113区,根据程序状态字PSW特殊功能存放器,地址D0H中的D4D3位来指示的。通过对PSW的D4D3的修改,便能任意选择一个工作存放器区。,存放器区,23,位寻址区20H2FH16个字节。,16*8=128位,每一位都有一个位地址,范围为:00H7FH,位地址区也可作为一般RAM使用。,位寻址区,24,用户RAM区数据缓冲区,单元地址:30H7FH,在此区域中,用户只能以存储单元字节形式使用。,通常将堆栈建立在此区域中。,25,内部RAM高128字节80HFFH,专用功能存放器区SFR,2-2-3 外部数据存储器,以后介绍(外部扩展时会讲到),26,2-2-3 专用功能存放器SFR,分布位置:,在内部RAM区域“80HFFH中,这区域不做一般RAM使用,而作为专用功能存放器使用,具体执行功能如下:,锁存器、定时器、串行口数据缓冲器、各种控制存放器、状态存放器等。(不同情况执行不同功能),27,累加器ACC最常用专用存放器,暂存存放器,用于提供操作数和存放运算结果。,直接与内部总线相连,所以传输速度很快。,一般信息传递和交换都要通过ACC。,常用专用功能存放器,28,存放器B,乘法指令两个操作数分别取自A、B,其结果放在A、B存放器队中;除法指令,被除数取自A,除数取自B,商放A,余数放B。,29,程序状态控制字PSW,RS1,RS0-选择工作存放器区;前面提到的第3和第4位,CY-高位进位标志,8位运算产生进位或借位;,AC-辅助进位标志,半字节4位进位标志;,OV-溢出标志位,用于带符号数运算的溢出。,P奇偶校验标志位,A存放器中奇偶性判别。,“1 的个数为偶P=0 ; “1 的个数位奇P=1,F0用户定义标志位:可定义成“0或者“1,用于判断程序的转向等等,它不是系统产生的,是用软件的形式写入或者去除的。,程序执行过程中,状态控制字始终跟踪着程序的执行,一条语句执行完后,处于什么状态,从状态字中能够反映出来。,30,数据指针DPTR,16位存放器,DPH高8位,DPL低8位,用来访问外部RAM的地址存放器,地址范围64K。,“端口P0P3与“专用存放器P0P3,“端口名和“存放器名一一对应,可采用直接寻址方式参与操作。MOV A,P0,31,串行数据缓冲器SBUF,存放欲发送或已接收的数据。虽然用一个缓冲器99H,但却以两个独立的缓冲器出现。一个发送,一个接收。,一个名字=一个地址/单元99H=两个作用接收和发送发送和接收不会同时进行。,定时器/计数器,两个16位定时/计数器T0、T1。各有两个8位独立存放器组成,TH0、TL0,TH1、TL1。,其他控制存放器,32,存放器,位地址,/,位定义,地址,F7,F6,F5,F4,F3,F2,F1,F0,位地址,B,F0H,字节地址,E7,E6,E5,E4,E3,E2,E1,E0,ACC,E0,D7,D6,D5,D4,D3,D2,D1,D0,PSW,CY,AC,F0,RS1,RS0,OV,/,P,D0H,BF,BE,BD,BC,BB,BA,B9,B8,IP,B8H,B7,B6,B5,B4,B3,B2,B1,B0,P3,P3.7,P3.6,P3.5,P3.4,P3.3,P3.2,P3.1,P3.0,B0H,IE,A8H,A7,A6,A5,A4,A3,A2,A1,A0,P2,P2.7,P2.6,P2.5,P2.4,P2.3,P2.2,P2.1,P2.0,A0H,SBUF,99H,33,位地址和字节地址的区分和表达:,根据具体语句进行区分,例如:,1. MOV P0 , F0,因为P0是字节地址,所以此时的F0为“字节地址。,2. MOV C , F0,因为C是位地址近位位,所以此时的F0为“位地址。,34,SCON,98H,97,96,95,94,93,92,91,90,P1,P1.7,P1.6,P1.5,P1.4,P1.3,P1.2,P1.1,P1.0,90H,TH1,8DH,TH0,8CH,TL1,8BH,TL0,8AH,TMOD,GATE,C/T,M1,M0,GATE,C/T,M1,M0,89H,8F,8E,8D,8C,8B,8A,89,88,TCON,TF1,TR1,TF0,TR0,IE1,IT1,IE0,IT0,88H,PCON,SMOD,/,/,/,GF1,GF0,PD,IDL,87H,DPH,83H,DPL,82H,SP,81H,87,86,85,84,83,82,81,80,P0,P0.7,P0.6,P0.5,P0.4,P0.3,P0.2,P0.1,P0.0,80H,注意,:,位地址和字节地址的区分和表达,35,注意:,通常情况下,单元地址能够被8整除的,通常都能够进行“位寻址或称为“位操作,例如:80H,88H等等。,36,2-3 并行I/O端口电路了解即可,P0口:地址/数据复用口,37,锁存器:数据,输出,三态,输入,数据缓冲器,多路转换器MUX,控制电路,数据输出时写P0口:由于锁存器的存在,故P0端口可以直接和外设相连(外设:发光二极管,继电器等等)。,内部写脉冲加在D触发器CP端,数据写入锁存器,由端口引脚输出。,作为一般I/O口使用,38,数据输入时读P0口,有两种情况:,读引脚:读芯片引脚上的数据,“读引脚缓冲器翻开,通过内部数据总线读入;MOV指令的读口操作。,读端口:通过翻开读锁存器缓冲器读锁存器Q端的状态,例如语句:ANL P0,A 。将P0与A的内容“与以后再放入P0中,作为地址/数据复用口使用,翻开控制与门,使得内部地址/数据线与驱动场效应管栅极反相接通状态。,39,根据端口特点,P0,P2口结构根本一致,内部有一个多路开关MUX,根据CPU控制可作为I/O口,也可作为外部存储器扩展时用作16位地址总线。,P1,P3口结构根本一致,为双向口。,注意,一般地说,P1口多用作I/O或位操作;而P3口多用于第二功能。,40,P0口:为三态双向口,扩展外部存储器时,它是地址总线和数据总线的复用低8位。低8位地址通过ALE信号负跳变将其锁存在外部锁存器中。单独作I/O口用时,由于输出电路是漏极开路,必须外接上拉电阻。能带8个LSTTL门电路。,端口功能,41,P1口:常用I/O口,每一位都能作为可编程的输入或输出线。输出端无需上拉电阻。,P2口:可以作为输入口或输出口使用;但一般作为扩展系统的地址总线,输出高8位地址。与P0口一起组成16位地址总线。,P3口:双功能口。作为第一功能使用同P1口。第二功能如下表,:,42,P3口第二功能,43,2-4 振荡器时钟及时序,振荡有两种方式:外部、内部,时钟发生器:将震荡频率2分频,为芯片提供一个两相时钟信号。时钟频率为震荡频率的2分频,而时钟周期为震荡周期的2倍,44,时序定时单位,:,1拍节P:振荡脉冲周期,用P表示;,振荡脉冲周期:,振荡器产生振荡频率,振荡频率由高到低,再由低到高所用的时间为一个震荡周期。,2状态S:时钟信号周期,用S表示;,时钟信号:,由震荡信号通过时钟发生器发送出来的,时钟信号周期是震荡脉冲周期的2倍。,45,3机器周期:MCS-51采用定时方式,因此有固定的机器周期,一个机器周期等于6个状态周期,12个振荡周期;,4指令周期:执行一条指令所需要的时间因为指令不同,所以指令周期可长可短。可包含一、二、三或四个机器周期。,机器周期是时钟周期的6分频,是振荡周期12分频;时钟周期是振荡周期2分频。,46,当振荡频率为12M时,一个机器周期是1微秒s,频率=1/周期,周期=1/频率频率与周期成倒数关系,一个振荡周期=1/12s,一个机器周期是1s。,当振荡频率为6M时,一个机器周期是2微秒s,MCS-51共有111条指令。按其长度可分为:,单字节指令、双字节指令、三字节指令。,单字节指令:一个指令可由一个字节即8位来表示的,47,单字节单周期指令,例:INC A,双字节单周期指令,例:ADD A,DATA,单字节双周期指令例:INC DPTR,读下一个操作码丢弃,48,当ALEALE信号为振荡频率6分频正跳变时,对应单片机进行一次读指令操作。一个机器周期二次出现,在S1P2和S2P1及S4P2和S5P1期间。,有效宽度为一个状态。,1单字节单周期指令:INC A,只需进行一次读指令操作指令只有一个字节,当第二个ALE有效时,由于PC没有加1INC指令的特点,读出的还是原指令。属于一次无效操作。,49,2双字节单周期指令:ADD A,#data,ALE两次读操作都有效,第一次读操作码指令第一字节,第二次读立即数指令第二字节。,3单字节双周期指令:INC DPTR,两个机器周期共进行四次读指令操作,但其后三次的读操作都是无效的。,50,END,51,
展开阅读全文