正在加载图片...
微机控制技术·第13章·常用软件设计 为10位二进制数(占两个字节),采用表格方法实现线性化处理时,可将所测出不同温度下的输入值(共 有1024个数)数据构成一个表,表中存放温度值为y,电压值为ⅹ(为了减少测量数据,也可用插值法求 出其它数据)。设测量输入值放在R2、R3中,采用以下程序可以把它转换成线性温度值,然后再放回到 R2、R3中。表TAB2可放在64k程序存储器中任何地方 LTB2: MOV DPTR, #TAB2 MOV A, R3 CLR C RLC A XCH A, R2 RLC A XCH R2, A MOV DPL, A MOV A, DPH ADDC A, R2 DPH, A CLR A MOVc A,@A+DPTR MOV R2, A CLR A INC DPTR MOVc A, @A+DPTR MOV R3, A RET TAB2:DW…:温度数值麦 散转程序设计 散转程序是一种并行分支程序。它是根据某种输入或运算结果,分别转向各个处理程序。在MCS-5 单片机中,散转指令为JMP@A+DPIR。它按照程序运行时决定的地址执行间接转移指令。该指令把累 加器的8位无符号内容与16位数据指针的内容相加后装入程序计数器,实现程序的转移。A的内容不同 散转的入口地址不同。 下面介绍几种不同的散转程序 (一)使用转移指令表的散转程序 在不少场合下,需要根据某一单元的内容是0,1,2,…,n时分别转向分支处理程序0,1 n。可直接使用散转指令JMP@A+DPIR。由于A可容纳的字节数只有256个,在DPIR为首地址的256 个程序存储单元一般不可能容纳n个分支处理程序。因此,可只将这个区域中作为n个分支处理程序的转 移指令表。采用AJMP转移指令需占用二个字节,而采用LJMP转移指令需占空间为三个字节。 例5根据R2的内容,转向各个处理程序 (R2)=0,转向PRG0 (R2)=1,转向PRGl (R2)=n,转向PRGn 程序清单 J MPI MOV DPTR,#BJ1;转移指令表(转移指令入口地址) MOV A, R2 给每个转移指令空出二个字节车间微机控制技术·第 13 章·常用软件设计 2 为 10 位二进制数(占两个字节),采用表格方法实现线性化处理时,可将所测出不同温度下的输入值(共 有 1024 个数)数据构成一个表,表中存放温度值为 yi,电压值为 x(为了减少测量数据,也可用插值法求 出其它数据)。设测量输入值放在 R2、R3 中,采用以下程序可以把它转换成线性温度值,然后再放回到 R2、R3 中。表 TAB2 可放在 64k 程序存储器中任何地方。 LTB2: MOV DPTR,#TAB2 MOV A,R3 CLR C RLC A MOV R3,A XCH A,R2 RLC A XCH R2,A ADD A,DPL MOV DPL,A MOV A,DPH ADDC A,R2 MOV DPH,A CLR A MOVC A,@A+DPTR MOV R2,A CLR A INC DPTR MOVC A,@A+DPTR MOV R3,A RET TAB2: DW … ;温度数值麦 二、散转程序设计 散转程序是一种并行分支程序。它是根据某种输入或运算结果,分别转向各个处理程序。在 MCS-51 单片机中,散转指令为 JMP @A+DPTR。它按照程序运行时决定的地址执行间接转移指令。该指令把累 加器的 8 位无符号内容与 16 位数据指针的内容相加后装入程序计数器,实现程序的转移。A 的内容不同, 散转的入口地址不同。 下面介绍几种不同的散转程序 (一)使用转移指令表的散转程序 在不少场合下,需要根据某一单元的内容是 0,1,2,…,n 时分别转向分支处理程序 0,1,2,…, n。可直接使用散转指令 JMP @A+DPTR。由于 A 可容纳的字节数只有 256 个,在 DPTR 为首地址的 256 个程序存储单元一般不可能容纳 n 个分支处理程序。因此,可只将这个区域中作为 n 个分支处理程序的转 移指令表。采用 AJMP 转移指令需占用二个字节,而采用 LJMP 转移指令需占空间为三个字节。 例 5 根据 R2 的内容,转向各个处理程序 (R2)=0,转向 PRG0 (R2)=1,转向 PRGl …… (R2)=n,转向 PRGn 程序清单 JMPl: MOV DPTR,#TBJ1 ;转移指令表(转移指令入口地址) MOV A,R2 ;给每个转移指令空出二个字节车间 ADD A,R2
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有