久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6232|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

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

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:80436 發(fā)表于 2015-5-21 22:44 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式

在精確定位控制系統(tǒng)中,為了提高控制精度,準(zhǔn)確測量控制對象的位置是十分重要的。目前,檢測位置的辦法有兩種:其一是使用位置傳感器,測量到的位移量由變送器經(jīng)A/D轉(zhuǎn)換成數(shù)字量送至系統(tǒng)進(jìn)行進(jìn)一步處理。此方法精度高,但在多路、長距離位置監(jiān)控系統(tǒng)中,由于其成本昂貴,安裝困難,因此并不實(shí)用;其二是采用光電軸角編碼器進(jìn)行精確位置控制。光電軸角編碼器根據(jù)其刻度方法及信號輸出形式,可分為增量式、絕對式以及混合式三種。而絕對式編碼器是直接輸出數(shù)字量的傳感器,它是利用自然二進(jìn)制或循環(huán)二進(jìn)制(格雷碼)方式進(jìn)行光電轉(zhuǎn)換的,編碼的設(shè)計一般是采用自然二進(jìn)制碼、循環(huán)二進(jìn)制碼、二進(jìn)制補(bǔ)碼等。特點(diǎn)是不要計數(shù)器,在轉(zhuǎn)軸的任意位置都可讀出一個固定的與位置相對應(yīng)的數(shù)字碼;抗干擾能力強(qiáng),沒用累積誤差;電源切斷后位置信息不會丟失,但分辨率是由二進(jìn)制的位數(shù)決定的,根據(jù)不同的精度要求,可以選擇不同的分辨率即位數(shù)。目前有10位、11位、12位、13位、14位或更高位等多種。

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

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

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

十進(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è)計時,若采用匯編語言編程,可以按相同的原理設(shè)計程序;若采用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è)計時,若采用匯編語言編程,可以按相同的原理設(shè)計程序;若采用C語言編程,則可以直接利用上述代碼,但建議用unsigned int函數(shù)。

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

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

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




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 最新高清无码专区 | 天天影视综合 | 色婷婷激情综合 | 亚洲成人自拍 | 欧美一级片久久 | 亚洲精品久久久久久久久久吃药 | 国产精品成人一区 | 91精品国产综合久久婷婷香蕉 | 久久成人久久 | 婷婷综合久久 | 日韩一区精品 | 精品国产欧美一区二区 | 天天视频一区二区三区 | 五月激情综合 | 免费毛片网站 | 亚洲精品一区国语对白 | 日韩成年人视频在线 | 国产一区二区视频在线观看 | 91精品国模一区二区三区 | www.日韩 | 欧美区在线 | 国产精品一区在线 | 久久精品一区二区三区四区 | 欧美色999| 九一精品 | 欧美毛片免费观看 | 成人免费在线电影 | 国产成人免费视频 | 91视频电影 | 国产成人91视频 | 午夜理伦三级理论三级在线观看 | 一区二区三区在线免费 | 中文字幕在线播放第一页 | 综合网视频 | 久久99精品久久久久久青青日本 | 国产精品久久9 | 中国大陆高清aⅴ毛片 | 国产精品视频999 | 久久久av | 亚洲国产区| 韩国av网站在线观看 |