Abant İzzet Baysal Üniversitesi Elek.-Elekt. Müh. Bölümü Mikroişlemciler Laboratuvarı I Deney 7 Amaç: Bu deneyin amacı, öğrencilere harici kesmenin kullanımını öğretmektir. Deney 1 : 1. ISIS programını açın. 2. Şekil 1'deki tasarımı oluşturun. Şekil 1. Deney tasarımı 3. Projeyi, masaüstünde oluşturmuş olduğunuz bir klasörün içine kaydedin. 4. Aynı klasörün içine “zamanlayici_kesme.asm”, isim ve uzantısı ile, bir dosya oluşturun. 5. Source->Add/remove source files seçeneğini tıklayın ve Şekil 2'deki gibi asm dosyanızı projeye ekleyin. Abant İzzet Baysal Üniversitesi Elek.-Elekt. Müh. Bölümü Mikroişlemciler Laboratuvarı I Şekil 2. 6. Source seçeneğinin altında, eklemiş olduğunuz dosyayı açın ve aşağıdaki programı yazın. LCD_DATA EQU P0 LCD_RS EQU P2.0 LCD_RW EQU P2.1 LCD_E EQU P2.2 S1 EQU P2.7 ;S1 anahtari P2 portunun 7 nolu ucuna bagli SAYI EQU 30H DIJIT3 EQU 31H ;Yüzler hanesi DIJIT2 EQU 32H ;Onlar hanesi DIJIT1 EQU 33H ;Birler hanesi ;Reset Vektör ORG 0000H LJMP ANA ;Ana program baslangicina dallan ORG 0003H ;INTO kesme vektör adresi LJMP INT0_INT ORG 0030H ;Program baslangici ANA: MOV SAYI,#00 MOV DIJIT3,#00 MOV DIJIT2,#00 MOV DIJIT1,#00 LCALL RESETLEME LCALL LINE1 MOV IE,#81H ;INTO kesmesini yetkile SETB IT0 ;INTO düsen kenar tetiklemeli TEKRAR: SETB S1 ;P2.7=1 portu giris olarak ayarla JB S1,$ ;P2.7=0 ise bekle Abant İzzet Baysal Üniversitesi Elek.-Elekt. Müh. Bölümü Mikroişlemciler Laboratuvarı I JNB S1,$ ;P2.7=lise bekle INC SAYI LCALL DIJIT_AYIR LCALL LINE1 LCALL LCD_GOSTER JMP TEKRAR ;Harici kesme-0 Kesme hizmet altyordami INT0_INT: CLR EX0; INC SAYI LCALL DIJIT_AYIR LCALL LINE1 LCALL LCD_GOSTER SETB EX0 RETI ;SAYI degiskenini ondalik olarak hanelerine ayirir DIJIT_AYIR: MOV A,SAYI MOV B,#100 DIV AB ;A=bölüm,B=Kalan ADD A,#48 ;A daki sa yi yi ASCII ye cevir. MOV DIJIT3,A ;ASCII ye cevrilmis hane degerini ; DIJIT degiskenine depola MOV A,B MOV B,#10 DIV AB ADD A,#48 MOV DIJIT2,A MOV A,B ADD A,#48 MOV DIJIT1,A RET ;Her bir hanedeki degeri LCD ekrana yazar LCD_GOSTER: MOV A,DIJIT3 LCALL DATA_GONDER MOV A,DIJIT2 LCALL DATA_GONDER MOV A,DIJIT1 LCALL DATA_GONDER RET CLOCK: CLR LCD_RW CLR LCD_E LCALL DELAY SETB LCD_E LCALL DELAY CLR LCD_E LCALL DELAY RET Abant İzzet Baysal Üniversitesi Elek.-Elekt. Müh. Bölümü Mikroişlemciler Laboratuvarı I LINE1: MOV LCD_DATA,#128 CLR LCD_RS LCALL CLOCK RET DATA_GONDER: MOV LCD_DATA,A SETB LCD_RS LCALL CLOCK RET DELAY: MOV R7,#5 LOOP1: NOP NOP NOP NOP NOP DJNZ R1,LOOP1 RET RESETLEME: MOV LCD_DATA,#30H CLR LCD_RS LCALL CLOCK MOV LCD_DATA,#30H CLR LCD_RS LCALL CLOCK MOV LCD_DATA,#30H CLR LCD_RS LCALL CLOCK MOV LCD_DATA,#3CH CLR LCD_RS LCALL CLOCK MOV LCD_DATA,#0CH CLR LCD_RS LCALL CLOCK MOV LCD_DATA,#01H CLR LCD_RS LCALL CLOCK MOV LCD_DATA,#06H CLR LCD_RS LCALL CLOCK RET END ;30h komutunu LCD ye gönder ;Fonksiyon belirleme ;LCD ac ;LCD sil ;Giris modu 7. Kodu derleyin. 8. Mikrodenetleyicinin üzerine çift tıklayarak, Şekil 3'deki gibi hex dosyasını mikrodenetleyiciye yükleyin.Şekil 3. Abant İzzet Baysal Üniversitesi Elek.-Elekt. Müh. Bölümü Mikroişlemciler Laboratuvarı I Şekil 3.
© Copyright 2024 Paperzz