विषयसूची:

कंप्यूटर का निर्माण करें / इलेक्ट्रॉनिक्स की बुनियादी समझ: 9 कदम (चित्रों के साथ)
कंप्यूटर का निर्माण करें / इलेक्ट्रॉनिक्स की बुनियादी समझ: 9 कदम (चित्रों के साथ)

वीडियो: कंप्यूटर का निर्माण करें / इलेक्ट्रॉनिक्स की बुनियादी समझ: 9 कदम (चित्रों के साथ)

वीडियो: कंप्यूटर का निर्माण करें / इलेक्ट्रॉनिक्स की बुनियादी समझ: 9 कदम (चित्रों के साथ)
वीडियो: कंप्यूटर के बारे में बेसिक जानकारी - Computer Basic Information 2024, नवंबर
Anonim
कंप्यूटर का निर्माण करें / इलेक्ट्रॉनिक्स की बुनियादी समझ
कंप्यूटर का निर्माण करें / इलेक्ट्रॉनिक्स की बुनियादी समझ

क्या आप कभी यह दिखावा करना चाहते हैं कि आप वास्तव में स्मार्ट थे और खरोंच से अपना कंप्यूटर बनाना चाहते थे? क्या आप इस बारे में कुछ नहीं जानते हैं कि एक न्यूनतम कंप्यूटर बनाने में क्या लगता है? ठीक है, यदि आप इलेक्ट्रॉनिक्स के बारे में पर्याप्त जानते हैं तो कुछ आईसी को एक साथ सही ढंग से फेंकना आसान है। यह निर्देशयोग्य मान लेगा कि आप उस हिस्से में अच्छे हैं, साथ ही कुछ अन्य चीजें भी। और यदि नहीं, तब भी इसका अनुसरण करना बहुत कठिन नहीं होना चाहिए यदि आप जानते हैं कि ब्रेडबोर्डिंग/प्रोटोटाइपिंग कैसे की जाती है। इस निर्देश का उद्देश्य आपको एक काम करने वाला "कंप्यूटर" प्राप्त करना है, बिना यह जाने कि वे कैसे काम करते हैं। मैं वायरिंग और प्रोग्रामिंग की मूल बातें कवर करूंगा, साथ ही आपके लिए एक बहुत छोटा कार्यक्रम प्रदान करूंगा। तो चलो शुरू हो जाओ।

चरण 1: भागों और सामग्री

भागों और सामान
भागों और सामान
भागों और सामान
भागों और सामान

एक "कंप्यूटर" की आवश्यकता होती है: पावर, इनपुट, प्रोसेसिंग, मेमोरी और आउटपुट। तकनीकी रूप से हमारे पास ये सभी चीजें होंगी। मैं इन चीजों को उसी क्रम में कवर करूंगा।

शक्ति के लिए, आपको 5 वोल्ट (यहां 5V के रूप में लेबल किया गया) स्रोत की आवश्यकता होगी। यह अनुशंसा की जाती है कि यह एक विनियमित स्रोत हो ताकि आप गलती से अपने सर्किट में भागों को तलें नहीं। हमारा इनपुट बटन होगा। प्रसंस्करण स्व-व्याख्यात्मक है; हम एक प्रोसेसर का उपयोग कर रहे हैं। मेमोरी में केवल ROM होगा। प्रोसेसर के आंतरिक सामान्य प्रयोजन रजिस्टर रैम के रूप में उपयोग करने के लिए पर्याप्त होंगे। आउटपुट एलईडी होंगे।

1 LM7805C - 5V नियामक

1 ZYLOG Z80 - प्रोसेसर

1 AT28C64B - EEPROM

१ ७४एलएस२७३ - ऑक्टल डी फ्लिप-फ्लॉप

1 74HC374E - ऑक्टल डी फ्लिप-फ्लॉप

3 सीडी4001बीई - क्वाड नोर गेट

१ एनई५५५ - घड़ी जेनरेटर

2 1K ओम रेसिस्टर

१ १० के ओम रेसिस्टर

1 10K ओम रेसिस्टर नेटवर्क; 8 बस्ड या 8 अतिरिक्त 10K प्रतिरोधक

1 1uF संधारित्र

1 100uF संधारित्र

1 पुश बटन

1 3x4 बटन मैट्रिक्स या 8 अतिरिक्त पुश बटन

8 एलईडी - रंग पसंद मायने नहीं रखता

8 330 ओम रेसिस्टर्स या रेसिस्टर नेटवर्क

1 वास्तव में बड़ा ब्रेडबोर्ड या एकाधिक छोटे वाले

बहुत सारे और बहुत सारे तार

मेरे योजनाबद्ध में मेरे पास SRAM की एक छड़ी स्थापित है। आपको इसके बारे में चिंता करने की भी जरूरत नहीं है। मैंने इसे केवल अपने वास्तविक सर्किट को सटीक रूप से प्रतिबिंबित करने के लिए योजनाबद्ध में जोड़ा और मैंने इसे भविष्य में उपयोग के लिए सर्किट में जोड़ा। इसके अलावा योजनाबद्ध में जोड़ा गया एक क्वाड या गेट (74LS36) है। दो अप्रयुक्त फाटकों के इनपुट वीसीसी से बंधे होते हैं और उनके आउटपुट तैरते रहते हैं (नहीं खींचे जाते हैं)। पावर सर्किट पर दो कैपेसिटर भी नहीं खींचे गए हैं और न ही ऊपर सूचीबद्ध हैं।

मैं पूरे ब्रेडबोर्ड को खिलाने के लिए 5V नियामक में विनियमित 12V खिला रहा हूं। यह बल्कि गर्म हो जाता है, इसलिए मैंने इसे ठंडा करने के लिए एक हीट सिंक लगाया। यदि आप नियामक को खिलाने के लिए 12V से कम का उपयोग करते हैं (कम से कम 7V का उपयोग करें), तो इसे कूलर चलाना चाहिए।

Z80 वह जगह है जहाँ जादू होता है। यह रोम में संग्रहीत निर्देशों को लेता है और उन्हें निष्पादित करता है। प्रोसेसर के निष्पादन के लिए EEPROM हमारे प्रोग्राम को स्टोर करता है।

ऑक्टल फ्लिप-फ्लॉप जो कि हमारा आउटपुट डिवाइस है जो डेटा बस में डेटा को अपने आउटपुट में लेच करता है। यह हमें बस में क्या है, इसे बदलने की अनुमति देता है, जो कि उपयोगकर्ता/दर्शक जो देखता है उसे बदले बिना प्रति निर्देश कई बार किया गया एक बहुत ही महत्वपूर्ण कदम है। फ्लिप-फ्लॉप आउटपुट एलईडी को लाइट करने के लिए आवश्यक करंट को ड्राइव नहीं कर सकता है, इसलिए वे दो क्वाड NOR गेट चिप्स में फीड करते हैं जो एलईडी को चलाने के लिए 8 डेटा लाइनों को बफर करने का काम करते हैं। चूंकि वे फाटकों के आउटपुट उलटे हैं, इसलिए हमें एलईडी को उल्टा करने के लिए भी तार लगाना होगा, लेकिन जब हम उस पर आएंगे तो हम उस पर आएंगे। अन्य NOR चिप का उपयोग लॉजिक डिकोडिंग के लिए किया जाता है लेकिन केवल तीन गेट का उपयोग किया जाता है।

इनपुट के लिए इस्तेमाल किया जाने वाला ऑक्टल फ्लिप-फ्लॉप अनिवार्य रूप से एक ही चीज है। आउटपुट फ्लिप-फ्लॉप अपने आउटपुट को या तो उच्च या निम्न रखता है इसलिए इसका उपयोग बस को चलाने के लिए नहीं किया जा सकता है; यह बस में डेटा रखेगा। इनपुट के लिए उपयोग किया जाने वाला फ्लिप-फ्लॉप /RESET पिन को /EN से बदल देता है, जो कमोबेश चिप के आउटपुट (और से) को डिस्कनेक्ट कर देता है, इसलिए यह डेटा (ट्राइ-स्टेट आउटपुट) को होल्ड नहीं करेगा।

चरण 2: पावर, क्लॉक और रीसेट सर्किट की वायरिंग

पावर, क्लॉक और रीसेट सर्किट की वायरिंग
पावर, क्लॉक और रीसेट सर्किट की वायरिंग
पावर, क्लॉक और रीसेट सर्किट की वायरिंग
पावर, क्लॉक और रीसेट सर्किट की वायरिंग
पावर, क्लॉक और रीसेट सर्किट की वायरिंग
पावर, क्लॉक और रीसेट सर्किट की वायरिंग

नोट: सभी भागों के लिए, पहले पावर रेल को तार दें। तार को भूल जाने वाली सभी चीजों में से, चिप्स के भूले हुए बिजली कनेक्शन के जीवित रहने की संभावना बहुत कम होगी।

पावर सर्किट तार के लिए सबसे सरल सर्किट है, इसके बाद क्रमशः रीसेट और क्लॉक सर्किट होते हैं। तस्वीर में, 12V इनपुट पावर स्ट्रिप पर सबसे दाईं ओर है। भूरे रंग का तार, इसके नीचे एक पीले रंग को छिपाकर, 12V को नियामक को खिलाता है। रेगुलेटर का आउटपुट ब्रेडबोर्ड पर हर दूसरी पावर स्ट्रिप को फीड करता है और हर पावर स्ट्रिप एक कॉमन ग्राउंड शेयर करता है क्योंकि इसी तरह इलेक्ट्रॉनिक्स काम करता है।

प्रोसेसर को ऑपरेट करने के लिए क्लॉक सर्किट की आवश्यकता होती है। इसके बिना, यह बस अपनी प्रारंभिक अवस्था में वहीं बैठेगा और कुछ नहीं करेगा। घड़ी प्रोसेसर के आंतरिक शिफ्ट रजिस्टर को संचालित करती है ताकि यह सामान करने के लिए संकेत उत्पन्न कर सके। कोई भी घड़ी इनपुट करेगा, यहां तक कि एक साधारण अवरोधक और पुश बटन भी। लेकिन निर्देशों को निष्पादित करने में कई घड़ी चक्र लगते हैं। आउटपुट को लिखने का निर्देश अपने आप में 12 चक्र लेता है। आप शायद वहां बैठना नहीं चाहते हैं और कोड का सिर्फ एक लूप प्राप्त करने के लिए एक बटन को 100+ बार दबाएं (वास्तविक संख्या निर्देश के अंत में हैं)। यही NE555 के लिए है। यह आपके लिए स्विचिंग करता है और यह ऐसा (अपेक्षाकृत) तेज दर से करता है।

इससे पहले कि आप कुछ भी तार-तार करना शुरू करें, आप आगे बढ़ना चाहते हैं और यह पता लगा सकते हैं कि आप अपने घटकों को बोर्ड पर कैसे रखना चाहते हैं। मेरा क्लॉक सर्किट थोड़े से बोर्ड के नीचे रखा गया है, इसलिए यह अन्य घटकों के रास्ते से बाहर होगा। हम मान लेंगे कि आप जानते हैं कि टाइमर के साथ एक बुनियादी घड़ी कैसे बनाई जाती है। यदि आप नहीं करते हैं, तो आप "555 एस्टेबल" देखना चाहेंगे और एक ट्यूटोरियल का अनुसरण करेंगे। टाइमर (R1) के 5V रेल और पिन 7 और पिन 7 और पिन 2 (R2) के बीच 10K के बीच जाने के लिए 1K रोकनेवाला का उपयोग करें। रीसेट पिन, पिन 4 को 5V रेल से बांधना सुनिश्चित करें ताकि टाइमर कार्य कर सके। मैंने अपने आउटपुट पर एक एलईडी लगाई ताकि मैं यह सत्यापित कर सकूं कि घड़ी ने वास्तव में काम किया है, लेकिन इसकी आवश्यकता नहीं है।

NE555 के साथ एक अन्य विकल्प यह है कि इसे नॉट गेट के रूप में सेट किया जाए और आउटपुट को वापस इनपुट में बाँधने के लिए 1K रेसिस्टर का उपयोग किया जाए। ऐसा करने के लिए आमतौर पर 3 टाइमर का उपयोग करने की अनुशंसा की जाती है, लेकिन मैंने पाया कि केवल 1 को ठीक काम करना चाहिए। बस इतना जान लें कि यदि आप ऐसा करते हैं, तो यह बहुत तेज गति से दोलन करेगा और यह बताना बहुत मुश्किल, असंभव होगा कि आउटपुट एल ई डी चमक रहे हैं। इस सेटअप को "रिंग ऑसिलेटर" कहा जाता है।

ध्यान दें कि हम अभी तक घड़ी को प्रोसेसर से नहीं जोड़ रहे हैं। हम बस इसे तैयार कर रहे हैं। इमेज में घड़ी के ठीक ऊपर लॉजिक चिप पर भी ध्यान दें। इसे बाद में जोड़ा गया था और इसे रखने के लिए यही एकमात्र अर्ध-उचित स्थान बचा था। इसका उपयोग RAM/ROM चयन के लिए किया जाता है। यह निर्देशयोग्य RAM को अनदेखा करता है, इसलिए आपके बोर्ड पर यह चिप नहीं होगी।

अब हम रीसेट सर्किट को वायर करते हैं। सबसे पहले आपको इसके लिए अपने बोर्ड पर जगह ढूंढनी होगी। मैंने घड़ी के ठीक बगल में चुना। बोर्ड में अपना बटन जोड़ें। बटन के एक तरफ को 5V रेल से बाँधने के लिए 1K रोकनेवाला का उपयोग करें। हमारे रीसेट पिन कम सक्रिय हैं, जिसका अर्थ है कि हमें उन्हें ऊंचा रखने की आवश्यकता है। यही रोकनेवाला है। यह जंक्शन वह जगह भी है जहां रीसेट पिन कनेक्ट होते हैं। बटन का दूसरा किनारा सीधे जमीन पर जाता है। यदि आप पावर-ऑन रीसेट चाहते हैं, तो इस जंक्शन पर भी 10uF कैपेसिटर जोड़ें। यह रीसेट पिन पर वोल्टेज को प्रोसेसर और फ्लिप-फ्लॉप के भीतर रीसेट सर्किटरी को सक्रिय करने के लिए पर्याप्त समय तक कम रखेगा।

चरण 3: Z80. को तार देना

अब हम नॉटी-ग्रिट्टी पर आते हैं। हम उस जानवर को तार देंगे जो Z80 है। अपने बोर्ड पर, मैंने Z80 को रीसेट सर्किट के समान बोर्ड के शीर्ष पर रखा। जैसा कि पहले कहा गया है, पहले पावर रेल को तार दें। 5V बाईं ओर 11 पिन करने के लिए जाता है और जमीन एक पिन नीचे है लेकिन दाईं ओर है। आपने चिप की विषम चौड़ाई पर भी ध्यान दिया होगा। इससे आपको ब्रेडबोर्ड पर एक तरफ 3 और दूसरी तरफ 2 खुले कनेक्टर होंगे। यदि आप ऐसा करना चुनते हैं तो यह केवल अतिरिक्त सामान को तार करना कम सुविधाजनक बनाता है।

निम्नलिखित पिन नंबर - मुझे लगता है कि आप जानते हैं कि आईसी पर पिन कैसे गिनना है - अप्रयुक्त इनपुट हैं और 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) फ्लोटिंग इनपुट से उच्च पते तक अवांछित पहुंच को रोकने के लिए सीधे जमीन से जुड़ी हुई हैं। अप्रयुक्त पता इनपुट के साथ जमीन से बंधा हुआ है और लेखन नियंत्रण 5V से बंधा हुआ है, बाकी को वायरिंग करना सीधा है। प्रोसेसर पर A0 खोजें और इसे ROM पर A0 से वायर करें। फिर प्रोसेसर पर A1 ढूंढें और इसे ROM पर A1 से वायर करें। ऐसा तब तक करें जब तक आप सभी पतों को एक साथ तार न कर दें। छवि में, रोम के लिए मेरी पता बस नीली तारों में की जाती है। रैम में जाने वाली एड्रेस बस रेड वायरिंग में की जाती है। ब्रेडबोर्ड वायरिंग किट में आने के बाद ये सभी तार पहले से कटे और छीन लिए गए थे और इस वायरिंग के लिए एकदम सही थे।

आपके द्वारा पतों को तार-तार करने के बाद (इसे एड्रेस बस कहा जाता है), D0 लेबल वाले पिनों के लिए ठीक यही काम करें, फिर D1, D2, आदि। सभी डेटा पिन (D0 - D7) के लिए ऐसा करें और आपके पास आपका है डेटा बस वायर्ड। हम लगभग ROM की वायरिंग कर चुके हैं। ROM का /CE (चिप सक्षम) पिन ढूंढें और इसे प्रोसेसर पिन 19, /MREQ (मेमोरी रिक्वेस्ट) से वायर करें और फिर ROM/OE (आउटपुट इनेबल) को ढूंढें और इसे प्रोसेसर पिन 21, / RD (रीड) से वायर करें। अब हम कर चुके हैं। ये सभी जम्पर तारों के साथ किए जाते हैं क्योंकि उन्हें प्रोसेसर के दूसरी तरफ जाना पड़ता है और एक ब्रेडबोर्ड उस तरह की साफ-सुथरी तारों का उपयोग करने के लिए पर्याप्त जगह नहीं देता है।

चरण 5: आउटपुट वायरिंग

आउटपुट वायरिंग
आउटपुट वायरिंग
आउटपुट वायरिंग
आउटपुट वायरिंग

चूंकि यह आबादी से मुक्त था, इसलिए मैंने आउटपुट के लिए Z80 के बाईं ओर बोर्ड के अनुभाग को चुना। फ्लिप-फ्लॉप को वहां पर रखें और उन्हें पावर रेल्स से कनेक्ट करें। पिन 1, /एमआर (रीसेट) प्रोसेसर के रीसेट पिन से सीधे जुड़ सकता है, लेकिन आप इसे 5V रेल से बांध कर छोड़ सकते हैं। ऐसा करने से यह केवल पहले लिखने तक जंक डेटा दिखाएगा। ध्यान दें कि पिन 11 पर चिप का क्लॉक इनपुट कैसे होता है। यह इनपुट इस मायने में अजीब है कि जब पिन ऊंचा हो जाता है तो यह सक्रिय हो जाता है। यह भी ध्यान दें कि यह पिन वही घड़ी नहीं है जो प्रोसेसर को चलाती है। यह घड़ी डेटा बस में डाले गए डेटा को लॉक करती है।

याद रखें कि हमने ROM पर D0 - D7 को प्रोसेसर पर समान पिन से कैसे जोड़ा? इस चिप के लिए ठीक ऐसा ही करें। इसका D0 डेटा बस वगैरह पर D0 पर जाता है। "क्यू" से शुरू होने वाले पिन आउटपुट हैं। इससे पहले कि हम उन्हें तार दें, हमें और चिप्स जोड़ने की जरूरत है। मैंने क्वाड नॉर गेट्स का इस्तेमाल किया क्योंकि मेरे पास उनमें से एक ट्यूब है और मुझे पहले से ही एक की जरूरत है, लेकिन अगर आप इसे सही तरीके से तार करते हैं तो किसी भी चिप के बारे में काम करेगा। मैं सभी गेटों पर एक इनपुट को जमीन से बांध सकता था और अन्य इनपुट्स का उपयोग, अच्छी तरह से, इनपुट के रूप में कर सकता था, लेकिन मैंने सादगी के लिए दोनों इनपुट को एक साथ तार करना चुना।

मैंने चिप्स को फ्लिप-फ्लॉप के नीचे रखा ताकि बिना जंपर्स के सीधे तार करना आसान हो सके लेकिन मैं इस बिंदु पर तार पर कम चल रहा था इसलिए अंत में यह वास्तव में मायने नहीं रखता था। फ्लिप-फ्लॉप पर Q0, Q1….. Q7 अलग-अलग गेट्स पर इनपुट्स पर जाता है। प्रत्येक पैकेज/चिप में 4 गेट्स के साथ, मुझे 2 पैकेजों की आवश्यकता थी और सभी गेट्स का उपयोग किया। यदि आपको फ्लिप-फ्लॉप का एक संस्करण मिलता है जो बिना बफर की आवश्यकता के एलईडी चला सकता है, तो इन दो चिप्स की आवश्यकता नहीं है। यदि आप गेट्स को एक बफर के रूप में उपयोग करते हैं जिसमें उल्टे आउटपुट (AND/OR/XOR) नहीं हैं, तो आप एल ई डी को तार कर सकते हैं जैसा आप उम्मीद करेंगे। यदि आप मेरे और/या आउटपुट के समान भागों का उपयोग कर रहे हैं, तो एल ई डी को नीचे वर्णित अनुसार वायर्ड किया जाना चाहिए। पहली छवि आउटपुट के IC भाग को दिखाती है।

एलईडी पॉजिटिव (एनोड) को 5V रेल से जोड़ने के लिए 330 ओम रेसिस्टर्स का उपयोग करें और नेगेटिव (कैथोड) को गेट्स के आउटपुट से कनेक्ट करें। आप दूसरी छवि में देख सकते हैं कि मैंने दो प्रतिरोधक बसों का उपयोग किया है, जिनमें से प्रत्येक में केवल पाँच आंतरिक प्रतिरोधक हैं। एल ई डी को इस तरह से तार देना आउटपुट बंद होने पर उन्हें हल्का कर देगा। हम ऐसा इसलिए करते हैं क्योंकि इनपुट चालू होने पर आउटपुट बंद हो जाता है। पूरी तरह से सुनिश्चित करें कि आप फ्लिप-फ्लॉप नियंत्रण से अपने आउटपुट का ट्रैक रखते हैं। जब तक आपके एल ई डी बिखरे नहीं होंगे या उनका क्रम व्यर्थ है, उनका ट्रैक खोना बाद में भ्रम पैदा कर सकता है जब आप खुद से पूछ रहे हों कि आउटपुट गलत क्यों है।

चरण 6: इनपुट को तार करना

इनपुट वायरिंग
इनपुट वायरिंग

वह 74HC374 फ्लिप-फ्लॉप लें और उसे कहीं रख दें। मेरा Z80 के नीचे कहीं बोर्ड के नीचे की ओर था। पिछली बार याद है जब हमने D0 से D0 और D1 को D1 और इसी तरह से जोड़ा था? इस बार हम Q0 को D0 से और Q1 को D1 से जोड़ते हैं और इसी तरह। शुक्र है कि हमें इस बार कोई बफर चिप्स जोड़ने की जरूरत नहीं है, हाहा। इसके बजाय हम प्रत्येक "D" पिन (D0-D7) और ग्राउंड और फिर उसी पिन और 5V रेल के लिए एक बटन से 10K ओम कनेक्ट करने जा रहे हैं। या आप एक रेसिस्टर बस का उपयोग कर सकते हैं और अपने पार्ट काउंट को बहुत कम कर सकते हैं। एक 3x4 बटन मैट्रिक्स (मैट्रिक्स आउटपुट के बिना !!) भी मदद करेगा। छवि गोंद तर्क के साथ इनपुट सर्किट की संपूर्णता को दिखाती है (वह भाग अगला है)।

चरण 7: गोंद तर्क

हमारे पास तार करने के लिए एक आखिरी चीज है। इसे "गोंद तर्क" कहा जाता है क्योंकि इसका उपयोग नियंत्रण संकेतों को डीकोड करने के लिए किया जाता है ताकि यह सब काम कर सके; यह वही है जो सर्किट को एक साथ रखता है। जब प्रोसेसर आउटपुट में डेटा लिखना चाहता है, तो /IORQ और /WR (क्रमशः 20 और 22) दोनों कम हो जाते हैं और भेजे जा रहे डेटा को डेटा बस में डाला जाता है। दोनों फ्लिप-फ्लॉप पर क्लॉक पिन सक्रिय उच्च हैं, जिसका अर्थ है कि पिन को उच्च सिग्नल प्राप्त होने पर डेटा लैच किया जाता है। हम गेट के एक इनपुट के लिए NOR गेट और वायर /IORQ का उपयोग करते हैं और दूसरे इनपुट के लिए /WR। जब या तो उच्च होता है, जिसका अर्थ है कि IO सर्किट का चयन नहीं किया जा रहा है या कोई लेखन कार्य नहीं किया जा रहा है, फ्लिप-फ्लॉप की घड़ी को फीड करने वाला आउटपुट कम रहता है। जब दोनों इनपुट कम होते हैं, और केवल तभी, जब आउटपुट अधिक हो जाता है और फ्लिप-फ्लॉप डेटा को लैच कर देता है।

अब हमें इनपुट फ्लिप-फ्लॉप को वायर करने की आवश्यकता है। हम क्लॉक पिन को पिछले वाले की तरह ही तार कर सकते हैं, लेकिन /IORQ और /RD का उपयोग कर सकते हैं। लेकिन अन्य फ्लिप-फ्लॉप के विपरीत, हमारे पास एक /OE पिन भी होता है जिसे केवल तभी कम लेना पड़ता है जब /IORQ और /RD कम हो। हम एक OR गेट का उपयोग कर सकते हैं। या हम केवल उस सिग्नल को ले सकते हैं जो हमारे पास पहले से ही घड़ी के लिए है और इसे दो इनवर्टिंग गेट्स में से एक के साथ उलटा कर सकते हैं जो हमारे पास पहले से उपलब्ध है। इस निर्देश को बताते समय, मेरे पास OR गेट उपलब्ध नहीं था, इसलिए मैंने बाद वाले विकल्प का उपयोग किया। बाद वाले विकल्प का उपयोग करने का मतलब था कि मुझे वैसे भी कोई अतिरिक्त भाग जोड़ने की आवश्यकता नहीं थी।

चरण 8: प्रोग्रामिंग

क्या आपकी वायरिंग सही होनी चाहिए और मेरी व्याख्या स्पष्ट होनी चाहिए, जो कुछ बचा है वह है ROM को प्रोग्राम करना। इसके बारे में जाने के कुछ तरीके हैं। आप आसान तरीका अपना सकते हैं और डिजिके की एक नई चिप को ऑर्डर कर सकते हैं। जब आप भाग का आदेश दे रहे हों, तो आपके पास एक HEX फ़ाइल अपलोड करने का विकल्प होगा और वे इसे शिप करने से पहले प्रोग्राम करेंगे। इस निर्देश से जुड़ी HEX या OBJ फ़ाइलों का उपयोग करें और बस इसके मेल में आने की प्रतीक्षा करें। विकल्प 2 एक प्रोग्रामर को Arduino या कुछ और के साथ बनाना है। मैंने उस मार्ग की कोशिश की और यह कुछ डेटा को सही ढंग से कॉपी करने में विफल रहा और मुझे यह पता लगाने में हफ्तों लग गए। मैंने विकल्प 3 करना समाप्त कर दिया, जो इसे हाथ से प्रोग्राम करना है और पता और डेटा लाइनों को नियंत्रित करने के लिए स्विच फ्लिप करना है।

एक बार सीधे प्रोसेसर के ओपी कोड में परिवर्तित होने के बाद, यह पूरा प्रोग्राम केवल 17 बाइट्स एड्रेस स्पेस में रहता है, इसलिए हाथ से प्रोग्रामिंग बहुत भयानक नहीं थी। कार्यक्रम सामान्य प्रयोजन रजिस्टर बी में 00 के मान को लोड करता है। रजिस्टर बी का उपयोग पिछले ऐड के परिणाम को संग्रहीत करने के लिए किया जाता है। चूंकि ए रजिस्टर वह जगह है जहां गणित होता है, हम इसका उपयोग डेटा स्टोर करने के लिए नहीं करेंगे।

ए रजिस्टर की बात करें तो, हम एक आईएन कमांड करते हैं, जो इनपुट को पढ़ता है, और रीड डेटा को ए में स्टोर करता है। फिर हम रजिस्टर बी की सामग्री जोड़ते हैं और परिणाम आउटपुट करते हैं।

उसके बाद, रजिस्टर ए को रजिस्टर बी में कॉपी किया जाता है। और फिर हम जंप कमांड की एक श्रृंखला करते हैं। क्योंकि सभी जंप एड्रेस लाइन के निचले बाइट की ओर इशारा करते हैं, और क्योंकि जंप इंस्ट्रक्शन का ऊपरी बाइट दूसरे तर्क में दिया गया है और "00" है, इसलिए हम प्रत्येक जंप के बाद NOP के लिए बाध्य कर सकते हैं। हम ऐसा आकस्मिक इनपुट को रोकने के लिए आउटपुट दिखाने और इनपुट पढ़ने के बीच समय देने के लिए करते हैं। प्रत्येक छलांग दस घड़ी चक्रों का उपयोग करती है और प्रत्येक एनओपी चार का उपयोग करती है। यदि लूप आपकी पसंद के अनुसार बहुत अधिक समय लेता है, तो आप घड़ी की गति बढ़ा सकते हैं या आप इसे एक कम छलांग का उपयोग करने के लिए पुन: प्रोग्राम कर सकते हैं।

चरण 9: परीक्षण

यदि आपने सब कुछ सही ढंग से तार-तार किया है और आपका ROM सही ढंग से प्रोग्राम किया गया है, तो एक अंतिम कदम उठाना है: इसे प्लग अप करें और देखें कि क्या यह काम करता है। एक बटन दबाएं और कुछ सेकंड प्रतीक्षा करें। प्रोग्राम को अपने पहले लूप तक पहुंचने में 81 घड़ी चक्र लगते हैं और प्रत्येक लूप 74 घड़ी चक्र लेता है।

यदि यह काम नहीं करता है, तो शॉर्ट्स और असंबद्ध पिन (खुलता है) और अन्य वायरिंग मुद्दों की जांच करें। यदि आपने पावर-ऑन रीसेट से ऑप्ट आउट किया है, तो प्रोसेसर के कुछ भी करने से पहले आपको मैन्युअल रीसेट करने की आवश्यकता होगी। आप पता बस में एलईडी भी लगा सकते हैं यह देखने के लिए कि क्या वे व्यवहार कर रहे हैं। मुझे इसके साथ समस्या हो रही थी, इसलिए मैंने उन्हें सीधे डेटा बस में चिपका दिया। इसने मुझे यह देखने की अनुमति दी कि प्रोसेसर और रॉम के बीच क्या संचार किया जा रहा था, इस बारे में चिंता किए बिना कि क्या रोम को सही तरीके से पढ़ा जा रहा है, जिसके लिए टाइमिंग डायग्राम की आवश्यकता होगी और मैं इसे शामिल नहीं करना चाहता था। यह एक अच्छा विकल्प साबित हुआ क्योंकि मैंने अंततः समस्याग्रस्त ओपी कोड को पकड़ा जो गलत तरीके से संग्रहीत किए गए थे।

सिफारिश की: