单片机的存储_第1页
单片机的存储_第2页
单片机的存储_第3页
单片机的存储_第4页
单片机的存储_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、 单片机的功耗单片机的功耗1在时钟频率较高时,如表中的4.0MHz,单片机运算速度较快,相应的1.25mA工作电流比在时钟频率为1.0MHz时的550A工作电流要高。12MHz下的运行功耗达25mA。I/O口驱动功耗口驱动功耗2I/O口都会使能驱动电路去控制功率较大的外设,如蜂鸣器、电机等。根据AT89S51单片机的技术手册,其I/O口的输出电流不能超过15mA。所以在谈I/O口驱动功耗时,我们更多关注的是外设通过驱动电路所消耗的功率。 单片机内部结构单片机内部结构从从I/O口到内部结构口到内部结构3比较一下图(a)和(b),前者显示出4根数据线:读锁存器、内部总线、写锁存器、读管脚。这4根数

2、据线与单片机内部结构中的总线相连。而后者则用一个双向箭头( )来表示这4根数据线,说明锁存器与总线之间的关系。从从I/O口到内部结构口到内部结构4可把整个P1口都抽象出一个结构框图,如图示,其中把8位I/O口的独立结构抽象到了P1口锁存器和P1口驱动两个方框中,这与图7-1所示的P0、P1、P2、P3口结构是一致的。由于I/O口都是双向的,所有的数据线都使用双向箭头。数据在内部交换数据在内部交换5举例:RAM是单片机的随机访问存储器,用于存储运行过程中的数据。假设RAM中地址30H上存储了数据“3CH”,现在单片机执行指令“MOV A,30H”,之后,RAM中地址30H上的数据3CH“跑”到总

3、线上,而累加器A根据指令要求,从总线上接收这个数据,执行完毕后,A=3CH。 单片机的程序存储器单片机的程序存储器整体结构整体结构6程序下载到哪里?程序下载到哪里?7以.HEX为后缀的执行代码文件可通过下载线下载到单片机中(4.4节)。如果用记事本打开执行代码文件会得到一串十六进制数,其中包含了每条指令的执行代码。比如指令“MOV A,#88H”执行代码为“74”、“88”,其他指令都可从附录C中找到相应的执行代码。执行代码通过下载线下载到了单片机的片内ROM中。因为片内ROM中下载的是程序,所以也称这个片内ROM为片内程序存储器。片内程序存储器片内程序存储器8AT89S51单片机的片内程序存

4、储器容量为4K bytes,即41024=4096 bytes。 这4096 bytes片内程序存储器可用地址0000H0FFFH来指向。在我们通过下载线往单片机下载程序时,执行代码将从0000H开始,被依次存储到单片机中。如图示的执行代码,存储到0000H里的是74H,即“0111 0100”;0001H里的是88H,即“1000 1000”。按照这种方法直到程序全部下载完毕,根据程序的长短不同,程序存储器被占用的空间多少也就不同。程序计数器程序计数器PC9程序计数器PC,它用于指示单片机下一条将要执行的代码的地址。当单片机上电复位时,PC=0000H,即指向程序存储器中的0000H,单片机

5、就把0000H上的代码取出执行。之后PC自动增加1,变成0001H,如图示,接着单片机就执行0001H地址上的代码。程序计数器程序计数器PC 黔Liu X由于程序计数器PC是个两个字节(16位)的寄存器,于是受PC的制约,AT89S51单片机最大的寻址范围是0000HFFFFH,共64K bytes。也就是说,除了AT89S51单片机片内的4K bytes程序存储器(地址0000H0FFFH)外,单片机能寻址的外部扩展的程序存储器空间最大为64 K bytes -4 K bytes =60K bytes,即地址1000HFFFFH。是片内还是片外程序存储器是片内还是片外程序存储器?11当 接高

6、电平时,单片机复位时读取片内程序存储器中的程序,即从PC=0000H开始,依次读取0000H0FFFH上的程序。当PC增加到0FFFH时,PC再增加1等于1000H,单片机将自动转到片外程序存储器上执行其中的程序。而当 接低电平时,单片机则完全读取片外程序存储器中的程序,即从片外程序存储器中的0000H开始,依次读取程序来执行。由于受到程序计数器PC的位数限制,读取片内或片外程序存储器的最大地址范围为0000HFFFFH。EA/VPPEA/VPP 单片机的数据存储器单片机的数据存储器片内数据存储器片内数据存储器12玉凤Wang Y 刘湘黔Liu X单片机的数据存储器也有片内和片外之分。片内数据

7、存储器就是单片机中原有的数据存储器,即片内RAM。片内数据存储器可分成三个部分:工作寄存器区、位寻址区、开放区。这三个区都可用来保存单片机运行过程所产生的数据。但片内数据存储器是一个RAM,即随机访问存储器,在掉电后其中的数据将会丢失。片内数据存储器片内数据存储器 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X单片机的1288-bit的片内数据存储器只有其中的2

8、0H7FH共96个字节(开放区+位寻址区)给我们使用的,而00H1FH则是工作寄存器区,一般通过工作寄存器R0R7来使用。AT89S51单片机最大的数据存储器(片内片外)寻址范围也为0000HFFFFH,共64K bytes的空间。工作寄存器区(工作寄存器区(00H 1FH)14工作寄存器共有8个,分别为R0、R1、R2、R3、R4、R5、R6、R7,前面有许多程序已经涉及工作寄存器。这8个工作寄存器可以用来装载1个字节长度的数据,在程序中可视为一个变量来使用,常常用来作为计数值、显示值等。指令“MOV R0,#24H”,把立即数24H装载到工作寄存器R0中。工作寄存器区(工作寄存器区(00H

9、 1FH)15工作寄存器R0R7指向片内数据存储器中的地址,当单片机上电复位时,R0R7映射片内数据存储器的00H07H,即第0组。执行指令“MOV R0,#24H” ,立即数24H装载到R0,实际上被装载到00H地址空间上。执行“MOV R5,#3FH”,那R5映射的片内数据存储器05H地址上即被装载3FH。工作寄存器区(工作寄存器区(00H 1FH)16工作寄存器R0R7除了映射片内数据存储器的地址00H07H外,还可以映射向其余的地址08H1FH。工作寄存器可用不同组别来称呼。工作寄存器区(工作寄存器区(00H 1FH)17AT89551单片机上电复位时工作寄存器默认的组别是第0组,即R

10、0R7映射00H07H。如果想改变当前程序使用的工作寄存器组别,可以通过更改程序状态字PSW中的第3位(RS0)和第4位(RS1)。位寻址区(位寻址区(20H2FH)18片内数据存储器的20H2FH(共16个字节)为位寻址区,这16个字节共有168=128位的空间可进行位寻址。位寻址的意思是可对某一位单独进行操作,比如指令SETB可让位寻址区的任何一位置1,指令CLR可清0位寻址区的任何一位。位寻址区(位寻址区(20H2FH)19在使用位寻址区时,并不是直接操作20H2FH这16个地址,而是用图示的映射地址来完成。假如程序中需要把20H上的B0位清0,就需要操作20H上的B0位所映射的地址00

11、H,于是指令可设计为:“CLR 00H”。再如想把2AH上的B4位置1,指令则为“SETB54H”。开放区(开放区(30H7FH)20片内数据存储器的地址30H7FH是开放给用户使用的空间,用户可以在这段空间里存储单片机运行时产生的数据,也可以读取存储的数据到工作寄存器、累加器等中。例如以下指令实现将累加器A的数据载入33H上,执行过后(33H)=8FH。 单片机的特殊功能寄存器单片机的特殊功能寄存器特殊功能寄存器分布图特殊功能寄存器分布图21AT89S51单片机共有26个特殊功能寄存器,位于地址80H0FFH上。其中有前面使用过的累加器A、程序状态字PSW、P0P3口等。特殊功能寄存器的功能

12、特殊功能寄存器的功能22AT89S51单片机多个内部功能模块如中断控制、Timer0/1、串行口等都由特殊功能寄存器控制。每个特殊功能寄存器的长度都是1个字节,它们的详细介绍将在随后的章节中详细展开。特殊功能寄存器的字节操作特殊功能寄存器的字节操作23操作特殊功能寄存器寄存器的过程,实际就是控制单片机充分发挥自身功能的过程。例如指令“MOV P1,#00H”,这条指令把立即数00H从P1口送出去。P1也是特殊功能寄存器的一份子,它的地址为90H。所以指令“MOV P1,#00H”就是对特殊功能寄存器的操作,会让特殊功能寄存器区的(90H)=00H。以上这种操作我们称为字节操作,因为在执行“MO

13、V P1,#00H”时,P1就像一个符号,实际上立即数是送到P1对应的特殊功能寄存器地址空间上,也就是90H。所以,这和我们往片内数据存储器的开放区某一个地址装载1个字节的数据的过程是一样的。特殊功能寄存器的位操作特殊功能寄存器的位操作24某些特殊功能寄存器还支持位操作,比较常用的是置1指令“SETB”和清0指令“CLR”。例如指令“CLR P2.0”将P2.0清0。执行这条指令后,只有P2.0 =0,之相连的发光二极管点亮。而P2.1P2.7仍然保持原来的状态。支持位操作的特殊功能寄存器:P0(P0口锁存器) P1(P1口锁存器)P2(P2口锁存器)P3(P3口锁存器)ACC(累加器)B(B

14、寄存器)PSW(程序状态字寄存器)TCON(定时/计数器控制寄存器)SCON(串行口控制寄存器) IE(中断使能寄存器)IP(中断优先控制寄存器) 单片机最简系统单片机最简系统25最简系统,是使用最少的外围元器件让单片机能够工作的电路。AT89S51单片机的最简系统如图所示,首先,单片机的VCC、GND接+5V以获得工作电源。此外,还多出了两个部分(阴影框),一个是复位电路,另一个是振荡器。最后还有一个细节,就是单片机的 (31管脚)也接到了+5V上。电源端(电源端(VCC、GND)26AT89S51的VCC(40管脚)和GND(20管脚)分别为电源端和接地端,AT89S51的供电电压范围为直

15、流+4.0+5.5V。电路中所有具有同名的电源标号或网络标号之间是连通的,只是为了电路图的美观,没有把这些连通的节点全部连接起来。 时钟信号端(时钟信号端(XTAL1、XTAL2)27AT89S51单片机的XTAL1端(19管脚)、XTAL2(18管脚)内部有一个片内振荡器结构,但仍然需要在XTAL1和XTAL2之间连接一个晶振Y1,并加上两个容量介于2040pF的电容C1、C2组成时钟电路,如图所示。单片机上电后,用示波器可在XTAL1管脚观察到频率与晶振频率相同的方波信号。时钟信号端(时钟信号端(XTAL1、XTAL2)28像图示这种使用晶振配合产生时钟信号的方法称为内部时钟方式。晶振的频

16、率决定了该系统的时钟频率,比如晶振频率选择12MHz,那么单片机工作的频率就是12MHz。根据系统对速度的要求,一般可以选择1.2MHz12MHz的晶振。通常我们使用12MHz的晶振。 复位端(复位端(RST)29AT89S51单片机的RST端(9管脚)是复位端。当向RST端输入一个短暂的高电平单片机就会复位,复位后单片机从头开始执行程序。如果在单片机执行程序的过程中触发复位,则单片机立即放弃当前操作而被强行从头开始执行程序。最简单的复位电路就是在RST端与电源端之间连接一个10F左右的电解电容。单片机上电瞬间,电容C3的正极电压瞬间变为+5V,C3对于这个瞬间的电压突变相当于短路(隔直通交)

17、,于是+5V(高电平)相当于直接加到了单片机的RST端上。正是这个加在RST端的瞬间高电平使单片机复位。很快,电容C3充满电,在电路中相当于断路,于是RST端电平由高转低,单片机随即开始执行程序。复位端(复位端(RST)30有时,只使用一个电解电容的复位电路可靠性不高,所以图中给出两种较好的复位电路。其中,按钮开关S1可对单片机实现手动复位,当按下S1时,RST端获得复位信号(高电平)而使单片机复位,此时无论单片机在进行什么操作都得乖乖的从头开始执行程序。 外部程序存储器访问控制端外部程序存储器访问控制端31最简系统中,AT89S51单片机的 端(31管脚)接了高电平。这是单片机的外部程序存储器访问控制

温馨提示

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

评论

0/150

提交评论