مثال على المكتبة :
كود:
char uart_rd;
void main() {
ANSEL = 0; // Configure AN pins as digital
ANSELH = 0;
UART1_Init(9600); // Initialize UART module at 9600 bps
Delay_ms(100); // Wait for UART module to stabilize
UART1_Write_Text("Start");
UART1_Write(10);
UART1_Write(13);
while (1) { // Endless loop
if (UART1_Data_Ready()) { // If data is received,
uart_rd = UART1_Read(); // read the received data,
UART1_Write(uart_rd); // and send data via UART
}
}
}
يبين المثال تبادل البيانات من خلال UART .
عندما يستقبل الميكروكونترولر بيانات سوف يرسلها فورا لتعود مرة أخرى . إذا تم توصيل الميكروكونترولر إلى الكومبيوتر الشخصى كما فى الشكل يمكنك اختبار المثال من المترجم mikroC PRO عن طريق الوحدة الطرفية للاتصال التسلسلى الموجودة بالقائمة Tools › Terminal .
التعليق على البرنامج :
· إعلان أو تعريف المتغير الذى سوف يتم فيه حفظ البايت المستقبل بنوع char وباسم uart_rd قبل بدء الدالة الرئيسية :
char uart_rd;
void main() {
- فى البداية يجب تهيئة المنافذ وهنا لن نحتاج للمداخل التناظرية لذلك يتم تهيئة جميع المنافذ لتكون مداخل / مخارج رقمية
ANSEL = 0; // Configure AN pins as digital
ANSELH = 0;
- أيضا فى البداية يجب تهيئة موديول UART وتحديد معدل البود قبل استخدام أى دالة أخرى فى مكتبة UART
UART1_Init(9600); // Initialize UART module at 9600 bps
- والانتظار لفترة 100 ملى ثانية حتى تستقر التهيئة
Delay_ms(100); // Wait for UART module to stabilize
- عندئذ يمكن إرسال نص "Start" من خلال UART1 وكتابة اكواد أو مفاتيح تنسيق النص لإنهاء السطر والبدء من سطر جديد .
UART1_Write_Text("Start");
UART1_Write(10); // Line Feed UART1_Write(13); // Carriage Return - بعد ذلك يتم الدخول فى حلقة غير منتهية
while (1) { // Endless loop
# اختبار تجهيز البيانات للاستقبال من خلال UART1 .
# وقراءة (استقبال) البيانات ونسخها إلى سجل المتغير uart_rd .
# وإعادة أرسالها من سجل المتغير uart_rd خلال UART1
if (UART1_Data_Ready()) { // If data is received,
uart_rd = UART1_Read(); // read the received data,
UART1_Write(uart_rd); // and send data via UART }
- نهاية الحلقة الغير منتهية :
}
}