PIC

PIC16F877A ile 4 digit 7 segment display kontrolü

19.01.2025 00:06:34 Yorum Yok 326 Görüntülenme

PIC16F877A ile 4 digit 7 segment display kontrolü

/* KEYPAD ÜZERİNDEN GELEN SAYILARI DİSPLAY ÜZERİNDEN KAYDIRARAK GÖSTERİR 
                            CODE BY YAHYA KARALİ
*/

#include <16f877a.h>
#fuses xt, nowdt, noprotect, nobrownout, nolvp, noput, nowrt, nodebug, nocpd
#use delay(clock=4000000)
#use fast_io(a)
#use fast_io(c)
#use fast_io(b)
#use fast_io(d)

#byte PORTC=0x07
#byte PORTD=0x08

/*
    case 0 : return 0x3F;
    case 1 : return 0x06;
    case 2 : return 0x5B;
    case 3 : return 0x4F;
    case 4 : return 0x66;
    case 5 : return 0x6D;
    case 6 : return 0x7D;
    case 7 : return 0x07;
    case 8 : return 0x7F;
    case 9 : return 0x6F;
    
    */
    
char keys[]={
0x06, 0x5b, 0x4f,0X3F, 0x66, 0x6d,
0x7c,0X3F, 0x07, 0x7f, 0x6f,0X3F, 0x77, 0X3F, 0x7C 
};

int16 dizi[20]; 
int16 dizi2[20];
int i=0,k,s,m,y;

#int_ext
void kesme()
{
dizi[i]=keys[PORTC & 0x0F];
i++;
s=i;
for (m=0; m<5; m++) // SATIRLARI KAYDIR DİĞER DİZİYE AKTAR
{
dizi2[m]=dizi[s];
if (s==0) break;
s--;
}

}


void temizle()   // DİSPLAY TEMİZLE FONKSİYONU
{
for (y=0;y<=5;y++)
{
dizi[y]=keys[13];

}
}


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_c(0x0f);
set_tris_b(0x01);
set_tris_a(0x00);
set_tris_d(0x00);

ext_int_edge(l_to_h);
enable_interrupts(int_ext);
enable_interrupts(global);
output_b(0x00);
output_a(0x0f);
temizle();

while(1)
{
k=1;
output_low(pin_a0);
portd=dizi2[k];
delay_ms(5);
output_high(pin_a0);

k++;

output_low(pin_a1);
portd=dizi2[k];
delay_ms(5);
output_high(pin_a1);

k++;
output_low(pin_a2);
portd=dizi2[k];
delay_ms(5);
output_high(pin_a2);

k++;

output_low(pin_a3);
portd=dizi2[k];
delay_ms(5);
output_high(pin_a3);

k=1;

}


}
 

Proje Dosyaları                                      İNDİR

    Otomasyon Atölyesi

    Otomasyon Atölyesi Sitesi 2024 yılı itibariyle yayınına başlamıştır.

    © Copyright 2023 Otomasyon Atölyesi. All Rights Reserved.