格雷码至bcd码的转换器(格雷码转8421码逻辑门电路)

2023-02-21 19:00:21 密码用途 思思

8421BCD码怎么转换成格雷码?

二进制码- 格雷码 (编码):从最右边一位起,依次将每一位与左边一位异或(XOR),作为对应 格雷码 该位的值,最左边一位不变(相当于左边是0); 把8421BCD码换成一般自然二进制数。

格雷码至bcd码的转换器(格雷码转8421码逻辑门电路) 第1张

用两片74138怎么实现二进制转换成格雷码和BCD码

138只能形成最小项,要想得到格雷码和BCD码,必须还有其它的门电路。

----

看第一幅插图,四位的8421码和四位格雷码,存在着对应关系。

格雷码的每一位,也都和D3D2D1D0的最小项存在着对应关系。

把G0=1的各个最小项相加(相或),即可得到由D3D2D1D0变换出来的G0,这可以看第二张插图。

G1、G2、G3等等,楼主都可以仿照第二张插图绘出。

用单片机实现格雷码与BCD码的转换

四位 BCD 码转换成格雷码后是 16 位还是 13 位?

四位的 BCD 码,是指“四个一位的十进制数”?

还是“一个四位的十进制数”?

如果是前者,就应该:分别求每个 BCD 码的格雷码,共有 16 位。

如果是后者,就应该:先将其转换成 8421 码,然后再求格雷码。

 

要将 4 位 BCD 码,也就是16bit二进制转换成格雷码,怎么用单片机实现?

查表,最简单了,但是占用空间较大。

 

如果用两片 2764 EPROM 怎么实现转换成 13位 格雷码呢?

你既然想用 2764,那就是查表法了。

请教:关于用格雷码定位的问题?

根据公式,自己写一个

格雷码

转换二进制

的FC块就行了.格雷码的最高位赋值给二进制的最高位,然后格格雷码的第x位与x-1位

异或

,赋值给二进制的第x-1位,依次类推.......给你贴一段在网上找的:(遇到这种问题先google或者baidu,可能会有很大收获啊,呵呵)

格雷码的转换方法

这种方法基于格雷码是反射码的事实,利用递归的如下规则来构造: 1位格雷码有两个码字 (n+1)位格雷码中的前2n个码字等于n位格雷码的码字,按顺序书写,加前缀0 (n+1)位格雷码中的后2n个码字等于n位格雷码的码字,按逆序书写,加前缀1 n+1位格雷码的集合 = n位格雷码集合(顺序)加前缀0 + n位格雷码集合(逆序)加前缀1 2位格雷码3位格雷码4位格雷码4位自然二进制码00

01

11

10 000

001

011

010

110

111

101

100 0000

0001

0011

0010

0110

0111

0101

0100

1100

1101

1111

1110

1010

1011

1001

1000 0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111 二进制码→格雷码(编码):

此方法从对应的n位二进制码字中直接得到n位格雷码码字,步骤如下: 对n位二进制的码字,从右到左,以0到n-1编号 如果二进制码字的第i位和i+1位相同,则对应的格雷码的第i位为0,否则为1(当i+1=n时,二进制码字的第n位被认为是0,即第n-1位不变) 公式表示:(G:格雷码,B:二进制码) 例如:二进制码0101,为4位数,所以其所转为之格雷码也必为4位数,因此可取转成之二进位码第五位为0,即0 b3 b2 b1 b0。

0 xor 0=0,所以g3=0

0 xor 1=1,所以g2=1

1 xor 0=1,所以g1=1

0 xor 1=1,所以g0=1

因此所转换为之格雷码为0111 格雷码→二进制码(解码):

从左边第二位起,将每位与左边一位解码后的值异或,作为该位解码后的值(最左边一位依然不变)。依次异或,直到最低位。依次异或转换后的值(二进制数)就是格雷码转换后二进制码的值。

公式表示:(G:格雷码,B:二进制码)

原码:p[n:0];格雷码:c[n:0](n∈N);编码:c=G(p);解码:p=F(c);

书写时按从左向右标号依次减小,即MSB-LSB,编解码也按此顺序进行 举例:

如果采集器器采到了格雷码:1010

就要将它变为自然二进制:

0 与第四位 1 进行异或结果为 1

上面结果1与第三位0异或结果为 1

上面结果1与第二位1异或结果为 0

上面结果0与第一位0异或结果为 0

因此最终结果为:1100 这就是二进制码即十进制 12

当然人看时只需对照表1一下子就知道是12 ...................c[n]=p[n],

解码: 利用卡诺图相邻两格只有一位变化以及卡诺图的变量取值以低阶格雷码的顺序排布的特征,可以递归得到高阶格雷码。由于此方法相对繁琐,使用较少。生成格雷码的步骤如下: 将卡诺图变量分为两组,变量数目相近(最好相等) 以逻辑变量高位在左低位在右建立卡诺图 从卡诺图的左上角以之字形到右上角最后到左下角遍历卡诺图,依次经过格子的变量取值即为典型格雷码的顺序 三位格雷码(三位格雷码由建立在二位基础上) AB╲ C 0 1 00 0→ 1↓ 01 ↓2 ←3 11 6→ 7↓ 10 4 ←5 格雷码次序:000起点→001→011→010→110→111→101→100终点

四位格雷码 AB╲CD 00 01 11 10 00 0→ 1→ 3→ 2↓ 01 ↓4 ←5 ←7 ←6 11 12→ 13→ 15→ 14↓ 10 8 ←9 ←11 ←10 格雷码次序:0000起点→0001→0011→0010→0110→0111→0101→0100→1100→1101→

1111→1110→1010→1011→1001→1000终点 用异或代替加减进行二进制竖式乘除,称为异或乘除,它的特点是无进退位。

如:10101除以11将变成1100余1。

二进制转格雷码:

只要异或乘以二分之三,即二进制的1.1,然后忽略小数部分;也可以理解成异或乘以三(即11),再右移一位。

格雷码转二进制:

异或除以三分之二,即除以1.1,忽略余数;或者左移一位,再异或除以三,忽略余数。