十年專注單片機方案開發的方案公司英銳恩,分享共陰數碼管顯示從0顯示到9的程序。英銳恩現提供服務產品涉及主控芯片:8位單片機、16位單片機、32位單片機及各類運算放大器等。
一個共陰數碼管顯示從0顯示到9。
;****************************************************************
;一個共陰數碼管顯示的程序
; 喜歡單片機
; 05.08.22
; FILE LED1
;****************************************************************
LIST P=16F84A,R=DEC ;定義器件為16F84,默認數制為十進制
;-----------------------------------------------
__CONFIG B'11111111110001';_CP_OFF&_WDT_OFF&_PWRITE_ON&_XT_OSC
;沒有代碼保護
;看門狗關閉
;上電廷時器開啟
;振蕩器模式為XT
;---------------------
PCL EQU 02H ;變量單元定義
STATUS EQU 03H
PORTA EQU 05H
PORTB EQU 06H
TRISA EQU 5H
TRISB EQU 6H
;-----------------------STATUS
RP0 EQU 5
Z EQU 2
;-----------------------
SUBDATA0 EQU 10H
SUBDATA1 EQU 11H
SUBDATA2 EQU 12H
SUBDATA3 EQU 13H
TABADD EQU 14H
ABC EQU 15H
;--------------------
ORG 0000H
NOP
GOTO MAIN
MAIN
CLRF PORTA
CLRF PORTB ;初始IO口
BSF STATUS,RP0 ;設置數據寄存器體1
MOVLW 00000000B ;設置RB、RA口全部為輸出
MOVWF TRISA
MOVWF TRISB
BCF STATUS,RP0 ;恢復數據寄存器體0
CLRF SUBDATA0 ;清除數顯緩存器內容
CLRF SUBDATA1
CLRF SUBDATA2
CLRF SUBDATA3
CALL DISPLAY
MOVLW 00H
DISPLAY
MOVLW 00H
MOVWF PORTB
LOOP
MOVF SUBDATA0,W
CALL CABIAO
MOVWF PORTB
CALL DELAY1S
INCF SUBDATA0
MOVLW .10
SUBWF SUBDATA0,W
BTFSS STATUS,Z
GOTO LOOP
GOTO MAIN
CABIAO
ADDWF PCL,F
RETLW 3FH ;0
RETLW 06H ;1
RETLW 5BH ;2
RETLW 4FH ;3
RETLW 66H ;4
RETLW 6DH ;5
RETLW 7DH ;6
RETLW 07H ;7
RETLW 7FH ;8
RETLW 6FH ;9
DELAY1S
MOVLW 06H
MOVWF 20H
DELAY1_1
MOVLW 0EBH
MOVWF 21H
DELAY1_2
MOVLW 0ECH
MOVWF 22H
DELAY1_3
DECFSZ 22H,1
GOTO DELAY1_3
DECFSZ 21H,1
GOTO DELAY1_2
DECFSZ 20H,1
GOTO DELAY1_1
RETURN
END