4x4 tastatura & probs LCD!

N

nuarizzah

Guest
1.Ma descurc de programare pentru 4x4 tastatura cu PIC16F877 (PIC compilator C), dar problema este caracterul pe care am intra did'nt apar pe ecranul LCD.LCD, de asemenea, luat puţine probleme ... uneori este mai funcţia precum şi programate, dar câteva minute după ce a apărut caractere ciudat ... Stie cineva despre acest ??...

2.apoi, am chganged programate şi utilizate cu un dosar din antet pentru a tastaturii (kbd.h)., dar am dat seama că acest antet fisier este de 4x3 .. tastatura, dar nu sunt sigur de asta?? ..Are cineva vreo idee??, dar încă nimic happpened la tastatura.!Help please!

thankz ..... foarte mult ...

 
Salut!
În cazul în care u de partajare a codurilor ur, atunci vom fi într-o poziţie mai bună pentru a ajuta.
Prin modul în care compilatorul sunt folositi, am byCCSC PICC ghicit?
Cu respect.

 
Dacă aveţi probs cu tastatura, se utilizează un encoder-cheie cu ea.A se vedea circuitul de aici, doar unul 74922 este necesară
http://booksbybibin.14.forumer.com/viewtopic.php?t=11

Dacă utilizaţi encoder-cheie, nu se va produce probs referitoare la cheie debouncing

John bibin
www.bibinjohn.tk

 
LCD este arătând valoarea de gunoi, deoarece le-a luat de date false şi semnalele de control.Se poate întâmpla în multe feluri.Vă rugăm să verificaţi foolowing:

1.Ti-u Verificaţi conexiunea interfaţă pentru LCD?Uneori poate fi din cauza pierde conexiunea de lipire sau la datele de contact moi / pini de control.

2.Este de circuit dvs. de a face orice altă operaţiune? Este valoarea de gunoi vine după orice operaţiune de special? Se poate întâmpla ca LCD-ul este declanşată de comutarea a unor alte circuite în sistemul dumneavoastră.În acest caz, va trebui să ia măsurile necesare pentru a proteja monitorul LCD de interferenţe externe.

3.Is dvs. de micro-a nu putea suporta controlor achiziţie în acest punct?4.Eşti folosind porturile în cazul în care dumneavoastră LCD / tastatura este conectat pentru unele altă aplicaţie?

5.Este porturile având UPS trage interne?Uneori e nevoie de tastatură externe trage în sus.

 
I dont cred că ar putea exista factori de producţie reală de a-i problema ta, dacă nu împărtăşesc schemele şi codul sau mai multe detalii cum se menţionează de către "Prajit"

Mai a fi tu, nu se emite comanda LCD de clare, precum şi alte comenzi

 
aici este codul şi circuitul ... Ne pare rău pentru "teribil" de desen ...
Vă rugăm să verificaţi pentru mine.TQ ....!!!

/ / UTILIZARE PORTB pentru LCD,
/ / UTILIZARE PORTA (A0, A1, A2, A3) PENTRU KEYPAD ÎN
/ / UTILIZARE PORTC (C0, C1, C2, C3) PENTRU KEYPAD OUT

# include <16f877a.h>
# întârziere de utilizare (ceas = 20000000)
# sigurante hs, noprotect, nowdt, nolvp

# porta byte = 5
# PORTB byte = 6
# byte portc = 7

# define use_portb_lcd TRUE
# include <lcd.c>

indata int;/ / rând de detectare a modulului
getkey void ()
(
indata = 0;
în cazul în care (intrare (PIN_C0) == 0)
(
indata = 0;
)
else if (de intrare (PIN_C1) == 0)
(
indata = 1;
)
else if (de intrare (PIN_C2) == 0)
(
indata = 2;
)

else if (de intrare (PIN_C3) == 0)
(
indata = 3;
)
)

void main ()

(
mysta int;
I byte;
k byte;

setup_port_a (NO_ANALOGS);
set_tris_a (0x00);
set_tris_c (0x8F);

lcd_init ();

lcd_putc ( "\ fTRIAL1 ...!!! \ n");
delay_ms (1000);

face
(
mysta = 0;

/ / Coloană asigură 1ST
porta = 0xF7; / / 11110111
getkey ();

în cazul în care (indata == 0)
(
k = 1;
mysta = 1;
)

else if (indata == 1)
(
k = 4;
mysta = 1;
)

else if (indata == 2)
(
k = 7;
mysta = 1;
)

else if (indata == 3)
(
k ='*';
mysta = 1;
)

în cazul în care (mysta == 1)
(
lcd_putc (k '0 ');
delay_ms (500);
mysta = 0;
)

/ / Coloană asigură 2a
porta = 0xFB; / / 11111011
getkey ();

în cazul în care (indata == 0)
(
k = 2;
mysta = 1;
)

else if (indata == 1)
(
k = 5;
mysta = 1;
)

else if (indata == 2)
(
k = 8;
mysta = 1;
)

else if (indata == 3)
(
k = 0;
mysta = 1;
)

în cazul în care (mysta == 1)
(
lcd_putc (k '0 ');
delay_ms (500);
mysta = 0;
)

/ / Coloană asigură 3a
porta = 0xFD; / / 11111101
getkey ();

în cazul în care (indata == 0)
(
k = 3;
mysta = 1;
)

else if (indata == 1)
(
k = 6;
mysta = 1;
)

else if (indata == 2)
(
k = 9;
mysta = 1;
)

else if (indata == 3)
(
k ='#';
mysta = 1;
)

în cazul în care (mysta == 1)
(
lcd_putc (k '0 ');
delay_ms (500);
mysta = 0;
)

/ / Coloană asigură 4a
porta = 0xFE; / / 11111110
getkey ();

în cazul în care (indata == 0)
(
k = 'A';
mysta = 1;
)

else if (indata == 1)
(
k = 'B';
mysta = 1;
)

else if (indata == 2)
(
k = "C";
mysta = 1;
)

else if (indata == 3)
(
k = 'D';
mysta = 1;
)

în cazul în care (mysta == 1)
(
lcd_putc (k '0 ');
delay_ms (500);
mysta = 0;
)) în timp ce (1);
)
<img src="http://images.elektroda.net/54_1174463826_thumb.jpg" border="0" alt="keypad 4x4 &lcd probs!!" title="4x4 tastatura & probs LCD!"/>
 

Welcome to EDABoard.com

Sponsor

Back
Top