等步距线性内插计算子程序.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
;范例19 ;等步距线性内插计算子程序 .EQU TBLGTH=10 CHETA: LDI R16.TBLGTH1 ;rl6〈一表长(即字数)-I LDI R31.HIGH(chlbl*2):yO (函数初值)在 r!4rl5,STEP (步长)在 rlOrll,自变量 X 在 H2rl3 LDI R30丄OW(chlbl*2+l):查表指针,首指数据表第1字之高位字节! RCALL CPMRI ;乂与表中第一个字型数据(X0)比较 BRCC CHRET ;XX0査表结束,Y=Y0 CHET1: RCALL CMPR1 :X与表中下一个数据比较 BRCC NX33 ;XvX(i+l)找到插值区间 ADD R15.R11 :否则Y0中加入一个STEP: Yk=YO+k*step (步距为负时则 :减去 ISTEPI) ADC R14.R10 DEC R16 BRNE CHETI ;未査到表格终值,循环:否则结束,Y取得最大值Yn CHRET: RET NX33: SBIW R3O,5 ;指针退回(?5).指向Xi MOV RR14 MOV R9.R15 ;保存 YO+i*STEP RCALL SUBS ;(X-Xi)-rl6rl7 MOV R15.R17 MOV R14.R16 ;转入 ii4rl5 RCALL MUL16 ;(X-Xi)*STEP-rl2rl3rl4rl5 MOV R10.R12 MOV R1LR13 ;保存乘积高位字 LPM ;X(i+l)低位字节 MOV R13.RO ADIW R30,l LPM :X(i+l)高位字节 MOV R12.R0 SBIW R30.3 :指针指向Xi RCALL SUBS ;X(i+l)-Xi-rl6rl7 MOV RI2,R10 MOV R13.RH ;取回乘积高位字 MOV R10.R16 MOV R1LR17 :X(i+l)-Xi-rlOrll RCALL DIV 165 ;(X-Xi)*STEP/(X(i+l)-XiJ-rl4rl5 ADD R15.R9 ADC RI4.R8 :Y0+i*STEP+(X-Xi)*STEP/[X(i+l)-Xi]-rl4rl5 RET ;若STEP为负值则改为计算(r曜)减去(rl4rlS)之值 CMPR1: LPM ;取数据高位字节 ADIW R30.2 ;指向下一数据的髙位字节 CP R0.R12 ;与乂高位字节相比较 BRNE CPRTI ;不相等即转出 SBIW R30,3 :否则调整指针 LPM ;取数据低位字节 ADIW R3O.3 ;指向下一数据的髙位字甘 CP RO.R 13 ;与乂低位字节相比较 CPRT1:RET ;以进位C带回比较结果 SUBS: LPM ;计算(X-Xi)或[X(i+l)-XiJ并送入 rl6rl7 MOV R5,R0 :取Xi低位字节 ADIW R30.1 LPM ;取Xi高位字节 SBIW R30J :仍指向Xi低位字节 SUB R13.R5 MOV R17,R13 SBC R12.R0 MOV R16.R12 ;计算差并将其转入R16R17 RET :自变量x表长为12字 CHTBL: DW 19214,23404.27600,32799,37009.40211,45414.48618,51821,5502957787.60070 ;步距表长为11字 STEPT: DW 356366,379.395.415.440,471.509.555.6O3.657 :不等步即线性内插计算子程序.步距表首址在R6R7中 ;自变量X在RI2R13之中,函数初值Y0在R14R15中 ;范例20 ;表长(字个数)-1任R16中 CHTSTP: LDI R3 LHIGH(chtbP2) LDI R 30,LOW(cht bl *2+1);查表指针 LDI R16XOW(stcpt*2) MOV R7,R16 LDI R16,HIGH(stept*2) MOV R6.R16 ;步距表指针 LDI RI6JBLGTH-1 ;。6— 表长(字个数)-1 RCALL CMPR1 :X与表首数据比较 BRCC CHSTPT ;XX0査表结束,有Y=Y0 CHSTP1: RCALL CMPR1 ;否则与表中下一数据比较 BRCC CHSTP3 :Xx(i+ix找到插值区间! RCALL GTSTP ;査表取STEP字型变量 ADD R15.R11 :YO-YO+STEPk ADC R14.R10 DEC RI6 BRNE CHSTP1 ;未査到表格终值循环:否则结束,Y取得最大值Yn CHSTPT: RET CHSTP3: SBIW R30.5 :指针退回,指向Xi低位字节 MOV R8.R14 MOV R9,R15 ;

文档评论(0)

文档查询,农业合作 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体土默特左旗农特农机经销部
IP属地广西
统一社会信用代码/组织机构代码
92150121MA0R6LAH4P

1亿VIP精品文档

相关文档