ISIS Simülasyon şeması |
Program kodları:
#include <16f877.h> //derleyiciye mcu'yu tanıtıyoruz
#device adc=10 //adc'nin kaç bit olacağını tanımlıyoruz 8 veya 10bit
#use delay(clock=10000000) //mcu osilatör frekansı f=10hmz
long giris; //giris adında long integer tanımlıyoruz
main() //ana döngü
{
setup_adc_ports(AN0); //RA0(AN0) bacağını analog giriş olarak ayarlıyoruz
setup_adc(ADC_CLOCK_INTERNAL); //adc biriminin clock'unu dahili olarak ayarlıyoruz
set_adc_channel(0); //okunacak adc kanalının ra0 olduğunu belirtiyoruz
delay_us(20); //20us gecikme, yukarıdaki işlemden sonra gerekli
output_b(0); //b portunu komple lojik 0 yapıyoruz
while(1) //sonsuz döngü
{
giris=read_adc(); //adcyi oku ve değeri giris'e yaz
if(giris>=1023)output_b(0b00011111); //bu kısımda okunan adc'nin değerine
else if(giris>=818)output_b(0b00001111); //göre binary olarak b portunun durumunu
else if(giris>=613)output_b(0b00000111); //rb7-rb0 arası lojik 1 yada lojik sıfır
else if(giris>=409)output_b(0b00000011); //yapıyoruz
else if(giris>=204)output_b(0b00000001); //
else output_b(0); //
delay_ms(200); //200ms bekle
}
}
Upload yapabileceğim uygun bir yer bulduğumda kod ve simülasyon dosyalarının linkini de ekleyeceğim.
Devre tasarımı doğru fakat Kod kısmına gelice işler karışmış galiba
YanıtlaSil