文档库 最新最全的文档下载
当前位置:文档库 › 实验三 双字节BCD码

实验三 双字节BCD码

实验三  双字节BCD码
实验三  双字节BCD码

实验二双字节BCD码(十进制数)加法

一、实验目的

熟悉51汇编指令,学会使用星研集成环境软件,能自己编写简单的程序,熟悉BCD码,了解如何调用系统提供的子程序。

二、实验内容

从键盘上输入4位被加数、加数,实现双字节BCD码(四位数)的加法,结果显示在数码管上;熟悉使用断点、单步进入、单步、运行到光标处、修改PC指针、全速运行等各种调试手段;熟悉查看特殊功能寄存器、内部数据RAM、外部数据空间的各种方法。

三、实验框图

双字节BCD加法程序框图

四、实验步骤

1、连线说明:

2

3、结果显示在G5区的数码管上

五、程序清单

EXTRN CODE(Display8, GetBCDKey)

Buffer DATA 30H ;8字节显示缓冲区

F1 ;PSW.1

ORG 0000H

LJMP START

ORG 0100H

START: MOV SP,#60H

;先清除显示,再接收键输入START1:

;按键次数

LCALL GetBCDKey ;得到双字节十进制数(被加数)

SETB F1 ;接收到第一个键,才清除显示

MOV R0,#buffer+4

MOV A,#4 ;按键次数

LCALL GetBCDKey ;得到双字节十进制数(加数)

MOV A,buffer+1

ADD A,buffer+5

DA A

MOV buffer+5,A

MOV A,buffer

ADDC A,buffer+4

DA A

MOV buffer+4,A

CLR A

RLC A

Display: ;显示结果

;低位

;压缩BCD码转换成非压缩BCD码

;高位

;进位

;最高二位消隐

ACALL BlackDisplay ;将高位0消隐

MOV R0,#buffer

LCALL Display8

SJMP START1

;将一个字节压缩BCD码转换成二个字节非压缩BCD码

B1toB2:

RET

BlackDisplay: MOV A,@R0 ;将高位0消隐

JNZ Exit

MOV A,#10H

MOV @R0,A

DEC R0

DJNZ R7,BlackDisplay

Exit: RET

END

相关文档