首页 2AVR-90三字节浮点库及其使用说明

2AVR-90三字节浮点库及其使用说明

举报
开通vip

2AVR-90三字节浮点库及其使用说明 资料来源 电子下载网 下载时间 2010-8-25 19:21:00 本文地址 http://3ujj.com/dpj/avr/2/1046.html AVR-90三字节浮点库及其使用说明   此浮点库包含15个子程序(数值转换、四则运算、浮点数处理等),不含函数库。   占寄存器(R0、R12~R31),大小为680个字,可任意浮动。程序中不含有乘法、除法指令,因此可以移植到AT90的其它系列的单片机。此程序在AVR studio 3.51下调试成功!   为便于读者使用本程序库,先将有关约定...

2AVR-90三字节浮点库及其使用说明
资料来源 电子下载网 下载时间 2010-8-25 19:21:00 本文地址 http://3ujj.com/dpj/avr/2/1046.html AVR-90三字节浮点库及其使用说明   此浮点库包含15个子程序(数值转换、四则运算、浮点数处理等),不含函数库。   占寄存器(R0、R12~R31),大小为680个字,可任意浮动。程序中不含有乘法、除法指令,因此可以移植到AT90的其它系列的单片机。此程序在AVR studio 3.51下调试成功!   为便于读者使用本程序库,先将有关约定说明如下。   浮点数的格式(3字节):   ①  二字节定点操作数:用[X]或[Y]来 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示存放在由X或Y指示的连续单元中的数据,地址小的单元存放高字节。如果[X]=1234H,(X)=60H,则(60H)=12H,(61H)=34H。   ②  二进制浮点操作数,用三个字节表示:第一个字节的最高位为数符,其余七位为阶码(补码形式),第二字节为尾数的高字节,第三字节为尾数的低字节。尾数用二字节纯小数(原码)来表示。当尾数的最高位为1时,便称为规格化浮点数,简称操作数。在程序说明中,也用[X]或[Y]来表示X或Y指示的浮点操作数。   例如:   0.8:[X]=00 80 00 ,则二进制浮点数表示为00 CC CDH;若(X)=60H,则(60H)=00H,(61H)=0CCH。(62H)=0CDH。   -0.8:[X]=80 80 00 ,则二进制浮点数表示为80 CC CDH;若(X)=60H,则(60H)=80H,(61H)=0CCH,(62H)=0CDH。   0.08:[X]=7F 80 00 ,则二进制浮点数表示为7D A3 D7 H;若(X)=60H,则(60H)=7DH,(61H)=0A3H,(62H)=0D7H。   -0.08:[X]=FF 80 00 ,则二进制浮点数表示为FD A3 D7 H;若(X)=60H,则(60H)=0FDH,(61H)=0A3H,(62H)=0D7H。   ③  十进制浮点操作数,用三个字节表示:第一个字节的最高位为数符,其余七位为阶码(二进制补码形式);第二个字节为尾数的高字节;第三个字节为尾数的低字节。尾数用双字节BCD码纯小数(原码)来表示。当十进制数的绝对值大于1时,阶码就等于整数部分的位数,如123.4的阶码是03H,-123.4 的阶码是 83H;当十进制数的绝对值小于1时,阶码就等于 80H 减去小数点后面零的个数,例如 0.001 23 的阶码是 7EH,-0.001 23的阶码是 0FEH。在程序说明中,用[X]或[Y]来表示X或Y指示的十进制浮点操作数。例如,有一个十进制浮点操作数存放在60H、61H、62H中,数值是 -0.012 34,即-0.1234乘以10的-1次方,则(60H)=0FFH,(61H)=12H,(62H)=34H。若用[X]来指向它,则应使(X)=60H。   ④  运算精度:单次定点运算精度为结果最低位的当量值;单次二进制浮点算术运算的精度优于1/655 35;BCD码浮点数的精度万分之一(4位有效数),不作为运算的操作数,仅用于输入或输出时的数制转换。不管哪种数据格式,随着连续运算的次数增加,精度都会下降。   ⑤  工作区:数据工作区固定在R0、R12~R31中,数符或标志工作区固定在SREG寄存器中。   用户请不要在工作区中存放信息!   ⑥  数值转换子程序的执行时间(8 MHz;与数据大小无关):80μs   四则运算的执行时间:60μs。比12 MHz的MCS-51系列单片机快10倍!   ⑦  子程序调用范例:由于本程序库特别注意了各子程序接口的相容性,很容易采用积木方式完成一个公式的计算。以浮点运算为例,计算y = ab/c+d。已知:a = -123.4,b = 0.7577,c = 56.34;d = 1.276,它们分别存放在60H开始的连续单元中。用BCD码浮点数表示时,分别为a = 831234H;b = 007577H;c = 025634H;d = 011276H。   求解过程:通过调用BTOF子程序,将各变量转换成二进制浮点操作数,再进行各种运算,最后调用FTOB子程序,还原成十进制形式,供输出使用。运行结果,[X]=803836H,即y= -0.3836,比较精确的结果应该是-0.38357。   程序文件如下: TEST: LDI XL,$69 ;指向BCD码浮点操作数d RCALL BTOF ;将其转换成二进制浮点操作数 LDI XL,$66 ;指向BCD码浮点操作数c RCALL BTOF ;将其转换成二进制浮点操作数 LDI XL,$63 ;指向BCD码浮点操作数b RCALL BTOF ;将其转换成二进制浮点操作数 LDI XL,$30 ;指向BCD码浮点操作数a RCALL BTOF ;将其转换成二进制浮点操作数 LDI YL,$33 ;指向二进制浮点操作数b RCALL FMULU ;进行浮点乘法运算 LDI YL,$66 ;指向二进制浮点操作数c RCALL FDIV ;进行浮点除法运算 LDI YL,$69 ;指向二进制浮点操作数d RCALL FADD ;进行浮点加法运算 RCALL FTOB ;将结果转换成BCD码浮点数 STOP: RJMP STOP END   浮点库程序清单见本刊网络补充版(http://www.dpj.com.cn)。 (收稿日期:2002-09-02) 推荐阅读:(按住 Ctrl 鼠标左键点击标题可以打开详细内容) 1、IC检测方法 2、什么是遥感技术 3、什么是无线网址 4、制冷设备维修技巧 5、什么是色温 6、手机RF设计问答 7、微波简史 8、微波小知识 9、卫星导航知识 10、卫星与遥感技术
本文档为【2AVR-90三字节浮点库及其使用说明】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_874292
暂无简介~
格式:doc
大小:5KB
软件:Word
页数:0
分类:互联网
上传时间:2018-09-04
浏览量:1