|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
zanac Neznanec
Pridružen-a: Čet 23 Maj 2013 13:03 Prispevkov: 7 Aktiv.: 0.05 Kraj: smartno
|
Objavljeno: Čet Maj 23, 2013 1:38 pm Naslov sporočila: LCD štoparica v bascom 8051 |
|
|
LP,
bi mi lahko kdo pomagal napisati program v bascom-u 8051 za LCD štoparico, ki bi ga lahko dal na AT89C4051 mikrokrmilnik? _________________ zany |
|
Nazaj na vrh |
|
|
ssdzkrez Član
Pridružen-a: Sre 12 Jan 2011 15:13 Prispevkov: 401 Aktiv.: 2.48 Kraj: Hrastnik
|
|
Nazaj na vrh |
|
|
zanac Neznanec
Pridružen-a: Čet 23 Maj 2013 13:03 Prispevkov: 7 Aktiv.: 0.05 Kraj: smartno
|
Objavljeno: Čet Maj 23, 2013 3:23 pm Naslov sporočila: |
|
|
hvala, vendar mi javi error, ko hočem definirati, kako je vezan LCD, čeprav ga vežem tk ko piše v bascom 8051 help.
-> http://hopsasa/f/1L/Vq/3sdXeVJi/brez-naslova.png _________________ zany |
|
Nazaj na vrh |
|
|
robika Član
Pridružen-a: Pon 05 Apr 2004 20:55 Prispevkov: 268 Aktiv.: 1.20 Kraj: ajdovščina
|
Objavljeno: Čet Maj 23, 2013 3:36 pm Naslov sporočila: |
|
|
Vrstico, ki je obarvana rdeče in še vseh nadaljnih 32 vrstic ne potrebuješ v programu in jih zakomentiraj, da jih prevajalnik ne upošteva in jih preskoči. Posamezno vrstico zakomentiraš z apostrofom oz. '. Če želiš zakomentirati več vrstic glej primer v kodi.
Primer:
Koda: |
Config Lcdpin = P1.1 , .....
'Vrstica s komentarjem, ki je prevajalnik ne upošteva, glej prvi znak v vrstici.
Cls
'(
Med apostrofom + oklepajem
pa do apostrof + zaklepajem,
so zakomentirane vse vrstice
')
Locate 1 , 1 : Lcd "Test"
end
|
|
|
Nazaj na vrh |
|
|
zanac Neznanec
Pridružen-a: Čet 23 Maj 2013 13:03 Prispevkov: 7 Aktiv.: 0.05 Kraj: smartno
|
Objavljeno: Tor Maj 28, 2013 2:04 pm Naslov sporočila: program |
|
|
Evo, dozdaj moj program zgleda takole:
vendrar je edini porblem, ko stisnem na tipko reset mi ne izbriše celotnega zaslona, mi lahko kdo pomaga s tem?
PROGRAM:
$crystal = 11059200
Config Lcd = 16 * 2
Upperline
Lcd "LEP POZDRAV"
Waitms 100
Cls
Config Timer0 = Timer , Gate = Internal , Mode = 1
Load Timer0 , 36
Start Timer0
Enable Timer0
Enable Interrupts
Goto Preskok1:
Dim Stotinke As Byte
Load Timer0 , 36
Incr Stotinke
Return
Preskok1:
Do
Dim Sekunde As Byte
Dim Minute As Byte
Dim Ure As Byte
If P3.3 = 0 Then Stotinke = Stotinke + 1
'ko je pritisnjena tipka, začne čas teči, ko tipko še enkrat pritisnemo se čas ustavi
If Stotinke > 99 Then
Stotinke = Stotinke - 100
Incr Sekunde
If Sekunde > 59 Then
Sekunde = Sekunde - 60
Incr Minute
If Minute > 59 Then
Minute = Minute - 60
Incr Ure
End If
End If
End If
Upperline
Lcd Ure ; ":" ; Minute ; ":" ; Sekunde ; ":" ; Stotinke ; ""
Tstart Alias P3.3 'tipka TP1 start
Treset Alias P3.2 'tipka TP3 reset
Debounce Tstart , 0 , Zacni , Sub
Debounce Treset , 0 , Resetiraj , Sub
Loop
Zacni:
Start Timer0
Print Ure ; ":" ; Minute ; ":" ; Sekunde ; "" ; Stotinke
Return
Resetiraj:
Ure = 0 : Minute = 0 : Sekunde = 0 : Stotinke = 0
Upperline
Lcd Ure ; ":" ; Minute ; ":" ; Sekunde ; "" ; Stotinke
Print Ure ; ":" ; Minute ; ":" ; Sekunde ; "" ; Stotinke
Return _________________ zany |
|
Nazaj na vrh |
|
|
protoncek Član
Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 45.64 Kraj: Mengeš
|
Objavljeno: Tor Maj 28, 2013 2:28 pm Naslov sporočila: |
|
|
Kaj pa če daš v rutini "resetiraj" namesto ukaza "upperline" ukaz CLS? On ti izbriše cel zaslon, pa še kurzor postavi na prvo mesto.
Sicer pa imaš čas po "lep pozdrav" tako kratek da LCD skorajda ne uspe napisati celoten tekst, pa ga že izbriše... daj vsaj kako sekundo. |
|
Nazaj na vrh |
|
|
6dan8 Član
Pridružen-a: Tor 18 Jan 2011 10:53 Prispevkov: 1046 Aktiv.: 6.48 Kraj: Goriška
|
Objavljeno: Sre Maj 29, 2013 10:46 am Naslov sporočila: |
|
|
Hm, zanac; ali ure, minute, sekunde in stotinke prikazuješ dvoštevilčno; brišeš pa enoštevilčno? Samo vprašam. Nekateri odvečne znake pobrišejo tako, da LCDju pošljejo (tudi) znak za presledek. |
|
Nazaj na vrh |
|
|
zanac Neznanec
Pridružen-a: Čet 23 Maj 2013 13:03 Prispevkov: 7 Aktiv.: 0.05 Kraj: smartno
|
Objavljeno: Čet Maj 30, 2013 8:32 pm Naslov sporočila: |
|
|
6dan8 je napisal/a: |
Hm, zanac; ali ure, minute, sekunde in stotinke prikazuješ dvoštevilčno; brišeš pa enoštevilčno? Samo vprašam. Nekateri odvečne znake pobrišejo tako, da LCDju pošljejo (tudi) znak za presledek. |
da. _________________ zany |
|
Nazaj na vrh |
|
|
zanac Neznanec
Pridružen-a: Čet 23 Maj 2013 13:03 Prispevkov: 7 Aktiv.: 0.05 Kraj: smartno
|
Objavljeno: Čet Maj 30, 2013 8:35 pm Naslov sporočila: izpis |
|
|
Imam še en problem in sicer pri izpisu. Hočem da moj izpis zgleda bolj profesionalno recimo pri sekundah 00,01,02 itd. Bi mi lahko kdo pomagal? _________________ zany |
|
Nazaj na vrh |
|
|
protoncek Član
Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 45.64 Kraj: Mengeš
|
Objavljeno: Čet Maj 30, 2013 8:38 pm Naslov sporočila: |
|
|
In po resetu se ti pojavlja 0:0:0:0, potem pa ob prehodu iz 9 na 10 preskoči eno mesto desno, kajne? Uporabi ukaz Fusing...
EDIT: ali pa ukaz FORMAT!!! mislim da je bolj pravi za tvoj primer. |
|
Nazaj na vrh |
|
|
mucek Član
Pridružen-a: Tor 01 Avg 2006 10:47 Prispevkov: 5335 Aktiv.: 24.72 Kraj: Domzale
|
Objavljeno: Čet Maj 30, 2013 9:22 pm Naslov sporočila: |
|
|
Jap, fusing je za single, format pa za string.
Lp, g _________________ ...lahko pa se tudi motim ... |
|
Nazaj na vrh |
|
|
rudiP Član
Pridružen-a: Tor 07 Avg 2007 15:30 Prispevkov: 1234 Aktiv.: 6.07 Kraj: KOPER
|
Objavljeno: Čet Maj 30, 2013 9:54 pm Naslov sporočila: |
|
|
Če želiš pomoč piši bolj pregledno, da se tudi mi hitreje znajdemo
Koda: |
If Stotinke > 99 Then
Stotinke = Stotinke - 100
Incr Sekunde
If Sekunde > 59 Then
Sekunde = 0
Incr Minute
If Minute > 59 Then
Minute =0
Incr Ure
End If
End If
End If
|
_________________ Lep pozdrav iz Kopra Rudi |
|
Nazaj na vrh |
|
|
zanac Neznanec
Pridružen-a: Čet 23 Maj 2013 13:03 Prispevkov: 7 Aktiv.: 0.05 Kraj: smartno
|
Objavljeno: Pet Maj 31, 2013 4:36 pm Naslov sporočila: |
|
|
protoncek je napisal/a: |
In po resetu se ti pojavlja 0:0:0:0, potem pa ob prehodu iz 9 na 10 preskoči eno mesto desno, kajne? Uporabi ukaz Fusing...
EDIT: ali pa ukaz FORMAT!!! mislim da je bolj pravi za tvoj primer. |
Ja, jaz hočem, da mi po resetu izpiše 00:00:00:00 in potem ko pritisnem na start zacne steti 01,02. Sanja se mi ne kako bi mi lahko pri tem pomagal fusing oz. format _________________ zany |
|
Nazaj na vrh |
|
|
protoncek Član
Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 45.64 Kraj: Mengeš
|
Objavljeno: Pet Maj 31, 2013 5:10 pm Naslov sporočila: |
|
|
izpis NE narediš z LCD sekunde;":"...., ampak
LCD format(ure, "00");":"; format (minute,"00"); ":"; format......
In tako naprej do stotink.
Preberi si razlago o ukazu format v HELP!
Ob resetu pa enostavno napišeš
Cls
LCD "00:00:00:00"
Ter postaviš spremenljivke na nič.
Sicer je tole opisano za bascom avr, ampak po moje je isto tudi za bascom 8051. |
|
Nazaj na vrh |
|
|
stursc Član
Pridružen-a: Tor 08 Jun 2004 14:29 Prispevkov: 323 Aktiv.: 1.45
|
Objavljeno: Pet Maj 31, 2013 5:12 pm Naslov sporočila: |
|
|
zanac je napisal/a: |
Ja, jaz hočem, da mi po resetu izpiše 00:00:00:00 in potem ko pritisnem na start zacne steti 01,02. Sanja se mi ne kako bi mi lahko pri tem pomagal fusing oz. format
Kaj pa tako ?
Locate 4 , 13
If Ure < 10 Then
Lcd "0" ; Ure ; ":"
Else
Lcd Ure ; ":"
End If
If Minute < 10 Then
Locate 4 , 16
Lcd "0" ; Minute ; ":"
Else
Lcd Minute ; ":"
End If
If Sekunde < 10 Then
Locate 4 , 19
Lcd "0" ; Sekunde
Else
Lcd Sekunde
End If
|
LP,sturs |
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 73 dni
Powered by phpBB © 2001, 2005 phpBB Group
|