admin 管理员组

文章数量: 1087139


2024年1月25日发(作者:做一个简单网页的代码)

二进制ASCII码转换(1/2型)

一、实验目的

1.了解BCD值和ASCII值的区别

2.掌握用查表的方法将BCD值转换成ASCII值

二、实验说明

此实验主要让学生了解数值的BCD码和ASCII码的区别,利用查表方法可以快速地进行数值转换。进一步掌握数值的各种表达方式。现在我们给出一个BCD数,将其转换成ASCII值。如下:将累加器A的值拆为二个ASCII码,并存入Result开始的二个单元,例程A赋值#1AH。

三、实验内容及步骤

1.安装好仿真器,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,插上仿真器电源插头(USB线)。

2.启动PC机,打开KEIL软件,软件设置为模拟调试状态。在所建的Project文件中添加源程序进行编译,编译无误后,全速运行程序,打开数据窗口(DATA)(在MEMORY#1中输入D:30H 回车),点击暂停按钮,观察地址30H、31H的数据变化,30H更新为31,31H更新为41。用键盘输入改变地址30H、31H的值,点击复位按钮后,可再次运行程序,观察其实验效果。修改源程序中给累加器A的赋值,重复实验,观察实验效果。

3.打开CPU窗口,选择单步或跟踪执行方式运行程序,观察CPU窗口各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。

四、流程图及源程序(见光盘中的程序文件夹)

1.源程序

RESULT EQU 30H

ORG 0

LJMP START

ASCIITAB:

DB ‘ABCDEF' ;定义数字对应的ASCII表

BINTOHEX:

MOV DPTR,#ASCIITAB

MOV B, A ;暂存A

SWAP A

ANL A,#0FH ;取高四位

MOVC A,@A+DPTR ;查ASCII表

MOV RESULT, A

MOV A,B ;恢复A

ANL A,#0FH ;取低四位

MOVC A,@A+DPTR ;查ASCII表

MOV RESULT+1,A

RET

START:

MOV SP,#40H

MOV A,#1AH

CALL BINTOHEX

LJMP $

END

2.流程图

查表得到ASCII码

保存低位ASCII码

结束

取出BCD码高四位

查表得到ASCII码

保存高位ASCII码

取出BCD码低四位

给出要转换数BCD码


本文标签: 实验 观察 程序 源程序 打开