




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实用标准单片机程序程序存储空间(ROM )和数据存储空间(RAM)详解问题:STC89C52RC单片机:8K字节程序存储空间,512字节数据存储空间,内带2K字节EEPROM存储空间它们分别存的是什么?8K的程序存储空间是存储代码,也就是你写的程序生成的HEX文件的,相当于电脑系统的C盘。512字节相当于内存,存储空间存储变量,像u8 x,y,z,u32 a之类的临时变量掉电后数据丢失。2K eeprom 相当于电脑系统的硬盘,数据写入后掉电不丢失。主要是单片机在运行的过程中写入数据或者读取数据。 像设置的闹铃值,设置好了就不用每次都去设置了,保存在单片机里面,即使掉电了,设置的数据也不会丢失
2、,只需单片机上电再读取就好了。单片机原理及系统结构在此先详细分析51单片的存储器结构和寻址方法,再分析片外存储器的扩展,最后给出设计原理并分析系统结构。文档图一:存储空间分布51单片机存储器结构分析8051单片机的存储器在物理结构上分为程序存储器空间和数据存储器空间,共有4个存储空间:片内程序存储器、片外程序存储器以及片内数据存储器、片外数据存储器空间。这种程序存储和数据存储分开的结构形式被称为哈佛结构。MCS-51使用哈弗结构,它的程序空间和数据空间是分开编址的,即各自有各自的地址空间,互不重叠。所以即使地址一样,但因为分开编址,所以依然要说哪一个空间内的某地址。而ARM (甚至是x86 )
3、这种冯诺依曼结构的 MCU/CPU,它的地址空间是统一并且连续的,代码存储器/RAM/CPU寄存器,甚至PC机的显存,都是统一编址的,只是不同功能的存储器占据不同的地址块, 各自为政。MCS-51单片机存储器的配置特点 内部集成了 4K的程序存储器ROM ; 内部具有256B的数据存储器RAM (用户空间+SFR空间);可以外接64K的程序存储器ROM和数据存储器RAM。从物理结构的角度讲,51单片机的存储系统可以分为四个存储空间:既片内 ROM , RAM和片外 ROM、RAM。从逻辑结构上看(既编程的角度),可以分为三个不同的空间:(1)片内、片外统一编址的 64KB的程序存储器地址空间:
4、 0000HFFFFH(用16 位地址);,其中0000H0FFFH 为片内4KB的ROM 地址空间,1000HFFFFH 为外部 ROM 地址空间;(2)256B的内部数据存储器地址空间( 用8位地址),00HFFH,分为两大部分,其中00H7FH (共128B单元)为内部静态 RAM的地址空间,80HFFH 为特殊功能寄存 器的地址空间,21个特殊功能寄存器离散地分布在这个区域;(3)64KB的外部数据存储器地址空间 (用16位地址):0000HFFFFH ,包括扩展 I/O地址空间。上述4个存储空间地址是重叠的,如图1所示。8051的指令系统设计了不同的数据传送指令以区别这 4个不同的逻
5、辑空间:CPU访问片内、片外 ROM指令用MOVC,访问片 外RAM 指令用 MOVX,访问片内 RAM 指令用 MOV。程序存储器用于存放编好的程序和表格常数。程序通过16位程序计数器寻址,寻址能力为64KB。这使得指令能在64KB的地址空间内任意跳转,但不能使程序从程序存储器空 间转移到数据存储器空间。程序存储器ROM的片内和片外寻址1. 程序存储器ROM用于存放程序、常数或表格。2. 在51单片机中,由引脚 /EA 上的电平选择内、外 ROM : EA=1时,CPU执行片内的4KROM中的 程序;EA=0时,CPU选择片外ROM中的程序。3. 无论是使用片内还是使用片外 ROM,程序的起
6、始地址都是从 ROM的0000H单元开始。4. 尽管系统可以同时具备片内 ROM和外部ROM,但是在一般正常使用情况下,通过 /EA的设定来 选择其一(或者使用内部 ROM,或者使用外部ROM )。5. 如果EA=1 (执行片内程序存储器中程序时):如果程序计数器的指针 PC值超过0FFFH( 4K)时,单 片机就要自动的转向片外的 ROM存储器且从1000H单元开始执行程序(无法使用片外 ROM的低 4K空间)。6. 当程序超过4K时,有两种使用程序存储器 ROM的方法: 设置EA=0,使用外部ROM。从地址=0000H 开始; 设置EA=1,使用内部的4KROM和外部ROM (地址从100
7、0H开始的单元)。FFFFH片外程序存储器(最大64K)EA=0时ROM的便用:EAR时ROM的使用 i1000HOFFFH: OFFFH【单片机内部: 程序存储器:(4Kooooh | I | : coooh8051从片内程序存储器和片外程序存储器取指时的执行速度相同。程序存储器六个特殊的单元:在ROM中有六个单元具有特定功能。0000H单元:复位时程序计数器 PC所指向的单元,因此用来存放程序中的第一条指令;0003H单元:外部中断/INT0的矢量入口地址;000BH单元:定时器T0溢岀中断的矢量入口地址;0013H单元:外部中断/INT1的矢量入口地址;001BH单元:定时器T1的溢岀中
8、断矢量入口地址;0023H单元:串行口接收、传送的中断矢量入口地址。矢量入口单元:在编写中断程序时,写入对应的“跳板指令”0000H0003H000 BH0Q13H001BH0023H0100HLJMPLJMP主程序01 OOH单片机第一条指令的两个特征: 存放在 ROM的0000H单元; 必须是“跳转指令以跳过下面的 5个中断矢量,转到后面的真正的主程序入口0100H单元。ORG 0000H LJMP 0100HORG 0100HSTART: MOV A,#00HEND外部程序存储器:当单片机使用外ROM存储器时(扩展系统),必须设定/EA=0,此时单片机的端口功能就要发生相应的改变:P0、
9、P2作为外部ROM的地址和数据总线;使用引脚/psen信号来选通外部ROM的数据三态输岀外接程痒存储器的总线结构图程序存储器RAM的片内和片外寻址无论在物理上还是逻辑上, 系统中RAM都可分为两个独立空间: 内部和外部RAM。由不同的指令 来访问。1. 访问内部数据存储单元时,使用MOV指令;2. 访问外部数据存储器时,使用 MOVX 指令。内部RAM从功能上将256B空间分为二个不同的块:1. 低 128B 的 RAM 块;2. 高 128B 的 SFR( Special Function Register)块。在低128B的RAM存储单元中又可划分为:1. 工作寄存器区;2. 位寻址区;3
10、. 通用存储数据的“便签区”。高128B的专用寄存器区SFR中仅仅使用了 21寄存器(51系列),其它107个单元不能使用一般的教科书里RAM大小是指默认用户RAM,但是很少有特别说明的C51 :片内用户RAM有128字节(位于片内所有RAM的低128B,高128B是SFR)访问RAM可以使用直接或者间接寻址方式,地址为00H-7FH,在80H-FFH的空间分配给 了 SFR,只能使用直接寻址方式。C52 :片内用户RAM为256字节(位于片内所有RAM的低128B,高128B是SFR和用户 RAM)低128字节(00H-7FH )的访问方式为直接和间接寻址方式;高128字节(地址80H-FF
11、H )只能使用间接寻址方式。SFR的地址也为80H-FFH,但只能使用直接寻址方式。也就是说,C52的高128B是用户RAM和SFR统一编制,共享地址,通过指令的寻址方式 不同来进行区分。MCS-51片内!片外数据存储器示倉图r-IIIFFFFH江.氐h1 i亿访问舛丙RAM2QH单元:FFH111MOV A 20Hh|i1112.坊何片外RAMZOH元;|i b p5価111MOV RO , #20hli t bSFR1iiI斗MCVX A rR0&0Hi存般$展菅片内* +FRAM单元鬧7FHfI1iQ- 1 HilfG4KBOOH-FFHJ址相史金;T斗b|i hm擔1ii1I ii*l
12、 l混乱.所以无论从藏耀或逻辑b l |ii1上,內.HRAM是两亍独空的OOH1i l1存篠空间,bOOCKH片内数据存储嗥曲片外数攜存储半RAV2t6B个宇节64KBC宇节片内RAM低128B字节功能分配图7FH鄴篙常黑黑OCH厂 Iv RAM的低二册?3区2S讴口区SttRAWlZ地址:3OH-7FH孟訂址Hl6t7t20H-2FH.Jtni28可寻址总牛位* 泣址址=OOH-7FH 注扎f立地炒勺字节地址的区剔四*工岸寄存髀区 耳牛区中胃八个工作寄存狂()工作寄存帝区结构图(0区)RAKItib【注壹】:工作寄存器Rn实际上就是RAIJ单元的一記分片内RAIVI中具有双重功能的存储结构
13、图2FH7F7E7D7C7B7A7S7ft/7$7574737271706F6E6D6C6B6A6S63/字节地址1C7666564即62616D6F6E506C6A開CB7酣6554&35251GO4F404C4B4A4Q43474644434241401 3F3E3D3C3B3A3337鷗2524232221时4二2F2&2D2C2B2A281127262524232221201111F1F1D1C1B1A1fl13117151413121110*OF0E0D0C0BCA09OS20H070504030201OD对于数据存储器,分为内部数据存储器(IDATA/RAM )和外部数据存储器(X
14、DATA )两个部分,但这两个存储器就不像 code存储器那样共享地址空间的了。一般的8051芯片,内部 RAM 只有128B,从0x00-0x7F,而从0x80-0xFF 则是SFR( CPU工作寄存器和各 种外设寄存器都在此)的区域。对于8052来说,内部 RAM有256B,所以0x80-0xFF是高128B的RAM在使用。可这部分不是 SFR专用的吗?是 SFR专用,但注意,SFR的访 问只能使用“直接寻址方式”(使用特定的汇编指令来实现),区别就在这里。只有通过直接 寻址访问的地址才是 SFR,否则就是普通的 RAM。至于外扩的RAM (XDATA ),地址也是从OxOOOO-OxFF
15、FF 的,而且这里的 0x0000和内部RAM的0x00是不同的,是完全独立的两个空间。他们的访问方法也是不同的。 MCS-51使用MOVX 指令,来读写 XDATA区。而且,访问 XDATA区,是需要 DPTR寄存器来辅 助的。因为只有 DPTR才能装得下十六位的 XDATA地址。所以说,MCS-51 读写IDATA区的速度是最快的,而且访问方法也是最多的。访问XDATA区的速度相对就要慢很多。用P0 口作地址/数据复用总线,用P2 口的口线作高位地址线,最多可以扩展开关电源模块64KB的存储器。控制信号线包括:使用ALE作为地址锁存的选通信号,以实现低8位地址的锁存;以PSEN信号作为扩展
16、程序存储器的读选通信号;以EA信号作为内、外程序存储器的选择信号;以EA和作为扩展数据存储器和I/O端口的读、写选通信号。执行MOVX指令时,RD和WR信号分别自动有效。片外数据存储器 RAM的读和写由8051的RD(P3.7) 和WR(P3.6)信号控制,而片外程序存储器的输出允许(OE)由读选通PSEN信号控制。但由于控制信号及使用的数尽管片外数据存储器和片外程序存储器共处同一地址空间,据传送指令不同,故不会发生总线冲突。ALEAT39551-PEEN 亘YVE-Jfillf、师.kg 卅 622S6EM)图2数据扩展图由于现在以8051为内核的单片机几乎都带有内部的FLASH程序存储器。如本设计功能2r :內阿軸中要用到的开关电源模块 AT89C51或AT89S51均自带4KB的FLASH程序存储器,有的 单片机带有20KB甚至更大容量的程序存储器。因此在单片机开发中,很少用专门的程序存 储器芯片来扩展外部程序存储器,通常也没有必要。SfiCPU 4kb/tesi器(ROM)忆2为BK)存號器厂小阳)行2有芳牡丫血即弘口壬条LO口线1茶指佥,大韶分为单宁节淆令囚隆用寄仃希卫个可蕭程目孙十数誕&卜卬断况2个优左 (5靖环)个全艰工串行適
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 纵隔占位影像诊断
- 工厂承包货柜方案简单
- 原料检验面试题及答案
- 医院感染病例报告制度与流程
- 脑卒中康复面试题及答案
- 货物类投标技术方案
- 首都机场考试题库及答案
- 机构对外宣传方案模板
- 小儿结核病护理
- 酒店培训内容课件
- 七年级英语下册单词表2025
- 2023-2024学年湖南省娄底一中七年级(下)期中数学试卷 (含解析)
- JJF 1183-2025温度变送器校准规范
- 光伏 安装合同范本
- 上海黄浦老西门项目概念方案设计(260P)
- 金融服务不良体验投诉书范文
- 碳排放与财务绩效-深度研究
- 食品加工安全生产标准化建设流程
- 2025年上海闵行区高三一模高考英语模拟试卷(含答案详解)
- 2025年湖北十堰市竹山县事业单位招聘工作人员89人高频重点提升(共500题)附带答案详解
- GB/T 17145-2024废矿物油回收与再生利用导则
评论
0/150
提交评论