📄 fourled.inc
字号:
;-----------------------------------------------------------------------;
; ;
; #INCLUDE <FOURLED.INC> ;
; ;
;; !!! contain table, must be located at the front end of every page ;
;; externally defined pins (in main program) ;
; ;
;PORTSEG EQU PORTD ; segment port ;
;TRISEG EQU TRISD ; direction of segment port ;
;PORTCA EQU PORTB ; common anode port ;
;TRICA EQU TRISB ; direction of segment port ;
; ;
; #INCLUDE <DLY2_5mS.INC> ;
; ;
;=======================================================================;
;
; Four digits are displayed on each four LEDs
; data stored in DATBF2(MSB)/DATBF1(LSB)
;
; DATBF1/DATBF2 must be delared in main program
; <DLY2_5mS.INC> must be included in main program
;
;
CBLOCK
DATBF1,DATBF2
ENDC
;
FOURLED:
BANKSEL TRISEG ; TRISEG is in bank1
MOVLW 0
MOVWF TRISEG ; set segment port to be output
MOVWF TRICA ; set common anode port to be output
BANKSEL PORTSEG ; PORTSEG is in bank0
;
MOVF DATBF1,W
CALL FOUR_TBL
MOVWF PORTSEG ; output unit digit here!
MOVLW B'11111110'
MOVWF PORTCA ; light up LED1(CA1)
CALL DLY2_5mS ; delay 2.5 mS
BSF PORTCA,0
;
SWAPF DATBF1,W
CALL FOUR_TBL
MOVWF PORTSEG ; output ten digit here !
MOVLW B'11111101'
MOVWF PORTCA ; light up LED2(CA2)
CALL DLY2_5mS ; delay 2.5 mS
BSF PORTCA,1
;
MOVF DATBF2,W
CALL FOUR_TBL
MOVWF PORTSEG ; output hundred digit here !
MOVLW B'11111011'
MOVWF PORTCA ; light up LED3(CA3)
CALL DLY2_5mS ; delay 2.5 mS
BSF PORTCA,2
;
SWAPF DATBF2,W
CALL FOUR_TBL
MOVWF PORTSEG ; output thousand digit here !
MOVLW B'11110111'
MOVWF PORTCA ; light up LED4(CA4)
CALL DLY2_5mS ; delay 2.5 mS
;
MOVLW H'FF'
MOVWF PORTCA ; trun off LEDs
MOVWF PORTSEG
;
RETURN
;
; TABLE READER
;
FOUR_TBL:
ANDLW B'00001111' ; only 0~F are valid
ADDWF PCL
;
RETLW H'C0' ; 0
RETLW H'F9' ; 1
RETLW H'A4' ; 2
RETLW H'B0' ; 3
RETLW H'99' ; 4
RETLW H'92' ; 5
RETLW H'82' ; 6
RETLW H'F8' ; 7
RETLW H'80' ; 8
RETLW H'90' ; 9
RETLW H'88' ; A
RETLW H'83' ; b
RETLW H'C6' ; C
RETLW H'A1' ; d
RETLW H'86' ; E
RETLW H'8E' ; F
;
;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -