(5 soru seçerek cevaplandırınız. Seçilen soru numaralarını yukarıdaki çizelgede işaretleyiniz) Sınav süresi 100 dakikadır. Başarılar dileriz. MİKROİŞLEMCİLER LABORATUVARI BÜTÜNLEME SINAV SORULARI 29.06.2007 SORU 1.) a) Seri haberleşmenin paralel haberleşmeye göre avantajları nelerdir? Açıklayınız. b) Asenkron seri haberleşme için veri yapısı; çift eşitlik biti, iki durdurma biti ve veri uzunluğu 8 bit seçildiğinde 4C hexal sayısının 9600 bps hızında gönderilmesi durumunda haberleşme karakter yapısını çiziniz. Aynı zamanda bu durumdaki gönderilen bit sayısının zamana göre değişimini çiziniz. SORU 2.) Bilgisayar klavyesinden girilen 3 sayıdan en büyüğünü bulup ekrana yazdıran TURBO ASSEMBLER programını yazınız. SORU 3.) Şekilde gösterilen sistemde 2 motor ve 2 lamba, port 2 de bağlı bulunduğu bitlere lojik 1 değerlerinin gönderilmesiyle aktif olmaktadırlar. Burada istenilen çalışma şekli; a-) Sistem enerjilendiğinde, 1.Motor 7 sn süresince çalışacak ve duracaktır. 1.Motorun çalıştığı süre boyunca görsel amaçlı Kırmızı lambada yanacaktır. b-) İlk motor durduktan sonra 2.motor 7 sn çalışacak ve duracak. 2.Motorun çalıştığı süre boyunca yine görsel amaçlı olarak bu sefer Sarı lambada yanacaktır. Bu şekilde ki çalışmayı 1kz çalışma frekansı için sürekli olarak tekrarlayacak assembler programını TIMER kullanarak yazınız. (NOT: TIMER kullanılması zorunludur!!! ) Kayıtçı Adres Komut 1 X X X X X BI TI 808 6 FR Q 0080 Mode T3 5 T2 4 T5 C CT 3 CT 2 X X X 0086 Kesme Etkinleştirme L7 L6 L5 L4 L3 L2 L1 L0 008A Kesme Adresi 0 0 0 D4 D3 D2 0 0 008C SORU 4.) Port2 nin 3. 4. ve 5. pinlerine bağlı olan bir tuş takımındaki tuşlardan birine her basıldığında Port1 e bağlı 7 segment display deki sayıyı 1 arttıran (0 1 2 3 4 5 9 0 1 2 şeklinde), diğer tuşa her basıldığında ise sayıyı kaldığı yerden 1 azaltan, tuşların hiç birine basılı değilken display deki mevcut değeri görüntüleyen programı 80286 mikroişlemcisi için yazınız. Not: Tuş takımında 3. pin satır, 4. ve 5. pinler sütundur. SORU 5.) a) Kesmelere neden ihtiyaç duyulur maddeler halinde yazınız? b) IRQ3 kesme ucu, donanım kesmesi için kullanılmak istenmektedir. IRQ3 kesme vektörünü 80286 assembler komutları ile yazınız (IRQ7 kesme ucu adresi 09Ch dır).
SORU 6.) Yandaki şekilde, yürüyen banttan geçen plastik şişeler görülmektedir. Karşılıklı yerleştirilmiş ultrasonik vericialıcı çifti yardımıyla banttan geçen şişeleri sayan bir sistem tasarlanacaktır. Malzeme sayımını yaparak sonucu hexadesimal olarak bilgisayar ekranında gösteren bir 80286 programı yazınız. Sistemin çalışmasına ait akış diyagramını çiziniz. Not: Ultrasonik alıcı çıkışı normalde lojik 0 seviyesindedir. En yüksek sayım değeri 50 dir. Şişe sayısı 50 yi aştığında sayaç sıfırlanacak ve işlemler tekrarlanacaktır. Port seçimi size aittir. SORU 7.) Başlangıç olarak yığın işaretçisinin yeri 0800 adresidir. Tabloda alt programın başlangıcından itibaren yığın segmentinde bulunan veriler mevcuttur. Buna göre alt programdan ana programa dönerken hangi kayıtçı hangi değere sahiptir : IP : : Adres 07FF Değer 01 : : 07FE 0F 010C CALL ALTPR 07FD AA 07FC BB 0110 ALTPR: PUS CX 07FB CC 0111 PUS DX 07FA DD 0112 : PUS AX 07F9 EE : : 07F8 FF : : 0113 POP AX 0114 POP CX 0115 POP DX 0116 RETURN SORU 8.) 220V luk bir DC motorun hız kontrolü takogeneratör, kuvvetlendirici ve kuantalama adımları 20mV olan mikroişlemci uyumlu ADC ve DAC ile gerçekleştirilecektir. DC motorun miline bağlanan takogeneratörün çıkış gerilimi, gerilim bölücü dirençler yardımıyla düşürülerek ADC nin girişine uygulanmaktadır ve bu gerilimin değeri (hız*0.002)v tur. Kuvvetlendirici ise DAC nin çıkış gerilimini 100 kat kuvvetlendirerek DC motora uygulamaktadır. Mikroişlemci motorun gerilimini 2V luk dilimler halinde arttırıp/azaltarak hızın istenilen aralıkta olmasını sağlamaktadır. Motora en az 180V, en fazla 250V uygulanabilir. Buna göre DC motorun hızını 1200 1400 rpm aralığında tutan bir assembler programı yazınız. (DAC nin dijital girişi ve ADC nin dijital çıkışı PORT2 ye bağlıdır. DAC nin Enable ucu, ADC nin Write, Busy ve Read uçları sırasıyla PORT1 in 0, 1, 2 ve 3. bitlerine bağlıdır. Motoru kontrol eden anahtar ise PORT1 in 7 bitine bağlıdır. DAC yi yetkilendirmek için Enable bitine lojik0 gönderilmelidir. ADC ye analog giriş verildiğinde dijitale çevrim işleminin başlayabilmesi için ADC nin Write ucunun bağlı olduğu bite sırasıyla lojik1, lojik0 ve lojik1 uygulanması gerekmektedir. Çevrim bittiğinde ise ADC nin Busy ucunun bağlı olduğu bitten lojik1 sinyali çıkmaktadır. Ayrıca çevrim bittiğinde elde edilen dijital bilgiyi okumak için ADC nin Read ucunun bağlı olduğu bite lojik0, ADC yi disable etmek için ise lojik1 gönderilmelidir.)
Cevap:1 a) Şekil 1. Paralel aktarım Şekil 2. Seri aktarım Seri kablolar paralel kablolara göre daha uzun olur. Seri Port lojik 1 seviyesini -3 ile -25 volt ve lojik 0 seviyasini +3 ile +25 volt arasında iletir. Buna karşın, Paralel Port ta lojik 0 sıfır volt, lojik 1 ise 5 volt olarak iletilir. Buradan seri portun 50 volt luk, parale portun ise 5 volt luk bir voltaj değişim aralığına sahip olduğu görülür. Bundan dolayı, seri haberleşmede kablolarda oluşan kayıp, paralele göre çok önemli değildir. Seri iletişimde paralele göre daha az tel kullanılır. Eğer bir cihaz, bilgisayardan uzak bir yerde ise, bu cihaza giden, çekirdeğinde 3 telli bir kablo, 19 veya 25 telli bir kabloya göre çok daha ucuzdur. Seri haberleşme kullanan kırmızı ötesi (infra red) cihazlar günümüzde oldukça popülerdir. Bu cihazlarda bir anda ancak bir bit veri seri olarak iletilebilir. Böyle bir haberleşmenin paralel olması mümkün değildir. Seri haberleşme uçları mikrodenetleyicilerin tümdevre uç sayısını azaltmaktadır. Genelde seri iletişimde TxD (transmit data) ve RxD (receive data) olarak adlandırılan 2 uç kullanılmaktadır. Buna karşın, 8-bit veri iletiminde, 8 uç ve çoğu zaman bir darbe (strobe) ucu gerekir. b) Asenkron seri haberleşme için veri yapısı; çift eşitlik biti, iki durdurma biti ve veri uzunluğu 8 bit seçildiğinde 4C hexal sayısının 9600 bps hızında gönderilmesi durumunda; 4C sayısının çift eşitlik biti durumunda gönderilmesi durumunda parity biti 1 olur. 1 bit in gönderilme süresi= 1/9600 = 0.104 msn olur. Bu durumda; Şekil 3. Asenkron haberleşme için karakter yapısı Şekil 4. Bit sayısı-zaman grafiği Cevap 2: er ikiside cevap olarak kabul edilebilir..model small.stack.code Mov Ah,01h Mov dl,al Mov ah,al CMP al,dl Jnc devam1 mov dl,al devam: CMP ah,dl Jnc devam2 mov dl,ah devam2: Mov ah,02h Int21h Mov ah,4ch.model small.stack.code Mov Ah,01h Mov dl,al CMP al,dl Jnc devam1 mov dl,al devam: CMP al,dl Jnc devam2 mov dl,al devam2: Mov ah,02h Int21h Mov ah,4ch
Cevap 3: ORG 0100 INCLUDE PATCALLS.INC INT25 EQU 0094 CLI MOV DX, DS MOV AX,0000 MOV DS,AX MOV WORD PTR DS:INT25,0200 MOV WORD PTR DS:INT25+2,0080 MOV DS, DX MOV AL,03 OUT UCRREG1,AL MOV AL,1B OUT UTIMER5,AL MOV AL,58 OUT UTIMER3,AL MOV AL,08 OUT UIRQEN,AL MOV AL,81 OUT UMODEREG,AL STI ERE: JMP ERE ORG 0200 IN AL,UIRQADR MOV AL,1B OUT UTIMER5,AL MOV AL,58 OUT UTIMER3,AL MOV AL,08 OUT UIRQEN,AL INC BL MOV AL,BL CMP AL,02 JZ AA MOV AL, 05 OUT UPORT2,AL JMP BB AA: MOV AL, 0A OUT UPORT2,AL MOV BL,00 BB: MOV AL,20 OUT 040,AL IRET
Cevap 4: ORG 0100 MOV AL, 0FF OUT 088, AL MOV AL, 01 OUT 086,AL MOV SI, 1001 MOV AL, 0FC MOV AL, 060 MOV AL, 0DA MOV AL, 0F2 MOV AL, 066 MOV AL, 0B6 MOV AL, 0BE MOV AL, 0E0 MOV AL, 0FE MOV AL, 0F6 MOV SI, 1001 MOV AL, [SI] OUT 090, AL BASLA: MOV AL, 0F7 OUT 092, AL IN AL, 092 TEST AL, 018 JZ YUKARI TEST AL, 028 JZ ASAGI MOV AL, [SI] OUT 090, AL JMP BASLA YUKARI: IN AL, 092 TEST AL, 018 JZ YUKARI CALL GECIK CMP SI, 100B JNZ DISPLAY MOV SI, 1001 DISPLAY: MOV AL, [SI] OUT 090, AL JMP BASLA ASAGI: IN AL, 092 TEST AL, 028 JZ ASAGI CALL GECIK DEC SI CMP SI, 1000 JNZ DISPLAY2 MOV SI, 100A DISPLAY2: MOV AL, [SI] OUT 090, AL JMP BASLA GECIK: MOV CX, 0FFFF BK: LOOP BK MOV CX, 0FFFF BK1: LOOP BK1 RET MOV A, 04 INT 028
Cevap 5 : a) b) Bilgisayarın veya mikroişlemci sistemin daha hızlı ve performanslı çalışmasını sağlar. 3 puan Bilgisayarın veya mikroişlemci sistemin sorunsuz ve sağlıklı işlemesini sağlar. Bilgisayar veya mikroişlemci sisteme istendiği anda müdahale etme imkanı sağlar. er kesme vektörü RAM üzerinde 4 byte lık hafıza alanı üzerine yazılır. Eğer IRQ7 adresi 09Ch ise; IRQ7 09Ch IRQ6 098h. 6 puan.. IRQ3 08Ch olur. Buna göre IRQ3 kesme vektörü aşağıdaki gibi yazılabilir. int23vec equ 08Ch org 100h cli mov bx,0000h mov ds,bx 3 puan 3 puan mov dx,cs mov ds:[int23vec+2],dx mov dx,ofset irout mov ds:[int23vec],dx sti Kesme vektörü 5 puan
Cevap 6: BAŞLA Port ayarlarını yap Sayaç = 0 yap INCLUDE PATCALLS.INC ORG 0200 MOV AL, 04 OUT 88, AL MOV AL, 04 OUT 90, AL MOV BL, 00 ; Sayacı sıfırla XX: IN AL, 90 AND AL, 01 CMP AL, 01 ; AL=1 mi? JNZ XX YY: IN AL, 90 AND AL, 01 CMP AL, 00 ; AL=0 mı? JNZ YY Porttan oku Alıcı çıkışı 1 mi? Porttan oku Alıcı çıkışı 0 mı? E Sayacı 1 arttır INC BL ; Sayacı 1 arttır MOV A, CLRSCR ; Ekranı sil INT 28 MOV AL, BL MOV A, WRBYTE ; Sayacı yazdır INT 28 CMP BL, 32 JB XX ; sayaç < 50 ise başa dön MOV BL, 00 ; sayacı sıfırla JMP XX ; ve başa dön Ekranı temizle Sayacı ekrana yaz Sayaç>50 mi? E Sayacı sıfırla Cevap 7: AX------EEFF CX------CCDD DX------AABB Ve IP-------010F
Cevap 8: Motora nominal gerilim uygulamak için DAC nin çıkışında 220/100=2.2V olmalıdır. 2.2V un DAC girişindeki değeri 2.2V/20mV=110 6E dir. Motora 180V gerilim uygulamak için DAC nin çıkışında 180/100=1.8V olmalıdır. 1.8V un DAC girişindeki değeri 1.8V/20mV=90 5A dir. (1 puan) Motora 250V gerilim uygulamak için DAC nin çıkışında 250/100=2.5V olmalıdır. 2.5V un DAC girişindeki değeri 2.5V/20mV=125 7D dir. (1 puan) Motor geriliminin 2V değişmesi için DAC nin çıkış gerilimi 2/100=0.02V değişmelidir. 0.02V un DAC girişindeki değeri 0.02V/20mV=1 01 dir. (1 puan) 1200 d/d için ADC nin girişine 1200*0.002=2.4V luk bir gerilim uygulanır. 2.4V un ADC çıkışındaki dijital değeri 2.4V/20mv=120 78 dır. (1 puan) 1400 d/d için ADC nin girişine 1400*0.002=2.8V luk bir gerilim uygulanır. 2.8V un ADC çıkışındaki dijital değeri 2.8V/20mv=140 8C dır. (1 puan) NORMAL: DELAY: ORG 0700 ;Port Konfigürasyonu (1 puan) MOV AL, 08B OUT 088, AL MOV AL, 03 OUT 086, AL ;Motorun Yol Alması MOV AL, 088 OUT 090, AL MOV A, 06E MOV AL, A OUT 092, AL (Motorun Yol Almasına Yetecek Kadar Gecikme) ;DAC nin Enable Edilmesi (2 puan) MOV AL, 03 OUT 086, AL MOV AL, 088 OUT 090, AL MOV AL, A OUT 092, AL MOV CX, 0700 LOOP DELAY ;ADC nin Enable Edilmesi (2 puan) MOV AL, 08A OUT 090, AL
MOV AL, 088 OUT 090, AL MOV AL, 08A OUT 090, AL ;BSY biti kontrol ediliyor. (1 puan) CONTROL: IN AL, 090 TEST AL, 04 JZ CONTROL ;ADC den okuma yapılması, ADC ve DAC nin disable edilmesi (3 puan) MOV AL, 089 OUT 090, AL MOV AL, 00 OUT 086, AL MOV AL, 081 OUT 090, AL IN AL, 092 MOV BL, AL MOV AL, 089 OUT 090, AL MOV AL, BL ;ızın hangi aralıkta olduğunun tespiti (2 puan) CMP AL, 08C JA DECREMENT CMP AL, 078 JNB NORMAL ;Motora uygulanan gerilim 2V arttırılıyor. (2 puan) INCREMENT: INC A CMP A, 07D JA END JMP NORMAL ;Motora uygulanan gerilim 2V azaltılıyor. (2 puan) DECREMENT: DEC A CMP A, 05A JNB NORMAL ;Motorun gerilimi 180V-250V aralığında değil ise motor durduruluyor. END: MOV AL, 09 OUT 090, AL MOV BX, 0000 MOV AL, 04 INT 028