har att göra med en uppgift som skall vara färdig på fredag och vår lärare lär oss ingenting. har fått lite hjälp och kommit så här långt.
kör med 4mhz
kopplingen är
RB2 RS
RB3 E
RB4 LCD4
...... .......
RB5 LCD7
resten från lcdn till Ground förutom kontrast och belyningen
beklagar om allting inte är rätt stavat. jag är från finland.
Kod: Markera allt
TRISA equ 0x5
PORTA equ 0x5
TRISB equ 0x6
PORTB equ 0x6
STATUS equ 0x3
RP0 equ 0x5 ;bit i STATUS
W equ 1
f equ 0
;egna register
bits equ 0x10
;LCD 4 bitarkopplade RB4-7
RS equ 2 ;på PORTB
E equ 3
mcount equ 11
ncount equ 12
count1 equ 13
count2 equ 14
org 0x0
goto main
org 0x10
main
bsf STATUS,RP0 ;bank1 läge
movlw b'00000000' ;alla utgångar
movwf TRISA ;PORTA
movwf TRISB ;PORTB
bcf STATUS,RP0 ;bank0
LCDinit
bcf PORTB,E ;enable på lcd låg
bcf PORTB,RS ;RS låg instruktioner
call del_125 ;100 us
movlw 0x38 ;30 Skall skickas 3 gånger Wake UP
movwf bits
call flipbit ;bitar till PORTB
call pulse ;klockpuls
call del_125 ;över 4.1 ms
movlw 0x38
movwf bits
call flipbit
call pulse
call del_125 ;100 us
movlw 0x28
movwf bits
call flipbit
call pulse
call del_125
movlw 0x28 ;4 bit -mode
moVwf bits
call flipbit
call pulse
movlw 0x0c
call send
moVlw 0x01 ;clear display
call send
text
bsf PORTB, RS ;display i textmode
movlw 'v' ;ascii värdet för J till w
call send
movlw 'o'
call send
movlw 'd'
call send
movlw 'k'
call send
movlw 'a'
call send
stop
goto stop ;program stopp
send movwf bits
call flipbit
call pulse
swapf bits,f
call flipbit
call pulse
return
flipbit
bcf PORTB,4
btfsc bits,4
bsf PORTB,4
bcf PORTB,5
btfsc bits,5
bsf PORTB,5
bcf PORTB,6
btfsc bits,6
bsf PORTB,6
bcf PORTB,7
btfsc bits,7
bsf PORTB,7
return
pulse nop
nop
bsf PORTB,E ;KLOCKPULS hög
nop
nop
bcf PORTB,E ;klockpuls låg
return
wait movlw 0x7d
movwf mcount
load movlw 0x7d
movwf ncount
dec decfsz ncount,f
goto dec
decfsz mcount,f
goto load
return
;***************** delay 125 us ***********************
del_125 movlw 0x54 ;125us
movwf count1
repeat1 decfsz count1,f
goto repeat1
return
;***********************************************
del_5 movlw 0x29
movwf count2
repeat2 call del_125
decfsz count2,f
goto repeat2
return
end