好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

二进制与格雷码转换.doc

7页
  • 卖家[上传人]:M****1
  • 文档编号:400432650
  • 上传时间:2023-05-17
  • 文档格式:DOC
  • 文档大小:56.50KB
  • / 7 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    •  在精拟定位控制系统中,为了提高控制精度,精确测量控制对象的位置是十分重要的目前,检测位置的措施有两种:其一是使用位置传感器,测量到的位移量由变送器经A/D转换成数字量送至系统进行进一步解决此措施精度高,但在多路、长距离位置监控系统中,由于其成本昂贵,安装困难,因此并不实用;其二是采用光电轴角编码器进行精确位置控制光电轴角编码器根据其刻度措施及信号输出形式,可分为增量式、绝对式以及混合式三种而绝对式编码器是直接输出数字量的传感器,它是运用自然二进制或循环二进制(格雷码)方式进行光电转换的,编码的设计一般是采用自然二进制码、循环二进制码、二进制补码等特点是不要计数器,在转轴的任意位置都可读出一种固定的与位置相相应的数字码;抗干扰能力强,没用累积误差;电源切断后位置信息不会丢失,但辨别率是由二进制的位数决定的,根据不同的精度规定,可以选择不同的辨别率即位数目前有10位、11位、12位、13位、14位或更高位等多种  其中采用循环二进制编码的绝对式编码器,其输出信号是一种数字排序,不是权重码,每一位没有拟定的大小,不能直接进行比较大小和算术运算,也不能直接转换成其她信号,要通过一次码变换,变成自然二进制码,在由上位机读取以实现相应的控制。

      而在码制变换中有不同的解决方式,本文着重简介二进制格雷码与自然二进制码的互换 一、格雷码(又叫循环二进制码或反射二进制码)简介   在数字系统中只能辨认0和1,多种数据要转换为二进制代码才干进行解决,格雷码是一种无权码,采用绝对编码方式,典型格雷码是一种具有反射特性和循环特性的单步自补码,它的循环、单步特性消除了随机取数时浮现重大误差的也许,它的反射、自补特性使得求反非常以便格雷码属于可靠性编码,是一种错误最小化的编码方式,由于,自然二进制码可以直接由数/模转换器转换成模拟信号,但某些状况,例如从十进制的3转换成4时二进制码的每一位都要变,使数字电路产生很大的尖峰电流脉冲而格雷码则没有这一缺陷,它是一种数字排序系统,其中的所有相邻整数在它们的数字表达中只有一种数字不同它在任意两个相邻的数之间转换时,只有一种数位发生变化它大大地减少了由一种状态到下一种状态时逻辑的混淆此外由于最大数与最小数之间也仅一种数不同,故一般又叫格雷反射码或循环码下表为几种自然二进制码与格雷码的对照表:十进制数自然二进制数格雷码十进制数自然二进制数格雷码000000000810001100100010001910011101200100011101010111130011001011101111104010001101211001010501010111131101101160110010114111010017011101001511111000二、二进制格雷码与自然二进制码的互换1、自然二进制码转换成二进制格雷码  自然二进制码转换成二进制格雷码,其法则是保存自然二进制码的最高位作为格雷码的最高位,而次高位格雷码为二进制码的高位与次高位相异或,而格雷码其他各位与次高位的求法相类似。

      2、二进制格雷码转换成自然二进制码   二进制格雷码转换成自然二进制码,其法则是保存格雷码的最高位作为自然二进制码的最高位,而次高位自然二进制码为高位自然二进制码与次高位格雷码相异或,而自然二进制码的其他各位与次高位自然二进制码的求法相类似三、二进制格雷码与自然二进制码互换的实现措施1、自然二进制码转换成二进制格雷码   A)、软件实现法(参见示例工程中的 Binary to Gray)   根据自然二进制转换成格雷码的法则,可以得到如下的代码: static unsigned int DecimaltoGray(unsigned int x) { return x^(x>>1); } //以上代码实现了unsigned int型数据到格雷码的转换,最高可转换32位自然二进制码,超过32位将溢出 static int DecimaltoGray( int x) { return x^(x>>1); } //以上代码实现了 int型数据到格雷码的转换,最高可转换31位自然二进制码,超过31位将溢出。

        上述代码即可用于VC控制程序中,也可以用于单片机控制程序中在单片机程序设计时,若采用汇编语言编程,可以按相似的原理设计程序;若采用C语言编程,则可以直接运用上述代码,但建议用unsigned int函数 B)、硬件实现法  根据自然二进制转换成格雷码的法则,可以得到如下电路图:  上图所示电路图即可用异或集成电路74ls136实现,也可以运用可编程器件PLD等编程实现 2、二进制格雷码转换成自然二进制码A)、软件实现法(参见示例工程中的 Gray to Binary )  根据二进制格雷码转换成自然二进制码的法则,可以得到如下的三种代码方式: · static unsigned int GraytoDecimal(unsigned int x)· {· unsigned int y = x;· while(x>>=1)· y ^= x;· return y;· } · static unsigned int GraytoDecimal(unsigned int x)· {· x^=x>>16;· x^=x>>8;· x^=x>>4;· x^=X>>2;· x^=x^1;· return x;· } · static unsigned int GraytoDecimal(unsigned int x)· {· int i;· for(i=0;(1<>(1<

      将数据类型改为int型即可实现31位格雷码转换   上述代码即可用于VC控制程序中,也可以用于单片机控制程序中在单片机程序设计时,若采用汇编语言编程,可以按相似的原理设计程序;若采用C语言编程,则可以直接运用上述代码,但建议用unsigned int函数B)、硬件实现法  根据二进制格雷码转换成自然二进制码的法则,可以得到如下电路图:上图所示电路图即可用异或集成电路74ls136实现,也可以运用可编程器件PLD等编程实现。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.