当前位置:首页 > 单片机 查表程序 软件实验3
实验八 查表程序设计
一、实验目的
1.进一步熟悉MCS-51指令系统和汇编语言程序设计。 2.学会用MOVC指令编写查表程序。 二、实验内容
1.设计并调试一个查平方表的程序,其功能为应用查表指令MOVC A,@A+PC,求累加器A中数的平方值,结果平方值送A。要求待查的(A)≤15。
2.设计并调试一个根据电压值查与其对应的温度值的查表程序,其功能为应用查表指令MOVC A,@A+DPTR,求(A)中电压值对应的温度值,将温度值送R2R3(温度值为二字节的压缩BCD码),电压值的范围为(A)≤0FFH。实验程序参考框图如2-5所示。 三、
实验步骤
1. 敲入程序和预定表后;
2. 通过修改自变量参数启动并调试程序,直至正确为止。 3. 边调试边体会用PC或DPTR作指针查表的区别。
开始
表首地址?(DPTR)
(A)+(A)+(DPTR)?(DPTR)
0?(A)
查表取第一个字节?(R2)
0?(A)
( DPTR )+1?(DPTR)
查表取第二个字节?(R3)
结束
图2-5 查表程序框图
四、 实验报告要求
根据实验内容和程序参考流程,编出所需查表程序,列出实验程序清单。 五、思考题
1. 当表的长度〉255个字节时应选哪一条指令查表?
答:使用MOVC A,@A+DPTR置零,并且需要对DPH、DPL进行运算处理,求出表目地址 2. 用PC指针查表编程时应注意什么? 答:表的长度必须在255B之内, 六、参考程序清单
1. 求平方值查表程序: 赋初值:A=0eh
命令行 ADD A,#02H 区域变化 备注 MOVC A,@A+PC 查表语句所在地址为0003h取指令后pc=0004h表头所在 地址为0006h,修正量rel=0006h-0004h=02h SJMP $ DB 0,1,4,9,16,25 DB 36,49,64,81,100,121,144,169,196,225 END 程序存储器内定义值 2. 测量温度查表程序: 赋初值:a=06h
命令行 MOV DPTR,#TAB 命令结果 备注 表格首地址
共分享92篇相关文档