新聞中心

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

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

        作者: 時(shí)間:2011-03-08 來(lái)源:網(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ù)專(zhuān)區(qū)

        關(guān)閉
        主站蜘蛛池模板: 瑞昌市| 托克逊县| 林甸县| 水城县| 瑞安市| 綦江县| 平遥县| 上蔡县| 靖远县| 青龙| 任丘市| 长丰县| 凤庆县| 得荣县| 泸州市| 土默特右旗| 黔江区| 新化县| 上林县| 建宁县| 漳平市| 疏勒县| 于田县| 台前县| 上虞市| 韩城市| 万载县| 嘉义市| 贵溪市| 永寿县| 马鞍山市| 交口县| 三台县| 萨迦县| 育儿| 神池县| 建昌县| 嘉祥县| 井冈山市| 来宾市| 益阳市|