Мазмуну:

Компьютерди түзүңүз/ Электрониканын негизги түшүнүгү: 9 кадам (Сүрөттөр менен)
Компьютерди түзүңүз/ Электрониканын негизги түшүнүгү: 9 кадам (Сүрөттөр менен)

Video: Компьютерди түзүңүз/ Электрониканын негизги түшүнүгү: 9 кадам (Сүрөттөр менен)

Video: Компьютерди түзүңүз/ Электрониканын негизги түшүнүгү: 9 кадам (Сүрөттөр менен)
Video: Word программасында иштоо 2024, Ноябрь
Anonim
Компьютерди түзүңүз/ Электроника жөнүндө негизги түшүнүк
Компьютерди түзүңүз/ Электроника жөнүндө негизги түшүнүк

Сиз чын эле акылдуу болуп көрүнүп, өзүңүздүн компьютериңизди нөлдөн баштап кургуңуз келген беле? Минималдуу компьютерди жасоо үчүн эмне керек экенин эч нерсе билбейсизби? Ооба, эгерде сиз электроника жөнүндө жетиштүү билсеңиз, кээ бир ICлерди туура чогултуу оңой. Бул үйрөткүч сизди ошол бөлүктө жакшы экениңизге жана башка бир нече нерсеге ишенет. А эгер андай болбосо, эгерде сиз нан табуу/прототиптештирүү кандайча аткарыларын билсеңиз, аны ээрчүү дагы деле кыйын болбошу керек. Бул нускаманын максаты, алар кантип иштээри жөнүндө көп нерсени билбей туруп, сизге иштөөчү "компьютерди" алуу. Мен зымдарды жана программалоонун негиздерин камтыйм, ошондой эле силер үчүн абдан кыска программа менен камсыз кылам. Ошентип, баштайлы.

1 -кадам: Бөлүктөр жана буюмдар

Бөлүктөр жана буюмдар
Бөлүктөр жана буюмдар
Бөлүктөр жана буюмдар
Бөлүктөр жана буюмдар

"ЭЭМ" төмөнкүлөрдү талап кылат: кубат, киргизүү, иштетүү, эс тутум жана чыгаруу. Техникалык жактан биз мунун баарына ээ болобуз. Мен бул нерселерди ошол тартипте камтыйм.

Күч үчүн сизге 5 вольт (бул жерде 5В деп белгиленген) булагы керек болот. Бул жөнгө салынуучу булак болушу сунушталат, андыктан кокусунан сиздин схемаңыздагы бөлүктөрдү кууруп албаңыз. Биздин киргизүү баскычтар болот. Иштетүү өзүнөн өзү түшүнүктүү; биз процессорду колдонуп жатабыз. Эстутум ROMдон гана турат. Процессордун ички жалпы регистрлери RAM катары колдонуу үчүн жетиштүү болот. Чыгуу LED болот.

1 LM7805C - 5V жөндөгүч

1 ZYLOG Z80 - Процессор

1 AT28C64B - EEPROM

1 74LS273 - Octal D Flip -Flop

1 74HC374E - Octal D Flip -Flop

3 CD4001BE - Quad NOR Gate

1 NE555 - Саат генератору

2 1K Ом резистору

1 10K Ом резистору

1 10K Ом резистордук тармак; 8 Bussed OR 8 Кошумча 10K каршылыгы

1 1Ф конденсатор

1 100uF конденсатор

1 баскыч

1 3x4 баскыч матрицасы же 8 кошумча баскычтар

8 LED - Түс тандоо мааниге ээ эмес

8 330 Ом резисторлор же резистор тармагы

1 Чынында эле чоң нан же бир нече кичине

Көп жана көп зымдар

Менин схемамда SRAM таякчасы орнотулган. Бул үчүн тынчсыздануунун деле кереги жок. Мен аны схемага менин чыныгы схемамды так чагылдыруу үчүн гана коштум жана аны келечекте колдонуу үчүн схемага коштум. Ошондой эле схемага төрт OR дарбазасы кошулган (74LS36). Колдонулбаган эки дарбазанын кириши VCCге байланган жана алардын чыгуулары калкып калган (тартылган эмес). Ошондой эле электр схемасында эки конденсатор тартылган эмес жана жогоруда көрсөтүлгөн эмес.

Мен жөнгө салынган 12Вды 5V жөндөгүчкө салып, бүт нан табагын тойгузам. Ал бир аз жылыйт, ошондуктан мен аны муздатуу үчүн жылыткычты бекиттим. Эгерде сиз регуляторду азыктандыруу үчүн 12Втан аз колдонсоңуз (жок дегенде 7В колдонуңуз), ал муздагыраак иштеши керек.

Z80 сыйкырчылык болот жерде. Бул ROMдо сакталган көрсөтмөлөрдү алат жана аларды аткарат. EEPROM биздин программаны процессор үчүн сактайт.

Сегиздик флип-флоп, бул биздин маалымат түзмөгүндөгү маалыматтарды өз өндүрүшүнө бекитип турган биздин чыгаруу түзмөгү. Бул бизге автобустагы нерселерди өзгөртүүгө мүмкүнчүлүк берет, бул колдонуучу/көрүүчү көргөн нерсени өзгөртпөстөн, инструкция боюнча бир нече жолу жасалган абдан маанилүү кадам. Флип-флоп жарык диоддорун күйгүзүү үчүн керектүү токту кууп чыгара албайт, андыктан алар LED маалыматын айдап чыгуу үчүн 8 маалымат линиясын буфер кылган төрт NOR дарбазасы чиптеринин экөөнө азыктанышат. Дарбазалардын чыгышы тескери болгондуктан, биз да диоддорду тескери бурушубуз керек, бирок биз буга келгенде келебиз. Башка NOR чипи логикалык декоддоо үчүн колдонулат, бирок үч гана дарбаза колдонулат.

Киргизүү үчүн колдонулган сегиздик флип-флоп негизинен бир эле нерсе. Чыгуу флип-флоптору алардын чыгарылышын жогору же төмөн кармап турат, андыктан ал автобусту айдоого колдонулбайт; ал автобустагы маалыматтарды камтыйт. Киргизүү үчүн колдонулган флип-флэш /RESET пини /EN менен алмаштырат, ал аздыр-көптүр чиптин чыгууларын ажыратат (жана андан), андыктан ал маалыматтарды (үч абалдык чыгууларды) кармабайт.

2 -кадам: Электр зымдарын, Саатты жана схемаларды кайра орнотуу

Электр өткөргүчтөрүн, саатты жана баштапкы абалга келтирүү
Электр өткөргүчтөрүн, саатты жана баштапкы абалга келтирүү
Электр өткөргүчтөрүн, саатты жана баштапкы абалга келтирүү
Электр өткөргүчтөрүн, саатты жана баштапкы абалга келтирүү
Электр өткөргүчтөрүн, саатты жана баштапкы абалга келтирүү
Электр өткөргүчтөрүн, саатты жана баштапкы абалга келтирүү

ЭСКЕРТҮҮ: Бардык бөлүктөр үчүн, биринчи кезекте электр рельсин зымга сайыңыз. Зым менен байланыштырууну унутпоо үчүн, чиптер унутулган электр байланыштарынан аман калуу мүмкүнчүлүгүнө ээ болот.

Электр схемасы зым үчүн эң жөнөкөй схема, андан кийин кайра орнотуу жана саат схемалары. Сүрөттө 12В киргизүү эң оң жактагы электр тилкесинде. Күрөң зым, анын астына сары түстү катып, 12Вны регуляторго берет. Регулятордун чыгышы нандагы бардык башка электр тилкесин азыктандырат жана ар бир электр тилкеси жалпы негизге ээ, анткени электроника ушундай иштейт.

Процессор иштөө үчүн саат схемасын талап кылат. Ансыз ал жөн эле баштапкы абалында отурат жана эч нерсе кылбайт. Саат процессорлордун ички нөөмөт регистрлерин иштетет, андыктан ал сигналдарды жасай алат. Каалаган саат киргизет, ал тургай жөнөкөй резистор жана баскыч. Бирок көрсөтмөлөрдү аткаруу үчүн көптөгөн саат циклдери талап кылынат. Чыгарууга жазуу көрсөтмөсү өзү 12 циклди талап кылат. Сиз, балким, ошол жерде отуруп, коддун бир гана укуругун алуу үчүн баскычты 100+ жолу баскыңыз келбейт (чыныгы сандар инструкциянын аягында). Бул NE555 үчүн. Бул сиз үчүн алмаштырууну кылат жана муну (салыштырмалуу) тез ылдамдыкта жасайт.

Эч нерсе туташтыра электе, сиз өзүңүздүн компоненттериңиздин тактага кандайча коюлушун кааласаңыз болот. Менин саат схемам тактайдын ылдый жагына коюлат, андыктан ал башка компоненттерге жолтоо болот. Биз таймер менен негизги саатты кантип жасоону билесиз деп ойлойбуз. Эгер андай кылбасаңыз, анда "555 Astable" издеп, үйрөткүчтү аткаргыңыз келет. Таймердин 5V темир жолунун жана пин 7нин (R1) жана 7K жана PIN 2 (R2) ортосундагы 10K ортосунда өтүү үчүн 1K каршылыгын колдонуңуз. Таймер иштей алышы үчүн, баштапкы абалга келтирүүчү пин 4 -пин 5В рельске байлаганыңызды текшериңиз. Мен светодиодду өндүрүшүмө коюп, саат чындыгында иштегенин текшере алдым, бирок анын кереги жок.

NE555тин дагы бир варианты - бул ЭМЕС дарбаза катары орнотуу жана 1К каршылыгын колдонуу менен кайра чыгууну киришке байлап коюу. Бул үчүн адатта 3 таймерди колдонуу сунушталат, бирок мен 1 эле жакшы иштеши керек экенин байкадым. Жөн эле билиңиз, эгерде сиз муну кылсаңыз, анда ал абдан чоң ылдамдыкта термелет жана жарык берүүчү диоддордун жарк этип турганын айтуу өтө кыйын, мүмкүн эмес. Бул орнотуу "шакек осциллятору" деп аталат.

Белгилей кетсек, биз азырынча саатты процессорго туташтыра элекпиз. Биз аны жөн эле даярдап жатабыз. Ошондой эле сүрөттөгү сааттын жогору жагындагы логикалык чипке көңүл буруңуз. Ал кийинчерээк кошулган жана аны жайгаштыруу үчүн бир гана акылга сыярлык жер калган. Бул RAM/ROM тандоо үчүн колдонулат. Бул көрсөтмө RAMга көңүл бурбайт, андыктан тактаңызда бул чип болбойт.

Эми биз баштапкы абалга келтирүү схемасын өткөрөбүз. Биринчиден, ал үчүн тактаңыздан орун табышыңыз керек. Мен сааттын жанында тандадым. Тактаңызга баскычыңызды кошуңуз. 1V каршылыгын колдонуп, баскычтын бир тарабын 5V темир жолуна байлаңыз. Биздин RESET төөнөгүчтөрүбүз активдүү төмөн, демек биз аларды бийик кармашыбыз керек. Резистор мына ушуга багытталган. Бул түйүн, ошондой эле баштапкы абалга келтирүүчү казыктар туташат. Баскычтын экинчи тарабы түз эле жерге түшөт. Эгерде сиз кайра күйгүзүүнү кааласаңыз, бул түйүнгө 10uF конденсаторун кошуңуз. Бул кайра орнотуу түйүндөрүндөгү чыңалууну процессордо жана флип-флоптун ичиндеги баштапкы абалга келтирүү схемасын активдештирүү үчүн жетишерлик төмөн кармап калат.

3 -кадам: Z80 зымдарын туташтыруу

Эми биз чымырканганга жетебиз. Биз Z80 болгон жырткычты зым менен байланыштырабыз. Менин тактайымда, Z80ти кайра орнотуу схемасы менен бир эле бөлүктүн үстүнө койдум. Жогоруда айтылгандай, адегенде электр рельсин зым менен жабыңыз. 5V сол жакта 11 -пинге барат жана жер бир пин төмөн, бирок оң жакта. Сиз чиптин так туурасын да байкагандырсыз. Бул сизге бир жагында 3 ачык коннектордун болушуна алып келет, экинчисинде 2. Эгер сиз муну тандасаңыз, кошумча нерселерди өткөрүүнү ыңгайлуу кылат.

Төмөнкү пин номерлери-ICде казыктарды кантип эсептөөнү билесиз деп ойлойм-колдонулбаган кириштер жана 5V рельсине байланган болушу керек: 16, 17, 24, 25.

Биздин саат эсиңиздеби? Анын чыгышы z80деги 6 -пинге чейин барат. Баштапкы абалга келтирүү схемасы 26 -пинге туташат. Тактада башка компоненттер жок болсо да, бул сизге z80 зымынын өзү менен байланышууга мүмкүндүк берет. Ага көбүрөөк зым салуу кийинки кадамдарда жасалат.

Мен бул инструктивдүү жазууну ойлогонго чейин эле схеманы куруп койгондуктан, кийинки кадамга чейин сүрөттү кармап турам.

4 -кадам: ROMду зымга өткөрүү

ROMду кабелдөө
ROMду кабелдөө

ЭСКЕРТҮҮ: Эгер аны дагы эле программалоо керек болсо, аны тактага коюуну токтотсоңуз болот (бул тууралуу кийинчерээк).

ROM үчүн мен аны оң жагындагы Z80дин жанына койдум, ошондой эле аны бир тактадан ылдый түшүрдүм. Бул мага даректик автобусту түз өткөрүүгө мүмкүндүк берди, бирок кийинчерээк. AT28C64B - бул EEPROM, башкача айтканда, кээ бир казыктарды өчүрүү жана күйгүзүү аркылуу бир нече жолу программаланышы мүмкүн. Биздин EEPROM кокустан схемада турганда өзүн кайра программалашын каалабайбыз. Ошентип, сиз электр рельстериңизди кошкондон кийин, жазуу мүмкүнчүлүгүн таптакыр өчүрүү үчүн 5В темир жолуна 27 (/WE) өткөргүчтү орнотуңуз.

Менин программам ушунчалык кичине, мага төмөнкү 5 дарек линиялары (A0-A4) туташкан гана керек болчу, бирок мен A5, A6 жана A7ди зым менен байланыштырдым, андыктан мен чоңураак программаларды кошумча жумушсуз эле жаза алам. Кошумча дарек линиялары (A8-A12) түздөн-түз жерге байланган, бул жогорку даректерге каалабаган кирүүлөрдүн калкып киришине жол бербейт. Колдонулбаган даректердин кириштери жерге байланган жана жазуунун көзөмөлү 5Вга байланган, калганын зым менен жабдуу өтө жөнөкөй. Процессордон A0 табыңыз жана аны ROMдогу A0го туташтырыңыз. Андан кийин процессордон A1ди таап, аны ROMдогу A1ге туташтырыңыз. Муну бардык даректерди бириктиргенге чейин жасаңыз. Сүрөттө, ROMго менин дарек автобусум көк зым менен жасалган. RAMга бара турган дарек автобусу кызыл зым менен жасалат. Бул зымдардын бардыгы алдын ала кесилген жана сыйрылып алынган, анткени алар панелдик зымдардын комплектине келип түшкөн жана бул зым үчүн идеалдуу болгон.

Даректерди зымдуу алгандан кийин (бул дарек шинасы деп аталат), D0, андан кийин D1, D2 ж.б.пренажерлер үчүн так ушундай кылыңыз жана муну бардык маалымат түйүндөрү үчүн жасаңыз (D0 - D7) жана сизде маалымат автобусу зымдуу. Биз дээрлик ROMду бүтүрүп бүттүк. ROM'дун /CEнин (чипти иштетүү) пинин табыңыз жана аны процессорго 19, /MREQ (эстутум сурамы) менен туташтырыңыз, андан кийин ROM /OE (өндүрүмдү иштетүү) табыңыз жана процессор пинине 21, /RDге (окуу) өткөрүңүз. Биз азыр бүттүк. Мунун баары секиргич зымдар менен жасалат, анткени алар процессордун башка жагына өтүшү керек жана нан тактасы мындай тыкан зымдарды колдонуу үчүн жетиштүү орун бербейт.

5 -кадам: Чыгууну зымга өткөрүү

Чыгууну зымга өткөрүү
Чыгууну зымга өткөрүү
Чыгууну зымга өткөрүү
Чыгууну зымга өткөрүү

Бул популярдуу болбогондуктан, мен Z80дин сол жагындагы тактаны чыгаруу үчүн тандап алдым. Флип-флопту ошол жерге коюп, аларды электр рельстерине туташтырыңыз. Pin 1, /MR (баштапкы абалга келтирүү) түздөн -түз процессордун баштапкы абалына туташа алат, бирок аны 5В темир жолго байлап койсоңуз болот. Муну кылуу биринчи жазууга чейин керексиз маалыматтарды көрсөтүүгө гана алып келет. Чиптин пин 11де сааттын киришине кантип көңүл бурганыңызга көңүл буруңуз. Бул кирүү кызыктай, анткени ал пин жогору көтөрүлгөндө иштетилет. Ошондой эле, бул пин процессорду айдай турган саат эмес экенин эске алыңыз. Бул саат маалымат шинасында ырасталган маалыматтарды бекитет.

Эсиңиздеби, биз D0 - D7ди ROMго процессордун ошол эле казыктарына кантип туташтырдык? Бул чип үчүн так ошондой кылыңыз. Анын D0 маалымат автобусунда D0га барат жана башкалар. "Q" менен башталган казыктар - бул жыйынтыктар. Буларга зым салардан мурун, дагы чиптерди кошушубуз керек. Мен төрт түтүктүү NOR дарбазасын колдондум, анткени менде алардын түтүгү бар жана мага буга чейин эле керек болчу, бирок эгер сиз аны туура зымдап койсоңуз, кандайдыр бир чип иштейт. Мен бардык дарбазалардын бир киришин жерге байлап, башка кириштерди колдоно алмакмын, бирок мен жөнөкөйлүк үчүн эки киргизүүнү тең бириктирүүнү чечтим.

Мен чиптерди флип-флоптун астына жайгаштырдым, аны секиргичтерсиз түз өткөрүүнү жеңилдетүү үчүн, бирок бул учурда зым аз болуп калды, андыктан бул чындыгында мааниге ээ болгон жок. Флип-флоптогу Q0, Q1….. Q7 жеке дарбазалардын киришине барат. Ар бир пакетте/чипте 4 дарбазасы бар, мага 2 пакет керек болуп, бардык дарбазаларды колдондум. Эгерде сиз флип-флоптун мындай буферге муктаж болбостон LEDди айдай турган версиясын тапсаңыз, анда бул эки чиптин кереги жок. Эгерде сиз дарбазаларды буфер катары тескери чыгуулары жок (AND/OR/XOR) колдонсоңуз, анда сиз күткөндөй светодиоддорду өткөрө аласыз. Эгерде сиз мага окшош бөлүктөрдү колдонуп жатсаңыз жана/же жыйынтыктары тескери бурулган болсо, анда LEDлар төмөндө сүрөттөлгөндөй зымдуу болушу керек. Биринчи сүрөт чыгуунун IC бөлүгүн көрсөтөт.

330 Ом резисторлорун колдонуп, LED диоддорун оң (анод) 5В темир жолуна байлап, терс (катод) дарбазанын чыгышына туташтырыңыз. Экинчи сүрөттө сиз эки резистордук автобусту колдонгонуңузду көрө аласыз, алардын ар бири беш гана ички резисторго ээ. Бул сыяктуу светодиоддорду туташтыруу, жарык өчкөндө аларды күйгүзөт. Биз муну жасайбыз, анткени кирүү күйгүзүлгөндө чыгаруу өчүк. Флип-флоп контролунан кайсы дарбазаларыңыздын чыкканын көзөмөлдөп турганыңызга толук ишениңиз. Светодиоддоруңуз чачырап кетпесе же алардын тартиби мааниге ээ болбосо, алардын изин жоготуу кийинчерээк эмне үчүн туура эмес экенин сурап жатканда башаламандыкка алып келиши мүмкүн.

6 -кадам: Киргизүүнү зымдоо

Киргизүүнү зымдоо
Киргизүүнү зымдоо

Ошол 74HC374 флипти алып, бир жерге кой. Mine тактанын ылдый жагында Z80ден төмөн болгон. Акыркы жолу D0ду D0 менен D1ди D1ге ж. Бул жолу биз Q0ду D0го жана Q1ге D1ге ж.б. Бактыга жараша, бул жолу эч кандай буфердик чиптерди кошуунун кажети жок, хаха. Анын ордуна биз ар бир "D" пинге (D0-D7) 10K Омду туташтырабыз, анан ошол эле казыктарга жана 5В рельске баскыч. Же резистордук автобусту колдонуп, бөлүктөрүңүздүн санын бир топ кыскартсаңыз болот. 3x4 баскычтуу матрица (матрицаланган чыгуусу жок !!) да жардам берет. Сүрөт клей логикасы менен бирге бүтүндөй киргизүү схемасын көрсөтөт (бул бөлүгү кийинки).

7 -кадам: Логика

Бизде акыркы бир нерсе бар. Бул "желим логика" деп аталат, анткени ал иштөө үчүн башкаруу сигналдарын декоддоо үчүн колдонулат; бул айлананы бириктирип турган нерсе. Процессор маалыматтарды чыгарууга жазгысы келгенде, /IORQ жана /WR (20 жана 22) экөө тең төмөндөп, жөнөтүлүп жаткан маалыматтар маалымат шинасында ырасталат. Эки флип-флоптогу сааттын пини жогорку активдүү, башкача айтканда, пин жогорку сигналды алганда маалыматтар бекилет. Биз дарбазанын бир киришине NOR дарбазасын жана зымды /IORQ колдонобуз жана башка киришке /WR. Качан экөө жогору болсо, IO микросхемалары тандалбайт же жазуу операциясы аткарылбайт, флип-флоптун саатын азыктандыруу төмөн бойдон калат. Киргизүүлөрдүн экөө тең аз болгондо, жана качан гана, өндүрүш жогору болуп, флип-флоп маалыматтарды кармайт.

Эми биз кирүүчү флип-флопту зым менен жабышыбыз керек. Биз саат пинин мурункудай эле зымдай алабыз, бирок /IORQ жана /RDди колдонобуз. Бирок, башка флип-флоптон айырмаланып, бизде /IOQ жана /RD төмөн болгондо гана талап кылынган /OE пин бар. Биз OR дарбазасын колдонсок болот. Же биз жөн гана саат үчүн болгон сигналды алып, бизде бар болгон эки инвертордук дарбазанын бири менен тескери бурушубуз мүмкүн. Бул көрсөтмө берүү учурунда менде OR дарбазасы жок болчу, ошондуктан мен акыркы вариантты колдондум. Акыркы вариантты колдонуу мен эч кандай кошумча бөлүктөрдү кошуунун кажети жок дегенди билдирет.

8 -кадам: программалоо

Эгерде сиздин зым туура жана менин түшүндүрмөм ачык болсо, анда ROMду программалоо гана калды. Бул тууралуу бир нече жолдор бар. Сиз жеңил жолду тандап, Digikeyден жаңы чипке заказ кылсаңыз болот. Бөлүктү заказ кылып жатканыңызда, сизде HEX файлын жүктөө мүмкүнчүлүгү болот жана алар аны жөнөтүүдөн мурун аны программалашат. Бул көрсөтмөгө тиркелген HEX же OBJ файлдарын колдонуңуз жана анын почтага келишин күтө туруңуз. 2 -вариант - Arduino же башка нерсе менен программистти куруу. Мен бул жолду сынап көрдүм, бирок кээ бир маалыматтарды туура көчүрө алган жок жана муну түшүнүү үчүн мага бир нече жума керек болду. Мен 3 -вариантты бүтүрдүм, аны кол менен программалоо жана даректерди жана маалымат линияларын башкаруу үчүн которгучтарды которуу.

Процессордун ОР кодуна түздөн -түз айландырылгандан кийин, бул программа дарек мейкиндигинин 17 байтында гана турат, андыктан кол менен программалоо өтө коркунучтуу болгон эмес. Программа B жалпы регистрине 00 маанисин жүктөйт. В реестри мурунку кошуунун натыйжасын сактоо үчүн колдонулат. A реестри математика болгон жерде болгондуктан, биз аны маалыматтарды сактоо үчүн колдонбойбуз.

А реестри жөнүндө сөз болгондо, биз IN буйругун аткарабыз, ал киришти окуйт жана окулган маалыматты А сактайт, андан кийин В регистринин мазмунун кошобуз жана натыйжаны чыгарабыз.

Андан кийин, А реестри В регистрине көчүрүлөт. Анан биз бир катар секирүү буйруктарын аткарабыз. Бардык секирүүлөр дарек линияларынын төмөнкү байтына багытталгандыктан жана секирүү көрсөтмөсүнүн жогорку байты экинчи аргументте берилгендиктен жана "00" болгондуктан, биз ар бир секирүүнү NOP менен коштоого мажбурлай алабыз. Биз муну кокусунан киргизүүнү болтурбоо үчүн, чыгууну көрсөтүү менен окууну киргизүү ортосунда убакыт берүү үчүн жасайбыз. Ар бир секирүү он сааттык циклди колдонот жана ар бир NOP төрт колдонот. Эгерде цикл сиздин каалооңуз үчүн өтө көп убакытты талап кылса, анда сааттын ылдамдыгын жогорулатсаңыз болот же аны азыраак секирүү үчүн кайра программаласа болот.

9 -кадам: Тестирлөө

Эгерде сиз бардыгын туура зымдап, ROMуңуз туура программаланган болсо, анда акыркы бир кадам бар: аны сайыңыз жана иштээрин көрүңүз. Баскычты басып, бир нече секунд күтө туруңуз. Программа биринчи циклге жетүү үчүн 81 сааттык цикл талап кылынат жана ар бир цикл 74 сааттык циклди талап кылат.

Эгер ал иштебесе, шорты жана туташтырылбаган казыктарды (ачылат) жана башка зым маселелерин текшериңиз. Эгерде сиз кайра күйгүзүүнү өчүрсөңүз, процессор эч нерсе кылардан мурун кол менен баштапкы абалга келтиришиңиз керек болот. Сиз ошондой эле LEDлерди дарек автобусуна тиркеп, алардын жүрүм -турумун текшере аласыз. Менде өзүмдүн көйгөйлөрүм бар болчу, ошондуктан мен аларды түз эле маалымат автобусуна жабыштырдым. Бул процессор менен ROMдун ортосунда эмне болуп жатканын көрүүгө мүмкүндүк берди, эгерде ROM туура окулуп жатса, тынчсыздануунун кажети жок, бул убакыт диаграммаларын талап кылат жана мен бул ишке катышкым келбейт. Жакшы тандоо болду, анткени мен акыры туура эмес сакталган көйгөйлүү ОП коддорун кармадым.

Сунушталууда: