as.yıldırım

Usta Üye
Katılım
14 Eki 2011
Mesajlar
1,287
Puanları
181
arkadaslar bankalarda gördügümüz bi sistem var.Farklı veznelerin üstünde birer display var ve butona bastıkca displaylardaki sayı 1 artmaktadır.Burada isin esprisi displaylarin birbiriyle bir nevi iletişim içinde olması ve butona basıldıgında o displaydaki sayıyı degil,en yüksek sayının oldugu displaydaki sayıyı 1 arttırır ve kendi displayinde gösterir.

Bende bu sistemi 3 display için yaptım.pic16f877 kullandım.CCS ile yazdım.Cok zor bir sistem degil ama özellikle kesme konusunu ögrenmek isteyen arkadaslara yardımcı olabilir.

Adsız.jpg


#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(c)


char sayi=0;
char sayi_1=0;
char sayi_2=0;
char sayi_3=0;
char sayi_1_onlar;
char sayi_1_birler;
char sayi_2_onlar;
char sayi_2_birler;
char sayi_3_onlar;
char sayi_3_birler;


char display[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x6f};




#int_RB


void abc(){


if(input(pin_b4)){
sayi++;
sayi_1=sayi;
if(sayi>99)sayi=0;
if(sayi_1>99)sayi_1=0;
sayi_1_birler=sayi_1%10;
sayi_1_onlar=sayi_1/10;

}
if(input(pin_b5)){
sayi++;
sayi_2=sayi;
if(sayi>99)sayi=0;
if(sayi_2>99)sayi_2=0;
sayi_2_birler=sayi_2%10;
sayi_2_onlar=sayi_2/10;


}
if(input(pin_b6)){
sayi++;
sayi_3=sayi;
if(sayi>99)sayi=0;
if(sayi_3>99)sayi_3=0;
sayi_3_birler=sayi_3%10;
sayi_3_onlar=sayi_3/10;


}






}






void main(){


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


set_tris_b(0x70);
set_tris_c(0x00);
set_tris_d(0x00);


output_b(0);
output_c(0);
output_d(0);


enable_interrupts(INT_RB);
enable_interrupts(GLOBAL);




while(1){




output_d(0b11111110);
output_c(display[sayi_1_birler]);
delay_ms(10);

output_d(0b11111101);
output_c(display[sayi_1_onlar]);
delay_ms(10);

output_d(0b1111011);
output_c(display[sayi_2_birler]);
delay_ms(10);

output_d(0b1110111);
output_c(display[sayi_2_onlar]);
delay_ms(10);

output_d(0b11101111);
output_c(display[sayi_3_birler]);
delay_ms(10);

output_d(0b11011111);
output_c(display[sayi_3_onlar]);
delay_ms(10);


}
}



rar dosyasını ekleyemedim.Forumda yeni sayılırım.Eger nasıl yüklendigini ayrıntılı anlatırsanız proteus cizim ccs dosyası hex dosyasını da paylasabilirim...
 

Ekli dosyalar

  • banka sıra sistemi.rar
    28.9 KB · Görüntüleme: 36

Forum istatistikleri

Konular
128,126
Mesajlar
915,250
Kullanıcılar
449,840
Son üye
111340

Yeni konular

Geri
Üst