首页 理论教育 单片机接口技术教程:查表程序设计

单片机接口技术教程:查表程序设计

时间:2023-10-22 理论教育 版权反馈
【摘要】:图3-14 例3-9查表过程(方法一)程序如下:方法二 采用“movc a,@a+pc”指令实现,查表过程如图315所示。

单片机接口技术教程:查表程序设计

查表:根据存放在rom中数据表格的项数来查找与它对应的表中值。

适用场合:主要应用于数码显示、打印字符的转换、数据转换等场合。

1.采用“movc a,@a+dptr”指令查表程序的设计方法

1)在程序存储器中建立相应的函数表(设变量x)。

2)计算出这个表中所有的函数值y。将这群函数值按顺序存放在起始(基)地址为table的程序存储器中。

3)将将表格首地址table送入dptr,x送入a,采用查表指令“movc a,@a+dptr”完成查表,就可以得到与x相对应的y值置于累加器a中。

2.采用“movc a,@a+pc”指令查表程序的设计方法

当使用pc作为基址寄存器时,由于pc本身是一个程序计数器,与指令的存放地址有关,查表时其操作有所不同。

1)在程序存储器中建立相应的函数表(设自变量为x)。

2)计算出这个表中所有的函数值y。将这群函数值按顺序存放在起始(基)地址为table的程序存储器中。

3)将x送入a,使用“add a,#data”指令对累加器a的内容进行修正,偏移量data由公式data=函数数据表首地址-pc-1确定,即data值等于查表指令和函数表之间的字节数。

4)采用查表指令“movc a,@a+pc”完成查表,就可以得到与x相对应的y值置于累加器a中。

例3-9】 利用查表的方法编写yx2x=0,1,2,…,9)的程序。(www.xing528.com)

:设变量x的值存放在内存30h单元中,求得的y的值存放在内存31h单元中。二次方表存放在首地址为table的程序存储器中。

(1)方法一 采用“movc a,@a+dptr”指令实现,查表过程如图314所示。

978-7-111-46285-9-Chapter03-85.jpg

图3-14 例3-9查表过程(方法一)

程序如下:

978-7-111-46285-9-Chapter03-86.jpg

(2)方法二 采用“movc a,@a+pc”指令实现,查表过程如图315所示。

程序如下:

978-7-111-46285-9-Chapter03-87.jpg

978-7-111-46285-9-Chapter03-88.jpg

图3-15 例3-9查表过程(方法二)

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈