Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;*******************************************************
- ;PIC12f675 UART Bit-Banging
- ;Programmer: Gregory Michalik
- ;Email: gregory954(a)gmail.com
- ;*******************************************************
- ;**************************
- ; Bit Delay Values (4mhz)
- ; 0x18 - 9600bps
- ; 0x0A - 19200bps
- ;**************************
- #define UART GPIO,4 ;UART Output Pin
- UDATA_SHR
- bit_cntr res 1 ; UART Tx Var
- tx_byte res 1 ; UART Tx Byte
- baud res 1 ; UART bit delay value
- d1 res 1 ; Timer Var
- global baud
- global UART_SendByte
- global UART_Init
- code
- UART_Init
- bsf UART ; Keep UART High
- return
- UART_SendByte
- movwf tx_byte
- movlw h'08' ; 8 Bits in a Byte
- movwf bit_cntr ;
- bcf UART ; Low Signals Start of Bitstream
- movf baud,w
- call var_delay ;
- XT
- rrf tx_byte,1 ; MSB
- btfss STATUS,C ; If High
- bcf UART ; Output High
- btfsc STATUS,C ; If Low
- bsf UART ; Output Low
- movf baud,w
- call var_delay ;
- decfsz bit_cntr,1 ; Next Bit
- goto XT ;
- bsf UART ; End Bitstream High
- movf baud,w
- call var_delay ;
- return
- var_delay
- movwf d1
- BD0
- nop
- decfsz d1, f
- goto BD0
- return
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement