Sơ đồ khối mạch điều khiển LCD 3 dây sử dụng thanh ghi dịch.
Sơ đồ khối mạch điều khiển LCD 3 dây sử dụng thanh ghi dịch.

TivaC के साथ शिफ्ट रजिस्टर को सीरियल डेटा कैसे फीड करें

TivaC माइक्रोकंट्रोलर अक्सर एम्बेडेड अनुप्रयोगों में उपयोग किए जाते हैं जिन्हें बाह्य उपकरणों, जिसमें शिफ्ट रजिस्टर भी शामिल हैं, के साथ संचार करने की आवश्यकता होती है। यह लेख TivaC का उपयोग करके 74HC595 शिफ्ट रजिस्टर में सीरियल डेटा इनपुट करने की प्रक्रिया का मार्गदर्शन करेगा।

74HC595 शिफ्ट रजिस्टर एक सामान्य IC है जो सीरियल डेटा को समानांतर डेटा में परिवर्तित करता है। इसमें 8 आउटपुट बिट हैं जिनका उपयोग LED, LCD स्क्रीन और अन्य बाह्य उपकरणों जैसे उपकरणों को नियंत्रित करने के लिए किया जा सकता है। शिफ्ट रजिस्टर का उपयोग माइक्रोकंट्रोलर पर आवश्यक I/O पिन की संख्या को कम करता है।

74HC595 में सीरियल डेटा इनपुट करने के लिए, TivaC को तीन सिग्नल उत्पन्न करने होंगे: सीरियल डेटा (DS), क्लॉक पल्स (SH_CP), और लैच (ST_CP)।

सीरियल डेटा DS पिन पर एक बार में एक बिट भेजा जाता है। SH_CP पिन पर प्रत्येक क्लॉक पल्स डेटा को शिफ्ट रजिस्टर में एक बिट शिफ्ट करता है। जब सभी 8 बिट शिफ्ट हो जाते हैं, तो ST_CP पिन पर एक पल्स डेटा को शिफ्ट रजिस्टर से स्टोरेज रजिस्टर में लैच करता है, और डेटा समानांतर आउटपुट पिन (Q0-Q7) पर दिखाई देता है।

74HC595 के साथ संचार करने के लिए TivaC पर पिन कॉन्फ़िगरेशन इनिशियलाइज़ेशन अनुभाग में किया जाना चाहिए। DS, SH_CP और ST_CP के लिए चुने गए तीन पिन को डिजिटल आउटपुट के रूप में कॉन्फ़िगर किया जाना चाहिए। उदाहरण के लिए, यदि DS के लिए PA2 पिन, SH_CP के लिए PA3 और ST_CP के लिए PA4 का उपयोग किया जाता है, तो इनिशियलाइज़ेशन कोड इस प्रकार हो सकता है (TivaWare लाइब्रेरी का उपयोग करके):

// पिन घोषणा
#define DATA_PIN GPIO_PIN_2
#define CLOCK_PIN GPIO_PIN_3
#define LATCH_PIN GPIO_PIN_4

// GPIO पोर्ट A को इनेबल करें
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
while(!SysCtlPeripheralReady(SYSCTL_PERIPH_GPIOA));

// पिन को डिजिटल आउटपुट के रूप में कॉन्फ़िगर करें
GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE, DATA_PIN | CLOCK_PIN | LATCH_PIN);

पिन कॉन्फ़िगर करने के बाद, प्रत्येक बिट भेजने और संबंधित क्लॉक पल्स उत्पन्न करने के लिए लूप का उपयोग करके 74HC595 को डेटा भेजा जा सकता है।

उदाहरण के लिए, शिफ्ट रजिस्टर को 0x55 (बाइनरी में 01010101) मान भेजने के लिए:

uint8_t data = 0x55;

// डेटा को कम पर लैच करें
GPIOPinWrite(GPIO_PORTA_BASE, LATCH_PIN, 0);

// प्रत्येक बिट भेजें
for (int i = 7; i >= 0; i--) {
  // डेटा सेट करें
  GPIOPinWrite(GPIO_PORTA_BASE, DATA_PIN, (data >> i) & 1);

  // क्लॉक पल्स जनरेट करें
  GPIOPinWrite(GPIO_PORTA_BASE, CLOCK_PIN, 1);
  GPIOPinWrite(GPIO_PORTA_BASE, CLOCK_PIN, 0);
}


// आउटपुट अपडेट करने के लिए डेटा को उच्च पर लैच करें
GPIOPinWrite(GPIO_PORTA_BASE, LATCH_PIN, LATCH_PIN);

उपरोक्त कोड डेटा के प्रत्येक बिट के माध्यम से लूप करेगा, सबसे महत्वपूर्ण बिट (MSB) से शुरू होगा। प्रत्येक बिट को DATA_PIN पर लिखा जाता है, फिर बिट को शिफ्ट रजिस्टर में शिफ्ट करने के लिए CLOCK_PIN पर एक क्लॉक पल्स जनरेट किया जाता है। अंततः, डेटा को लैच करने और 74HC595 के आउटपुट को अपडेट करने के लिए LATCH_PIN को उच्च पर सेट किया जाता है।

TivaC के साथ 74HC595 शिफ्ट रजिस्टर के माध्यम से बाह्य उपकरणों को नियंत्रित करने के लिए शिफ्ट रजिस्टर के संचालन और TivaC पर GPIO पिन को कॉन्फ़िगर करने के तरीके की स्पष्ट समझ की आवश्यकता होती है। TivaWare लाइब्रेरी फ़ंक्शंस और सरल नियंत्रण लॉजिक का उपयोग करके, आप विभिन्न प्रकार के बाह्य उपकरणों के साथ आसानी से संवाद कर सकते हैं।

Comments

No comments yet. Why don’t you start the discussion?

प्रातिक्रिया दे

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *