第2章 单片机基本结构及原理._第1页
第2章 单片机基本结构及原理._第2页
第2章 单片机基本结构及原理._第3页
第2章 单片机基本结构及原理._第4页
第2章 单片机基本结构及原理._第5页
已阅读5页,还剩112页未读 继续免费阅读

下载本文档

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

文档简介

1、第第2 2章章 80C5180C51系列单片机基本结构及原理系列单片机基本结构及原理 第第2 2章章 目录目录n2.1 80C512.1 80C51系列单片机的内部结构系列单片机的内部结构 2.1.1 80C51单片机的内部结构 2.1.2 80C51系列单片机的CPU 2.1.3 程序存储器(ROM)和数据存储器(RAM)的区别 2.1.4 单片机时序及有关概念n2.2 80C512.2 80C51系列单片机的引脚功能系列单片机的引脚功能 2.2.1 80C51系列单片机引脚功能 2.2.2 单片机最小系统 2.2.3 三总线结构 第第2 2章章 目录目录n2.3 80C512.3 80C5

2、1单片机的存储器单片机的存储器 2.3.1存储器的空间地址 2.3.2程序存储器 2.3.3数据存储器 2.3.4 80C51特殊功能寄存器(SFR) n2.4 2.4 并行并行I/0I/0口及其应用口及其应用 2.4.1 P0口 2.4.2 P1 口 2.4.3 P2口 2.4.4 P3口 2.4.5 I/O口驱动发光二极管 n2.5 2.5 复位及掉电保护和低功耗复位及掉电保护和低功耗 2.5.1 单片机的复位 2.5.2 掉电保护和低功耗设计2.1 80C512.1 80C51系列单片机的内部结构系列单片机的内部结构n2.1.1 80C512.1.1 80C51单片机的内部结构单片机的内

3、部结构80C51系列单片机基本型芯片内部结构由8个部件组成 中央处理器(CPU) 4KB的片内程序存储器(ROM) 128B的片内数据存储器(RAM) 输入、输出接口(InputOutput,简称I/O口,分为P0口、P1口、P2口和P3口) 可编程的串行接口(UART) 2个16位的定时计数器(T0、T1) 中断系统 特殊功能寄存器(SFR)各部分通过内部总线相连。2.1 80C512.1 80C51系列单片机的内部结构系列单片机的内部结构80C51 单片机的内部结构图2-1 80C51 单片机的内部结构2.1 80C512.1 80C51系列单片机的内部结构系列单片机的内部结构n2.1.2

4、 80C512.1.2 80C51系列单片机的系列单片机的CPUCPU80C51系列单片机的CPU是由运算器和控制器构成的。 运算器主要用来对操作数进行算术、逻辑和位运算。 控制器的主要任务是识别指令,并根据指令的性质控制单片机各功能部件,从而保证单片机各部分能自动协调工作。2.1 80C512.1 80C51系列单片机的内部结构系列单片机的内部结构n2.1.2 80C512.1.2 80C51系列单片机的系列单片机的CPUCPU程序计数器PC是控制器中最基本的寄存器,它实际是一个独立的16位计数器,是不可访问的,即单片机开发人员不可能通过指令修改操作它。程序计数器PC中存放着正在执行指令的下

5、一条指令在程序存储器中存放的首地址。2.1 80C512.1 80C51系列单片机的内部结构系列单片机的内部结构n2.1.2 80C512.1.2 80C51系列单片机的系列单片机的CPUCPUPC的基本工作过程是:CPU读指令时,PC的内容作为所取指令的首地址发送给程序存储器,程序存储器该地址中的指令代码将被执行,同时系统将下一条指令的首地址存入PC,这也是为什么PC被称为程序计数器的原因。2.1 80C512.1 80C51系列单片机的内部结构系列单片机的内部结构n2.1.2 80C512.1.2 80C51系列单片机的系列单片机的CPUCPUPC内容的变化轨迹决定了程序的流程。由于PC是

6、不可访问的,顺序执行程序时自动增加指向下一条指令;执行转移程序、子程序和中断子程序调用时,由运行的指令自动将其内容更改成转向的目标程序地址。程序计数器的计数宽度决定了程序存储器的地址范围。80C51中的PC位数为16位,故可对216B即64KB个单元的程序存储器进行寻址。复位时PC的内容为0000H,说明程序应从程序存储器的0000H单元开始执行。2.1 80C512.1 80C51系列单片机的内部结构系列单片机的内部结构n2.1.3 2.1.3 程序存储器(程序存储器(ROMROM)和数据存储器()和数据存储器(RAMRAM)的区别)的区别程序存储器: 用来存放指令代码的,即用来存放汇编语言

7、或C语言程序编译后的二进制程序代码;数据存储器: 用来存放程序运行中产生的运算结果或随机变量的值。为什么要把程序和数据分离开来呢?为什么不把它们放在一起呢? 这是因为在单片机芯片设计过程中出现了一个棘手的问题。2.1 80C512.1 80C51系列单片机的内部结构系列单片机的内部结构2.1 80C512.1 80C51系列单片机的内部结构系列单片机的内部结构n2.1.3 2.1.3 程序存储器(程序存储器(ROMROM)和数据存储器()和数据存储器(RAMRAM)的区别)的区别 从表中我们会发现所有的存储器都存在速度、易失性和成本之间的博弈。 市场最需要的是速度快、掉电存储且价格便宜的存储器

8、,可是没有一种可以同时完全满足这三条要求。 SRAM成本低、速度快,可是如果我们把程序放进去,掉电后存入其中的程序将全部消失,整个系统完全瘫痪。2.1 80C512.1 80C51系列单片机的内部结构系列单片机的内部结构n2.1.3 2.1.3 程序存储器(程序存储器(ROMROM)和数据存储器()和数据存储器(RAMRAM)的区别)的区别 那FLANSH技术是否可以呢?我们常用的U盘就是采用FLANSH技术的。它虽然掉电不丢失可是擦写速度慢。MRAM技术目前来说成本太高,应该是未来的发展方向。由于ROM和RAM对存储的本质需求有差别,ROM的基本需求首先是掉电存储,RAM的根本要求是快。 因

9、此当今的芯片设计师一般采用的是程序运行中产生的数据及随机变量存储在SRAM中,将程序对应的二进制代码存储在FLANSH存储器中。可见程序和数据并不是理所当然的要分开存储,而是速度、易失性、成本综合利益最大化的结果,当然无论是ROM还是RAM存储容量越大成本越高。2.1 80C512.1 80C51系列单片机的内部结构系列单片机的内部结构n2.1.4 2.1.4 单片机时序及有关概念单片机时序及有关概念时序是表达指令执行中各控制信号在时间上的相互关系。时序是用时间单位来说明的,80C51系列单片机的时序单位共有4个,从小到大依次是:l 振荡周期l 状态周期l 机器周期l 指令周期2.1 80C5

10、12.1 80C51系列单片机的内部结构系列单片机的内部结构n2.1.4 2.1.4 单片机时序及有关概念单片机时序及有关概念1、振荡周期(P)振荡周期也称为晶振周期,用P表示,也称为拍。它就是晶体的振荡周期,或是外部振荡源的脉冲周期,是80C51单片机中最小的时序单位。2、状态周期(S) 振荡脉冲经过二分频后,就得到单片机的时钟信号,把时钟信号的周期称为状态周期或时钟周期,用S表示。 一个状态周期包含两个拍,分别称做Pl和P2,或者前拍和后拍。 状态周期是单片机中最基本的时间单位,在一个状态周期内,CPU仅完成一个最基本的动作。2.1 80C512.1 80C51系列单片机的内部结构系列单片

11、机的内部结构n2.1.4 2.1.4 单片机时序及有关概念单片机时序及有关概念3、 机器周期一个机器周期由6个状态周期(S1S6),也就是12个拍组成,可依次表示为S1P1,S1P2,S2P1,S2P2,S6P1,S6P2。当振荡频率为12 MHz时,一个机器周期为ls;当振荡脉冲频率为6 MHz时,一个机器周期为2s。4、 指令周期 指令周期就是执行一条指令所需要的时间。 指令周期是80C51单片机中最大的时序单位,一般由若干个机器周期组成。 指令不同,所需要的机器周期数也不同,但一条指令的周期应在14个机器周期范围内,每条指令所用的机器周期数详见附录B2.2 80C512.2 80C51系

12、列单片机的引脚功能系列单片机的引脚功能 80C51 80C51系列单片机有系列单片机有5 5种封装:种封装: 40脚双列直插封装(也称DIP封装)方式; 44脚方形封装方式; 48脚DIP封装; 52脚方形封装方式; 68脚方形封装方式。其中大部分学习板(开发板)或实验箱采用的是40脚DIP 封装形式(见图1-1(a))。2.2 80C512.2 80C51系列单片机的引脚功能系列单片机的引脚功能n2.2.1 80C512.2.1 80C51系列单片机引脚功能系列单片机引脚功能图2-3是80C51系列单片机的引脚图(40脚DIP封装)。其中有 2个电源相关引脚 2个外接晶体引脚 4个控制 其他

13、电源 复用引脚 32个IO引脚下面分别叙述这40个引脚的功能。 2.2 80C512.2 80C51系列单片机的引脚功能系列单片机的引脚功能n2.2.1 80C512.2.1 80C51系列单片机引脚功能系列单片机引脚功能图2-380C51系列单片机的引脚图2.2 80C512.2 80C51系列单片机的引脚功能系列单片机的引脚功能n2.2.1 80C512.2.1 80C51系列单片机引脚功能系列单片机引脚功能1、电源引脚(VSS和VCC) VSS(20脚):接地。 VCC(40脚):正常操作接+5 V电源。2、外接晶体引脚(XTALl和XTAL2) XTALl(19脚)和XTAL2(18脚

14、):这两个引脚主要用来构成单片机的时钟电路。时钟电路用于产生单片机工作所需的时钟信号。 时钟信号可以由两种方式产生:内部时钟方式外部时钟方式2.2 80C512.2 80C51系列单片机的引脚功能系列单片机的引脚功能n2.2.1 80C512.2.1 80C51系列单片机引脚功能系列单片机引脚功能2、外接晶体引脚(XTALl和XTAL2)l内部时钟方式 一般单芯片工作的系统常采用内部时钟方式。 内部时钟方式的电路连接方法是:通过单片机的XTALl和XTAL2两端跨接晶体或陶瓷谐振器,就构成了稳定的自激振荡器,其发出的脉冲直接送入内部时钟发生器,如图2-4所示。2.2 80C512.2 80C5

15、1系列单片机的引脚功能系列单片机的引脚功能n2.2.1 80C512.2.1 80C51系列单片机引脚功能系列单片机引脚功能2、外接晶体引脚(XTALl和XTAL2)l内部时钟方式 外接晶振时,C1、C2值通常选择为30PF左右,一般的学习板均采用外接晶体振荡器; 外接陶瓷谐振器时,C1、C2约为47 pF。C1、C2对频率有微调作用,振荡频率范围是1.240MHz。说明:为了减少寄生电容,更好地保证振荡器稳定可靠地工作,谐振器和电容应尽可能安装得与单片机芯片靠近。2.2 80C512.2 80C51系列单片机的引脚功能系列单片机的引脚功能n2.2.1 80C512.2.1 80C51系列单片

16、机引脚功能系列单片机引脚功能2、外接晶体引脚(XTALl和XTAL2)l外部时钟方式 采用外部振荡器,外部振荡脉冲信号由XTAL2端接入后直接送至内部时钟发生器。输入端XTALl应接地,由于XTAL2端的逻辑电平不是TTL的,故建议外接一个上拉电阻。 这种方式适合于多块芯片同时工作,便于同步。2.2 80C512.2 80C51系列单片机的引脚功能系列单片机的引脚功能n2.2.1 80C512.2.1 80C51系列单片机引脚功能系列单片机引脚功能3、控制引脚这四个引脚都有第二功能,在初学阶段极少用到,因此我们给出引脚的两个名称,但只详述第一功能。(1). RESETVPD (9脚):复位信号

17、输入引脚/备用电源输入引脚。当振荡器运行时,在此引脚上出现两个机器周期以上的高电平,将使单片机复位。(2). (29脚):片外程序存储器的选通信号输出引脚。在外部程序存储器取指令(或常数)期间,每一个机器周期两次有效。每当访问外部数据存储器时,这两次有效的信号将不出现。PSEN2.2 80C512.2 80C51系列单片机的引脚功能系列单片机的引脚功能n2.2.1 80C512.2.1 80C51系列单片机引脚功能系列单片机引脚功能3、控制引脚(3).ALE (30脚):地址锁存运行信号输入引脚/编程脉冲输入引脚。当访问外部存储器(包括ROM和RAM)时,80C5l系列单片机采用P0口作为低8

18、位地址输出口,又作为数据输入/输出口。为了使地址与数据不至于混淆,通常P0口先作地址线,再作数据线。ALE(允许地址锁存)与74LS373或74HC573等锁存器配合,将P0口输出的低8位地址锁存,从而实现低8位地址与数据的分离。即使不访问外部存储器,ALE端仍以不变的频率周期性地出现正脉冲信号,此频率为振荡器频率的1/6。因此,它可以用做对外输出的时钟,或用于定时。要注意的是:每当访问外部数据存储器时,将跳过一个ALE脉冲。PROG2.2 80C512.2 80C51系列单片机的引脚功能系列单片机的引脚功能n2.2.1 80C512.2.1 80C51系列单片机引脚功能系列单片机引脚功能3、

19、控制引脚(4). / VPP(31脚):外部程序存储器访问允许控制引脚/片内编程电压输入引脚。为该引脚的第一功能,外部程序存储器访问允许控制端。当端保持高电平时,CPU访问内部程序4KB程序存储器,但在PC值超过0FFFH(标准的80C51单片机内部只有4KB ROM)时,将自动转向访问外部60K(1000HFFFFH)程序存储器。当端保持低电平时,不管是否有内部程序存储器,则只访问外部64K(0000HFFFFH)程序存储器,片内的4KB程序存储器将不起作用。说明:现在的单片机内部都有ROM,因此在电路设计时此引脚始终接高电平。EA2.2 80C512.2 80C51系列单片机的引脚功能系列

20、单片机的引脚功能n2.2.1 80C512.2.1 80C51系列单片机引脚功能系列单片机引脚功能4、 输入输出引脚(P0口、P1口、P2口和P3口)P0口(P0.0P0.7共8条引脚,即3932脚):一般I/O口引脚或数据/低位地址总线复用引脚。 P1口(P1.0P1.7共8条引脚,即l8脚):一般I/O口引脚。P2口(P2.0P2.7共8条引脚,即2128脚):一般I/O口引脚或高位地址总线引脚。P3口(P3.0P3.7共8条引脚,即1017脚):一般I/O口引脚或第二功能引脚。2.2 80C512.2 80C51系列单片机的引脚功能系列单片机的引脚功能n2.2.2 2.2.2 单片机最小

21、系统单片机最小系统所谓最小系统:指单片机正常工作的最基本的外围配置主要包括: 时钟(晶振)电路 复位电路 电源等 图2-6 51单片机最小系统2.2 80C512.2 80C51系列单片机的引脚功能系列单片机的引脚功能n2.2.2 2.2.2 单片机最小系统单片机最小系统 时钟(晶振)电路 利用XTAL1和XTAL2两个引脚外接晶振(晶体振荡器)的内部时钟方式,图中电容器C1和C2的作用是稳定频率和快速起振,电容值为530PF,典型值为30PF,晶振的震荡频率典型值为6MHZ、12MHZ或11.0592MHZ,当系统与PC机通信时常采用11.0592MHZ。 复位电路 设计形式主要包括: 上电

22、复位、按键复位和利用专业的复位芯片进行管理。一般学习板上采用的是按键复位,复杂电路系统一般采用复位芯片进行管理,典型的专用复位芯片如MAX813。2.2 80C512.2 80C51系列单片机的引脚功能系列单片机的引脚功能n2.2.2 2.2.2 单片机最小系统单片机最小系统 表2-2 单片机最小系统元器件列表2.2 80C512.2 80C51系列单片机的引脚功能系列单片机的引脚功能n2.2.3 2.2.3 三总线结构三总线结构什么是单片机的三总线?单片机的引脚除了电源、复位、时钟接入和用户IO口外,其余引脚都是为了实现系统扩展而设置的,这些引脚构成了三总线结构,如图2-7所示。2.2 80

23、C512.2 80C51系列单片机的引脚功能系列单片机的引脚功能n2.2.3 2.2.3 三总线结构三总线结构1、地址总线(AB)地址总线宽度为16位,因此外部存储器直接寻址范围为64 KB。16位地址总线由P0口经地址锁存器提供低8位地址(A0A7),P2口直接提供高8位地址(A8A15)。2、数据总线(DB)数据总线宽度为8位,由P0口提供。3、控制总线(CB)控制总线由P3口的第二功能状态和4根独立控制线RESET, , ,ALE组成。, EAPSEN2.3 80C512.3 80C51单片机的存储器单片机的存储器 单片机在程序存储器中只能存放程序和一些不能更改的常数及单片机在程序存储器

24、中只能存放程序和一些不能更改的常数及表格。表格。 例如:MOV A,#30H,参考附录B可知该指令在ROM中存放为74H 30H的形式,占用两个字节。源操作数30H作为常数就是存放在ROM中的。 单片机在数据存储器中存放变量的初值和中间及最终运算结果。单片机在数据存储器中存放变量的初值和中间及最终运算结果。 例如:MOV A, 30H,该指令中30H是内部RAM的一个地址,其内容是存放在内部RAM30H为地址的单元中,其值可以灵活改变。, 2.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.12.3.1存储器的空间地址存储器的空间地址程序或数据存储器的地址是指:指程序存储

25、器和数据存储器存储单元的编码。举例:举例: 我们可以把程序存储器和数据存储器理解成二座每间宿舍住8人的宿舍楼,宿舍楼的房间号就相当于存储空间地址。 对于标准80C51单片机: 程序存储器那座楼有4K(1K=2101024)个房间,对应共需要4K个房间号标识。 数据存储器那座楼有128个房间,对应需要128个房间号标识。 这两个宿舍楼的大小差别很大哟!, 2.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.12.3.1存储器的空间地址存储器的空间地址 为了方便找到各个宿舍楼具体房间的位置,在生活中我们有一套编号方法。 那么计算机要如何给这些存储器空间编写地址,才能方便CPU

26、找到自己所要的程序语句或数据呢?, 2.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.12.3.1存储器的空间地址存储器的空间地址 我们知道计算机能够表达的不是低电平0就是高电平1。 假设存储器只有两个空间(理解成房间)要编号,我们就用1位二进制数来表示,低电平0表示一个房间,高电平1表示一个房间。 那么意味着CPU只需要用1条线与存储器进行连接即可,通过设置这条线的高低电平就可以找到需要的存储空间,从而找到其内部的程序或数据。, 2.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.12.3.1存储器的空间地址存储器的空间地址那么可以推算:那么可以

27、推算:l如果是2位二进制数就可以表达出4(即22)个房间号,分别是00B 、01B 、10B、11B,CPU与存储器需要2条线连接即可。l如果是3位二进制数就可以表达8(即23)个房间号,分别是000B,001B ,010B,011B,100B,101B,110B,111B,CPU与存储器需要3条线进行连接。l以此类推,4位二进制数就可以表达16(24)个房间号,l那么8条线就可以表达256(28)个房间,ln位二进制数就可以表达2n个房间号,CPU用n条线与存储器连接就可以区别出2n个单元。, 2.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.12.3.1存储器的空间

28、地址存储器的空间地址l80C51单片机内部有4KB(即212)个程序存储器单元 因此,CPU需要用12条内部总线与内部程序存储器连接,正好是4KB。其空间地址范围从低到高为0000H0FFFH;l80C51单片机内部一般有128B的数据存储器,如果对内部数据存储器寻址,需要7条总线进行连接,其地址范围从低到高为00H7FH。l51单片机外部能够扩展程序存储器和数据存储器的容量最大均为64KB,这是由于51单片机的外部地址总线最多可有16根(P0、P2各8根)所限制的,其地址范围为000HFFFFH。, 2.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.12.3.1存储器

29、的空间地址存储器的空间地址80C51单片机存储器空间分布, 2.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.22.3.2程序存储器程序存储器80C51内部有4 KB ROM,片外最多可扩展64 KB ROM,但两者都有0000H0FFFH的共同地址部分,CPU该如何区分呢?CPU的控制器专门提供一个/EA控制信号来区分内部ROM和外部ROM编码相同的地址区0000H0FFFH:当/EA接高电平时,单片机从片内4KB ROM中取指令,而当指令地址超过0FFFH后,就自动地转向片外程序存储器1000H单元取指令。当/EA接低电平时,CPU只从片外ROM取指令。这种接法特别

30、适用于采用早期内部无程序存储器的8031单片机,现在的单片机内部都有自己的ROM,因此引脚一般接高电平。2.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.22.3.2程序存储器程序存储器在程序存储器中,有6个单元具有特殊功能。0000H是所有执行程序的入口地址,80C51复位后,CPU总是从0000H单元开始执行程序其它五个入口地址都与中断相关,如表2-3所示。 表2-3 5个中断源的中断入口地址2.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.32.3.3数据存储器数据存储器数据存储器主要用来存放经常要改变的数值,即变量和中间结果,通常都是由随

31、机存储器RAM(Random Access Memory)构成。RAM从物理空间上一般可以分为片内(单片机内)和片外(单片机外部)两个部分。片内存储器的地址范围是00H7FH,特殊功能寄存器的地址范围是80HFFH。片外数据存储器的地址空间是0000HFFFFH。片外RAM的低位地址区段即00HFFH与内部RAM和SFR单元地址编码重叠,使用时由指令来进行区分,访问内部RAM及特殊功能寄存器采用MOV指令 ,而访问外部RAM用MOVX指令。2.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.32.3.3数据存储器数据存储器80C51数据存储器配置,如图所示。 80C51单

32、片机的内部有128B RAM,地址为00H7FH。按其用途可以分为三个区域:1. 通用工作寄存器区 2. 位寻址区 3. 用户RAM区 2.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.32.3.3数据存储器数据存储器1、 通用工作寄存器区 内部RAM从001FH安排了4组通用寄存器也称为工作寄存器,每组占用8个字节,记为R0R7。 在某一时刻,CPU只能使用其中一组工作寄存器,工作寄存器组的选择由程序状态字寄存器PSW中RS1、RS0两位确定。表2-4 工作寄存器地址表2.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.32.3.3数据存储器数据

33、存储器2、 位寻址区 (1). 什么是位寻址? 位寻址是相对于字节寻址而提出来的。 举例理解:前面我们把单片机的内部数据存储器RAM比喻成宿舍楼 RAM的字节地址就相当于宿舍楼的房间号,80C51单片机内部RAM共有128个单元,也就对应有128个房间号。每个房间包含8个床位,每个床位由低到高命名为07号。但是对于房间号为20H2FH这16个房间的每个床位,80C51都编了唯一的床位号,16个房间包含的128个床位,床位号的编码从00H7FH,这就是单片机内部RAM位寻址区的位地址。2.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.32.3.3数据存储器数据存储器2、

34、位寻址区 (1). 位寻址概念 举个大家熟悉的例子来理解字节寻址和位寻址: 假设某校每周日晚上会要求学生晚10点前必须返校回宿舍,当某床位对应的学生按要求返校回到宿舍,我们认为其状态为高电平“1”,某床位对应的学生没返校,我们将这种状态认为是“0”。一般考勤检查的具体工作老师会分配给学生会的同学去完成。每周都检查完所有的宿舍实在太辛苦,老师有时会采用抽查某个宿舍或某个人的方法,也能起到警示的作用。2.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.32.3.3数据存储器数据存储器2、 位寻址区 字节寻址举例: 老师要单独检查30H这个宿舍同学的返校情况,学生会的同学接到命

35、令后首先要找到这个宿舍,然后把这个宿舍学生的返校情况用8位二进制数表示,呈报给老师,那么这个过程叫作字节寻址。它的特点是通过给出字节所在的地址找到数据。 位寻址举例: 另一种情况是住在20H2FH房间的同学都是一年级的同学,这部分同学年龄比较小,需要特别关注,老师会采用抽查某个人的方法加强管理。但是记住每个学生的名字实在不是件容易的事情,于是老师把这16个房间的128个床位统一编号,每次抽查前,老师给学生会同学的不是某个同学的名字,而是给出一个床位号。那么这个过程就是位寻址,这个位地址单元中的值要么是1表示这个学生在,要么是0表示这个学生未按时返校。2.3 80C512.3 80C51单片机的

36、存储器单片机的存储器n2.3.32.3.3数据存储器数据存储器2、 位寻址区 (2). 位寻址区 80C51单片机的位寻址区占用内部RAM字节地址20H2FH,共16个字节,128位。 位寻址区字节地址和位地址的对应关系如表2-5所示。2.3 80C512.3 80C51单片机的存储器单片机的存储器位寻址区字节地址和位地址的对应关系2.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.32.3.3数据存储器数据存储器2、 位寻址区 (2). 位寻址区 每一位的位地址可以有两种形式:可以直接使用位地址,如内部RAM 20H单元的最低位位地址为00H,20H的最高位为07H;也

37、可以使用“字节地址位序号”来表示,20H.0和20H.7也可以表示内部RAM 20H单元的最低位和最高位的位地址。 2.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.32.3.3数据存储器数据存储器3、 用户RAM区 包括字节地址为30H7FH的区域,这是真正给用户使用的一般RAM区,用户对该区域的访问是按字节寻址的方式进行的。该区域主要用来存放随机数据及运算的中间结果,另外也常把堆栈开辟在该区域中。另外如果在程序中只用到0组工作寄存器,则08H1FH也可被作为一般RAM区使用。2.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.4 80C512.

38、3.4 80C51特殊功能寄存器特殊功能寄存器(SFR)(SFR)1、 21个特殊功能寄存器特殊功能寄存器(Special Function Register),简称SFR,亦称专用寄存器。 它们与片内RAM统一编址,并离散地占据了部分80HFFH单元。未占用的地址单元无定义,用户不能使用,如果对无定义的单元进行读写操作,得到的是随机数,而写入的数据将会丢失。 特殊功能寄存器主要用于管理片内和片外的功能部件如:定时器/计数器、串行口、中断及外部扩展的存储器及芯片等。2.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.4 80C512.3.4 80C51特殊功能寄存器特殊功

39、能寄存器(SFR)(SFR)1、 21个特殊功能寄存器(1). 与运算器相关的寄存器(3个)累加器Acc;寄存器B;程序状态字寄存器PSW。(2).指针类寄存器(3个)堆栈指针SP;数据指针DPTR。(3).与并口相关的寄存器(7个)并行IO口P0、P1、P2、P3;串行口数据缓冲器SBUF;串行口控制寄存器SCON;串行通信波特率倍增寄存器PCON。2.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.4 80C512.3.4 80C51特殊功能寄存器特殊功能寄存器(SFR)(SFR)1、 21个特殊功能寄存器(4).与中断相关的寄存器(2个)中断允许控制寄存器IE;中断

40、优先级控制寄存器IP(5).与定时计数器相关的寄存器(6个)定时计数器 T0的两个8位计数初值寄存器TH0、TL0;定时计数器T1的两个8位计数初值寄存器TH1、TL1;定时计数器的工作方式寄存器TMOD;定时计数器的控制寄存器TCON。2.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.4 80C512.3.4 80C51特殊功能寄存器特殊功能寄存器(SFR)(SFR)表2-6 80C51特殊功能寄存器一览表 寄存器符号 寄存器地址 寄存器名称 寄存器符号 寄存器地址 寄存器名称 *ACC EOH 累加器 A *P3 BOH 端口 3 *B FOH B 寄存器 PCON

41、 87H 电源控制寄存器 *PSW DOH 程序状态字 *SCON 98H 串行控制寄存器 SP 81H 堆栈指针 SBUF 99H 串行数据缓冲器 DPL 82H 数据指针(低 8 位) *TCON 88H 定时/计数控制寄存器 DPH 83H 数据指针(高 8 位) TMOD 89H 定时/计数方式选择寄存器 *IE A8H 中断允许控制寄存器 TL0 8AH TO 低 8 位 *IP D8H 中断优先级设置寄存器 TL1 8BH T0 高 8 位 *P0 80H 端口 O TH0 8CH T1 低 8 位 * P1 90H 端口 1 TH1 8DH T1 高 8 位 *P2 AOH 端口

42、 2 其中带*的寄存器可以进行位寻址。 2.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.4 80C512.3.4 80C51特殊功能寄存器特殊功能寄存器(SFR)(SFR)2、 11个可以位寻址的特殊功能寄存器位地址 在21个特殊功能寄存器中有11个寄存器可以位寻址,在表2-6中符号左边带“*”号的特殊功能寄存器都是可以位寻址的, 这些特殊功能寄存器的特征是地址可以被8整除,下面把可 位寻址的特殊功能寄存器的字节地址及位地址一并列于表2-7中。 由表2-7可知可位寻址的特殊功能寄存器的最低位的位地址与其字节地址相同。2.3 80C512.3 80C51单片机的存储器单

43、片机的存储器2.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.4 80C512.3.4 80C51特殊功能寄存器特殊功能寄存器(SFR)(SFR)2、 11个可以位寻址的特殊功能寄存器位地址访问这些可位寻址的寄存器中各位时,有四种方法。可使用它的位符号,如PSW的最高位符号为CY;可以使用它的位地址,如PSW的最高位位地址为D7H;还可用“寄存器名位序号”来表示,如PSW.7表示PSW寄存器的第7位等;也可以使用“字节地址位序号”来表示,如:PSW的字节地址为D0H,因此其第7位也可写成D0H.7的形式。一般使用位符号可使程序易读。 2.3 80C512.3 80C51

44、单片机的存储器单片机的存储器n2.3.4 80C512.3.4 80C51特殊功能寄存器特殊功能寄存器(SFR)(SFR)3、 五个常用的特殊功能寄存器特殊功能寄存器的应用几乎贯穿80C51系列单片机学习过程的始终,下面介绍5个最常用的特殊功能寄存器。(1).累加器A(2).寄存器B(3).状态字寄存器PSW(4).堆栈指针SP(5).数据指针DPTR2.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.4 80C512.3.4 80C51特殊功能寄存器特殊功能寄存器(SFR)(SFR)3. 五个常用的特殊功能寄存器(1).累加器A 累加器A是一个最常用的8位特殊功能寄存器

45、,它既可用于存放操作数,也可用来存放运算的中间结果。 在80C51单片机中,大部分单操作数指令的操作数就取自累加器。许多双操作数指令中的一个操作数,也取自累加器。 指令系统中A表示累加器,用ACC表示A的符号地址,即ACC在指令中可以替换累加器A的地址E0H。2.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.4 80C512.3.4 80C51特殊功能寄存器特殊功能寄存器(SFR)(SFR)3、 五个常用的特殊功能寄存器(2). 寄存器B 寄存器B是一个8位寄存器,主要用于乘法和除法运算。乘法运算时,B中存放乘数,乘法操作后,乘积的高8位又存于B中;除法运算时,B中存放

46、除数,除法操作后,B又存放余数。在其他指令中,寄存器B可作为一般的寄存器使用,用于暂存数据。2.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.4 80C512.3.4 80C51特殊功能寄存器特殊功能寄存器(SFR)(SFR)3、 五个常用的特殊功能寄存器(3).状态字寄存器PSWPSW是8位寄存器,用于存放程序运行的状态信息,格式如下。CY(PSW7):进位标志,是累加器A的溢出位。加、减法有进位或借位时由硬件置位,否则清零,乘、除法时硬件自动清零。AC(PSW6):辅助进位标志,是低半字节的进位位,加、减法运算中当低4位向高4位进位或借位时,由硬件置位,否则清零。C

47、PU根据AC标志对BCD码的算术运算结果进行调整。 CY AC F0 RSl RS0 OV P D7 D6 D5 D4 D3 D2 D1 D0 2.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.4 80C512.3.4 80C51特殊功能寄存器特殊功能寄存器(SFR)(SFR)3、 五个常用的特殊功能寄存器(3).状态字寄存器PSW CY AC F0 RSl RS0 OV P D7 D6 D5 D4 D3 D2 D1 D0 F0(PSW5):用户标志位,留给用户编程使用的,用户可根据自己的需要用软件方法置位或复位,并根据F0=0或1来决定程序的走向。RSl(PSW4)、

48、RS0(PSW3):工作寄存器组选择位,开发人员用软件改变RSl和RS0的组合,来选择片内RAM中的4组工作寄存器之一,作为当前工作寄存器组。2.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.4 80C512.3.4 80C51特殊功能寄存器特殊功能寄存器(SFR)(SFR)3、 五个常用的特殊功能寄存器(3).状态字寄存器PSW CY AC F0 RSl RS0 OV P D7 D6 D5 D4 D3 D2 D1 D0 OV(PSW2):溢出标志位,当执行算术指令时,由硬件置位或清零,根据计算方法的不同,OV代表的意义也不同, 说明说明: 在有符号数的加、减运算中,当

49、运算结果超出-128+127的范围时,即产生溢出,则OV由硬件自动置1,表示运算结果错误;否则OV由硬件清零,表示运算结果正确。 在无符号数的乘法运算中,当乘积超出255时,OV=1,表示乘积的高8位放在B中,低8位放在A中;若乘积未超出255,则OV=0,表示乘积只放在A中。 在无符号数的除法运算中,当除数为0时,OV=1,表示除法不能进行;否则,OV=0,表示除法可正常进行。2.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.4 80C512.3.4 80C51特殊功能寄存器特殊功能寄存器(SFR)(SFR)3、五个常用的特殊功能寄存器(3).状态字寄存器PSW CY

50、 AC F0 RSl RS0 OV P D7 D6 D5 D4 D3 D2 D1 D0 P(PSW0):奇偶标志位,该位始终跟踪累加器A内容的奇偶性。如果有奇数个“1”,则P置1;否则置0。在80C51系列单片机的指令系统中,凡是改变累加器A中内容的指令均影响奇偶标志位P。2.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.4 80C512.3.4 80C51特殊功能寄存器特殊功能寄存器(SFR)(SFR)3、 五个常用的特殊功能寄存器(4).堆栈指针SP堆栈:在RAM中专门开辟出一片区域按照“先进后出、后进先出”的原则进行存取的区域。SP: 始终指明栈顶元素的地址,8位

51、,可软件设置初值;复位时(SP) = 07H。 堆栈的作用:保护现场和保护断点堆栈包括进栈PUSH direct出栈 POP direct2.3 80C512.3 80C51单片机的存储器单片机的存储器进栈(压栈): 首先SP的内容自动加1,作为将要保存数据的地址,然后将数据存入该地址。特别注意:无论是进栈还是出栈均是对无论是进栈还是出栈均是对栈顶单元栈顶单元进行的进行的已知:(A)=22,(SP)=40H 执行:PUSH ACC ; 则(41H)=22H 40404141565622222.3 80C512.3 80C51单片机的存储器单片机的存储器已知(SP)=41H执行:POP ACC

52、;则 (A)=22H ( SP)=40H出栈:出栈:首先将栈顶数据弹出,然后将SP的值减1。40404141565622222.3 80C512.3 80C51单片机的存储器单片机的存储器n2.3.4 80C512.3.4 80C51特殊功能寄存器特殊功能寄存器(SFR)(SFR)3、 五个常用的特殊功能寄存器(5).数据指针DPTRDPTR:指明访问的数据存储器的单元地址;16位,寻址范围64KB。 DPTR = DPH + DPL,也可单独使用。2.4 2.4 并行并行I/0I/0口及其应用口及其应用 80C51 80C51单片机共有单片机共有4 4个双向的个双向的8 8位并行位并行I/O

53、I/O口,分别记为口,分别记为P0P0,P1P1,P2P2和和P3P3。 这这4 4个端口除了按字节输入输出外,还可以按位寻址,便于位个端口除了按字节输入输出外,还可以按位寻址,便于位控功能的实现。控功能的实现。2.4 2.4 并行并行I/0I/0口及其应用口及其应用n2.4.1 P02.4.1 P0口口P0口是一个双功能的8位并行口,字节地址为80H,位地址为80H-87H。端口的各位具有完全相同但又相互独立的电路结构1、 P0口用作地址数据总线 当80C51外扩存储器或I/O时,P0口作为单片机系统的地址数据总线使用,此时其为真正的双向口。 当作为地址或数据输出时,P0.X(x07)端口的

54、电路结构能够按指令输出相应的高电平或低电平。 当P0口作为地址数据输入时,其各引脚端口在CPU控制下首先呈现高阻抗状态,然后按指令读入引脚上的电平状态。2.4 2.4 并行并行I/0I/0口及其应用口及其应用n2.4.1 P02.4.1 P0口口2、 P0口用作通用I/O口 P0口作为通用的I/O口使用,此时P0口为准双向口,且内部无上拉电阻。(1).P0口用作输出口时:P0口端口的结构可以正常输出低电平,但必须外接上拉电阻才能按指令的要求有高电平输出,如图2-10所示(输出指令:MOV P0,#0FH)。2.4 2.4 并行并行I/0I/0口及其应用口及其应用图2-10 单片机的上拉电阻接法

55、2.4 2.4 并行并行I/0I/0口及其应用口及其应用知识点:知识点:上拉电阻:就是从电源高电平引出的电阻接到输出端,上拉电阻可以将不确定的信号通过一个电阻嵌位在高电平。下拉电阻。同理,只不过要拉到GND上。为什么需要连接上拉电阻?由于单片机P0口内部结构设计的原因,导致其作普通I/O口时,不能够输出高电平,需要外接电阻和电源用硬件设计拉高(或拉低)口线输出高(低)电平。一般我们选择10k的上拉电阻值,接5V电源。上拉电阻选取原则: 1)从节约功耗及芯片灌电流能力考虑应当足够大;电阻大,电流小。 2)从确保足够的驱动电流考虑应当足够小;电阻小,电流大。 3)对于高速电路,过大的上拉电阻可能会

56、导致边沿变平缓。综合考虑:上拉电阻常用值在1K到10K之间选取,下拉同理。2.4 2.4 并行并行I/0I/0口及其应用口及其应用知识点:知识点:排阻:它就是一排电阻图2-11中P0口每个引脚上串连一个电阻,然后在电阻的另一端接5V电源,因为8个引脚接法相同,所以我们把8个电阻的另一端全部连接在一起,这样一来,便共有9个引脚,其中一个称为公共端(a)排阻的外形图 (b)排阻的结构图2.4 2.4 并行并行I/0I/0口及其应用口及其应用知识点:知识点:排阻阻值标号:般在排阻上都标有阻值号,其公共端附近也有明显标记。如阻值号为103和150的排阻代表的阻值分别为:103表示其阻值大小为10 x1

57、03,即10k,若是102其阻值大小为10102,即1k,150为15x100,即15,其他读法都相同。我们有时也会看到标号为1002,1001等。1002表示100 xlO2,即10k,1001表示10010,即lk。3位数表示与4位数表示的阻值读法我们都要会,标号位数不同,其电阻的精度不同,一般地,3位数表示5精度,4位数表示1精度。 还有的标号如:3R0,表示阻值为3,4K7表示阻值为4.7k,R002表示阻值为0.0022.4 2.4 并行并行I/0I/0口及其应用口及其应用n2.4.1 P02.4.1 P0口口2、 P0口用作通用I/O口 (2). P0口作为输入口使用时(需要先执行

58、写“1”操作):执行读引脚指令如: “MOV C,P0.0”读的是P0.0引脚, “MOV A, P0”也是读P0口8根口线的引脚指令, 读引脚指令之前一定要有向P0.0写“1”的指令,即执行指令MOV P0,#0FFH。否则P0口引脚上将永远为低电平,无法正确反映外部设备的输入信号。 注:不是所有P0口在源操作数的指令都表示读入引脚状态。P0口实际存在两种读入方式:“读锁存器”和“读引脚”。凡遇“读取P0口前一状态以便修改后再送出”的情形,都属于“读锁存器”指令,如:而指令“CPL P1.0”则是“读锁存器”。2.4 2.4 并行并行I/0I/0口及其应用口及其应用n2.4.1 P02.4.

59、1 P0口口2、 P0口用作通用I/O口 (2). P0口作为输入口使用时(需要先执行写“1”操作):由于单片机复位后,P0口锁存器自动被置“1”,因此复位后P0口为输入状态时可省略写“1”操作;在读引脚前凡是不能确认P0口状态的,都执行写“1”操作指令是比较稳妥的。 一般情况下,P0口大多作为地址数据复用口使用,这时就不能再作为通用I/O口使用。2.4 2.4 并行并行I/0I/0口及其应用口及其应用n2.4.2 P1 2.4.2 P1 口口P1口是单功能的I/O口,字节地址为90H,位地址为90H97H。P1口只能作为通用的I/O口使用。P1口为准双向口,但内部有上拉电阻。 1、P1口作为

60、输出口时,外部不需要接上拉电阻,端口结构即能够按照指令的要求输出高低电平。2、P1口作为输入口时,由于其端口不呈现高阻抗输入状态,因此为准双向口。仍必须首先执行向锁存器写“1”操作指令(例如:MOV P1,#0FFH),方能正确读入引脚电平状态数据。2.4 2.4 并行并行I/0I/0口及其应用口及其应用n2.4.3 P22.4.3 P2口口P2口是一个双功能口,字节地址为A0H,位地址为A0HA7H。P2口只能作为通用的I/O口使用。P2口为准双向口,但内部有上拉电阻。P2口功能有以下两个方面: 1、作为高8位地址输出线使用时,P2口可以输出外部存储器的高8位地址,与P0口输出的低8位地址一

温馨提示

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

评论

0/150

提交评论