第一章认识51系列单片机存储空间计算机的应用是一个系统,这个系统应由两部分组成――硬件和软件。
硬件是指具体的元器件、电路等,软件则是指程序和数据。
如果説硬件是计算机应用系统的基础的话,那么软件则是计算机应用系统的灵魂。
计算机原理告诉我们程序和数据是被“装载”在计算机存储器中的,从某种意义上讲,认识一个计算机的存储器系统是开发软件所必须的。
为了全面认识51系列单片机的存储空间,本章列出四个实训单元。
在进行完本章列出的四个实训单元后,要求读者应全面了解51系列单片机的程序存储器(ROM)、片内随机存储器(片内RAM)和片外随机存储器(片外RAM)空间的范围、用途和使用方法等。
1.1认识51系列单片机的程序存储器(ROM)第一部分教学要求一、目的要求1.认识51系列单片机的程序存储器(ROM)的空间范围;2.认识汇编指令编码在ROM中存储形式;3.掌握指令编码和指令编码所在地址的概念;4.了解51系列单片机的程序存储器(ROM)固定地址的用途。
二、实训平台1.PC机,台/人;2.伟福V3.2版仿真软件或其它51系列单片机仿真软件四、成绩评定(注:成绩评定等级:优良、及格、不及格)第二部分教学内容一、预备知识1.ROM存储器ROM(Real Only Memory)即只读存储器之意,其特点是在计算机正常运行的情况下CPU对ROM 存储器只能进行读操作且断电后信息不会丢失,通常用来存储固定不变的程序和数据,如引导程序、基本输入输出系统程序等。
ROM按其性能可分为以下几类:(1)掩模工艺ROM它是由芯片制造厂根据ROM要求存储的信息,制造成固定的半导体掩模版生产的。
一旦制出成品后,其存储的信息只能读出,不能改变。
这种ROM适用于存储固定不变的程序和数据,批量生产时,成本较低。
(2)可一次编程PROM允许用户对ROM进行一次编程。
(3)可擦除的EPROM允许用户对ROM进行多次编程,即可擦除。
按擦除的方法不同,可分为紫外线擦除的可擦除可编程序只读存储器EPROM(Erasable Programmable Read Only Memory)和电擦除的电可擦除编程序只读存储器EEPROM(Electrically Erasable Programmable Read Only Memory)。
(4)Flash存储器Flash存储器是在20世纪80年代末逐渐发展起来的一种新型不挥发性半导体存储器,它结合了以往EPROM结构简单、密度高和EEPROM在系统的电可擦除性的一些优点,实现了高密度、低成本和高可靠性。
Flash存储器和传统存储器的最大区别在于它是按块(Sector)擦除,按位编程,从而实现了快闪擦除的高速度。
目前它广泛应用于PCBIOS、数字蜂窝电话、汽车领域和微控制器等许多领域。
EPROM、EEPROM、Flash存储器需通过专用的编程器将程序和数据写入其中。
2.51系列单片机ROM空间由于5l系列单片机的程序计数器PC是16位的,所以能寻址64KB的程序存储器地址范围。
允许用户程序调用或转向64KB的任何存储单元。
在5l系列单片机中根据不同的型号,其程序存储器的形式也有所不同。
例如:8051单片机在芯片内部设置了4 KB掩模版的ROM, 8751单片机在芯片内部设置了4 KB的EPROM,89C52单片机在芯片内部设置了8 KB的Flash存储器,而8031单片机在芯片内部没有设置程序存储器,需要在单片机外部配置EPROM。
51系列单片机的EA引脚为访问内部或外部程序存储器的选择端。
接高电平时,CPU将首先访问内部存储器,当指令地址超过内部存储器的最大地址时,自动转向片外ROM去取指令。
当EA引脚接低电平时(接地),CPU只能访问外部程序存储器。
对于8031单片机,由于其内部无程序存储器,故只能采用这种接法。
51系列单片机程序存储器的地址从0000H开始编址。
程序存储器低端的一些地址被固定地用作特定程序的入口地址: 0000H0000H:单片机复位后的程序入口地址; 0001H0003H:外部中断0的中断服务程序入口地址;000BH:定时器0的中断服务程序入口地址; : :0013H:外部中断l的中断服务程序入口地址; : :001BH:定时器1的中断服务程序入口地址;0023H:串行端口的中断服务程序入口地址;002BH:定时器2的中断服务程序入口地址。
FFFFH图 1.1 ROM空间示意编程时,通常在这些入口地址开始的2、3个单元中,放入一条转移指令,以使相应的服务与实际分配的程序存储器区域中的程序段相对应(仅在中断服务程序较短时,才可以将中断服务程序直接放在相应的入口地址开始的几个单元中)。
3.源程序汇编与程序定位伪指令将汇编语言源程序转换为计算机能执行的机器码形式的目标程序的过程叫汇编。
汇编常用的方法有两种:一是手工汇编,二是利用计算机汇编。
手工汇编时,把程序用助记符指令写出后,通过手工方式查指令编码表,逐个把助记符指令翻译成机器码,然后把得到的机器码程序(以十六进制形式)键入到单片机开发机中,并进行调试。
由于手工汇编是按绝对地址进行定位的,所以,对于偏移量的计算和程序的修改有诸多不便。
通常只有程序较小或条件所限时才使用。
机器汇编是在常用的个人计算机上,使用交叉汇编程序将汇编语言源程序转换为计算机能执行的机器码形式的目标程序。
汇编工作由计算机自动完成。
生成的目标程序由PC机传到开发机上,经调试无误后,再固化到程序存储器ROM中。
机器汇编与手工汇编相比具有极大的优势,是汇编工作的首选。
本教材选用的伟福仿真软件就可进行机器汇编。
伪指令不是单片机执行的指令,没有对应的机器码,仅是用来对汇编过程进行某种控制。
常用的伪指令有:(1)定位伪指令ORG格式:[标号:] ORG l6位地址功能:规定程序块或数据块存放的起始地址。
如:ORG 8000HSTART:MOVA,#30H该语句规定第一条指令从地址8000H单元开始存放。
标号START的值为8000H。
通常,在一段汇编语言源程序的开始,都要设置一条ORG伪指令来指定该程序在存储器中存放的起始位置。
若省略ORG伪指令,则该程序段从0000H单元开始存放。
在一个源程序中,可以多次使用ORG伪指令,以规定不同程序段或数据段存放的起始地址,但要求16位地址值由小到大依序排列,不允许空间重叠。
(2) 汇编结束伪指令 END格式:[标号:] END [表达式]功能:结束汇编。
汇编程序遇到END伪指令后即结束汇编。
处于END之后的程序,汇编程序不予处理。
(3) 字节数据定义伪指令 DB格式:[标号:] DB 8位字节数据表功能:从标号指定的地址单元开始,在程序存储器中定义字节数据。
字节数据表可以是一个或多个字节数据、字符串或表达式。
该伪指令将字节数据表中的数据按从左到右的顺序依次存放在指定的存储单元中。
一个数据占一个存储单元。
4.伟福V3.2版仿真软件使用见附录X二、实训用程序ORG 0000HAJMP BEGIN ;转初始化程序段ORG 0003HLJMP PINT0;转外部中断0的中断服务程序ORG 0100HBIGIN: SETB EA ;初始化程序段SETB EX0SETB PX0SETB IT0MOV R0, #03HMOV A, #0A8HMOV @R0, AMOV R1, #20HMOV R2, #31HMOV R0, #00HMOV A, @R1MOVX @R0, AMOV R0, #03HMOV A, #01HMOVX @R0, ACLR AMOVX @R0, ALOOP: SJMP $ORG 2000HPINT0: MOV R0, #00H ;外部中断0的中断服务程序INC R1MOV A, @R1MOVX @R0, AMOV R0, #02HMOV A, #01HMOVX @R0, ACLR AMOVX @R0, ADJNZ R2, NEXTCLR EX0SJMP DONENEXT: SETB EX0DONE: RETIEND三、实训将以上实训用程序通过伟福V3.2版仿真软件(或其它51系列单片机仿真软件)输入到计算机中,并以*.ASM 文件名保存,然后进行汇编。
汇编成功后,通过伟福V3.2版仿真软件的“窗口(W)→数据窗口(D)→CODE”菜单观察程序存储器(ROM)中的内容,理解“地址”、“指令代码”的概念,并了解51系列单片机程序存储器(ROM)空间的分布特点。
注:本节实训不要求读者具体读懂上述程序的具体功能。
具体步骤如下:(1)打开伟福V3.2版仿真软件,选择伟福软件模拟器。
(见图1)图1 伟福V3.2版仿真软件启动画面(2) 选择“文件(F)→新建文件(N)”,输入实训用程序。
(见图2)图2 建立一个新文件(3) 程序输完后,选择“文件(F)→另存为(A)”,在弹出的对话框中输入带有.ASM后缀新文件名。
按“保存”按钮后,程序就会以带有.ASM后缀的文件形式存储磁盘上。
(注意此时程序中字符会根据伟福仿真软件的设置变色。
)(见图3)图3 在伟福V3.2版仿真软件中保存一个文件(4) 选择“项目(P)→编译(M)”对源程序进行汇编(见图4)。
若无错,则会在模拟的程序存储器中形成机器指令代码。
图4 在伟福V3.2版仿真软件中进行编译(5) 选择“窗口(W)→数据窗口(D)→CODE”,观察程序存储器(ROM)中的内容。
(见图5)图5 在伟福V3.2版仿真软件如何观察程序代码图6是在模拟的程序存储器中形成的机器指令代码。
蓝字部分为地址,黑字部分为指令代码。
拖动右侧的滚动条可观察整个程序存储器空间的内容。
图6 伟福仿真软件的数据显示区(6) 根据图6窗口数据,填写下列表格。
1.2 认识51系列单片机的片内随机存储器(片内RAM )第一部分 教学要求一、目的要求1. 认识51系列单片机片内随机存储器(片内RAM )的空间范围;2. 认识51系列单片机片内随机存储器的区域划分;3. 掌握字节地址和位地址的概念;4. 了解R0~R7寄存器与字节地址的关系。
二、实训平台1. PC 机,台/人;2. 伟福V3.2版仿真软件或其它51系列单片机仿真软件。
三、 教学节奏与方式四、成绩评定(注:成绩评定等级:优良、及格、不及格)第二部分 教学内容一、预备知识 1. RAM 存储器RAM (Random Access Memory)即随机访问存储器之意,RAM 存储器是一种既可读又可写的易失性存储器,其特点是断电后所存储的信息将全部丢失,通常用来暂存运行的程序和数据。
但在单片机应用系统中RAM 存储器仅被用来暂存运行的数据。
2. 51系列单片机片内随机存储器的区域划分51系列单片机片内随机存储器根据型号的不同,其存储容量为128B 或256B 。