專注電子技術(shù)學習與研究
當前位置:單片機教程網(wǎng) >> MCU設計實例 >> 瀏覽文章

芯海單片機用CS5817芯片控制16位數(shù)碼管

作者:佚名   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2013年02月24日   【字體:


;============================================
; filename: 5817驅(qū)動led數(shù)碼管.asm
; chip    : csu1181b
; author  :
; date    : 2012-07-31
;============================================
include csu1181b.inc
;============================================
; program start
;============================================
  SDA   EQU  80H
 
  org   000h
  GOTO  A1
  ORG   05H
;***********************************************
;            數(shù)據(jù)表
;*********************************************** 
Q1: 
   DW     003FH        ;0
      DW     0006H        ;1
      DW     005BH        ;2
      DW     004FH        ;3
      DW     0066H        ;4
      DW     006DH        ;5
      DW     007DH        ;6
      DW     0007H        ;7
      DW     007FH        ;8
      DW     006FH        ;9
      DW     0077H        ;A
      DW     007CH        ;B
      DW     0039H        ;C
      DW     005EH        ;D
      DW     0079H        ;E
      DW     0071H        ;F 
;************************************************
;              主程序
;************************************************ 
 
A1:  MOVLW  0FFH ;設置PT3位輸出口
  MOVWF  PT3EN ;
  MOVLW  0FFH ;PT3輸出高電平
  MOVWF  PT3 ;
 
  MOVLW  60H ;第一個數(shù)碼管位碼
  MOVWF  81H ;位碼寄存器
 
  MOVLW  16 ;總共位數(shù)
  MOVWF  82H ;總共位數(shù)寄存器
;******************************************
;           顯示初值

  MOVLW  0H ;
  MOVWF  90H ;
 
  MOVLW  01H ;
  MOVWF  91H ;
 
  MOVLW  02H ;
  MOVWF  92H ;
 
  MOVLW  03H ;
  MOVWF  93H ;
 
  MOVLW  04H ;
  MOVWF  94H ;
 
  MOVLW  05H ;
  MOVWF  95H ;
 
  MOVLW  06H ;
  MOVWF  96H ;
 
  MOVLW  07H ;
  MOVWF  97H ;
 
  MOVLW  08H
  MOVWF  98H
 
  MOVLW  09H ;
  MOVWF  99H ;
 
  MOVLW  10 ;
  MOVWF  9aH ;
 
  MOVLW  11 ;
  MOVWF  9bH ;
 
  MOVLW  12 ;
  MOVWF  9cH ;
 
  MOVLW  13 ;
  MOVWF  9dH ;
 
  MOVLW  14 ;
  MOVWF  9eH ;
 
  MOVLW  15 ;
  MOVWF  9fH ;
 
;           顯示初值
;**********************************************  
  MOVLW  90H ;顯示數(shù)據(jù)控制寄存器
  MOVWF  FSR0 ;間接尋址寄存器
 
 
 
 
A2:  CLRWDT ;清看門狗
 
  CALL  START ;開始
 
  MOVLW  48H ;開顯示命令
  MOVWF  SDA ;
  CALL  DATA1 ; 寫命令
  CALL  ACK ;應答
  
  MOVLW  01H ;開顯示
  MOVWF  SDA ;
  CALL  DATA1 ; 寫命令
  CALL  ACK ;
 
  CALL  STOP ; 結(jié)束
  CALL  START ;開始
  
  MOVFW  81H ;寫位碼
  MOVWF  SDA ;
  CALL  DATA1 ;
  CALL  ACK ;
 
  MOVLW  Q1 ;數(shù)據(jù)表地址
  ADDWF  ind0,0 ;需要顯示數(shù)據(jù)地址
  MOVWF  EADRL ;
  MOVP ;查表
 
  MOVWF  SDA ;顯示數(shù)據(jù)
  CALL  DATA1 ;
  CALL  ACK ;應答
  CALL  STOP ;結(jié)束
 
  INCF  FSR0,1 ;下一個顯示數(shù)據(jù)
 
  INCF  81H,1 ;下一個位碼
  INCF  81H,1 ;由于位碼是60H,62H,等偶數(shù)所以用兩次加1
  DECFSZ  82H,1 ;判斷是否顯示完16位
  GOTO  A2 ;
 
  GOTO  A1 ; 
;****************************************************************
;       5817開始子程序段
;****************************************************************
START:
  BSF   PT3EN,7 ;
  BSF   PT3,7 ;scl
  NOP
  BSF   PT3EN,6 ;
  BSF   PT3,6 ;sda
  NOP
  BSF   PT3EN,6
  BCF   PT3,6 ;sda
  NOP
  RETURN
 
;****************************************************************
;    5817結(jié)束子程序段
;**************************************************************** 
STOP:
  BSF   PT3EN,7
  BSF   PT3,7 ;scl
  NOP
  BSF   PT3EN,3
  BCF   PT3,6 ;sda
  NOP
  BSF   PT3EN,6
  BSF   PT3,6 ;sda
  NOP
  RETURN
;***************************************************************
;                 5817應答子程序段
;***************************************************************
ACK:
  BSF   PT3EN,7
  BSF   PT3,7
  NOP
 
ack1:
  BCF   PT3EN,6
  BTFSS  PT3,6 ;SDA判斷應答信號
  GOTO  ACK1
  NOP 
  BSF   PT3EN,7
  BCF   PT3,7
  NOP   
 
  RETURN 
 
;***************************************************************** 
;   5817寫數(shù)據(jù)子程序段
;***************************************************************** 
DATA1:
  MOVLW  8
  MOVWF  85H
 
DATA2:
  BSF   PT3EN,7
  BCF   PT3,7 ;SCL
  NOP
  CALL  SDA1 ;SDA
  NOP
  BSF   PT3EN,7
  BSF   PT3,7 ;SCL
  NOP
  BSF   PT3EN,7
  BCF   PT3,7 ;SCL
  NOP
  BSF   PT3EN,6
  BSF   PT3,6 ;SDA
  NOP
  RLF   SDA,0
  RLF   SDA,1
  DECFSZ  85H,1
  GOTO  DATA2
  RETURN
 
;*********************************************
;   5817SDA數(shù)據(jù)處理子程序段
;*********************************************  
SDA1: 
  BTFSC  SDA,7
  GOTO  SDA2
  BSF   PT3EN,6
  BCF   PT3,6
  GOTO  SDA3
SDA2:
  BSF   PT3EN,6
  BSF   PT3,6
SDA3:
  RETURN   
 
;*******************************************  
;   延時子程序段
;*******************************************
M001:
  MOVLW  1 ;
  MOVWF  8AH  ;
M002:
  MOVLW  10  ;
  MOVWF  8BH ;
M003:
  MOVLW  250 ;
  MOVWF  8CH ;
M004:
  DECFSZ  8CH,1 ;
  GOTO  M004 ;
  DECFSZ  8BH,1 ;
  GOTO  M003  ;
  DECFSZ  8AH,1  ;
  GOTO  M002  ;
  RETURN ;子程序返回 

      end
;============================================
 

關(guān)閉窗口

相關(guān)文章