十年专注单片机方案开发的方案公司英锐恩,分享共阴数码管显示从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