HARRAN ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ Mikroişlemciler Ara Sınav---Sınav Süresi 90 Dk. 15 Nisan 2014 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. XORWF 21h,W ß İşlenen Komut W=...ß Komuttan sonra [21h]=...ß Komuttan sonra MOVF 21h,F ß İşlenen Komut W=...ß 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 basla1 bsf status,rp0 movlw 00h movwf trisb movwf trisc movlw FFh movwf trisa bcf status,rp0 clrf digit1 clrf digit2 clrf portb movwf sayac1 movwf sayac2 movwf sayac3 call hanegoster call tusbak1 call tusbak2 call tusbak3 btfsc tus1,0 call birekle1 btfsc tus2,0 call birekle2 btfsc tus3,0 call resetall goto 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 03 rp0 equ 05 portb equ 06 trisb equ 86h porta equ 05 trisa equ 85h say0 equ 20h say1 equ 21h say2 equ 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-) XORWF 21h,W ß İşlenen Komut W= 1001 0100ß Komuttan sonra [21h]= 1000 1000 ß Komuttan sonra MOVF 21h,F ß İşlenen Komut W= 00011100 ß 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 movlw.1 movwf adigit movwf sayac1
movwf sayac2 movwf sayac3 basla1 call hanegoster call tusbak1 call tusbak2 call tusbak3 btfsc tus1,0 call birekle1 btfsc tus2,0 call birekle2 btfsc tus3,0 call resetall goto 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 tusbak1 btfss porta,0 goto tusbak21 btfsc tus1,0 goto tusbak31 decfsz sayac goto tusbak31 bsf tus1,0 goto tusbak31 tusbak21
movwf sayac1 tusbak31 tusbak2 btfss porta,1 goto tusbak22 btfsc tus2,0 goto tusbak32 decfsz sayac goto tusbak32 bsf tus2,0 goto tusbak32 tusbak22 movwf sayac2 tusbak32 tusbak3 btfss porta,2 goto tusbak23 btfsc tus3,0 goto tusbak33 decfsz sayac goto tusbak33 bsf tus3,0 goto tusbak33 tusbak23 movwf sayac3 tusbak33 birekle1 incf digit1 birekle2 incf digit2
resetall clrf digit1 clrf digit2 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