HARRAN ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 15 Nisan 2014 Mikroişlemciler Ara Sınav---Sınav Süresi 90 Dk. 1) (10p) Mikroişlemcilerle Mikrodenetleyiceleri yapısal olarak ve işlevsel olarak karşılaştırarak avantaj ve dezavantajlarını belirtiniz. 2) (40p) PIC16F877 ile tarla sulama otomasyonu tasarlanacaktır. Tarla 8 bölüme ayrılmış ve her bölme için ayrı bir nem sensörü gömülmüştür. Nem sensörleri eğer bölgede sulamaya ihtiyaç var ise lojik 1, sulama ihtiyacı yok ise lojik 0 çıkışı vermektedir. Eğer 8 nem sensöründen 4’ü veya daha fazlası lojik 1 sinyali gönderiyor ise sulama motoru çalışacak, diğer durumlarda sulama motoru çalışmayacaktır. ( Nem sensörleri PORTB’ye, Sulama motoru ise RA0’a bağlanacaktır.) (Kullandığınız mikroişlemcinin kristal frekansı 4MHz olarak alınacaktır) a) (30p) Yukarıdaki işlemleri gerçekleştiren assembler kodlarını yazınız. b) (10p) Yukarıdaki işlemleri gerçekleştiren devreyi çiziniz. (clock devresi, besleme devresi ve reset devresi dahil) 3) (20p) Aşağıda komuttan önceki hafıza içerikleri verilen registerların komuttan sonraki içeriklerini yazınız. W=00011100 ß Komuttan önce [21h]=10001000 ß Komuttan önce XORWF 21h,W ß İşlenen Komut W=00011100 ß Komuttan önce [21h]=10001000 ß Komuttan önce MOVF 21h,F ß İşlenen Komut W=.......................................ß Komuttan sonra W=.......................................ß Komuttan sonra [21h]=..................................ß Komuttan sonra [21h]=..................................ß Komuttan sonra 4) (30p) PIC16F877 ile Skorboard tasarlanacaktır. Skorboard devremizde 3 adet buton iki adet 7-Segment display bulunacaktır. RA0’a bağlı butona basınca 1.Display’e, RA1’e bağlı butona basınca 2.Display’e bir eklenecektir. RA2’ye bağlı olan reset butonuna basınca 1 ve 2. Displayler sıfırlanacaktır. Displayler PORTB’ye bağlanacaktır. Display tetikleme bitleri : RC0 lojik 1 olduğunda 1.Display, RC1 lojik 1 olduğunda 2.Display aktif olacaktır. Yan kısımda ana kodları verilen ve yukarıdaki işlemleri gerçekleştiren alt programları yazınız. -- haneGoster [7-Segmentte gösterilecek olan digit1 ve digit2’yi gösterme] -- tusbak1 [RA0’ı kontrol etme] -- tusbak2 [RA1’i kontrol etme] -- tusbak3 [RA2’yi kontrol etme] -- birEkle1 [Digit1’e 1 ekleme] -- birEkle2 [Digit2’ye 1 ekleme] -- resetall [Tüm digitleri sıfırlama] -- bekle [50 msn’lik bekleme] -- kod [Sayıları Displaydeki değerlerine dönüştürme] Başarılar, Yrd.Doç.Dr.Nurettin BEŞLİ basla bsf movlw movwf movwf movlw movwf bcf clrf clrf clrf clrf clrf clrf movlw movwf movwf movwf status,rp0 00h trisb trisc FFh trisa status,rp0 digit1 digit2 portb tus1 tus2 tus3 .50 sayac1 sayac2 sayac3 call call call call btfsc call btfsc call btfsc call goto haneGoster tusBak1 tusBak2 tusBak3 tus1,0 birEkle1 tus2,0 birEkle2 tus3,0 resetall basla1 basla1 2013-2014 Mikroişlemciler Arasınavı Çözümleri C.1-) Mikroişlemcilerin avantajı : Servis Kolaylığı : Modüller arızalandığı sadece ilgili modül değiştirilerek arıza giderilebilir. Mikrodenetleyicinin avantajları : Boyut : Mikrodenetleyiciler mikroişlemcilere göre daha küçük boyuttadır. Güç : Mikrodenetleyiciler daha az güç tüketirler. Maliyet : Mikrodenetleyiciler daha az maliyetlidirler. Performans : Mikrodenetleyiciler daha hızlı çalışırlar. C.2-) a) list p=16F877A include <p16F877A.inc> statusequ rp0 equ portb equ trisb equ porta equ trisa equ say0 equ say1 equ say2 equ 03 05 06 86h 05 85h 20h 21h 22h org 00 movlw 00 movwf PCLATH goto basla basla bsf status,rp0 movlw FFh movwf trisb movlw 00h movwf trisa bcf status,rp0 tekrar movf portb,w movwf say0 movlw .08 movwf say2 clrf say1 tekrar1 rlf say0,f btfsc status,0 incf say1 decfsz say2 goto tekrar1 btfsc say1,3 bsf porta,0 btfsc say1,4 bsf porta,0 goto tekrar end C.3-) W=00011100 ß Komuttan önce [21h]=10001000 ß Komuttan önce XORWF 21h,W ß İşlenen Komut W=00011100 ß Komuttan önce [21h]=10001000 ß Komuttan önce MOVF 21h,F ß İşlenen Komut W= 1001 0100ß Komuttan sonra W= 00011100 ß Komuttan sonra [21h]= 1000 1000 ß Komuttan sonra [21h]= 10001000ß Komuttan sonra C.4-) list p=16F877A include <p16F877A.inc> statusequ 03 rp0 equ 05 portc equ 07 trisc equ 87h portb equ 06 trisb equ 86h porta equ 05 trisa equ 85h digit1 equ 21h digit2 equ 22h sayac1 equ 28h sayac2 equ 3Dh sayac3 equ 3Eh tus1 equ 3Ah tus2 equ 3Bh tus3 equ 3Ch org 00h movlw 0 movwf PCLATH goto basla basla bsf status,rp0 movlw 00h movwf trisb movwf trisc movlw FFh movwf trisa bcf status,rp0 clrf digit1 clrf digit2 clrf portb clrf tus1 clrf tus2 clrf tus3 movlw .1 movwf adigit movlw .50 movwf sayac1 movwf movwf basla1 call call call call btfsc call btfsc call btfsc call goto sayac2 sayac3 haneGoster tusBak1 tusBak2 tusBak3 tus1,0 birEkle1 tus2,0 birEkle2 tus3,0 resetall basla1 haneGoster movf digit2,w call kod movwf portb movlw b'00000010' movwf portc call bekle clrf portb clrf portc movf digit1,w call kod movwf portb movlw b'00000001' movwf portc call bekle return tusBak1 btfss porta,0 goto tusBak21 btfsc tus1,0 goto tusBak31 decfsz sayac goto tusBak31 bsf tus1,0 goto tusBak31 tusBak21 clrf tus1 movlw .50 movwf tusBak31 return sayac1 tusBak2 btfss porta,1 goto tusBak22 btfsc tus2,0 goto tusBak32 decfsz sayac goto tusBak32 bsf tus2,0 goto tusBak32 tusBak22 clrf tus2 movlw .50 movwf sayac2 tusBak32 return tusBak3 btfss porta,2 goto tusBak23 btfsc tus3,0 goto tusBak33 decfsz sayac goto tusBak33 bsf tus3,0 goto tusBak33 tusBak23 clrf tus3 movlw .50 movwf sayac3 tusBak33 return birEkle1 clrf tus1 incf digit1 return birEkle2 clrf tus2 incf digit2 return resetall clrf tus3 clrf digit1 clrf digit2 return kod addwf PCL,1 retlw b'00111111' retlw b'00000110' retlw b'01011011' retlw b'01001111' retlw b'01100110' retlw b'01101101' retlw b'01111101' retlw b'00000111' retlw b'01111111' retlw b'01101111' end
© Copyright 2024 Paperzz