ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:82.23KB ,
资源ID:10296046      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10296046.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第2章AT89C51的结构和原理.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第2章AT89C51的结构和原理.docx

1、第2章AT89C51的结构和原理第2章 AT89C51的结构和原理 难点 单片机的内部结构 程序状态字PSW 单片机P3口的第二功能 单片机的指令时序 要求掌握: 单片机的引脚信号功能定义 单片机的工作寄存器、PSW及程序存储器中的中断入口地址 单片机各I/O口的特点 单片机的复位电路、时钟电路及指令时序 了解: MCS-51系列单片机的主要型号 单片机的系统结构和内部结构 单片机的低功耗方式 2.1 MCS51系列单片机的结构原理 2.2 MCS51单片机的存储器 2.3 MCS51单片机输入/输出(I/O)口 2.4 单片机的工作方式2.1 MCS51系列单片机的结构原理 2.1.1 MC

2、S-51单片机逻辑结构 MCS-51单片机采用的是冯.诺伊曼提出的经典计算机体系结构框架,即一台计算机是由运算器、控制器、存储器、输入设备和输出设备共五个基本部分组成。MCS-51单片机在一块芯片上集成了CPU、RAM、ROM、定时器/计数器和多功能I/O口等。MCS-51单片机的系统结构框图如图2.1所示。图2.1 MCS-51单片机系统结构框图 由图2.1可以看出,单片机内部主要包含下列几个部件: 一个8位CPU; 一个时钟电路; 4Kbyte程序存储器; 128byte数据存储器; 两个16位定时/计数器; 64Kbyte扩展总线控制电路; 四个8-bit并行I/O端口; 一个可编程串行

3、接口; 五个中断源,其中包括两个优先级嵌套中断。2.1.2 MCS51单片机内部结构 MCS51单片机芯片内部结构框图如图2.2所示。图2.2 MCS51单片机芯片内部结构1. CPU CPU即中央处理器的简称,是单片机的核心部件,它完成各种运算和控制操作,CPU由运算器和控制器两部分电路组成。 (1)运算器电路 运算器电路包括ALU(算术逻辑单元)、ACC(累加器)、B寄存器、状态寄存器、暂存器1和暂存器2等部件,运算器的功能是进行算术运算和逻辑运算。运算电路以ALU为核心单元,可以完成半字节、单字节以及多字节数据的运算操作,其中包括加、减、乘、除、十进制调整等算术运算以及与、或、异或、求补

4、和循环等逻辑操作,运算结果的状态由状态寄存器保存。 (2)控制器电路 控制器电路包括程序计数器PC、PC加1寄存器、指令寄存器、指令译码器、数据指针DPTR、堆栈指针SP、缓冲器以及定时与控制电路等。控制电路完成指挥控制工作,协调单片机各部分正常工作。程序计数器PC用来存放即将要执行的指令地址,它可以完成64K的外部存储器寻址,执行指令时,PC内容的高8位经P2口输出,低8位经P0口输出。数据指针DPTR为16位数据指针,它可以对64K的外部数据存储器和I/O口进行寻址,它的低8位为DPL(地址82H),高8位为DPH(地址为83H)。堆栈指针SP在片内RAM(128字节)中开辟栈区,并随时跟

5、踪栈顶地址,它按先进后出的原则存取数据,上电复位后,SP指向07H。 2. 定时器/计数器 MCS51单片机片内有两个16位的定时/计数器,即定时器0和定时器1。它们可以用于定时控制、延时以及对外部事件的计数和检测等。 3. 存储器 MCS51系列单片机的存储器包括数据存储器和程序存储器,其主要特点是程序存储器和数据存储器的寻址空间是相互独立的,物理结构也不相同。对MCS51系列(8031除外)而言,有4个物理上相互独立的存储器空间:即内、外程序存储器和内、外数据存储器。对于8051其芯片中共有256个RAM单元,其中后128个单元被专用寄存器占用,只有前128个单元供用户使用。 4. 并行I

6、/O口 MCS51单片机共有4个8位的I/O口(P0、P1、P2和P3),每一条I/O线都能独立地用作输入或输出。P0口为三态双向口,能带8个TTL门电路,P1、P2和P3口为准双向口,负载能力为4个TTL门电路。 5. 串行I/O口 MCS51单片机具有一个采用通用异步工作方式的全双工串行通信接口,可以同时发送和接收数据。它具有两个相互独立的接收、发送数据缓冲器,两个缓冲器共用一个地址(99H),发送缓冲器只能写入,不能读出,接收缓冲器只能读出,不能写入。 6. 中断控制系统 MCS51单片机的中断功能较强,以满足控制应用的需要。8051共有5个中断源,即外中断2个,定时/计数中断2个,串行

7、中断1个。所有中断分为高级和低级两个中断优先级。 7. 时钟电路 MCS51芯片内部有时钟电路,但晶体振荡器和微调电容必须外接。时钟电路为单片机产生时钟脉冲序列,振荡器的频率范围为1.2MHz12MHz,典型取值为6MHz。 8. 总线 以上所有组成部分都是通过总线连接起来,从而构成一个完整的单片机。系统的地址信号、数据信号和控制信号都是通过总线传送的,总线结构减少了单片机的连线和引脚,提高了集成度和可靠性。 2.1.3 引脚信号 图2.3为MCS51系列单片机引脚图及逻辑符号,它们为标准的40脚DIP封装。这些引脚的功能描述如下:(a)引脚图 (b)逻辑符号 图2.3 MCS51外形1. 电

8、源引脚Vcc和Vss Vcc:电源端,接5V。 Vss:接地端。 通常在Vcc和Vss引脚之间接0.1高频滤波电容。 2. 时钟电路引脚XTAL1和XTAL2 XTAL1:接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,若使用外部TTL时钟时,该引脚必须接地。 XTAL2:接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出,若使用外部TTL时钟时,该引脚为外部时钟的输入端。 3. 地址锁存允许ALE 在系统扩展时,ALE用于控制地址锁存器锁存P0口输出的低8位地址,从而实现数据与低位地址的复用。当单片机上电正常工作后,ALE端就周期性地以时钟频率的1/6的固定频率向外

9、输出正脉冲信号,ALE的负载能力为8个LSTTL器件。 4. 外部程序存储器读选通信号 是读外部程序存储器的选通信号,低电平有效。CPU从外部存储器取指令时,它在每个机器周期中两次有效。 5. 程序存储器地址允许输入端 /VPP 当 为高电平时,CPU执行片内程序存储器指令,但当PC中的值超过0FFFH时,将自动转向执行片外程序存储器指令。当 为低电平时,CPU只执行片外程序存储器指令。对于8031,由于其无片内ROM,故 必须接低电平。 6. 复位信号RST 该信号高电平有效,在输入端保持两个机器周期的高电平后,就可以完成复位操作。此外,该引脚还有掉电保护功能,若在该端接5V备用电源,在使用

10、中若Vcc掉电,可保护片内RAM中信息不丢失。 7. 输入/输出口引脚P0、P1、P2和P3 P0口(P0.0P0.7):该端口为漏极开路的8位准双向口,负载能力位8高LSTTL负载,它为8位地址线和8位数据线的复用端口。 P1口(P1.0P1.7):它是一个内部带上拉电阻的8位准双向I/O口,P1口的驱动能力为4个LSTTL负载。 P2口(P2.0P2.7):它为一个内部带上拉电阻的8位准双向I/O口,P2口的驱动能力也为4个LSTTL负载。在访问外部程序存储器时,它作存储器的高8位地址线。 P3口(P3.0P3.7):P3口同样是内部带上拉电阻的8位准双向I/O口,P3口除了作为一般的I/

11、O口使用之外,其还具有特殊功能。2.2 MCS51单片机的存储器 MCS51的存储器结构与常见的微型计算机的配置方式不同,它把程序存储器和数据存储器分开,各有自己的寻址系统、控制信号和功能。程序存储器用来存放程序和始终要保留的常数,数据存储器通常用来存放程序运行中所需要的常数或变量。MCS51的存储器结构如图2.4所示。在本节中我们将对单片机的内部数据存储器、内部程序存储器和外部存储器分别作一介绍。图2.4 MCS51存储器配置2.2.1 内部数据存储器 对于8051单片机,其内部共有256个数据存储器单元,其中低128字节(00H7FH)为真正的用户RAM区,其空间分配如图2.5所示;高12

12、8字节(80HFFH)为特殊功能寄存器区。1. 内部数据存储器低128单元 在低128字节存储单元中,前32个单元(00H1FH)作为工作寄存器使用,这32个寄存器分作4组,每组由8个通用寄存器(R0R7)组成,组号依次为0、1、2和3。通过对程序状态字中RS1和RS0的设置,可以决定选用哪一组工作寄存器,通常没有选中的单元也可作为一般的数据缓存使用。系统上电复位时,默认选中第0组寄存器。在表2-1中给出了工作寄存器地址表。 表2-1 工作寄存器地址表 组号 RS1 RS0 R0 R1 R2 R3 R4 R5 R6 R7 0 0 0 00H 01H 02H 03H 04H 05H 06H 07

13、H 1 0 1 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 2 1 0 10H 11H 12H 13H 14H 15H 16H 17H 3 1 1 18H 19H 1AH 1BH 1CH 1DH 1EH 1FH 工作寄存器中R0和R1可以进行直接寻址或间接寻址,而R2R7只可以进行直接寻址。通用寄存器为CPU提供了数据就近存取的便利,大大提高了单片机的处理速度。 在工作寄存器后的16个数据单元(20H2FH),它们既可以作为一般的数据单元使用,由可以按位对每个单元进行操作,因此这16个数据单元又称作位寻址区。位寻址区共计128位,其位地址为00H0FH,位地址表如表2-2。

14、表2-2 内部RAM位寻址区的位地址 单元地址 MSB(最高有效位) 位地址 LSB (最低有效位) 2FH 7FH 7EH 7DH 7CH 7BH 7AH 79H 78H 2EH 77H 76H 75H 74H 73H 72H 71H 70H 2DH 6FH 6EH 6DH 6CH 6BH 6AH 69H 68H 2CH 67H 66H 65H 64H 63H 62H 61H 60H 2BH 5FH 5EH 5DH 5CH 5BH 5AH 59H 58H 2AH 57H 56H 55H 54H 53H 52H 51H 50H 29H 4FH 4EH 4DH 4CH 4BH 4AH 49H 4

15、8H 28H 47H 46H 45H 44H 43H 42H 41H 40H 27H 3FH 3EH 3DH 3CH 3BH 3AH 39H 38H 26H 37H 36H 35H 34H 33H 32H 31H 30H 25H 2FH 2EH 2DH 2CH 2BH 2AH 29H 28H 24H 27H 26H 25H 24H 23H 22H 21H 20H 23H 1FH 1EH 1DH 1CH 1BH 1AH 19H 18H 22H 17H 16H 15H 14H 13H 12H 11H 10H 21H 0FH 0EH 0DH 0CH 0BH 0AH 09H 08H 20H 07H 0

16、6H 05H 04H 03H 02H 01H 00H 在内部RAM的低128个单元中,剩余的80个数据单元即30H7FH为真正的用户RAM区,对于这些区域,用户只能以存储单元的形式来使用,通常在应用中也把堆栈开辟在这段区域。2. 内部数据存储器高128单元 内部数据存储器的高128个单元是为专用寄存器提供的,因此该区也称作特殊功能寄存器区(SFR),它们主要用于存放控制命令、状态或数据。除去程序计数器PC外,还有21个特殊功能寄存器,其地址空间为80HFFH,特殊功能寄存器见表2-3。这21个寄存器中有11个特殊功能寄存器具有位寻址能力,它们的字节地址刚好能被8整除。下面将对部分专用寄存器作简

17、要介绍。表2-3 MCS51单片机特殊功能寄存器表 符 号 名 称 地 址 *ACC 累加器 E0H *B B寄存器 F0H *PSW 程序状态字 D0H SP 栈指针 81H DPTR 数据指针(DPH,DPL) 83H, 82H *P0 P0口锁存寄存器 80H *P1 P1口锁存寄存器 90H *P2 P2口锁存寄存器 A0H *P3 P3口锁存寄存器 B0H *IP 中断优先级控制寄存器 B8H *IE 中断允许控制寄存器 A8H TMOD 定时/计数器工作方式、状态寄存器 89H +*T2CON 定时/计数器2控制寄存器 C8H *TCON 定时/计数器控制寄存器 88H TH0 定

18、时/计数器0(高字节) 8CH TL0 定时/计数器0(低字节) 8AH TH1 定时/计数器1(高字节) 8DH TL1 定时/计数器1(低字节) 8BH +TH2 定时/计数器2(高字节) CDH +TL2 定时/计数器2(低字节) CCH +RCAP2H 定时/计数器2记录寄存器(高字节) CBH +RCAP2L 定时/计数器2记录寄存器(低字节) CAH *SCON 串行口控制寄存器 98H SBUF 串行数据缓冲寄存器 99H PCON 电源控制寄存器 97H 注:凡是“*”号的特殊功能寄存器既可按位寻址,也可直接按字节寻址,凡是标有“+”号的特殊功能寄存器仅8032/8052型才有

19、。 累加器ACC累加器为8位寄存器,是程序中最常用的专用寄存器,在指令系统中累加器的助记符为A。大部分单操作数指令的操作取自累加器,很多双操作数指令的一个操作数也取自累加器。加、减乘和除等算术运算指令的运算结果都存放在累加器A或AB寄存器中,在变址寻址方式中累加器被作为变址寄存器使用。在MCS51中由于只有一个累加器,而单片机中的大部分数据操作都是通过累加器进行的,故累加器的使用是十分频繁的。 B寄存器B寄存器为8位寄存器,主要用于乘除指令中。乘法指令的两个操作数分别取自累加器A和寄存器B,其中B为乘数,乘法结果的高8位存放于寄存器B中。除法指令中,被除数取自A,除数取自B,除法的结果商数存放

20、于A,余数存放于B中。在其它指令中,B寄存器也可作为一般的数据单元来使用。 程序状态字PSW程序状态字是一个8位寄存器,它包含程序的状态信息。在状态字中,有些位状态是根据指令执行结果,由硬件自动完成设置的,而有些状态位则必须通过软件方法设定。PSW中的每个状态位都可由软件读出,PSW的各位定义如表2.4。表2.4 PSW的各状态位定义 位 序 PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0 位标志 CY AC F0 RS1 RS0 OV / P (1) CY:进位标志位在执行某些算术和逻辑指令时,可以被硬件或软件置位或清零。在算术运算中它可作为进

21、位标志,在位运算中,它作累加器使用,在位传送、位与和位或等位操作中,都要使用进位标志位。(2) AC:辅助进位标志进行加法或减法操作时,当发生低四位向高四位进位或借位时,AC由硬件置位,否则AC位被置“0”。在进行十进制调整指令时,将借助AC状态进行判断。(3) F0:用户标志位该位为用户定义的状态标记,用户根据需要用软件对其置位或清零,也可以用软件测试F0来控制程序的跳转。 (4) RS1和RS0:寄存器区选择控制位该两位通过软件置“0”或“1”来选择当前工作寄存器区,RS1和RS0的选择见表2.2。(5) OV:溢出标志位当执行算术指令时,由硬件置位或清零来指示溢出状态。在带符号的加减运算

22、中,OV1表示加减运算结果超出了累加器A所能表示的符号数有效范围(128127),即运算结果是错误的,反之,OV0表示运算正确,即无溢出产生。无符号数乘法指令MUL的执行结果也会影响溢出标志,若置于累加器A和寄存器B的两个数的乘积超过了255,则OV1,反之OV0。由于乘积的高8位存放于B中,低8位存放于A中,OV0则意味着只要从A中取得乘积即可,否则要从BA寄存器对中取得乘积结果。 在除法运算中,DIV指令也会影响溢出标志,当除数为0时,OV1,否则OV0。(6) P:奇偶标志位每个指令周期由硬件来置位或清零用以表示累加器A中1的个数的奇偶性,若累加器中1的个数为奇数则P1,否则P0。 数据

23、指针DPTR数据指针DPTR为一个16位的专用寄存器,其高位用DPH表示,其低位用DPL表示,它即既可以作为一个16位的寄存器来使用,也可作为两个8位的的寄存器DPH和DPL使用。DPTR在访问外部数据存储器时既可用来存放16位地址,也可作地址指针使用。如MOVX DPTR,A。 I/O端口P0P3P0P3为四个8位的特殊功能寄存器,分别是四个并行I/O端口的锁存器,当I/O端口的某一位用作输入时,对应的锁存器必须先置“1”。 定时器/计数器在MCS51中,除8032/8052外都只有两个16位定时器/计数器T0和T1,它们由两个相互独立的8位寄存器组成TH和TL,共有四个独立的寄存器TH0、

24、TL0、TH1和TL1,只可对这四个寄存器独立寻址,而不能作为一个16位寄存器来寻址。 串行数据缓冲寄存器串行数据缓冲器SBUF用于存放将要发送或已接收的数据,它由发送缓冲器和接收缓冲器组成,将要发送的数据被送入SBUF时进入发送缓冲器,反之进入接收缓冲器。2.2.2 外部数据存储器 在MCS51中,其片外数据存储器和I/O口与片内数据存储器空间0000FHFFFFH是重叠的。在8051单片机中采用MOV和MOVX两种指令来区分片内外RAM空间,其中片内RAM使用MOV指令,片外RAM和I/O口使用MOVX指令。2.2.3 程序存储器 在MCS51系列中,程序存储器被用来存放程序、常数或表格等

25、。在8051中,其片内有4K字节的ROM存储单元,地址为0000H0FFFH。8751有4K字节的EPROM,而8052和8752则有8K字节的片内存储器。8031和8032无片内程序存储器,所以片内程序存储器的有无是区分芯片的主要标志。对于8051和8751除了片内的4K字节的程序存储器外,片外还有16位地址扩展总线扩展64K字节的程序存储器,两者统一进行编址,当 接“1”时,片内程序存储器占用0000H0FFFH,故外部程序存储器寻址范围为1000HFFFFH。当 接“0”时,MCS51单片机均从片外存储器取指,这时片外程序存储器可以从0000H开始编址,对于8031和8032由于无片内程

26、序存储器,它们的 端必须接“0”。在程序存储器中,以下6个单元具有特殊含义:0000H:单片机复位后,PC0000H,程序从0000H开始执行指令。 0003H:外部中断0入口地址。 000BH:定时器0中断入口地址。 0013H:外部中断1入口地址。 001BH:定时器1中断入口地址。 0023H:串行口中断入口地址。在系统中断相应之后,将自动转各中断入口地址处执行程序,而中断服务程序一般无法存放于几个单元之内,因此在中断入口地址处往往存放一条无条件转移指令进行跳转,以便执行中断服务程序。2.3 MCS51单片机输入/输出(I/O)口 在MCS51单片机中有4个双向的8位I/O口P0P3,在

27、无片外存储器的系统中,这四个I/O口的每一位都可以作为准双向通用I/O口使用。在具有片外存储器的系统中,P0口作为地址线的低8位以及双向数据总线,P2口作为高8位地址线。这4个口除了按字节寻址外,还可以按位寻址。2.3.1 P0口 图2.6给出了P0口的逻辑结构,它由一个锁存器、两个三态输入缓冲器、一个多路复用开关以及控制电路和驱动电路等组成。图2.6 P0口位结构 P0口可以作为输入输出口,在实际应用中它通常作为地址/数据复用总线。在访问外部存储器时,P0口为真正的双向口。由图2.6,当P0口输出地址/数据信息时,此时控制信号为高电平“1”,模拟开关MUX将地址/数据线与场效应管T2接通,同

28、时与门输出有效,于是输出的地址/数据信息通过与门后将去驱动T1,同时通过反相器后驱动T2。若地址/数据线为“1”,则T1导通,T2截止,P0口输出为“1”,反之T1截止,T2导通,P0口输出为“0”。当数据从P0口输入时,读引脚使三态缓冲器打开,端口上的数据经缓冲器后送到内部总线。 当P0口作为通用I/O口时,CPU向端口输出数据,此时MUX开关与锁存器的 相连,写信号与触发器的时钟线相连,于是内部总线上的数据经反相后出现在 端,再经T2反相后输出到P0端口,输出数据经过两次倒相后相位不变,但是由于T2为漏极开路输出,故此时必须外接上拉电阻。 当P0口作输入时,由于信号即加载在T2上由被送入三

29、态缓冲器,若该接口此前刚锁存过数据“0”,则T2是导通的,T2的输出被钳位在“0”电平,此时输入的“1”无法读入,所以当P0口作为通用I/O口时,在输入数据前,必须向端口写“1”,使T2截止。不过当在访问外部存储器时,CPU会自动向P0口写“1”。 有时我们需要先将端口的数据读入,经过修改后再输出到端口,如果此时P0口的负载正好是晶体管的基极,并且其输出为“1”,这必然导致该引脚为低,若此时读取引脚信号,则会将刚输出的“1”误读为“0”,为了避免这类误读的错误,于是单片机还提供了读锁存器的功能。例如执行 INC P0时,CPU先读P0锁存器中数据,然后再执行加1操作,最后将结果送回P0口。这样单片机从结构上满足了“读修改

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1