आपने कहा "छोटे माइक्रोकंट्रोलर और कोई इंटरफेस नहीं था, कोई कंप्यूटर नहीं, कोई डिबगर, कंपाइलर या असेंबलर नहीं था।" वैसे आप कंप्यूटर, डिबगर, कंपाइलर या असेंबलर के बिना प्राप्त कर सकते हैं, लेकिन कार्यक्रम को लोड करने के लिए आपके पास माइक्रोकंट्रोलर के साथ कनेक्ट करने के लिए कुछ प्रकार का इंटरफ़ेस होना चाहिए।
सबसे पहले, सी जैसी किसी भी उच्च स्तरीय भाषाओं के बारे में भूल जाएं। फिर सबसे आसान तरीका यह है कि आप अपने प्रोग्राम को असेंबली भाषा में लिखें, लेकिन मशीन कोड में अनुवाद करने के लिए कोडांतरक का उपयोग न करें । इसके बजाय, प्रोग्रामिंग मैनुअल में विधानसभा निर्देशों में से प्रत्येक को देखें, उनके समतुल्य हेक्स कोडिंग ढूंढें, और नीचे लिखें।
आपको अपने स्वयं के चर आवंटित करने होंगे, ताकि आप निर्देशों के ऑपरेंड भाग में उपयुक्त पते भर सकें। ढेर और ढेर का उपयोग करने के बारे में भी भूल जाओ, बहुत अधिक काम। जब किया जाता है, तो आपके पास एक मशीन प्रोग्राम होगा जिसे सीधे माइक्रोकंट्रोलर की फ्लैश मेमोरी में लोड किया जा सकता है - कोई लिंकर की भी आवश्यकता नहीं है।
लगभग सभी माइक्रोकंट्रोलर पर बाहरी पते और डेटा की कमी के कारण (क्योंकि वे बहुत अधिक पिन लेंगे जो I / O पोर्ट और बाह्य उपकरणों द्वारा आवश्यक हैं), वस्तुतः सभी माइक्रोकंट्रोलर को इस तरह एक विशेष इंटरफ़ेस के माध्यम से प्रोग्राम किया जाता है:
आम तौर पर बाईं ओर "प्रोग्रामर" एक पीसी से जुड़ा होगा, जो एक कंपाइलर / लिंकर द्वारा उत्पन्न मशीन फ़ाइल डाउनलोड करेगा।
हालाँकि अगर प्रोग्रामर के पास एक कीबोर्ड है, जैसे नीचे दिया गया है:
फिर एक प्रोग्रामर में मैन्युअल रूप से उत्पन्न प्रोग्राम के लिए हेक्स कोड दर्ज कर सकता है, और एक कंपाइलर, लिंकर या पीसी की आवश्यकता के बिना डिवाइस को प्रोग्राम कर सकता है जो आप के बारे में पूछताछ कर रहे थे। (कीबोर्ड का उपयोग हेक्स फ़ाइलों को संपादित करने और चेकसम उत्पन्न करने के लिए भी किया जाता है।)
बहुत कम प्रोग्रामर के पास इस तरह कीबोर्ड होते हैं। यह एक शौक़ीन व्यक्ति के लिए उपयुक्त नहीं होगा क्योंकि इसकी कीमत शायद कुछ हज़ार डॉलर है।
यह विशेष रूप से प्रोग्रामर प्रोग्राम भागों को बोर्ड पर डालने से पहले; इंटरफेस और सॉकेट कई PIC और Atmel AVR के लिए भी उपलब्ध हैं।