51单片机_查表指令_课件

时间:2025-04-09

模块七 查表指令

在日常生活中,很多场合需要单片机控制电 路做复杂的显示或运算。如大型的LED中文 显示屏,复杂的数据计算等。通常的做法是: 事先做好数据库(比如汉字库),然后让单 片机通过“查表”的方式调用数据库中的内 容进行相应的显示或其他操作。

一、指令讲解51单片机指令系统中,有两个查表指令。

MOVC A,@A+PC MOVC A,@A+DPTRMOVC—程序存储器ROM向累加器A传送数据的指令 A—累加器,用于保存临时数据 PC—程序计数指针,PC的值等于当前要执行的指令的存放地址(举例) DPTR—16位寄存器,在查表程序中,DPTR的值一般等于待查数据表的首 地址。 @—表示间接寻址方式。

此条指令的含义是将累加器A中的值与寄存器 此条指令的含义是将累加器 中的值与寄存器DPTR中的值 中的值 中的值与寄存器 相加,相加后的结果是程序存储器ROM中的某个存储单元 相加,相加后的结果是程序存储器 中的某个存储单元 的地址。将这个地址中的数据传送到A中保存起来 中保存起来。 的地址。将这个地址中的数据传送到 中保存起来。

二、查表程序格式在使用时,将DPTR赋值为欲查数据表的首地 址,累加器A赋值为要查的数据,即可实现查 表功能,查得的数据保存在A中。通用格式如 下: MOV DPTR,#TABLE MOVC A,@A+DPTR ……(其他程序段) TABLE:DB ……(数据库)

三、举例例1:将累加器A中的数(0~5),用查表的方法求 平方值。 MOV R0,#待查值 MOV DPTR,#TABLE MOV A,R0 MOVC A,@A+DPTR (显示程序段……) TABLE: DB 0,1,4,9,16,25

三、举例讲解:①TABLE是数据表首地址的标号。 ②DB是一条伪指令,它的用途是将其 后面的数,即0~5的平方值0,1,4,9,16,25存放 在ROM中。 ③待查的数据保存在R0中,可根据需 要进行修改。

三、举例④ 数据表(平方表)在ROM中存放的示意图: (注意:这里,标号 TABLE实际上是数据表 的首地址,它是一个具 体的值。只不过在这里, 用TABLE这个标号来 表示更为方便而已。)

三、举例⑤程序执行情况分析: MOV R0,#2;待查2的平方,将R0赋值为2 MOV DPTR,#TABLE;将平方表的首地址送入DPTR中,假 设为1000H(标号为TABLE) MOV A,R0;A=R0=2 MOVC A,@A+DPTR;将A与DPTR相加,即1002H(TABLE+2),以该值为 地址,到ROM中相应单元去取数。程序中该单元的数据为4,正是2的平 方。 (显示程序段……) TABLE: DB 0,1,4,9,16,25

三、举例 例2:基于单片机的简易计算器设计 基于单片机的简易计算器.doc

三、举例 例3:用查表方式控制广告灯显示1. 实验任务 利用取表的方法,使端口P1做单一灯的变化: 左移2次,右移2次,闪烁2次(延时的时间 0.2秒)。

三、举例 2、电路

原理图 控制流水灯实验\流水灯.DSN 3、设计思路把控制码建成一个表,而利用MOVC A,@ A+DPTR做取码的操作,就可方便地处理一 些复杂的控制动作

三、举例 4、流程图

三、举例 5、程序段 查表指令控制流水灯.txt

51单片机_查表指令_课件.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219