Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d

Ana Menü

16f877-7448-DISPLAY

Başlatan cızgılıkedı, 01 Ocak 2016, 20:41:15

cızgılıkedı

Kolay gelsin arkadaşlar.
1. Bugün uğraştığım bu programda ISIS simülasyonunda tarama tam göremediğim için port b4 ve port b5 direk bağladım ve output_low yani lojik-0- şeklinde displayleri aktif ettim.Ama açıkcası programda baya uğraştırdı beni bunun nedeni ise programdaki bu ayarları yapmamamdı;
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);

Bunlar yazılımda ilk başta eskiden geliyor idi şimdi ise elle yazmak zorunda kaldım bunun ayarı nasıl yapılabilir .
#include <DOUBLEDISPLAY.h>
#USE fast_io(a)
#use fast_io(b)
#define ileri pin_a0
#define geri pin_a1
char birler=0,onlar=0, sayi=0;
const int ok[]={0X00,0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,  0x08, 0x09};


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(0x00);
set_tris_a(0b00000011);


   while(1)
   {
   output_LOW(pin_b4);
   
   output_b(ok[birler]);
   delay_ms(5);
   output_HIGH(pin_b4);
   output_low(pin_b5);
   output_b(ok[onlar]);
   delay_ms(5);
   output_HIGH(pin_b5);
   if(input(ileri)){
   sayi++;
   birler=sayi%10;
   onlar=sayi/10;
   while(input(ileri)){
  output_low(pin_b4);
   
   output_b(ok[birler]);
   delay_ms(5);
   output_HIGH(pin_b4);
   output_low(pin_b5);
   output_b(ok[onlar]);
   delay_ms(5);
   output_HIGH(pin_b5);
   }
   }
   if(input(geri) && (sayi !=0)){
   sayi--;
   birler=sayi%10;
   onlar=sayi/10;
   while(input(geri)){
   output_low(pin_b4);
   
   output_b(ok[birler]);
   delay_ms(5);
   output_low(pin_b4);
   output_HIGH(pin_b5);
   output_b(ok[onlar]);
   delay_ms(5);
   output_HIGH(pin_b5);
   }
   }
   if(sayi==100);
   sayi=0;
   }

}



cızgılıkedı

bilen yokmudur arkadaşlar.

Crimsus

Öncelikle merhaba. İlk olarak şu sorununa cevap vereyim

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);


şu yazdığın kodlar sadece kullanmadığın kesme ve timerleri inaktif yapmaya yarıyor. Yazmasan bile kullandığın programa hiç bir problem çıkartmaz

ikinci sorunun bence şurda. 16f877 kullanmışsın - pek net okunmasada - ancak onun kütüphanesini programda çağırmamışsın.
#include <16f877.h>

Büyük ihtimal sorun oradadır. Ayrıca bu devreyi 7-seg ile daha rahat yapabilirsin lcd ler bazen sorun çıkartabiliyor. İyi çalışmalar