单片机内存结构Word文档下载推荐.docx

上传人:b****1 文档编号:3784629 上传时间:2023-05-02 格式:DOCX 页数:40 大小:441.16KB
下载 相关 举报
单片机内存结构Word文档下载推荐.docx_第1页
第1页 / 共40页
单片机内存结构Word文档下载推荐.docx_第2页
第2页 / 共40页
单片机内存结构Word文档下载推荐.docx_第3页
第3页 / 共40页
单片机内存结构Word文档下载推荐.docx_第4页
第4页 / 共40页
单片机内存结构Word文档下载推荐.docx_第5页
第5页 / 共40页
单片机内存结构Word文档下载推荐.docx_第6页
第6页 / 共40页
单片机内存结构Word文档下载推荐.docx_第7页
第7页 / 共40页
单片机内存结构Word文档下载推荐.docx_第8页
第8页 / 共40页
单片机内存结构Word文档下载推荐.docx_第9页
第9页 / 共40页
单片机内存结构Word文档下载推荐.docx_第10页
第10页 / 共40页
单片机内存结构Word文档下载推荐.docx_第11页
第11页 / 共40页
单片机内存结构Word文档下载推荐.docx_第12页
第12页 / 共40页
单片机内存结构Word文档下载推荐.docx_第13页
第13页 / 共40页
单片机内存结构Word文档下载推荐.docx_第14页
第14页 / 共40页
单片机内存结构Word文档下载推荐.docx_第15页
第15页 / 共40页
单片机内存结构Word文档下载推荐.docx_第16页
第16页 / 共40页
单片机内存结构Word文档下载推荐.docx_第17页
第17页 / 共40页
单片机内存结构Word文档下载推荐.docx_第18页
第18页 / 共40页
单片机内存结构Word文档下载推荐.docx_第19页
第19页 / 共40页
单片机内存结构Word文档下载推荐.docx_第20页
第20页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机内存结构Word文档下载推荐.docx

《单片机内存结构Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机内存结构Word文档下载推荐.docx(40页珍藏版)》请在冰点文库上搜索。

单片机内存结构Word文档下载推荐.docx

第二部分 教学内容

一、预备知识

1.ROM存储器

ROM(RealOnlyMemory)即只读存储器之意,其特点是在计算机正常运行的情况下CPU对ROM存储器只能进行读操作且断电后信息不会丢失,通常用来存储固定不变的程序和数据,如引导程序、基本输入输出系统程序等。

ROM按其性能可分为以下几类:

(1)掩模工艺ROM

它是由芯片制造厂根据ROM要求存储的信息,制造成固定的半导体掩模版生产的。

一旦制出成品后,其存储的信息只能读出,不能改变。

这种ROM适用于存储固定不变的程序和数据,批量生产时,成本较低。

(2)可一次编程PROM

允许用户对ROM进行一次编程。

(3)可擦除的EPROM

允许用户对ROM进行多次编程,即可擦除。

按擦除的方法不同,可分为紫外线擦除的可擦除可编程序只读存储器EPROM(ErasableProgrammableReadOnlyMemory)和电擦除的电可擦除编程序只读存储器EEPROM(ElectricallyErasableProgrammableReadOnlyMemory)。

(4)Flash存储器

Flash存储器是在20世纪80年代末逐渐发展起来的一种新型不挥发性半导体存储器,它结合了以往EPROM结构简单、密度高和EEPROM在系统的电可擦除性的一些优点,实现了高密度、低成本和高可靠性。

Flash存储器和传统存储器的最大区别在于它是按块(Sector)擦除,按位编程,从而实现了快闪擦除的高速度。

目前它广泛应用于PCBIOS、数字蜂窝电话、汽车领域和微控制器等许多领域。

EPROM、EEPROM、Flash存储器需通过专用的编程器将程序和数据写入其中。

2.51系列单片机ROM空间

由于5l系列单片机的程序计数器PC是16位的,所以能寻址64KB的程序存储器地址范围。

允许用户程序调用或转向64KB的任何存储单元。

在5l系列单片机中根据不同的型号,其程序存储器的形式也有所不同。

例如:

8051单片机在芯片内部设置了4KB掩模版的ROM,8751单片机在芯片内部设置了4KB的EPROM,89C52单片机在芯片内部设置了8KB的Flash存储器,而8031单片机在芯片内部没有设置程序存储器,需要在单片机外部配置EPROM。

51系列单片机的EA引脚为访问内部或外部程序存储器的选择端。

接高电平时,CPU将首先访问内部存储器,当指令地址超过内部存储器的最大地址时,自动转向片外ROM去取指令。

当EA引脚接低电平时(接地),CPU只能访问外部程序存储器。

对于8031单片机,由于其内部无程序存储器,故只能采用这种接法。

51系列单片机程序存储器的地址从0000H开始编址。

程序存储器低端的一些地址被固定地用作特定程序的入口地址:

0000H

0000H:

单片机复位后的程序入口地址;

0001H

0003H:

外部中断0的中断服务程序入口地址;

000BH:

定时器0的中断服务程序入口地址;

:

0013H:

外部中断l的中断服务程序入口地址;

001BH:

定时器1的中断服务程序入口地址;

0023H:

串行端口的中断服务程序入口地址;

002BH:

定时器2的中断服务程序入口地址。

FFFFH

图1.1.1ROM空间示意

编程时,通常在这些入口地址开始的二三个单元中,放人一条转移指令,以使相应的服务与实际分配的程序存储器区域中的程序段相对应(仅在中断服务程序较短时,才可以将中断服务程序直接放在相应的人口地址开始的几个单元中)。

3.源程序汇编与程序定位伪指令

将汇编语言源程序转换为计算机能执行的机器码形式的目标程序的过程叫汇编。

汇编常用的方法有两种:

一是手工汇编,二是利用计算机汇编。

手工汇编时,把程序用助记符指令写出后,通过手工方式查指令编码表,逐个把助记符指令翻译成机器码,然后把得到的机器码程序(以十六进制形式)键入到单片机开发机中,并进行调试。

由于手工汇编是按绝对地址进行定位的,所以,对于偏移量的计算和程序的修改有诸多不便。

通常只有程序较小或条件所限时才使用。

机器汇编是在常用的个人计算机上,使用交叉汇编程序将汇编语言源程序转换为计算机能执行的机器码形式的目标程序。

汇编工作由计算机自动完成。

生成的目标程序由PC机传到开发机上,经调试无误后,再固化到程序存储器ROM中。

机器汇编与手工汇编相比具有极大的优势,是汇编工作的首选。

本教材选用的伟福仿真软件就可进行机器汇编。

伪指令不是单片机执行的指令,没有对应的机器码,仅是用来对汇编过程进行某种控制。

常用的伪指令有:

(1)定位伪指令ORG

格式:

[标号:

]ORGl6位地址

功能:

规定程序块或数据块存放的起始地址。

如:

ORG8000H

START:

MOVA,#30H

该语句规定第一条指令从地址8000H单元开始存放。

标号START的值为8000H。

通常,在一段汇编语言源程序的开始,都要设置一条ORG伪指令来指定该程序在存储器中存放的起始位置。

若省略ORG伪指令,则该程序段从0000H单元开始存放。

在一个源程序中,可以多次使用ORG伪指令,以规定不同程序段或数据段存放的起始地址,但要求16位地址值由

小到大依序排列,不允许空间重叠。

(2)汇编结束伪指令END

]END[表达式]

结束汇编。

汇编程序遇到END伪指令后即结束汇编。

处于END之后的程序,汇编程序不予处理。

(3)字节数据定义伪指令DB

]DB8位字节数据表

从标号指定的地址单元开始,在程序存储器中定义字节数据。

字节数据表可以是一个或多个字节数据、字符串或表达式。

该伪指令将字节数据表中的数据按从左到右的顺序依次存放在指定的存储单元中。

一个数据占一个存储单元。

4.伟福V3.2版仿真软件使用

见附录X

二、实训用程序

ORG0000H

AJMPBEGIN;

转初始化程序段

ORG0003H

LJMPPINT0;

转外部中断0的中断服务程序

ORG0100H

BEGIN:

SETBEA;

初始化程序段

SETBEX0

SETBPX0

SETBIT0

MOVR0,#03H

MOVA,#0A8H

MOV@R0,A

MOVR1,#20H

MOVR2,#31H

MOVR0,#00H

MOVA,@R1

MOVX@R0,A

MOVA,#01H

CLRA

LOOP:

SJMP$

ORG2000H

PINT0:

MOVR0,#00H;

外部中断0的中断服务程序

INCR1

MOVR0,#02H

DJNZR2,NEXT

CLREX0

SJMPDONE

NEXT:

SETBEX0

DONE:

RETI

END

三、实训

将以上实训用程序通过伟福V3.2版仿真软件(或其它51系列单片机仿真软件)输入到计算机中,并以*.ASM文件名保存,然后进行汇编。

汇编成功后,通过伟福V3.2版仿真软件的“窗口(W)→数据窗口(D)→CODE”菜单观察程序存储器(ROM)中的内容,理解“地址”、“指令代码”的概念,并了解51系列单片机程序存储器(ROM)空间的分布特点。

注:

本节实训不要求读者具体读懂上述程序的具体功能。

具体步骤如下:

(1)打开伟福V3.2版仿真软件,选择伟福软件模拟器。

如图1.1.2所示

图1.1.2

(2)选择“文件(F)→新建文件(N)”,输入实训用程序。

如图1.1.3所示

图1.1.3

(3)程序输完后,选择“文件(F)→另存为(A)”,在弹出的对话框中输入带有.ASM后缀新文件名。

按“保存”按钮后,程序就会以带有.ASM后缀的文件形式存储磁盘上。

(注意此时程序中字符会根据伟福仿真软件的设置变色。

)如图1.1.4所示

 

图1.1.4

(4)选择“项目(P)→编译(M)”对源程序进行汇编,如图1.1.5所示。

若无错,则会在模拟的程序存储器中形成机器指令代码。

图1.1.5

(5)选择“窗口(W)→数据窗口(D)→CODE”,观察程序存储器(ROM)中的内容。

如图1.1.6所示

图1.1.6

图1.1.7是在模拟的程序存储器中形成的机器指令代码。

蓝字部分为地址,黑字部分为指令代码。

拖动右侧的滚动条可观察整个程序存储器空间的内容。

图1.1.7

(6)根据图1.1.7窗口数据,填写下列表格。

指令编码起始地址

指令编码

指令助记符

0000H

20H,00H

AJMP0100H

0003H

02H,20H,00H

LJPM2000H

1.2认识51系列单片机的片内随机存储器(片内RAM)

1.认识51系列单片机片内随机存储器(片内RAM)的空间范围;

2.认识51系列单片机片内随机存储器的区域划分;

3.掌握字节地址和位地址的概念;

4.了解R0~R7寄存器与字节地址的关系。

2.伟福V3.2版仿真软件或其它51系列单片机仿真软件。

三、学节奏与方式

重点讲授(片内随机存储器的区域划分)

字节地址和位地址的概念描述

单片机片内随机存储器的空间使用情况观察

1.RAM存储器

RAM(RandomAccessMemory)即随机访问存储器之意,RAM存储器是一种既可读又可写的易失性存储器,其特点是断电后所存储的信息将全部丢失,通常用来暂存运行的程序和数据。

但在单片机应用系统中RAM存储器仅被用来暂存运行的数据。

2.51系列单片机片内随机存储器的区域划分

51系列单片机片内随机存储器根据型号的不同,其存储容量为128B或256B。

典型芯片的容量为128B,被划分为工作寄存器区、位寻址区和通用RAM区等三个区域。

如图1.2.1所示。

其中单片机片内RAM中,最低的32个字节又被分成4个工作寄存器组,每组占8个字节。

即:

寄存器0组:

地址00H一07H;

寄存器1组:

地址08H一0FH;

寄存器2组:

地址10H一17H;

寄存器3组:

地址18H—1FH。

每个工作寄存器组都有8个寄存器,分别称为:

R0,R1,…,R7。

程序运行时,只能有一个工作寄存器组作为当前工作寄存器组。

当前工作寄存器组的选择是由特殊功能寄存器中的程序状态字寄存器PSW的RSl、RS0两位决定的。

可以对这两位进行编程,以选择不同的工作寄存器组。

工作寄存器组与RSl、RS0的关系及地址如表2—l所示。

图1.2.151系列单片机片内RAM区域划分

表2—18051单片机工作寄存器地址表

组号

RS1RS0

R0

R1

R2

R3

R4

R5

R6

R7

00

00H

01H

02H

03H

04H

05H

06H

07H

01

08H

09H

0AH

0BH

0CH

0DH

0EH

0FH

10

10H

11H

12H

13H

14H

15H

16H

17H

11

18H

19H

1AH

1BH

1CH

1DH

1EH

1FH

在工作寄存器区之后的20H~2FH的16个字节为位寻址区,共有128位。

每位都有相应的位地址,范围是00H~7FH。

利用位寻址,可以对被寻址的位进行位操作。

在实际应用中常把各种程序状态标志、位控制变量设在位寻址区内。

对于该区未用到的单元也可以作为通用RAM使用。

位寻址区之后的30H~7FH共80个字节为通用RAM区。

这些单元有两种用途:

其一可以作为数据缓冲器使用;

其二设置堆栈区。

51系列单片机的堆栈一般设在30H~7FH的范围内。

栈顶的位置由SP寄存器指示。

系统复位时SP的初值为07H,在系统初始化时可以重新设置。

3.寻址方式与汇编指令

立即数寻址:

例MOV30H,#20H;

将数据20H送入30H单元中;

直接寻址:

例MOV30H,20H;

将20H单元中的数据送入30H单元中;

间接寻址:

例MOV@R0,30H;

将30H单元中的数据送入以R0寄存器中的内容为地址的存储单元中;

寄存器寻址:

例MOVR0,#20H;

将数据20H送入R0寄存器中;

位寻址:

例SETB00H;

将位地址为00H的位置1。

AJMPBEGIN

ORG0030H

0=>

MOVR1,#11H;

11H=>

MOVR6,#66H;

66H=>

MOVR7,#77H;

77H=>

R7

MOVR0,01H;

将01单元中的数据=>

R0①

MOVR6,07H;

将07单元中的数据=>

R6

SETBRS0;

设置寄存器组为一组,RS1,RS0=01②

MOVR0,00H;

将00单元中的数据=>

寄存器一组中的R0

MOVR1,01H;

寄存器一组中的R1

MOVR7,07H;

寄存器一组中的R7

SETBRS1;

设置寄存器组为三组,RS1,RS0=11③

MOVR6,00H;

寄存器三组中的R6

MOVR7,17H;

将17单元中的数据=>

寄存器三组中的R7

MOV20H,#00H;

20H单元④

MOV2FH,#0FFH;

FFH=>

2FH单元

SETB00H;

位地址00H置“1”⑤

SETB07H;

位地址07H置“1”

CLR78H;

位地址78H清“0”

CLR7FH;

位地址7FH清“0”

MOV31H,#31H;

31H=>

31H单元⑥

MOV32H,#32H;

32H=>

32H单元

CLRRS0;

CLRRS1;

设置寄存器组为0组,RS1,RS0=00

PUSH00H;

将00单元中的数据入栈

MOVSP,#30H;

重新设置栈地址为30H⑧

将00单元中的数据入栈

PUSH01H;

将01单元中的数据入栈⑨

POP00H;

弹出栈顶数据至00单元

POP01H;

弹出栈顶数据至01单元

AJMP$;

1.阅读以上程序,正确理解每一条指令功能。

2.将以上实训用程序通过伟福V3.2版仿真软件(或其它51系列单片机仿真软件)输入到计算机中,并以*.ASM文件名保存,然后进行汇编。

3.汇编成功后,分别将光标移至标记①~⑨所在行,通过伟福V3.2版仿真软件的“执行(R)→设置/取消断点(B)”菜单对标记①~⑨所在行设置断点。

如图1.2.2所示。

4.选择伟福V3.2版仿真软件的“执行(R)→复位(E)菜单。

使程序从第一条指令开始执行。

图1.2.2

5.通过伟福V3.2版仿真软件的“执行(R)→全速执行(R)”菜单,执行到第一个断点处暂停。

6.通过伟福V3.2版仿真软件的“窗口(W)→数据窗口(D)→DATA”菜单,观察指令运行结果。

如图1.2.3和图1.2.4所示。

图1.2.3

图1.2.4

7.填写下表。

体会0组寄存器组与片内RAM地址的关系。

寄存器名

寄存器的地址

寄存器中数据

66H

77H

8.通过伟福V3.2版仿真软件的“执行(R)→全速执行(R)”菜单,执行到第二个断点处暂停。

9.通过伟福V3.2版仿真软件的“窗口(W)→数据窗口(D)→DATA”菜单,观察指令运行结果。

10.填写下表。

体会寄存器与寄存器之间的数据传递。

11.通过伟福V3.2版仿真软件的“执行(R)→全速执行(R)”菜单,执行到第三个断点处暂停。

12.通过伟福V3.2版仿真软件的“窗口(W)→数据窗口(D)→DATA”菜单,观察指令运行结果。

13.填写下表。

体会第一组寄存器组与片内RAM地址的关系。

14.通过伟福V3.2版仿真软件的“执行(R)→全速执行(R)”菜单,执行到第四个断点处暂停。

15.通过伟福V3.2版仿真软件的“窗口(W)→数据窗口(D)→DATA”菜单,观察指令运行结果。

16.填写下表。

体会第三组寄存器组与片内RAM地址的关系。

17.通过伟福V3.2版仿真软件的“执行(R)→全速执行(R)”菜单,执行到第五个断点处暂停。

18.通过伟福V3.2版仿真软件的“窗口(W)→数据窗口(D)→DATA”菜单,观察指令运行结果。

19.填写下表。

体会位寻址空间。

RAM字节地址

字节地址中数据

20H

2FH

FFH

20.通过伟福V3.2版仿真软件的“执行(R)→全速执行(R)”菜单,执行到第六个断点处暂停。

21.通过伟福V3.2版仿真软件的“窗口(W)→数据窗口(D)→DATA”菜单,观察指令运行结果。

22.填写下表。

体会位地址与字节地址的关系。

81H

7EH

23.通过伟福V3.2版仿真软件的“执行(R)→全速执行(R)”菜单,执行到第七个断点处暂停。

24.通过伟福V3.2版仿真软件的“窗口(W)→数据窗口(D)→DATA”菜单,观察指令运行结果。

25.填写下表。

31H

32H

26.通过伟福V3.2版仿真软件的“执行(R)→全速执行(R)”菜单,执行到第八个断点处暂停。

27.通过伟福V3.2版仿真软件的“窗口(W)→数据窗口(D)→DATA”菜单,观察指令运行结果。

28.填写下表。

体会初始栈区的位置

栈顶地址

栈顶中的数据

29.通过伟福V3.2版仿真软件的“执行(R)→全速执行(R)”菜单,执行到第九个断点处暂停。

30.通过伟福V3.2版仿真软件的“窗口(W)→数据窗口(D)→DATA”菜单,观察指令运行结果。

31.填写下表。

体会修改后栈区的位置

00H单元中的数据

01H单元中的数据

30H

32.通过伟福V3.2版仿真软件的“执行(R)→全速执行(R)”菜单,执行到第十个断点处暂停。

33.通过伟福V3.2版仿真软件的“窗口(W)→数据窗口(D)→DATA”菜单,观察指令运行结果。

34.填写下表。

体会利用堆栈进行数据传递

1.3认识51系列单片机的片内特殊功能寄存器

1.认识51系列单片机片内特殊功能寄存器的地址空间范围;

2.掌握51系列单片机片内特殊功能寄存器的字节地址;

3.了解51系列单片机片内特殊功能寄存器的用途;

4.掌握51系列单片机片内特殊功能寄存器的位地址。

常用单片机特殊功能寄存器的功能描述

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2