Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define SDO PORTA,0 ;RA0 is Serial Data Out
- #define SCK PORTA,1 ;RA1 is Serial Clock
- SEND EQU 0x20 ;GP RAM 0x20 is serial send buffer
- movfw RCREG ;move received data byte into SPI send register
- movwf SEND
- call DATA_OUT ;send data on SPI buss
- DATA_OUT movlw 0x08 ;initialize bit counter
- movwf BITCOUNT
- SEND_BIT btfss SEND,7 ;is MSB of send register high or low?
- goto SEND_LO ;low, send 0
- goto SEND_HI ;high, send 1
- SEND_LO bcf SDO ;send 0
- goto SHIFT
- SEND_HI bsf SDO ;send 1
- goto SHIFT
- SHIFT bsf SCK ;clock hi
- bcf SCK ;clock lo
- rlf SEND,F ;shift bits in send register
- decfsz BITCOUNT,F ;decriment bit counter
- goto SEND_BIT ;bit counter > 0, send next bit
- return ;bit counter = 0, return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement