F

74c922 entegresi kullanimi yardimmm

Başlatan fuzulidark, 18 Temmuz 2012, 13:51:45

fuzulidark

arkadaslar 74c922 entegresi yardimiyla keypadden girdigim sayilarin lcd de gorunmesini istiyorum fakat 1de 0, 2de 1,3de 2; 4,5,6da kndilerini;7de 8, 8de 9, 9da 10; *da 12, 0da 13, #de 14 veriyor bunu nasil duzeltebilirim sabahtan beri ugrasiyorum bi yardim edin lutfen..




#include <16f877.h>

#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD

#USE delay (clock=4000000)

#use fast_io(b)
#use fast_io(c)
#use fast_io(d)
#byte portc=0x07

char const keys[] ={1,2,3,
                    4,5,6,0,
                    7,8,9,0,
                    0xF,0,0xF,0,};
                   
#define use_portd_lcd TRUE

#include <lcd.c>

#int_ext
int a,b,c,d,e;

void dis_kesme ()
{output_high(pin_b0);
portc=keys[portc>>4];
output_low(pin_b0);
}


void main()
{

   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_CCP1(CCP_OFF);
   setup_CCP2(CCP_OFF);
   

set_tris_b(0x01);
set_tris_c(0xFF);
set_tris_d(0x00);
lcd_init();


while(1)
{lcd_send_byte(0,0x0d);
printf(lcd_putc,"\f lutfen bir sayi giriniz.");
delay_ms(100);


ext_int_edge(L_TO_H);

enable_interrupts(INT_EXT);
enable_interrupts(GLOBAL);

a=1*input(pin_c4);
b=2*input(pin_c5);
c=4*input(pin_c6);
d=8*input(pin_c7);
e=a+b;
e=e+c;
e=e+d;


printf(lcd_putc,"\ngirilen= %d",e);
delay_ms(100);


}
}

ete

Öncelikle Basic üzerine kurulu bir forum sitesinde C dili ile ilgili soru soruyorsun bu yanlış.
İkincisi mantığını çalıştırarak bunu çözebilirsin. Basılan tuş değeri 6 dan küçük ise TUS=TUS+1
Basılan Tus değeri 6 dan büyük ise TUS=TUS-1 komutlarını vererek işi düzeltebilirsin.

Ete

fatih88

fuzulidark kardeşim bu lanet olası entegre çok pahalı daha önceden proton basıcde bu entegreyi kullanmıştım en güzel yanı entegrenin tarama yaparak programı kasmıyorsun entegre bcd olarak basılan tuşları yolluyor aynı zamanda  entegre her tuşa basıldıgında "da"pininden pals yolluyor dış kesme ilede verileri alabilirsin işleyerek lcd ye yollayabilirsin iyi çalışmalar
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

hasanb

#3
bide aşşağıda verdiğim devre gibi kullan tarama derdi olmas ve tek pinden işi çözersin istediğin gibi kullan

Powered by EzPortal