هذا الامر لتعريف الشاشه طبعا يمكن x يتراوح من 0 الى 3 اي استطيع ربط 4 شاشات بهذه طريقه ولكل واحده لها تعريفها
تحتاج الى تعريف مداخل
مثال
كود:
//w3Lcd0 pin definitions:
sbit w3Lcd0_EN at RA0_bit;
sbit w3Lcd0_DATA at RA1_bit;
sbit w3Lcd0_CLOCK at RA2_bit;
sbit w3Lcd0_EN_Direction at TRISA0_bit;
sbit w3Lcd0_DATA_Direction at TRISA1_bit;
sbit w3Lcd0_CLOCK_Direction at TRISA2_bit;
اما طريقه الربط ارجو مراجعه امثله في مشاركه السابقه
طبعا اذا عندك شاشه اخرى نفس الاسلوب ولكن عند مداخل اخرى ويتغير 0 مثلا الى 1 يعني عندك اربعه تعاريف كل واحده تشغل شاشه
علما ان هذه مكتبه تحتاج فقط 3 اسلاك ولهذا كتبت بـــ W3
هذه هي اوامر
=============================================
كود:
w3Lcd0_GotoYX_16x4(row,column);
هذا الامر لتحديد رقم صف وعمود بشاشه طبعا يجب كتابه هذا الامر قبل الامر كتابه
طبعا هذا الكود لشاشه 4x16
وسبب في ذلك هو ان صف 3 و4 يحصل فيهما شفت بمقدار 3 مرات بأتجاه اليمين
وهذا الامر يحل هذه مشكله
ولشاشه 2x16 or 1x16
كود:
w3Lcd0_GotoYX(row,column);
================================================
الامر الكتابه
كود:
w3Lcd0_CstrOut(*const char string) ;
حيث string تعني البيانات من نوع text ومن نوع const
وحسب ماأعتقد انCstrOut
C تعني const
str تعني string
out تعني اخرج البيانات او أطبعها
وبتالي هذه مكتبه توفر لنا طبع نصوص موجوده في روم مباشره دون الحاجه الى اعاده تحويلها في رام
اما لطباعه من رام نستخدم هذا الامر
كود:
w3Lcd0_RstrOut(char *text);
ملاحظه مهمه // قبل طباعه النصوص عليك تحديد رقم صف وعمود وفي حاله عدم تحديد فأنه سوف يطبع كلمه في اخر ماوصل اليه يعني يكمل البيانات وهذه ايضا ميزه حلوه اذا كانت لديك بيانات تريد ايضافتها الى بيانات سابقه
والغايه من تحديد مؤشر على اي صف وعمود لكي يبدأ من هذه نقطه وعدم تحديد يكمل البيانات أبتدا من اخر ما وصل اليه مؤشر
اما لطباعه عدد معين من نص يعني اريد طباعه مثلا 5 احرف من نص
تستخدم هذه الاوامر
للتعامل مع روم
w3Lcd0_CstrNout(const char *text,char n);
وللتعامل مع رام
كود:
w3Lcd0_RstrNout( char *text,char n);
ولطباعه حرف واحد فقط
كود:
w3Lcd0_WriteChar(char data1);
========================================
كود:
w3Lcd0_Command(_LCD_BLINK_CURSOR_ON);
لتشغيل مؤشر
كود:
w3Lcd0_Command(_LCD_CURSOR_OFF);
لاطفاء المؤشر
أعتقد هي تشبه الاوامر موجوده في مايكروسي اي اوامر LCD_cmd
============================================
ولطباعه الارقام
الرقم متكون من رقمين فقط
مثال
كود:
for(x=0;x<99;x++)
{
w3Lcd0_GotoYX_16x4(0,0);
w3Lcd0_Dec2out(x);
delay_ms(100);
}
ولغرض حساب اكثر من رقمين مثلا 4
كود:
for(x=0;x<9999;x++)
{
w3Lcd0_GotoYX_16x4(0,0);
w3Lcd0_Dec2out(x/100);
Y=x%100;
w3Lcd0_GotoYX_16x4(0,2);
w3Lcd0_Dec2out(y%100);
delay_ms(500);
}
وهكذا
ولكن يوجد دوال لتطبع 3 او 4 او 5 ولكن لاأفهم ماذا تحتاج هذه داله وخصوصا متغير just لاأعرف ماذا يقصد به
فمثلا هذه داله تطبع لغايه 5 احرف يعني لغايه
كود:
w3Lcd0_Dec5out_J(data unsigned int wrd,data unsigned char just);
اما لتحويل الرقم الى hex
كود:
w3Lcd0_Hex2out(data unsigned char ch);
ورقم 2 يعني داله حدها رقمين فقط
كود:
for(x=0;x<100;x++)
{
w3Lcd0_GotoYX_16x4(0,0);
w3Lcd0_Hex2out(x);
delay_ms(100);
}
طبعا نفس اسلوب الارض الارقام
وهذا لغايه لاربعه ارقام
كود:
w3Lcd0_Hex4out(data unsigned int wrd);
كما يمكن عرض الارقام كتالي
كود:
for(x=0;x<1000;x++)
{ //1234
w3Lcd0_GotoYX_16x4(0,0);
w3Lcd0_WriteChar(x/1000+48);
w3Lcd0_WriteChar(x/100%10+48);
w3Lcd0_WriteChar(x/10%10+48);
w3Lcd0_WriteChar(x%10+48);
delay_ms(10);
}