1314mik_8

7
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. 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İ W=00011100 Komuttan önce [21h]=10001000 Komuttan önce XORWF 21h,W İşlenen Komut W=....................................... Komuttan sonra [21h]=.................................. Komuttan sonra W=00011100 Komuttan önce [21h]=10001000 Komuttan önce MOVF 21h,F İşlenen Komut W=....................................... Komuttan sonra [21h]=.................................. Komuttan sonra 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 .50 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

Upload: murat-yener

Post on 15-Sep-2015

220 views

Category:

Documents


2 download

DESCRIPTION

1314Mik_8

TRANSCRIPT

  • HARRAN NVERSTES BLGSAYAR MHENDSL BLM

    15 Nisan 2014 Mikroilemciler

    Ara Snav---Snav Sresi 90 Dk.

    1) (10p) Mikroilemcilerle Mikrodenetleyiceleri yapsal olarak ve ilevsel olarak karlatrarak avantaj ve dezavantajlarn belirtiniz. 2) (40p) PIC16F877 ile tarla sulama otomasyonu tasarlanacaktr. Tarla 8 blme ayrlm ve her blme iin ayr bir nem sensr gmlmtr. Nem sensrleri eer blgede sulamaya ihtiya var ise lojik 1, sulama ihtiyac yok ise lojik 0 k vermektedir. Eer 8 nem sensrnden 4 veya daha fazlas lojik 1 sinyali gnderiyor ise sulama motoru alacak, dier durumlarda sulama motoru almayacaktr. ( Nem sensrleri PORTBye, Sulama motoru ise RA0a balanacaktr.) (Kullandnz mikroilemcinin kristal frekans 4MHz olarak alnacaktr) a) (30p) Yukardaki ilemleri gerekletiren assembler kodlarn yaznz. b) (10p) Yukardaki ilemleri gerekletiren devreyi iziniz. (clock devresi, besleme devresi ve reset devresi dahil) 3) (20p) Aada komuttan nceki hafza ierikleri verilen registerlarn komuttan sonraki ieriklerini yaznz.

    4) (30p) PIC16F877 ile Skorboard tasarlanacaktr. Skorboard devremizde 3 adet buton iki adet 7-Segment display bulunacaktr. RA0a bal butona basnca 1.Displaye, RA1e bal butona basnca 2.Displaye bir eklenecektir. RA2ye bal olan reset butonuna basnca 1 ve 2. Displayler sfrlanacaktr. Displayler PORTBye balanacaktr. Display tetikleme bitleri : RC0 lojik 1 olduunda 1.Display, RC1 lojik 1 olduunda 2.Display aktif olacaktr. Yan ksmda ana kodlar verilen ve yukardaki ilemleri gerekletiren alt programlar yaznz. -- haneGoster [7-Segmentte gsterilecek olan digit1 ve digit2yi gsterme] -- tusbak1 [RA0 kontrol etme] -- tusbak2 [RA1i kontrol etme] -- tusbak3 [RA2yi kontrol etme] -- birEkle1 [Digit1e 1 ekleme] -- birEkle2 [Digit2ye 1 ekleme] -- resetall [Tm digitleri sfrlama] -- bekle [50 msnlik bekleme] -- kod [Saylar Displaydeki deerlerine dntrme]

    Baarlar,

    Yrd.Do.Dr.Nurettin BEL

    W=00011100 Komuttan nce [21h]=10001000 Komuttan nce XORWF 21h,W lenen Komut W=....................................... Komuttan sonra [21h]=.................................. Komuttan sonra

    W=00011100 Komuttan nce [21h]=10001000 Komuttan nce MOVF 21h,F lenen Komut W=....................................... Komuttan sonra [21h]=.................................. Komuttan sonra

    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 .50 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

  • 2013-2014 Mikroilemciler Arasnav zmleri

    C.1-) Mikroilemcilerin avantaj : Servis Kolayl : Modller arzaland sadece ilgili modl deitirilerek arza giderilebilir. Mikrodenetleyicinin avantajlar : Boyut : Mikrodenetleyiciler mikroilemcilere gre daha kk boyuttadr. G : Mikrodenetleyiciler daha az g tketirler. Maliyet : Mikrodenetleyiciler daha az maliyetlidirler. Performans : Mikrodenetleyiciler daha hzl alrlar. C.2-) a) list p=16F877A include 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-)

    W=00011100 Komuttan nce [21h]=10001000 Komuttan nce XORWF 21h,W lenen Komut W= 1001 0100 Komuttan sonra [21h]= 1000 1000 Komuttan sonra

    W=00011100 Komuttan nce [21h]=10001000 Komuttan nce MOVF 21h,F lenen Komut W= 00011100 Komuttan sonra [21h]= 10001000 Komuttan sonra

  • C.4-) list p=16F877A include 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 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 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 sayac1 tusBak31 return 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