دليل ربط شاشة LCD نوع 2X16 بالميكروكونترولر PIC16F877A مع استخدام المترجم CCS C :
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: برمجة الميكروكونترولر PIC بلغة السى مع المترجم CCS - C
صفحة 1 من اصل 1
دليل ربط شاشة LCD نوع 2X16 بالميكروكونترولر PIC16F877A مع استخدام المترجم CCS C :
دليل ربط شاشة LCD نوع 2X16 بالميكروكونترولر PIC16F877A مع استخدام المترجم CCS C :
المحتويات :
• توصيل الهاردوير .
• الملف LCD.C .
• أمثلة .
أولا : توصيل الهارد وير :
1- الملف LCD.C قائم على توصيل شاشة LCD فى وضع 4-bit ، والذى يستخدم فقط الأربعة أطراف العليا لبيانات وحدة شاشة LCD ( الأطراف DB4,DB5,DB6,DB7) .
2- الملف LCD.C يجعل الوضع الافتراضى لجميع التوصيلات إلى المنفذ Port D . إذا رغبت فى استخدام المنفذ Port B ، عندئذ فإن السطر التالى :
#define use_portb_lcd TRUE
ينبغى أن يكون فى برنامجك قبل أن يتم ضم الملف LCD.C .
3- المخطط التالى يبين كيفية التوصيل :
ثانيا : الملف LCD.C :
• الملف LCD.C يأتى ضمن برمجيات المترجم CCS C فى المسار Program Files/PICC/Drivers .
• بضم هذا الملف فى مقدمة برنامجك يمكنك استخدام الدوال التالية :
1- الدالة lcd_init() . وينبغى أن تكون فى الدالة الرئيسية main() تلى أى إعلانات لمتغيرات . هذه الدالة تقوم بتهيئة وحدة شاشة LCD وبالتالى يجب تشغيلها قبل تشغيل أى دالة أخرى لها علاقة بعمل وحدة LCD .
2- الدالة lcd_putc(c) . والتى تقوم بعرض الحرف ‘c’ فى الموضع التالى بوحدة LCD ، على سبيل المثال lcd_putc(‘H’); تعرض الحرف H (لاحظ وجود الحرف المفرد داخل أقواس مفردة).
• إذا كان الحرف هو ‘\f’ عندئذ يتم مسح الشاشة ،
• وإذا كان الحرف هو ‘\n’ عندئذ يتم الذهاب إلى السطر رقم “2” ،
• وإذا كان الحرف هو ‘\b’ فإن المؤشر يتحرك للخلف لموقع واحد .
• هذه الدالة تعمل أيضا مع السلاسل النصية ، على سبيل المثال lcd_putc(“Hello world”); تطبع سلسلة الحروف Hello world (لاحظ وجود السلسلة النصية أى الحروف المتعددة داخل أقواس مزدوجة).
3- الدالة lcd_gotoxy(x,y) ، والتى تستخدم فى تحريك المؤشر الرأسى إلى أى موقع فى السطر رقم “1” (إذا كان y=1) أو فى السطر رقم “2” (إذا كان y=2) ، على سبيل المثال : lcd_gotoxy(8,2); تنقل المؤشر إلى موضع الحرف “8” بالسطر رقم “2” .
4- الدالة lcd_getc(x,y) ، والتى تعيد الحرف المعروض على السطر “y” والموقع “x” ، على سبيل المثال : digit = lcd_getc(8,2); ، تعين المتغير digit بالقيمة المعروضة على السطر “2” والموضع “8” .
ثالثا : أمثلة :
البرنامج الأساسى : عرض كلمات الترحيب
- الكود:
#include <16f877A.h>
#use delay (clock = 20000000)
#include <lcd.c>
void main()
{
int i=0;
lcd_init();
Delay_ms(100);
while(TRUE)
{
lcd_putc('\f'); //Clear Display
lcd_putc("Hello World");
Delay_ms(2000);
lcd_putc('\f'); //Clear Display
lcd_putc("Welcome To");
lcd_gotoxy(1,2);
lcd_putc("LCD Library");
Delay_ms(2000);
lcd_putc('\f');
printf(lcd_putc,"Count = %d", i);
Delay_ms(2000);
i++;
}
}
النتيجة :
ملاحظة هامة :
1- لتغيير أطراف توصيل وحدة LCD بأطراف الميكروكونترولر يجب إعلان إعادة تعريف الأطراف الجديدة فى بداية البرنامج حتى قبل توجيه الضم #include<16F877A> كما يلى :
- الكود:
/LCD Module Connections
#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
#define LCD_ENABLE_PIN PIN_D3
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7
//End LCD Module Connections
#include <16f877a.h>
#use delay (clock = 20000000)
#include <lcd.c>
void main()
{
int i=0;
lcd_init();
Delay_ms(100);
while(TRUE)
{
lcd_putc('\f'); //Clear Display
lcd_putc("Hello World");
Delay_ms(2000);
lcd_putc('\f'); //Clear Display
lcd_putc("Welcome To");
lcd_gotoxy(1,2);
lcd_putc("LCD Library");
Delay_ms(2000);
lcd_putc('\f');
printf(lcd_putc,"Count = %d", i);
Delay_ms(2000);
i++;
}
}
2- لتغيير منفذ التوصيل ليكون المنفذ Port B ،على سبيل المثال ، نستخدم الصيغة التالية :
- الكود:
/*LCD Module Connections
#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
#define LCD_ENABLE_PIN PIN_D3
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7
//End LCD Module Connections*/
#define use_portb_lcd TRUE
#include <16f877a.h>
#use delay (clock = 20000000)
#include <lcd.c>
void main()
{
int i=0;
lcd_init();
Delay_ms(100);
while(TRUE)
{
lcd_putc('\f'); //Clear Display
lcd_putc("Hello World");
Delay_ms(2000);
lcd_putc('\f'); //Clear Display
lcd_putc("Welcome To");
lcd_gotoxy(1,2);
lcd_putc("LCD Library");
Delay_ms(2000);
lcd_putc('\f');
printf(lcd_putc,"Count = %d", i);
Delay_ms(2000);
i++;
}
}
مواضيع مماثلة
» تقنيات عرض الرسائل والإعلانات على شاشات الليد ماتريكس مع المترجم CCS C والمترجم ميكروسى برو: مقدمة : مبدأ عمل شاشة العرض LED dot matrix :
» المؤقتات والمقاطعة والميكروكونترولر PIC16F877A مع المترجم CCS C :
» تدريب : استخدام المحول ADC لقياس درجة الحرارة بالحساس LM35 مع المترجم CCS C :
» مشروع متحكم فى درجة حرارة (بيان وتحكم) مع استخدام موديول ADC والحساس LM35 و LCD و RS232 مع المترجم CCS C
» التدريب الثالث : إنشاء عداد بمفتاح ضاعط أو بحساس لعد الأشياء من “0” إلى “99” باستخدم وحدتى عرض سفن سيجمنت مع استخدام ترانزستورات ومع المترجم CCS C .
» المؤقتات والمقاطعة والميكروكونترولر PIC16F877A مع المترجم CCS C :
» تدريب : استخدام المحول ADC لقياس درجة الحرارة بالحساس LM35 مع المترجم CCS C :
» مشروع متحكم فى درجة حرارة (بيان وتحكم) مع استخدام موديول ADC والحساس LM35 و LCD و RS232 مع المترجم CCS C
» التدريب الثالث : إنشاء عداد بمفتاح ضاعط أو بحساس لعد الأشياء من “0” إلى “99” باستخدم وحدتى عرض سفن سيجمنت مع استخدام ترانزستورات ومع المترجم CCS C .
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: برمجة الميكروكونترولر PIC بلغة السى مع المترجم CCS - C
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى