《第2章 80C51单片微机的基本结构课件》由会员分享,可在线阅读,更多相关《第2章 80C51单片微机的基本结构课件(148页珍藏版)》请在金锄头文库上搜索。
1、第二章 80C51单片微机的基本结构,微型计算机的基本组成有三部分,即CPU +存储器+ I/O 接口。 80C51内部结构如图21所示。 CPU(算术逻辑单元ALU、控制器) 存储器-程序存储器ROM、数据存储器 RAM 定时器/计数器 并行 I/O口 P0P3 串行口 中断系统 定时控制逻辑电路等,2.1 80C51单片微机的内部结构,微型计算机的基本组成有三部分,即CPU +存储器+ I/O 接口。 80C51内部结构:图21 CPU(算术逻辑单元ALU、控制器) 存储器-程序存储器ROM、数据存储器 RAM 定时器/计数器 并行 I/O口 P0P3 串行口 中断系统 定时控制逻辑电路等
2、 参考图,这些部件通过内部总线连接起来,基本结构仍然是通用CPU加上外围芯片的结构模式,但采用了特殊功能寄存器(SFR) 进行集中控制的方法。 1.中央处理器 单片微机的核心,主要完成运算和控制功能,又增设了“面向控制”的处理功能,增强了实时性。 2. 程序存储器 80C31:内部没有程序存储器 80C51:内部带ROM 87C51:内部带EPROM,单片微机的程序存储器有以下几种结构形式: 片内只读存储器 程序必须在制作单片微机时写入,一次性固化。 只适用于程序已成熟、定型,且批量很大的场合。并且只能在厂家定制完成。, 片内可编程的ROM 片内可编程的ROM可直接由用户进行编程。 紫外线可擦
3、除型ROM:EPROM型单片微机 (如87C51)。EPROM需用紫外线擦除,必须脱机固化,不能在线改写。 电可擦除型ROM:EEPROM,称为Flash单片微机 (如89C51)。应用系统的现场调试。 EPROM和EEPROM都是可以多次擦除和编程的,或称MTP的ROM。 OTP的 ROM,仅允许用户一次编程。, 片外只读存储器 由于受芯片集成度的限制,片内只读存储器一般存储容量较小。 利用单片微机的并行扩展技术可以外扩片外只读存储器。,3. 数据存储器(RAM) 存储程序在运行期间的工作变量和数据,称为数据存储器。一般在单片微机内部设置一定容量(64B384B或更大容量 )的RAM,以加快
4、单片微机运行的速度,还可以使存储器的功耗下降很多。 常把寄存器(如工作寄存器、特殊功能寄存器、堆栈等)在逻辑上划分在片内RAM空间中,可将单片微机内部RAM看成是寄存器堆,有利于提高运行速度。,4. 并行I/O口 提供许多功能强、使用灵活的并行输入/输出引脚,用于检测与控制。 有些I/O引脚还具有多种功能,比如可以作为数据总线的数据线、地址总线的地址线、控制总线的控制线等。 单片微机I/O引脚的驱动能力也逐渐增大,甚至可以直接驱动外扩的LED显示器。,5. 串行I/O口 实现与某些终端设备进行串行通信,或者和一些特殊功能的器件相连的能力,甚至用多个单片微机相连构成多机系统。,6. 定时器/计数
5、器 用于精确的定时,或者需对外部事件进行计数 80C51有两个16位的定时器/计数器, 80C52有三个16位的定时器/计数器。 7. 中断系统 具有内、外共五个中断源,两个中断优先级。,8定时电路及元件 计算机的整个工作是在时钟信号的驱动下,按照严格的时序有规律地一个节拍一个节拍地执行各种操作。 单片微机内部设有定时电路,只需外接振荡元件即可工作。 外接振荡元件一般选用晶体振荡器,或用价廉的RC振荡器,也可用外部时钟源,作为振荡元件。 有的单片微机将振荡元件也集成在芯片内部。,80C5180C52的封装及逻辑图如图22所示。 若不需要通过并行总线扩展芯片,常采用20引脚甚至仅14引脚的单片微
6、机,如Atmel公司的89C1051/2051/4051,或Philips公司的P87LPC764。它们的封装及引脚见图23。,2.2 80C51单片微机的引脚及其功能,按引脚的功能可分为三部分 : 1. 电源和晶振 Vcc:运行和程序校验时接电源正端。 Vss:接地。 XTAL1:输入到单片微机内部振荡器的反相放大器。当采用外部振荡器时,对HMOS单片微机, 此引脚应接地;对CHMOS单片微机,此引脚作驱动端。 XTAL2:反相放大器的输出,输入到内部时钟发生器。当采用外部振荡器时,XTAL2接收振荡器信号,对CHMOS,此引脚应悬浮。,2. I/O P0:8位、漏极开路的双向I/O口。 当
7、使用片外存储器(ROM及RAM)时,作低8位地址和8位数据总线分时复用。,P1:8位、准双向I/O 口。 对于80C52, P1.0:T2,是定时器2的计数输入端; P1.1:T2EX,是定时器2的外部输入端。,P2:8位、准双向I/O口。 当使用片外存储器(ROM及RAM)时,输出高8位地址。,P3:8位、准双向I/O口,具有内部上拉电路。 P3提供各种替代功能。在提供这些功能时,其输出锁存器应由程序置 1。 串行口: P30:RXD 串行输入口。 P31:TXD 串行输出口。 中断: P32:INT0 外部中断0输入。 P33: INT1外部中断1输入。, 定时器计数器: P34:T0 的
8、外部输入。 P35:T1的外部输入。 数据存储器选通: P36:WR ,片外数据存储器或I/O端口写选通。 P37: RD ,片外数据存储器或I/O端口读选通。,3. 控制线 RST:复位输入信号。 在振荡器工作时,在RST上作用两个机器周期以上的高电平,将单片微机复位。 EA /Vpp:片外程序存储器访问允许信号。 EA=1,选择片内程序存储器 EA=0,则程序存储器全部在片外。 使用80C31时,EA必须接地,使用8751编程时, EA施加 21V的编程电压。,ALE/PROG:地址锁存允许信号。 在访问片外存储器或I/O时,用于锁存低8位地址,以实现低地址与8位数据的隔离。 ALE以 1
9、/6的振荡频率固定速率输出,可作为对外输出的时钟或用作外部定时脉冲。 PSEN:片外程序存储器读选通信号。 在从片外程序存储器取指期间,在每个机器周期中,当PSEN有效时,程序存储器的内容被送上 P0口(数据总线)。 。,2.3 80C51 CPU的结构和特点,中央处理器CPU是单片微机内部的核心部件,主要包括控制器、运算器和工作寄存器及时序电路。,2.3.1中央控制器,识别指令,并根据指令性质控制计算机各组成部件进行工作的部件,与运算器一起构成中央处理器。 在80C51中,控制器包括程序计数器PC、程序地址寄存器、指令寄存器IR、指令译码器、条件转移逻辑电路及定时控制逻辑电路。 功能:控制指
10、令的读出、译码和执行,对指令的执行过程进行定时控制,并根据执行结果决定是否分支转移。,程序计数器PC(Program Counter) 一个独立的计数器,不属于内部的特殊功能寄存器。 存放下一条将要从程序存储器中取出的指令的地址。 PC基本的工作过程是:读指令时,PC将其中的数作为所取指令的地址输出给程序存储器,然后程序存储器按此地址输出指令字节,同时PC本身自动加1,指向下一条指令地址。,PC变化的轨迹决定程序的流程。 在执行条件转移或无条件转移指令时,PC将被置入转移的目的地址,程序的流向发生变化。 在执行调用指令或响应中断时,将子程序的入口地址或者中断矢量地址送入PC,程序流向发生变化。
11、,2. 数据指针 DPTR 16位特殊功能寄存器. 作为片外数据存储器或I/O寻址用的地址寄存器。 既可以作为一个16位寄存器处理,也可以作为两个8位寄存器处理,其高8位用DPH表示,低8位用DPL表示。,访问片外数据存储器或I/O的指令为: MOVX A,DPTR 读 MOVX DPTR,A 写 作为访问程序存储器时的基址寄存器。寻址程序存储器中的表格、常数等单元,而不是寻址指令。 MOVCA,ADPTR JMPADPTR,PC与DPTR: 都是与地址有关的16位的寄存器。PC与程序存储器的地址有关, DPTR与数据存储器或I/O的地址有关。作为地址寄存器使用时,PC与DPTR都是通过P0和
12、P2口输出的。PC的输出与ALE及PSEN信号有关;DPTR的输出,则与ALE、WR、RD信号有关。 PC只能作为16位寄存器对待,是不可以访问的。 DPTR可以作为16位寄存器,也可以作为两个8位特殊功能寄存器,DPTR是可以访问的。,3. 指令寄存器IR、指令译码器及控制逻辑 IR是用来存放指令操作码的专用寄存器。执行程序时,首先进行程序存储器的读操作,也就是根据程序计数器给出的地址从程序存储器中取出指令,送指令寄存器IR,IR的输出送指令译码器; 指令译码器对该指令进行译码,译码结果送定时控制逻辑电路,如图24所示。, 定时控制逻辑电路则根据指令的性质发出一系列定时控制信号,控制计算机的
13、各组成部件进行相应的工作,执行指令。 条件转移逻辑电路主要用来控制程序的分支转移。 转移条件分为两部分: 内部条件,程序状态标志位(PSW)和累加器的零状态; 外部条件,F0和所有位寻址空间的状态。,2.3.2 运算器,运算器主要用来实现对操作数的算术逻辑运算和位操作的。 对传送到CPU的数据进行加、减、乘、除、比较、BCD码校正等算术运算。 “与”、“或”、“异或”等逻辑操作;移位、置位、清零、取反、加1、减1等操作。 80C51的ALU还具有极强的位处理功能,如位置1、位清零、位“与”、位“或”等操作,对“面向控制”特别有用。 包括:算术逻辑运算单元ALU、累加器A、暂存寄存器、B寄存器、
14、程序状态标志寄存器PSW以及BCD码运算修正电路等。,ALU有两个输入: 通过暂存器1的输入:输入数据来自寄存器、直接寻址单元(含I/O口)、内部RAM、寄存器B或是立即数。 通过暂存器 2或累加器 的输入:通过暂存器 2的运算的指令有 ANL direct, data ORL direct, data XRL direct,data 其它的运算,其输入之一大多数也要通过累加器。,ALU有两个输出: 数据经过运算后,其结果又通过内部总线送回到累加器A中; 数据运算后产生的标志位输出至程序状态字 PSW。,2. 累加器A 简称ACC或A寄存器。 主要功能:累加器A存放操作数,是ALU单元的输入之
15、一,也是ALU运算结果的暂存单元。 单片微机中大部分数据操作都要通过累加器A进行,容易产生“瓶颈”现象。,3B寄存器 乘法中,ALU的两个输入分别为A、B,运算结果,A中放积的低8位,B中放积的高8位。 除法中,被除数取自A,除数取自B,商数存放于A,余数存放于B。 在其它情况下,B寄存器可以作为内部RAM中的一个单元来使用。,4. 程序状态字PSW (Program Status Word) 主要部分是算术逻辑运算单元(ALU)的输出。其中有些位(如F0)状态可用软件方法设定。 奇偶校验位P、溢出标志位OV、辅助进位标志位AC及进位标志位CY都是ALU运算结果的直接输出。,(1) P 奇偶标
16、志位 每个指令周期都由硬件来置位或清除。 用以表示累加器A中值为1的个数的奇偶性:若累加器值为1的位数是奇数,P置位(奇校验);否则P清除(偶校验) 。 如(A)=00001010,则P=0。 在串行通信中,常以传送奇偶校验位来检验传输数据的可靠性。,(2) OV 溢出标志位 当执行运算指令时,由硬件置位或清除。 OV置位:运算结果超出了目的寄存器A所能表示的带符号数的范围(一128127)。 若以Ci表示位 i向位il有进位,则OV=C6C7;当位6向位7有进位(借位)而位7不向CY进位(借位)时;或当位7向C进位(借位)而位6不向位7进位(借位)时,OV标志置位,表示带符号数运算时运算结果是错误的;否则,清除OV标志,运算结果正确。,对于MUL乘法,当A、B两个乘数的积超过255时OV置位;否则,OV0。若OV0时,只需从A寄存器中取积。 对于DIV除法,若除数为0时