Temp ;Temp variabel
d1
d2
d3
sendreg
count
endc
;*********************Register oppsett********************************
org 0 ;Flash start adresse 0
Start:
bsf STATUS,RP0 ;Bank 1
movlw 0x47
movwf OSCCON ;4 MHZ oscilator (0x70 = 8 MHZ)
clrf TRISIO ; ALLE I/O porter =output
clrf ANSEL ; Alle I/O porter =digital
bcf STATUS,RP0 ;Bank 0
;********************HOVED PROGRAMM ************************************
Main:
movlw 0x20
movwf sendreg
call ser-out
movlw 0x45
movwf sendreg
call ser-out
loop:
goto loop
ser-out:
movwf sendreg ;save copy of number
movlw 0x08 ; load count for 8 bits
movwf count
testbit :
bcf gpio,1 ; clear bit (default)
btfsc sendreg,7 ; test upper bit
bsf gpio,1 ; set bit
clock:
bcf gpio,2
nop ; send clock pulse
bsf gpio,2
roflt rlf sendreg,f ; shift left
decfsz count,f ; decrement bit
goto testbit ; next bit
bcf gpio,2
nop ; extra clock pulse if
bsf gpio,2 ; clocks are tied
return ;done