विषयसूची:

AT89C2051 के साथ 8051 प्रोग्रामिंग का परिचय (अतिथि अभिनीत: Arduino): 7 कदम (चित्रों के साथ)
AT89C2051 के साथ 8051 प्रोग्रामिंग का परिचय (अतिथि अभिनीत: Arduino): 7 कदम (चित्रों के साथ)

वीडियो: AT89C2051 के साथ 8051 प्रोग्रामिंग का परिचय (अतिथि अभिनीत: Arduino): 7 कदम (चित्रों के साथ)

वीडियो: AT89C2051 के साथ 8051 प्रोग्रामिंग का परिचय (अतिथि अभिनीत: Arduino): 7 कदम (चित्रों के साथ)
वीडियो: Microprocessor & Microcontroller EE503_DAY 22 Ramgarh Engg. College. 2024, नवंबर
Anonim
AT89C2051 के साथ 8051 प्रोग्रामिंग का परिचय (अतिथि अभिनीत: Arduino)
AT89C2051 के साथ 8051 प्रोग्रामिंग का परिचय (अतिथि अभिनीत: Arduino)

8051 (एमसीएस -51 के रूप में भी जाना जाता है) 80 के दशक से एमसीयू डिजाइन है जो आज भी लोकप्रिय है। आधुनिक 8051-संगत माइक्रोकंट्रोलर कई विक्रेताओं से, सभी आकारों और आकारों में, और बाह्य उपकरणों की एक विस्तृत श्रृंखला के साथ उपलब्ध हैं। इस निर्देश में हम Atmel के AT89C2051 MCU को देखेंगे।

AT89C2051 एक छोटा (2Kbyte Flash, 128byte RAM), सस्ता (~$1.40 प्रति चिप) माइक्रोकंट्रोलर है। विशेषताएं:

  • 2.7-6V ऑपरेशन
  • 15 आई/ओ लाइनें
  • 2 टाइमर (16 बिट)
  • आंतरिक और बाहरी व्यवधान
  • यूएआरटी
  • ऑन-चिप एनालॉग तुलनित्र
  • 24MHz घड़ी के साथ 2MIPS तक

चरण 1: आवश्यकताएँ

आवश्यकताएं
आवश्यकताएं

आवश्यकताएं:

  • Linux PC (आवश्यक सॉफ़्टवेयर: Arduino IDE, git, make, sdcc)
  • अरुडिनो यूएनओ
  • AT89C2051 चिप (DIP20 पैकेज)
  • 20-पिन ZIF सॉकेट
  • ऑप्टोकॉप्लर (अधिमानतः MOSFET- आउटपुट)
  • Arduino प्रोटोटाइप शील्ड
  • 12 वी बिजली की आपूर्ति
  • 5 वी बिजली की आपूर्ति
  • 16 मेगाहर्ट्ज क्रिस्टल ऑसीलेटर
  • 2x 30pF संधारित्र
  • 100nF संधारित्र
  • डायोड (उदा: 1N400X)
  • प्रतिरोधक (1K, 3K3)
  • protoboard
  • जम्परों
  • तांबे का तार

आवश्यक सॉफ़्टवेयर की जाँच करें:

कौन सा python3

जो कौन सा sdcc बनाते हैं जो git

चरण 2: प्रोग्रामर का निर्माण

प्रोग्रामर का निर्माण
प्रोग्रामर का निर्माण
प्रोग्रामर का निर्माण
प्रोग्रामर का निर्माण
प्रोग्रामर का निर्माण
प्रोग्रामर का निर्माण

यह खंड संक्षिप्त होगा, क्योंकि मैंने कुछ समय पहले अपना प्रोग्रामिंग शील्ड बनाया था। मैंने इकट्ठे बोर्ड के योजनाबद्ध और चित्र संलग्न किए हैं। योजनाबद्ध का पीडीएफ भंडार में पाया जा सकता है।

आपको प्रोग्रामर बोर्ड को प्रोग्राम करना होगा:

1. रिपॉजिटरी को क्लोन करें।

गिट क्लोन

2. Arduino IDE में AT89C2051_programmer/AT89_prog/AT89_prog.ino फ़ाइल खोलें।

3. Arduino IDE से स्केच बनाएं और अपलोड करें।

चरण 3: प्रोग्रामर सॉफ़्टवेयर स्थापित करना

प्रोग्रामर सॉफ्टवेयर स्थापित करना
प्रोग्रामर सॉफ्टवेयर स्थापित करना
प्रोग्रामर सॉफ्टवेयर स्थापित करना
प्रोग्रामर सॉफ्टवेयर स्थापित करना

1. एक अजगर आभासी वातावरण बनाएँ।

python3 -एम वेनव वेनव

. वेनव/बिन/सक्रिय

2. 89ओवरलॉर्ड पर स्थापित करें। at89overlord मेरे द्वारा लिखित AT89C2051 चिप के लिए एक ओपन सोर्स प्रोग्रामर है। इसका सोर्स कोड यहां पाया जा सकता है।

पिप इंस्टाल at89overlord

3. स्थापना सत्यापित करें।

at89overlord -h

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

चिप प्रोग्रामिंग
चिप प्रोग्रामिंग
चिप प्रोग्रामिंग
चिप प्रोग्रामिंग
चिप प्रोग्रामिंग
चिप प्रोग्रामिंग
चिप प्रोग्रामिंग
चिप प्रोग्रामिंग

1. एक साधारण ब्लिंक प्रोजेक्ट क्लोन करें।

सीडी ~

गिट क्लोन https://github.com/piotrb5e3/hello-8051.git cd hello-8051/

2. एप्लिकेशन बनाएं।

बनाना

3. Arduino को PC से कनेक्ट करें, 12V सप्लाई कनेक्ट करें, AT89C2051 चिप को ZIF सॉकेट में रखें।

4. Arduino के सीरियल पोर्ट का पता लगाएँ।

एलएस /देव/ट्टी*

5. चिप में निर्मित IntelHex फ़ाइल अपलोड करें। यदि आपके Arduino का पोर्ट /dev/ttyACM0 से अलग है, तो आपको -p कमांड लाइन पैरामीटर के साथ सही मान पास करना होगा।

at89overlord -f./hello.ihx

चरण 5: विधानसभा

सभा
सभा
सभा
सभा
सभा
सभा

योजनाबद्ध के अनुसार सर्किट को इकट्ठा करें। एक पीडीएफ संस्करण भंडार में पाया जा सकता है।

आपको हरे रंग की एलईडी फ्लैश को लगभग 0.5 हर्ट्ज की आवृत्ति के साथ देखना चाहिए।

चरण 6: कोड स्पष्टीकरण

कोड स्पष्टीकरण
कोड स्पष्टीकरण

#शामिल

#शामिल

हम sdcc से AT89X051 हेडर शामिल करके शुरू करते हैं। इसमें रजिस्टरों के साथ बातचीत करने के लिए मैक्रोज़ शामिल हैं जैसे कि वे चर थे। हम stdint.h भी शामिल करते हैं जिसमें uint8_t और uint16_t पूर्णांक प्रकारों की परिभाषाएँ शामिल हैं।

// मान लें कि थरथरानवाला 16MHz है

#परिभाषित करें INTERRUPTS_PER_SECOND 5208

Timer0 ओवरफ्लो होने पर व्यवधान उत्पन्न होता है। इसे एकल 8 बिट टाइमर के रूप में कॉन्फ़िगर किया गया है, इसलिए यह प्रत्येक 2^8 प्रोसेसर चक्र में होता है। एक प्रोसेसर चक्र में 12 घड़ी चक्र लगते हैं, और इस प्रकार हम 16000000/12/2^8 = 5208.33333 पर पहुंचते हैं।

अस्थिर uint8_t led_state = 0;

अस्थिर uint16_t टाइमर_काउंटर = INTERRUPTS_PER_SECOND;

हम नेतृत्व वाले राज्य नियंत्रण की घोषणा करते हैं और काउंटर चर को बाधित करते हैं।

शून्य टाइमर0_आईएसआर (शून्य) _इंटरप्ट (1) {

टाइमर_काउंटर--; अगर (टाइमर_काउंटर == 0) {led_state =!led_state; टाइमर_काउंटर = INTERRUPTS_PER_SECOND; } }

हर बार Timer0 ओवरफ्लो होने पर काउंटर कम हो जाता है। यदि यह शून्य के बराबर है तो यह रीसेट हो जाता है, और नेतृत्व वाली स्थिति बदल जाती है। यह प्रति सेकंड लगभग एक बार होता है, जिसके परिणामस्वरूप ~ 0.5Hz एलईडी ब्लिंकिंग आवृत्ति होती है।

मुख्य प्रवेश बिंदु() {

टीएमओडी = 0x3; // टाइमर मोड - 8 बिट, कोई प्रीस्कूलर नहीं। फ्रीक = ओएससीएफआरईक्यू/12/2^8 टीएल0 = 0; // स्पष्ट काउंटर TH0 = 0; // क्लियर रजिस्टर TR0 = 1; // चलने के लिए टाइमर सेट करें। ET0 = 1; // इंटरप्ट सेट करें। ईए = 1; // वैश्विक रुकावट सेट करें। जबकि(1) { अगर (led_state) {P1 = 0xFF; } और {P1 = 0x00; } } }

हम टाइमर मॉड्यूल को कॉन्फ़िगर करते हैं और नेतृत्व वाले राज्य नियंत्रण चर में परिवर्तन की प्रतीक्षा करते हैं। टीएमओडी टाइमर मोड नियंत्रण रजिस्टर है। TL0 और TH0 Timer0 नियंत्रण रजिस्टर हैं। ET0 टाइमर कंट्रोल रजिस्टर (TCON) में इनेबल-टाइमर0 बिट है। TR0 और EA इंटरप्ट इनेबल रजिस्टर (IE) में बिट्स हैं।

चरण 7: अतिरिक्त संसाधन

  • AT89C2051 डेटाशीट:
  • स्मॉल डिवाइस सी कंपाइलर (एसडीसीसी):
  • 8051 संसाधन:
  • AT89C2051 प्रोग्रामर रिपॉजिटरी:
  • हैलो-८०५१ भंडार:

सिफारिश की: