购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

5.5 查表结构程序

查表结构程序是把事先计算或测到的数据按照一定的顺序排列成表格,存放在单片机的程序存储器中,程序中根据被测数据,查出最终所需结果的程序结构。查表结构程序在汇编语言中使用很广泛,前面其实已经用到了,下面具体介绍一下。

在实际设计中,对于一些复杂的运算,其汇编程序长,难于计算,而且会占用很长的CPU时间,另外,对于一些非线性的运算,用汇编语言几乎无法处理,此时用查表法十分方便。利用查表法可以完成数据运算和数据转换等操作,并且具有编程简单、执行速度快、适合实时控制等优点。这里举两个例子,介绍一下如何进行查表结构的程序设计。

首先,假定一个十六进制数存放在20H单元,其值在00H~0FH之间,利用汇编语言将其转换成ASCII码,并送入21H单元中。采用查表结构的程序代码示例如下:

图5-9 多字节BCD码加法的子程序流程图

在本程序中,查表指令MOVC A,@A+PC到表格首地址DATA有两个指令,占用三个地址空间,因此,程序中采用了变址调整为3。

这里再举一个无序表格的例子。从10个人的档案中,查找一个人ZHAO的名字,此人的名字存于20H单元。如果找到,则记录其地址并存入寄存器R6、R5中,否则,将R6、R5清零。档案表格的首地址为TAB。

这显然是一个无序的表格,无法用算法来实现,只能逐个单元查找。采用查表结构的程序代码示例如下:

在这段示例程序中,数据表只简单地用字符来表示,也可以根据需要更改。另外,增加数据表的量也可以实现比较大的数据表的查询。 YHlma0eZ0afC3AVVHHwN24N3nocKjBNZ4jk8g1S2ZM3RoWLgedV3g6kZcBm6+BD4

点击中间区域
呼出菜单
上一章
目录
下一章
×