新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 芯海單片機(jī)用CS5817芯片控制16位數(shù)碼管

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

作者: 時(shí)間:2016-11-30 來(lái)源:網(wǎng)絡(luò) 收藏
;============================================

; filename: 5817驅(qū)動(dòng)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 ;設(shè)置PT3位輸出口
MOVWF PT3EN ;
MOVLW 0FFH ;PT3輸出高電平
MOVWF PT3 ;

MOVLW 60H ;第一個(gè)數(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 ;清看門(mén)狗

CALL START ;開(kāi)始

MOVLW 48H ;開(kāi)顯示命令
MOVWF SDA ;
CALL DATA1 ; 寫(xiě)命令
CALL ACK ;應(yīng)答

MOVLW 01H ;開(kāi)顯示
MOVWF SDA ;
CALL DATA1 ; 寫(xiě)命令
CALL ACK ;

CALL STOP ; 結(jié)束
CALL START ;開(kāi)始

MOVFW 81H ;寫(xiě)位碼
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 ;應(yīng)答
CALL STOP ;結(jié)束

INCF FSR0,1 ;下一個(gè)顯示數(shù)據(jù)

INCF 81H,1 ;下一個(gè)位碼
INCF 81H,1 ;由于位碼是60H,62H,等偶數(shù)所以用兩次加1
DECFSZ 82H,1 ;判斷是否顯示完16位
GOTO A2 ;

GOTO A1 ;
;****************************************************************
; 5817開(kāi)始子程序段
;****************************************************************
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應(yīng)答子程序段
;***************************************************************
ACK:
BSF PT3EN,7
BSF PT3,7
NOP

ack1:
BCF PT3EN,6
BTFSS PT3,6 ;SDA判斷應(yīng)答信號(hào)
GOTO ACK1
NOP
BSF PT3EN,7
BCF PT3,7
NOP

RETURN

;*****************************************************************
; 5817寫(xiě)數(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

;*******************************************
; 延時(shí)子程序段
;*******************************************
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 ;子程序返回

本文引用地址:http://m.butianyuan.cn/article/201611/323624.htm

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



評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉