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 في التطبيقات المضمنة التي تتطلب التواصل مع الأجهزة الطرفية، بما في ذلك مسجلات الإزاحة. ستشرح هذه المقالة كيفية إدخال البيانات التسلسلية إلى مسجل الإزاحة 74HC595 باستخدام TivaC.

يُعد مسجل الإزاحة 74HC595 دائرة متكاملة شائعة تُمكّن من تحويل البيانات التسلسلية إلى بيانات متوازية. يحتوي على 8 بتات خرج يمكن استخدامها للتحكم في أجهزة مثل LEDs، وشاشات LCD، والأجهزة الطرفية الأخرى. استخدام مسجل الإزاحة يُقلل من عدد دبابيس الإدخال/الإخراج المطلوبة على المتحكم.

لإدخال البيانات التسلسلية إلى 74HC595، يحتاج TivaC إلى توليد ثلاث إشارات: بيانات تسلسلية (DS)، ونبضة ساعة (SH_CP)، وقفل بيانات (ST_CP).

يتم إرسال البيانات التسلسلية بتًا ببت على دبوس DS. كل نبضة ساعة على دبوس SH_CP تُزيح البيانات إلى مسجل الإزاحة بمقدار بت واحد. عندما يتم إزاحة جميع البتات الثمانية، تقوم نبضة على دبوس ST_CP بقفل البيانات من مسجل الإزاحة إلى مسجل التخزين، وستظهر البيانات على دبابيس الخرج المتوازية (Q0-Q7).

يجب تهيئة دبابيس TivaC للتواصل مع 74HC595 في قسم تهيئة البرنامج. يجب تهيئة الدبابيس الثلاثة المختارة لـ DS و SH_CP و ST_CP كـ مخرجات رقمية. على سبيل المثال، إذا تم استخدام الدبوس PA2 لـ DS، و PA3 لـ SH_CP، و PA4 لـ ST_CP، فقد يكون رمز التهيئة كما يلي (باستخدام مكتبة 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 لإزاحة البت إلى مسجل الإزاحة. أخيرًا، يتم تعيين دبوس LATCH_PIN إلى مستوى عالي لقفل البيانات وتحديث خرج 74HC595.

يتطلب التحكم في الأجهزة الطرفية من خلال مسجل الإزاحة 74HC595 مع TivaC فهمًا واضحًا لكيفية عمل مسجل الإزاحة وكيفية تهيئة دبابيس GPIO على TivaC. باستخدام دوال مكتبة TivaWare ومنطق تحكم بسيط، يمكنك بسهولة التواصل مع أنواع مختلفة من الأجهزة الطرفية.

Comments

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

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *