实验一、查表程序(MOVC A,@A+DPTR)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验名称:一、查表程序日期:2011.4.24得分:
同组人:(不填)指导教师:马惠兰
一、实验目的
1.熟悉Keil uvision3单片机仿真软件的使用方法。
2.熟练掌握单片机实验操作步骤。
3.熟练掌握用MOVC A , @A+DPTR和MOVC A , @A+PC进行查表的程序设计方
法和编程技巧。
4.掌握Keil uvision3对寄存器和SFR赋值和查看数据的命令和方法。
二、实验设备
PC机一台
三、实验内容
根据累加器A中的自变量,查表求1~20的平方数,平方高位数存放在寄存器R6中,平方低位数存放在寄存器R7中。
四、实验原理
本次实验采用查表指令MOVC A , @A+DPTR实现上述字数据查表。
因为最大的自变量20的平方数是400,为了查表后验证方便,自变量1~20对应的平方数用伪指令DW定义,并且定义为压缩BCD码。
查表指令MOVC A , @A+DPTR只能进行字节查表,要查找一个字数据,必须进行两次查表。利用指令MOVC A , @A+DPTR查表,表可以存放在任何位置,查表前只需要将表的首地址用MOV指令送DPTR、累加器A中必须是要查找数据在表中的偏移地址即可,查找到的数据存放在累加器A中。
编程时,首先将表的首地址送DPTR,累加器A中的自变量减1形成要查找数据在表中的序号,序号乘2得到表内偏移地址,将该偏移地址暂存到寄存器R6中,用MOVC A , @A+DPTR指令进行第一次查表,得到该自变量的平方高8位在累加器A 中,并与R6进行交换,这样查找的平方高位数存放在寄存器R6中,累加器A中是第一次查表时的表内偏移地址;累加器A再加1,得到要查找的平方低位数在表内的偏移地址,再用MOVC A , @A+DPTR指令进行第二次查表,累加器A得到该自变量的平方低8位,送寄存器R7。
据此实验原理编写的实验源程序清单见附页。
五、实验步骤
1.在F盘下为工程建立文件夹张三1;
2.新建工程项目文件张三1.uv2,保存在文件夹张三1中,并为工程选择目标器件为
AT89S52;
3.编辑源程序,建立源文件张三1.ASM,保存在文件夹张三1中;
4.将源文件张三1.ASM添加到工程项目组中;
5.设置调试环境,选择调试模式为软件模拟;
6.加载运行程序,根据预先设计的数据记录表格记录实验数据;
7.实验数据经过实验指导教师检查正确后,实验结束。
实验数据记录见附页。
六、实验结果分析
记录的实验数据经过验证,全部正确,说明源程序设计正确、实验步骤正确。
七、心得体会
1.。。。。。。。
2.。。。。。。。。。。
3.。。。。。。。。。
4.。。。。。。。。。
5.。。。。。。。。。