;******************************************************************
; Example 74HC595 LCD 8-bit Interface Mode Backpack Driver *
;******************************************************************
PutDat
setc ; |
skpc ; skip unconditionally |
PutCmd
clrc ; rs = 0 (command) |
movwf work ; save data |
movlw 8 ; use wreg as bit counter |
putbit
bcf dat ; dat = 0 |
btfsc work,7 ; is it a 0? yes, skip, else |
bsf dat ; dat = 1 |
bsf clk ; clk = 1, pulse 'clk' pin |
bcf clk ; clk = 0 |
rlncf work,F ; |
decfsz WREG,F ; all 8 bits? yes, skip, else |
bra putbit ; clock out another bit |
bcf dat ; dat = 0 (rs = 0) |
skpnc ; rs = 0? yes, skip, else |
bsf dat ; dat = 1 (rs = 1) |
bsf ena ; ena = 1, 'rck' & 'e' pins |
bcf ena ; ena = 0 |
DelayCy(40*usecs) ; lcd inter-write delay |
return ; |