Pic16f84 ile 4 Digit 7 Segment Yukarı sayıcı

Pic16f84  ve 4 adet ortak anot  7 segment display ile yapılmış devrede tarama yöntemiyle 0-9999 sayıcı yapılmıştır.

Devrede;  B portu buton ve segment bilgileri için, A portu ise segmentleri aktif etme için kullanılmış.

// 4-Digit digital counter using PIC16F84A
// http://ccspicc.blogspot.com/
// electronnote@gmail.com

#include <16F84A.h>
#fuses HS,NOWDT,PUT,NOPROTECT
#use delay(crystal=8000000)

short s;   // Buton konumu için
unsigned int digit, digit1, digit10, digit100,digit1000;
unsigned long i;
unsigned int seg(unsigned int num) {
  switch (num) {
    case 0 : return 0xC0;
    case 1 : return 0xF9;
    case 2 : return 0xA4;
    case 3 : return 0xB0;
    case 4 : return 0x99;
    case 5 : return 0x92;
    case 6 : return 0x82;
    case 7 : return 0xF8;
    case 8 : return 0x80;
    case 9 : return 0x90;
   }
}
void main() {
  while(TRUE) {
   if(input(PIN_B7) == 1)
     s = 1;
   if(s == 1) {
     if(input(PIN_B7) == 0) {
       s = 0;
       i++;
       if(i > 9999)
         i = 0;
     }
   }
   digit = i % 10;
   digit1 = seg(digit);
   output_a(0x0F);             // Ekranlar söndürülür
   output_b(digit1);           // birler hanesi b portuna konulur
   output_a(0x07);             // birler hanesi aktif
   delay_ms(5);
   digit = (i / 10) % 10;
   digit10 = seg(digit);
   output_a(0x0F);             // Ekranlar söndürülür
   output_b(digit10);          // onlar hanesi b portuna konulur
   output_a(0x0B);             // onlar hanesi aktif
   delay_ms(5);
   digit = (i / 100) % 10;
   digit100 = seg(digit);
   output_a(0x0F);             // Ekranlar söndürülür
   output_b(digit100);         // yüzler hanesi b portuna konulur
   output_a(0x0D);             // yüzler hanesi aktif
   delay_ms(5);
   digit = (i / 1000) % 10;
   digit1000 = seg(digit);
   output_a(0x0F);             // Ekranlar söndürülür
   output_b(digit1000);        // binler hanesi b portuna konulur
   output_a(0x0E);             // binler hanesi aktif
   delay_ms(5);
   }
}
Bu yazı CCS C Örnekleri kategorisine gönderilmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.