- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
;
您可能关注的文档
最近下载
- 四川省成都市天府新区2024-2025学年七年级下学期期末数学试卷(含部分简单答案).pdf VIP
- 高一数学第一学期必修一、四全册导学案.pdf VIP
- 应用型大学英语综合教程基础篇1 第五版 配套课件.ppt VIP
- 初中物理必考知识点.docx VIP
- 3at断路器-产品介绍.pptx VIP
- 纯电动汽车故障诊断与排除(吉利帝豪EV450)JL450-教学课件2.2 交流充电口异常故障诊断与排除.pdf VIP
- 教育学原理课后习题(答案).pdf VIP
- 高中英语课件学好英语的方法.ppt VIP
- 航道工程测量方案.docx
- 《中国古典诗词中的品格与修养》2019期末考试答案.pdf VIP
文档评论(0)