witam
czy moglby ktos sprawdzic czy ten program jest poprawny? bo cos mi nie chce zadzialac, co najdziwniejsze jak zaladuje program to po kazdym resecie na lcd pokazuje co innego, raz pokazuje tylko pierwsza litere i pozniej cos bez sensu, czasami calosc jest bez sensu, a czasami pokazuje moj tekst tylko zjada co drugi znak i nie wiem czy program jest bledny czy to cos innego
lcd jest na 4 bitach, dane od najstarszego, p2(3-0)
edit:
program pisze w notatniku i kompiluje programem asem.exe do '51 programowalem juz tak 89C4051 i dzialaly, tego chyba tez tak mozna?
programuje ispprogiem przez stk200/300, ispprog nie zglasza zadnych bledow i verifikuje poprawnie.
a czy moge sprawdzic dzialanie ukladu, programujac 89s52 z bascoma?
tzn zrobic tylko hexa w bascomie?
czy moglby ktos sprawdzic czy ten program jest poprawny? bo cos mi nie chce zadzialac, co najdziwniejsze jak zaladuje program to po kazdym resecie na lcd pokazuje co innego, raz pokazuje tylko pierwsza litere i pozniej cos bez sensu, czasami calosc jest bez sensu, a czasami pokazuje moj tekst tylko zjada co drugi znak i nie wiem czy program jest bledny czy to cos innego
lcd jest na 4 bitach, dane od najstarszego, p2(3-0)
rs equ p2.7
rw equ p2.6
e equ p2.5
acall lcd_init
acall lcd_clear
mov DPTR, #table
mov r0, #0
wyswietl:
mov a, r0
movc a, @a+dptr
mov r2, a
inc r0
acall lcd_znak
mov a, r0
xrl a, #12
jnz wyswietl
ajmp $
enable:
setb e
clr e
delay: ;delay= 100ms
mov b, #100
delay2:
mov r7, #0ffh
djnz r7, $
mov r7, #0FFh
djnz r7, $
djnz b, delay2
ret
lcd_init:
clr e
acall delay
mov p2, #03h
acall enable
acall enable
acall enable
mov p2, #02h ;function set 4-bitowy
acall enable
acall enable ;function set
mov p2, #8
acall enable
mov p2, #0 ;display off
acall enable
mov p2, #00001100b
acall enable
mov p2, #0 ;display clear
acall enable
mov p2, #1
acall enable
mov p2, #0 ;entry mode set
acall enable
mov p2, #00000110b
acall enable
ret
lcd_clear:
mov p2, #0
acall enable
mov p2, #01h
acall enable
ret
lcd_znak:
mov p2, #0
setb rs
clr rw
mov a, r2
swap a
anl a, #0fh
orl p2, a
setb e
clr e
mov a, r2
anl p2, #0F0h
anl a, #0fh
orl p2, a
setb e
clr e
ret
table:
DB "123 test lcd"
end
edit:
program pisze w notatniku i kompiluje programem asem.exe do '51 programowalem juz tak 89C4051 i dzialaly, tego chyba tez tak mozna?
programuje ispprogiem przez stk200/300, ispprog nie zglasza zadnych bledow i verifikuje poprawnie.
a czy moge sprawdzic dzialanie ukladu, programujac 89s52 z bascoma?
tzn zrobic tylko hexa w bascomie?