日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

二進制格雷碼與自然二進制碼的互換分析

454398 ? 來源:博客園 ? 作者: 半面人 ? 2020-09-23 16:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

二、二進制格雷碼與自然二進制碼的互換

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


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

三、二進制格雷碼與自然二進制碼互換的實現(xiàn)方法

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

static unsigned int DecimaltoGray(unsigned int x)

{

return x^(x>>1);

}

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

static int DecimaltoGray( int x)

{

return x^(x>>1);

}

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

上述代碼即可用于VC控制程序中,也可以用于單片機控制程序中。在單片機程序設計時,若采用匯編語言編程,可以按相同的原理設計程序;若采用C語言編程,則可以直接利用上述代碼,但建議用unsigned int函數(shù)。
B)、硬件實現(xiàn)法
根據自然二進制轉換成格雷碼的法則,可以得到以下電路圖:


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

2、二進制格雷碼轉換成自然二進制碼
A)、軟件實現(xiàn)法(參見示例工程中的 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<

· {

· x^=x>>(1<

· }

· return x;

· }

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


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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    什么是

    (Gray code),又叫循環(huán)二進制碼或反射二進制碼 在數(shù)字系統(tǒng)中只能識別0和1,各種數(shù)據要轉換為
    發(fā)表于 11-11 09:34 ?8367次閱讀
    什么是<b class='flag-5'>格</b><b class='flag-5'>雷</b><b class='flag-5'>碼</b>

    二進制碼詳解

    的權為21=2,b2位的權為22=4,b3位的權為23=8,例: 0111= 0×8 + 1×4 + 1×2 + 1×1=7  一般情況下,十進制二進制碼之間的關系可表示為:(N)D= b3 W3 + b2 W2 + b1
    發(fā)表于 04-06 23:55

    二進制自然二進制碼互換

    變換,變成自然二進制碼,在由上位機讀取以實現(xiàn)相應的控制。而在制變換中有不同的處理方式,本文著重介紹二進制
    發(fā)表于 03-08 14:16

    簡介及格二進制的轉換程序

    *由上面的數(shù)據可看出.如果,按照序號01327645的方式遍歷.其編 * 實值是按自然數(shù)順序排列.反之,如果按此順序遍歷其
    發(fā)表于 04-22 09:00

    簡介及格二進制的轉換程序

    簡介及格二進制的轉換程序
    發(fā)表于 01-16 11:52 ?5542次閱讀

    二進制碼

    二進制碼   數(shù)字系統(tǒng)中的信息可分為兩類,一類是數(shù)值,另一類是文字符號(包括控制符)?! 〈a:采用一定位數(shù)的二進制數(shù)碼來表示文字符號
    發(fā)表于 04-06 23:55 ?5194次閱讀
    <b class='flag-5'>二進制碼</b>

    采用減法計數(shù)簡化~十進制二進制碼變換

    采用減法計數(shù)簡化~十進制二進制碼變換
    發(fā)表于 04-10 10:06 ?832次閱讀
    采用減法計數(shù)簡化<b class='flag-5'>二</b>~十<b class='flag-5'>進制</b>一<b class='flag-5'>二進制碼</b>變換

    二進制碼——葛來變換器

    二進制碼——葛來變換器
    發(fā)表于 04-10 10:07 ?710次閱讀
    <b class='flag-5'>二進制碼</b>——葛來<b class='flag-5'>碼</b>變換器

    二進制編碼和二進制數(shù)據

    二進制編碼和二進制數(shù)據   二進制編碼是計算機內使用最多的制,它只使用兩個基本符號"0"和"1",并且通過由這兩個符號組成的
    發(fā)表于 10-13 16:22 ?5256次閱讀

    bcd二進制碼有什么區(qū)別

    二進制是由1和0兩個數(shù)字組成的,它可以表示兩種狀態(tài),即開和關。所有輸入電腦的任何信息最終都要轉化為二進制。目前通用的是ASCII。最基本的單位為bit。BCD亦稱
    發(fā)表于 11-24 09:26 ?4.3w次閱讀

    二進制公式

    在一組數(shù)的編碼中,若任意兩個相鄰的代碼只有一位二進制數(shù)不同,則稱這種編碼為(Gray Code),另外由于最大數(shù)與最小數(shù)之間也僅一位數(shù)不同,即“首尾相連”,因此又稱循環(huán)
    的頭像 發(fā)表于 03-02 14:47 ?4w次閱讀
    <b class='flag-5'>二進制</b>轉<b class='flag-5'>格</b><b class='flag-5'>雷</b><b class='flag-5'>碼</b>公式

    二進制的轉換

    ,又叫循環(huán)二進制碼或反射二進制碼,
    的頭像 發(fā)表于 03-02 15:48 ?2w次閱讀
    <b class='flag-5'>格</b><b class='flag-5'>雷</b><b class='flag-5'>碼</b>與<b class='flag-5'>二進制</b>的轉換

    FPGA學習系列:33. 二進制二進制的設計

    錯誤或輸入錯誤。使用可以避免這種錯誤。有多種編碼形式。
    的頭像 發(fā)表于 08-28 16:16 ?4120次閱讀

    如何把二進制轉換為?是如何判斷讀空寫滿呢?

    在傳遞讀寫時鐘域的指針使用來傳遞,如何把二進制轉換為
    的頭像 發(fā)表于 09-15 09:38 ?9344次閱讀
    如何把<b class='flag-5'>二進制</b>轉換為<b class='flag-5'>格</b><b class='flag-5'>雷</b><b class='flag-5'>碼</b>?<b class='flag-5'>格</b><b class='flag-5'>雷</b><b class='flag-5'>碼</b>是如何判斷讀空寫滿呢?

    二進制轉換

    是一種循環(huán)二進制編碼,特點是相鄰數(shù)變化時只有一位數(shù)據跳變。
    的頭像 發(fā)表于 01-17 11:15 ?7327次閱讀
    <b class='flag-5'>格</b><b class='flag-5'>雷</b><b class='flag-5'>碼</b>與<b class='flag-5'>二進制</b>轉換
    宜黄县| 玉环县| 承德市| 桂平市| 揭西县| 弥渡县| 芜湖县| 临汾市| 玛纳斯县| 吉林省| 麻城市| 分宜县| 桦川县| 米泉市| 石渠县| 宁强县| 建湖县| 东明县| 尼玛县| 凉城县| 平武县| 孟州市| 当阳市| 北宁市| 梅河口市| 龙山县| 五常市| 巴林左旗| 泗洪县| 洪江市| 桃园市| 沁源县| 胶州市| 刚察县| 呼伦贝尔市| 沽源县| 苏州市| 汾西县| 铜川市| 舞阳县| 辉县市|