Escolar Documentos
Profissional Documentos
Cultura Documentos
bits, example:
pins mid-range
pins mid-range
pins mid-range
pins mid-range
PIC16F628)
PICmicro)
PICmicro)
PICmicro)
PICmicro)
useCCdisplay
BTFSS REGx, RBx
#endif
useCAdisplay
BTFSC REGx, RBx
; conditional assembly
#ifdef
; conditional assembly
#endif
GOTO jump
BSF STATUS, RP0
MOVLW configRB
XORWF dgtX, w
MOVWF PORTX
BCF STATUS, RP0
MOVLW configRB
; flip to bank1
; go back to bank0
#ifdef
useCCdisplay
XORLW 0FFh
; complement W (conditional assembly)
#endif
MOVWF PORTX
MOVLW
ADDLW
BTFSS
GOTO
.128
0FFh
STATUS, Z
$-2
;
;
;
;
endm
;----------------------------------------------------------------------; Routine to display 8 digits
; (one digit at a time, segment by segment individually)
;----------------------------------------------------------------------Display
MOVLW .15
MOVWF affvis
dispdgts
DISPDGT
.8, dgtDS7
DISPDGT
.7, dgtDS6
DISPDGT
.6, dgtDS5
DISPDGT
.5, dgtDS4
DISPDGT
.4, dgtDS3
DISPDGT
.3, dgtDS2
DISPDGT
.2, dgtDS1
DISPDGT
.1, dgtDS0
DECFSZ
affvis, f
GOTO dispdgts
RETURN
;----------------------------------------------------------------------; Common Cathode digit, light segment by segment
; Common Anode digit, light segment by segment
;----------------------------------------------------------------------Disp
MOVWF
dgtvis
MOVLW
MOVWF
MOVF
CALL
MOVWF
high Tab7seg
PCLATH
dgtvis, w
; (dgtvis) -> W
Tab7seg
; convert
dgtvis
; (dgtvis) converted to 7 segments code
#ifdef
COMF
useCAdisplay
dgtvis, f
; conditional assembly (for Common Anode)
#endif
CLRF numdgt
BSF
dgtvis, 7
BSF
STATUS, C
rlfloop
RLF
numdgt, f
RLF
dgtvis, f
BTFSC STATUS, C
GOTO setBit0
BCF
dgtvis, 0
GOTO rlfnext
setBit0
BSF
dgtvis, 0
rlfnext
BCF
STATUS, C
DECFSZ
rlfcnt, f
GOTO rlfloop
DispsegA
DispsegB
DispsegC
DispsegD
DispsegE
DispsegF
DispsegG
DispsegX
SEGx
SEGx
SEGx
SEGx
SEGx
SEGx
SEGx
SEGx
dgtvis,0,DispsegB,0FEh,
dgtvis,1,DispsegC,0FDh,
dgtvis,2,DispsegD,0FBh,
dgtvis,3,DispsegE,0F7h,
dgtvis,4,DispsegF,0EFh,
dgtvis,5,DispsegG,0DFh,
dgtvis,6,DispsegX,0BFh,
dgtvis,7,Dispoff, 07Fh,
Dispoff
CLRF PORTX
RETURN
; clear portX
numdgt
numdgt
numdgt
numdgt
numdgt
numdgt
numdgt
numdgt
;
;
;
;
;
;
;
;
Disp.
Disp.
Disp.
Disp.
Disp.
Disp.
Disp.
Disp.
dgtvis,
dgtvis,
dgtvis,
dgtvis,
dgtvis,
dgtvis,
dgtvis,
dgtvis,
bit0
bit1
bit2
bit3
bit4
bit5
bit6
bit7
;
;
;
;
digit
digit
digit
digit
dgtDS7
clrf
clrf
clrf
clrf
clrf
clrf
clrf
tstBtn
dgtDS6
dgtDS5
dgtDS4
dgtDS3
dgtDS2
dgtDS1
dgtDS0
btfsc BTN
; BTN pushed
goto majDisp
; no
IncDgts
INC1 dgtDS0, .10, majDisp
INC1 dgtDS1, .10, majDisp
INC1 dgtDS2, .10, majDisp
INC1 dgtDS3, .10, majDisp
INC1 dgtDS4, .10, majDisp
INC1 dgtDS5, .10, majDisp
INC1 dgtDS6, .10, majDisp
INC1 dgtDS7, .10, majDisp
majDisp
CALL
Display
GOTO tstBtn
;-----------------------------------------------------------------------END