📄 877i2ca.asm
字号:
TITLE "两位数码管递增"
LIST P=16F877A
;======================================================================
W EQU H'0000'
F EQU H'0001'
;----- Register Files--------------------------------------------------
;BANK0
TMR0 EQU 01H
PCL EQU 02H
STATUS EQU 03H
FSR EQU 04H
PORTA EQU 05H
PORTB EQU 06H
PORTC EQU 07H
PORTD EQU 08H
PORTE EQU 09H
PCLATH EQU 0AH
INTCON EQU 0BH
PIR1 EQU 0CH
PIR2 EQU 0DH
TMR1L EQU 0EH
TMR1H EQU 0FH
T1CON EQU 10H
TMR2 EQU 11H
T2CON EQU 12H
CCPR1L EQU 15H
CCPR1H EQU 16H
CCP1CON EQU 17H
RCSTA EQU 18H
TXREG EQU 19H
RCREG EQU 1AH
ADRESH EQU 1EH
ADCON0 EQU 1FH
;BANK1
OPTION_REG EQU 81H
;PCL EQU 82H
;STATUS EQU 83H
;FSR EQU 84H
TRISA EQU 85H
TRISB EQU 86H
TRISC EQU 87H
TRISD EQU 88H
TRISE EQU 89H
;PCLATH EQU 8AH
;INTCON EQU 8BH
PIE1 EQU 8CH
PIE2 EQU 8DH
PCON EQU 8EH
PR2 EQU 92H
TXSTA EQU 98H
SPBRG EQU 99H
ADRESL EQU 9EH
ADCON1 EQU 9FH
;BANK2
;TMR0 EQU 101H
;PCL EQU 102H
;STATUS EQU 103H
;FSR EQU 104H
;PORTB EQU 106H
;PCLATH EQU 10AH
;INTCON EQU 10BH
EEDATA EQU 10CH
EEADR EQU 10DH
EEDATH EQU 10EH
EEADRH EQU 10FH
;BANK3
;OPTIN_REG EQU 181H
;PCL EQU 182H
;STATUS EQU 183H
;FSR EQU 184H
;TRISB EQU 186H
;PCLATH EQU 18AH
;INTCON EQU 18BH
EECON1 EQU 18CH
EECON2 EQU 18DH
;================================================================================================================================
COUNTER0 EQU 20H
COUNTER1 EQU 21H
COUNTER2 EQU 22H
COUNTER3 EQU 23H
COUNTER4 EQU 24H
COUNTER5 EQU 25H
COUNTER6 EQU 26H
COUNTER7 EQU 27H
ORG 0000H
NOP
BANKSEL TRISD
MOVLW 00H
MOVWF TRISD
MOVWF TRISC
BSF TRISA,0
BCF TRISA,1
BCF TRISA,2
BCF TRISA,3
BCF TRISA,4
BCF TRISA,5
BCF TRISA,6
BCF TRISA,7
NOP
BANKSEL PCL
MOVLW 00H
MOVWF PORTD
BCF PORTC,4
BCF PORTC,5
BCF PORTC,6
BCF PORTC,7
BSF PORTC,0
BSF PORTC,1
CALL DELAY_0.5S
MOVLW 0FFH
MOVWF PORTD
BCF PORTC,1
BCF PORTC,0
CALL DELAY_0.5S
;------------------------------------------------------------------------------------------------
;KEYBOAD TEST----------------------------------------------------------------------------------------------------------------
TEST1 NOP
BSF PORTC,1
BANKSEL TRISB
MOVLW B'11000000'
MOVWF TRISB
JIAN_1 NOP
BANKSEL PCL
BTFSS PORTB,6
GOTO TEST1
CALL DELAY_20MS
BTFSS PORTB,6
GOTO TEST1
GOTO DO1
DO1 BSF PORTC,0
CALL DELAY_20MS
BCF PORTC,0
GOTO TEST1
;----------------------------------------------------------------------------------------------------
;-0000000000------------------------------------------------------------------------------------
DELAY_20MS;-----------------------------------------------------------------
MOVLW 50H
MOVWF COUNTER1
ZAIJIA2 MOVLW 0F9H
MOVWF COUNTER0
ZAIJIA1 DECFSZ COUNTER0,1
GOTO ZAIJIA1
DECFSZ COUNTER1,1
GOTO ZAIJIA2
NOP
RETURN
DELAY_0.5S ;=====================================================================
MOVLW 0BH
MOVWF COUNTER2
ZAIJIAN3 MOVLW 50H
MOVWF COUNTER1
ZAIJIAN2 MOVLW 0F9H
MOVWF COUNTER0
ZAIJIAN1 DECFSZ COUNTER0,1
GOTO ZAIJIAN1
DECFSZ COUNTER1,1
GOTO ZAIJIAN2
DECFSZ COUNTER2
GOTO ZAIJIAN3
RETURN
END
JIAN_2 BTFSS PORTB,7
GOTO NEXT
CALL DELAY_20MS
BTFSS PORTB,7
GOTO NEXT
GOTO SHIFANG_2
SHIFANG_1 BTFSC PORTB,6
GOTO SHIFANG_1
CALL DELAY_20MS
BTFSC PORTB,6
GOTO SHIFANG_1
GOTO DO1
SHIFANG_2 BTFSC PORTB,7
GOTO SHIFANG_2
CALL DELAY_20MS
BTFSC PORTB,6
GOTO SHIFANG_2
GOTO DO2
;----------------------------------------------------------------------------------------------------
DO2 BSF PORTC,0
CALL DELAY_20MS
BCF PORTC,0
CALL DELAY_20MS
BSF PORTC,0
CALL DELAY_20MS
BCF PORTC,0
;--------------------------------------------------------------------------------------
;-----------------------------------------------------------------------------------------------------
ZHIXING_1 BSF PORTC,0
CALL DELAY_20MS
BCF PORTC,0
END
ZHIXING_2 BSF PORTC,0
CALL DELAY_20MS
BCF PORTC,0
CALL DELAY_20MS
BSF PORTC,0
CALL DELAY_20MS
BCF PORTC,0
ZHIXING_3 BSF PORTC,0
CALL DELAY_20MS
BCF PORTC,0
CALL DELAY_20MS
BSF PORTC,0
CALL DELAY_20MS
BCF PORTC,0
CALL DELAY_20MS
BSF PORTC,0
CALL DELAY_20MS
BCF PORTC,0
ZHIXING_4 BSF PORTC,0
CALL DELAY_20MS
BCF PORTC,0
CALL DELAY_20MS
BSF PORTC,0
CALL DELAY_20MS
BCF PORTC,0
CALL DELAY_20MS
BSF PORTC,0
CALL DELAY_20MS
BCF PORTC,0
CALL DELAY_20MS
BSF PORTC,0
CALL DELAY_20MS
BCF PORTC,0
;--------------------------------------------------------------------------------------------------------------------------
;---------------------------------------------------------------------------------------------------
CHABIAO ADDWF PCL,1
RETLW B'01111111'
RETLW B'10010000' ;9
RETLW B'10000000' ;8
RETLW B'11111000' ;7
RETLW B'10000010' ;6
RETLW B'10010010' ;5
RETLW B'10011001' ;4
RETLW B'10110000' ;3
RETLW B'10100100' ;2
RETLW B'11111001' ;1
RETLW B'11000000' ;0
;--------------------------------------------------------------------------------------------------
;---------------------------------------------------------------------------------------------------------
;---------------------------------------------------------------------------------------------
START MOVLW 0AH
MOVWF COUNTER3
DISPLAY MOVF COUNTER3,W
CALL CHABIAO
MOVWF PORTD
BSF PORTC,0
CALL DELAY_20MS
BCF PORTC,0
CALL DELAY_0.5S
;---------------------------------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -