Bir dost istedi, protonla hallettik beraberce benim için zor oldu zira uzun zamandır ne isis ne proton nede PIC kullanıyordum.
Program interrupt kullanarak ileri geri ve reset yapıyor. buna bağlı olarak portd de bağlı bulunan iki adet 4511 ile display sürülüyor.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
Device = 16F877A Xtal 4 All_Digital True Symbol PS0 = OPTION_REG.0 ' Prescaler Rate Select Symbol PS1 = OPTION_REG.1 ' Prescaler Rate Select Symbol PS2 = OPTION_REG.2 ' Prescaler Rate Select Symbol PSA = OPTION_REG.3 ' Prescaler Assignment Symbol T0SE = OPTION_REG.4 ' TMR0 Source Edge Select Symbol T0CS = OPTION_REG.5 ' TMR0 Clock Source Select Symbol INTEDG = OPTION_REG.6 ' Interrupt Edge Select Symbol NOT_RBPU = OPTION_REG.7 ' PORTB Pull-up Enable Symbol RBIF = INTCON.0 ' RB Port Interrupt Flag Symbol INTF = INTCON.1 ' RB0 External Interrupt Flag Symbol T0IF = INTCON.2 ' TMR0 Overflow Interrupt Flag Symbol RBIE = INTCON.3 ' RB Port Change Interrupt Enable Symbol INTE = INTCON.4 ' RB0 External Interrupt Enable Symbol T0IE = INTCON.5 ' TMR0 Overflow Interrupt Enable Symbol PEIE = INTCON.6 ' Peripheral Interrupt Enable Symbol GIE = INTCON.7 ' Global Interrupt Enable TRISB=%11111111 TRISD=%00000000 Clear Dim Birler As Byte Dim Onlar As Byte RBIE=1 ;RBIE yani portb 4-7 pinlerini kontrol eden interrupt GIE=1 ;global interrupt aç On Interrupt GoTo KESME_ALTPROGRAMI ;interrup oluşursa git ;display sürücü E pin Birler basamağı için PORTD.5 ;display sürücü E pin Onlar basamağı için PORTD.6 ;Butonlar PORTB.5 ve PORTB.6 ve Portb.7 ;-------------------------------------------------------------TARAMA BU BOLUMDE YAPILIYOR start: PORTD=%00010000 | Birler DelayMS 1 ;bu deger tarama hızını etkiler PORTD=%00100000 | Onlar DelayMS 1 ;bu deger tarama hızını etkiler GoTo start ;----------------------------------------------------------------KESME ALTPROGRAMI Disable KESME_ALTPROGRAMI: GIE=0 ;tüm interruptlar kapalı RBIE=0 ;RB4-7 interrupt kapalı ;--------------------------------------------------------Buton Kontrol ;Arttır If PORTB.5=0 Then Inc Birler If Birler>9 Then Inc Onlar Birler=0 EndIf ;AZALT If PORTB.6=0 Then Dec Birler If Birler=$FF Then Dec Onlar Birler=9 EndIf ;Sil If PORTB.7=0 Then Birler=0 Onlar=0 EndIf ;------------------------------------------------------------------Buton Sonu RBIF=0 ;oluşan interrupt ın bayrağını sil. amacı yeni interrupt gelmesi için RBIE=1 ;RB4-7 interrupt Açık GIE=1 ;tüm interruptlar Açık Resume Enable ;-------------------------------------------------------------------KESME SONU Stop ;-------------------------------------------------------------------Program Sonu |
program ve isis dosyası için.
http://www.4shared.com/rar/ZblsYQaEce/zdemirhoca.html
Ziyaretci : 4127