M
mpardinho
Guest
Io uso questo codice ma poi mi si è verificato qualche errore di compilazione
Io mi aiuta con errosDataPin equ 0x06; PIC Pin
ClockPin equ 0x07; PIC Pin
Char equ 0x35; buffer
BitCounter equ 0x36; numero di bit per leggere
GetScanCode
bsf STATUS, RP0; Bank Select 1
bsf TRISB, DataPin; pin impostato come input
bsf TRISB, ClockPin
bcf OPTION_REG, NOT_RBPU; pull-up siano abilitati
bcf STATUS, RP0; Bank Select 0
ClockWait chiamata; aspettare per tirare fino a effetto e la tastiera a tirare clock basso
; --- Leggere Bit di dati ----
ReadKey
clrf Char ERRORE
movlw .8; bit per leggere
movwf BitCounter
ReadChar
RRF Char ERRORE
bcf Char, 7; valore predefinito è 0
ClockWait chiamata; aspettare per un'ora ad arrivare in alto poi basso
btfss PORTB, DataPin; leggere i dati
goto
error Next
BSF Char, 7; dati è alto
errore
Next decfsz BitCounter
goto ReadChar; leggere prossima Bit di datiClockWait chiamata; bit di parità
ClockWait chiamata; Stop Bit
; Pull Clock linea bassa (tastiera buffer eventuali ulteriori combinazioni di tasti)
bsf STATUS, RP0; Bank Select 1
bcf TRISB, ClockPin; linea di clock impostato come output
bcf STATUS, RP0; Bank Select 0
bcf PORTB, ClockPin; linea di clock impostato a bassaMOVF Char, W
ritorno
ClockWait
; aspettare per un'ora ad arrivare in alto
btfss PORTB, ClockPin
goto ClockWait
ClockWait2
; aspettare un'ora per andare a bassa
btfsc PORTB, ClockPin
goto ClockWait2return ERROR
Io mi aiuta con errosDataPin equ 0x06; PIC Pin
ClockPin equ 0x07; PIC Pin
Char equ 0x35; buffer
BitCounter equ 0x36; numero di bit per leggere
GetScanCode
bsf STATUS, RP0; Bank Select 1
bsf TRISB, DataPin; pin impostato come input
bsf TRISB, ClockPin
bcf OPTION_REG, NOT_RBPU; pull-up siano abilitati
bcf STATUS, RP0; Bank Select 0
ClockWait chiamata; aspettare per tirare fino a effetto e la tastiera a tirare clock basso
; --- Leggere Bit di dati ----
ReadKey
clrf Char ERRORE
movlw .8; bit per leggere
movwf BitCounter
ReadChar
RRF Char ERRORE
bcf Char, 7; valore predefinito è 0
ClockWait chiamata; aspettare per un'ora ad arrivare in alto poi basso
btfss PORTB, DataPin; leggere i dati
goto
error Next
BSF Char, 7; dati è alto
errore
Next decfsz BitCounter
goto ReadChar; leggere prossima Bit di datiClockWait chiamata; bit di parità
ClockWait chiamata; Stop Bit
; Pull Clock linea bassa (tastiera buffer eventuali ulteriori combinazioni di tasti)
bsf STATUS, RP0; Bank Select 1
bcf TRISB, ClockPin; linea di clock impostato come output
bcf STATUS, RP0; Bank Select 0
bcf PORTB, ClockPin; linea di clock impostato a bassaMOVF Char, W
ritorno
ClockWait
; aspettare per un'ora ad arrivare in alto
btfss PORTB, ClockPin
goto ClockWait
ClockWait2
; aspettare un'ora per andare a bassa
btfsc PORTB, ClockPin
goto ClockWait2return ERROR