<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 分布式發(fā)電機(jī)勵(lì)磁監(jiān)控系統(tǒng)的設(shè)計(jì)

          分布式發(fā)電機(jī)勵(lì)磁監(jiān)控系統(tǒng)的設(shè)計(jì)

          作者: 時(shí)間:2011-07-29 來(lái)源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/161737.htm

          (1)設(shè)置CRC寄存器,并給其賦初值FFFFHEX。

          (2)將全部數(shù)據(jù)的第一個(gè)8bit數(shù)據(jù)與16位CRC寄存器的低8位進(jìn)行異或,并把結(jié)果存入CRC寄存器。

          (3)CRC寄存器整體向右移一位,MSB補(bǔ)零,移出并檢查LSB。

          (4)如果LSB為0,重復(fù)第三步;若LSB為1,CRC寄存器與多項(xiàng)式碼相異或。

          (5)重復(fù)第(3)與第(4)步直到8次移位全部完成。此時(shí)一個(gè)8bit數(shù)據(jù)處理完畢。

          (6)重復(fù)第(2)至第(5)步直到所有數(shù)據(jù)全部處理完畢。

          (7)最終CRC寄存器的內(nèi)容即為CRC值。

          Delphi6.0環(huán)境下CRC-16實(shí)現(xiàn)的函數(shù)如下:

          function CRC16CRC_Dataarray of ByteDATA_Leninteger word

          var

          CRC16LoCRC16Hibyte //CRC 寄存器

          SaveLoSaveHibyte //CRC 中間寄存器

          GLoGHibyte //生成多項(xiàng)式

          iinteger //需校驗(yàn)數(shù)據(jù)的字節(jié)數(shù)

          Flaginteger //移位的次數(shù)(8次)

          begin

          CRC16Lo=byte$ff

          CRC16Hi=byte$ff //給CRC寄存器賦初值

          $ffff(HEX)

          GLo=byte$01

          GHi=byte$a0 //多項(xiàng)式碼$a001(HEX)

          for i=0 to DATA_Len-1 do //各字節(jié)數(shù)據(jù)

          begin

          CRC16Lo=CRC16Lo xor CRC_Datai //各字節(jié)數(shù)據(jù)

          與CRC寄存器進(jìn)行異或

          for Flag=0 to 7 do

          begin

          SaveLo=CRC16Lo

          SaveHi=CRC16Hi

          CRC16Hi=CRC16Hi shr 1 //高字節(jié)右移一位

          CRC16Lo=CRC16Lo shr 1 //低字節(jié)右移一位

          if SaveHi and byte$01=byte$01 then

          //若高字節(jié)LSB為1,則低字節(jié)MSB置1

          CRC16Lo=CRC16Lo or byte$80

          if SaveLo and byte$01=byte$01 then

          //若低字節(jié)LSB為1,則與多項(xiàng)式碼進(jìn)行異或

          begin

          CRC16Hi=CRC16Hi xor GHi

          CRC16Lo=CRC16Lo xor GLo

          end

          end

          end

          CRC16=CRC16Lo256+CRC16Hi //CRC低字節(jié)在

          前,高字節(jié)在后

          end

          用雙微機(jī)松耦合實(shí)現(xiàn)了控制微機(jī)與通信控制微機(jī)之間的數(shù)據(jù)交換,并通過(guò)通信控制微機(jī)完成與上位機(jī)之間的通信,將調(diào)節(jié)器的任務(wù)進(jìn)行分散,增強(qiáng)了裝置的功能和可靠性。該系統(tǒng)已在國(guó)內(nèi)多個(gè)中、小型水電站投入運(yùn)行,運(yùn)行穩(wěn)定,得到用戶(hù)的好評(píng)。


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();