ccs c de tuş tarama işlemi

Başlatan gilestel, 24 Ekim 2014, 20:38:15

gilestel

Bu projenin amacı kullanıcın keypad yardımı ile 4 haneli herhangi bir sayı girmesi ve girilen sayının artırılıp azaltılması
4 haneli sayı girildikten sonra E ve F buton yardımlarıyla sayıyı artırıp azaltıyoruz D butonu ile ise programı 0 lıyoruz.
A,B,C,D butonları iptal edilmesi gerekiyordu fakat yazdığım kodda o butonları iptal edemedim bu konuda yardımcı olursanız sevinirim.Sadece bu kısmı ile de bir çok arkadaşa yol göstereceğinden eminim.

Teşekkürler.Kolaya gelsin herkese.
#include <16F877A.h>#FUSES NOWDT                    //No Watch Dog Timer#FUSES XT                       //Crystal osc <= 4mhz for PCM/PCH , 3mhz to 10 mhz for PCD#FUSES NOPUT                    //No Power Up Timer#FUSES NOPROTECT                //Code not protected from reading#FUSES NODEBUG                  //No Debug mode for ICD#FUSES NOBROWNOUT               //No brownout reset#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O#FUSES NOCPD                    //No EE protection#FUSES WRT_50%                  //Lower half of Program Memory is Write Protected#use delay(clock=4000000)#use delay(clock=4000000)#include <lcd.c>#use fast_io(b)#use fast_io(c)#use fast_io(d)#byte portc=0x07char const keys[]={1,2,3,10,                   4,5,6,11,                   7,8,9,12,                   14,0,15,13};                    int x,bayrak=0,j=0,c=0,g; long int deger=0;long int tus[10];#int_extvoid dis_kesme(){x=keys[portc>>4];j=j+1;}void main(){   setup_adc_ports(NO_ANALOGS);   setup_adc(ADC_OFF);   setup_psp(PSP_DISABLED);   setup_spi(SPI_SS_DISABLED);   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);   setup_timer_1(T1_DISABLED);   setup_timer_2(T2_DISABLED,0,1);   setup_comparator(NC_NC_NC_NC);   setup_vref(FALSE);   // TODO: USER CODE!!lcd_init();set_tris_b(0x01);set_tris_c(0xF0);set_tris_d(0x00);output_d(0x00);ext_int_edge(L_TO_H);enable_interrupts(INT_EXT);enable_interrupts(GLOBAL);printf(lcd_putc,"HOS GELDINIZ");delay_ms(1000);printf(lcd_putc,"\f");c=0;While(1){if((x!=10)||(x!=11)||(x!=12)){if(j<5){tus[j]=x;}//j<5}//ifx!=g=j;if(g==1){if(c==0){deger=tus[1];printf(lcd_putc,"yeni deger=%Lu",deger);delay_ms(100);printf(lcd_putc,"\f");g=0;c=c+1;}}if(g==2){if(c==1){deger=deger*10+tus[2];printf(lcd_putc,"\f");printf(lcd_putc,"yeni deger=%Lu",deger);delay_ms(100);g=0;c=c+1;}}if(g==3){if(c==2){deger=deger*10+tus[3];printf(lcd_putc,"\f");printf(lcd_putc,"yeni deger=%Lu",deger);delay_ms(100);g=0;c=c+1;}}if(g==4){if(c==3){bayrak=1;deger=deger*10+tus[4];printf(lcd_putc,"\f");printf(lcd_putc,"yeni deger=%Lu",deger);delay_ms(100);g=0;c=c+1;}}printf(lcd_putc,"\f");printf(lcd_putc,"yeni deger=%Lu",deger);delay_ms(100);printf(lcd_putc,"\f");if(bayrak==1){if(x==14){delay_ms(20);deger=deger-1;printf(lcd_putc,"\f");printf(lcd_putc,"yeni deger=%Lu",deger);delay_ms(100);x=0;}if(x==15){delay_ms(20);deger=deger+1;printf(lcd_putc,"\f");printf(lcd_putc,"yeni deger=%Lu",deger);delay_ms(100);x=0;}if(x==13){delay_ms(20);deger=0;j=0;bayrak=0;printf(lcd_putc,"\f");printf(lcd_putc,"yeni deger=%Lu",deger);delay_ms(100);x=0;tus[1]=0;tus[2]=0;tus[3]=0;tus[4]=0;c=0;}//!printf(lcd_putc,"yeni deger=%Lu",deger);//!delay_ms(100);//!printf(lcd_putc,"\f");}//bayrak}//while1}//while

Powered by EzPortal