8 Mart 2023 Çarşamba

Seven segment display tarama yöntemi ile sayıcı ccs c compiler

 Seven segment display tarama yöntemi ile sayıcı ccs c compiler  Port çoklama ve tarama yöntemi uygulaması.

#include<16f877a.h>

#device adc=10

#use delay(clock=4mhz)

int sayilar[10]={0,1,2,3,4,5,6,7,8,9};

int16 sayi=0;

int a=0,birler=0,onlar=0,yuzler=0,binler=0;

#int_timer0

void timer0_isr()

{

a++;

if(a==1)

{

output_low(pin_d0);

output_low(pin_d1);

output_low(pin_d2);

output_high(pin_d3);

output_b(sayilar[birler]);

}


else if(a==2)

{

output_low(pin_d0);

output_low(pin_d1);

output_low(pin_d3);

output_high(pin_d2);

output_b(sayilar[onlar]);

}


else if(a==3)

{

output_low(pin_d0);

output_low(pin_d2);

output_low(pin_d3);

output_high(pin_d1);

output_b(sayilar[yuzler]);

}


else if(a==4)

{

output_low(pin_d1);

output_low(pin_d2);

output_low(pin_d3);

output_high(pin_d0);

output_b(sayilar[binler]);

a=0;

}

}

void main()

{

set_tris_a(0x01);

output_a(0x01);

set_tris_b(0x00);

output_b(0x00);

set_tris_d(0x00);

output_d(0x00);

setup_timer_0(rtcc_internal | rtcc_div_32 | rtcc_8_bit);

set_timer0(131);

enable_interrupts(int_timer0);

enable_interrupts(global);

setup_adc(adc_clock_div_32);

setup_adc_ports(AN0);

set_adc_channel(0);

delay_us(20);


while(true)

{

sayi=read_adc();

binler = sayi / 1000;

yuzler = (sayi%1000)/100;

onlar = (sayi%100)/10;

birler = sayi%10;

delay_ms(2); 

}

}




Hiç yorum yok:

Yorum Gönder

Her yorum bilgidir. Araştırmaya devam...