单片机查表实验c语言,单片机 查表程序设计实验

查表程序设计实验

2.4 查表程序设计实验

2.4.1 实验目的

学习查表程序的设计方法,熟悉 51 的指令系统。

2.4.2 实验设备

PC 机一台,TD-NMC+教学实验系统、或“TD-PIT++教学实验系统+TD-51 系统平台”、或

“TD-PITE 教学实验系统+TD-51 系统平台”

2.4.3 实验内容

1. 通过查表的方法将 16 进制数转换为 ASCII码;

2

2. 通过查表的方法实现y=x ,其中x为 0~9 的十进制数,以BCD码表示,结果仍以BCD

码形式输出。

2.4.4 实验步骤

1. 采用查表的方法将 16 进制数转换为 ASCII 码

根据 ASCII码表可知,0~9 的 ASCII码为 30H~39H,A~F的 ASCII码为 41H~46H,算

法为(假定待转换的数存放在 R7 中):

当 R7≤9 时,相应的 ASCII码为:R7+30H;

当 R7>9 时,相应的 ASCII码为:R7+30H+07H。

实验程序清单:(Asm4-1.asm)

ORG 0000H

LJMP MAIN

ORG 0100H

MAIN: MOV DPTR, #ASCTAB ;表格首地址送DPTR

MOV A, R7 ;R7中为待转换的数

ANL A, #0FH ;取低4位

MOVC A, @A+DPTR ;查表

MOV R5, A ;低4位转换结果送R1

MOV A, R7

ANL A, #0F0H ;取待转换数的高4位

SWAP A ;高4位与低4位交换

MOVC A, @A+DPTR ;查表

MOV R6, A ;高4位转换结果送R2

SJMP MAIN ;设置断点观察结果

;ASCII码表

ASCTAB: DB 30H, 31H, 32H, 33H, 34H

DB 35H, 36H, 37H, 38H, 39H

DB 41H, 42H, 43H, 44H, 45H, 46H

END

实验步骤:

(1)编写实验程序,编译、链接无误后联机调试;

(2)将待转换的数存放在 R7 中,如令 R7 中的值为 0x86;