当前位置:首页 > 实验1、实验2熟悉软件开发环境及51单片机编程(学生版)
实验一、熟悉软件开发环境及51单片机资源认识
——I/O口的应用与编程
计算机的应用是一个系统,这个系统应由两部分组成――硬件和软件。硬件是指具体的元器件、电路等,软件则是指程序和数据。如果説硬件是计算机应用系统的基础的话,那么软件则是计算机应用系统的灵魂。计算机原理告诉我们程序和数据是被“装载”在计算机存 储器中的,从某种意义上讲,认识一个计算机的存储器系统是开发软件所必须的。
为了全面认识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 2 3 51系列单片机ROM存储空间描述 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位字节数据表
功能:从标号指定的地址单元开始,在程序存储器中定义字节数据。字节数据表可以是一个或多个字节数据、字符串或表达式。该伪指令将字节数据表中的数据按从左到右的顺序依次存放在指定的存储单元中。一个数据占一个存储单元。
4. 伟福V3.2版仿真软件使用
见后续实验讲义。
二、实训程序
ORG 0000H
* AJMP BEGIN ;转初始化程序段 ORG 0003H
LJMP PINT0;转外部中断0的中断服务程序 ORG 0100H
BEGIN: SETB EA ;初始化程序段
SETB EX0 SETB PX0 SETB IT0
MOV R0, #03H MOV A, #0A8H MOV @R0, A MOV R1, #20H MOV R2, #31H MOV R0, #00H MOV A, @R1 MOVX @R0, A MOV R0, #03H MOV A, #01H MOVX @R0, A CLR A
MOVX @R0, A
*LOOP: SJMP $
ORG 2000H
PINT0: MOV R0, #00H ;外部中断0的中断服务程序
INC R1
MOV A, @R1 MOVX @R0, A MOV R0, #02H MOV A, #01H MOVX @R0, A CLR A
MOVX @R0, A * DJNZ R2, NEXT
CLR EX0 SJMP DONE
NEXT: SETB EX0 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所示
共分享92篇相关文档