ইলেকট্রনিক্সের একটি কম্পিউটার W/ মৌলিক বোঝাপড়া তৈরি করুন: 9 টি ধাপ (ছবি সহ)
ইলেকট্রনিক্সের একটি কম্পিউটার W/ মৌলিক বোঝাপড়া তৈরি করুন: 9 টি ধাপ (ছবি সহ)
Anonim
ইলেকট্রনিক্সের একটি কম্পিউটার W/ মৌলিক বোঝাপড়া তৈরি করুন
ইলেকট্রনিক্সের একটি কম্পিউটার W/ মৌলিক বোঝাপড়া তৈরি করুন

আপনি কি কখনও ভান করতে চেয়েছিলেন যে আপনি সত্যিই স্মার্ট ছিলেন এবং আপনার নিজের কম্পিউটারটি শুরু থেকেই তৈরি করেছেন? একটি ন্যূনতম কম্পিউটার তৈরি করতে যা লাগে সে সম্পর্কে আপনি কি কিছুই জানেন না? ঠিক আছে, যদি আপনি ইলেকট্রনিক্স সম্পর্কে যথেষ্ট জানেন তবে কিছু আইসি একসাথে সঠিকভাবে নিক্ষেপ করতে পারেন। এই নির্দেশযোগ্য অনুমান করবে যে আপনি সেই অংশে ভাল, প্লাস কিছু অন্যান্য জিনিস। এবং যদি তা না হয় তবে ব্রেডবোর্ডিং/প্রোটোটাইপিং কীভাবে করা হয় তা যদি আপনি জানেন তবে এটি অনুসরণ করা খুব কঠিন হওয়া উচিত নয়। এই নির্দেশের উদ্দেশ্য হল তারা কিভাবে কাজ করে সে সম্পর্কে সম্পূর্ণ কিছু না জেনেও আপনাকে একটি "কম্পিউটার" প্রদান করা। আমি প্রোগ্রামিং এর ওয়্যারিং এবং বেসিকগুলি কভার করব, সেইসাথে আপনার জন্য একটি খুব ছোট প্রোগ্রাম প্রদান করব। চল শুরু করা যাক.

ধাপ 1: অংশ এবং স্টাফ

যন্ত্রাংশ এবং স্টাফ
যন্ত্রাংশ এবং স্টাফ
যন্ত্রাংশ এবং স্টাফ
যন্ত্রাংশ এবং স্টাফ

একটি "কম্পিউটার" এর প্রয়োজন: শক্তি, ইনপুট, প্রক্রিয়াকরণ, মেমরি এবং আউটপুট। টেকনিক্যালি আমাদের এই সব জিনিস থাকবে। আমি এই ক্রম এই জিনিস আবরণ হবে।

ক্ষমতার জন্য, আপনার একটি 5 ভোল্ট (এখানে 5V হিসাবে লেবেলযুক্ত) উত্সের প্রয়োজন হবে। এটি একটি নিয়ন্ত্রিত উৎস হতে সুপারিশ করা হয় যাতে আপনি দুর্ঘটনাক্রমে আপনার সার্কিটের অংশগুলি ভাজবেন না। আমাদের ইনপুট হবে বোতাম। প্রক্রিয়াকরণ স্ব-ব্যাখ্যামূলক; আমরা একটি প্রসেসর ব্যবহার করছি। মেমরি শুধুমাত্র রম নিয়ে গঠিত হবে। প্রসেসরের অভ্যন্তরীণ সাধারণ উদ্দেশ্য নিবন্ধনগুলি র as্যাম হিসাবে ব্যবহার করার জন্য যথেষ্ট হবে। আউটপুট হবে LEDs।

1 LM7805C - 5V রেগুলেটর

1 ZYLOG Z80 - প্রসেসর

1 AT28C64B - EEPROM

1 74LS273 - অক্টাল ডি ফ্লিপ -ফ্লপ

1 74HC374E - অক্টাল ডি ফ্লিপ -ফ্লপ

3 CD4001BE - চতুর্ভুজ নর গেট

1 NE555 - ঘড়ি জেনারেটর

2 1 কে ওহম প্রতিরোধক

1 10K ওহম প্রতিরোধক

1 10K ওহম প্রতিরোধক নেটওয়ার্ক; 8 Bussed বা 8 অতিরিক্ত 10K প্রতিরোধক

1 1uF ক্যাপাসিটর

1 100uF ক্যাপাসিটর

1 পুশ বোতাম

1 3x4 বাটন ম্যাট্রিক্স বা 8 অতিরিক্ত পুশ বোতাম

8 LED - কালার চয়েস কোন ব্যাপার না

8 330 ওহম প্রতিরোধক বা প্রতিরোধক নেটওয়ার্ক

1 সত্যিই বড় রুটিবোর্ড বা একাধিক ছোট ব্যক্তি

প্রচুর এবং প্রচুর তারের

আমার পরিকল্পিত আমি SRAM একটি লাঠি ইনস্টল আছে। আপনি যে এমনকি চিন্তা করতে হবে না। আমি কেবল আমার প্রকৃত সার্কিটকে সঠিকভাবে প্রতিফলিত করার জন্য এটিকে পরিকল্পিতভাবে যুক্ত করেছি এবং ভবিষ্যতে ব্যবহারের জন্য আমি সার্কিটে এটি যুক্ত করেছি। এছাড়াও পরিকল্পিত যোগ করা হয় একটি চতুর্ভুজ বা গেট (74LS36)। দুটি অব্যবহৃত গেটের ইনপুটগুলি ভিসিসির সাথে আবদ্ধ এবং তাদের আউটপুটগুলি ভাসমান (আঁকা নয়)। পাওয়ার সার্কিটে দুটি ক্যাপাসিটারও আঁকা বা তালিকাভুক্ত নয়।

আমি পুরো রুটিবোর্ড খাওয়ানোর জন্য নিয়ন্ত্রিত 12V 5V রেগুলেটরে খাচ্ছি। এটি বরং উষ্ণ হয়, তাই আমি এটি ঠান্ডা করার জন্য একটি তাপ সিঙ্ক সংযুক্ত করেছি। যদি আপনি নিয়ন্ত্রককে খাওয়ানোর জন্য 12V এর কম ব্যবহার করেন (কমপক্ষে 7V ব্যবহার করুন), এটি শীতল হওয়া উচিত।

Z80 যেখানে জাদু ঘটে। এটি রমে সংরক্ষিত নির্দেশাবলী নেয় এবং সেগুলি কার্যকর করে। EEPROM প্রসেসর চালানোর জন্য আমাদের প্রোগ্রাম সঞ্চয় করে।

অক্টাল ফ্লিপ-ফ্লপ যা আমাদের আউটপুট ডিভাইস যা ডেটা বাসের ডেটাগুলিকে তার নিজস্ব আউটপুটে ল্যাচ করে। এটি আমাদের বাসে কী কী পরিবর্তন করতে দেয়, যা ব্যবহারকারী/দর্শক যা দেখছে তা পরিবর্তন না করে প্রতি নির্দেশে একাধিকবার করা একটি অত্যন্ত গুরুত্বপূর্ণ পদক্ষেপ। ফ্লিপ-ফ্লপ আউটপুট এলইডি জ্বালানোর জন্য প্রয়োজনীয় স্রোত চালাতে পারে না, তাই তারা দুটি কোয়াড এনওআর গেট চিপে খাওয়ায় যা এলইডি চালানোর জন্য 8 টি ডাটা লাইন বাফারের কাজ করে। যেহেতু তারা গেটগুলির আউটপুট উল্টো, তাই আমাদেরও এলইডিগুলিকে উল্টাতে হবে, কিন্তু আমরা যখন সেখানে আসব অন্য NOR চিপটি লজিক ডিকোডিংয়ের জন্য ব্যবহার করা হয় কিন্তু শুধুমাত্র তিনটি গেট ব্যবহার করা হয়।

ইনপুটের জন্য ব্যবহৃত অক্টাল ফ্লিপ-ফ্লপ মূলত একই জিনিস। আউটপুট ফ্লিপ-ফ্লপগুলি তাদের আউটপুট উচ্চ বা নিম্ন ধরে রাখে তাই এটি বাস চালানোর জন্য ব্যবহার করা যাবে না; এটি বাসে তথ্য ধারণ করবে। ইনপুটের জন্য ব্যবহৃত ফ্লিপ-ফ্লপ /RESET পিনকে /EN দিয়ে প্রতিস্থাপিত করে, যা চিপের (এবং থেকে) আউটপুটগুলিকে কমবেশি বিচ্ছিন্ন করে যাতে এটি ডেটা (ট্রাই-স্টেট আউটপুট) ধরে রাখে না।

ধাপ 2: পাওয়ার, ক্লক এবং রিসেট সার্কিট তারের

ওয়্যারিং পাওয়ার, ক্লক এবং রিসেট সার্কিট
ওয়্যারিং পাওয়ার, ক্লক এবং রিসেট সার্কিট
ওয়্যারিং পাওয়ার, ক্লক এবং রিসেট সার্কিট
ওয়্যারিং পাওয়ার, ক্লক এবং রিসেট সার্কিট
ওয়্যারিং পাওয়ার, ক্লক এবং রিসেট সার্কিট
ওয়্যারিং পাওয়ার, ক্লক এবং রিসেট সার্কিট

দ্রষ্টব্য: সমস্ত অংশের জন্য, প্রথমে পাওয়ার রেলগুলি সংযুক্ত করুন। তারের ভুলে যাওয়া সমস্ত জিনিসের মধ্যে, চিপগুলি ভুলে যাওয়া বিদ্যুৎ সংযোগগুলি থেকে বেঁচে থাকার সম্ভাবনা অনেক কম হবে।

পাওয়ার সার্কিট হল তারের সবচেয়ে সহজ সার্কিট, এরপর রিসেট এবং ক্লক সার্কিট যথাক্রমে। ছবিতে, 12V ইনপুটটি পাওয়ার স্ট্রিপে ডানদিকে রয়েছে। বাদামী তার, তার নীচে একটি হলুদ লুকিয়ে, নিয়ন্ত্রককে 12V খাওয়ায়। রেগুলেটরের আউটপুট রুটিবোর্ডের প্রতিটি পাওয়ার স্ট্রিপ এবং প্রতিটি পাওয়ার স্ট্রিপ একটি সাধারণ ভিত্তি ভাগ করে কারণ ইলেকট্রনিক্স কাজ করে।

প্রসেসরের কাজ করার জন্য একটি ক্লক সার্কিট প্রয়োজন। এটি ছাড়া, এটি কেবল তার প্রাথমিক অবস্থায় বসে থাকবে এবং কিছুই করবে না। ঘড়িটি প্রসেসরগুলির অভ্যন্তরীণ শিফট রেজিস্টারগুলি পরিচালনা করে যাতে এটি জিনিসগুলি করার জন্য সংকেত তৈরি করতে পারে। যে কোনও ঘড়ির ইনপুট করবে, এমনকি একটি সাধারণ প্রতিরোধক এবং পুশ বোতাম। কিন্তু নির্দেশনা বাস্তবায়নে অনেক ঘড়ি চক্র লাগে। আউটপুটে লেখার নির্দেশনা নিজেই 12 টি চক্র নেয়। আপনি সম্ভবত সেখানে বসতে চান না এবং কোডের মাত্র একটি লুপ পেতে 100+ বার একটি বোতাম টিপুন (প্রকৃত সংখ্যাগুলি নির্দেশের শেষে রয়েছে)। যে NE555 জন্য কি। এটি আপনার জন্য স্যুইচিং করে এবং এটি একটি (অপেক্ষাকৃত) দ্রুত হারে করে।

আপনি কোন কিছু ওয়্যারিং শুরু করার আগে, আপনি এগিয়ে যেতে এবং আপনার উপাদানগুলি কীভাবে বোর্ডে রাখা উচিত তা নির্ধারণ করতে চাইতে পারেন। আমার ঘড়ির সার্কিটটি কেবল বোর্ডের নীচে রাখা হয়েছে যাতে এটি অন্যান্য উপাদানগুলির বাইরে চলে যায়। আমরা ধরে নেব আপনি কিভাবে টাইমার দিয়ে একটি মৌলিক ঘড়ি তৈরি করতে জানেন। যদি আপনি তা না করেন, আপনি "555 Astable" দেখতে এবং একটি টিউটোরিয়াল অনুসরণ করতে চান। টাইমার (R1) এর 5V রেল এবং পিন 7 এবং পিন 7 এবং পিন 2 (R2) এর মধ্যে 10K এর মধ্যে যেতে 1K রোধক ব্যবহার করুন। রিসেট পিন, পিন 4, 5V রেলের সাথে বাঁধা নিশ্চিত করুন যাতে টাইমার কাজ করতে পারে। আমি আমার আউটপুটে একটি LED লাগিয়েছিলাম যাতে আমি যাচাই করতে পারি যে ঘড়িটি আসলে কাজ করেছে, কিন্তু এটির প্রয়োজন নেই।

NE555 এর সাথে আরেকটি বিকল্প হল এটি একটি NOT গেট হিসাবে সেট আপ করা এবং 1K রোধকারী ব্যবহার করে আউটপুটটিকে আবার ইনপুটে বাঁধা। এটি করার জন্য সাধারণত 3 টি টাইমার ব্যবহার করার পরামর্শ দেওয়া হয়, কিন্তু আমি দেখেছি যে মাত্র 1 টি ঠিক কাজ করা উচিত। শুধু জেনে রাখুন যে যদি আপনি এটি করেন, এটি একটি খুব উচ্চ গতিতে দোলনা হবে এবং এটি খুব কঠিন, অসম্ভব এমনকি বলতে হবে যে আউটপুট LEDs ঝলকানি করছে। এই সেটআপটিকে "রিং অসিলেটর" বলা হয়।

মনে রাখবেন যে আমরা এখনও ঘড়িকে প্রসেসরের সাথে সংযুক্ত করছি না। আমরা কেবল এটি প্রস্তুত করছি। ইমেজের ঘড়ির ঠিক উপরে লজিক চিপটিও লক্ষ্য করুন। এটি পরবর্তীতে যুক্ত করা হয়েছিল এবং এটিকে স্থাপন করার জন্য একমাত্র আধা-যুক্তিসঙ্গত স্থান বাকি ছিল। এটি RAM/ROM নির্বাচনের জন্য ব্যবহৃত হয়। এই নির্দেশযোগ্য RAM উপেক্ষা করে তাই আপনার বোর্ডে এই চিপ থাকবে না।

এখন আমরা রিসেট সার্কিট তারের। প্রথমে আপনাকে এর জন্য আপনার বোর্ডে একটি জায়গা খুঁজে বের করতে হবে। আমি ঠিক ঘড়ির পাশে বেছে নিলাম। বোর্ডে আপনার বোতাম যুক্ত করুন। বোতামটির একপাশে 5V রেল বাঁধতে 1K রোধক ব্যবহার করুন। আমাদের রিসেট পিনগুলি সক্রিয় কম, যার অর্থ আমাদের তাদের উচ্চ রাখা দরকার। যে জন্য প্রতিরোধক কি জন্য। এই জংশনটিও যেখানে রিসেট পিন সংযোগ করে। বোতামের অন্য দিকটি সরাসরি মাটিতে চলে যায়। যদি আপনি পাওয়ার-অন রিসেট চান, এই জংশনেও 10uF ক্যাপাসিটর যুক্ত করুন। এটি প্রসেসরের মধ্যে রিসেট সার্কিট্রি সক্রিয় করতে এবং ফ্লিপ-ফ্লপের জন্য রিসেট পিনগুলিতে ভোল্টেজকে যথেষ্ট কম রাখবে।

ধাপ 3: Z80 ওয়্যারিং

এখন আমরা নাইট-ক্রিটিতে যাই। আমরা পশু যে Z80 হয় তারের হবে। আমার বোর্ডে, আমি রিসেট সার্কিট হিসাবে বোর্ডের একই বিভাগে শীর্ষে Z80 রেখেছি। পূর্বে বলা হয়েছে, প্রথমে পাওয়ার রেলগুলি তারে লাগান। 5V বাম দিকে 11 টি পিন করতে যায় এবং মাটিতে একটি পিন নিচে কিন্তু ডানদিকে থাকে। আপনি হয়তো চিপের বিজোড় প্রস্থ লক্ষ্য করেছেন। এটি আপনার রুটিবোর্ডে একদিকে 3 টি এবং অন্যদিকে 2 টি খোলা সংযোগকারী থাকবে। যদি আপনি এটি করতে চান তবে এটি অতিরিক্ত জিনিসগুলিকে তারের জন্য কম সুবিধাজনক করে তোলে।

নিচের পিন নাম্বারগুলো-আমি ধরে নিচ্ছি আপনি জানেন কিভাবে আইসিতে পিন গণনা করতে হয়-অব্যবহৃত ইনপুট এবং 5V রেলের সাথে আবদ্ধ থাকতে হবে: 16, 17, 24, 25।

আমাদের ঘড়ি মনে আছে? এর আউটপুট z80 এ 6 পিন করতে যায়। রিসেট সার্কিট পিন 26 এর সাথে সংযোগ স্থাপন করে এটিতে আরও ওয়্যারিং করা হবে পরবর্তী ধাপে।

যেহেতু আমি ইতিমধ্যেই এই নির্দেশনা লেখার কথা বিবেচনা করার আগেই আমার সার্কিট তৈরি হয়ে গিয়েছিল, আমি পরবর্তী ধাপ পর্যন্ত ছবিটি ধরে রাখব।

ধাপ 4: রম ওয়্যারিং

রম ওয়্যারিং
রম ওয়্যারিং

দ্রষ্টব্য: আপনি যদি এটিকে এখনও প্রোগ্রাম করার প্রয়োজন হয় তবে বোর্ডে এটি স্থাপন করা বন্ধ রাখতে চাইতে পারেন (পরে এটির উপর আরও)।

রমের জন্য, আমি এটি ডানদিকে Z80 এর পাশে রেখেছিলাম এবং এটি রুটিবোর্ডে একটি পিন নামিয়ে দিয়েছি। এটি আমাকে সরাসরি ঠিকানা বাসে তারের অনুমতি দেয়, কিন্তু পরে আরও। AT28C64B হল একটি EEPROM, অর্থাত্ এটি কিছু পিন বন্ধ এবং চালু করে একাধিকবার প্রোগ্রাম করা যায়। আমরা চাই না যে আমাদের EEPROM সার্কিটে থাকাকালীন দুর্ঘটনাক্রমে নিজেই পুনরায় প্রোগ্রাম করা হোক। তাই একবার আপনার পাওয়ার রেলগুলি জড়িয়ে গেলে, 5V রেলটিতে ওয়্যার পিন 27 (/WE) রাইট ফিচারটি সম্পূর্ণরূপে অক্ষম করতে।

আমার প্রোগ্রামটি এত ছোট, আমার কেবল 5 টি ঠিকানা লাইন (A0-A4) সংযুক্ত দরকার ছিল, কিন্তু আমি A5, A6 এবং A7 কে যেভাবেই ব্যবহার করেছি তাই আমি অতিরিক্ত কাজ ছাড়াই বড় প্রোগ্রাম লিখতে পারি। অতিরিক্ত ঠিকানা লাইনগুলি (A8-A12) ভাসমান ইনপুট থেকে উচ্চ ঠিকানাগুলিতে অবাঞ্ছিত অ্যাক্সেস রোধ করার জন্য সরাসরি মাটিতে আবদ্ধ। অব্যবহৃত অ্যাড্রেস ইনপুটগুলি মাটিতে বাঁধা এবং 5V এর সাথে লেখা নিয়ন্ত্রণ নিয়ন্ত্রণ করা হয়েছে, বাকিগুলি তারের তুলনায় সহজ। প্রসেসরে A0 খুঁজুন এবং ROM এ A0 এ যুক্ত করুন। তারপর প্রসেসরে A1 খুঁজে বের করুন এবং ROM এ A1 এ ওয়্যার করুন। যতক্ষণ না আপনি সমস্ত ঠিকানা একসাথে ওয়্যার্ড করেন ততক্ষণ এটি করুন। ছবিতে, রম -এ আমার ঠিকানা বাস নীল তারের মধ্যে সম্পন্ন করা হয়। র bus্যামে যাওয়া ঠিকানা বাসটি লাল তারে করা হয়। এই তারগুলি সবই আগে থেকে কাটা এবং ছিঁড়ে ফেলা হয়েছিল কারণ তারা একটি ব্রেডবোর্ড ওয়্যারিং কিটে এসেছিল এবং এই তারের জন্য নিখুঁত ছিল।

আপনি ঠিকানাগুলি ওয়্যার্ড করার পরে (এটিকে ঠিকানা বাস বলা হয়), D0, তারপর D1, D2, ইত্যাদি লেবেল করা পিনের জন্য ঠিক একই কাজটি করুন সমস্ত ডেটা পিনের জন্য এটি করুন (D0 - D7) এবং আপনার আছে ডেটা বাস তারযুক্ত। আমরা রমের ওয়্যারিং প্রায় সম্পন্ন করেছি। রম /সিই (চিপ সক্ষম) পিন খুঁজুন এবং প্রসেসর পিন 19, /এমআরইকিউ (মেমরি রিকোয়েস্ট) এর সাথে সংযুক্ত করুন এবং তারপরে রমের /ওই (আউটপুট সক্ষম) খুঁজে বের করুন এবং প্রসেসর পিন 21, /আরডি (পড়ুন) এ ওয়্যার করুন। আমাদের কাজ শেষ। এগুলি সবই জাম্পার তার দিয়ে করা হয় কারণ তাদের প্রসেসরের অন্য পাশে যেতে হয় এবং একটি ব্রেডবোর্ড এর মতো ঝরঝরে ওয়্যারিং ব্যবহার করার জন্য পর্যাপ্ত জায়গা দেয় না।

ধাপ 5: আউটপুট তারের

আউটপুট তারের
আউটপুট তারের
আউটপুট তারের
আউটপুট তারের

কারণ এটি জনবহুল ছিল না, আমি আউটপুটের জন্য Z80 এর বাম দিকে বোর্ডের বিভাগটি বেছে নিয়েছি। সেখানে ফ্লিপ-ফ্লপ রাখুন এবং তাদের পাওয়ার রেলগুলি সংযুক্ত করুন। পিন 1, /এমআর (রিসেট) প্রসেসরের রিসেট পিনের সাথে সরাসরি সংযোগ করতে পারে, কিন্তু আপনি এটি 5V রেলের সাথে বাঁধা রেখে দিতে পারেন। এটি করার ফলে এটি প্রথম লেখা পর্যন্ত জাঙ্ক ডেটা দেখাবে। লক্ষ্য করুন যে চিপটি 11 পিনে কিভাবে একটি ঘড়ি ইনপুট করে। এছাড়াও মনে রাখবেন যে এই পিনটি একই ঘড়ি নয় যা প্রসেসর চালায়। এই ঘড়িটি ডেটা বাসে ডেটা দাবি করে।

মনে রাখবেন কিভাবে আমরা ROM- এ D0 - D7 কে প্রসেসরের একই পিনের সাথে সংযুক্ত করেছি? এই চিপের জন্য ঠিক একই কাজ করুন। এর D0 ডাটা বাসে D0 তে যায় এবং তাই। "Q" দিয়ে শুরু হওয়া পিনগুলি আউটপুট। আমরা তারের আগে, আমরা আরো চিপ যোগ করতে হবে। আমি চতুর্ভুজ নর গেট ব্যবহার করেছি কারণ আমার একটি টিউব আছে এবং আমার ইতিমধ্যেই একটি দরকার ছিল, কিন্তু যেকোনো চিপ যদি আপনি সঠিকভাবে ওয়্যার করেন তাহলে কাজ করবে। আমি সমস্ত গেটে একটি ইনপুট মাটিতে বাঁধতে পারতাম এবং অন্যান্য ইনপুটগুলি ভাল, ইনপুট হিসাবে ব্যবহার করতে পারতাম, কিন্তু সরলতার জন্য আমি উভয় ইনপুট একসঙ্গে যুক্ত করতে বেছে নিয়েছিলাম।

আমি ফ্লিপ-ফ্লপের নীচে চিপগুলি রেখেছিলাম যাতে জাম্পার ছাড়াই সরাসরি ওয়্যার করা সহজ হয় কিন্তু আমি এই মুহুর্তে তারের উপর কম চালাচ্ছিলাম তাই শেষ পর্যন্ত এটি আসলেই গুরুত্বপূর্ণ ছিল না। Q0, Q1….. ফ্লিপ-ফ্লপের Q7 পৃথক গেটের ইনপুটগুলিতে যায়। প্রতিটি প্যাকেজ/চিপে 4 টি গেট সহ, আমার 2 টি প্যাকেজ দরকার এবং সমস্ত গেট ব্যবহার করেছি। যদি আপনি ফ্লিপ-ফ্লপের একটি সংস্করণ খুঁজে পান যা এইরকম বাফার ছাড়াই LEDs চালাতে পারে, এই দুটি চিপের প্রয়োজন নেই। যদি আপনি গেটগুলিকে বাফার হিসেবে ব্যবহার করেন যার ইনভার্ট আউটপুট (AND/OR/XOR) নেই, তাহলে আপনি এলইডিগুলিকে তারের মতো তারে লাগাতে পারেন। আপনি যদি আমার মতো একই অংশ ব্যবহার করছেন এবং/অথবা আউটপুট উল্টে আছে, LEDs নীচে বর্ণিত হিসাবে তারযুক্ত করা উচিত। প্রথম ছবিটি আউটপুটের IC অংশ দেখায়।

5V রেলের সাথে LEDs পজিটিভ (Anode) বাঁধতে এবং গেটের আউটপুটে নেগেটিভ (ক্যাথোড) সংযুক্ত করতে 330 ওহম প্রতিরোধক ব্যবহার করুন। আপনি দ্বিতীয় ছবিতে দেখতে পাচ্ছেন যে আমি দুটি প্রতিরোধক বাস ব্যবহার করেছি, প্রতিটিতে মাত্র পাঁচটি অভ্যন্তরীণ প্রতিরোধক রয়েছে। আউটপুট বন্ধ থাকাকালীন এই ধরনের এলইডি ওয়্যারিং তাদের হালকা করে তুলবে। আমরা এটা করি কারণ ইনপুট চালু থাকলে আউটপুট বন্ধ থাকে। পুরোপুরি নিশ্চিত করুন যে আপনি ফ্লিপ-ফ্লপ নিয়ন্ত্রণ থেকে আপনার আউটপুটগুলিকে কোনটি গেট করে তা ট্র্যাক করে রাখুন। যতক্ষণ না আপনার LEDs বিক্ষিপ্ত হবে বা তাদের অর্ডার অর্থহীন হবে, তাদের ট্র্যাক হারানো পরে বিভ্রান্তি সৃষ্টি করতে পারে যখন আপনি নিজেকে জিজ্ঞাসা করছেন কেন আউটপুট ভুল।

ধাপ 6: ইনপুট তারের

ওয়্যারিং ইনপুট
ওয়্যারিং ইনপুট

74HC374 ফ্লিপ-ফ্লপ নিন এবং এটি কোথাও রাখুন। খনি বোর্ডের নীচের দিকে Z80 এর নীচে কোথাও ছিল। শেষবার মনে রাখবেন যখন আমরা D0 কে D0 এবং D1 কে D1 এর সাথে সংযুক্ত করেছি এবং তাই? এইবার আমরা Q0 কে D0 এবং Q1 থেকে D1 এর সাথে সংযুক্ত করি। সৌভাগ্যক্রমে আমাদের এই সময়ে কোন বাফার চিপ যোগ করতে হবে না, হাহাহা। পরিবর্তে আমরা প্রতিটি "D" পিন (D0-D7) এবং মাটিতে 10K ওহম সংযোগ করতে যাচ্ছি এবং তারপর একই পিন এবং 5V রেলের একটি বোতাম। অথবা আপনি একটি প্রতিরোধক বাস ব্যবহার করতে পারেন এবং আপনার অংশের সংখ্যা অনেক কমিয়ে দিতে পারেন। একটি 3x4 বোতাম ম্যাট্রিক্স (একটি ম্যাট্রিক্সড আউটপুট ছাড়া !!) খুব সাহায্য করবে। ছবিটি আঠালো যুক্তির সাথে ইনপুট সার্কিটের সম্পূর্ণতা দেখায় (সেই অংশটি পরবর্তী)।

ধাপ 7: আঠালো যুক্তি

আমরা একটি শেষ জিনিস তারের আছে। এটিকে "আঠালো যুক্তি" বলা হয় কারণ এটি সমস্ত কাজ করতে নিয়ন্ত্রণ সংকেত ডিকোড করতে ব্যবহৃত হয়; এটা কি সার্কিট একসাথে ধরে রাখে। যখন প্রসেসর আউটপুটে ডেটা লিখতে চায়, তখন /IORQ এবং /WR (যথাক্রমে 20 এবং 22) উভয়ই কম যায় এবং পাঠানো ডেটা ডেটা বাসে দাবি করা হয়। উভয় ফ্লিপ-ফ্লপের ক্লক পিন সক্রিয় উচ্চ, অর্থাৎ পিন যখন উচ্চ সংকেত পায় তখন ডেটা ল্যাচ হয়। আমরা গেটের একটি ইনপুটে NOR গেট এবং তার /IORQ এবং অন্য ইনপুটে WR ব্যবহার করি। যখন উচ্চ হয়, মানে IO সার্কিটগুলি নির্বাচন করা হচ্ছে না বা একটি লেখার অপারেশন করা হচ্ছে না, ফ্লিপ-ফ্লপের ঘড়িকে খাওয়ানোর আউটপুট কম থাকে। যখন উভয় ইনপুট কম, এবং শুধুমাত্র যখন, আউটপুট উচ্চ হয় এবং ফ্লিপ-ফ্লপ ডেটা ল্যাচ করে।

এখন আমাদের ইনপুট ফ্লিপ-ফ্লপ তারের প্রয়োজন। আমরা ঘড়ির পিনকে আগের মতো একইভাবে তারের সাথে সংযুক্ত করতে পারি, কিন্তু /IORQ এবং /RD ব্যবহার করে। কিন্তু অন্যান্য ফ্লিপ-ফ্লপের বিপরীতে, আমাদের একটি /OE পিন রয়েছে যা শুধুমাত্র /IORQ এবং /RD কম হলে প্রয়োজন হয়। আমরা একটি OR গেট ব্যবহার করতে পারতাম। অথবা আমরা ঘড়ির জন্য ইতিমধ্যেই আমাদের যে সংকেত পেয়েছি তা গ্রহণ করতে পারি এবং আমাদের কাছে ইতিমধ্যেই যে দুটি বিপরীতমুখী গেট আছে তার মধ্যে একটি দিয়ে উল্টাতে পারি। এই নির্দেশযোগ্য বলার সময়, আমার কাছে একটি OR গেট উপলব্ধ ছিল না, তাই আমি একটি পরবর্তী বিকল্প ব্যবহার করেছি। পরের বিকল্পটি ব্যবহার করার মানে হল যে আমি যাই হোক না কেন কোন অতিরিক্ত অংশ যোগ করার প্রয়োজন নেই।

ধাপ 8: প্রোগ্রামিং

আপনার ওয়্যারিং সঠিক হওয়া উচিত এবং আমার ব্যাখ্যা পরিষ্কার হওয়া উচিত, রম প্রোগ্রাম করা বাকি আছে। এই সম্পর্কে যেতে কয়েকটি উপায় আছে। আপনি সহজ উপায় নিতে এবং Digikey বন্ধ একটি নতুন চিপ অর্ডার করতে পারে। যখন আপনি অংশটি অর্ডার করছেন, আপনার কাছে একটি HEX ফাইল আপলোড করার বিকল্প থাকবে এবং তারা এটি পাঠানোর আগে এটি প্রোগ্রাম করবে। এই নির্দেশের সাথে সংযুক্ত HEX বা OBJ ফাইলগুলি ব্যবহার করুন এবং এটি মেইলে আসার জন্য অপেক্ষা করুন। বিকল্প 2 একটি Arduino বা কিছু দিয়ে একটি প্রোগ্রামার তৈরি করা হয়। আমি সেই রাউটের চেষ্টা করেছি এবং এটি নির্দিষ্ট ডেটা সঠিকভাবে কপি করতে ব্যর্থ হয়েছে এবং এটি বের করতে আমার কয়েক সপ্তাহ লেগেছে। আমি বিকল্প 3 করা শেষ করেছিলাম, যা এটি হাত দ্বারা প্রোগ্রাম করা এবং ঠিকানা এবং ডেটা লাইন নিয়ন্ত্রণ করার জন্য ফ্লিপ সুইচ।

একবার প্রসেসরের ওপি কোডে সরাসরি রূপান্তরিত হয়ে গেলে, এই পুরো প্রোগ্রামটি শুধুমাত্র 17 বাইট অ্যাড্রেস স্পেসে থাকে, তাই হাতে প্রোগ্রামিং খুব বেশি ভয়ঙ্কর ছিল না। প্রোগ্রামটি সাধারণ উদ্দেশ্য রেজিস্টার B- তে 00 এর মান লোড করে। রেজিস্টার B পূর্ববর্তী অ্যাডের ফলাফল সংরক্ষণের জন্য ব্যবহৃত হয়। যেহেতু একটি রেজিস্টার যেখানে গণিত হয়, আমরা ডেটা সংরক্ষণের জন্য এটি ব্যবহার করব না।

A রেজিস্টারের কথা বললে, আমরা একটি IN কমান্ড করি, যা ইনপুট পড়ে, এবং A তে রিড ডেটা সঞ্চয় করে। তারপর আমরা রেজিস্টার B এর বিষয়বস্তু যোগ করি এবং ফলাফলটি আউটপুট করি।

তারপরে, রেজিস্টার এ রেজিস্টার বি -তে অনুলিপি করা হয় এবং তারপর আমরা লাফ কমান্ডের একটি সিরিজ করি। কারণ সমস্ত জাম্প অ্যাড্রেস লাইনের নিচের বাইটের দিকে নির্দেশ করে এবং জাম্পের উপরের বাইটটি দ্বিতীয় যুক্তিতে দেওয়া হয় এবং "00" হয়, আমরা প্রতিটি লাফকে একটি NOP অনুসরণ করতে বাধ্য করতে পারি। দুর্ঘটনাজনিত ইনপুট প্রতিরোধের জন্য আউটপুট দেখানো এবং ইনপুট পড়ার মধ্যে সময় দিতে আমরা এটি করি। প্রতিটি লাফ দশটি ঘড়ি চক্র ব্যবহার করে এবং প্রতিটি এনওপি চারটি ব্যবহার করে। যদি আপনার পছন্দের জন্য লুপটি খুব বেশি সময় নেয়, আপনি ঘড়ির গতি বাড়াতে পারেন অথবা আপনি একটি কম লাফ ব্যবহার করতে এটি পুনরায় প্রোগ্রাম করতে পারেন।

ধাপ 9: পরীক্ষা

আপনি যদি সবকিছু সঠিকভাবে ওয়্যার্ড করেন এবং আপনার রম সঠিকভাবে প্রোগ্রাম করা থাকে, তাহলে একটি চূড়ান্ত পদক্ষেপ নিতে হবে: এটি প্লাগ আপ করুন এবং দেখুন এটি কাজ করে কিনা। একটি বোতাম টিপুন এবং কয়েক সেকেন্ড অপেক্ষা করুন। প্রোগ্রামের প্রথম লুপে পৌঁছাতে 81 ঘড়ি চক্র লাগে এবং প্রতিটি লুপ 74 ঘড়ি চক্র নেয়।

যদি এটি কাজ না করে, শর্টস এবং সংযোগহীন পিন (খোলা) এবং অন্যান্য তারের সমস্যাগুলির জন্য পরীক্ষা করুন। যদি আপনি পাওয়ার-অন রিসেট অপ্ট আউট করেন, প্রসেসর কিছু করার আগে আপনাকে একটি ম্যানুয়াল রিসেট করতে হবে। আপনি ঠিকানা বাসে এলইডি সংযুক্ত করতে পারেন যাতে তারা আচরণ করছে কিনা। আমার নিজের সাথে সমস্যা ছিল, তাই আমি সেগুলিকে সরাসরি ডেটা বাসে আটকে দিলাম। এটি আমাকে দেখতে দেয় যে প্রসেসর এবং রমের মধ্যে কী যোগাযোগ করা হচ্ছে তা চিন্তা না করে রম সঠিকভাবে পড়া হচ্ছে কিনা, যার জন্য সময়নির্দেশের চিত্রের প্রয়োজন হবে এবং আমি কেবল এটিকে জড়িত করতে চাইনি। একটি ভাল পছন্দ হয়েছে বলে প্রমাণিত হয়েছে কারণ আমি অবশেষে সমস্যাযুক্ত ওপি কোডগুলি ধরলাম যা ভুলভাবে সংরক্ষণ করা হয়েছিল।

প্রস্তাবিত: