微型计算机原理与接口技术-2009级单片机第二部分内部结构_第1页
微型计算机原理与接口技术-2009级单片机第二部分内部结构_第2页
微型计算机原理与接口技术-2009级单片机第二部分内部结构_第3页
微型计算机原理与接口技术-2009级单片机第二部分内部结构_第4页
微型计算机原理与接口技术-2009级单片机第二部分内部结构_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二部分单片机内部结构,2.1 80C51单片机的结构,1. 中央处理器CPU:8位字长2. 存储器 (1)程序存储器(ROM) 片内只读存储器:4KB 片外只读存储器 (2)数据存储器(RAM) 片内数据存储器:256B 片外数据存储器 3. 并行I/O口:4个8位的I/O口P0、P1、P2、P3。4. 串行I/O口5. 定时器/计数器 :2个16位。6. 时钟电路7. 中断系统:5个中断源。,问题的提出:,一、单片机外部引脚是如何定义的?二、内部寄存器结构?内部存储器结构?三、功能部件(如IO、定时/计数器、串口、中断系统 等)如何使用?四、如何进行存储器的扩展?五、其它应用电路的设计,如键盘输入、数码管显 示、AD/DA接口电路设计等;六、串行接口器件(如I2C、SPI)的扩展应用等;七、汇编指令有那些?汇编应用程序的编写。,一、80C51单片机的引脚定义及功能,8051有40引脚双列直插(DIP)和44引脚(QFP)封装形式。80C51的封装及逻辑图如下图。,各引脚的功能如下:(1) 电源和晶振 Vcc运行和程序检验时加+5V。 Vss接地 XTAL1输入到振荡器的反向放大器 XTAL2反向放大器输出,输入到内部时钟发生器。(2) I/O口: 4个口,32根 P08位,漏极开路的双向I/O口。 P18位,准双向I/O口,具有内部上拉电阻。 P28位,准双向I/O口,具有内部上拉电阻。 P38位,准双向I/O口,具有内部上拉电阻。 P3引脚为多功能引脚。,串行口:P3.0RXD(串行输入口),输入。P3.1TXD(串行输出口), 输出。 中断:P3.2INT0外部中断0,输入。P3.3INT1外部中断1,输入。 定时器/计数器:P3.4T0定时器/计数器0的外部输入,输入。P3.5T1定时器/计数器1的外部输入,输入。 片外数据存储器(RAM)选通:P3.6 /WR, 低电平有效,输出,片外RAM写选通。P3.7 /RD, 低电平有效,输出,片外RAM读选通。,(3)控制线:共4根。 输入: RST复位输入信号,高电平有效。 EA/Vpp片外程序存储器访问允许信号,低电平 有效。 输入,输出: ALE/PROG地址锁存允许信号,输出,高电平 有效。 输出: PSEN片外程序存储器选通信号,低电平有效。,2.2 单片机的工作原理,PC存放下一条将要从程序存储器中取出的指令的地址。PC字长16位,故寻址范围64K。它的基本工作方式有: PC自动加1,总是指向下一条指令的地址,这是最基本的工作方式。,一、 中央处理器CPU的工作原理,(1) 程序计数器PC (Program Counter),执行条件或者无条件转移指令时,程序计数器将被置入新的数值,程序的流向发生变化。,1、控制器,堆栈 PC的现行值; PC 子程序的入口地址或中断矢量地址; 执行子程序或中断服务程序,直到返回指令RET或RETI; PC 栈顶的内容; 程序又返回到原来的的地方,继续执行。, 在执行调用指令或者响应中断时:,PC当前值,PC入栈,并赋新值,返回指令RET或RETI出栈,恢复PC 值,子程序或中断服务程序,IR是用来存放指令操作码的专用寄存器。,(2)指令寄存器IR,指令译码器及控制逻辑,(3)指令译码器,其作用是将指令进行译码,变成执行指令所需要的电信号。,(4)时序部件,(5)操作控制部件,2、运算器,运算器主要用来实现对操作数的算术逻辑运算和位操作的。主要包括: 算术逻辑运算单元ALU 累加器ACC(A)、 暂存寄存器、B寄存器 程序状态标志寄存器PSW BCD码运算修正电路等。,二、 单片机执行程序的过程,执行程序的执行步骤: 取指令:根据PC给出的地址从ROM中取出 指令,送指令寄存器IR 译码:指令译码器对指令进行译码 执行:译码结果送定时控制逻辑电路,2.3 80C51的存储器结构,80C51单片机的存储器采用哈佛结构,即将程序存储器和数据存储器分开,程序存储器和数据存储器各有自己的寻址方式、寻址空间和控制系统。这种结构对于单片机“面向控制”的实际应用极为方便、有利。, 在物理上设有4个存储器空间 程序存储器:片内程序存储器、片外程序存储器; 数据存储器:片内数据存储器、片外数据存储器, 在逻辑上设有3个存储器地址空间 片内、片外统一的64KB程序存储器地址空间; 片内256(或384)B数据存储器地址空间; 片外64KB的数据存储器地址(包括IO地址)空间。,在访问这3个不同的逻辑空间时,应选用不同形式的指令:MOVC、MOV、MOVX。,一、 程序存储器,80C51的程序存储器用来存放应用程序和表格之类的固定常数。由于采用16位的程序计数器PC和16位的地址总线,因而其可扩展的地址空间为64KB, 且这64KB存储器地址与片内程序存储器是统一编址的。,(1) 整个程序存储器可以分为片内和片外两部分,CPU访问片内和片外存储器,可由引脚/EA所接的电平来确定。,片内和片外两部分之和为64KB,/EA引脚接高电平时: 当PC值为0000H-0FFFH时,访问片内存储器; 当PC值超出片内ROM容量时,即PC值为1000H-FFFFH时,会自动转向片外程序存储器空间执行。,(2) 程序存储器的某些单元被保留用于特定的程序入口地址(中断入口地址)。,/EA引脚接低电平时,迫使系统全部执行片外程序存储器程序。片外程序存储器从0000H开始。,在ROM中,从0003H002BH单元被保留用于6个中断源的中断服务程序的入口地址,故有以下7个特定地址被保留: 复位或非屏蔽中断 0000H 外部中断0 0003H 计时器T0溢出 000BH 外部中断1 0013H 计时器T1溢出 001BH 串行口中断 0023H 计时器T2T2EX下降沿 002BH(8052) 在程序设计时,通常在这些中断入口处设置无条件转移指令,使之转向对应的中断服务程序段处执行。,即固定入口地址法,而8088 CPU采用中断向量法,二、 数据存储器,数据存储器由随机存取存储器RAM构成,用来存放随机数据。 在80C51单片机中,数据存储器又分为片内数据存储器和片外数据存储器两部分。 片内数据存储器最高地址只有8位,因而最大寻址范围为256个字节。,片内数据RAM区:地址空间的低128B; 特殊功能寄存器SFR区:地址空间的高128B。,1、片内数据存储器,寄存器工作组(由RS1、RS0选择),位寻址区(16*8=128位),普通RAM共80个字节,(1)片内数据RAM区 在片内数据RAM区,根据不同的寻址方式又可分 为以下几个区域: 工作寄存器区: 4*8=32字节(00H1FH) 位寻址区:16*8=128位(20H2FH) 字节寻址区:80字节(30H7FH) 堆栈区及堆栈指示器(通常设在字节寻址区): SP复位时为07H, 工作寄存器区(00HlFH),片内数据RAM区的0 31(00HlFH),共4组,每个组包含8个8位寄存器,即R0R7 。,工作寄存器组对现场保护非常方便(中断调用、子程序调用)。,可用SETB或CLR指令对PSW.3(RS0)及PSW.4(RS1)进行置1或清0。,PSW:,SETB PSW.3 CLR PSW.4 ;选择了1组, 位寻址区(20H2FH),片内数据RAM区的3247(20H2FH)的16个字节,共包含16*8=128位,是可位寻址的RAM区。这16个字节,既可进行字节寻址,又可实现位寻址。,SETB 24H.0;“.0”指该字节的第0位。 SETB 20H;因为24H单元第0位的位地址是20H。,注意:按指令区分字节地址和位地址SETB 20H ;此20H为位地址MOV A,20H;此20H为字节地址, 字节寻址区(30H 7FH),从片内数据RAM区的48127(30H7FH),共80个字节单元,可以采用直接字节寻址的方法访问 。,存放功能部件的控制指令、状态或数据的区域。80C51共定义了21个特殊功能寄存器,其名称和字节地址列见下表。,(2) 特殊功能寄存器SFR区,除程序计数器PC和4个通用工作寄存器组外,其余所有的寄存器都在这个地址空间之内 。,地址被8整除的特殊功能寄存器可以进行位寻址。,单片机内所有功能部件的使用都是通过设置特殊功能寄存器而实现的。如定时器0需要设置工作方式TMOD、初值设置TH0和TL0。,程序状态字PSW(Program Stasus Word)是一个逐位定义的8位的寄存器,其内容的主要部分是算术逻辑单元(ALU)的输出。,三、 程序状态字PSW,可以按位访问(字节地址为D0H ) 。,RSl和RS0:工作寄存器组选择控制位F0、F1:用户自定义位,表示累加器A中1的个数是奇数还是偶数:1的个数是奇数,P置位(奇校验);否则,P清除。,1、PSW.0 - P,奇偶标志位:,2、PSW.2 - OV,溢出标志位,3、PSW.6 AC,辅助进位标志位,4、PSW.7 CY,进位标志位,5、PSW.5 F0,用户可使用的通用标志位。F1用法相同。 开机时该位为“0”。,P=0;1的个数为偶数OV=1;AC=0 ;CY=1 ;有进位,P=1;1的个数为奇数OV=0;AC=1 ;CY=1 ;有进位,四、累加器A 、寄存器B、数据指针DPTR,简称ACC或A寄存器。其作用为: 累加器A既是ALU的输入,又是ALU运算结果的存放单元。 CPU中的数据传送大多都通过累加器,如: MOVC A,A十DPTR MOVC A,A十PC,1、 累加器A,2、 B寄存器,B寄存器在乘法和除法指令中作为ALU的输入之一。 乘法中,ALU的两个输入分别为A、B,运算结果存放在AB寄存器对中。A中放积的低8位,B中放积的高8位。 除法中,被除数取自A,除数取自B,商数存放于A,余数存放于B。,是一个16位特殊功能寄存器,其内容是片外RAM(或IO地址)中的某个单元的地址。访问片外RAM必须用间接寻址方式。指令为: MOVX A , DPTR ;读 MOVX DPTR , A ;写,3、数据指针DPTR,DPTR也可作为访问ROM时的基址寄存器。 MOVC A , A + DPTR 变址 基址 JMP A + DPTR DPTR既可以按16位使用,也可分为DPH、DPL两个8位寄存器来使用。如: MOV DPTR, #16位地址 INC DPTR CJNE A, DPL, $ CJNE A, DPH, $,五、堆栈区及堆栈指示器,堆栈指针SP复位时为07H。,堆栈功能有两个:保护断点和保护现场。,子程序调用和中断程序的自动进栈和出栈 堆栈的进栈和出栈的指令(PUSH、POP)操作。,出栈,压栈,压栈时,地址加1,出栈时,地址减1,2.4 CPU时序及时钟电路,一、时钟电路 在80C51单片机内部带有时钟电路。时钟电路由下列几部分组成: 振荡器及定时控制元件 时钟发生器 地址锁存允许信号ALE。,二、时序定时单位时序是用定时单位来说明的。80C51的时序定时单位共有4个,从小到大依次是:节拍,状态,机器周期,和指令周期。,(2) 节拍与状态:一个状态包含两个节拍,其前半周期对应的节拍叫P1,后半周期对应的节拍叫P2。(3) 机器周期:规定一个机器周期的宽度为6个状态,并依次表示为S1 S6。,(1) 时钟周期:即振荡周期。一个时钟周期定义为一个节拍。,(4)指令周期:执行一条指令所需要的时间称为指令周期。它是最大的时序定时单位。80C51的指令周期根据指令的不同,可包含有一、二、三、四个机器周期。,当振荡脉冲频率为12MHZ时,一个机器周期为1s;当振荡脉冲频率为6MHz时,一个机器周期为2 s。,指令的最长执行时间为四个机器周期。,一个机器周期有6个状态,一个状态包括两个节拍,分别记作S1P1,S1P2,S6P2。由于一个机器周期共有12个振荡脉冲周期,因此机器周期就是振荡脉冲的12分频。,ALE的频率为时钟频率的1/6。,6个状态,12个节拍,80C51共有111条指令,按照长度可分为单字节指令,双字节指令和三字节指令。 执行这些指令的周期数目不同,有: 单字节、单机器周期指令 单字节、双机器周期指令 双字节、单机器周期指令 双字节、双机器周期指令 三字节、双机器周期 单字节乘除指令、四机器周期,三、振荡器和时钟电路,1、内部时钟方式:晶振频率1.212M,电容30pf。,2、外部时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论