资源描述
第一章 初级软件实验部分
实验一 二进制转换成十进制实验
一、实验设备
1.THGQC-1型嵌入式单片机实验开发系统-套。
2.PC机一台。
注:其它实验与此相同,此项以后不再重述。
二、实验目的
掌握汇编语言设计和实验步骤,熟悉在KEIL环境下观察内部RAM 的方法。
三、实验内容
单片机中的数值有各种表达方式,这是单片机的基础。掌握各种数制之间的转换是一种基本功。本实验内容是将一个给定的一字节二进制数,通过编程将其转换成十进制码。
四、实验步骤
1)启动PC机,打开KEIL软件,软件设置为模拟调试状态。在所建的Project文件中添加TOBCD.ASM文件,打开TOBCD.ASM文件,阅读、分析、理解程序,编译程序进行调试。(如何建立工程请看附录说明)
2)打开RAM观察窗口,根据示例程序注释设置断点,运行程序。程序具体功能是将累加器A的值拆为三个BCD码,并存入RESULT开始的三个单元,例程A赋值#0ffh。打开MEMORY WINDOW数据窗口,(在MEMORY#1中输入D:30H)观察RAM地址30H、31H、32H的数据变化,30H更新为02,31H更新为05,32H更新为05。
3)修改源程序中给累加器A的赋值,重复实验,观察实验效果。
4)打开CPU寄存器窗口,选择单步或跟踪执行方式运行程序,观察各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。
五、实验程序参考框图
六、实验参考程序
RESULT EQU 30H
ORG 0000H
JMP START
ORG 0100H
START: MOV SP,#40H
MOV A,#0FFH
CALL BINTOBCD
NOP ;此处设置断点,察看RAM 30H,31H,32H
LJMP $
BINTOBCD:
MOV B,#100
DIV AB
MOV RESULT,A ;除以100得百位数
MOV A,B
MOV B,#10
DIV AB
MOV RESULT+1,A ;余数除以10得十位数
MOV RESULT+2,B ;余数为个位数
RET
END
实验二 无符号数十进制加法实验
一、实验目的
掌握无符号数、十进制加法,熟悉在KEIL环境下观察内部RAM 的方法。
二、实验内容
编写并调试一个双字节无符号十进制数加法程序,其功能为将被加数写入30H、31H单元,加数写入40H、41H单元,运行程序结果写入52H、51H、50H单元中,则加法程序功能为
(31H) (30H)+(41H) (40H)=(52H) (51H) (50H)(都是高位在前、低位在后)。
三、实验步骤
1)启动PC机,打开KEIL软件,软件设置为模拟调试状态。在所建的Project文件中添加ADD.ASM文件,打开ADD.ASM文件,阅读、分析、理解程序,编译程序进行调试。
2)打开RAM观察窗口,根据示例程序注释设置断点,运行程序,打开MEMORY WINDOW数据窗口,分别观察30H(在MEMORY#1中输入D:30H)观察RAM地址30H、31H、40H、41H、50H、51H、52H的数据变化。示例程序执行: 3412H+7856H,结果为0AC68H。
四、实验参考程序
DATA0 EQU 12H
DATA1 EQU 34H
DATA2 EQU 56H
DATA3 EQU 78H
ORG 0000H
AJMP START
ORG 0100H
START:MOV 30H,#DATA0
MOV 31H,#DATA1 ;被加数送31H,30H
MOV 40H,#DATA2
MOV 41H,#DATA3 ;加数送41H,40H
MOV A,30H
ADD A,40H ;(30H)+(40H)→A
MOV 50H,A ;保存低位结果
MOV A,31H
ADDC A,41H ;(40H)+(50H)+CY→A
MOV 51H,A ;保存高位结果
MOV 52H,#0
MOV A,#0
ADDC A,52H
MOV 52H,A ;进位→52H
SJMP $ ;此处设置断点,察看RAM 30H,31H,40H,41H,50H,51H,52H
END
实验三 数据传送实验
一、实验目的
1.掌握对8051 内部RAM 及外部RAM 的数据操作。
2.掌握对8051片内外扩RAM的操作方法。
二、实验内容
本例程将内部RAM 70H~7FH 的16 个数据送到外部RAM 7000H~700FH 。
三、实验步骤
1)启动PC机,打开KEIL软件,软件设置为模拟调试状态。在所建的Project文件中添加Tran.ASM文件,打开Tran.ASM文件,阅读、分析、理解程序,编译程序进行调试。
2)打开VIEW菜单中打开MEMORY WINDOW数据窗口,分别观察70H(在MEMORY#1中输入D:70H并在其中输入任意的值)、7000H(MEMORY#2窗口输入X:7000H)。运行程序,观察内外70H和7000H的相对应的数据区的数据是否一致。
3)可单步执行程序,观察数据传送过程。
四、实验参考程序
ORG 0000H
JMP MAIN
ORG 0100H
MAIN: MOV R7,#16
MOV R1,#70H ;内部RAM地址70H送R1
MOV DPTR,#7000H ;DPTR指向XRAM地址7000H
LOOP: MOV A,@R1 ;内部RAM内容送累加器A
MOVX @DPTR,A ;将累加器A的值送到XRAM
INC DPTR
INC R1
DJNZ R7,LOOP ;判断数据是否送完
NOP ;次处设置断点观查7000H的值是否和70H的值一样
END
展开阅读全文