PIC 16F877 ÇOKLU LED SINYAL
CCS C ile yazılmış ve PIC 16F877 mikroişlemcisi kullanılmış bir uygulama. Uygulamada mikroişlemcinin B portlarına bağlı ledler belli aralıklarla yanıp sönüyor. Buttona basınca duruyor.
PIC 16F877 uygulamasında bu kez 8 adet led ve bir adet button kullanacağız. Ledler balli aralıklarla yanıp sönecek, buttona basınca hepsi sönerek bekleyecektir.
Mikroişlemcinin B portunun tüm ayaklarını 0 yapmak için aşağıdaki komutu kullanabiliriz.
output_b(0b00000000);
Mikroişlemcinin tüm ayaklarını 1 yapmak için ise aşağıdaki komutu kullanabiliriz.
output_b(0b00000000);
A portlarını giriş olarak ayarlamak için kullanacağımız kod.
set_tris_a(0xFF);
A portunun 0. Ayağının 1 olup olmadığını aşağıdaki şekilde kontrol edebiliriz.
if(input(PIN_A0)==1)
{
output_b(0b11111111);
delay_ms(300);
output_b(0b00000000);
delay_ms(300);
}
else
{
output_b(0b00000000);
}
Yukarıdaki örnekte PIN_A0’ın 1 olup olmadığı kontrol ediliyor. Eğer 1 ise ledler yanıp sönüyor, değilse ledleri söndürüp bekliyor.
Program Kodları
#include <16F877.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=4000000)
void main()
{
while(TRUE)
{
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(0x00);
set_tris_a(0xFF);
output_b(0x00);
output_a(0x00);
while(TRUE)
{
if(input(PIN_A0)==1)
{
output_b(0b11111111);
delay_ms(300);
output_b(0b00000000);
delay_ms(300);
}
else
{
output_b(0b00000000);
}
}
}
}
YÜRÜYEN IŞIK DEVRESİ VE YAZILIMI
PIC ILE DISPLAY KONTROLÜ
SANATSAL BİLGİ
16/10/2016