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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PIC單片機(jī)實(shí)現(xiàn)CRC的小程序

          PIC單片機(jī)實(shí)現(xiàn)CRC的小程序

          作者: 時(shí)間:2011-03-08 來源:網(wǎng)絡(luò) 收藏
          PIC實(shí)現(xiàn)CRC的小程序

          PIC實(shí)現(xiàn)Dallas的iButton通訊時(shí),編了段產(chǎn)生和校驗(yàn)CRC的子程序。
          ;PIC www.pic16.com
          #includeP16CE625.INC>

          ;-------------------------------
          cblock0x20
          datBuff:8;assign8bytedatabuffer
          bit_cnt;bitcounting
          CRC_COUNT;numberofbytesforCRC
          CRC_RESULT;CRCresulr
          crc_temp;temporarydatabufferduringCRC
          endc

          ;-------------------------------
          #defineskp0btfsc
          #defineskp1btfss


          ;===============================
          org0x000

          movlw.7
          movwfCRC_COUNT
          movlwdatBuff
          movwfFSR;FSRpointtodatabuffer
          callCRC_CHECK
          movwfdatBuff+7
          goto$

          ;===============================
          ;CHECKTHECRCFOR?BYTESDATA
          ;ForthepolynomialofX^8+X^5+X^4+1
          ;DerivedfromDallas'siButtonstandard
          ;Beforecalling,FSR=databuffer
          ;CRC_COUNT=numberofbytesforCRC
          CRC_CHECK;~~~~~~~~~~~~~~~
          clrfCRC_RESULT;initializetheCRCbuffer
          _crc_00
          movlw.8;numberofbitsforonebyte
          movwfbit_cnt;setbitcounter
          movfINDF,w;getonedatabyte
          movwfcrc_temp;copytotemporarylocation
          _crc_01
          rrfcrc_temp,f;getLSBinC
          skpc;isthisLSB=1?
          goto_crc_02;goifLSB=0
          movlw0x01;doifLSB=1
          xorwfCRC_RESULT,f
          _crc_02
          rrfCRC_RESULT,w;getLSBofCRC
          skpc;testLSB
          goto_crc_03;goifLSB=0
          movlw0x18;doifLSB=1
          xorwfCRC_RESULT,f;polynomialimplementation
          _crc_03
          rrfCRC_RESULT,w;wholebyterightrotate
          rrfCRC_RESULT,f
          decfszbit_cnt,f;bitcounting
          goto_crc_01;goonuntilaa8bitsdone
          incfFSR,f;pointerupdatetonextbyte
          decfszCRC_COUNT,f;bytecounting
          goto_crc_00;goonuntilallbytedone
          movfCRC_RESULT,w;getCRC,ZsetifCRC=0
          return;returnwithCRCinW

          END


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(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); })();