M
mpardinho
Guest
аз употреба този код, но тогава аз събират настъпи някои грешки
и да ми помогне с errosDataPin EQU 0x06; PIC Пин
ClockPin EQU 0x07; PIC Пин
Чар EQU 0x35; буфер
BitCounter EQU 0x36; брой битове, за да прочетете
GetScanCode
BSF СТАТУС, RP0; изберете банка 1
BSF TRISB, DataPin; набор игли като входни данни
BSF TRISB, ClockPin
ФБК OPTION_REG, NOT_RBPU; дръпнете са позволени
ФБК СТАТУС, RP0; изберете банка 0
повикване ClockWait; Спри се чака за да влезе в сила и клавиатурата, за да дръпнете часовника ниско
; --- Прочетете бита данни ----
ReadKey
clrf Чар ГРЕШКА
movlw .8; бита да прочетете
movwf BitCounter
ReadChar
rrf Чар ГРЕШКА
ФБК Чар, 7; стойност по подразбиране е 0
повикване ClockWait; чакам за часовник, за да отида после ниска висока
btfss PORTB, DataPin; чете данни
Отидох в Следваща ГРЕШКАBSF Чар, 7; данни е висока ГРЕШКА
Следваща decfsz BitCounter
Отидох в ReadChar; прочетете следващите данни Bitповикване ClockWait; Паритет Bit
повикване ClockWait; Спри Bit
; Издърпайте часовника линия Low (клавиатура ще буфер някакви допълнителни клавиши)
BSF СТАТУС, RP0; изберете банка 1
ФБК TRISB, ClockPin, поставете часовник линия като продукция
ФБК СТАТУС, RP0; изберете банка 0
ФБК PORTB, ClockPin, поставете часовник линия нискоmovf Чар, W
връщане
ClockWait
; чакам за часовник, за да отидете високо
btfss PORTB, ClockPin
Отидох в ClockWait
ClockWait2
; чакам за часовник, за да отидете ниско
btfsc PORTB, ClockPin
Отидох в ClockWait2връщане ГРЕШКА
и да ми помогне с errosDataPin EQU 0x06; PIC Пин
ClockPin EQU 0x07; PIC Пин
Чар EQU 0x35; буфер
BitCounter EQU 0x36; брой битове, за да прочетете
GetScanCode
BSF СТАТУС, RP0; изберете банка 1
BSF TRISB, DataPin; набор игли като входни данни
BSF TRISB, ClockPin
ФБК OPTION_REG, NOT_RBPU; дръпнете са позволени
ФБК СТАТУС, RP0; изберете банка 0
повикване ClockWait; Спри се чака за да влезе в сила и клавиатурата, за да дръпнете часовника ниско
; --- Прочетете бита данни ----
ReadKey
clrf Чар ГРЕШКА
movlw .8; бита да прочетете
movwf BitCounter
ReadChar
rrf Чар ГРЕШКА
ФБК Чар, 7; стойност по подразбиране е 0
повикване ClockWait; чакам за часовник, за да отида после ниска висока
btfss PORTB, DataPin; чете данни
Отидох в Следваща ГРЕШКАBSF Чар, 7; данни е висока ГРЕШКА
Следваща decfsz BitCounter
Отидох в ReadChar; прочетете следващите данни Bitповикване ClockWait; Паритет Bit
повикване ClockWait; Спри Bit
; Издърпайте часовника линия Low (клавиатура ще буфер някакви допълнителни клавиши)
BSF СТАТУС, RP0; изберете банка 1
ФБК TRISB, ClockPin, поставете часовник линия като продукция
ФБК СТАТУС, RP0; изберете банка 0
ФБК PORTB, ClockPin, поставете часовник линия нискоmovf Чар, W
връщане
ClockWait
; чакам за часовник, за да отидете високо
btfss PORTB, ClockPin
Отидох в ClockWait
ClockWait2
; чакам за часовник, за да отидете ниско
btfsc PORTB, ClockPin
Отидох в ClockWait2връщане ГРЕШКА