Pic ile Keypad uygulaması

Katılım
21 Mar 2008
Mesajlar
30
Puanları
1
Yaş
40
Ustadlar merhaba
Ben keypad ile bir hafıza alanına bir değer girmek ve bunu lcd ile görebilmek istiyorum. Ancak keypad i okuduktan sonra menuye girince keypadin taraması sağlıklı olmuyor ve menu içindeki değer girişini yaptıramıyorum.
Bununla ilgili microcode studio ile yapılmış basit bir örnek arıyorum.
Yardımcı olmak isteyen ustalarıma şimdiden teşekkür ederim.
Kolay gelsin
 
keypadi menü içinde ki değer girişlerini yaptırmak için bazı parametre ayarları ile oynaman gerekebilir.Abb sürücü keypadi üzerinde çaıştım.bazı menülerde değişiklik yapmak için kilidi açıp yani "0","1" olarak değiştirip istediğin menülerde ki parametreleri görmene müsade ediyordu.Acaba böyle bişey olabilir mi yanlış anlamış olabilir miyim?
 
arkadaşlar iyi akşamlar..

arkadaşlar başlık açamıyorum henüz ondan dolayı buraya yazıyorum. umarım gören olur..

Ben 4x4 keypad'le LCD'ye microC ile yazı yazdırabildim, hani 1 2 3 falan diye. Ama yapmak istediğim cep telefonu keypad'i gibi, yani 2'ye bir kere basıldığında A, 1 saniye içinde tekrar basarsa B, gibi. Bunla ilgili bilgisi var olan var mı acaba?
çok teşekkürler
 

yapmak istediğin şey çok zor değil fakat microc konusunda tecrübem yok asm işine yarar ise yazıp proteusda test edip gönderebilirim
 
asm kodundan mantığını anlayabilirsem eğer, çok yardımcı olur, ama şunu da belirteyim daha önce hiç asm kullanmadım. zor mudur asm?
 
şöyle bir mantık kurdum sonrasında, bu delay işini pek çözemedim açıkcası... ne kadar doğrudur bilmiyorum ama; yardımcı olursanız sevinirim...

#define row1 PORTBbits.RB3
#define row2 PORTBbits.RB2
#define row3 PORTBbits.RB1
#define row4 PORTBbits.RB0
#define col1 PORTBbits.RB4
#define col2 PORTBbits.RB5
#define col3 PORTBbits.RB6
#define col4 PORTBbits.RB7

char keypadPort at PORTD;

sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;

sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;

cnt=0;
void main()
{
while(1)
if (row1==1 && col1==1)
{
printf("a=%X", 1); break;
Lcd_Cmd(LCD_MOVE_CURSOR_RİGHT)
elseif (row1==1 && col2==1)
for (cnt=0;cnt<3)
if cnt == 0;
printf("a=%X", A); cnt++;
elseif i == 1;
printf("a=%X", B); cnt++;
elseif i == 2;
printif ("a=%X",C);
end
end
 
timer kullan. zamanı tutman gerekiyor. zamanlayıcı kesmesini ayarla kesme süresi doldu mu yeni karaktere geçersin, dolmadıysa tuşa basılma sayısını sayarsın ona göre bir dönüşüm tablosu yardımıyla tuşu lcdye basabilirsin. tabi bu arada başka tuşa basılırsa kesmeyi temizleyip yeni karaktere geçmen gerekiyor. ben mikroc yi pek sevemedim yerine ccs c kullanıyorum istersen örnek yazıp gönderbilirim ama ccs c de. kolay gelsin.
 
Örneği yazıp gönderebilirsen çok sevinirim, vaktin olursa tabi ki.. Çok teşekkür ederim
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…