Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <p12f675.inc>
- processor 12F675
- __CONFIG 0x01F4
- SH_CP equ 4
- DS equ 1
- ST_CP equ 2
- RP0 equ 5
- GP0 equ 0
- GP1 equ 1
- GP2 equ 2
- GP3 equ 3
- GP4 equ 4
- GP5 equ 5
- GIE equ 7
- GPIE equ 3
- GPIF equ 0
- TOIE equ 5
- TOIF equ 2
- IBTN equ 0
- DBTN equ 5
- COUNT EQU 0X21
- BYTE EQU 0X22
- TEMP EQU 0X23
- VALUE equ 0x26
- DUMMY1 equ 0x27
- DUMMY2 equ 0x28
- MAX EQU .9
- BUTTON_STATUS EQU 0x25
- WAS_INC equ 0
- WAS_DEC equ 1
- ORG 0x0000
- ;GOTO START
- ;ORG 0X00FF
- START
- BCF STATUS, RP0
- MOVLW 0X07
- MOVWF CMCON
- BSF STATUS, RP0
- CALL 0x3FF ; Load OSC. from last address
- MOVWF OSCCAL
- bsf TRISIO, GP0
- bcf TRISIO, GP1
- bcf TRISIO, GP2
- bcf TRISIO, GP4
- bsf TRISIO, GP5
- MOVLW 0
- MOVWF ANSEL
- BCF STATUS, RP0
- clrf VALUE
- clrf BUTTON_STATUS
- Loop
- MOVF VALUE,W
- MOVWF BYTE ;bsf TRISIO, GP0
- call DELAY
- CALL PrepareByte
- CALL SendByte
- call CheckInc
- call CheckDec
- GOTO Loop
- PrepareByte
- MOVF BYTE,W
- MOVWF TEMP
- XORLW .0
- BTFSS STATUS,Z
- GOTO $+4
- MOVLW B'00111111'
- MOVWF BYTE
- RETURN
- MOVF BYTE,W
- MOVWF TEMP
- XORLW .1
- BTFSS STATUS,Z
- GOTO $+4
- MOVLW B'00000110'
- MOVWF BYTE
- RETURN
- MOVF BYTE,W
- MOVWF TEMP
- XORLW .2
- BTFSS STATUS,Z
- GOTO $+4
- MOVLW B'01011011'
- MOVWF BYTE
- RETURN
- MOVF BYTE,W
- MOVWF TEMP
- XORLW .3
- BTFSS STATUS,Z
- GOTO $+4
- MOVLW B'01001111'
- MOVWF BYTE
- RETURN
- MOVF BYTE,W
- MOVWF TEMP
- XORLW .4
- BTFSS STATUS,Z
- GOTO $+4
- MOVLW B'01100110'
- MOVWF BYTE
- RETURN
- MOVF BYTE,W
- MOVWF TEMP
- XORLW .5
- BTFSS STATUS,Z
- GOTO $+4
- MOVLW B'01101101'
- MOVWF BYTE
- RETURN
- MOVF BYTE,W
- MOVWF TEMP
- XORLW .6
- BTFSS STATUS,Z
- GOTO $+4
- MOVLW B'01111101'
- MOVWF BYTE
- RETURN
- MOVF BYTE,W
- MOVWF TEMP
- XORLW .7
- BTFSS STATUS,Z
- GOTO $+4
- MOVLW B'00000111'
- MOVWF BYTE
- RETURN
- MOVF BYTE,W
- MOVWF TEMP
- XORLW .8
- BTFSS STATUS,Z
- GOTO $+4
- MOVLW B'01111111'
- MOVWF BYTE
- RETURN
- MOVF BYTE,W
- MOVWF TEMP
- XORLW .9
- BTFSS STATUS,Z
- GOTO $+4
- MOVLW B'01101111'
- MOVWF BYTE
- RETURN
- SendByte
- bcf STATUS,C
- movlw .8
- movwf COUNT
- SendLoop
- decf COUNT, F
- rlf BYTE
- btfsc STATUS, C
- goto Send1
- Send0
- bcf GPIO, DS
- call ConfirmBit
- goto CheckCount
- Send1
- bsf GPIO, DS
- call ConfirmBit
- goto CheckCount
- CheckCount
- movf COUNT,W
- btfss STATUS,Z
- goto SendLoop
- call ConfirmSending
- return
- ConfirmBit
- bsf GPIO, SH_CP
- bcf GPIO, SH_CP
- return
- ConfirmSending
- bsf GPIO, ST_CP
- bcf GPIO, ST_CP
- return
- CheckInc
- btfsc GPIO, IBTN
- goto NotInc
- btfsc BUTTON_STATUS, WAS_INC
- return
- MOVF VALUE,W
- MOVWF TEMP
- XORLW .9
- btfss STATUS, Z
- incf VALUE
- bsf BUTTON_STATUS, WAS_INC
- return
- NotInc
- bcf BUTTON_STATUS, WAS_INC
- return
- CheckDec
- btfsc GPIO, DBTN
- goto NotDec
- btfsc BUTTON_STATUS, WAS_DEC
- return
- MOVF VALUE,W
- MOVWF TEMP
- XORLW .0
- btfss STATUS, Z
- decf VALUE
- bsf BUTTON_STATUS, WAS_DEC
- return
- NotDec
- bcf BUTTON_STATUS, WAS_DEC
- return
- DELAY CLRF DUMMY1
- DELAY1 CLRF DUMMY2
- DECF DUMMY2,F
- DECF DUMMY2,F
- DECF DUMMY2,F
- DECFSZ DUMMY2,F
- GOTO $-4
- DECFSZ DUMMY1,F
- GOTO DELAY1
- RETURN
- END
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement