小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

介紹二進(jìn)制格雷碼與自然二進(jìn)制碼的互換

 昵稱12483407 2013-05-30

錯(cuò)開異或 得結(jié)果
  其中采用循環(huán)二進(jìn)制編碼的絕對(duì)式編碼器,其輸出信號(hào)是一種數(shù)字排序,不是權(quán)重碼,每一位沒有確定的大小,不能直接進(jìn)行比較大小和算術(shù)運(yùn)算,也不能直接轉(zhuǎn)換成其他信號(hào),要經(jīng)過一次碼變換,變成自然二進(jìn)制碼,在由上位機(jī)讀取以實(shí)現(xiàn)相應(yīng)的控制。而在碼制變換中有不同的處理方式,本文著重介紹二進(jìn)制格雷碼與自然二進(jìn)制碼的互換。

一、格雷碼(又叫循環(huán)二進(jìn)制碼或反射二進(jìn)制碼)介紹

  在數(shù)字系統(tǒng)中只能識(shí)別01,各種數(shù)據(jù)要轉(zhuǎn)換為二進(jìn)制代碼才能進(jìn)行處理,格雷碼是一種無權(quán)碼,采用絕對(duì)編碼方式,典型格雷碼是一種具有反射特性和循環(huán)特性的單步自補(bǔ)碼,它的循環(huán)、單步特性消除了隨機(jī)取數(shù)時(shí)出現(xiàn)重大誤差的可能,它的反射、自補(bǔ)特性使得求反非常方便。格雷碼屬于可靠性編碼,是一種錯(cuò)誤最小化的編碼方式,因?yàn)?,自然二進(jìn)制碼可以直接由數(shù)/模轉(zhuǎn)換器轉(zhuǎn)換成模擬信號(hào),但某些情況,例如從十進(jìn)制的3轉(zhuǎn)換成4時(shí)二進(jìn)制碼的每一位都要變,使數(shù)字電路產(chǎn)生很大的尖峰電流脈沖。而格雷碼則沒有這一缺點(diǎn),它是一種數(shù)字排序系統(tǒng),其中的所有相鄰整數(shù)在它們的數(shù)字表示中只有一個(gè)數(shù)字不同。它在任意兩個(gè)相鄰的數(shù)之間轉(zhuǎn)換時(shí),只有一個(gè)數(shù)位發(fā)生變化。它大大地減少了由一個(gè)狀態(tài)到下一個(gè)狀態(tài)時(shí)邏輯的混淆。另外由于最大數(shù)與最小數(shù)之間也僅一個(gè)數(shù)不同,故通常又叫格雷反射碼或循環(huán)碼。下表為幾種自然二進(jìn)制碼與格雷碼的對(duì)照表:

十進(jìn)制數(shù)

自然二進(jìn)制數(shù)

格雷碼

十進(jìn)制數(shù)

自然二進(jìn)制數(shù)

格雷碼

0

0000

0000

8

1000

1100

1

0001

0001

9

1001

1101

2

0010

0011

10

1010

1111

3

0011

0010

11

1011

1110

4

0100

0110

12

1100

1010

5

0101

0111

13

1101

1011

6

0110

0101

14

1110

1001

7

0111

0100

15

1111

1000


二、二進(jìn)制格雷碼與自然二進(jìn)制碼的互換

1
、自然二進(jìn)制碼轉(zhuǎn)換成二進(jìn)制格雷碼
  自然二進(jìn)制碼轉(zhuǎn)換成二進(jìn)制格雷碼,其法則是保留自然二進(jìn)制碼的最高位作為格雷碼的最高位,而次高位格雷碼為二進(jìn)制碼的高位與次高位相異或,而格雷碼其余各位與次高位的求法相類似。



2
、二進(jìn)制格雷碼轉(zhuǎn)換成自然二進(jìn)制碼
  二進(jìn)制格雷碼轉(zhuǎn)換成自然二進(jìn)制碼,其法則是保留格雷碼的最高位作為自然二進(jìn)制碼的最高位,而次高位自然二進(jìn)制碼為高位自然二進(jìn)制碼與次高位格雷碼相異或,而自然二進(jìn)制碼的其余各位與次高位自然二進(jìn)制碼的求法相類似。



三、二進(jìn)制格雷碼與自然二進(jìn)制碼互換的實(shí)現(xiàn)方法
1
、自然二進(jìn)制碼轉(zhuǎn)換成二進(jìn)制格雷碼
  A)
、軟件實(shí)現(xiàn)法(參見示例工程中的 Binary to Gray)
  
根據(jù)自然二進(jìn)制轉(zhuǎn)換成格雷碼的法則,可以得到以下的代碼:

      static unsigned int DecimaltoGray(unsigned int x)

      {

         return x^(x>>1);

      }

     

     //以上代碼實(shí)現(xiàn)了unsigned int型數(shù)據(jù)到格雷碼的轉(zhuǎn)換,最高可轉(zhuǎn)換32位自然二進(jìn)制碼,超出32位將溢出。  

      static  int DecimaltoGray( int x)

      {

         return x^(x>>1);

      }

     

      //以上代碼實(shí)現(xiàn)了 int型數(shù)據(jù)到格雷碼的轉(zhuǎn)換,最高可轉(zhuǎn)換31位自然二進(jìn)制碼,超出31位將溢出。      

  上述代碼即可用于VC控制程序中,也可以用于單片機(jī)控制程序中。在單片機(jī)程序設(shè)計(jì)時(shí),若采用匯編語言編程,可以按相同的原理設(shè)計(jì)程序;若采用C語言編程,則可以直接利用上述代碼,但建議用unsigned int函數(shù)。

 B)
、硬件實(shí)現(xiàn)法

  根據(jù)自然二進(jìn)制轉(zhuǎn)換成格雷碼的法則,可以得到以下電路圖:



  上圖所示電路圖即可用異或集成電路74ls136實(shí)現(xiàn),也可以利用可編程器件PLD等編程實(shí)現(xiàn)。

2
、二進(jìn)制格雷碼轉(zhuǎn)換成自然二進(jìn)制碼
A)
、軟件實(shí)現(xiàn)法(參見示例工程中的 Gray to Binary )
  根據(jù)二進(jìn)制格雷碼轉(zhuǎn)換成自然二進(jìn)制碼的法則,可以得到以下的三種代碼方式:

·             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<<i)<sizeof(x)*8;i++)

·                {

·                   x^=x>>(1<<i);

·                }

·                return x;

·             }       

  //以上代碼實(shí)現(xiàn)了unsigned int型數(shù)據(jù)到自然二進(jìn)制碼的轉(zhuǎn)換,最高可轉(zhuǎn)換32位格雷碼,超出32位將溢出。將數(shù)據(jù)類型改為int型即可實(shí)現(xiàn)31位格雷碼轉(zhuǎn)換。
  上述代碼即可用于VC控制程序中,也可以用于單片機(jī)控制程序中。在單片機(jī)程序設(shè)計(jì)時(shí),若采用匯編語言編程,可以按相同的原理設(shè)計(jì)程序;若采用C語言編程,則可以直接利用上述代碼,但建議用unsigned int函數(shù)。

B)
、硬件實(shí)現(xiàn)法
  根據(jù)二進(jìn)制格雷碼轉(zhuǎn)換成自然二進(jìn)制碼的法則,可以得到以下電路圖:



上圖所示電路圖即可用異或集成電路74ls136實(shí)現(xiàn),也可以利用可編程器件PLD等編程實(shí)現(xiàn)。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多