130 likes | 257 Views
查表程序设计项目. 知识目标. 能力目标. 素质目标. 学习目标. 通过实验了解查表指令的应用方法 ; 通过实验巩固数值转换成二进制 ASCII 码的方法 。. 能根据项目要求,进行编程算法设计 ; 培养学生分析问题和解决实际问题的综合能力 。. 培养学生勤于动脑、动手、善于反思、分析与总结的良好学习习惯 ; 培养学生的团队合作精神和交流合作意识 。. 1. 3. 查表程序基础知识. 加强练习. 2. 查表程序设计. 查表程序设计项目分析. 项目要求.
E N D
知识目标 能力目标 素质目标 学习目标 • 通过实验了解查表指令的应用方法; • 通过实验巩固数值转换成二进制ASCII码的方法。 • 能根据项目要求,进行编程算法设计; • 培养学生分析问题和解决实际问题的综合能力。 • 培养学生勤于动脑、动手、善于反思、分析与总结的良好学习习惯; • 培养学生的团队合作精神和交流合作意识。
1 3 查表程序基础知识 加强练习 2 查表程序设计 查表程序设计项目分析 项目要求 已知R0低4位有一个十六进制数(0~F),请编程求出其ASCII码并送入30H单元。
1. 查表程序基础知识 查表是根据存放在存储器中的数据表格的项数来查找和它对应的表中值。 例如:查y=x2(设x=0~9)的平方表时。可以预先计算出x为0~9时的y值作为数据表格,存放在起始地址为DTAB的存储器中。并使x的值和数据表格的项数(即所查数据的实际地址对DTAB的偏移量)一一对应,就可以根据DTAB+x来找到和x对应的y值。 51系列单片机有以下两条专门的查表指令: 1)MOVC A,@A+DPTR 2)MOVC A,@A+PC
1. 查表程序基础知识 1)MOVC A,@A+DPTR 1 2 3 用DPTR存放数据表格的起始地址 把所查表的项数送入到累加器A 使用MOVC A,@A+DPTR完成查表
1. 查表程序基础知识 2)MOVC A,@A+PC 1 2 3 使用传送指令把所查数据表格的项数送入累加器A 使用ADD A,#data指令对累加器A进行修正 采用查表指令MOVC A,@A+PC完成查表
1 2 3 通过实验了解查表指令的应用方法 通过实验巩固数值转换成二进制ASCII码的方法 学习使用Keil μVision2集成开发环境 2. 查表程序设计 1.实验目的
2. 查表程序设计 2.实验内容与原理 (1)实验内容 已知R0低4位有一个十六进制数(0~F),请编程求出其ASCII码并送入30H单元。 (2)实验原理 由ASCII码表可知常用ASCII码0—9的ASCII码为30H—39H,A—F的ASCII码为41H—46H,.将ASCII码做成表,即可采用查表方式查到对应的ASCII码。
2. 查表程序设计 解法二程序流程图 解法一程序流程图
2. 查表程序设计 3.实验仪器与器件 装有Keil μVision2软件的计算机一台。
2. 查表程序设计 4.实验步骤 第一步 -运行Keil μVision2软件,新建一个工程,新建一个文件。将文件加到工程中并编译,如有错,请更改直到编译成功 第二步 单击“Debug”菜单,单击“Start/Stop Debug Session”(或者使用快捷键Ctrl+F5)进入调试模式,进行调试。 第三步 在存储器窗口中输入D:30H,然后单步执行,查看30H,31H单元值的变化情况。
2. 查表程序设计 5.参考程序 ORG 0000H MOV R0,#16H MOV A,R0 ANL A,#0FH MOV DPTR,#ASCTAB MOVC A,@A+DPTR MOV 30H,A SJMP $ ASCTAB: DB '1','2','3','4,' DB '5','6','7','8','9' DB 'A','B','C','D','E','F' END
把1AH转换成二进制ASCII码,再存入30H~31H中。 3.加强练习 已知VAR单元中有一个自变量X,请按如下条件编程求函数值Y,并将它存入FUNC单元,其中VAR代表30H单元,FUNC代表31H单元。