Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
miran23 Novinec
Pridružen/-a: Čet Mar 2010 10:57 Prispevkov: 9
|
Objavljeno: Čet Jul 01, 2010 6:06 pm Naslov sporočila: AVR - Tipkovnica - LCD |
|
|
Pozdravljeni vsi skupaj.
No,nisem ravno začetnik imam pa problem.Ne znam napisati program ki bi podatke z matrične tipkovnice prenašal na LCD.
Imam
Lowerline
LCD "080|____|____"
za številko 080 je štirimestno (y) polje ločeno z pokončno črto in potem zopet štiri (y) polja, na ta polja pa bi rad vpisoval poljubna števila.
vrstica LCD "080|____|_____" Pa naj ostane nespremenjena.
Za pomoč se vam zahvaljujem.
Pozdrav Miran |
|
Nazaj na vrh |
|
|
Vlado Profesionalec
Pridružen/-a: Ned Jan 2004 16:11 Prispevkov: 556 Kraj: Ljubljana
|
Objavljeno: Čet Jul 01, 2010 7:06 pm Naslov sporočila: |
|
|
Miran, za konkretno pomoč moraš podati malo več podatkov, povej kje se zatika, ali pri branju tipkovnice ali pa samo pri vpisu na LCD?
Kako narediš pokončno črto, poglej ukaz "Deflcdchar" v Bascom Help-u.
Številko ki jo vneseš prek tipkovnice enostavno z ukazom "Locate x,y" postaviš na želeno lokacijo na LCD-ju, seveda lahko lokacije ki jih imaš za tvoje številke tudi z ukazom LOCATE pobrišeš tako da tam vpišeš " " (toliko praznih polj koliko imaš karakterjev).
Vlado |
|
Nazaj na vrh |
|
|
miran23 Novinec
Pridružen/-a: Čet Mar 2010 10:57 Prispevkov: 9
|
Objavljeno: Pet Jul 02, 2010 9:02 am Naslov sporočila: |
|
|
Lowerline
lcd "080|____|____"
Tole sem že naredil v Bascom-u in se mi tudi izpiše na LCD-ju.Pravzaprav potrebujem namig oz.nasvet kako napisati program kateri bi na y pozicije(namesto črtic) izpisal poljubno štirimestno število _ na obeh straneh druge vertikalne črtice.
Najlepša hvala. |
|
Nazaj na vrh |
|
|
Jure Urednik
Pridružen/-a: Pon Jan 2004 12:51 Prispevkov: 2132 Kraj: Ljubljana
|
Objavljeno: Pet Jul 02, 2010 12:04 pm Naslov sporočila: |
|
|
miran23 je napisal/a: | Pravzaprav potrebujem namig oz.nasvet kako napisati program kateri bi na y pozicije(namesto črtic) izpisal poljubno štirimestno število _ na obeh straneh druge vertikalne črtice.
Najlepša hvala. |
Uporabi ukaz Locate. Npr: Locate 2,5, bo v 2. vrstici na 5. mestu izpisal tisto, kar želiš.
Lp
Jure |
|
Nazaj na vrh |
|
|
Vlado Profesionalec
Pridružen/-a: Ned Jan 2004 16:11 Prispevkov: 556 Kraj: Ljubljana
|
Objavljeno: Pet Jul 02, 2010 5:50 pm Naslov sporočila: |
|
|
Miran,
če prav zastopim tvoj problem je v tem kako štirimestno število vpisati na dve lokacije na LCD-ju tako da bodo stotice in tisočice vpisane v eno polje, desetice in enice v drugo polje.
Za to potrebuješ malo enostavne matematike:
Primer:
tvoja številka 1234
Tisoč= 1234/100 'rezultat 12 to številko vpišeš v eno lokacijo na LCD-ju
12*100=1200
deset= 1234-1200 '34 to številko vpišeš na drugo lokacijo na LCD-ju
Locate 2,5
lcd tisoč
locate 2,8
LCD deset
Če pa težava ni v tem bodi malo bolj natančen z vprašanjem.
Vlado |
|
Nazaj na vrh |
|
|
miran23 Novinec
Pridružen/-a: Čet Mar 2010 10:57 Prispevkov: 9
|
Objavljeno: Pet Jul 02, 2010 8:22 pm Naslov sporočila: |
|
|
Bom jaz malce spremenil.Na Lcd-ju imam konstantno postavljeno število
080 za temi stevili pa bi moral s tipkovnico (matrix 3x4)napisati poljubno število ki naj bo za četrtim številom ločeno z pokončno črto
Lowerline
Lcd "080|3241|7869"
Poiskusil bom obe varianti,(Juretovo in Vladino)
Se oglasim ponovno jutri
Pozdrav in lep vikend vsem. |
|
Nazaj na vrh |
|
|
miran23 Novinec
Pridružen/-a: Čet Mar 2010 10:57 Prispevkov: 9
|
Objavljeno: Pon Jul 12, 2010 3:30 pm Naslov sporočila: |
|
|
Program je sledeči:
$regfile =
$crystal =
$hwstack =
$swstack =
$framesize =
$baud =
$sim
config lcd = 16 * 2
config lcdbus = 4
config lcdpin = Pin , Db7 = PORTC.7 ,Db6 = PORTC.6,.............
Dim I As Byte
Dim keycode As Byte
Config kbd = PORTC , Debounce = 30 , Delay = 100
Cls
Do
Keycode = getkbd()
if keycode <> 16 then
keycode = keycode + 1
print Keycode
waitms 200
Lowerline
Lcd "080| | "
Locate 2 , 5
Lcd Keycode
End if
Loop
End
Program mi piše v spodnjo vrstico na peto mesto,vendar mi piše samo na to mesto,jaz pa bi rad da mi na to mesto napiše prvo odtipkano številko na pozicijo 2 , 6 drugo številko, na pozicijo 2 , 7 tretjo številko in tako naprej do 16-tega polja.
Zahvaljujem se vam za pomoč.
pozdrav Miran |
|
Nazaj na vrh |
|
|
Vlado Profesionalec
Pridružen/-a: Ned Jan 2004 16:11 Prispevkov: 556 Kraj: Ljubljana
|
Objavljeno: Pon Jul 12, 2010 6:54 pm Naslov sporočila: |
|
|
Miran,
enostavno, v svoj program dodaj še eno spremenljivko katero boš po vsakem novem znaku povečal za ena (in če je večja od recimo 4 postavil na 1).
Potem ko ugotoviš da je pritisnjena tipka in povečeaš svojo novo spremenljivko z ukazom select case nov znak vpišeš na pravo mesto na LCD-ju.
select case mesto:
case 1: Locate 2,5
LCD X
Case2: Locate 2,6
LCD x
Case 3:LOCATE 2,8 ' če preskočiš eno mesto
. . . .
Vlado |
|
Nazaj na vrh |
|
|
|