版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本章将以MCS-51系列的8051为典型例子,详细介绍单片机的结构、性能、存储器结构及工作原理等内容。通过对这些内容的掌握,可以起到举一反三、触类旁通的作用。§2.1MCS-51单片机的结构
以8051为例给出的单片机功能方块图如下。由图可见,在这一块芯片上,集成了一台微型计算机的各个部分。其中主要有CPU、存储器、可编程I/O、定时/计数器、串行口等。各部分通过内部总线相连。2023/7/231时钟OSCCPU各种I/O定时器/计数器程序存储器ROM数据存储器RAM中断MCS-51单片机组成框图2023/7/2328051的内部结构展开图128×8RAMRAM地址寄存器P3口P1口P2口P0口锁存器锁存器锁存器锁存器中断控制定时/计数器串行I/O口SP寄存器B累加器A暂存器1暂存器2程序状态字PSW指令寄存器IR指令译码器ID数据指针DPTR缓冲器程序计数器PC增1程序地址寄存器AR定时与控制4K×8ROMALUCPU2023/7/2332.1.1CPU运算器CPU算术/逻辑部件ALU(ArithmeticLogicUnit)累加器ACC
(Accumulator)程序状态字寄存器PSW(ProgramStatusWord)暂存寄存器寄存器B控制器定时控制与条件转移逻辑电路程序计数器PC指令寄存器IR指令译码器ID2023/7/2342.1.28051的片内存储器
8051单片机与一般微机的存储器配置方式很不相同。一般微机通常只有一个逻辑空间,可以随意安排ROM或RAM。访问存储器时,同一地址对应唯一的存储单元,可以是ROM也可以是RAM,并用同类访问指令。而MCS-51则不同:2023/7/2358051在物理结构上设计成程序存储器与数据存储器独立分开的结构:
片内程序存储器4KB(ROM0000H~0FFFH)
片内数据存储器128B(RAM00H~7FH)2.1.38051的I/O端口8051有四个8位并行双向I/O口P0、P1、P2、P3,
一个串行口。2023/7/2362.1.48051的特殊功能寄存器SFR8051内部有21个特殊功能寄存器,分别叫SP、IE、IP、PCON......(与内部RAM统一编址80H~FFH)★§2.2MCS-51单片机的存储器组织8051在物理结构上有四个存储空间:
片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。new2023/7/23764KBROMEA=0EA=10000H0FFFH1000HFFFFH4KBROMFFH80H7FH00HSFRRAM64KBRAM(I/O)0000HFFFFH片内片外片外程序存储器数据存储器2023/7/238
8051在逻辑上,即从用户角度上8051有三个存储空间:
片内外统一编址的程序存储器
片内外不统一编址的数据存储器特殊功能寄存器(片内)★访问这几个不同的逻辑空间时,采用的指令:片内外程序存储器空间----MOVC
片内数据存储器空间和SFR----MOV
片外数据存储器地址空间----MOVX2023/7/239一、程序存储器及地址空间作用--程序存储器用于存放编好的程序和表格常数。①8051片内有4K字节ROM,片外用16位地址线最多可扩展64K字节ROM,两者是统一编址的。★如果EA端保持高电平,8051执行片内前4KB
ROM地址(0000H~0FFFH)中的程序。当寻址范围超过4KB(1000H~FFFFH)时,则从片外存储器取指令。★当EA端保持低电平时,8051的所有取指令操作均在片外程序存储器中进行,这时片外存储器可以从0000H开始编址。2023/7/2310②在程序存储器中,有6个单元具有特殊功能0003H:外部中断0入口。000BH:定时器0溢出中断入口。0013H:外部中断1入口。001BH:定时器1溢出中断入口。0023H:串行口中断入口。
使用时,通常在这些入口地址处存放一条绝对跳转指令,使程序跳转到用户安排的中断程序起始地址,或者从0000H起始地址跳转到用户设计的初始程序上。0000H:
8051复位后,PC=0000H,即程序从0000H
开始执行指令。2023/7/2311二、数据存储器及地址空间数据存储器片外RAM64KB,地址范围0000H~FFFFH片内RAM128B,地址范围00H~7FH使用时只能用MOVX指令访问使用MOV指令访问,可以进行堆栈操作2023/7/2312片内数据存储器空间分布图通用RAM区
(80B)位地址区
(16B)寄存器区4组(32B)7FH寄存器3组寄存器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都有一个
地址,共16×8=128位00H30H2FH20H1FH...2023/7/2313片内数据存储器空间分布图通用RAM区
(80B)位地址区
(16B)7FH寄存器3组寄存器2组寄存器1组寄存器0组寄存器0组寄存器区4组(32B).........RS1、RS0=00R7R6R5R4R3R2R1R000H01H02H03H04H05H06H07H00H30H2FH20H1FH...2023/7/2314片内数据存储器空间分布图通用RAM区
(80B)位地址区
(16B)7FH寄存器3组寄存器2组寄存器1组寄存器0组寄存器1组R7R6R5R4R3R2R1R008H09H0AH0BH0CH0DH0EH0FH寄存器区4组(32B).........RS1、RS0=0100H30H2FH20H1FH...2023/7/2315片内数据存储器空间分布图通用RAM区
(80B)位地址区
(16B)7FH寄存器3组寄存器2组寄存器1组寄存器0组寄存器2组R7R6R5R4R3R2R1R010H11H12H13H14H15H16H17H寄存器区4组(32B).........RS1、RS0=1000H30H2FH20H1FH...2023/7/2316片内数据存储器空间分布图通用RAM区
(80B)位地址区
(16B)7FH寄存器3组寄存器2组寄存器1组寄存器0组寄存器3组R7R6R5R4R3R2R1R018H19H1AH1BH1CH1DH1EH1FH寄存器区4组(32B).........RS1、RS0=1100H30H2FH20H1FH...2023/7/2317片内数据存储器空间分布图通用RAM区
(80B)位地址区
(16B)7FH寄存器3组寄存器2组寄存器1组寄存器0组位地址区20H21H22H23H24H25H26H27H28H29H2AH2BH2CH2DH2EH2FH00H01H02H03H04H05H06H07H08H0FH10H7FH78H70H68H60H58H50H48H40H38H30H28H20H77H6FH67H1FH5FH57H4FH47H3FH37H2FH27H1FH17H........................D7D6D5D4D3D2D1D0.........00H30H2FH20H1FH...2023/7/2318片内数据存储器空间分布图通用RAM区
(80B)位地址区
(16B)00H30H2FH20H1FH7FH寄存器3组寄存器2组寄存器1组寄存器0组通用RAM区............共80个字节,作为一般的数据缓冲区并可设置堆栈区2023/7/2319三、特殊功能寄存器(21个字节)SFR
(SpecialFunctionalRegister)①与ALU相关的(3个)
ARegister(Accumulator):
累加器,通常用A或ACC表示。可字节寻址(E0H),也可位寻址(E0H~E7H)
它是一个寄存器,而不是一个做加法的部件。在运算器做运算时其中一个数一定是在ACC中。
BRegister:暂存寄存器。
暂存寄存器。在做乘、除法时放乘数或除数及结果。
PSW(ProgramStatusWord
):
PSW是8位寄存器,用于作为程序运行状态的标志。这是一个很重要的部件,里面存放了CPU工作时的很多状态,借此,我们可以了解CPU的当前状态,并作出相应的处理。2023/7/2320它的各位功能如下:
当CPU进行各种逻辑操作或算术运算时,为反映操作或运算结果的状态,把相应的标志位置1或清0。这些标志的状态,可由专门的指令来测试,也可通过指令来读出。它为计算机确定程序的下一步进行方向提供依据。PSW寄存器中各位的名称及位置如下所示,下面说明各标志位的作用。D7HD6HD5HD4HD3HD2HD1HD0HCYACF0RS1RS0OVPPSW位地址2023/7/2321
CY:进位标志。
加减运算时,保存最高位进位、借位状态。
AC:半进位标志。
例:78H+97H01111000+10010111100001111
D7HD6HD5HD4HD3HD2HD1H
D0H
CYACF0RS1RS0OVPPSW位地址有进位CY=1没有半进位AY=02023/7/2322
RS1、RS0:工作寄存器组选择位。
00选择工作寄存器0组
01选择工作寄存器1组
10选择工作寄存器2组
11选择工作寄存器3组
P:奇偶校验位,它用来表示累加器A内容中二进制数位
“1”的个数的奇偶性。若为奇数,则P=1,否则为0。例:某运算结果是78H(01111000),P=0。D7HD6HD5HD4HD3HD2HD1H
D0HCY
ACF0
RS1
RS0OV
PPSW位地址2023/7/2323F0:用户标志位。作为软件标志,由编程人员决定何时使用。OV:溢出标志位。有符号数运算时,如果发生溢出,OV置“1”,否则清“0”。D7HD6HD5HD4HD3HD2HD1H
D0HCY
AC
F0RS1RS0
OVPPSW位地址2023/7/2324②与指针相关的(2个)
SP(StackPointer):
堆栈指针,8位寄存器,用来指定堆栈的栈顶位置,初值为07H。它是加1计数.
DPTR(DataPointer)(分成DPH、DPL两个):
数据指针可以用它来访问外部数据存储器中的任一单元,也可以作为通用寄存器来用,由我们自已决定如何使用。2023/7/2325P0、P1、P2、P3:
四个并行输入/输出口的寄存器。它里面的内容对应着管脚的输出。SCON(SerialControlRegister)SBUF
(SerialDateBuffer)PCON(PowerControlRegister)③与端口相关的(7个)④与定时/计数器相关的(6个)TMOD(Timer/CounterModeRegister)
定时器工作模式寄存器。TCON(Timer/CounterControlRegister)
定时器控制寄存器。TH0、TL0、TH1、TL1:分别是T0、T1的记数初值寄存器。2023/7/2326IP(InterruptPriority
Register)IE(InterruptEnableRegister)⑤与中断相关的(2个)2023/7/2327§2.3MCS-51单片机的并行端口结构与操作8051单片机有4个I/O端口,每个端口都是8位准双向口,共占32根引脚。每个端口都包括一个锁存器(即专用寄存器P0~P3)、一个输出驱动器和输入缓冲器。通常把4个端口笼统地表示为P0~P3。2023/7/2328
在无片外扩展存储器的系统中,这4个端口的每一位都可以作为准双向通用I/O端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。
8051单片机4个I/O端口线路设计的非常巧妙,学习I/O端口逻辑电路,不但有利于正确合理地使用端口,而且会给设计单片机外围逻辑电路有所启发。下面简单介绍一下输入/输出端口结构。2.3.1P0口和P2的结构2023/7/2329一、P0口的结构下图为P0口的某位P0.n(n=0~7)结构图,它由一个输出锁存器、两个三态输入缓冲器和输出驱动电路及控制电路组成。从图中可以看出,P0口既可以作为I/O用,也可以作为地址/数据线用。DQCLKQMUXP0.n读锁存器内部总线写锁存器读引脚地址/数据控制VCCT1T2P0口引脚2023/7/23301、P0口作为普通I/O口①输出时CPU发出控制电平“0”封锁“与”门,将输出上拉场效应管T1截止,同时使多路开关MUX把锁存器与输出DQCLKQMUXP0.n读锁存器内部总线写锁存器读引脚地址/数据控制VCCT1T2P0口引脚2023/7/2331驱动场效应管T2栅极接通。故内部总线与P0口同相。由于输出驱动级是漏极开路电路,若驱动NMOS或其它拉流负载时,需要外接上拉电阻。P0的输出级可驱动8个LSTTL负载。DQCLKQMUXP0.n读锁存器内部总线写锁存器读引脚地址/数据控制VCCT1T2P0口引脚2023/7/2332②输入时----分读引脚或读锁存器读引脚:由传送指令(MOV)实现;读锁存器:有专用指令如:ANL
P0,A
下面一个缓冲器用于读端口引脚数据,当执行一条由端口输入的指令时,读脉冲把该三态缓冲器打开,这样端口引脚上的数据经过缓冲器读入到内部总线。DQCLKQMUXP0.n读锁存器内部总线写锁存器读引脚地址/数据控制VCCT1T2P0口引脚2023/7/2333DQCLKQMUXP0.n读锁存器内部总线写锁存器读引脚地址/数据控制VCCT1T2P0口引脚准双向口:
从图中可以看出,在读入端口数据时,由于输出驱动FET并接在引脚上,如果T2导通,就会将输入的高电平拉成低电平,产生误读。所以在端口进行输入操作前,应先向端口锁存器写“1”,使T2截止,引脚处于悬浮状态,变为高阻抗输入。这就是所谓的准双向口。2023/7/23342、P0作为地址/数据总线
在系统扩展时,P0端口作为地址/数据总线使用时,分为:
P0引脚输出地址/数据信息。DQCLKQMUXP0.n读锁存器内部总线写锁存器读引脚地址/数据控制VCCT1T2P0口引脚2023/7/2335CPU发出控制电平“1”,打开“与”门,又使多路开关MUX把CPU的地址/数据总线与T2栅极反相接通,输出地址或数据。由图上可以看出,上下两个FET处于反相,构成了推拉式的输出电路,其负载能力大大增强。DQCLKQMUXP0.n读锁存器内部总线写锁存器读引脚地址/数据控制VCCT1T2P0口引脚2、P0作为地址/数据总线2023/7/2336P0引脚输出地址/输入数据输入信号是从引脚通过输入缓冲器进入内部总线。此时,CPU自动使MUX向下,并向P0口写“1”,“读引脚”控制信号有效,下面的缓冲器打开,外部数据读入内部总线。2、P0作为地址/数据总线----真正的双向口DQCLKQMUXP0.n读锁存器内部总线写锁存器读引脚地址/数据控制VCCT1T2P0口引脚2023/7/2337二、P2的内部结构1.P2口作为普通I/O口DQCLKQMUXP2.n读锁存器内部总线写锁存器读引脚地址控制VCCRTP2口引脚CPU发出控制电平“0”
,使多路开关MUX倒向锁存器输出Q端,构成一个准双向口。其功能与P1相同。2023/7/2338
2.P2口作为地址总线在系统扩展片外程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026 学龄前自闭症早期干预语言课件
- 健康体检质量控制标准(试行)
- 冀教版三年级数学下册期末试题
- 健康饮食知识竞赛题库(附参考答案)
- 2026年防灾减灾科普知识问答(全民版)
- 健康教育宣传工作总结(16篇)
- 广东省惠州市第五中学2026届十校联考最后英语试题含答案
- 企业车辆租赁合同5篇
- 2026春初中心理健康北师大版(2025)七年级下册第三单元 学习运动会《第六课 学习微习惯》教学设计
- 2026 学龄前自闭症教师训练课件
- 2025年一年级语文1-8单元期末考试复习基础知识点默写清单(有答案)
- 辽宁省葫芦岛市2007年数学中考真题【含答案、解析】
- 委托消毒协议书范本
- 2020年全国中心血站上岗考试题库688题含答案
- 资产评估质量控制制度流程
- 2024-2030年版中国尿素行业市场容量预测及投资风险分析报告
- 化工工艺管道施工焊接方案
- 苏教版六年级数学下册第七单元大单元教学设计
- 海鲜采购合同
- 《台湾省的地理环境与经济发展》示范课教学设计【湘教版八年级地理下册】
- 麋鹿麋鹿简介
评论
0/150
提交评论