实验1-熟悉软件开发环境及51单片机资源认识
试验一、熟识软件开发环境及51单片机资源相识 ——I/O口的应用与编程 计算机的应用是一个系统,这个系统应由两部分组成――硬件和软件。硬件是指详细的元器件、电路等,软件则是指程序和数据。假如説硬件是计算机应用系统的基础的话,那么软件则是计算机应用系统的灵魂。计算机原理告知我们程序和数据是被“装载”在计算机存 储器中的,从某种意义上讲,相识一个计算机的存储器系统是开发软件所必需的。 为了全面相识51系列单片机的存储空间,试验一与试验二列出四个实训单元。在进行完四个实训单元后,要求学生应全面了解51系列单片机的程序存储器(ROM)、片内随机存储器(片内RAM)和片外随机存储器(片外RAM)空间的范围、用途和运用方法等。 1.1 相识51系列单片机的程序存储器(ROM) 第一部分 教学要求 一、试验目的: 1. 相识51系列单片机的程序存储器(ROM)的空间范围; 2. 相识汇编指令编码在ROM中存储形式; 3. 驾驭指令编码和指令编码所在地址的概念; 4. 了解51系列单片机的程序存储器(ROM)固定地址的用途。 二、预备学问 1. ROM存储器 ROM(Read 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引脚为访问内部或外部程序存储器的选择端。当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.1 ROM空间示意 编程时,通常在这些入口地址起先的二三个单元中,放人一条转移指令,以使相应的服务与实际安排的程序存储器区域中的程序段相对应(仅在中断服务程序较短时,才可以将中断服务程序干脆放在相应的人口地址起先的几个单元中)。 3. 源程序汇编与程序定位伪指令 将汇编语言源程序转换为计算机能执行的机器码形式的目标程序的过程叫汇编。汇编常用的方法有两种:一是手工汇编,二是利用计算机汇编。 手工汇编时,把程序用助记符指令写出后,通过手工方式查指令编码表,逐个把助记符指令翻译成机器码,然后把得到的机器码程序(以十六进制形式)键入到单片机开发机中,并进行调试。由于手工汇编是按肯定地址进行定位的,所以,对于偏移量的计算和程序的修改有诸多不便。通常只有程序较小或条件所限时才运用。 机器汇编是在常用的个人计算机上,运用交叉汇编程序将汇编语言源程序转换为计算机能执行的机器码形式的目标程序。汇编工作由计算机自动完成。生成的目标程序由PC机传到开发机上,经调试无误后,再固化到程序存储器ROM中。机器汇编与手工汇编相比具有极大的优势,是汇编工作的首选。本教材选用的伟福仿真软件就可进行机器汇编。 伪指令不是单片机执行的指令,没有对应的机器码,仅是用来对汇编过程进行某种限制。常用的伪指令有: (1) 定位伪指令ORG 格式:[标号:] ORG l6位地址 功能:规定程序块或数据块存放的起始地址。如: ORG 8000H START:MOV A,#30H 该语句规定第一条指令从地址8000H单元起先存放。标号START的值为8000H。通常,在一段汇编语言源程序的起先,都要设置一条ORG伪指令来指定该程序在存储器中存放的起始位置。若省略ORG伪指令,则该程序段从0000H单元起先存放。在一个源程序中,可以多次运用ORG伪指令,以规定不同程序段或数据段存放的起始地址,但要求16位地址值由小到大依序排列,不允许空间重叠。 (2) 汇编结束伪指令 END 格式:[标号:] END [表达式] 功能:结束汇编。 汇编程序遇到END伪指令后即结束汇编。处于END之后的程序,汇编程序不予处理。 (3) 字节数据定义伪指令 DB 格式:[标号:] DB 8位字节数据表 功能:从标号指定的地址单元起先,在程序存储器中定义字节数据。字节数据表可以是一个或多个字节数据