技术热线: 4007-888-234

共阴数码管显示从0显示到9的程序

更新时间: 2019-03-23
阅读量:8476

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