Elektrik elektronik eğitimi ile ilgili bilgiler, kitap özetleri, kitap sınav soruları ve eğitime dair her şey
30 Ağustos 2019 Cuma
PIC16F84A Mikrodenetleyici ile Ortak Katotlu 7 Segment Display Sayıcı Uygulama Devresi ve Program Kodu
Yukarıdaki devrede PIC16F84A Mikrodenetleyici ile yapılmış 4 haneli 7 Segment Display Sayıcı Uygulama Devresi görülmektedir.
Devrede ortak katotlu 7 segment display kullanılmıştır.
Rb7'ye bağlı olan butona basıldığında görüntülenen sayı değeri 1 artar.
PIC16F84A Mikrodenetleyici devresi +5V gerilim ile çalışmaktadır.
4 basamaklı 7 Segment Display Sayıcı PIC16F84A Mikrodenetleyici CCS C kodu
1 // 4-Digit digital counter using PIC16F84A (common cathode type)
2 // Common cathode 7-segment display
3 // http://elektrikelektronikegitimi.blogspot.com
4
5 #include <16F84A.h>
6 #fuses HS,NOWDT,PUT,NOPROTECT
7 #use delay(crystal=8000000)
8
9 short s; // Used to know button position
10 unsigned int digit, digit1, digit10, digit100,digit1000;
11 unsigned long i;
12 unsigned int seg(unsigned int num) {
13 switch (num) {
14 case 0 : return 0x3F;
15 case 1 : return 0x06;
16 case 2 : return 0x5B;
17 case 3 : return 0x4F;
18 case 4 : return 0x66;
19 case 5 : return 0x6D;
20 case 6 : return 0x7D;
21 case 7 : return 0x07;
22 case 8 : return 0x7F;
23 case 9 : return 0x6F;
24 }
25 }
26 void main() {
27 while(TRUE) {
28 if(input(PIN_B7) == 1)
29 s = 1;
30 if(s == 1) {
31 if(input(PIN_B7) == 0) {
32 s = 0;
33 i++;
34 if(i > 9999)
35 i = 0;
36 }
37 }
38 digit = i % 10;
39 digit1 = seg(digit);
40 output_a(0); // Turn off all displays
41 output_b(digit1); // Send ones digit
42 output_a(8); // Turn on display for ones
43 delay_ms(5);
44 digit = (i / 10) % 10;
45 digit10 = seg(digit);
46 output_a(0); // Turn off all displays
47 output_b(digit10); // Send tens digit
48 output_a(4); // Turn on display for tens
49 delay_ms(5);
50 digit = (i / 100) % 10;
51 digit100 = seg(digit);
52 output_a(0); // Turn off all displays
53 output_b(digit100); // Send hundreds digit
54 output_a(2); // Turn on display for hundreds
55 delay_ms(5);
56 digit = (i / 1000) % 10;
57 digit1000 = seg(digit);
58 output_a(0); // Turn off all displays
59 output_b(digit1000); // Send thousands digit
60 output_a(1); // Turn on display for thousands
61 delay_ms(5);
62 }
63 }
Kaydol:
Kayıt Yorumları (Atom)
Avrupa Birliği Yeni Akıllı Telefonlarda Değiştirilebilir Bataryayı Zorunlu Yapacak
Avrupa Birliği (AB), elektronik atığı azaltmak ve telefonun ömrünü uzatmak amacıyla 18 Şubat 2027'den itibaren satışta olacak yeni akıll...
-
Kitabın Adı : Yazıyı Bulan Çocuk Kitabın Yazarı: Sinan Yaşar Kitap Hakkında Bilgi: "Ben Beyaz Bulut! Hiç alçak gönüllülük etmeyeceğim; ...
-
Kitabın Adı: Zerdali - Dedemle Bir Yıl Kitabın Yazarı: Yaşar Bayraktar Zerdali - Dedemle Bir Yıl Kitap Sınavı Soruları 1-) Yazarın dedes...

Hiç yorum yok:
Yorum Gönder