Abant İzzet Baysal Üniversitesi Elek.-Elekt. Müh. Bölümü Mikroişlemciler Laboratuvarı I Deney 6 Amaç: Bu deneyin amacı, öğrencilere Timer modülünün 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. ;Bu program zamanlayıcı-0 kesmesini kullanarak ekrana birer artan sayıları yazar. LCD_DATA EQU P0 LCD_RS EQU P2.0 LCD_RW EQU P2.1 LCD_E EQU P2.2 SAYI EQU 30H DIJIT3 EQU 31H ; Yüzler hanesi DIJIT2 EQU 32H ; Onlar hanesi DIJIT1 EQU 33H ; Birler hanesi TAMAM EQU 20H.0 ;Reset Vektör ORG 0000H LJMP ANA ;Ana program başlangıcına dallan ORG 000BH LJMP TIMER0_INT ;Zamanlayıcı-O kesme vektör adresi ORG 0030H ;Program başlangıcı ANA: MOV SAYI,#00 MOV DIJIT3,#00 MOV DIJIT2,#00 MOV DIJIT1,#00 CLR TAMAM LCALL RESETLEME LCALL LINE1 Abant İzzet Baysal Üniversitesi Elek.-Elekt. Müh. Bölümü Mikroişlemciler Laboratuvarı I MOV MOV MOV MOV MOV SETB MOV TEKRAR: JNB CLR LCALL LCALL LCALL JMP IE,#00H ;Zamanlayıcı-O kesmesini yetkile TCON,#00 TMOD,#01H ;Zamanlayıcı-1 16 bit TH0,#4CH ;4C00h 5Oms gecikme TL0,#00H TR0 ; Zamanlayıcı-o çalıştır IE,#82H TAMAM,$ ; TAMAM=O ise bekle TAMAM DIJIT_AYIR LINE1 LCD_GOSTER TEKRAR ;Zamanlayıcı-0 kesme hizmet alt yordamı TIMER0_INT: CLR ET0 CLR TF0 CLR TR0 MOV TH0,#4CH MOV TL0,#00H SETB TR0 INC SAYI SETB TAMAM SETB ET0 RETI ;Zamanlayıcı kesmesini yetkisizle ;Zamanlayıcı-0 durdur ;4CH 5Oms gecikme ;Zamanlayıcı-0 çalıştır ;SAYI=SAYI+1 ;Zamanlayıcı kesmesini tekrar yetkile ;SAYI değişkenini ondalık olarak hanelerine ayırır DIJIT_AYIR: MOV A,SAYI MOV B,#100 DIV AB ;A=bölüm,B=Kalan ADD A,#48 ;A daki sa yı yı ASCII ye çevir. MOV DIJIT3,A ;ASCII ye çevrilmiş hane değerini ; DIJIT değişkenine 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 değeri LCD ekrana yazar LCD_GOSTER: MOV A,DIJIT3 LCALL DATA_GONDER Abant İzzet Baysal Üniversitesi Elek.-Elekt. Müh. Bölümü Mikroişlemciler Laboratuvarı I MOV A,DIJIT2 LCALL DATA_GONDER MOV A,DIJIT1 LCALL DATA_GONDER RET CLOCK: RET LINE1: CLR CLR LCALL SETB LCALL CLR LCALL LCD_RW LCD_E DELAY LCD_E DELAY LCD_E DELAY MOV CLR LCALL LCD_DATA,#1 LCD_RS 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 ;30h komutunu LCD ye gönder CLR LCD_RS LCALL CLOCK MOV LCD_DATA,#30H CLR LCD_RS LCALL CLOCK MOV LCD_DATA,#3CH ;Fonksiyon belirleme CLR LCD_RS LCALL CLOCK MOV LCD_DATA,#0CH ;LCD aç CLR LCD_RS LCALL CLOCK MOV LCD_DATA,#01H ;LCDsII CLR LCD_RS Abant İzzet Baysal Üniversitesi Elek.-Elekt. Müh. Bölümü Mikroişlemciler Laboratuvarı I LCALL CLOCK MOV LCD_DATA,#06H CLR LCD_RS LCALL CLOCK ;Giris modu RET END 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