新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 串行LED譯碼/驅動器件TEC9607在PIC16C5X系列單片機中的應用

        串行LED譯碼/驅動器件TEC9607在PIC16C5X系列單片機中的應用

        作者: 時間:2012-02-28 來源:網絡 收藏


        SI  EQU 1   ;RA1為串行數據輸入端
        SCP EQU 2   ;RA2為時鐘端
        BUFF EQU 10H  ;數據緩存
        MBUF EQU 13H  ;13H,14H,15H,16H四個寄存器為顯示緩存
                 ;13H最低位顯示段碼
                 ;14H次低位顯示段碼
                 ;15H次高位顯示段碼
                 ;16H最高位顯示段碼
                 ;17H為任意數
        DISBUF EQU OEH  ;OEH,OFH為壓縮式顯示數據
                  ;OEH高兩位顯示數據
                 ;OFH低兩位顯示數據
        BIT  EQU  9 ;每字節位數(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 ;取出最低位待顯數據
               ANDLW  0FH
              ADDWF BUFF,0 ;BUFF+W→W      取得段碼表中的偏移地址
             CALL CONVERT ;轉段碼查詢子程序
            MOVWF  0      ;段碼值送W
            INCF    FSR    ;WF13
        ;以下依次完成高三位數據嘍溫脛檔淖換
            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為輸出狀態
            TRIS    RA
            BCF RA,  SI
            BCF    RA,  SCP
            MOVLW  MBUF
            MOVWF  FSR
            MOVLW  5      ;傳送5字節數據
            MOVWF  TRBUF
          DIS1 MOVF 0,0 ;碼段值W
            MOVWF  BUFF ;W嗨褪據暫存器BUFF
            INCF    FSR
            MOVLW 8
            MONWF  BIT     ;一字節有8位
          DIS2 BSF RA, CLK   ;CLK端拉成高電平 BTFSC BUFF,7
           BSF RA,SDA  ;數據暫存器D7位送data線
           BTFSS BUFF,7
           BCF RA,SDA
           RLF BUFF  ;數據暫存器左移一位
           BCF RA,CLK ;CLK端被拉成低電平,在其下降沿把data線上的數據采集進去
           DECFSZ BIT
           GOTO DIS2 ;一字節未送完,返回
           DECFSZ TRBUF
           GOTO DIS1  ;三字節未送完,返回
           BSF RA,CL  ;操作結束
           BSF RA,EN
           RETLW 0

        51單片機相關文章:51單片機教程



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 云林县| 弥渡县| 平顶山市| 工布江达县| 海城市| 伊金霍洛旗| 讷河市| 盐亭县| 彰武县| 靖江市| 庆城县| 兰州市| 遵义县| 格尔木市| 邓州市| 铅山县| 汤原县| 买车| 青海省| 来宾市| 淳安县| 大厂| 东至县| 湟中县| 灌云县| 望谟县| 巴彦淖尔市| 游戏| 淮滨县| 呼图壁县| 天门市| 太谷县| 华容县| 鹿泉市| 昌图县| 分宜县| 毕节市| 万山特区| 蒙自县| 岑巩县| 韶山市|