جدول المحتويات:

The KIM Uno - محاكي مجموعة المعالجات الدقيقة بقيمة 5 يورو: 13 خطوة (بالصور)
The KIM Uno - محاكي مجموعة المعالجات الدقيقة بقيمة 5 يورو: 13 خطوة (بالصور)

فيديو: The KIM Uno - محاكي مجموعة المعالجات الدقيقة بقيمة 5 يورو: 13 خطوة (بالصور)

فيديو: The KIM Uno - محاكي مجموعة المعالجات الدقيقة بقيمة 5 يورو: 13 خطوة (بالصور)
فيديو: Дэниел Шмахтенбергер: Уничтожат ли нас технологии? 2024, شهر نوفمبر
Anonim
Image
Image
The KIM Uno - محاكي Dev Kit للمعالج الدقيق بقيمة 5 يورو
The KIM Uno - محاكي Dev Kit للمعالج الدقيق بقيمة 5 يورو
The KIM Uno - محاكي Dev Kit للمعالج الدقيق بقيمة 5 يورو
The KIM Uno - محاكي Dev Kit للمعالج الدقيق بقيمة 5 يورو

KIM Uno عبارة عن مجموعة أدوات محمولة ومحددة بالبرمجيات للمعالجات الدقيقة (الرجعية). لكن اسمحوا لي أن أقدم فكرة ذلك من خلال العودة بالزمن إلى الوراء:

في أواخر عام 2018 ، خطر ببالي أنني أردت إنشاء مجموعة صغيرة من المعالجات الدقيقة المحمولة ، تمامًا مثل KIM-1 الشهير من MOS Technology ، Inc. والذي صممه Chuck Peddle الذي شارك أيضًا في إنشاء وحدة المعالجة المركزية 6502.

لكن بناء مجموعة أدوات تطوير "عارية" بمكونات منطقية منفصلة لم يكن خيارًا لأنه يحتاج إلى مصدر طاقة كبير (نظرًا لأن هذه الأجهزة القديمة تميل إلى أخذ بعض التيار الجاد) وأيضًا سيستغرق التطوير وقتًا طويلاً للغاية. وانا اريدها الان!

لذلك ، صممت جهاز KIM Uno كجهاز محمول يناسب يد واحدة ويتم تشغيله بواسطة بطاريتين CR2032. يستخدم متحكم ATMega328p ("Arduino") يعمل بسرعة 8 ميجاهرتز لمحاكاة (أو محاكاة) وحدة المعالجة المركزية المرغوبة. تتأكد هذه البنية أيضًا من أن وحدات المعالجة المركزية التي تمت محاكاتها قابلة للتبديل مع أي شيء يناسب ذاكرة فلاش المتحكم الدقيق. لذلك فهو جهاز متعدد الأغراض.

بالصدفة ، شاهدت لاحقًا حديثًا جيدًا حقًا - يسمى Ultimate Apollo Guidance Computer Talk (34C3) - على YouTube حيث تم ذكر "One Instruction Set Computers" أو OISCs. لم أكن أعرف عنهم ووجدت هذا هو المرشح المثالي لتنفيذه.

يحاكي KIM Uno وحدة المعالجة المركزية بإرشادات واحدة فقط: subleq - طرح وفرع إذا كان أقل من أو يساوي الصفر.

إذا تابعت معي من خلال هذا Instructable ، فيمكنك بناء KIM Uno الخاص بك في أي وقت من الأوقات. وأفضل جزء - بجانب حقيقة أنه يمكنك تعديله حسب ذوقك - هو أنه يكلف 4 ، 75 يورو فقط (اعتبارًا من نهاية 2018).

تلميح واحد: يوجد مستودع Git يحتوي على جميع الملفات المقدمة من خلال الخطوات المختلفة لهذا الدليل. في حال كنت ترغب في تعديل بعض الموارد ومشاركتها معنا ، يمكنك إنشاء علاقات عامة. ولكن يمكنك أيضًا تنزيل جميع الملفات مرة واحدة هناك. ببساطة إلى https://github.com/maxstrauch/kim-uno. شكرا!

هناك مشروع آخر مثير للاهتمام ، يسمى نفسه (KIM Uno) ، يقوم بعمل نسخة طبق الأصل حقيقية لـ 6502 KIM Uno. تحقق من ذلك هنا. حتى أن المنشئ يبيع المجموعة. لذلك إذا كنت مهتمًا بـ 6502 ومثل هذا المشروع ، فعليك إلقاء نظرة هناك!

الخطوة 1: تحديد مصادر ثنائي الفينيل متعدد الكلور

تحديد مصادر ثنائي الفينيل متعدد الكلور
تحديد مصادر ثنائي الفينيل متعدد الكلور
تحديد مصادر ثنائي الفينيل متعدد الكلور
تحديد مصادر ثنائي الفينيل متعدد الكلور

كما ترون ، لقد انتهزت الفرصة لتصميم ثنائي الفينيل متعدد الكلور واتركه يصنع بشكل احترافي. نظرًا لأن تصنيعه خارجيًا وشحنه إليك سيستغرق وقتًا طويلاً (اعتمادًا على مكانك في العالم ؛-)) ، فإن الحصول عليه هو الخطوة الأولى. يمكننا بعد ذلك متابعة الخطوات الأخرى أثناء تصنيع ثنائي الفينيل متعدد الكلور وشحنه إليك.

لقد طلبت ثنائي الفينيل متعدد الكلور في الصين في PCBWay مقابل 5 دولارات فقط. لا أحصل على أي فائدة لتقديم PCBWay كشركة مصنعة لدي goto لثنائي الفينيل متعدد الكلور ، إنها فقط تعمل بشكل جيد بالنسبة لي وقد تعمل بشكل جيد بالنسبة لك. ولكن يمكنك طلبها في أي مكان آخر مثل JLCPCB أو OSH Park أو أي شركة PCB محلية.

ولكن إذا كنت ترغب في طلبها على PCBWay ، يمكنك تنزيل ملف ZIP المرفق "kim-uno-rev1_2018-12-12_gerbers.zip" وتحميله مباشرة إلى PCBWay دون أي تغيير. هذا هو الملف الأصلي الذي استخدمته لطلب مركبات ثنائي الفينيل متعدد الكلور التي يمكنك رؤيتها في الصور.

إذا كنت تطلبها من مصنع آخر ، فقد تحتاج إلى إعادة تصديرها من مصادر KiCad الأصلية ، لأنني قمت بإنشائها بالمواصفات من PCBWay التي يمكنك العثور عليها هنا. لمصادر KiCad الأصلية ، قم بتنزيل "kim-uno-kicad-sources.zip" واستخرجه.

ولكن هناك طريقة ثانية: إذا كنت لا ترغب في طلب PCB ، فيمكنك إنشاء نسختك الخاصة باستخدام لوحة التحكم أو حتى اللوح.

على أي حال: نظرًا لأن مركبات ثنائي الفينيل متعدد الكلور في الطريق الآن ، يمكننا التركيز على الأجزاء الأخرى! تعال اتبعني.

الخطوة 2: تحديد مصادر المكونات

تحديد مصادر المكونات
تحديد مصادر المكونات
تحديد مصادر المكونات
تحديد مصادر المكونات
تحديد مصادر المكونات
تحديد مصادر المكونات

أنت الآن بحاجة إلى الحصول على المكونات. لهذا ، ستجد صورة عامة لجميع المكونات والكميات التي تحتاجها ، مرفقة بهذه الخطوة بالإضافة إلى قائمة المواد (فاتورة المواد).

يحتوي BOM على روابط لـ eBay. على الرغم من أنه قد يتم إغلاق هذه العروض عند قراءة هذا ، يمكنك استخدامه كنقطة بداية. المكونات المستخدمة قياسية جدًا.

في ما يلي سأشرح لكم جميع المكونات المطلوبة:

  • مقاومات 7x 1 kΩ لشاشات القطع السبعة. يمكنك تقليل القيمة (على سبيل المثال إلى 470 Ω) لجعلها أكثر إشراقًا ، ولكن لا تقللها كثيرًا وإلا ستموت مصابيح LED أو يتم استنزاف البطارية بسرعة كبيرة. لقد وجدت أن هذه القيمة تناسبني
  • 1x 10 kΩ كمقاوم سحب لخط RESET الخاص بالمتحكم الدقيق
  • مكثف 1x 100nF لتخفيف أي ارتفاعات في الجهد (وهو ما لا يجب أن يحدث لأننا نستخدم البطاريات ، صحيح ، ولكن لمقياس جيد …)
  • 1x ATMega328P في حزمة DIP-28 (تسمى عادةً ATMega328P-PU)
  • 1x ثنائي الفينيل متعدد الكلور الرئيسي - راجع الخطوة السابقة ؛ إما أن تطلبها أو تبنيها بنفسك
  • حاملي بطاريات 2x CR2032
  • 1x SPDT (قطب واحد ، رمي مزدوج) مفتاح يحتوي بشكل أساسي على ثلاثة جهات اتصال وفي كل من حالتيه (إما قيد التشغيل أو الإيقاف) يقوم بتوصيل جهتي اتصال
  • 20 ضعفًا لأزرار الضغط عن طريق اللمس للوحة المفاتيح. لاستخدام الجزء الخلفي من PCB ، استخدمت أزرار الضغط اللمسية SMD (الأزرار القياسية 6 × 6 × 6 مم) - من السهل جدًا لحامها كما سترى
  • اختياري: رأس دبوس 1x 1x6 لتوصيل المبرمج ، لكن هذا اختياري كما سترى لاحقًا
  • شاشة عرض 1x بسبعة أجزاء مع 4 أرقام وعرض 1x سبعة مقاطع مع رقمين - ستستغرق اللوحة 0.36 بوصة (9 ، 14 مم) فقط مع أسلاك الأنود المشتركة. كلا المطلبين مهمان للحصول على وحدة عمل. ولكن هذا النوع من عرض الأجزاء السبعة شائع جدًا أيضًا

مرفق بهذه الخطوة يمكنك العثور على ملف "component-datasheets.zip" الذي يحتوي على معلومات أكثر دقة عن أبعاد وأنواع المكونات المستخدمة. لكن معظم المكونات معيارية للغاية ويمكن الحصول عليها بسهولة مقابل القليل من المال.

أنت الآن بحاجة إلى الانتظار حتى تصبح جميع المكونات جاهزة لمواصلة اللحام. خلال هذا الوقت ، يمكنك بالفعل القفز إلى النهاية وقراءة القليل عن استخدام KIM Uno إذا أردت.

الخطوة 3: نظرة عامة على أداة اللحام

نظرة عامة على أداة اللحام
نظرة عامة على أداة اللحام
نظرة عامة على أداة اللحام
نظرة عامة على أداة اللحام

لحام وبناء KIM Uno تحتاج إلى الأدوات الموضحة بالصور:

  • قاطع الأسلاك (لقطع نهاية الأسلاك المكونة)
  • كماشة مسطحة
  • زوج من ملاقط
  • (لائق) لحام ليس سميكًا - أستخدم لحام 0.56 مم
  • مكواة لحام - لست بحاجة إلى مكواة لحام عالية الجودة (لأننا أيضًا لا نقوم بعلوم الصواريخ هنا) - أستخدم Ersa FineTip 260 لفترة طويلة الآن وهي جيدة حقًا
  • قلم التمويه: إضافة التدفق إلى المكونات والوسادات يجعل لحامها أسهل بكثير لأن اللحام "يتدفق" من تلقاء نفسه إلى المكان الصحيح *
  • اختياريا: اسفنجة (من الصوف المعدني) للحام الحديد الخاص بك

لبرمجة KIM Uno لاحقًا ، ستحتاج أيضًا إلى:

  • جهاز كمبيوتر مزود بسلسلة أدوات AVR-GCC و avrdude لتحميل البرامج الثابتة
  • مزود خدمة الإنترنت (مبرمج) - كما ترى في الصورة ، أستخدم Arduino Uno كمزود خدمة إنترنت برسم خاص - لذلك لا داعي لشراء أي أجهزة فاخرة

* هناك حاجة لبعض التوجيهات من قبل البشر ؛-)

هل أنت جاهز؟ في الخطوة التالية سنبدأ في تجميع KIM Uno.

الخطوة 4: اللحام رقم 1: إضافة المقاومات والمكثفات

اللحام رقم 1: إضافة المقاومات والمكثفات
اللحام رقم 1: إضافة المقاومات والمكثفات
اللحام رقم 1: إضافة المقاومات والمكثفات
اللحام رقم 1: إضافة المقاومات والمكثفات
اللحام رقم 1: إضافة المقاومات والمكثفات
اللحام رقم 1: إضافة المقاومات والمكثفات
اللحام رقم 1: إضافة المقاومات والمكثفات
اللحام رقم 1: إضافة المقاومات والمكثفات

يجب أن تعمل دائمًا من المكونات الأصغر (من حيث ارتفاع المكون) أولاً ، إلى أعلى المكونات أخيرًا. لذلك ، نبدأ بإضافة المقاومات والانحناء على الأرجل في الخلف بحيث يسهل لحام المقاومات والثبات في مكانها. بعد ذلك قطع الأسلاك الطويلة.

أيضًا ، لا يظهر في الصور ، أضف مكثف 100 nF الصغير بنفس الطريقة.

نصيحة واحدة: احتفظ بهذه الأرجل السلكية في حاوية صغيرة ، فهي مفيدة في بعض الأحيان.

الخطوة 5: اللحام رقم 2: تجميع لوحة المفاتيح

اللحام رقم 2: تجميع لوحة المفاتيح
اللحام رقم 2: تجميع لوحة المفاتيح
اللحام رقم 2: تجميع لوحة المفاتيح
اللحام رقم 2: تجميع لوحة المفاتيح
اللحام رقم 2: تجميع لوحة المفاتيح
اللحام رقم 2: تجميع لوحة المفاتيح

والخطوة التالية هي لحام مفاتيح اللمس 20 SMD. نظرًا لأن هذا العمل صعب بعض الشيء ، فإننا نقوم به الآن ، عندما يكون PCB مسطحًا على طاولة العمل.

سنعمل من أعلى إلى أسفل (أو من اليسار إلى اليمين إذا كان PCB موجهًا كما هو موضح في الصور) ونبدأ بالصف الأول: اختر واحدة من أربع وسادات لكل مفتاح وقم بتبليلها بقلم التدفق.

ثم استخدم زوجًا من الملقط للإمساك بالمفتاح وضعه بحذر على الوسادات الأربع. ثم قم بتلحيم ساق المفتاح الموجود على اللوحة التي اخترتها وأعدتها باستخدام التدفق. لهذا يجب عليك "الاستيلاء" على بعض اللحام بالمكواة قبل البدء. باستخدام هذه الطريقة ، أكمل صف المفاتيح بالكامل ، وقم بلحام ساق واحدة فقط.

تُظهر الصورة التي تحتوي على الأسهم تكبيرًا لكيفية إجراء اللحام بالضبط.

بعد أن تقوم بلحام الصف بأكمله (دبوس واحد فقط) ، يمكنك إجراء تعديلات طفيفة عن طريق تسخين الدبوس احتياطيًا وإعادة ضبط موضع المفتاح. تأكد من محاذاة المفاتيح بشكل جيد قدر الإمكان.

إذا كنت راضيًا عن المحاذاة ، فيمكنك تبليل جميع المسامير الأخرى بقلم التدفق ثم لحامها عن طريق لمسها بمكواة اللحام وإضافة القليل من اللحام عن طريق لمسها أيضًا. ستلاحظ أن اللحام يمتص مباشرة على الوسادة.

بعد لحام صف أو نحو ذلك ، ستلاحظ أنك تعطلت عنه وأنه ليس بهذه الصعوبة ولكنه متكرر. لذلك فقط افعل الباقي وستنتهي بلوحة مفاتيح كاملة في أي وقت من الأوقات.

الخطوة 6: اللحام رقم 3: عرض الأجزاء السبعة والتبديل ورأس الدبوس

اللحام رقم 3: عرض الأجزاء السبعة والتبديل ورأس الدبوس
اللحام رقم 3: عرض الأجزاء السبعة والتبديل ورأس الدبوس
اللحام رقم 3: عرض الأجزاء السبعة والتبديل ورأس الدبوس
اللحام رقم 3: عرض الأجزاء السبعة والتبديل ورأس الدبوس
اللحام رقم 3: عرض الأجزاء السبعة والتبديل ورأس الدبوس
اللحام رقم 3: عرض الأجزاء السبعة والتبديل ورأس الدبوس

يمكنك الآن إضافة رأس التبديل ورأس الدبوس (اختياري) عن طريق الضغط عليه بإصبعك ولحام دبوس واحد لتثبيته على PCB ، بحيث يمكنك لحام المسامير الأخرى وأخيراً لمس دبوس التثبيت الأولي.

كن حذرًا من عدم حرق نفسك بمكواة اللحام الساخنة. إذا لم تكن مرتاحًا لذلك ، يمكنك استخدام القليل من الشريط اللاصق (مثل شريط الرسام) لتثبيت المكون. بهذه الطريقة يمكنك التحرك بحرية بكلتا يديك.

يتم لحام شاشات العرض السبعة بالطريقة نفسها (انظر الصورة): تضعها ، وتثبتها بيدك أو الشريط اللاصق ولحام دبابيس متقابلة لتثبيتها في مكانها بينما يمكنك لحام المسامير الأخرى.

لكن كن حذرًا وضع عرض الأجزاء السبعة في الاتجاه الصحيح (بحيث تكون النقاط العشرية مواجهة للوحة المفاتيح). وإلا فإنك في ورطة …

الخطوة 7: اللحام رقم 4: لحام المتحكم الدقيق

اللحام رقم 4: لحام المتحكم الدقيق
اللحام رقم 4: لحام المتحكم الدقيق

الآن بعد أن أصبح لديك الكثير من التدريب ، يمكنك المضي قدمًا ووضع وحدة التحكم الدقيقة مع وجود الشق الموجود في الجزء العلوي (أو الدبوس الأول) باتجاه المفتاح. باستخدام الزردية المسطحة ، يمكنك ثني أرجل المتحكم الدقيق للداخل قليلاً ، بحيث تتطابق مع الثقوب الموجودة على PCB.

نظرًا لأنه مناسب تمامًا ، فأنت بحاجة إلى بعض القوة الخاضعة للتحكم لوضع وحدة التحكم الدقيقة فيها. والميزة هي أنها لا تسقط. هذا يعني أنه يمكنك أن تأخذ وقتك وتلحمه من الخلف.

الخطوة 8: اللحام رقم 5: أضف حاملي البطارية (الخطوة الأخيرة)

اللحام رقم 5: أضف حاملي البطارية (الخطوة النهائية)
اللحام رقم 5: أضف حاملي البطارية (الخطوة النهائية)
اللحام رقم 5: أضف حاملي البطارية (الخطوة النهائية)
اللحام رقم 5: أضف حاملي البطارية (الخطوة النهائية)
اللحام رقم 5: أضف حاملي البطارية (الخطوة النهائية)
اللحام رقم 5: أضف حاملي البطارية (الخطوة النهائية)

أخيرًا ، تحتاج إلى إضافة حاملات البطاريات إلى الخلف. لهذا ، يمكنك ببساطة استخدام قلم التدفق وترطيب جميع الوسادات الأربع ثم الحصول على بعض اللحام على المكواة. قم بمحاذاة حامل البطارية بعناية على كلا الوسادين. في كلا طرفي جهات الاتصال يجب أن يكون هناك نفس المقدار من لوحة PCB مرئية. المس لوحة PCB وساق حامل البطارية بالمكواة. سوف يتدفق اللحام تحت الوسادة وفوقها ويثبتها في مكانها كما هو موضح في الصورة. إذا كانت لديك مشاكل مع هذا ، يمكنك إضافة المزيد من التدفق باستخدام القلم.

الخطوة 9: تفليش المحاكي

امض المحاكي
امض المحاكي
امض المحاكي
امض المحاكي
امض المحاكي
امض المحاكي

في أرشيف zip المرفق "kim-uno-firmware.zip" ، يمكنك العثور على الكود المصدري للمحاكي جنبًا إلى جنب مع "main.hex" المترجمة بالفعل والتي يمكنك تحميلها مباشرة إلى وحدة التحكم الدقيقة.

قبل أن تتمكن من استخدامه فعليًا ، تحتاج إلى ضبط أجزاء الصمامات الخاصة بالمتحكم الدقيق ، بحيث يستخدم الساعة الداخلية 8 ميجا هرتز دون تقسيمها إلى النصف. يمكنك إنجاز المهمة باستخدام الأمر التالي:

avrdude -c stk500v1 -b 9600 -v -v -P /dev/cu.usbmodem1421 -p m328p -U lfuse: w: 0xe2: m -U hfuse: w: 0xd9: m -U efuse: w: 0xff: m

إذا كنت لا تعرف avrdude: إنه برنامج لتحميل البرامج إلى متحكم دقيق. يمكنك معرفة المزيد عن ذلك هنا. في الأساس تقوم بتثبيته ثم يصبح جاهزًا للاستخدام. لإعدادك ، قد تحتاج إلى تغيير الوسيطة "-P" إلى منفذ تسلسلي آخر. يرجى التحقق على جهاز الكمبيوتر الخاص بك من المنفذ التسلسلي المستخدم (على سبيل المثال داخل Arduino IDE).

بعد ذلك ، يمكنك وميض البرنامج الثابت على وحدة التحكم الدقيقة باستخدام هذا الأمر:

avrdude -c stk500v1 -b 9600 -v -v -P /dev/cu.usbmodem1421 -p m328p -U فلاش: w: main.hex

مرة أخرى: نفس الشيء ينطبق على "-P" على النحو الوارد أعلاه.

نظرًا لأنني لا أمتلك ISP "محترفًا" (مبرمج داخل النظام) ، فأنا دائمًا أستخدم Arduino UNO الخاص بي (انظر الصورة) والرسم التخطيطي الذي أرفقته ("arduino-isp.ino" ، من Randall Bohn). أعلم أن هناك إصدارًا أحدث ، لكن مع هذا الإصدار لم أواجه أي مشكلة خلال السنوات الخمس الماضية ، لذلك احتفظت به. إنه يعمل فقط. باستخدام التعليق الموجود في رأس الرسم ، تحصل على pinout على Arduino UNO وباستخدام التخطيطي لـ KIM Uno (انظر المرفق) ، يمكنك الحصول على pinout لرأس ISP 1x6 على KIM Uno. الدبوس المربع ، بالقرب من شاشة العرض السبعة ، هو الدبوس 1 (GND). المسامير التالية (بالترتيب الصحيح): RESET ، MOSI ، MISO ، SCK ، VCC. يمكنك توصيل VCC إما بـ 3V3 أو 5V.

إذا لم تقم بإضافة رأس الدبوس 1x6 ، فيمكنك استخدام أسلاك اللوح ووضعها في فتحات التوصيل وزاويةها بإصبعك - تمامًا كما هو موضح في الصورة. يؤدي هذا إلى إجراء اتصال كافٍ لتفليش البرنامج الثابت وتعيين المصاهر. ولكن إذا كنت ترغب في إعداد دائم ، فيجب عليك بالتأكيد إضافة رؤوس 1x6 pin.

لدي جهازان: إصدار إنتاج بدون رؤوس الدبوس وإصدار تطوير به رؤوس دبوس أتركها متصلة وأستخدمها مرارًا وتكرارًا أثناء التطوير. هذا أكثر راحة.

الخطوة 10: انتهى

تم الانتهاء من
تم الانتهاء من
تم الانتهاء من
تم الانتهاء من

لقد انتهيت الآن ويمكنك البدء في كتابة برامج subleq الخاصة بك على الورق ، وتجميعها ثم إدخالها في الذاكرة.

يأتي KIM Uno مع حساب Fibonacci مبرمج مسبقًا يبدأ من موقع الذاكرة 0x0a. يتم تعيينه افتراضيًا على n = 6 لذا يجب أن ينتج عنه قيمة 8. اضغط على "Go" لبدء الحساب.

الخطوة 11: تحليل تصميم ثنائي الفينيل متعدد الكلور

تحليل تصميم ثنائي الفينيل متعدد الكلور
تحليل تصميم ثنائي الفينيل متعدد الكلور
تحليل تصميم ثنائي الفينيل متعدد الكلور
تحليل تصميم ثنائي الفينيل متعدد الكلور

بعد الانتهاء من هذا المشروع ، وجدت بضع نقاط جديرة بالملاحظة ويجب معالجتها في مراجعة جديدة للمجلس:

  • لا تحتوي الشاشة الحريرية ATMega328p على الشق المعتاد حيث يوجد الدبوس الأول. لا تحتوي بصمة DIP-28 حتى على وسادة مربعة حيث يوجد الدبوس الأول. يجب بالتأكيد تحسين هذا باستخدام شاشة حريرية أكثر تفصيلاً لمنع الالتباس
  • لا يحتوي رأس ISP على ملصقات اتصال على الشاشة الحريرية. هذا يجعل من الصعب التعرف على كيفية توصيله بمزود خدمة الإنترنت
  • يمكن تغيير رأس ISP إلى رأس 2x6 مع تخطيط دبوس قياسي لمنع أي ارتباك

بصرف النظر عن تلك النقاط ، أنا سعيد جدًا بالطريقة التي تم بها العمل في المحاولة الأولى.

الخطوة 12: كيفية برمجة SUBLEQ؟

Image
Image
كيفية برمجة SUBLEQ؟
كيفية برمجة SUBLEQ؟
كيفية برمجة SUBLEQ؟
كيفية برمجة SUBLEQ؟

كما ذكرنا في البداية ، فإن البرنامج الثابت الحالي لـ KIM Uno يحاكي كمبيوتر مجموعة تعليمات واحدة (OISC) ويوفر تعليمات subleq لإجراء الحساب.

تشير تعليمة subleq إلى الطرح والفرع إذا كانت أقل من أو تساوي الصفر. في الكود الزائف يبدو هذا كما يلي:

subleq A B C mem [B] = mem [B] - mem [A] ؛ إذا (mem [B] <= 0) goto C ؛

نظرًا لأن KIM Uno يحاكي آلة 8 بت ، فإن جميع الوسائط A و B و C هي قيم 8 بت وبالتالي يمكنها معالجة ذاكرة رئيسية إجمالية تبلغ 256 بايت. من الواضح أن هذا يمكن تمديده ، عن طريق إنشاء قيم متعددة البايت A و B و C. لكن في الوقت الحالي ، دعونا نجعل الأمر بسيطًا.

يحتوي KIM Uno أيضًا على "ملحقات": الشاشة ولوحة المفاتيح. تستخدم بنية ذاكرة معينة لربط تلك الأجهزة الطرفية ، على الرغم من أن خريطة الذاكرة بسيطة للغاية:

  • 0x00 = السجل Z (صفر) ويجب أن يظل صفراً.
  • 0x01 - 0x06 = ستة بايتات تمثل قيمة كل مقطع من مقاطع العرض (من اليمين إلى اليسار). قيمة 0xf - راجع شفرة المصدر (main.c) لمزيد من التفاصيل.
  • 0x07 ، 0x08 ، 0x09 = ثلاثة بايت حيث يمثل كل بايت شاشتين من سبعة مقاطع (من اليمين إلى اليسار). تسمح مواقع الذاكرة هذه ببساطة بعرض نتيجة دون تقسيم النتيجة إلى قضمتين لوضعها في مواقع الذاكرة المكونة من رقم واحد 0x01 - 0x06.
  • 0x0a + = يبدأ البرنامج عند 0x0a. يتم حاليًا تنفيذ مفتاح "Go" من 0x0a الثابت.

باستخدام هذه المعلومات ، يمكن للمرء الآن كتابة برنامج في المجمع وإدخال التعليمات في الذاكرة ثم تنفيذه. نظرًا لوجود تعليمات واحدة فقط ، يتم إدخال الوسيطات (A و B و C) فقط. لذلك بعد ثلاثة مواقع للذاكرة ، تبدأ حجج التعليمات التالية وهكذا دواليك.

مرفق بهذه الخطوة يمكنك العثور على ملف "fibonacci.s" وكذلك صورة لبرنامج مكتوب بخط اليد وهو مثال لتطبيق فيبوناتشي. لكن انتظر: هناك ثلاثة تعليمات مستخدمة - على وجه التحديد ADD و MOV و HLT - وهي ليست ثانوية. "ما هي الصفقة؟ ألم تقل أن هناك تعليمات واحدة فقط ، subleq؟" انت تسأل؟ إنه سهل للغاية: مع subleq يمكن للمرء محاكاة هذه التعليمات بسهولة شديدة:

MOV a ، b - يمكن أن يتكون نسخ البيانات في الموقع من أ إلى ب من:

  1. subleq b ، b ، 2 (التعليمات التالية)
  2. subleq a ، Z ، 3 (التعليمات التالية)
  3. subleq Z ، b ، 4 (التعليمات التالية)
  4. subleq Z ، Z ، على سبيل المثال 5 (التعليمات التالية)

باستخدام ميزة الطرح الخاصة بـ subleq ، والتي تقوم بعمل mem - mem [a] والكتابة فوق mem بالنتيجة ، يتم نسخ القيمة باستخدام السجل الصفري. و "subleq Z ، Z ، …" ببساطة يعيد تعيين سجل الصفر إلى 0 ، بغض النظر عن قيمة Z.

إضافة a ، b - يضيف القيم a + b ويخزن المجموع في b يمكن أن يتكون من:

  1. subleq a ، Z ، 2 (التعليمات التالية)
  2. subleq Z ، b ، 3 (التعليمات التالية)
  3. subleq Z ، Z ، على سبيل المثال 4 (التعليمات التالية)

تحسب هذه التعليمات ببساطة mem - (- mem [a]) وهي mem + mem [a] باستخدام ميزة الطرح أيضًا.

HLT - يوقف وحدة المعالجة المركزية وينهي التنفيذ:

حسب التعريف ، يعرف المحاكي أن وحدة المعالجة المركزية تريد الإنهاء إذا قفزت إلى 0xff (أو -1 إذا تم تسجيلها). لذلك بسيط

سوبليك Z ، Z ، -1

يقوم بالمهمة ويشير للمحاكي إلى أنه يجب إنهاء المحاكاة.

باستخدام هذه التعليمات الثلاثة البسيطة ، يمكن تنفيذ خوارزمية فيبوناتشي وتعمل بشكل جيد. هذا ، لأن OISC يمكنه حساب كل شيء يمكن للكمبيوتر "الحقيقي" حسابه باستخدام التعليمات الفرعية فقط. لكن بالطبع ، هناك العديد من المفاضلات التي يجب إجراؤها - مثل طول الرمز وسرعته. لكنها مع ذلك طريقة رائعة للتعلم والتجربة باستخدام برامج الكمبيوتر وأجهزة الكمبيوتر ذات المستوى المنخفض.

مرفقًا بهذه الخطوة ، يمكنك أيضًا العثور على أرشيف مضغوط "kim_uno_tools.zip". يحتوي على بعض المجمعات الأساسية والمحاكي لـ KIM Uno. لقد تم كتابتها في NodeJS - تأكد من تثبيتها.

تجميع البرامج

إذا ألقيت نظرة على "fibonacci / fibonacci.s" ستجد أنه الكود المصدري لتطبيق فيبوناتشي الذي تمت مناقشته. لتجميعه وإخراج برنامج منه ، يمكن لـ KIM Uno تشغيله ، أدخل الأمر التالي (في جذر أرشيف "kim_uno_tools.zip" المستخرج):

تجميع العقدة. js فيبوناتشي / فيبوناكسي

وسوف يقوم إما بطباعة خطأ إذا قمت بخطأ ما أو تسرب البرنامج الناتج. لحفظه ، يمكنك نسخ الإخراج وحفظه في ملف أو ببساطة تشغيل هذا الأمر:

عقدة تجميع.js فيبوناتشي / فيبوناكسي> yourfile.h

يتم تنسيق الإخراج بطريقة يمكن تضمينها مباشرة في برنامج KIM Uno الثابت كملف رأس C ، ولكن يمكن للمحاكي أيضًا استخدامه للمحاكاة. ببساطة أدخل:

العقدة sim.js yourfile.h

وسيتم تقديمك بنتيجة المحاكاة والإخراج المتوقع من KIM Uno على الشاشة.

كانت هذه مقدمة موجزة جدًا لهذه الأدوات ؛ أنصحك باللعب معهم وإلقاء نظرة على طريقة عملهم. بهذه الطريقة تحصل على معرفة عميقة وتتعلم مبادئ العمل وراء وحدات المعالجة المركزية والتعليمات والمجمعات والمحاكيات ؛-)

الخطوة 13: Outlook

الآفاق
الآفاق
الآفاق
الآفاق
الآفاق
الآفاق

تهانينا

إذا قرأت هذا ، فربما تكون قد مررت بهذه التعليمات بالكامل وقمت ببناء KIM Uno الخاص بك. هذا حقا لطيف.

لكن الرحلة لا تنتهي هنا - فهناك عدد لا حصر له من الخيارات التي يمكنك من خلالها تعديل KIM Uno وتخصيصه وفقًا لاحتياجاتك ورغباتك.

على سبيل المثال ، يمكن تجهيز KIM Uno بمحاكي "حقيقي" لوحدة المعالجة المركزية الرجعية والذي قد يحاكي MOS 6502 الشهير أو Intel 8085 أو 8086 أو 8088. ثم سيذهب إلى رؤيتي الأولية ، قبل أن أتعلم عن OISCs.

ولكن هناك استخدامات أخرى محتملة ، نظرًا لأن تصميم الأجهزة عام جدًا. يمكن استخدام KIM Uno كـ …

  • … جهاز تحكم عن بعد ، على سبيل المثال لأجهزة CNC أو الأجهزة الأخرى. ربما يكون سلكيًا أو مزودًا بصمام ثنائي IR أو أي مرسل لاسلكي آخر
  • … آلة حاسبة للجيب (سداسية عشرية). يمكن تكييف البرنامج الثابت بسهولة شديدة ولا يحتاج تصميم اللوحة إلى تغيير كبير. ربما يمكن تكييف الشاشة الحريرية مع العمليات الحسابية ويمكن إزالة الفجوة بين المقاطع. بصرف النظر عن هذا ، فهي جاهزة بالفعل لهذا التحول

آمل أن تكون قد استمتعت كثيرًا بالمتابعة وآمل أن تبني KIM Uno كما كنت قد صممته وأخطط له. وإذا قمت بتمديده أو تعديله - فيرجى إبلاغي بذلك. هتافات!

مسابقة PCB
مسابقة PCB
مسابقة PCB
مسابقة PCB

الوصيف في مسابقة PCB

موصى به: