Display Uygulaması-2(7448 Entegresi ve Buton İle 0
Transkript
Display Uygulaması-2(7448 Entegresi ve Buton İle 0
Display Uygulaması-2(7448 Entegresi ve Buton İle 0-9999 Yukarı/Aşağı Sayıcı) CRYSTAL FREQ=4MHz 22pF RESET +5V C1 R1 10k X1 U1 C2 22pF 13 14 1 +5V +5V 2 3 4 5 6 7 R21 R22 10k 10k 8 9 10 OSC1/CLKIN OSC2/CLKOUT MCLR/Vpp/THV RA0/AN0 RA1/AN1 RA2/AN2/VREFRA3/AN3/VREF+ RA4/T0CKI RA5/AN4/SS RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RE0/AN5/RD RC2/CCP1 RE1/AN6/WR RC3/SCK/SCL RE2/AN7/CS RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 Arttır Azalt U2 RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD 33 34 35 36 37 38 39 40 7 1 2 6 4 5 3 7x220 Ohm A B C D BI/RBO RBI LT QA QB QC QD QE QF QG 13 12 11 10 9 15 14 74LS48 15 16 17 18 23 24 25 26 +5V 19 20 21 22 27 28 29 30 PIC16F877 R23 R24 220 220 D8 D7 D6 D5 D4 D3 D2 D1 LED-RED LED-RED LED-RED LED-RED LED-RED LED-RED LED-RED LED-RED /****************************************************** Uygulama Adı : Display Uygulaması-2(7448 Entegresi ve Buton İle 0-99 Yukarı/Aşağı Sayıcı) Ders: Microişlemcili Sistemler- (Bilecik Üniveristesi Bilgisayar Mühendisliği) *******************************************************/ #include <16f877A.h> // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor. //***********Denetleyici konfigürasyon ayarları************ #fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD #use delay(clock=4000000) // Gecikme fonksiyonu için kullanılan osilatör frekansı belirtiliyor #use fast_io(a) // Port yönlendirme komutları a portu için geçerli #use fast_io(b) // Port yönlendirme komutları b portu için geçerli #use fast_io(d) // Port yönlendirme komutları d portu için geçerli #define #define #define #define #define #define arttir pin_a0 // arttir butonu pin_a0 ile eşleniyor azalt pin_a1 // azalt butonu pin_a1 ile eşleniyor arttiron pin_a2 // arttir butonu pin_a2 ile eşleniyor azalton pin_a3 // azalt butonu pin_a3 ile eşleniyor arttiryuz pin_a4 // arttir butonu pin_a4 ile eşleniyor azaltyuz pin_a5 // azalt butonu pin_a5 ile eşleniyor #define dspBirler 0b01110000 #define dspOnlar 0b10110000 #define dspYuzler 0b11010000 #define dspBinler 0b11100000 char birler=0, onlar=0,yuzler=0,binler=0; // int tipinde değişkenler tanımlanıyor unsigned int16 sayi=0; // HC74LS48 entegresi Ortak katot display için veri değerleri const int digit[10]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09}; /********* ANA PROGRAM FONKSİYONU********/ void main () { setup_psp(PSP_DISABLED); // PSP birimi devre dışı setup_spi(SPI_SS_DISABLED); // SPI birimi devre dışı setup_timer_1(T1_DISABLED); // T1 zamanlayıcısı devre dışı setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı setup_adc_ports(NO_ANALOGS); // ANALOG giriş yok setup_adc(ADC_OFF); // ADC birimi devre dışı setup_CCP1(CCP_OFF); // CCP1 birimi devre dışı setup_CCP2(CCP_OFF); // CCP2 birimi devre dışı set_tris_a(0xFF); // A portu tümüyle giriş olarak yönlendiriliyor set_tris_b(0x00); // B portu tümüyle çıkış olarak yönlendiriliyor set_tris_d(0x00); // D portu tümüyle çıkış olarak yönlendiriliyor while(1) { // Sonsuz döngü birler=sayi%10; onlar=(sayi/10)%10; yuzler=(sayi/100)%10; binler=sayi/1000; output_b(digit[birler]|(dspBirler)); delay_ms(5); output_b(digit[onlar]|(dspOnlar)); delay_ms(5); output_b(digit[Yuzler]|(dspYuzler)); delay_ms(5); output_b(digit[Binler]|(dspBinler)); delay_ms(5); // 1.display aktif, diğer displeyler pasif ve birler basamağı gönderiliyor // Gecikme veriliyor // 2.display aktif, diğer displeyler pasif ve onlar basamağı gönderiliyor // Gecikme veriliyor // 3.display aktif, diğer displeyler pasif ve yuzler basamağı gönderiliyor // Gecikme veriliyor // 4.display aktif, diğer displeyler pasif ve binler basamağı gönderiliyor // Gecikme veriliyor output_d(sayi);// sayıcının değeri d portuna LED lere gönderiliyor if (!input(arttir)) // arttır butonuna basıldığında { if (sayi>=10000) sayi=0; // sayi değeri 100 ise değeri sıfırla sayi++; // sayi değerini 1 arttır birler=sayi%10; onlar=(sayi/10)%10; yuzler=(sayi/100)%10; binler=sayi/1000; while(!input(arttir)) // arttır butonundan el çekilene kadar bekle { output_b(digit[birler]|(dspBirler)); delay_ms(5); output_b(digit[onlar]|(dspOnlar)); delay_ms(5); output_b(digit[Yuzler]|(dspYuzler)); delay_ms(5); output_b(digit[Binler]|(dspBinler)); delay_ms(5); // 1.display aktif, diğer displeyler pasif ve birler basamağı gönderiliyor // Gecikme veriliyor // 2.display aktif, diğer displeyler pasif ve onlar basamağı gönderiliyor // Gecikme veriliyor // 3.display aktif, diğer displeyler pasif ve yuzler basamağı gönderiliyor // Gecikme veriliyor // 4.display aktif, diğer displeyler pasif ve binler basamağı gönderiliyor // Gecikme veriliyor } } if (!input(azalt)&&(sayi!=0)) // azalt butonuna basıldığında { sayi--; // sayi değerini 1 azalt if (sayi<0) sayi=9999; birler=sayi%10; onlar=(sayi/10)%10; yuzler=(sayi/100)%10; binler=sayi/1000; while(!input(azalt)) // azalt butonundan el çekilene kadar bekle { output_b(digit[birler]|(dspBirler)); // 1.display aktif, diğer displeyler pasif ve birler basamağı gönderiliyor delay_ms(5); // Gecikme veriliyor output_b(digit[onlar]|(dspOnlar)); // 2.display aktif, diğer displeyler pasif ve onlar basamağı gönderiliyor delay_ms(5); // Gecikme veriliyor output_b(digit[Yuzler]|(dspYuzler)); // 3.display aktif, diğer displeyler pasif ve yuzler basamağı gönderiliyor delay_ms(5); // Gecikme veriliyor output_b(digit[Binler]|(dspBinler)); // 4.display aktif, diğer displeyler pasif ve binler basamağı gönderiliyor delay_ms(5); // Gecikme veriliyor } } } }
Benzer belgeler
Display Uygulaması-3(Kesme Yöntemi Kullanarak 7448 Entegresi
9. Uygulamanın raporu, C kodu ,Proteus similasyon dosyası ve uygulama için hazır kodlanmış PIC inizi
haftaya derse getirmeniz gerekiyor.
Adı Soyadı - Bilecik Şeyh Edebali Üniversitesi Bilgisayar Mühendisliği
OSC1/CLKIN
OSC2/CLKOUT
MCLR/Vpp/THV
UYGULAMA 4 DEVRE BAĞLANTISI VE ĠSTENENLER
RA4/T0CKI
RA5/AN4/SS
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RE0/AN5/RD
RC2/CCP1
RE1/AN6/WR
RC3/SCK/SCL
RE2/AN7/CS
RC4/SDI/SDA
RC5/SDO
RC6/TX/CK
RC7/RX/DT
butonu kesmeli çalışacak:butona basınca birler basamağı
RA0/AN0
RA1/AN1
RA2/AN2/VREFRA3/AN3/VREF+
RA4/T0CKI
RA5/AN4/SS
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RE0/AN5/RD
RC2/CCP1
RE1/AN6/WR
RC3/SCK/SCL
RE2/AN7/CS
RC4/SDI/SDA
RC5/SDO
RC6/TX/CK
RC7/RX/DT