فهرست مطالب:

ساخت کامپیوتر W/ درک اولیه از الکترونیک: 9 مرحله (همراه با تصاویر)
ساخت کامپیوتر W/ درک اولیه از الکترونیک: 9 مرحله (همراه با تصاویر)

تصویری: ساخت کامپیوتر W/ درک اولیه از الکترونیک: 9 مرحله (همراه با تصاویر)

تصویری: ساخت کامپیوتر W/ درک اولیه از الکترونیک: 9 مرحله (همراه با تصاویر)
تصویری: تصور دخترا از ازدواج🤣 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 مقاومت 1 کیلو اهم

1 مقاومت 10 کیلو اهم

1 شبکه مقاومت 10 کیلو اهم ؛ 8 Bussed OR 8 مقاومت 10K اضافی

1 1uF خازن

1 خازن 100uF

1 دکمه فشاری

1 ماتریس دکمه 3x4 یا 8 دکمه فشار اضافی

8 LED - انتخاب رنگ مهم نیست

8 مقاومت 330 اهم یا شبکه مقاومت

1 تخته نان واقعا بزرگ یا چند نفر کوچک

تعداد زیادی سیم

در شماتیک من یک چوب SRAM نصب شده است. حتی لازم نیست نگران آن باشید. من فقط آن را به شماتیک اضافه کردم تا دقیق مدار واقعی منعکس شود و آن را برای استفاده بعدی به مدار اضافه کردم. یک دروازه quad OR (74LS36) نیز به طرح اضافه شده است. ورودی های دو دروازه بلااستفاده به VCC وصل می شوند و خروجی های آنها شناور باقی می ماند (کشیده نمی شود). همچنین دو خازن روی مدار تغذیه کشیده یا ذکر نشده است.

من با تغذیه 12 ولت به تنظیم کننده 5 ولت تغذیه می کنم تا کل تخته نان را تغذیه کنم. هوا نسبتاً گرم می شود ، بنابراین من یک گرمکن وصل کردم تا خنک شود. اگر از تغذیه تنظیم کننده کمتر از 12 ولت استفاده می کنید (حداقل از 7 ولت استفاده کنید) ، باید خنک تر باشد.

Z80 جایی است که جادو اتفاق می افتد. دستورات ذخیره شده در ROM را می گیرد و آنها را اجرا می کند. EEPROM برنامه ما را برای پردازنده ذخیره می کند تا اجرا شود.

فلیپ فلاپ هشت ضلعی که دستگاه خروجی ما است و داده های گذرگاه داده را به خروجی خود می چسباند. این به ما امکان می دهد آنچه را که در گذرگاه است تغییر دهیم ، که یک مرحله بسیار مهم است که چندین بار در هر دستورالعمل انجام می شود ، بدون تغییر آنچه کاربر/بیننده می بیند. فلیپ فلاپ نمی تواند جریان مورد نیاز برای روشن کردن LED های خروجی را هدایت کند ، بنابراین آنها به دو تراشه دروازه quad NOR وارد می شوند که 8 خط داده را برای هدایت LED ها بافر می کند. از آنجا که خروجی دروازه ها معکوس است ، ما همچنین باید LED ها را سیم کشی کنیم تا معکوس شوند ، اما وقتی به آن می رسیم به آن می رسیم. تراشه NOR دیگر برای رمزگشایی منطقی استفاده می شود اما فقط از سه گیت استفاده می شود.

فلیپ فلاپ هشت ضلعی که برای ورودی استفاده می شود در اصل یک چیز است. فلیپ فلاپ های خروجی خروجی خود را بالا یا پایین نگه می دارند بنابراین نمی توان از آنها برای رانندگی اتوبوس استفاده کرد. داده ها را روی اتوبوس نگه می دارد. فلیپ فلاپ مورد استفاده برای ورودی ، پین /RESET را با /EN جایگزین می کند ، که خروجی های تراشه (و از) را کم و بیش قطع می کند ، بنابراین داده ها را ذخیره نمی کند (خروجی های سه حالته).

مرحله 2: سیم کشی مدارهای برق ، ساعت و تنظیم مجدد

سیم کشی مدارهای برق ، ساعت و تنظیم مجدد
سیم کشی مدارهای برق ، ساعت و تنظیم مجدد
سیم کشی مدارهای برق ، ساعت و تنظیم مجدد
سیم کشی مدارهای برق ، ساعت و تنظیم مجدد
سیم کشی مدارهای برق ، ساعت و تنظیم مجدد
سیم کشی مدارهای برق ، ساعت و تنظیم مجدد

توجه: برای همه قطعات ، ابتدا ریل های برق را سیم کشی کنید. از همه چیزهایی که باید سیم کشی آنها را فراموش کنید ، تراشه ها بسیار کمتر از اتصالات فراموش شده برق جان سالم به در می برند.

مدار تغذیه ساده ترین مدار برای سیم کشی است و به ترتیب مدارهای تنظیم مجدد و ساعت به دنبال آن قرار می گیرند. در تصویر ، ورودی 12 ولت روی نوار برق سمت راست قرار دارد. سیم قهوه ای که یک سیم زرد را در زیر آن پنهان کرده است ، 12 ولت را به تنظیم کننده تغذیه می کند. خروجی تنظیم کننده هر نوار برقی دیگری را روی نان برد تغذیه می کند و هر نوار برقی دارای یک نقطه مشترک است ، زیرا نحوه کار الکترونیک این است.

پردازنده برای کار به مدار ساعت نیاز دارد. بدون آن ، فقط در حالت اولیه خود می نشیند و هیچ کاری انجام نمی دهد. این ساعت ثبت کننده های شیفت داخلی پردازنده ها را کار می کند تا بتواند سیگنال هایی را برای انجام کارها تولید کند. هر ورودی ساعت ، حتی یک مقاومت ساده و یک دکمه را انجام می دهد. اما برای اجرای دستورالعمل ها به چرخه های ساعت زیادی نیاز است. دستور نوشتن به خروجی به خودی خود 12 چرخه طول می کشد. احتمالاً نمی خواهید آنجا بنشینید و یک دکمه را بیش از 100 بار فشار دهید تا فقط یک حلقه کد دریافت کنید (اعداد واقعی در انتهای دستورالعمل آمده است). NE555 برای همین است. تعویض را برای شما انجام می دهد و این کار را با سرعت (نسبتاً سریع) انجام می دهد.

قبل از شروع سیم کشی هر چیزی ، ممکن است بخواهید پیش بروید و بفهمید که چگونه می خواهید اجزای خود را روی صفحه قرار دهید. مدار ساعت من فقط در قسمت پایینی صفحه قرار گرفته است تا از سایر اجزا دور شود. ما فرض می کنیم که می دانید چگونه یک ساعت اولیه با تایمر بسازید. اگر این کار را نکنید ، می خواهید "555 Astable" را جستجو کرده و یک آموزش را دنبال کنید. از مقاومت 1K برای رفتن بین ریل 5V و پین 7 تایمر (R1) و 10K بین پین 7 و پین 2 (R2) استفاده کنید. اطمینان حاصل کنید که پین تنظیم مجدد ، پین 4 را به ریل 5 ولت ببندید تا تایمر بتواند کار کند. من یک LED روی خروجی خود گذاشتم تا بتوانم بررسی کنم که ساعت در واقع کار کرده است ، اما نیازی به آن نیست.

یکی دیگر از گزینه های NE555 این است که آن را به عنوان یک دروازه NOT تنظیم کنید و از یک مقاومت 1K برای اتصال خروجی به ورودی استفاده کنید. معمولاً توصیه می شود از 3 تایمر برای این کار استفاده کنید ، اما من دریافتم که فقط 1 باید خوب کار کند. فقط بدانید که اگر این کار را انجام دهید ، با سرعت بسیار زیادی نوسان می کند و حتی بسیار دشوار و حتی غیر ممکن است که بگویید LED های خروجی چشمک می زنند. این تنظیم "نوسان ساز حلقه" نامیده می شود.

توجه داشته باشید که ما هنوز ساعت را به پردازنده وصل نمی کنیم. ما به سادگی آن را آماده می کنیم. همچنین به تراشه منطقی درست بالای ساعت در تصویر توجه کنید. بعداً اضافه شد و این تنها نقطه نیمه منطقی بود که برای قرار دادن آن باقی مانده بود. برای انتخاب RAM/ROM استفاده می شود. این دستورالعمل RAM را نادیده می گیرد ، بنابراین این تراشه را روی برد خود نخواهید داشت.

حالا مدار تنظیم مجدد را سیم کشی می کنیم. ابتدا باید یک نقطه در هیئت مدیره خود برای آن پیدا کنید. من درست کنار ساعت را انتخاب کردم. دکمه خود را به برد اضافه کنید. از یک مقاومت 1K برای اتصال یک طرف دکمه به ریل 5V استفاده کنید. پین های RESET ما کم فعال هستند ، به این معنی که باید آنها را بالا نگه داریم. مقاومت برای همین است. این اتصال همچنین محل اتصال پین های تنظیم مجدد است. سمت دیگر دکمه مستقیماً به زمین می رود. اگر می خواهید تنظیم مجدد برق انجام شود ، خازن 10uF را نیز به این اتصال اضافه کنید. ولتاژ پین های تنظیم مجدد را به اندازه کافی پایین نگه می دارد تا مدار بازنشانی در پردازنده و فلیپ فلاپ فعال شود.

مرحله 3: سیم کشی Z80

حالا می رسیم به ریزگردها. ما باید جانوری را که Z80 است سیم کشی کنیم. روی برد من ، Z80 را در قسمت بالای همان برد مدار قرار داده و در بالا قرار دادم. همانطور که قبلاً گفته شد ، ابتدا ریل های برق را سیم کشی کنید. 5V به پین 11 در سمت چپ می رود و زمین یک پین پایین اما در سمت راست است. ممکن است به عرض عجیب تراشه نیز توجه کرده باشید. این باعث می شود که شما 3 اتصال باز در یک طرف روی نان برد و 2 اتصال در طرف دیگر داشته باشید. اگر بخواهید این کار را انجام دهید ، سیم کشی موارد اضافی فقط راحت تر نمی شود.

اعداد پین زیر-فرض می کنم نحوه شمردن پین ها در IC را می دانید-ورودی های بلا استفاده هستند و باید به ریل 5 ولت متصل شوند: 16 ، 17 ، 24 ، 25.

ساعت ما را به خاطر دارید؟ خروجی آن در z80 به پین 6 می رسد. مدار تنظیم مجدد به پین 26 متصل می شود. بدون داشتن اجزای دیگر روی برد ، تا آنجا که می توانم سیم کشی z80 را به شما ارائه کنم. سیم کشی بیشتر انجام شده در مراحل بعدی انجام می شود.

از آنجا که من مدار را قبل از این که فکر کنم نوشتن این دستورالعمل را آموزش داده بودم ، ایجاد کرده بودم ، تا مرحله بعدی عکس را نگه می دارم.

مرحله 4: سیم کشی ROM

سیم کشی رام
سیم کشی رام

توجه: ممکن است بخواهید در صورتی که هنوز نیاز به برنامه ریزی دارد ، آن را روی صفحه قرار ندهید (در مورد آن بعداً بیشتر صحبت کنید).

برای ROM ، آن را در کنار Z80 در سمت راست قرار دادم و همچنین آن را یک پین روی تخته نانداختم. این به من اجازه داد تا گذرگاه آدرس را مستقیماً سیم کشی کنم ، اما بعداً در مورد آن بیشتر صحبت کنم. AT28C64B یک EEPROM است ، به این معنی که می توان آن را چندین بار با خاموش و روشن کردن برخی از پین ها برنامه ریزی کرد. ما نمی خواهیم EEPROM ما هنگامی که در مدار است به طور تصادفی خود را دوباره برنامه ریزی کند. بنابراین هنگامی که ریل های برق خود را وصل کرده اید ، سیم پین 27 (/WE) را به ریل 5V متصل کنید تا ویژگی نوشتن را به طور کامل غیرفعال کنید.

برنامه من بسیار کوچک است ، من فقط به 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's /OE (خروجی را فعال کنید) پیدا کنید و آن را به پین پردازنده 21 ، /RD (بخوانید) وصل کنید. ما الان کارمان تمام است. همه اینها با سیم های جامپر انجام می شود زیرا آنها باید به طرف دیگر پردازنده بروند و یک تخته نان فضای کافی برای استفاده از سیم کشی مرتب مانند آن را فراهم نمی کند.

مرحله 5: سیم کشی خروجی

سیم کشی خروجی
سیم کشی خروجی
سیم کشی خروجی
سیم کشی خروجی

از آنجا که بدون جمعیت بود ، بخش خروجی را در سمت چپ Z80 برای خروجی انتخاب کردم. فلیپ فلاپ را روی آن قرار دهید و ریل های برق را به آنها وصل کنید. پین 1 ، /MR (تنظیم مجدد) می تواند مستقیماً به پین تنظیم مجدد پردازنده متصل شود ، اما می توانید آن را به ریل 5 ولت متصل کنید. انجام این کار فقط باعث می شود که داده های ناخواسته تا اولین نوشتن نمایش داده شود. توجه کنید که چگونه تراشه دارای ورودی ساعت در پین 11 است. این ورودی از این جهت عجیب است که وقتی پین بالا می رود فعال می شود. همچنین توجه داشته باشید که این پین همان ساعتی نیست که پردازنده را هدایت می کند. این ساعت داده هایی را که روی گذر داده قرار گرفته است ، می بندد.

به یاد دارید که چگونه D0 - D7 در ROM را به پین های مشابه پردازنده متصل کردیم؟ دقیقاً همین کار را برای این تراشه انجام دهید. D0 آن در گذرگاه داده و غیره به D0 می رود. پین هایی که با "Q" شروع می شوند خروجی هستند. قبل از اتصال آنها ، باید تراشه های بیشتری اضافه کنیم. من از گیت های quad NOR استفاده کردم زیرا یک لوله از آنها دارم و قبلاً به آن نیاز داشتم ، اما اگر سیم را به درستی سیم کشی کنید ، هر تراشه ای کار می کند. من می توانستم یک ورودی را روی همه دروازه ها به زمین وصل کرده و ورودی های دیگر را به عنوان ورودی استفاده کنم ، اما برای سادگی هر دو ورودی را به هم متصل کردم.

من تراشه ها را زیر فلیپ فلاپ قرار دادم تا سیم کشی مستقیم بدون بلوز آسان تر شود ، اما در این مرحله سیم من کم بود ، بنابراین در نهایت اهمیتی نداشت. Q0 ، Q1….. Q7 در فلیپ فلاپ به ورودی های تک دروازه ها می رود. با 4 گیت در هر بسته/تراشه ، من به 2 بسته نیاز داشتم و از همه گیت ها استفاده کردم. اگر نسخه ای از فلیپ فلاپ پیدا کردید که بتواند LED ها را بدون نیاز به بافر مانند این هدایت کند ، این دو تراشه مورد نیاز نیست. اگر از دروازه ها به عنوان بافر استفاده می کنید که خروجی معکوس ندارند (AND/OR/XOR) ، می توانید LED ها را همانطور که انتظار دارید سیم کشی کنید. اگر از قطعات مشابه من استفاده می کنید و/یا خروجی ها معکوس هستند ، LED ها باید مطابق شکل زیر سیم کشی شوند. تصویر اول قسمت IC خروجی را نشان می دهد.

از مقاومتهای 330 اهم برای اتصال LED های مثبت (آند) به ریل 5 ولت و اتصال منفی (کاتد) به خروجی گیت ها استفاده کنید. در تصویر دوم می بینید که من از دو گذرگاه مقاومت استفاده کردم ، هر کدام تنها پنج مقاومت داخلی داشتند. سیم کشی LED ها مانند این باعث روشن شدن آنها در هنگام خاموش شدن خروجی می شود. ما این کار را انجام می دهیم زیرا خروجی هنگام روشن بودن ورودی خاموش است. کاملا مطمئن شوید که خروجی های خود را از کنترل فلیپ فلاپ کنترل می کنید. مگر اینکه LED های شما پراکنده شوند یا ترتیب آنها بی معنی باشد ، از دست دادن رد آنها می تواند بعداً باعث سردرگمی شود وقتی از خود می پرسید چرا خروجی اشتباه است.

مرحله 6: سیم کشی ورودی

سیم کشی ورودی
سیم کشی ورودی

آن فلیپ فلاپ 74HC374 را بردارید و در جایی قرار دهید. مال من جایی زیر Z80 به سمت پایین برد بود. آخرین باری را که D0 را به D0 و D1 را به D1 و غیره وصل کردیم به خاطر دارید؟ این بار Q0 را به D0 و Q1 را به D1 و غیره وصل می کنیم. خوشبختانه ما مجبور نیستیم این بار هیچ تراشه بافر اضافه کنیم ، هااا. در عوض ما قصد داریم 10 کیلو اهم را به هر پین "D" (D0-D7) و زمین و سپس یک دکمه را به پین های مشابه و ریل 5V متصل کنیم. یا می توانید از گذرگاه مقاومت استفاده کنید و تعداد قطعات خود را بسیار کاهش دهید. ماتریس دکمه 3x4 (بدون خروجی ماتریس !!) نیز کمک خواهد کرد. تصویر تمام مدار ورودی را به همراه منطق چسب نشان می دهد (آن قسمت بعدی است).

مرحله 7: منطق چسب

ما آخرین مورد را برای اتصال داریم. به آن "منطق چسب" می گویند زیرا از آن برای رمزگشایی سیگنال های کنترل استفاده می شود تا همه کار کند. این چیزی است که مدار را به هم متصل می کند. هنگامی که پردازنده می خواهد داده ها را در خروجی بنویسد ، هر دو /IORQ و /WR (به ترتیب 20 و 22) پایین می آیند و داده های ارسال شده روی گذر داده تأیید می شوند. پین ساعت روی هر دو فلیپ فلاپ فعال است ، بدین معنا که وقتی پین سیگنال بالایی دریافت می کند ، داده ها قفل می شوند. ما از یک دروازه NOR و سیم /IORQ به یک ورودی گیت و /WR به ورودی دیگر استفاده می کنیم. هنگامی که یکی از آنها بالا باشد ، بدین معنی که مدارهای IO انتخاب نمی شوند یا عملیات نوشتن انجام نمی شود ، خروجی تغذیه کننده ساعت فلیپ فلاپ کم است. هنگامی که هر دو ورودی کم هستند ، و فقط در زمانی ، خروجی بالا می رود و فلیپ فلاپ داده ها را می بندد.

حالا باید ورق ورودی را سیم کشی کنیم. ما می توانیم پین ساعت را به همان روش قبلی ، اما با استفاده از /IORQ و /RD سیم کشی کنیم. اما برخلاف دیگر فلیپ فلاپ ها ، ما همچنین یک پین /OE داریم که تنها در مواقعی که /IORQ و /RD کم است نیاز به کاهش دارد. ما می توانیم از یک دروازه OR استفاده کنیم. یا فقط می توانیم سیگنالی را که در حال حاضر برای ساعت داریم بگیریم و با یکی از دو دروازه معکوس که در حال حاضر در اختیار داریم آن را وارونه کنیم. در زمان بیان این دستورالعمل ، من یک دروازه OR در دسترس نداشتم ، بنابراین از یکی از گزینه های اخیر استفاده کردم. استفاده از گزینه اخیر به این معنی بود که به هر حال نیازی به افزودن قطعات اضافی ندارم.

مرحله هشتم: برنامه نویسی

اگر سیم کشی شما درست باشد و توضیحات من واضح باشد ، تنها چیزی که باقی می ماند این است که ROM را برنامه ریزی کنید. در این مورد چند راه وجود دارد. می توانید راه آسان را انتخاب کرده و یک تراشه جدید از Digikey سفارش دهید. هنگامی که سفارش قطعه را می دهید ، می توانید یک فایل HEX را بارگذاری کنید و قبل از ارسال آن ، آن را برنامه ریزی می کنند. از فایلهای HEX یا OBJ متصل به این دستورالعمل استفاده کنید و فقط منتظر بمانید تا به ایمیل برسد. گزینه 2 این است که یک برنامه نویس با آردوینو یا چیزهای دیگر بسازید. من آن روت را امتحان کردم و در درست کپی کردن برخی از داده ها شکست خورد و هفته ها طول کشید تا آن را بفهمم. من در نهایت گزینه 3 را انجام دادم ، یعنی برنامه نویسی دستی و سوئیچ های فلیپ برای کنترل آدرس و خطوط داده.

هنگامی که مستقیماً به کد OP پردازنده تبدیل می شود ، کل این برنامه تنها در 17 بایت فضای آدرس قرار دارد ، بنابراین برنامه نویسی دستی خیلی ترسناک نبود. برنامه در ثبات عمومی B به مقدار 00 بارگذاری می شود. ثبت B برای ذخیره نتیجه اضافه قبلی استفاده می شود. از آنجا که A در جایی است که ریاضی اتفاق می افتد ، ما از آن برای ذخیره داده ها استفاده نمی کنیم.

در مورد ثبات A ، یک دستور IN انجام می دهیم که ورودی را می خواند و داده های خوانده شده را در A ذخیره می کنیم ، سپس محتویات ثبت B را اضافه کرده و نتیجه را خروجی می دهیم.

پس از آن ، ثبت A در ثبت B کپی می شود و سپس یک سری دستورات پرش را انجام می دهیم. از آنجا که همه پرش ها به بایت پایین خطوط آدرس اشاره می کند ، و چون بایت بالای دستور پرش در آرگومان دوم داده شده است و "00" است ، می توانیم هر پرش را مجبور به دنبال NOP کنیم. ما این کار را برای نشان دادن زمان بین نمایش خروجی و خواندن ورودی انجام می دهیم تا از ورودی تصادفی جلوگیری شود. هر پرش از ده چرخه ساعت و هر NOP از چهار چرخه استفاده می کند. اگر حلقه برای دوست داشتن شما زیاد طول می کشد ، می توانید سرعت ساعت را افزایش دهید یا می توانید آن را مجددا برنامه ریزی کنید تا از یک پرش کمتر استفاده کنید.

مرحله 9: آزمایش

اگر همه چیز را به درستی سیم کشی کرده اید و ROM شما به درستی برنامه ریزی شده است ، آخرین مرحله را باید انجام دهید: آن را وصل کرده و ببینید آیا کار می کند. یک دکمه را فشار دهید و چند ثانیه صبر کنید. برای رسیدن به حلقه اول 81 چرخه ساعت لازم است و هر حلقه 74 چرخه ساعت را می گیرد.

اگر کار نمی کند ، شورت ها و پین های بدون اتصال (باز می شود) و سایر مشکلات سیم کشی را بررسی کنید. در صورت عدم استفاده از تنظیم مجدد ، قبل از انجام هر کاری پردازنده باید یک بازنشانی دستی انجام دهید. همچنین می توانید LED ها را به گذرگاه آدرس وصل کنید تا ببینید آیا رفتار می کنند یا خیر. من خودم با آن مشکل داشتم ، بنابراین آنها را مستقیماً به گذرگاه داده وصل کردم. این به من این امکان را داد تا ببینم چه چیزی بین پردازنده و ROM در حال برقراری ارتباط است بدون نیاز به نگرانی در مورد اینکه آیا ROM به درستی خوانده می شود ، که به نمودارهای زمان بندی نیاز داشت و من فقط نمی خواستم درگیر آن شوم. به نظر می رسد انتخاب خوبی بوده است زیرا در نهایت من کد های مشکل ساز OP را که به اشتباه ذخیره شده بودند ، گرفتم.

توصیه شده: