الاتصال التسلسلى للميكروكونترولر PIC16 من خلال الوحدة UART :
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: برمجة الميكروكونترولر PIC بلغة السى مع المترجم CCS - C
صفحة 1 من اصل 1
الاتصال التسلسلى للميكروكونترولر PIC16 من خلال الوحدة UART :
الاتصال التسلسلى للميكروكونترولر PIC16 من خلال الوحدة UART :
المحتويات :
• دوال المنفذ RS232 .
• المحاكاة ببرنامج ISIS .
يتم توفير الاتصال الاتصال التسلسى بواسطة الوحدة (الموديول) UART الموجود ضمن البناء الداخلى للميكروكونترولر . يمكن استخدام أى زوج من الأطراف لهذا الغرض حيث أن معدل البيانات منخفض جدا مما يسمح بتوليد الإشارات برمجيا . وعلى الرغم مع ذلك ، تم توفير منفذ هاردوير ( موديول UART) مخصص لهذه المهمة ، والذى يجب أن يستخدم إذا كان هناك حاجة لاستخدام المقاطعة .
الجدول التالى يبين مكتبة المترجم CCS C المرتبطة بالمنفذ UART :
يمكن اختبار المنفذ UART فى نظام المحاكاة من خلال توصيله بالوحدة الطرفية المتوفرة فى برمجيات Proteus (ISIS) كما هو مبين بالشكل أدناه .
طرف دخل الوحدة الطرفية RXD (استقبال البيانات) ، يتم توصيله بالطرف TX (إرسال) بالميكروكونترولر ، وطرف خرج الوحدة الطرفية TXD (إرسال البيانات) ، يتم توصيله بالطرف RX (استقبال) بالميكروكونترولر . المحطة الطرفية بها خطوط مصافحة handshaking إضافية (تحكم فى الإرسال) ، وهى RTS و CTS ، لكننا عادة لا نحتاج لها .
البرنامج التالى لتحقيق الاتصال والمحاكاة بين الميكروكونترولر والوحدة الطرفية :
فى هذا البرنامج :
• تستخدم الدالة getc() لقراءة حرف character من الوحدة الطرفية ، فهى تنتظر من أجل مدخلات المستخدم . يجب تفعيل (تنشيط) الوحدة الطرفية عن طريق النقر بداخل نافذة الوحدة الطرفية ، وعندئذ توفر لوحة مفاتيح الكمبيوتر المدخلات للميكروكونترولر بما يناظر أكواد أسكى المناظرة ، حيث يتم تخصيص هذه المدخلات إلى المتغير incode ، كلما وصلت incode = getc(); .
• يمكن أخراج (عرض) كود أسكى باستخدام الدالة printf() . إذا تم تشكيل خرج هذه الدالة ليكون بالنظام العشرى %d ، فإنه يتم عرض القيمة العددية لكود الحرف . أما إذا تم تشكيل الخرج ليكون فى شكل الحرف %c ، فإنه يتم عرض الحرف نفسه .
• الدالة putc(13) تخرج كود من أجل العودة لسطر جديد على الشاشة .
إذا تم استخدام الدالة putc() لإخراج كود أسكى ، فإنه يتم عرض الحرف .
المحتويات :
• دوال المنفذ RS232 .
• المحاكاة ببرنامج ISIS .
يتم توفير الاتصال الاتصال التسلسى بواسطة الوحدة (الموديول) UART الموجود ضمن البناء الداخلى للميكروكونترولر . يمكن استخدام أى زوج من الأطراف لهذا الغرض حيث أن معدل البيانات منخفض جدا مما يسمح بتوليد الإشارات برمجيا . وعلى الرغم مع ذلك ، تم توفير منفذ هاردوير ( موديول UART) مخصص لهذه المهمة ، والذى يجب أن يستخدم إذا كان هناك حاجة لاستخدام المقاطعة .
الجدول التالى يبين مكتبة المترجم CCS C المرتبطة بالمنفذ UART :
يمكن اختبار المنفذ UART فى نظام المحاكاة من خلال توصيله بالوحدة الطرفية المتوفرة فى برمجيات Proteus (ISIS) كما هو مبين بالشكل أدناه .
طرف دخل الوحدة الطرفية RXD (استقبال البيانات) ، يتم توصيله بالطرف TX (إرسال) بالميكروكونترولر ، وطرف خرج الوحدة الطرفية TXD (إرسال البيانات) ، يتم توصيله بالطرف RX (استقبال) بالميكروكونترولر . المحطة الطرفية بها خطوط مصافحة handshaking إضافية (تحكم فى الإرسال) ، وهى RTS و CTS ، لكننا عادة لا نحتاج لها .
البرنامج التالى لتحقيق الاتصال والمحاكاة بين الميكروكونترولر والوحدة الطرفية :
- الكود:
// Serial I/O using hardware RS232 port
#include <16F877A.h>
#use delay(clock= 8000000) // Delay function needed for RS232
#use rs232(UART1) // Select hardware UART
void main() //************************************
{
int incode;
setup_uart(9600); // Set baud rate
while(1)
{ incode = getc(); // Read character from UART
printf( " ASCII = %d " ,incode); // Display it on
putc(13); // New line on display
}
}
فى هذا البرنامج :
• تستخدم الدالة getc() لقراءة حرف character من الوحدة الطرفية ، فهى تنتظر من أجل مدخلات المستخدم . يجب تفعيل (تنشيط) الوحدة الطرفية عن طريق النقر بداخل نافذة الوحدة الطرفية ، وعندئذ توفر لوحة مفاتيح الكمبيوتر المدخلات للميكروكونترولر بما يناظر أكواد أسكى المناظرة ، حيث يتم تخصيص هذه المدخلات إلى المتغير incode ، كلما وصلت incode = getc(); .
• يمكن أخراج (عرض) كود أسكى باستخدام الدالة printf() . إذا تم تشكيل خرج هذه الدالة ليكون بالنظام العشرى %d ، فإنه يتم عرض القيمة العددية لكود الحرف . أما إذا تم تشكيل الخرج ليكون فى شكل الحرف %c ، فإنه يتم عرض الحرف نفسه .
• الدالة putc(13) تخرج كود من أجل العودة لسطر جديد على الشاشة .
إذا تم استخدام الدالة putc() لإخراج كود أسكى ، فإنه يتم عرض الحرف .
مواضيع مماثلة
» استخدام الموديول USART لتحقيق الاتصال التسلسلى بين PIC و PIC :
» الاتصال بين الميكروكونترولر PIC والكمبيوتر PC والمحاكاة ببرنامج ISIS مع المترجم CCS C
» الوحدة الطرفية التخيلية VIRTUAL TERMINAL فى برنامج بروتيس Proteus
» البداية وبرمجة السلسلة PIC16 بلغة السى :
» أساسيات برمجة السلسلة PIC16 بلغة السى مع المترجم CCS C :
» الاتصال بين الميكروكونترولر PIC والكمبيوتر PC والمحاكاة ببرنامج ISIS مع المترجم CCS C
» الوحدة الطرفية التخيلية VIRTUAL TERMINAL فى برنامج بروتيس Proteus
» البداية وبرمجة السلسلة PIC16 بلغة السى :
» أساسيات برمجة السلسلة PIC16 بلغة السى مع المترجم CCS C :
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: برمجة الميكروكونترولر PIC بلغة السى مع المترجم CCS - C
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى