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=0x07
char 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_ext
void 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