您的位置 首页 编程

芯海单片机用CS5817芯片操控16位数码管

;============================================;filename:5817驱动led数码管asm;chip:csu1181b;author:;date:20

;============================================

; filename: 5817驱动led数码管.asm
; chip : csu1181b
; author :
; date : 2012-07-31
;============================================
include csu1181b.inc
;============================================
; program start
;============================================
SDA EQU 80H

org 000h
GOTO A1
ORG 05H
;***********************************************
; 数据表
;***********************************************
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 ;第一个数码管位码
MOVWF 81H ;位码寄存器

MOVLW 16 ;一共位数
MOVWF 82H ;一共位数寄存器
;******************************************
; 显现初值
;
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 ;显现数据操控寄存器
MOVWF FSR0 ;直接寻址寄存器

A2: CLRWDT ;清看门狗

CALL START ;开端

MOVLW 48H ;开显现指令
MOVWF SDA ;
CALL DATA1 ; 写指令
CALL ACK ;应对

MOVLW 01H ;开显现
MOVWF SDA ;
CALL DATA1 ; 写指令
CALL ACK ;

CALL STOP ; 完毕
CALL START ;开端

MOVFW 81H ;写位码
MOVWF SDA ;
CALL DATA1 ;
CALL ACK ;

MOVLW Q1 ;数据表地址
ADDWF ind0,0 ;需求显现数据地址
MOVWF EADRL ;
MOVP ;查表

MOVWF SDA ;显现数据
CALL DATA1 ;
CALL ACK ;应对
CALL STOP ;完毕

INCF FSR0,1 ;下一个显现数据

INCF 81H,1 ;下一个位码
INCF 81H,1 ;因为位码是60H,62H,等偶数所以用两次加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完毕子程序段
;****************************************************************
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写数据子程序段
;*****************************************************************
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数据处理子程序段
;*********************************************
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
;============================================

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/biancheng/317926.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部