《单片机芯片的硬件结构课件》由会员分享,可在线阅读,更多相关《单片机芯片的硬件结构课件(94页珍藏版)》请在金锄头文库上搜索。
1、第二章第二章 单片机芯片的硬件结构单片机芯片的硬件结构单片机芯片的硬件结构2.1 2.1 MCSMCS5151单片机逻辑结构及信号引脚单片机逻辑结构及信号引脚n有关MCS-51机的性能特点,在第一章已作了简单介绍,本节将进一步详细介绍它的结构,使大家对它的性能有更深入的了解。因为单片机是微型机的一个分支,在原理和结构上,它们之间没有根本性的差别,而且微型机的许多技术于特点都被单片机继承下来了。所以,可以用微型机的思路学习单片机。单片机芯片的硬件结构2.1.1 2.1.1 MCSMCS5151单片机结构框图单片机结构框图n到目前为止,计算机科学和技术得到充分的发展,但计算机的体系结构仍然没有突破
2、冯.诺曼体系框架。nMCS-51的典型产品是8051、8031、8751。8051是ROM型单片机,内部有4KROM;8031无片内ROM,8751片内有4KEPROM;89C51片内有4KFPEROM。除此以外,它们的内部结构及引脚完全相同。单片机芯片的硬件结构n本章将以MCS-51系列的80C51为典型例子,详细介绍单片机的结构、性能、存储器结构及工作原理等内容。通过对这些内容的掌握,可以起到举一反三、触类旁通的作用。n以80C51为例给出的单片机系统结构框图如下。单片机芯片的硬件结构单片机芯片的硬件结构n由图可见,在这一块芯片上,集成了一台微型计算机的各个部分。其中主要有CPU、存储器、
3、可编程I/O、定时/计数器、串行口等。各部分通过内部总线相连。单片机芯片的硬件结构2.1.2 2.1.2 MCSMCS5151单片机芯片内部逻辑结构单片机芯片内部逻辑结构n上面已经介绍了单片机的系统结构框图,接下来介绍一下单片机芯片内部的逻辑结构如下图所示。单片机芯片的硬件结构单片机芯片的硬件结构1 1 中央处理器(中央处理器(CPUCPU)运算器算术/逻辑部件ALU(Arithmetic Logic Unit)累加器ACCACC (Accumulator)程序状态字寄存器PSWPSW(Program Status Word)暂存寄存器寄存器B控制器定时控制与条件转移逻辑电路程序计数器PCPC
4、指令寄存器IR指令译码器IDCPU单片机芯片的硬件结构2 2 内部数据存储器内部数据存储器n80C51单片机与一般微机的存储器配置方式很不相同。n一般微机通常只有一个逻辑空间,可以随意安排ROM或RAM。访问存储器时,同一地址对应唯一的存储单元,可以是ROM也可以是 RAM,并用同类访问指令。而单片机则不同, 80C51在物理结构上设计成程序存储器与数据存储器独立分开的哈佛结构。n片内程序存储器4KB(ROM 0000H0FFFH)片内数据存储器128B(RAM 00H7FH)单片机芯片的硬件结构2 2 内部数据存储器内部数据存储器n实际上80C51芯片中共有256个RAM单元,但其中后面的1
5、28个单片被专用寄存器占用,供用户使用的只有前面的128单元,用于存放可读写的数据。因此,通常所说的内部数据存储器是指前128单元,简称“内部RAM”。单片机芯片的硬件结构3 3 内部程序存储器内部程序存储器n内部程序存储器在图中包括ROM和程序地址存储器等。80C51芯片共有4KB掩膜ROM,用于存放程序有何原始数据。因此称为程序存储器,简称为“内部ROM”。单片机芯片的硬件结构4 4 定时器定时器/ /计数器计数器n由于控制的需求,80C51共有2个16位的定时器/计数器,以实现定时或计数功能,并以其定时或计数结果对单片机进行控制。图中的定时器和串行口画在一起,也就是说,串行通信就需要用到
6、定时器,而实际就是如此的。单片机芯片的硬件结构5 5 并行并行I/OI/O口口n80C51共有4个8位的I/O口(P0、 P1、P2、 P3),以实现数据的并行输入和输出。单片机芯片的硬件结构6 6 串行口串行口n80C51有一个全双工的串行口,以实现单片机和其它设备进行数据的串行传输。改串行口的功能较强,即可作为全双工异步通信收发器使用,也可作为同步移位寄存器使用。单片机芯片的硬件结构7 7 中断控制系统中断控制系统n80C51单片机的中断功能较强,以满足控制应用的需要。80C51共有5个中断源,即外中断2个,定时/计数中断2个,串行中断1个。全部中断分为高级和低级两个优先级。单片机芯片的硬
7、件结构8 8 时钟电路时钟电路n80C51的内部有时钟电路,但石英晶体和微调电容需外接,所以在图中时钟电路是用石英晶体和电容的符号表示的。时钟电路为单片机产生时钟脉冲序列,典型的晶振频率为12MHz。单片机芯片的硬件结构9 9 位处理器位处理器n单片机主要用于控制,需要有较强的位处理功能,因此位处理器是它的必要组成部分,在一些书中常把位处理器称为布尔处理器。n位处理器以状态寄存器中的进位标志位C位累加位,可进行置位、复位、取反、等于“0”转移、等于“1”转移且清“0”以及C与可寻址位之间的传送、逻辑与、逻辑或等位操作。n位处理操作也是通过运算器实现的。具体将在第三章中的“位处理指令”部分介绍。
8、单片机芯片的硬件结构10 10 总线总线n上面所述的部件都是通过总线连接起来的,才能构成一个完整的单片机系统。总线结构减少了单片机的连线和引脚,提高了集成度和可靠度。单片机芯片的硬件结构2.1.3 2.1.3 MCSMCS5151单片机的信号引脚单片机的信号引脚n80C51单片机是标准的40引脚双列直插(DIP)式集成电路芯片, 其引脚示意及功能分类如下图所示。单片机芯片的硬件结构图23 MCS51系列单片机引脚及总线结构 (a) 管脚图; (b) 引脚功能分类 单片机芯片的硬件结构1 1 信号引脚介绍信号引脚介绍n主电源引脚Vcc和VssVCC(40脚): 接+5 V电源正端。 VSS(20
9、脚): 接+5 V电源地端。n外接晶体引脚XTAL1和XTAL2当使用芯片内部时钟时,此二引脚用于外接石英晶体和微调电容。当使用外部时钟时,用于外接时钟脉冲信号。n控制信号或与其它电源复用引脚控制信号或与其它电源复用引脚有下面四个单片机芯片的硬件结构 为复位信号,当输入的复位信号延续2个机器周期以上高电平时即为有效,用于完成单片机的复位操作。 备用电源引入端,当电源发生故障时,电压降低到下限值时,备用电源经此端向内部RAM供电。 (允许地址锁存信号)以每机器周期两次的信号输出, 用于锁存出现在P0口的低8位地址。 编程脉冲,为写入程序提供专门的编程脉冲。 片外程序存储器读选通信号输出端, 低电
10、平有效。 为访问外部程序存储器控制信号, 低电平有效。 编程电压,为写入程序提供专门电源(25V)单片机芯片的硬件结构n输入输出口线P0口(39脚32脚): P0.0P0.7统称为P0口。 P1口(1脚8脚): P1.0P1.7统称为P1口, 可作为准双向I/O接口使用。 P2口(21脚28脚): P2.0P2.7统称为P2口, 一般可作为准双向I/O接口。 P3口(10脚17脚): P3.0P3.7统称为P3口。 单片机芯片的硬件结构2 2 信号引脚的第二功能信号引脚的第二功能nP3口线的第二功能单片机芯片的硬件结构n引脚的第一、第二功能会不会混淆呢?答案是肯定的,不会。理由有三。1、对于各
11、种型号的芯片,其引脚的第一功能信号是相同的,所不同的只在引脚的第二功能信号上。2、对于9、30、31各引脚,由于第一功能信号与第二功能信号是单片机在不同工作方式下的信号,因此不会发生使用上的矛盾。3、P3口线的情况却有所不同,它的第二功能信号都是单片机的重要控制信号。因此在实际使用时,总是先按需要优先选用它的第二功能,剩下不用的才作为口线使用。引脚表现出的是单片机的外特性或硬件特性。在硬件方面用户只能使用引脚,即通过引脚组建系统。因此熟悉引脚是单片机硬件学习的重点。单片机芯片的硬件结构2.2.2 MCS2 MCS5151单片机的内部存储器单片机的内部存储器n本节介绍与单片机应用关系最密切的内部
12、存储器。MCS-51单片机芯片内部有数据存储器和程序存储器两类存储器,即所谓的内部RAM和内部ROM。MCS-51系列中各芯片内部RAM和ROM存储器的容量和形式不尽相同。我们以80C51为例。单片机芯片的硬件结构MCS51系列单片机配置一览表单片机芯片的硬件结构2.2.2.1 2.1 内部数据存储器低内部数据存储器低128128单元单元n80C51的内部共有256个数据存储器单元,通常把这256个单元按功能划分为两部分:低128单元(地址00H7FH)和高128单元(地址:80HFFH)如图所示单片机芯片的硬件结构通用RAM区 (80B) 位地址区 (16B)寄存器区4组(32B)寄存器3组
13、寄存器2组寄存器1组寄存器0组寄存器区4组(32B). . . . . . . . . .由PSW中的2位RS1、RS0来决定选 哪一组为当前工作寄存器: RS1、RS0=00 选0组 RS1、RS0=01 选1组 RS1、RS0=10 选2组 RS1、RS0=11 选3组在位地址区,每一个BIT都有一个 地址,共168=128位00H00H30H30H2FH2FH20H20H1FH1FH. . . .7FH7FH片内数据存储器空间分布图单片机芯片的硬件结构通用RAM区 (80B) 位地址区 (16B)7FH7FH寄存器3组寄存器2组寄存器1组寄存器0组寄存器0组寄存器区4组(32B). .
14、. . . . . . . .RS1RS1、RS0=00RS0=00R7R6R5R4R3R2R1R000H00H01H01H02H02H03H03H04H04H05H05H06H06H07H07H00H00H30H30H2FH2FH20H20H1FH1FH. . . .片内数据存储器空间分布图单片机芯片的硬件结构通用RAM区 (80B) 位地址区 (16B)7FH7FH寄存器3组寄存器2组寄存器1组寄存器0组寄存器1组R7R6R5R4R3R2R1R008H08H09H09H0AH0AH0BH0BH0CH0CH0DH0DH0EH0EH0FH0FH寄存器区4组(32B). . . . . . .
15、. . .RS1RS1、RS0=01RS0=0100H00H30H30H2FH2FH20H20H1FH1FH. . . .片内数据存储器空间分布图单片机芯片的硬件结构通用RAM区 (80B) 位地址区 (16B)7FH7FH寄存器3组寄存器2组寄存器1组寄存器0组寄存器2组R7R6R5R4R3R2R1R010H10H11H11H12H12H13H13H14H14H15H15H16H16H17H17H寄存器区4组(32B). . . . . . . . . .RS1RS1、RS0=10RS0=1000H00H30H30H2FH2FH20H20H1FH1FH. . . .片内数据存储器空间分布图单
16、片机芯片的硬件结构通用RAM区 (80B) 位地址区 (16B)7FH7FH寄存器3组寄存器2组寄存器1组寄存器0组寄存器3组R7R6R5R4R3R2R1R018H18H19H19H1AH1AH1BH1BH1CH1CH1DH1DH1EH1EH1FH1FH寄存器区4组(32B). . . . . . . . . .RS1RS1、RS0=11RS0=1100H00H30H30H2FH2FH20H20H1FH1FH. . . .片内数据存储器空间分布图单片机芯片的硬件结构通用RAM区 (80B) 位地址区 (16B)7FH7FH寄存器3组寄存器2组寄存器1组寄存器0组位地址区20H20H21H21H
17、22H22H23H23H24H24H25H25H26H26H27H27H28H28H29H29H2AH2AH2BH2BH2CH2CH2DH2DH2EH2EH2FH2FH00H00H01H01H02H02H03H03H04H04H05H05H06H06H07H07H08H08H0FH0FH10H10H7FH7FH78H78H70H70H68H68H60H60H58H58H50H50H48H48H40H40H38H38H30H30H28H28H20H20H77H77H6FH6FH67H67H1FH1FH5FH5FH57H57H4FH4FH47H47H3FH3FH37H37H2FH2FH27H27H
18、1FH1FH17H17H.D7 D6 D5 D4 D3 D2 D1 D0D7 D6 D5 D4 D3 D2 D1 D0. . . . . . . . . .00H00H30H30H2FH2FH20H20H1FH1FH. . . .片内数据存储器空间分布图单片机芯片的硬件结构通用RAM区 (80B) 位地址区 (16B)00H00H30H30H2FH2FH20H20H1FH1FH寄存器3组寄存器2组寄存器1组寄存器0组通用RAM区. . . . . . . . . . . . .共80个字节,作为一般的数据缓冲区并可设置堆栈区片内数据存储器空间分布图7FH7FH单片机芯片的硬件结构2.2.2.2
19、 2.2 内部数据存储器高内部数据存储器高128128单元单元n内部数据存储器的高128字节是为专用寄存器提供的。(地址80HFFH)用于存放相应功能部件的控制命令、状态或数据。MCS-51中80C51的专用寄存器有22个,其中可寻址的为21个。(注:PC程序计数器不可寻址)单片机芯片的硬件结构1.专用寄存器专用寄存器n程序计数器(PCProgram Counter)PC是一个16为计数器。其内容为将要执行的指令地址,寻址范围达64KB。PC有自动加1功能,以实现程序的顺序执行。PC不可寻址。n累加器A(或ACCAccumulator)累加器,通常用A或ACC表示。可字节寻址(E0H),也可位
20、寻址(E0HE7H)它是一个寄存器,而不是一个做加法的部件。在运算器做运算时其中一个数一定是在ACC中。单片机芯片的硬件结构nB寄存器暂存寄存器。在做乘、除法时放乘数或除数及结果。n程序状态字(PSWProgram Status Word)PSW是8位寄存器,用于作为程序运行状态的标志。这是一个很重要的部件,里面存放了CPU工作时的很多状态,借此,我们可以了解CPU的当前状态,并作出相应的处理。当CPU进行各种逻辑操作或算术运算时,为反映操作或运算结果的状态,把相应的标志位置1或清0。这些标志的状态,可由专门的指令来测试,也可通过指令来读出。它为计算机确定程序的下一步进行方向提供依据。PSW寄
21、存器中各位的名称及位置如上所示,下面说明各标志位的作用。单片机芯片的硬件结构它的各位功能如下:D7H D6H D5H D4HD3HD2HD1HD0H CY AC F0 RS1 RS0 OV PPSW位地址 CYCY:进位标志。 加减运算时,保存最高位进位、借位状态。 AC:半进位标志。 例:78H+97H 0111 1000 +1001 0111 1 0000 1111 有进位CY=1没有半进位AY=0单片机芯片的硬件结构F0:用户标志位。作为软件标志,由编程人员决定 何时使用。 RS1、RS0:工作寄存器组选择位。 0 0 选择工作寄存器0组 0 1 选择工作寄存器1组 1 0 选择工作寄存
22、器2组 1 1 选择工作寄存器3组OV:溢出标志位。 有符号数运算时,如果发生溢出,OV置“1”,否 则清“0”。D7H D6H D5H D4HD3HD2HD1HD0H CY AC F0 RS1 RS0 OV PPSW位地址单片机芯片的硬件结构P:奇偶校验位,它用来表示累加器A内容中二进制数位 “1”的个数的奇偶性。若为奇数,则P=1,否则为0。 例:某运算结果是78H(),P=0。D7H D6H D5H D4HD3HD2HD1HD0H CY AC F0 RS1 RS0 OV PPSW位地址单片机芯片的硬件结构n数据指针(DPTR)数据指针可以用它来访问外部数据存储器中的任一单元,也可以作为通
23、用寄存器来用,由我们自已决定如何使用。nSP堆栈指针,8位寄存器,用来指定堆栈的栈顶位置,初值为07H。它是加1计数.单片机芯片的硬件结构2.2.专用寄存器的字节寻址专用寄存器的字节寻址寄存器符号寄存器地址寄存器名称*ACC0E0H累加器*B0F0HB寄存器*PSW0D0H程序状态字SP81H堆栈指示器DPL82H数据指针低8位DPH83H数据指针高8位*IE0A8H中断允许控制寄存器*IP0B8H中断优先控制寄存器*P080HI/O口0*P190HI/O口1*P20A0HI/O口2单片机芯片的硬件结构寄存器符号寄存器地址寄存器名称*P30B0HI/O口3PCON87HH电源控制及波特率选择寄
24、存器*SCON98H串行口控制寄存器SBUF99H串行数据缓冲寄存器*TCON88H定时器控制寄存器TOMD89H定时器方式选择寄存器TL08AH定时器0低8位TL18BH定时器1低8位TH08CH定时器0高8位TH18DH定时器1高8位单片机芯片的硬件结构对专用寄存器的字节寻址问题的几点说明:u21个可寻址的专用寄存器的是不连续地分散在内部RAM的高128单元中。u唯一不可寻址的是PC,不占据RAM单元。u对专用的寄存器只能使用直接寻址方式。直接寻址在第三章具体讲解。在指令中可使用寄存器符号表示,也可以使用寄存器地址表示。单片机芯片的硬件结构3.3.专用寄存器的位寻址专用寄存器的位寻址SFR
25、MSB 位地址位地址/位定义位定义 LSB字节地址字节地址BF7F6F5F4F3F2F1F0F0HACCE7E6E5E4E3E2E1E0E0HPSWD7D6D5D4D3D2D1D0D0HCYACF0RS1RS0OVF1PIPBFBEBDBCBBBAB9B8B8H/PSPT1PX1PT0PX0P3B7B6B5B4B3B2B1B0B0HP3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0单片机芯片的硬件结构IEAFAEADACABAAA9A8A8HEA/ESET1EX1ET0EX0P2A7A6A5A4A3A2A1A0A0HP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0
26、SBUF(99H)SCON9F9E9D9C9B9A999898HSM0SM1SM2RENTB8RB8TIRIP1979695949392919090HP1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0TH1(8DH)单片机芯片的硬件结构TH0(8CH) TL1(8BH)TL0(8AH)TMODGATEC/M1M0GATEC/M1M0(89H)TCON8F8E8D8C8B8A898888HTF1TR1TF0TR0IE1IT1IE0IT0PCONSMOD/(87H)DPH(83H)DPL(82H)SP(81H)P0878685848382818080HP0.7P0.6P0.5P0.4
27、P0.3P0.2P0.1P0.0单片机芯片的硬件结构2.2.2.3 MCS-512.3 MCS-51的堆栈操作的堆栈操作n堆栈是一种数据结构。所谓堆栈就是允许在其一端进行数据插入和数据删除操作的线性表。数据的写入称为入栈(Push)。数据的读出为删除运算称为出栈(Pop)。堆栈的最大特点是“后进先出”的数据操作。LIFO(last in First Out)n堆栈的功能堆栈的主要是为了子程序和中断操作而设立的。其功能有两个:保护断点和保护现场。n堆栈的开辟堆栈的开辟在芯片的内部数据存储器中,即所谓的内堆栈。内堆栈的优点是操作速度快,但堆栈容量有限。单片机芯片的硬件结构n堆栈指示器无论的数据的入
28、栈还是数据的出栈,都是对堆栈的栈顶单元进行的,即对栈顶单元的写和读操作。为了指示栈顶地址,所以要设计堆栈指示器(SP)。SP的内容就是栈顶的存储单元地址。系统复位后,SP的内容为07H,但由于堆栈最好在内部通用RAM区(30H7FH)单元中开辟。n堆栈的类型堆栈的有两种类型:向上生长型和向下生长型。如图所示:单片机芯片的硬件结构MCS-51属于向上生长型堆栈。入栈操作:先SP加1,后写入数据出栈操作:先读出数据,后SP减1向下生长型堆栈入栈操作:先SP减1,后写入数据出栈操作:先读出数据,后SP加1单片机芯片的硬件结构n堆栈使用方式堆栈的使用有两种方式。一种是自动方式,即在调用子程序或中断时,
29、返回地址(断点)自动入栈。程序返回时,断点再自动弹回PC。这种堆栈操作方式无需用户操作干预,因此称为自动方式。另一种是指令方式,即使用专用的堆栈操作指令,进行出栈操作。入栈指令为PUSH。出栈指令为POP。单片机芯片的硬件结构2.2.4 2.2.4 内部程序存储器内部程序存储器nMCS-51的程序存储器用于存放编好的程序和表格常数。80C51片内有4 KB的ROM,8751片内有4 KB的EPROM,8031片内无程序存储器。 MCS-51的片外最多能扩展64 KB程序存储器,片内外的ROM是统一编址的。如果EA端保持高电平,80C51执行片内前4KB ROM地址(0000H0FFFH) 中的
30、程序。当寻址范围超过4KB(1000HFFFFH)时,则从片外存储器取指令。当EA端保持低电平时,80C51的所有取指令操作均在片外程序存储器中进行,这时片外存储器可以从0000H开始编址。单片机芯片的硬件结构64KBROMEA=0EA=10000H0FFFH1000HFFFFH4KBROMFFH80H7FH00H SFRRAM64KBRAM(I/O)0000HFFFFH片内片外片外程序存储器数据存储器单片机芯片的硬件结构 MCS-51的程序存储器中有些单元具有特殊功能,使用时应予以注意。 其中一组特殊单元是0000H0002H。系统复位后,(PC)=0000H,单片机从0000H单元开始取指
31、令执行程序。如果程序不从0000H单元开始,应在这三个单元中存放一条无条件转移指令,以便直接转去执行指定的程序。 还有一组特殊单元是0003H002AH,共40个单元。这40个单元被均匀地分为5段,作为5个中断源的中断地址区。其中: 0003H000AH 外部中断0中断地址区 000BH0012H 定时/计数器0中断地址区 0013H001AH 外部中断1中断地址区 001BH0022H 定时/计数器1中断地址区 0023H002AH 串行中断地址区单片机芯片的硬件结构2.2.5 MCS-512.2.5 MCS-51单片机系统的存储结构特点单片机系统的存储结构特点nMCS-51单片机的存储结构
32、有两个重要特点。一是把数据存储器和程序存储器分开,二是存储器有内外之分。n单片机的片内存储器的容量一般只有4KB,数据也就是128单元。这对复杂的单片机系统来说是很不够的。为此常常需要扩展。为了扩展外部存储器,单片机芯片作了预先准备。例如通过口线最多可提供16位地址,对外部存储器的寻址范围可达64KB。除此之外还有一些引脚信号也是提供存储器扩展使用的。例如ALE信号用于外部存储器的地址锁存控制。PSEN信号用于外部程序存储器的读选通。EA用于外部程序存储器的访问控制。单片机芯片的硬件结构2.2.3 MCS3 MCS5151单片机并行输入输出电路单片机并行输入输出电路单片机芯片内还有一项主要内容
33、就是并行I/O口。MCS-51共有4个8位的并行I/O口,分别记作P0、P1、P2、P3。每个口都包含一个锁存器、一个输出驱动器和输入缓冲器。实际上,它们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。在访问片外扩展存储器时,低8位地址和数据由P0口分时传送,高8位地址由P2口传送。在无片外扩展存储器的系统中,这4个口的每一位均可作为双向的I/O端口使用。MCS-51单片机的4个I/O口都是8位双向口,这些口在结构和特性上是基本相同的,但又各具特点,以下将分别介绍之。单片机芯片的硬件结构2.2.3.1 P03.1 P0口口下图为P0口的某位P0.n(n=07)结构图,它由一个输出锁存器、
34、两个三态输入缓冲器和输出驱动电路及控制电路组成。从图中可以看出,P0口既可以作为I/O用,也可以作为地址/数据线用。D QCLK QMUXP0.n读读锁存器锁存器内部总线内部总线写写锁存器锁存器读读引脚引脚地址地址/ /数据数据控制控制VCCT1T2P0P0口引口引脚脚单片机芯片的硬件结构1、P0口作为普通I/O口输出时输出时CPU发出控制电平“0 0”封锁“与”门,将输出上拉场效应管T1截止,同时使多路开关MUX把锁存器与输出D QCLK QMUXP0.n读读锁存器锁存器内部总线内部总线写写锁存器锁存器读读引脚引脚地址地址/ /数据数据控制控制VCCT1T2P0P0口引口引脚脚单片机芯片的硬
35、件结构驱动场效应管T2栅极接通。故内部总线与P0口同相。由于输出驱动级是漏极开路电路,若驱动NMOS或其它拉流负载时,需要外接上拉电阻。P0的输出级可驱动8个LSTTL负载。D QCLK QMUXP0.n读读锁存器锁存器内部总线内部总线写写锁存器锁存器读读引脚引脚地址地址/ /数据数据控制控制VCCT1T2P0P0口引口引脚脚单片机芯片的硬件结构 输入时输入时-分分读引脚读引脚或或读锁存器读锁存器读引脚:读引脚:由传送指令由传送指令(MOVMOV)实现;实现; 下下面一个缓冲器用于读端口面一个缓冲器用于读端口引脚引脚数据,当执行一条数据,当执行一条由端口输入的指令时,读脉冲把该三态缓冲器打开,
36、由端口输入的指令时,读脉冲把该三态缓冲器打开,这样端口引脚上的数据经过缓冲器读入到内部总线。这样端口引脚上的数据经过缓冲器读入到内部总线。D QCLK QMUXP0.n读读锁存器锁存器内部总线内部总线写写锁存器锁存器读读引脚引脚地址地址/ /数据数据控制控制VCCT1T2P0P0口引口引脚脚单片机芯片的硬件结构 输入时输入时-分分读引脚读引脚或或读锁存器读锁存器读锁存器:读锁存器:有些指令有些指令 如:如:ANL P0ANL P0,A A称为称为“读读- -改改- -写写” ” 指令,需要读锁存器。指令,需要读锁存器。 上上面面一个缓冲器用于读端口一个缓冲器用于读端口锁存器锁存器数据。数据。D
37、 QCLK QMUXP0.n读读锁存器锁存器内部总线内部总线写写锁存器锁存器读读引脚引脚地址地址/ /数据数据控制控制VCCT1T2P0P0口引口引脚脚单片机芯片的硬件结构*原因:如果此时该端口的负载恰是一个晶体管基极,且原端口输出值为1,那么导通了的PN结会把端口引脚高电平拉低;若此时直接读端口引脚信号,将会把原输出的“1”电平误读为“0”电平。现采用读输出锁存器代替读引脚,图中,上面的三态缓冲器就为读锁存器Q端信号而设,读输出锁存器可避免上述可能发生的错误。*D QCLK QMUXP0.n读读锁存器锁存器内部总线内部总线写写锁存器锁存器读读引脚引脚地址地址/ /数据数据控制控制VCCT1T
38、2P0P0口引口引脚脚单片机芯片的硬件结构准双向口: 从图中可以看出,在读入端口数据时,由于输出驱动FET并接在引脚上,如果T2导通,就会将输入的高电平拉成低电平,产生误读。所以在端口进行输入操作前,应先向端口锁存器写“1”,使T2截止,引脚处于悬浮状态,变为高阻抗输入。这就是所谓的准双向口。 D QCLK QMUXP0.n读读锁存器锁存器内部总线内部总线写写锁存器锁存器读读引脚引脚地址地址/ /数据数据控制控制VCCT1T2P0P0口引口引脚脚单片机芯片的硬件结构2 2、P0P0作为作为地址地址/ /数据总线数据总线 在系统扩展时,在系统扩展时,P0P0端口作为端口作为地址地址/ /数据总线
39、数据总线使用时,使用时,分为:分为: P0P0引脚引脚输出地址输出地址/ /数据数据信息。信息。 D QCLK QMUXP0.n读读锁存器锁存器内部总线内部总线写写锁存器锁存器读读引脚引脚地址地址/ /数据数据控制控制VCCT1T2P0P0口引口引脚脚单片机芯片的硬件结构2 2、P0P0作为作为地址地址/ /数据总线数据总线 CPUCPU发出控制电平发出控制电平“1 1”,打开,打开“与与”门,又使多路开门,又使多路开关关MUXMUX把把CPUCPU的的地址地址/ /数据总线数据总线与与T2T2栅极反相接通,输出地栅极反相接通,输出地址或数据。由图上可以看出,上下两个址或数据。由图上可以看出,
40、上下两个FETFET处于反相,构处于反相,构成了推拉式的输出电路,其负载能力大大增强。成了推拉式的输出电路,其负载能力大大增强。D QCLK QMUXP0.n读读锁存器锁存器内部总线内部总线写写锁存器锁存器读读引脚引脚地址地址/ /数据数据控制控制VCCT1T2P0P0口引口引脚脚单片机芯片的硬件结构 P0P0引脚引脚输出地址输出地址/ /输入数据输入数据 输入信号是从引脚通过输入缓冲器进入输入信号是从引脚通过输入缓冲器进入内部总线内部总线。 此时,此时,CPUCPU自动使自动使MUXMUX向下,并向向下,并向P0P0口写口写“1”1”,“读读引脚引脚”控制信号有效,下面的缓冲器打开,外部数据
41、读入控制信号有效,下面的缓冲器打开,外部数据读入内部总线。内部总线。2 2、P0P0作为作为地址地址/ /数据总线数据总线-真正的双向口D QCLK QMUXP0.n读读锁存器锁存器内部总线内部总线写写锁存器锁存器读读引脚引脚地址地址/ /数据数据控制控制VCCT1T2P0P0口引口引脚脚单片机芯片的硬件结构n读引脚时要对引脚“初始化”,如图所示。假设在读引脚P0.n之前已执行指令CLR P0.n,此时Q=1,T2导通,P0.n为0;现在读引脚,若外部电路连到P0.n的信号为0,则读入CPU的内容为0,正确。如外部电路连到P0.n的信号为1,但T2导通,读入的内容为0,错误。一方面读入的内容错
42、误,另一方面对外部电路、单片机有影响,可能造成器件损坏。对此,必须进行初始化。D QCLK QMUXP0.n读读锁存器锁存器内部总线内部总线写写锁存器锁存器读读引脚引脚地址地址/ /数据数据控制控制VCCT1T2P0P0口引口引脚脚注意:解决方法注意:解决方法单片机芯片的硬件结构n把端口作为输入口使用时,可执行指令MOV P0,#0FFH或则SETB P0.n,这样使对应的T2截止;接着执行读引脚指令,可正确读入引脚内容。例如:CLR P0.1MOV P0,#0SETB P0.1MOV P0,#0FFHMOV C,P0.1MOV A,P0n若整个程序中P0.n(或P0口)作Input使用,可在
43、程序开始处设置P0.n或P0口为高电平(SETB P0.n 或 MOV P0,#0FFH),并且在整个程序中进行一次初始化即可(这个过程通常可以省略)。单片机芯片的硬件结构n若在程序中,既把P0.n或P0当作输出口,又把它们当作输入口,在每次由端口输入信号时,要对其初始化。nP0.n或P0作I/O口使用时,T1截止,使用中一般需要加上拉电阻(2K10K)。nP0口最多可驱动或吸收8个LSTTL负载。nP0口地址:专用寄存器地址80H;位地址80H-87H,当执行“读引脚、读锁存器、写锁存器”操作时对应线上会出现有效信号。nP0作总线使用时无锁存功能。作通用输出口时有锁存功能。nP0作总线使用时
44、,可加不加上拉电阻,作I/O使用要加上拉电阻。单片机芯片的硬件结构2.2.3.2 P13.2 P1口口 P1口的字节地址为90H,位地址为90H97H,P1口的口线逻辑电路如下图所示。因为P1口通常是作为通用I/O口使用的,所以在电路结构上与P0口有一些不同之处:首先它不再需要多路转接电路MUX;其次是电路的内部有上拉电阻,与场效应管共同组成输出驱动电路。D QD QCLK QCLK QP1.nP1.n读读锁存器锁存器内部总线内部总线写写锁存器锁存器读读引脚引脚VCCRT TP1口引脚单片机芯片的硬件结构 为此,P1口作为输出口使用时,已经能向外提供推拉电流负载,无需再外接上拉电阻。当P1口作
45、为输入口使用时,同样也需先向其锁存器写“1”,使输出驱动电路的FET截止。D QD QCLK QCLK QP1.nP1.n读读锁存器锁存器内部总线内部总线写写锁存器锁存器读读引脚引脚VCCRT TP1口引脚单片机芯片的硬件结构nP2口的字节地址为0A0H,位地址为0A0H0A7H,P2口的口线逻辑电路如下图所示。2.2.3.3 P23.3 P2口口D QCLK QMUXP2.n读锁存器读锁存器内部总线内部总线写锁存器写锁存器读引脚读引脚地址地址控制控制VCCRTP2口引脚单片机芯片的硬件结构 P2口电路比P1口电路多了一个多路转接电路MUX,这又正好与P0口一样。P2口可以作为通用I/O口使用
46、,这时多路转接电路开关倒向锁存器Q端。通常情况下,P2口是作为高位地址线使用,此时多路转接电路开关应倒向相反方向。D QCLK QMUXP2.n读锁存器读锁存器内部总线内部总线写锁存器写锁存器读引脚读引脚地址地址控制控制VCCRTP2口引脚单片机芯片的硬件结构2.3.4 P32.3.4 P3口口P3口的字节地址为0B0H,位地址为0B0H0B07H,P3口的口线逻辑电路如图下所示。D QD QCLK QCLK QP3.nP3.n读读锁存器锁存器内部总线内部总线写锁存器写锁存器读读引脚引脚VCCRT TP3口引脚第二第二输入功能输入功能第二第二输出功能输出功能W单片机芯片的硬件结构P3口的特点在
47、于,为适应引脚信号第二功能的需要,增加了第二功能控制逻辑。由于第二功能信号有输入和输出两类,因此分两种情况说明。D QD QCLK QCLK QP3.nP3.n读读锁存器锁存器内部总线内部总线写锁存器写锁存器读读引脚引脚VCCRT TP3口引脚第二第二输入功能输入功能第二第二输出功能输出功能W单片机芯片的硬件结构 对于第二功能为输出的信号引脚,当作为I/O使用时,第二功能信号引线应保持高电平,与非门开通,以维持从锁存器到输出端数据输出通路的畅通。当输出第二功能信号时,该位的锁存器应置“1”,使与非门对第二功能信号的输出是畅通的,从而实现第二功能信号的输出。D QD QCLK QCLK QP3.
48、nP3.n读读锁存器锁存器内部总线内部总线写锁存器写锁存器读读引脚引脚VCCRT TP3口引脚第二第二输入功能输入功能第二第二输出功能输出功能W单片机芯片的硬件结构 对于第二功能为输入的信号引脚,在口线的输入通路上增加了一个缓冲器,输入的第二功能信号就从这个缓冲器的输出端取得。而作为I/O使用的数据输入,仍取自三态缓冲器的输出端。不管是作为输入口使用还是第二功能信号输入,输出电路中的锁存器输出和第二功能输出信号线都应保持高电平。D QD QCLK QCLK QP3.nP3.n读读锁存器锁存器内部总线内部总线写锁存器写锁存器读读引脚引脚VCCRT TP3口引脚第二第二输入功能输入功能第二第二输出
49、功能输出功能W单片机芯片的硬件结构2.2.4 MCS4 MCS5151单片机时钟电路与时序单片机时钟电路与时序n在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2 。而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,这就是单片机的时钟电路,如下图所示。2.4.1 2.4.1 时钟电路时钟电路1 1 时钟电路的产生时钟电路的产生单片机芯片的硬件结构n振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。请读者特别注意时钟脉冲与振荡脉冲之间的二分频关系,否则会造成概念上的错误。n一般地,电容C
50、1和C2取30 pF左右,晶体的振荡频率范围是1.212 MHz。晶体振荡频率高,则系统的时钟频率也高,单片机运行速度也就快。MCS-51在通常应用情况下,使用振荡频率为6 MHz或12 MHz。单片机芯片的硬件结构n12M主要是在高速串行通信的情况下才使用。随着技术的发展,单片机的时钟频率也在逐步提高,现在高速芯片已达到40MHz。n定时振荡器的工作可由专用寄存器PCON的PD位进行控制,把PD位置“1”,振荡器停止工作,系统进入低功耗状态。单片机芯片的硬件结构n在由多片单片机组成的系统中,为了各单片机之间时钟信号的同步,应当引入惟一的公用外部脉冲信号作为各单片机的振荡脉冲。这时,外部的脉冲
51、信号是经XTAL2引脚注入,其连接如下图所示。n注意,外接的脉冲信号应当是高低电平持续时间大于20ns的方波,且脉冲频率应低于12MH中。对于80C51单片机,情况有些不同,外引脉冲信号需从XTAL1引脚注入,而XTAL2引脚悬空,其电路见右下图。2 2引入外部脉冲信号引入外部脉冲信号单片机芯片的硬件结构单片机执行指令是在时序电路的控制下一步一步进行的。MCS-51的时序定时单位共有4个,从小到大依次是:节拍、状态、机器周期和指令周期。下面分别加以说明。节拍与状态 把振荡脉冲的周期定义为节拍(用P表示)。振荡脉冲经过二分频后,就是单片机的时钟信号的周期,其定义为状态(用S表示)。这样,一个状态
52、就包含两个节拍,具前半周期对应的拍节叫节拍1(P1),后半周期对应的节拍叫节拍2(P2)。2.4.2 2.4.2 时序定时单位时序定时单位单片机芯片的硬件结构机器周期MCS-51采用同步控制方式, 因此它有固定的机器周期。规定一个机器周期的宽度为6个状态,并依次表示为S1S6。由于一个状态又包括两个节拍,因此,一个机器周期总共有12个节拍,分别记作S1P1、S1P2、S6P2。由于一个机器周期共有12个振荡脉冲周期, 因此机器周期就是振荡脉冲的十二分频。当振荡脉冲频率为12 MHz时,一个机器周期为1s;当振荡脉冲频率为6 MHz时,一个机器周期为2s。指令周期指令周期是最大的时序定时单位,
53、执行一条指令所需要的时间称为指令周期。它一般由若干个机器周期组成。不同的指令,所需要的机器周期数也不相同。通常,包含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令,等等 单片机芯片的硬件结构nMCS-51共有111条指令,全部指令按其长度可分为单字节指令、双字节指令和三字节指令。执行这些指令所需要的机器周期数目是不同的。概括起来共有以下几种情况:单字节指令单机器周期和单字节指令双机器周期;双字节指令单机器周期和双字节指令双机器周期;三字节的指令都是双机器周期,而单字节的乘除指令则为四机器周期。n下图所表示的是几种典型单机器周期和双机器周期的时序。图中的ALE信号是为地址
54、锁存而定义。该信号每有效一次对应单片机进行的一次读指令操作。ALE信号以振荡脉冲六分之一的频率出现,因此在一次机器周期中,ALE信号两次有效,第一次在S1P2和S2P1期间,第二次在S4P2和S5P1。有效宽度为一个状态。2.4.3 2.4.3 典型指令时序典型指令时序单片机芯片的硬件结构单片机芯片的硬件结构n(a),(b)所示分别给出了单字节单周期和双字节单周期指令的时序。单周期指令的执行始于S1P2,这时操作码被锁存到指令寄存器内。若是双字节,则在同一机器周期的S4读第二字节。若是单字节指令,则在S4仍有读操作,但被读入的字节无效,且程序计数器PC并不增量。n(c)给出了单字节双周期指令的
55、时序,两个机器周期内进行4次读操作码操作。因为是单字节指令,所以,后三次读操作都是无效的。单片机芯片的硬件结构n(d)MOVX类指令情况有所不同。因为执行这类指令时,先在ROM读指令,然后对外部RAM进行读写操作。第一机器周期时,与其它指令一样,第一次读指令(操作码)有效,第二次读指令操作无效。第二机器周期时,进行外部RAM访问,此时与ALE信号无关。因此不产生指令操作。单片机芯片的硬件结构n单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC=0000H,使单片机从第一个单元取指令。除PC之外,其它专用寄存器状态如下表所示。2.5 MCS-
56、512.5 MCS-51单片机工作方式单片机工作方式2.5.1 2.5.1 复位方式和复位电路复位方式和复位电路单片机芯片的硬件结构n单片机复位的条件是:必须使RST/VPD 或RST引脚(9)加上持续两个机器周期(即24个振荡周期)的高电平。例如,若时钟频率为12 MHz,每机器周期为1s,则只需2s以上时间的高电平,在RST引脚出现高电平后的第二个机器周期执行复位。单片机芯片的硬件结构n注意:注意: (1) 复位后PC值为0000H,表明复位后程序从0000H开始执行。 (2) SP值为07H,表明堆栈底部在07H。一般需重新设置SP值。 (3) P0P3口值为FFH。P0P3口用作输入口时,必须先写入“1”。单片机在复位后,已使P0P3口每一端线为“1”,为这些端线用作输入口做好了准备。单片机芯片的硬件结构补充题:补充题:1.MCS-51单片机的哪些端口,有两种功能?分别是什么功能?2.在系统扩展片外程序存储器时,P2口是否可以再作为通用I/O口?3. 某控制程序有如下片段: MOV P1,#00H MOV A,P1执行后结果不正常,请问为什么会出现这种情况,如何修改程序,才能保证输入的数据正常?单片机芯片的硬件结构nP37练习题(一)问答题4、7 、8 填空题、选择题做在书上。 自学 2.5.3 2.5.4下次上课时叫一位同学来讲 课。单片机芯片的硬件结构