文档介绍:第一章
认识51系列单片机存储空间
计算机的应用是一个系统,这个系统应由两部分组成一一硬件和软件。硬件是指具体 的元器件、电路等,软件则是指程序和数据。如果说硬件是计算机应用系统的基础的话,那 么软件则是计算机应用系统的灵魂。计算机原理址; : :
0013H:外部中断1的中断服务程序入口地址; : :
001BH:定时器1的中断服务程序入口地址; 0023H:串行端口的中断服务程序入口地址; 002BH:定时器2的中断服务程序入口地址。 FFFFH ——
图1. 1. 1 ROM空间示意 编程时,通常在这些入口地址开始的二三个单元中,放人一条转移指令,以使相应的服 务与实际分配的程序存储器区域中的程序段相对应(仅在中断服务程序较短时,才可以将中 断服务程序直接放在相应的人口地址开始的几个单元中)。
源程序汇编与程序定位伪指令
将汇编语言源程序转换为计算机能执行的机器码形式的目标程序的过程叫汇编。汇编常 用的方法有两种:一是手工汇编,二是利用计算机汇编。
手工汇编时,把程序用助记符指令写出后,通过手工方式查指令编码表,逐个把助记符 指令翻译成机器码,然后把得到的机器码程序(以十六进制形式)键入到单片机开发机中,并 进行调试。由于手工汇编是按绝对地址进行定位的,所以,对于偏移量的计算和程序的修改 有诸多不便。通常只有程序较小或条件所限时才使用。
机器汇编是在常用的个人计算机上,使用交叉汇编程序将汇编语言源程序转换为计算机 能执行的机器码形式的目标程序。汇编工作由计算机自动完成。生成的目标程序由PC机传 到开发机上,经调试无误后,再固化到程序存储器ROM中。机器汇编与手工汇编相比具有极 大的优势,是汇编工作的首选。本教材选用的伟福仿真软件就可进行机器汇编。
伪指令不是单片机执行的指令,没有对应的机器码,仅是用来对汇编过程进行某种控制。 常用的伪指令有:
(1)定位伪指令ORG
格式:[标号:]ORG 16位地址
功能:规定程序块或数据块存放的起始地址。如:
ORG 8000H
START: MOVA, #30H
该语句规定第一条指令从地址8000H单元开始存放。标号START的值为8000H。通常, 在一段汇编语言源程序的开始,都要设置一条ORG伪指令来指定该程序在存储器中存放的起 始位置。若省略ORG伪指令,则该程序段从0000H单元开始存放。在一个源程序中,可以多 次使用ORG伪指令,以规定不同程序段或数据段存放的起始地址,但要求16位地址值由 小到大依序排列,不允许空间重叠。
⑵汇编结束伪指令END
格式:[标号:]END [表达式]
功能:结束汇编。
汇编程序遇到END伪指令后即结束汇编。处于END之后的程序,汇编程序不予处理。
(3)字节数据定义伪指令DB
格式:[标号:]DB 8位字节数据表
功能:从标号指定的地址单元开始,在程序存储器中定义字节数据。字节数据表可以是一个 或多个字节数据、字符串或表达式。该伪指令将字节数据表中的数据按从左到右的顺序依次 存放在指定的存储单元中。一个数据占一个存储单元。
伟福V3. 2版仿真软件使用
见附录X
二、实训用程序
ORG 0000H
AJMP BEGIN ;转初始化程序段
ORG 0003H
LJMPPINTO;转外部中断0的中断服务程序
ORG0100H
BEGIN: SETB EA ;初始化程序段
SETB EX0
SETB PXO
SETB ITO
MOV RO, #O3H
MOV A, #0A8H
MOV ***@R0, A
MOV Rl, #20H
MOV R2, #31H
MOV RO, #00H
MOV A, ***@R1
MOVX ***@R0, A
MOV RO, #03H
MOV A, #01H
MOVX ***@R0, A
CLRA
MOVX ***@R0, A
LOOP: SJMP $
ORG 2000H
PINTO: MOV RO, #00H 汐卜部中断0的中断服务程序
INCR1
MOV A, ***@R1
MOVX ***@R0, A
MOV RO, #02H
MOV A, #01H
MOVX ***@R0, A
CLRA
MOVX ***@R0, A
DJNZ R2, NEXT
CLR EXO
SJMP DONE
NEXT: SETB EXO
DONE: RETI
END
三、实训
将以上实训用程序通过伟福V3. 2版仿真软件(或其它51系列单片机仿真软件)输入到 计算机中,并以*.ASM文件名保存,然后进行汇编。汇编成功后,通过伟福V3. 2版仿真软 件的“窗口俚)一数据窗口①)一CODE”菜单观察程序存储器(ROM)中的内容,理解“地 址”、“指令代码”的概念,