• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 串行LED譯碼/驅(qū)動器件TEC9607在PIC16C5X系列單片機中的應(yīng)用

    串行LED譯碼/驅(qū)動器件TEC9607在PIC16C5X系列單片機中的應(yīng)用

    作者: 時間:2012-02-28 來源:網(wǎng)絡(luò) 收藏


    SI  EQU 1   ;RA1為串行數(shù)據(jù)輸入端
    SCP EQU 2  ?。籖A2為時鐘端
    BUFF EQU 10H  ;數(shù)據(jù)緩存
    MBUF EQU 13H  ;13H,14H,15H,16H四個寄存器為顯示緩存
            ??;13H最低位顯示段碼
            ?。?4H次低位顯示段碼
             ;15H次高位顯示段碼
            ??;16H最高位顯示段碼
             ;17H為任意數(shù)
    DISBUF EQU OEH  ;OEH,OFH為壓縮式顯示數(shù)據(jù)
              ;OEH高兩位顯示數(shù)據(jù)
            ??;OFH低兩位顯示數(shù)據(jù)
    BIT  EQU  9?。幻孔止?jié)位數(shù)(8)
    FSR EQU  4  ;文件選擇寄存器
    RA  EQU  5   ;I/O端口A
    CONVERT  MOVWF  2  ;PC=W
    TABLE  RETLW   0FCH   ;“ 0
           RETLW 60H ??;“1”
           RETLW  0DAH??; “2”
          RETLW  0F2H  ;“3  
        RETLW  66H ; “4”
          RETLW  0B6H  ; “5
          RETLW  0BEH  ;“6
          RETLW  0E4H  ;“7
          RETLW  0FEH   ;“8
          RETLW  0F6H  ;“9
          RETLW  00H   ;“
          ETLW  7CH  ??; “U
          RETLW  9EH ??;“E
          RETLW  00H   ;“
          RETLW  00H   ;“
          RETLW  00H   ;“
    DIS  MOVLW MBUF ;將顯示段碼寄存器    首址(f13)送f4
           MOVWF  FSR
           MOVLW  TABLE ;把段碼表起始地址     送BUFF
           MOVWF  BUFF
            MOVF 0FH,0 ;取出最低位待顯數(shù)據(jù)
           ANDLW  0FH
          ADDWF BUFF,0?。籅UFF+W→W      取得段碼表中的偏移地址
         CALL CONVERT ;轉(zhuǎn)段碼查詢子程序
        MOVWF  0      ;段碼值送W
        INCF    FSR    ;WF13
    ;以下依次完成高三位數(shù)據(jù)嘍溫脛檔淖換
        MOVLW  TABLE
        MOVWF  BUFF
        MOVF   0FH,0
        MOVWF  TRBUF
        SWAPF   TRBUF,0
        ANDLW   0FH
        ADDWF   BUFF,0
        CALL    CONVERT
        MOVWF  0
        INCF    FSR
        MOVLW TABLE
        MOVWF BUFF
        MOVF   OEH,0
        ANDLW  0FH
        ADDWF  BUFF,0
        CALL   CONVERT
        MOVWF 0
        INCF FSR
        MOVLW TABLE
        MOVWF BUFF
        MOVF   0EH,0
        MOVWF TRBUF
        SWAPF TRBUF,0
        ANDLW 0FH
        ADDWF BUFF,0
        CALL   CONVERT
        MOVWF  0
        MOVLW  30H  ;使RA1,RA2為輸出狀態(tài)
        TRIS    RA
        BCF RA,  SI
        BCF    RA,  SCP
        MOVLW  MBUF
        MOVWF  FSR
        MOVLW  5     ??;傳送5字節(jié)數(shù)據(jù)
        MOVWF  TRBUF
      DIS1 MOVF 0,0??;碼段值W
        MOVWF  BUFF??;W嗨褪據(jù)暫存器BUFF
        INCF    FSR
        MOVLW 8
        MONWF  BIT     ;一字節(jié)有8位
      DIS2 BSF RA, CLK   ;CLK端拉成高電平 BTFSC BUFF,7
       BSF RA,SDA  ;數(shù)據(jù)暫存器D7位送data線
       BTFSS BUFF,7
       BCF RA,SDA
       RLF BUFF ?。粩?shù)據(jù)暫存器左移一位
       BCF RA,CLK ;CLK端被拉成低電平,在其下降沿把data線上的數(shù)據(jù)采集進去
       DECFSZ BIT
       GOTO DIS2 ;一字節(jié)未送完,返回
       DECFSZ TRBUF
       GOTO DIS1  ;三字節(jié)未送完,返回
       BSF RA,CL ??;操作結(jié)束
       BSF RA,EN
       RETLW 0

    51單片機相關(guān)文章:51單片機教程



    上一頁 1 2 下一頁

    評論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 田林县| 贵港市| 大丰市| 安徽省| 富裕县| 阳城县| 英吉沙县| 抚宁县| 玛多县| 昭通市| 绥宁县| 镇原县| 建德市| 湖北省| 江北区| 正宁县| 高雄县| 毕节市| 永寿县| 威海市| 平远县| 明水县| 峨边| 西充县| 郯城县| 繁昌县| 高台县| 平遥县| 桑植县| 孟连| 西丰县| 扎赉特旗| 梅州市| 梧州市| 侯马市| 苍山县| 定远县| 本溪| 尤溪县| 海城市| 集安市|