ΜΑΘΗΜΑ: ΜΙΚΡΟΫΠΟΛΟΓΙΣΕ ΘΔΜΑΣΑ Α ΠΔΡΙΟΓΟΤ ΦΔΒΡΟΤΑΡΙΟΤ 2012 Καζεγεηήο: Νηθνιαΐδεο Νηθ Ηκ/λία εμέηαζεο: 2-2-2012 ΘΕΜΑ 1 Να ζςνδεθεί μία μνήμη RAM 64 Kbits ζηοςρ διαδπόμοςρ μιαρ CPU δεζμεύονηαρ όποιερ και όζερ δ/νζειρ θέλεηε ζηην πεπιοσή από 1000h μέσπι EFFFh Απάνηηζη Έλα ηκήκα από ην θάηω κηζό ηεο κλήκεο, ε πεξηνρή από 0000 κέρξη 0FFF, θαη έλα ηκήκα από ην πάλω κηζό, ε πεξηνρή από F000 κέρξη FFFF, δελ κπνξνύλ λα δεζκεπηνύλ από εηθόλεο ηωλ δ/λζεωλ ηεο RAM Δπνκέλωο, πξέπεη λα ρωξίζνπκε ην ρώξν δ/λζεωλ ζε 4 ηκήκαηα ώζηε λα κε ρξεζηκνπνηεζνύλ ην πξώην θαη ηειεπηαίν ηέηαξην πνπ πεξηέρνπλ απαγνξεπκέλεο δ/λζεηο Με βάζε ηα παξαπάλω ζα ρξεζηκνπνηεζεί έλαο απνθωδ/ηήο από 2 ζε 4 θαη ε έμνδνο 01 ή 10 απηνύ Δπηιέγεηαη ζηελ ηύρε ε 01 Data bus Address bus A1 A0 Decoder 2 to 4 00 (0) 01 (1) 10 (2) A15 A14 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 RAM 64K D0 D1 D2 D3 D4 D5 D6 D7 OE CE R/W CS 11 (3) RD WR Λύζεηο ζεκάηωλ Μηθξνϋπνινγηζηώλ α πεξηόδνπ 2011/12 ρεηκ - 1 -
Η RAM ζα πξέπεη ΠΡΟΦΑΝΩ λα ζπγρξνληζηεί θαη κε ηα ζήκαηα!rd θαη!wr ηεο CPU Θα πξέπεη λα ελεξγνπνηείηαη κόλν όηαλ έλα από ηα δύν ζήκαηα είλαη ελεξγά 0 Όηαλ θαη ηα δύν ζήκαηα απηά είλαη 1, ε CPU αλαθέξεηαη ζηε ROM ή πνπζελά ελώ δελ ππάξρεη πεξίπηωζε λα είλαη θαη νη δύν γξακκέο ελεξγέο 0 Γηα ην ιόγν απηό πξέπεη λα ζπλδεζεί ην ζήκα!rd!wr ζηελ είζνδν ελεξγνπνίεζεο!cs ηνπ απνθωδ/ηή Σέινο, όηαλ ελεξγνπνηείηαη ε RAM ζα πξέπεη λα γλωξίδεη αλ ε εξγαζία πνπ ζα εθηειέζεη ζα είλαη αλάγλωζε από ηε CPU ή εγγξαθή Γηα ην ιόγν απηό ην ζήκα!wr ζπλδέεηαη ζηελ είζνδν R/!W ηεο RAM ΘΕΜΑ 2 Δίδονηαι δύο πίνακερ πος πεπιέσοςν 64 απιθμούρ ηος κώδικα BCD ηων 8 bits ο καθέναρ Ο ππώηορ βπίζκεηαι ζηιρ διεςθύνζειρ x:1000h και μεηά και ο δεύηεπορ ζηιρ d:20h και μεηά Να γπαθεί ππόγπαμμα πος να δημιοςπγεί έναν ηπίηο πίνακα ζηιρ θέζειρ i:90h και μεηά πος να πεπιέσει 0 αν ο ανηίζηοισορ απιθμόρ ηος ππώηος πίνακα είναι μεγαλύηεπορ ή ίζορ ηος ανηίζηοισος απιθμού ηος δεύηεπος πίνακα, διαθοπεηικά να πεπιέσει 1 Απάνηηζη Σν όηη νη αξηζκνί είλαη ηνπ θώδηθα BCD δελ παίδεη ξόιν Ό,ηη έρεη ηζρύ ζην ζύλνιν ηωλ ζπλδπαζκώλ, έρεη ηζρύ θαη ζην ππνζύλνιν ηωλ αξηζκώλ ηνπ θώδηθα BCD x:103fh x:1001h x:1000h d:5fh d:21h d:20h DPTR R0 i:9fh i:91h i:90h R1 Λύζεηο ζεκάηωλ Μηθξνϋπνινγηζηώλ α πεξηόδνπ 2011/12 ρεηκ - 2 -
ΑΡΥΗ DPTR 1000h R0 20h R1 90h R7=641 A @DPTR B @R0 όρη Α B @R1 1 @R1 0 DPTR +1 R0 +1 R1 +1 λαη ΣΔΛΟ cseg at 0 MOV DPTR,#1000h MOV R0,#20h MOV R1,#90h MOV R7,#64 LOOP: MOVX A,@DPTR MOV B,@R0 CJNE A,B,NEXT1 NEXT1: JC BALE0 BALE1: MOV @R1,#1 JMP LOOPOUT BALE0: MOV @R1,#0 LOOPOUT: INC DPTR INC R0 INC R1 DJNZ R7,LOOP end JMP $ Λύζεηο ζεκάηωλ Μηθξνϋπνινγηζηώλ α πεξηόδνπ 2011/12 ρεηκ - 3 -
ΘΕΜΑ 3 Να ζσεδιαζηεί έναρ αποκωδικοποιηηήρ διεςθύνζεων (ηο απλούζηεπο κύκλωμα) για ηην ςλοποίηζη ηος εξήρ ζςζηήμαηορ μνήμηρ: μία ROM 8 KBytes από ηη δ/νζη 0000h και μεηά, δύο πεπιθεπειακά ειζόδος με 4 Κ θέζειρ ηο καθένα, δύο πεπιθεπειακά εξόδος με 2 Κ θέζειρ ηο καθένα και μία RAM 16 KBytes πος να ηελειώνει ζηην FFFFh Σηη ζςνέσεια, να βπεθούν οι βαζικέρ δ/νζειρ και οι εικόνερ κάθε ζςζκεςήρ Απάνηηζη A ιύζε: Σν πιήζνο ηωλ ζπζθεπώλ πνπ πξέπεη λα ζπλδεζνύλ είλαη 6 Αλ ρωξίζνπκε ην ρώξν δ/λζεωλ ζε 8, πνπ είλαη ε ακέζωο επόκελε δύλακε ηνπ 2, πξνθύπηνπλ ηκήκαηα ηωλ 8 ΚΒ ζηα νπνία, όκωο, δε ρωξάεη ε RAM Γηα ην ιόγν απηό ζα πξέπεη λα γίλεη ζπλέλωζε ηωλ δύν ηειεπηαίωλ ηκεκάηωλ κε κία πύιε AND θαη εθεί λα κπεη ε RAM 0-1 2-3 4-5 6-7 8-9 A-B C-D E-F ROM In1 In2 Out1 Out2 - RAM Ο ζπγρξνληζκόο ηεο ROM θαη RAM κε ηα ζήκαηα!rd θαη!wr γίλεηαη κε ηνπο αθξνδέθηεο πνπ δηαζέηνπλ ηα νινθιεξωκέλα Ο ζπγρξνληζκόο ηωλ πεξηθεξεηαθώλ γίλεηαη κε ηηο πύιεο OR Με βάζε ηα παξαπάλω, πξνθύπηεη ην θύθιωκα ζηα αξηζηεξά ηνπ επόκελνπ ζρήκαηνο WR WR RD 000 (0) 001 (1) ROM In1 RD 00 (0) ROM In1 Decoder 3 to 8 010 (2) 011 (3) 100 (4) In2 Out1 Out2 Decoder 2 to 4 01 (1) 10 (2) 11 (3) In2 Out1 Out2 101 (5) 110 (6) 111 (7) RAM A15 A14 RAM A15 A14 A13 Α ιύζε Β ιύζε Λύζεηο ζεκάηωλ Μηθξνϋπνινγηζηώλ α πεξηόδνπ 2011/12 ρεηκ - 4 -
Οη δ/λζεηο πνπ ζα θαηαιακβάλνπλ νη ζπζθεπέο ζα είλαη: υζκευή Βαζικές δ/νζεις Εικόνες ROM 0000-1FFF - In1 2000-2FFF 3000-3FFF In2 4000-4FFF 5000-5FFF Out1 6000-67FF 6800-6FFF, 7000-77FF, 7800-7FFF Out2 8000-87FF 8800-8FFF,9000-97FF, 9800-9FFF RAM C000-FFFF - Β Λύζε: Αθνύ νη ζπζθεπέο εηζόδνπ θαη εμόδνπ δελ γίλεηαη λα ελεξγνπνηεζνύλ πνηέ ηαπηόρξνλα, κπνξεί κία ζπζθεπή εηζόδνπ θαη κία εμόδνπ λα ηνπνζεηεζνύλ ζηελ ίδηα πεξηνρή κλήκεο Πξνθύπηεη, ηόηε, απινύζηεξνο απνθωδ/ηήο δ/λζεωλ 0-1-2-3 4-5-6-7 8-9-A-B C-D-E-F ROM Ι1 I2 RAM O1 O2 υζκευή Βαζικές δ/νζεις Εικόνες ROM 0000-1FFF 2000-3FFF In1 4000-4FFF 5xxx, 6xxx, 7xxx In2 8000-8FFF 9xxx, Axxx, Bxxx Out1 4000-47FF 4800-4FFF, 5000-57FF, 5800-5FFF, 6000-67FF, 6800-6FFF, 7000-77FF, 7800-7FFF Out2 8000-87FF 8800-8FFF, 9000-97FF, 9800-9FFF, A000-A7FF, A800-AFFF, B000-B7FF, B800-BFFF RAM C000-FFFF - ΘΕΜΑ 4 Να ζσεδιαζηεί έναρ αποκωδικοποιηηήρ διεςθύνζεων (με GAL) για ηην ςλοποίηζη ηος εξήρ ζςζηήμαηορ μνήμηρ: μία ROM 8 KBytes από ηη δ/νζη 0000h και μεηά, δύο πεπιθεπειακά ειζόδος με 4 Κ θέζειρ ηο καθένα, δύο πεπιθεπειακά εξόδος με 2 Κ θέζειρ ηο καθένα και μία RAM 16 KBytes πος να ηελειώνει ζηην FFFFh Χπηζιμοποιήζηε όζο ηο δςναηό λιγόηεπερ εικόνερ Λύζεηο ζεκάηωλ Μηθξνϋπνινγηζηώλ α πεξηόδνπ 2011/12 ρεηκ - 5 -
Απάνηηζη Οη έμνδνη πνπ ζα ρξεηαζηνύλ ζα είλαη: ROM, In1, In2, Out1, Out2 θαη RAM, ζπλνιηθά 6 Ωο είζνδνη ζα ρξεηαζηνύλ νη!rd,!wr,!cs θαη νη γξακκέο δ/λζεο Αθνύ ζπλνιηθά πεξηζζεύνπλ 12 γξακκέο γηα ηηο εηζόδνπο (18 ζπλνιηθά κείνλ 6 έμνδνη), απνκέλνπλ 9 αθξνδέθηεο γηα ηηο γξακκέο δ/λζεο Απηέο είλαη ππέξ αξθεηέο, κηα θαη ε κηθξόηεξε πεξηνρή κλήκεο πνπ απαηηείηαη είλαη 2 Kbytes θαη γηα ην δηαρωξηζκό ηεο ρξεηάδνληαη 5 γξακκέο δ/λζεο (log 2 (64/2)) πκπέξαζκα: δε ρξεηάδεηαη λα ρξεζηκνπνηεζνύλ θαη νη 9 δηαζέζηκνη αθξνδέθηεο γηα ηηο γξακκέο δ/λζεο αιιά κόλν νη 5 Θα κείλνπλ αζύλδεηνη 4 αθξνδέθηεο ηεο GAL Υξεζηκνπνηώληαο ην ράξηε κλήκεο από ηε δεύηεξε ιύζε ηνπ 3 νπ ζέκαηνο, ην πξόγξακκα ζε γιώζζα CUPL ζα είλαη ην εμήο Device g16v8as; Name AddressDec; /** Inputs **/ Pin 1 = NotRD; Pin 2 = NotWR; Pin 3 = A15; Pin 4 = A14; Pin 5 = A13; Pin 6 = A12; Pin 7 = A11; Pin 11=NotCS; /** Outputs **/ Pin 18 = ROM; Pin 17 = In1; Pin 16 = In2; Pin 15 = Out1; Pin 14 = Out2; Pin 13 = RAM; /** Logic Equations **/ FIELD address = [A15A11] ;!ROM = address:'h'[00001fff] &!NotCS;!In1 = address:'h'[20002fff] &!NotRD &!NotCS;!In2 = address:'h'[30003fff] &!NotRD &!NotCS;!Out1= address:'h'[200027ff] &!NotWR &!NotCS;!Out2= address:'h'[300037ff] &!NotWR &!NotCS;!RAM = address:'h'[c000ffff] &!NotCS; **/ Λύζεηο ζεκάηωλ Μηθξνϋπνινγηζηώλ α πεξηόδνπ 2011/12 ρεηκ - 6 -