एंबेडेड सी प्रोग्रामिंग ट्यूटोरियल केइल लैंग्वेज के साथ

समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें





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

एंबेडेड सिस्टम प्रोग्रामिंग

एंबेडेड सिस्टम प्रोग्रामिंग



लिखा गया सी कोड अधिक विश्वसनीय, पोर्टेबल और मापनीय है और वास्तव में, समझने में बहुत आसान है। पहला और सबसे महत्वपूर्ण उपकरण एम्बेडेड सॉफ्टवेयर है जो एक एम्बेडेड सिस्टम के संचालन का फैसला करता है। एंबेडेड सी प्रोग्रामिंग भाषा सबसे अधिक बार माइक्रोकंट्रोलर प्रोग्रामिंग के लिए उपयोग की जाती है।


एंबेडेड सी प्रोग्रामिंग ट्यूटोरियल (8051)

प्रोग्राम लिखने के लिए एम्बेडेड डिजाइनरों को विशेष प्रोसेसर या नियंत्रकों के हार्डवेयर पर पर्याप्त ज्ञान होना चाहिए क्योंकि एम्बेडेड सी प्रोग्रामिंग एक पूर्ण हार्डवेयर संबंधित प्रोग्रामिंग तकनीक है।



प्रोग्रामिंग ट्यूटोरियल

प्रोग्रामिंग ट्यूटोरियल

इससे पहले, विधानसभा स्तर की प्रोग्रामिंग का उपयोग करके कई एम्बेडेड एप्लिकेशन विकसित किए गए थे। हालांकि, उन्होंने सी, कोबोल और पास्कल जैसी विभिन्न उच्च-स्तरीय भाषाओं के आगमन के साथ इस समस्या को दूर करने के लिए पोर्टेबिलिटी प्रदान नहीं की। हालाँकि, यह सी भाषा थी जिसे व्यापक स्वीकृति मिली एम्बेडेड सिस्टम अनुप्रयोग विकास , और ऐसा करना जारी है।

अंतःस्थापित प्रणाली

एम्बेडेड सिस्टम को एम्बेडेड सी प्रोग्रामिंग सॉफ्टवेयर और हार्डवेयर भाग के संयोजन के रूप में परिभाषित किया गया है, जिसमें प्रमुख रूप से माइक्रोकंट्रोलर शामिल हैं और इसका उद्देश्य विशिष्ट कार्य करना है। हमारे दैनिक जीवन में इस तरह के एम्बेडेड सिस्टम का उपयोग किया जा रहा है जैसे कि वाशिंग मशीन और वीडियो रिकॉर्डर, रेफ्रिजरेटर और इतने पर। एम्बेडेड सिस्टम पहली बार 8051 माइक्रोकंट्रोलर्स द्वारा पेश किया गया था।

अंतःस्थापित प्रणाली

अंतःस्थापित प्रणाली

8051 माइक्रोकंट्रोलर का परिचय

8051 माइक्रोकंट्रोलर एक बुनियादी माइक्रोकंट्रोलर है, इसे पहली बार 1970 के बाद से 'इंटेल कॉर्पोरेशन' द्वारा पेश किया गया था। यह 8086 प्रोसेसर आर्किटेक्चर द्वारा विकसित किया गया है। 8051 माइक्रोकंट्रोलर का एक परिवार है, जिसे विभिन्न निर्माताओं जैसे फिलिप्स, एटमेल, डॉल्स और इतने पर विकसित किया गया है। 8051 माइक्रोकंट्रोलर छोटे बच्चों के खिलौनों से लेकर बड़े ऑटोमोटिव सिस्टम तक कई एम्बेडेड उत्पादों का उपयोग किया गया है।


8051 माइक्रोकंट्रोलर

8051 माइक्रोकंट्रोलर

8051 माइक्रोकंट्रोलर 8-बिट है ‘CISC की वास्तुकला । इसमें एक एकीकृत चिप में निर्मित यादें, धारावाहिक संचार, व्यवधान, इनपुट / आउटपुट पोर्ट और टाइमर / काउंटर शामिल हैं, जो परिधीय उपकरणों को नियंत्रित करने के लिए प्रोग्राम किया गया है जो इसके साथ हस्तक्षेप करते हैं। कार्यक्रम को माइक्रोकंट्रोलर की रैम में संग्रहीत किया जाता है लेकिन प्रोग्राम लिखने से पहले हमें रैम के बारे में पता होना चाहिए संगठन माइक्रोकंट्रोलर की।

एंबेडेड सिस्टम प्रोग्रामिंग: मूल बातें घोषणा

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

#शामिल

एंबेडेड सी प्रोग्रामिंग डेवलपमेंट

एंबेडेड सी प्रोग्रामिंग डेवलपमेंट

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

#शामिल

एंबेडेड सी अतिरिक्त कीवर्ड

  • sbit
  • बिट
  • एसएफआर
  • परिवर्तनशील
  • मैक्रोज़ परिभाषित करते हैं

“Sbit” का उपयोग माइक्रोकंट्रोलर के सिंगल पिन को घोषित करने के लिए किया जाता है। उदाहरण के लिए, एलईडी P0.1 पिन से जुड़ा है, सीधे पोर्ट पिन को मूल्य भेजने की अनुशंसा नहीं की जाती है, पहले, हमें दूसरे चर के साथ पिन को घोषित करना होगा, उसके बाद हम कार्यक्रम में कहीं भी उपयोग कर सकते हैं।

सिंटैक्स: s = a = P0 ^ 1 // संबंधित पिन को वेरिएबल // के साथ घोषित करता है
a = 0x01 // पोर्ट पिन पर मान भेजें //

'बिट' का उपयोग चर की स्थिति की जांच के लिए किया जाता है।

सिंटेक्स: बिट c // बिट वेरिएंट को घोषित करता है //
c = a // एक मान c चर // सौंपा गया है
अगर (c == 1) // स्थिति सही है या गलत // चेक करें

{{
… ..
……
}

“SFR” कीवर्ड का उपयोग SFR रजिस्टरों को दूसरे नाम से एक्सेस करने के लिए किया जाता है। SFR रजिस्टर एक के रूप में परिभाषित किया गया है विशेष समारोह रजिस्टर , इसमें पते को इंगित करके सभी परिधीय संबंधित रजिस्टर शामिल हैं। SFR रजिस्टर SFR कीवर्ड द्वारा घोषित किया जाता है। SFR कीवर्ड बड़े अक्षरों में होना चाहिए।

सिंटैक्स: SFR पोर्ट = 0x00 // 0x00 एक पोर्ट 0 एड्रेस है जो पोर्ट चर // द्वारा घोषित किया जाता है
पोर्ट = 0x01 // तब पोर्ट 0 के लिए मान भेजें //
देरी ()
port = 0x00
देरी ()

एम्बेडेड सिस्टम डेवलपमेंट में 'वाष्पशील' कीवर्ड सबसे महत्वपूर्ण है। अस्थिर कीवर्ड मान के साथ घोषित चर को अप्रत्याशित रूप से नहीं बदला जा सकता है। इसका उपयोग मेमोरी-मैपेड परिधीय रजिस्टरों, ISRs द्वारा संशोधित वैश्विक चर में किया जा सकता है। डेटा ट्रांसमिट करने और प्राप्त करने के लिए अस्थिर कीवर्ड का उपयोग किए बिना, कोड त्रुटि या एक अनुकूलन त्रुटि होगी।

सिंटेक्स: वाष्पशील इंट के

मैक्रो एक ऐसा नाम है जिसका उपयोग बयानों के ब्लॉक को पूर्व-प्रोसेसर निर्देश के रूप में घोषित करने के लिए किया जाता है। जब भी नाम का उपयोग किया जाता है, तो इसे मैक्रो की सामग्री से बदल दिया जाता है। मैक्रोस #define का प्रतिनिधित्व करते हैं। पूरे पोर्ट पिन को मैक्रोज़ द्वारा परिभाषित किया गया है।

Syntax: #define dat Po // पूरा पोर्ट एक वेरिएबल // द्वारा घोषित किया जाता है।
डेटा = 0x01 // डेटा पोर्ट 0 पर भेजें //

बेसिक एंबेडेड सी कार्यक्रम

माइक्रोकंट्रोलर प्रोग्रामिंग प्रत्येक के लिए अलग होगा ऑपरेटिंग सिस्टम का प्रकार । हालांकि कई ऑपरेटिंग सिस्टम मौजूद हैं, जैसे कि लिनक्स, विंडोज, आरटीओएस और इतने पर। हालांकि, एम्बेडेड सिस्टम डेवलपमेंट के लिए RTOS के कई फायदे हैं। यह लेख 8051 माइक्रोकंट्रोलर का उपयोग करके एम्बेडेड सी प्रोग्रामिंग विकसित करने के लिए बुनियादी एम्बेडेड सी प्रोग्रामिंग पर चर्चा करता है।

एंबेडेड सी प्रोग्रामिंग कदम

एंबेडेड सी प्रोग्रामिंग कदम

  • 8051 माइक्रोकंट्रोलर के साथ एलईडी ब्लिंकिंग
  • 8051 माइक्रोकंट्रोलर का उपयोग करके 7-सेगमेंट डिस्प्ले पर नंबर प्रदर्शित करना
  • 8051 माइक्रोकंट्रोलर का उपयोग कर टाइमर / काउंटर की गणना और कार्यक्रम
  • सीरियल संचार गणना और 8051 माइक्रोकंट्रोलर का उपयोग करके कार्यक्रम
  • 8051 माइक्रोकंट्रोलर का उपयोग कर बाधित कार्यक्रम
  • 8051 माइक्रोकंट्रोलर का उपयोग करते हुए कीपैड प्रोग्रामिंग
  • 8051 माइक्रोकंट्रोलर के साथ एलसीडी प्रोग्रामिंग

8051 माइक्रोकंट्रोलर का उपयोग करके एलईडी ब्लिंकिंग

एलईडी एक अर्धचालक उपकरण है जिसका उपयोग कई अनुप्रयोगों में किया जाता है, ज्यादातर संकेत प्रयोजन के लिए। यह विभिन्न चरणों में परिणामों की वैधता की जांच करने के लिए परीक्षण के दौरान संकेतक के रूप में अनुप्रयोगों की एक विशाल श्रृंखला पा रहा है। वे बहुत सस्ते और आसानी से विभिन्न प्रकार के आकार, रंगों और आकारों में उपलब्ध हैं। एल ई डी डिजाइन करने के लिए उपयोग किया जाता है संदेश डिस्प्ले बोर्ड और ट्रैफिक कंट्रोल सिग्नल लाइट्स आदि यहाँ एल ई डी को 8051 माइक्रोकंट्रोलर्स के PORT0 के साथ इंटरफेर किया गया है।

8051 माइक्रोकंट्रोलर का उपयोग करके एलईडी ब्लिंकिंग

8051 माइक्रोकंट्रोलर का उपयोग करके एलईडी ब्लिंकिंग

1. 01010101
10101010

#include // हैडर फ़ाइल //
शून्य मुख्य () // कार्यक्रम निष्पादन स्टेट पॉइंट //
{{
अहस्ताक्षरित int i // डेटा प्रकार //
जबकि (1) // लगातार लूप के लिए //
{{
P0 = 0x55 // पोर्ट 0 पर हेक्सा मान भेजें //
for (i = 0i)<30000i++) //normal delay//
P0 = 0x3AA // पोर्ट 0 के लिए हेक्सा मान भेजें //
for (i = 0i)<30000i++) //normal delay//
}
}

2. 00000001

00000010

00000100 रु

10,000,000 रु

#शामिल

शून्य मुख्य ()

{{

अहस्ताक्षरित i

अहस्ताक्षरित चार जे, बी

जबकि (1)

{{

P0 = 0x01

बी = पी ०

के लिए (j-0j<3000j++)

for (j = 0j<8j++)

{{

बी = बी<<1

पु ० = बी

के लिए (j-0j<3000j++)

}

}

}

3. 00001111

11110000 रु

#शामिल

शून्य मुख्य ()

{{

अहस्ताक्षरित i

जबकि (1)

{{

P0 = 0x0F

के लिए (j-0j<3000j++)

P0 = 0xF0

के लिए (j-0j<3000j++)

}

}

4. 00000001

00000011

00000111 है

11111111

#शामिल

शून्य मुख्य ()

{{

अहस्ताक्षरित i

अहस्ताक्षरित चार जे, बी

जबकि (1)

{{

P0 = 0x01

बी = पी ०

के लिए (j-0j<3000j++)

for (j = 0j<8j++)

0x01

पु ० = बी

के लिए (j-0j<3000j++)

}

}

8051 माइक्रोकंट्रोलर का उपयोग करके 7-सेगमेंट डिस्प्ले पर नंबर प्रदर्शित करना

7-खंड प्रदर्शित करता है बुनियादी इलेक्ट्रॉनिक डिस्प्ले है, जो संख्यात्मक सूचनाओं को प्रदर्शित करने के लिए कई प्रणालियों में उपयोग किया जाता है। इसमें आठ एल ई डी शामिल हैं जो क्रमिक तरीके से जुड़े हुए हैं ताकि 0 से 9 तक अंकों को प्रदर्शित किया जा सके, जब एल ई डी के उचित संयोजनों को चालू किया जाए। वे एक समय में केवल एक अंक प्रदर्शित कर सकते हैं।

8051 माइक्रोकंट्रोलर का उपयोग करके 7-सेगमेंट डिस्प्ले पर नंबर प्रदर्शित करना

8051 माइक्रोकंट्रोलर का उपयोग करके 7-सेगमेंट डिस्प्ले पर नंबर प्रदर्शित करना

1. चार 7 डिसप्ले डिस्प्ले पर नंबर फॉर्म ‘0 से F 'प्रदर्शित करने के लिए WAP?

#शामिल
sbit a = P3 ^ 0
sbit b = P3 ^ 1
sbit c = P3 ^ 2
sbit d = P3 ^ 3
शून्य मुख्य ()
{{
अहस्ताक्षरित n [10] = {0 × 40,0xF9,0 × 24,0 × 30,0 × 19,0 × 12,0 × 02,0xF8,0xE00,0 × 10}
आप को अहस्ताक्षरित, जे
a = b = c = d = 1
जबकि (1)
{{
for (i = 0i)<10i++)
{{
P2 = n [i]
for (j = 0j<60000j++)
}
}
}

2. 7 नंबर डिस्प्ले पर '00 से 10 'तक की संख्या प्रदर्शित करने के लिए WAP?

#शामिल
sbit a = P3 ^ 0
sbit b = P3 ^ 1
शून्य प्रदर्शन 1 ()
शून्य प्रदर्शन 2 ()
शून्य देरी ()
शून्य मुख्य ()
{{
अहस्ताक्षरित n [10] = {0 × 40,0xF9,0 × 24,0 × 30,0 × 19,0 × 12,0 × 02,0xF8,0xE00,0 × 10}
आप को अहस्ताक्षरित, जे
ds1 = ds2 = 0
जबकि (1)
{{
for (i = 0, i)<20i++)
प्रदर्शन 1 ()
डिस्प्ले 2 ()
}
}
शून्य प्रदर्शन 1 ()
{{
a = १
बी = ०
P2 = s [ds1]
देरी ()
a = १
बी = ०
P2 = s [ds1]
देरी ()
}
शून्य प्रदर्शन 2 ()
{{
ds1 ++
अगर (ds1> = 10)
{{
ds1 = 0
ds2 ++
अगर (ds2> = 10)
{{
ds1 = ds2 = 0
}
}
}
शून्य देरी ()
{{
अहस्ताक्षरित कश्मीर
for (k = 0k)<30000k++)
}

टाइमर / काउंटर गणना और 8051 माइक्रोकंट्रोलर का उपयोग कर कार्यक्रम

देरी सॉफ्टवेयर अनुप्रयोग विकास में महत्वपूर्ण कारकों में से एक है। हालांकि, सामान्य देरी टाइमर की देरी को लागू करने के लिए इस समस्या को दूर करने के लिए कीमती परिणाम नहीं देगी। टाइमर और काउंटर माइक्रोकंट्रोलर के हार्डवेयर घटक होते हैं, जिनका उपयोग गणना दालों के साथ कीमती समय देरी प्रदान करने के लिए कई अनुप्रयोगों में किया जाता है। दोनों कार्य सॉफ्टवेयर तकनीक द्वारा कार्यान्वित किए जाते हैं।

टाइमर देरी

T1M2 (टाइमर 1 और मोड 2) का उपयोग करके 500us समय की देरी उत्पन्न करने के लिए WAP?

#शामिल

शून्य मुख्य ()
{{
अहस्ताक्षरित चार मैं
TMOD = 0x20 // टाइमर मोड सेट करें //
for (i = 0i)<2i++) //double the time daly//
{{
TL1 = 0x19 // समय देरी सेट करें //
TH1 = 0x00
TR1 = 1 // टाइमर oN //
जबकि (TF1 == 0) // फ्लैग बिट की जांच करें //
टीएफ 1 = 0
}
TR1 = 0 // टाइमर बंद //
}

सामान्य लूप विलंब

शून्य देरी ()

{{
अहस्ताक्षरित कश्मीर
for (k = 0k)<30000k++)
}

सीरियल संचार गणना और 8051 माइक्रोकंट्रोलर का उपयोग करके कार्यक्रम

सीरियल संचार आमतौर पर सिग्नल को प्रसारित करने और प्राप्त करने के लिए उपयोग किया जाता है। 8051 माइक्रोकंट्रोलर में शामिल हैं UART सीरियल संचार संकेत संचारित और Rx और Tx पिन द्वारा प्राप्त होते हैं। UART डेटा का बाइट लेता है और अलग-अलग बिट्स को क्रमबद्ध तरीके से भेजता है। रजिस्टर मेमोरी में डेटा एकत्र करने और संग्रहीत करने का एक तरीका है। UART एक आधा द्वैध प्रोटोकॉल है। हाफ-डुप्लेक्स का अर्थ है डेटा को स्थानांतरित करना और प्राप्त करना, लेकिन एक ही समय में नहीं।

सीरियल संचार गणना और 8051 माइक्रोकंट्रोलर का उपयोग करके कार्यक्रम

सीरियल संचार गणना और 8051 माइक्रोकंट्रोलर का उपयोग करके कार्यक्रम

1. धारावाहिक खिड़की के चरित्र 600 S ’को बॉड दर के रूप में 9600 उपयोग करने के लिए WAP?

28800 8051 माइक्रोकंट्रोलर की अधिकतम बॉड दर है

28800/9600 = 3

वह बॉड दर ’3 'टाइमर में संग्रहीत है

#शामिल

शून्य मुख्य ()

{{
SCON = 0x50 // सीरियल संचार शुरू करें //
TNOD = 0x20 // चयनित टाइमर मोड //
TH1 = 3 // बॉड दर लोड करें //
TR1 = 1 // टाइमर पर //
SBUF = 'S' // रजिस्टर में चरित्र को संग्रहीत करें //
जबकि (TI == 0) // इंटरप्ट रजिस्टर की जाँच करें //
टीआई = ०
TR1 = 0 // टाइमर बंद करें //
जबकि (1) // निरंतर लूप //
}

2. हाइपरटर्मिनल से डेटा प्राप्त करने के लिए वैप और 9600 बॉड का उपयोग करके माइक्रोकंट्रोलर के पोर्ट 0 को वह डेटा भेजें?

28800 8051 माइक्रोकंट्रोलर की अधिकतम बॉड दर है

28800/9600 = 3

वह बॉड दर ’3 'टाइमर में संग्रहीत है

#शामिल

शून्य मुख्य ()
{{
SCON = 0x50 // सीरियल संचार शुरू करें //
TMOD = 0x20 // टाइमर मोड का चयन किया //
TH1 = 3 // बॉड दर लोड करें //
TR1 = 1 // टाइमर पर //
PORT0 = SBUF // SBUF से डेटा को पोर्ट0 // पर भेजें
जबकि (आरआई == 0) // इंटरप्ट रजिस्टर की जाँच करें //
आरआई = ०
TR1 = 0 // टाइमर बंद करें //
जबकि (1) // चरित्र मिलने पर प्रोग्राम बंद करो //
}

8051 माइक्रोकंट्रोलर का उपयोग कर बाधित कार्यक्रम

इंटरप्ट एक संकेत है जो वर्तमान प्रोग्राम को रोकने और अन्य प्रोग्राम को तुरंत निष्पादित करने के लिए मजबूर करता है। 8051 माइक्रोकंट्रोलर 6 अवरोध प्रदान करते हैं, जो आंतरिक और बाहरी हैं रुकावट के स्रोत । जब व्यवधान होता है तो माइक्रोकंट्रोलर वर्तमान कार्य को रोक देता है और ISR को निष्पादित करके व्यवधान में शामिल हो जाता है तब माइक्रोकंट्रोलर हाल के कार्य पर वापस लौटता है।

बायाँ शिफ्ट ऑपरेशन करने के लिए वैप जब टाइमर 0 इंटरप्ट होता है तो मुख्य फ़ंक्शन में P0 के लिए इंटरप्ट ऑपरेशन करते हैं?

#शामिल

अहस्ताक्षरित चार बी

शून्य टाइमर 0 () इंटरप्ट 2 // चयनित टाइमर0 इंटरप्ट //
{{
b = 0x10
पी 1 = बी<<2
}
शून्य मुख्य ()
{{
अहस्ताक्षरित चार एक, मैं
IE = 0x82 // टाइमर 0 बाधा सक्षम करें //
टीएमओडी = 0x01
TLo = 0xFC // इंटरप्ट टाइमर //
TH1 = 0xFB
TR0 = 1
a = 0x00
जबकि (1)
{{
for (i = 0i)<255i++)
{{
ए ++
पो = ए
}
}
}

8051 माइक्रोकंट्रोलर का उपयोग करते हुए कीपैड प्रोग्रामिंग

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

8051 माइक्रोकंट्रोलर का उपयोग करते हुए कीपैड प्रोग्रामिंग

8051 माइक्रोकंट्रोलर का उपयोग करते हुए कीपैड प्रोग्रामिंग

1. स्विच दबाकर एलईडी को चालू करने के लिए WAP

#शामिल
sbit a = P3 ^ 0
sbit b = P3 ^ 1
sbit c = P3 ^ 2
sbit d = P3 ^ 3
शून्य देरी ()
शून्य मुख्य ()
{{
जबकि (1)
{{
a = ०
बी = १
ग = १
d = 1
देरी ()
a = १
बी = ०
ग = १
d = 1
शून्य देरी ()
{{
अहस्ताक्षरित चार मैं
TMOD = 0x20 // टाइमर मोड सेट करें //
for (i = 0i)<2i++) //double the time daly//
{{
TL1 = 0x19 // समय देरी सेट करें //
TH1 = 0x00
TR1 = 1 // टाइमर oN //
जबकि (TF1 == 0) // फ्लैग बिट की जांच करें //
टीएफ 1 = 0
}
TR1 = 0 // टाइमर बंद //
}

2. कीपैड पर कुंजी '1' दबाकर एलईडी को चालू करने के लिए WAP?

#शामिल

sbit r1 = P2 ^ 0
sbit c1 = P3 ^ 0
sbit LED = P0 ^ 1

शून्य मुख्य ()
{{

आर १ = ०
अगर (c1 == 0)
{{

एलईडी = 0xff
}
}

3. कीपैड पर संबंधित कुंजी दबाकर सात खंड पर 0,1,2,3,4,5 प्रदर्शित करने के लिए WAP?

#शामिल

sbit r1 = P2 ^ 0

sbit c1 = P3 ^ 0

sbit r2 = P2 ^ 0

sbit c2 = P3 ^ 0

sbit a = P0 ^ १

शून्य मुख्य ()

{{

r1 = 0 a = 1

अगर (c1 == 0)

{{

a = 0xFC

}

यदि (c2 == 0)

{{

a = 0x60

}

अगर (c3 == 0)

{{

a = 0xDA

}

यदि (c4 == 0)

{{

a = 0xF2

}

}

8051 माइक्रोकंट्रोलर के साथ एलसीडी प्रोग्रामिंग

आयसीडी प्रदर्शन एक इलेक्ट्रॉनिक उपकरण है, जिसका उपयोग अक्सर पाठ या छवि प्रारूप में जानकारी प्रदर्शित करने के लिए कई अनुप्रयोगों में किया जाता है। एलसीडी एक डिस्प्ले है जो आसानी से इसकी स्क्रीन पर अक्षर दिखा सकती है। एलसीडी डिस्प्ले में 8-डेटा लाइनें और 3-नियंत्रण रेखाएं होती हैं जो कि माइक्रोकंट्रोलर को इंटरफ़ेस करने के लिए उपयोग की जाती हैं।

8051 माइक्रोकंट्रोलर के साथ एलसीडी प्रोग्रामिंग

8051 माइक्रोकंट्रोलर के साथ एलसीडी प्रोग्रामिंग

एलईडी प्रदर्शन पर 'EDGEFX किट' प्रदर्शित करने के लिए WAP?

#शामिल
# डेफिन कम P0

voidlcd_initi ()
voidlcd_dat (अहस्ताक्षरित चार)
voidlcd_cmd (अहस्ताक्षरित चार)
शून्य देरी ()
शून्य प्रदर्शन (अहस्ताक्षरित चार * एस, अहस्ताक्षरित चार आर)

sbitrs = P2 ^ 0
sbitrw = P2 ^ 1
sbit = P2 ^ 2
शून्य मुख्य ()
{{

lcd_initi ()
lcd_cmd (0x80)
देरी (100)
lcd_cmd (0xc0)
प्रदर्शन ('किनारा किट', 11)
जबकि (1)
}

शून्य प्रदर्शन (अहस्ताक्षरित चार * एस, अहस्ताक्षरित चार आर)
{{
अहस्ताक्षरित डब्ल्यू
for (w = 0w{{
lcd_data (s [w])
}
}
voidlcd_initi ()
{{
lcd_cmd (0 × 01)
देरी (100)
lcd_cmd (0 × 38)
देरी (100)
lcd_cmd (0 × 06)
देरी (100)
lcd_cmd (0x0c)
देरी (100)
}
voidlcd_dat (अहस्ताक्षरित चार डेट)
{{
कंघी = वह
आरएस = 1
आरडब्ल्यू = 0
= 1 में
देरी (100)
= 0 में
}
}
voidlcd_cmd (अहस्ताक्षरित चार cmd)
{{
आया = cmd
आरएस = 0
आरडब्ल्यू = 0

= 1 में
देरी (100)
= 0 में
}
शून्य देरी (अहस्ताक्षरित int n)
{{

अहस्ताक्षरित ए
for (a = 0a}

आशा है कि यह लेख कुछ उदाहरण कार्यक्रमों के साथ 8051 माइक्रोकंट्रोलर का उपयोग करके एम्बेडेड सिस्टम प्रोग्रामिंग के बारे में एक मूल जानकारी देता है। विस्तृत एम्बेडेड सी प्रोग्रामिंग ट्यूटोरियल के लिए कृपया नीचे टिप्पणी अनुभाग में अपनी टिप्पणी और प्रश्न पोस्ट करें।