तीन-बटन प्रोग्रामिंग और चार स्विच के साथ वर्चुअल 4-बिट माइक्रोकंट्रोलर



प्रस्तावित डिवाइस एक ATmega4809 माइक्रोकंट्रोलर पर एक अमूर्त 4-बिट माइक्रोकंट्रोलर के साथ 256 बाइट्स के एड्रेस स्पेस के साथ है, जिसे तीन बटन और चार स्विच के साथ प्रोग्राम किया जा सकता है।

पता स्थान को 16 निर्देशों के साथ 16 पृष्ठों में विभाजित किया गया है। निर्देश की लंबाई 8 बिट्स है, जिनमें से चार सबसे महत्वपूर्ण कमांड हैं, और चार निचले डेटा हैं:



प्रोग्रामिंग मोड में प्रवेश करने के लिए, बटन 2 दबाए रखें, रीसेट बटन दबाएं, इसे जारी करें, इसके बाद बटन को छोड़ दें। प्रोग्रामिंग मोड में, क्रमिक रूप से रैम में निर्देशों को बटन 2 से सॉर्ट करें। अगले निर्देश पर जाने पर, एल ई डी एक विभाजित दूसरे के लिए वर्तमान पता दिखाते हैं। बटन 1 आपको वर्तमान निर्देश के भाग के रूप में कमांड और पते में परिवर्तन करने की अनुमति देता है। बटन 2 के साथ एक नए पते पर जाते समय, पिछले पते का निर्देश EEPROM में दर्ज किया जाता है। प्रोग्राम टाइप करने के बाद, आपको रीसेट बटन को दबाने की आवश्यकता है, और प्रोग्रामिंग मोड से प्रोग्राम निष्पादन मोड में संक्रमण होगा।

आदेशों की सूची:

0x0 - doutB पोर्ट में निरंतर मान लोड करें
0x1 - doutA पोर्ट में समान
0x2 - विराम
0x3 - रिश्तेदार बिना शर्त कूद वापस
0x4 - चर ए में लगातार मूल्य लोड करें
0x5 - चर ए के मूल्य के साथ कुछ लोड करें
0x6 - चर A में किसी चीज़ का मान लोड करें
0x7 - चर ए (और बी) के साथ अंकगणितीय और तार्किक संचालन करें
0x8 - पूर्ण बिना शर्त कूद अनुदेश के लिए पते के उच्च कुतरना सेट करें
0x9 - निर्दिष्ट पते पर एक पूर्ण बिना शर्त कूद करें
0xA, 0xB - लूप के लिए कार्य करता है: हर बार कमांड निष्पादित होने पर, यदि चर C (या D) शून्य से अधिक है, दिए गए पते पर एक पूर्ण बिना शर्त संक्रमण होता है, तो चर C (या D) का मान घट जाता है
0xC - यदि तर्क एक तार्किक इकाई है, तो निम्नलिखित कथन को छोड़ दें
0xD - निर्दिष्ट पते पर फ़ंक्शन को कॉल करें
0xE - कॉल किए गए फ़ंक्शन से लौटते हैं
0xF - वर्चुअल 4-बिट रैम के लिए पता सेट करें, इस पते पर संग्रहीत मूल्य अनुदेश 0x6E के साथ पढ़ा जा सकता है और अनुदेश 0x50 के साथ लिखा जा सकता है।

उदाहरण 1 - फ्लैशर:

   0 1f      doutA 1 28  500  2 10      doutB 3 28  500  4 34     -4  

उदाहरण 2 - बाइनरी काउंटर:


    0 5B DoutB = A 1 59 PWM1 = A 2 71 A++ 3 28  500  4 34     -4  

उदाहरण 3 - समायोज्य गति के साथ फ्लैशर (सबरूटीन के साथ):


     : 0 10 DoutA = 0x0 1 d5   myWait 2 1f DoutA = 0xf 3 d5   myWait 4 34     -4   myWait: 5 64 A = Din 6 52 C = A 7 25  50  8 a7 for(C > 0; C--) jmp 7 9 e0  

ड्राइविंग:







पुनरावृत्ति के लिए सभी आवश्यक फाइलें (बोर्ड, फर्मवेयर, आदि) - मूल के संदर्भ में। जर्मन टीपीएस सिम्युलेटर, क्षमताओं के करीब, डिजाइन के लिए एक प्रेरणा के रूप में सेवा की।

Source: https://habr.com/ru/post/hi451670/


All Articles