二进制与格雷码转换

上传人:大米 文档编号:488584764 上传时间:2023-02-20 格式:DOCX 页数:8 大小:215.04KB
返回 下载 相关 举报
二进制与格雷码转换_第1页
第1页 / 共8页
二进制与格雷码转换_第2页
第2页 / 共8页
二进制与格雷码转换_第3页
第3页 / 共8页
二进制与格雷码转换_第4页
第4页 / 共8页
二进制与格雷码转换_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《二进制与格雷码转换》由会员分享,可在线阅读,更多相关《二进制与格雷码转换(8页珍藏版)》请在金锄头文库上搜索。

1、之巴公共开创作创作时间:贰零贰壹年柒月贰叁拾日在精确定位控制系统中,为了提高控制精度,准确丈量控制对象的位置是十分重要的。目前,检测位置的法子有两种:其一是使用位置传感器,丈量到的位移量由变送器经A/D转换成数字量送至系统进行进一步处理。此方法精度高,但在多路、长距离位置监控系统中,由于其成本昂贵,装置困难,因此其实不实用;其二是采取光电轴角编码器进行精确位置控制。光电轴角编码器根据其刻度方法及信号输出形式,可分为增量式、绝对式以及混合式三种。而绝对式编码器是直接输出数字量的传感器,它是利用自然二进制或循环二进制(格雷码)方式进行光电转换的,编码的设计一般是采取自然二进制码、循环二进制码、二进

2、制补码等。特点是不要计数器,在转轴的任意位置都可读出一个固定的与位置相对应的数字码;抗干扰能力强,没用累积误差;电源切断后位置信息不会丢失,但分辨率是由二进制的位数决定的,根据分歧的精度要求,可以选择分歧的分辨率即位数。目前有10位、11位、12位、13位、14位或更高位等多种。其中采取循环二进制编码的绝对式编码器,其输出信号是一种数字排序,不是权重码,每一位没有确定的大小,不克不及直接进行比较大小和算术运算,也不克不及直接转换成其他信号,要经过一次码变换,酿成自然二进制码,在由上位机读取以实现相应的控制。而在码制变换中有分歧的处理方式,本文着重介绍二进制格雷码与自然二进制码的互换。一、格雷码

3、(又叫循环二进制码或反射二进制码)介绍在数字系统中只能识别0和1,各种数据要转换为二进制代码才干进行处理,格雷码是一种无权码,采取绝对编码方式,典型格雷码是一种具有反射特性和循环特性的单步自补码,它的循环、单步特性消除了随机取数时出现重大误差的可能,它的反射、自补特性使得求反非常方便。格雷码属于可靠性编码,是一种错误最小化的编码方式,因为,自然二进制码可以直接由数/模转换器转换成模拟信号,但某些情况,例如从十进制的3转换成4时二进制码的每一位都要变,使数字电路发生很大的尖峰电流脉冲。而格雷码则没有这一缺点,它是一种数字排序系统,其中的所有相邻整数在它们的数字暗示中只有一个数字分歧。它在任意两个

4、相邻的数之间转换时,只有一个数位发生变更。它大大地减少了由一个状态到下一个状态时逻辑的混淆。另外由于最大数与最小数之间也仅一个数分歧,故通常又叫格雷反射码或循环码。下表为几种自然二进制码与格雷码的对照表:十进制数自然二进制数格雷码十进制数自然二进制数格雷码000000000810001100100010001910011101200100011101010111130011001011101111104010001101211001010501010111131101101160110010114111010017011101001511111000二、二进制格雷码与自然二进制码的互换1、 自

5、然二进制码转换成二进制格雷码自然二进制码转换成二进制格雷码,其法则是保存自然二进制码的最高位作为格雷码的最高位,而次高位格雷码为二进制码的高位与次高位相异或,而格雷码其余各位与次高位的求法相类似。某二进制数为凡鸟耳与异或运算I其对应的格雷科为GQGo相同为0相异其中最高位保留Gy=B-其他各位G1二耳也旦=0,1,2,-2例:二进制数为1011。II3*4*格雷柏为111012、 二进制格雷码转换成自然二进制码二进制格雷码转换成自然二进制码,其法则是保存格雷码的最高位作为自然二进制码的最高位,而次高位自然二进制码为高位自然二进制码与次高位格雷码相异或,而自然二进制码的其余各位与次高位自然二进制

6、码的求法相类似。某二进制格雷码为GGG0其时应的自然二进制码为及-出时2打耳与异或运算:相同为0I其中:最高位保留相异为i其他各位=Gt后0户1,2,.,-1例!二进制格雷弱为10110自然二进制铝为1/打/:|三、二进制格雷码与自然二进制码互换的实现方法1、自然二进制码转换成二进制格雷码A)、软件实现法(拜见示例工程中的BinarytoGray)根据自然二进制转换成格雷码的法则,可以得到以下的代码:staticunsignedintDecimaltoGray(unsignedintx)returnxA(x1);/以上代码实现了unsignedint型数据到格雷码的转换,最高可转换32位自然二

7、进制码,超出32位将溢出。staticintDecimaltoGray(intx)returnxA(x1);/以上代码实现了int型数据到格雷码的转换,最高可转换31位自然二进制码,超出31位将溢出。上述代码即可用于VC控制程序中,也可以用于单片机控制程序中。在单片机程序设计时,若采取汇编语言编程,可以按相同的原理设计程序;若采取C语言编程,则可以直接利用上述代码,但建议用unsignedint函数。B)、硬件实现法根据自然二进制转换成格雷码的法则,可以得到以下电路上图所示电路图即可用异或集成电路741s136实现,也可以利用可编程器件PLD等编程实现。2、二进制格雷码转换成自然二进制码A)、

8、软件实现法(拜见示例工程中的GraytoBinary)根据二进制格雷码转换成自然二进制码的法则,可以得到以下的三种代码方式:?staticunsignedintGraytoDecima1(unsignedintx)?unsignedinty=x;?while(x=1)yA=x;returny;staticunsignedintGraytoDecimal(unsignedintx)xA=x16;xA=x8;xA=x4;xA=X2;xA=xA1;returnx;staticunsignedintGraytoDecimal(unsignedintx)inti;for(i=0;(1i)(1i);returnx;?/以上代码实现了unsignedint型数据到自然二进制码的转换,最高可转换32位格雷码,超出32位将溢出。将数据类型改为int型即可实现31位格雷码转换。上述代码即可用于VC控制程序中,也可以用于单片机控制程序中。在单片机程序设计时,若采取汇编语言编程,可以按相同的原理设计程序;若采取C语言编程,则可以直接利用上述代码,但建议用unsignedint函数。B)、硬件实现法根据二进制格雷码转换成自然二进制码的法则,可以得到以下电路图:上图所示电路图即可用异或集成电路741s136实现,也可以利用可编程器件PLD等编程实现。创作时间:贰零贰壹年柒月贰叁拾日

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号