www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Tipkovnica + LCD

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
California
Član
Član



Pridružen-a: Pet 26 Avg 2005 19:48
Prispevkov: 236
Aktiv.: 1.00
Kraj: Hrastnik

PrispevekObjavljeno: Sre Dec 28, 2005 9:20 pm    Naslov sporočila:  Tipkovnica + LCD Odgovori s citatom

Pozdravljeni!
Želim uporabiti tipkovnico 4x4 za vnos konstante na LCD, to konstanto pa bi kasneje uporabil za primerjavo s spremenljivko. Ima kdo kakšno idejo?

_________________
California
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
NeoTO
Član
Član



Pridružen-a: Pon 28 Mar 2005 19:19
Prispevkov: 2752
Aktiv.: 11.62
Kraj: Trzic

PrispevekObjavljeno: Sre Dec 28, 2005 10:01 pm    Naslov sporočila:   Odgovori s citatom

Kupi tipkovnico ali jo naredi, jo poveži na PIC-a, napiši program, sprogramiraj, priključi LCD in je!

Malce se razjasni, kateri PIC uporabljaš, v čem programiraš, že znaš kaj programirat!??
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
California
Član
Član



Pridružen-a: Pet 26 Avg 2005 19:48
Prispevkov: 236
Aktiv.: 1.00
Kraj: Hrastnik

PrispevekObjavljeno: Sre Dec 28, 2005 10:57 pm    Naslov sporočila:   Odgovori s citatom

Torej sem začetnik, programiram na 16F877A, tipkovnico sem naredil, vse skupaj z LCD-jem imam na EasyPIC3 plošči. Programiram z mikroBasic, ker ima veliko v knjižnici in je vsaj za mene bolj preprosto programiranje. Nekaj osnovnih stvari mi je uspelo spravit skupaj, pri tipkovnici se mi je pa zataknilo. Namreč na LCD-ju dobim pravo informacijo o pritisnjeni tipki (v stringu), vendar je ne znam uporabiti naprej (rabim DEC ali HEX).
_________________
California
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
California
Član
Član



Pridružen-a: Pet 26 Avg 2005 19:48
Prispevkov: 236
Aktiv.: 1.00
Kraj: Hrastnik

PrispevekObjavljeno: Čet Dec 29, 2005 9:23 am    Naslov sporočila:   Odgovori s citatom

Dodatno pojasnilo s primerom izpisa na LCD:

Naprimer zgornja vrstica na začetku: Setp.1 (string), v sredini: 90,5 (float) in nekje proti koncu vrstice še: °C (zopet string). Vrednost 90,5 bi bilo najbolj elegantno vnesti preko tipkovnice, po vnosu (spremembi) pa bi jo morali zapisati v EEPROM, od koder jo lahko program prebere. In še dodatna stvar, setpointov je več in vsi bi morali biti na enak način dosegljivi. Upam, da nisem preveč zakompliciral ideje.
Vse skupaj je mišljeno kot večkanalni temperaturni ON/OFF regulator.

_________________
California
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
NeoTO
Član
Član



Pridružen-a: Pon 28 Mar 2005 19:19
Prispevkov: 2752
Aktiv.: 11.62
Kraj: Trzic

PrispevekObjavljeno: Čet Dec 29, 2005 10:42 am    Naslov sporočila:   Odgovori s citatom

Daj prilimaj tvojo kodo, kar je imaš za tale problem. Sam sicer ne poznam microBasica, zagotovo pa se bo kdo tukaj našel, ki ti bo pomagal.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
California
Član
Član



Pridružen-a: Pet 26 Avg 2005 19:48
Prispevkov: 236
Aktiv.: 1.00
Kraj: Hrastnik

PrispevekObjavljeno: Čet Dec 29, 2005 4:59 pm    Naslov sporočila:   Odgovori s citatom

Tukaj je koda:

Koda:

program keypad_test
'vrne ASCII kodo pritisnjene številke
dim kp as byte

dim i as byte
dim LCDPos as byte
dim myNumber as word
dim myNumberString as char[5]


'first number will be put into mynum[0], next into mynum[1] and so on...
'next display digits on LCD

'and so on



main:


  Keypad_Init(PORTD)
  Lcd_Init(PORTB)          ' Initialize LCD on PORTB
  Lcd_Cmd(LCD_CLEAR)       ' Clear display
  Lcd_Cmd(LCD_CURSOR_OFF)  ' Cursor off



  while TRUE
    kp = 0

    '--- Wait for key to be pressed
    while kp = 0
      '--- un-comment one of the keypad reading functions
      kp = Keypad_Released

    wend



    '--- prepare value for output
    if kp > 10 then
      kp = kp + 54
    else
      kp = kp + 47           '47
    end if

    LCD_CHR(2, 1, kp)



LCDPos = 1
myNumber = kp
WordToStr(myNumber, myNumberString)

for i = 0 to 4
   if myNumberString[i] <> " " then
      Lcd_Chr(1, LCDPos, myNumberString[i])
      LCDPos = LCDPos + 1
      Delay_ms(10)
   end if
next i


   
  wend


end.

_________________
California
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.57

PrispevekObjavljeno: Čet Dec 29, 2005 5:06 pm    Naslov sporočila:   Odgovori s citatom

Basic ni moja najmocnejsa stran zato me popravi ce se motim: ti ze imas decimalno/hex vrednost "kp", za katero si napisal, da jo rabis ?! Kaj ti pa ni vsec pri njej ?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
California
Član
Član



Pridružen-a: Pet 26 Avg 2005 19:48
Prispevkov: 236
Aktiv.: 1.00
Kraj: Hrastnik

PrispevekObjavljeno: Čet Dec 29, 2005 6:36 pm    Naslov sporočila:   Odgovori s citatom

Tudi jaz ne vem ali se motim, ko mislim da je to string, ker mi ni do sedaj s to cifro ničesar ni uspelo narediti (izpis večmestnega števila, preproste matematične operacije, ...)
_________________
California
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.57

PrispevekObjavljeno: Pet Dec 30, 2005 1:56 am    Naslov sporočila:   Odgovori s citatom

Ali govoriva o isti stvari ? Ena funkcija ti vrne vrednost, ki jo zapises v spremenljivko "kp". To je najbrz koda tipke, ki je pritisnjena, saj glede nanjo ukrepas dalje (recimo pripises stringu se en znak, glede na to, kaksna je vrednost je v kp - torej katera tipka je bila pritisnjena). Zakaj ne bi mogel te vrednosti (kp) uporabiti v izracunih, ce je temu tako ?

(z Basicom sem se srecal prvic in zadnjic na PCjih ~15 let nazaj)
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
California
Član
Član



Pridružen-a: Pet 26 Avg 2005 19:48
Prispevkov: 236
Aktiv.: 1.00
Kraj: Hrastnik

PrispevekObjavljeno: Sob Dec 31, 2005 1:27 pm    Naslov sporočila:   Odgovori s citatom

Problem rešen z malo znoja.

Koda:

program keypad_test

dim kp,kp1,cnt as byte
dim kp2 as word
dim txt,txt1 as string[5]

main:

  cnt = 0
  Keypad_Init(PORTD)
  Lcd_Init(PORTB)          ' Initialize LCD on PORTB
  Lcd_Cmd(LCD_CLEAR)       ' Clear display
  Lcd_Cmd(LCD_CURSOR_OFF)  ' Cursor off



  while TRUE
    kp = 0

    '--- Wait for key to be pressed
    while kp = 0
      '--- un-comment one of the keypad reading functions
      kp = Keypad_Released
      'kp = Keypad_Read
    wend

    Inc(cnt)
    delay_us(120)

    '--- prepare value for output
    if kp > 10 then
      kp = kp + 54
    else
      kp = kp + 47
    end if

    kp1 = kp - 48


   select case cnt
   case 1 kp2 = kp1
   case 2 kp2 = (kp2 * 10) + kp1
   case 3 kp2 = (kp2 * 10) + kp1
   case 4 kp2 = (kp2 * 10) + kp1
   case 5 kp2 = (kp2 * 10) + kp1
   case else cnt = 0
   end select
   


    '--- print it on LCD

    WordToStr(kp2, txt1)
    Lcd_out(1, 3, txt1)
    WordToStr(cnt, txt)
    Lcd_Out(2, 3, txt)
  wend
 


end.

_________________
California
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
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: 492 dni


Powered by phpBB © 2001, 2005 phpBB Group