قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:136
قديم 29-07-2014, 08:15 AM المشاركة 9   
x4 نصيحه في البرمجه



السلام عليكم
هذا الكود لعرض رساله طويله ولكن في نفس الوقت اريد اشير الى نصيحه مهمه جدا لانها قد تجد صعوبه في أيجاد حل لها لانك لن ترى اي مشكله في الكود
المكتبه الجديده طبعا تجاوزت هذه مشكله وأتمنى من أخوه الكرام أستخدامها

أنا وضعت هذا الموضوع لانه مهم
1- يوفر لك كل ماتريد
2- تتيح لك ربط عدد كبير من شاشات
3- تختصر لك الكود
4- تحل لك مشاكل برمجيه أنت قد تجد صعوبه في حلها
==============================================

هذا الكود بدون أستخدام مكتبه للبيك 16f628a,4mhz
كود:
// Lcd pinout settings
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D4 at RB0_bit;

// Pin direction
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D7_Direction at TRISB3_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D4_Direction at TRISB0_bit;

unsigned char x,y, kk , count;
char text_lcd[16];
const char txt[]="               Hello ....How is my friend .. my name is Hasan Iam from iraq                ";
void main()
{
 cmcon=7;
 Lcd_Init();
 lcd_cmd(_LCD_CURSOR_OFF);
 lcd_cmd(1);
 while(1)
        {
         kk=sizeof(txt);// calcaulate size of txt
         for(x=0;x<16;x++)
                         {
                          text_lcd[x]=txt[x+y]; // 15+42

                          }
         lcd_out(1,1,text_lcd);

                            //delay_ms(150);
        count++;
        delay_ms(10);
        //lcd_out(1,1,"                ");// clear LCD
        if(count==10)// to reducing time
                    {
                      y++;
                      if(y==kk-15)y=0;
                      count=0;
                     }


        }
}
وهذا نفس مشروع وشوف فرق
كود:
// Lcd pinout settings
sbit LCD0_RS at RB4_bit;
sbit LCD0_EN at RB5_bit;
sbit LCD0_D7 at RB3_bit;
sbit LCD0_D6 at RB2_bit;
sbit LCD0_D5 at RB1_bit;
sbit LCD0_D4 at RB0_bit;

// Pin direction
sbit LCD0_RS_Direction at TRISB4_bit;
sbit LCD0_EN_Direction at TRISB5_bit;
sbit LCD0_D7_Direction at TRISB3_bit;
sbit LCD0_D6_Direction at TRISB2_bit;
sbit LCD0_D5_Direction at TRISB1_bit;
sbit LCD0_D4_Direction at TRISB0_bit;

unsigned char x,y, kk , count;
const char txt[]="               Hello ....How is my friend .. my name is Hasan Iam from iraq                ";
void main()
{
 cmcon=7;
 Lcd0_Init();
 Lcd0_Command(1);
 while(1)
        {
         kk=sizeof(txt);// calcaulate size of txt

         Lcd0_GotoYX(0,0);
         Lcd0_CstrNout(txt+y,16);
        count++;
        delay_ms(10);
        if(count==10)// to reducing time
                    {
                      y++;
                      if(y==kk-15)y=0;
                      count=0;
                     }


        }
}
شوف فرق بحجم الكود هذه بالاعتماد على مكتبه مايكروسي برو


وهذا بعد أستخدام مكتبه


الان ماهي مشكله الي نريد التعامل معها
هو انك عندما تتعامل مع مصفوفه لابد من محاوله تصفير مصفوفه والا سيحدث فيها overwrited

اذا كنت تستخدم مكتبه مايكروسي برو فأنت يجب تعديل الكود بهذه طريقه

نفس الكود ولكن بعد التعديل
تلاحظون انه يتم زياده مصفوفه بمقدار 1 لكي نجعلها اخر قيمه لها =0 وطبعا هذا بأسكي كود يعني null وبتالي سيتوقف مصفوفه عند هذه نقطه دون حدوث overwrited

كود:
// Lcd pinout settings
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D4 at RB0_bit;

// Pin direction
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D7_Direction at TRISB3_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D4_Direction at TRISB0_bit;

unsigned char x,y, kk , count;
char text_lcd[17];
const char txt[]="               Hello ....How is my friend .. my name is Hasan Iam from iraq                ";
void main()
{
 cmcon=7;
 Lcd_Init();
 lcd_cmd(_LCD_CURSOR_OFF);
 lcd_cmd(1);
 while(1)
        {
         kk=sizeof(txt);// calcaulate size of txt
         for(x=0;x<17;x++)
                         {
                           if(x==16){text_lcd[x]=0;break;}// reset text_lcd[x] this verry nessary for avoid overwrited
                          text_lcd[x]=txt[x+y]; // 15+42

                          }
         lcd_out(1,1,text_lcd);

                            //delay_ms(150);
        count++;
        delay_ms(10);
        //lcd_out(1,1,"                ");// clear LCD
        if(count==10)// to reducing time
                    {
                      y++;
                      if(y==kk-15)y=0;
                      count=0;
                     }


        }
}
ولكن كيف حلت هذه مشكله في مكتبه الجديده وهو أستخدام هذا الامر
كود:
Lcd0_CstrNout(txt+y,16);
وهو يعرض رساله طولها يعتمد على رقم الذي انت تضعه طبعا لازم يكون ضمن حدود مصفوفه وقد وضعت 16 فهو اتوماتيكيا يصفر مصفوفه

في مشاركه القادمه تكمله لموضوع لكي تشاهدون مشكله وكيفه حلها مره بأستخدام مكتبه شاشه مايكروسي برو ومره بمكتبه جديده

اعلانات

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:136
قديم 29-07-2014, 08:30 AM المشاركة 10   
افتراضي


هذه هي مشكله الي أتحدث عنها تجدونها في الصور
طبعا أستخدمت نفس الكود ولكن لشاشه 4x16

هذا بدون عمل تصفير للمصفوفه



هذا بعد عمل تصفير للمصفوفه


طبعا يوجد أمر أخر يخص الشاشات الي أكثر من عمودين وهي مشكله التزحيف
في مشاركه القادمه سنعرض لكم مشكله وكيفيه حلها

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:136
قديم 29-07-2014, 08:48 AM المشاركة 11   
افتراضي مشكله معالجه التزحيف في شاشات اكثر من عمودين


لو ترجعون لمشاركه رقم 7 فقد ذكرت الحل
وهنا سنوضح أكثر
هذا هو الكود الي تستخدمه
كود:
const char facter=16;

//********************************************//
void Lcd_Out20(char row, char col, char *txt) {

   switch (row) {
      case 1: Lcd_Cmd(128 +  0 + col - 1); break;
      case 2: Lcd_Cmd(128 + 64 + col -1); break;
      case 3: Lcd_Cmd(128 + facter + col - 1); break;
      case 4: Lcd_Cmd(128 + 64+facter + col - 1); break;
      default: return;
   }
   Lcd_Out_CP(txt);
 }

16 يعني طول شاشه 16 عنصر
لماذا 128
لوترجعون لاوامر الشاشه Lcd_Cmd لتجدون ان عنوان اول عمود هو 128


اي ان عنوان عمود الاول هو 128
وعنوان عمود الثاني هو 192 اي فرق بين عمود الاول والثاني هو 64
وعنوان عمود الثالث هو 148 اي فرق بينه وبين 128 هو 20
وعنوان عمود الرابع هو 212 اي فرق 84

يعني تستطيع كتابه الكود
كود:
void Lcd_Out20(char row, char col, char *txt) {

   switch (row) {
      case 1: Lcd_Cmd(128 +  0 + col - 1); break;
      case 2: Lcd_Cmd(192  + col -1); break;
      case 3: Lcd_Cmd(128 + facter + col - 1); break;
      case 4: Lcd_Cmd(192+facter + col - 1); break;
      default: return;
   }
   Lcd_Out_CP(txt);
 }
ولكن facter هو الي راح يحدد مقدار تزحيف فمثلا لو قلت
كود:
  case 3: Lcd_Cmd(148 + col - 1); break;
وأستخدمت شاشه 16 وليست 20 اي طول شاشه فهو معناها عنوان 148 حسب على اساس 20 وبتالي هناك 4 مربعات نقص ومنها ستجد انه سوف يتم تزحيف وفق لعنوان جديده الى 148
اي ان عنوان لشاشه 16 طبعا عمود 3 هو 144 وليس 148
وهكذا لعمود الرابع
هذا هو سبب الرئيسي في تزحيف البيانات بسبب أختلاف العناوين البدايه في عمود 3 و 4

اما البقيه هي ثوابت ومن خلال هذه نستطيع التخلص التشفيت
راجع مشاركه 7 لتعرف كيفيه الاستخدام

او يوجد حل أخر
انت أطبع الرساله وشوف كم مره شفتت وأستخدم هذا facter لتصيح

اما في مكتبه جديده فيوجد أمر وهو
كود:
Lcd0_GotoYX_16x4
دمتم في رعايه الله عزوجل


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 29-07-2014 الساعة 09:04 AM

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:136
قديم 29-07-2014, 10:50 AM المشاركة 12   
افتراضي


وهذا شرح مكتبه طبعا شرح صاحب مكتبه ولكن بلغه أنكليزيه ولكنها مفهومه
http://up.top4top.net/downloadf-top4...46741-pdf.html

طبعا شرحتها بلغه العربيه ولكن لغرض تجميع معلومات
تحياتي


abdo1992
:: مهندس جيد ::
تاريخ التسجيل: Aug 2010
الدولة: مصر
المشاركات: 225
نشاط [ abdo1992 ]
قوة السمعة:0
قديم 01-08-2014, 12:58 AM المشاركة 13   
Smile وحدة وحدة .


احب اشكر حضرتك جامد جدا لان حضرتك علمتني كتير اوي الصراحة مش في موضوع الشاشات حضرتك علمتني حاجات كتير اوي في البرمجة فجزاك الله كل خير ........بس انا عندي بقا شوية مشاكل تتلخص في التالي .
اولا : انا مش عاوز استخدم المكتبة اللي هيا w1Lcd0 لانها هيبقا في شواية مشاكل كدة مع الIC الزيادة دة .
ثانيا : انا استخدمت المكتبة الجديدة اللي هيا lcd0 بس بيحصل خطاء مش عارف اية سببة انا بستخدم P18F2620 وحطيت في ملف المشروع الملف دة p18_Lcd-4 ومش حطيتة في الميكرواس .
ودة هوا الكود

كود:
//sbit lcd
sbit LCD0_RS at LATB4_bit ;
sbit LCD0_EN at LATB5_bit ;
sbit LCD0_D4 at LATB0_bit ;
sbit LCD0_D5 at LATB1_bit ;
sbit LCD0_D6 at LATB2_bit ;
sbit LCD0_D7 at LATB3_bit ;
sbit LCD0_RS_Direction at TRISB4_bit;
sbit LCD0_EN_Direction at TRISB5_bit;
sbit LCD0_D4_Direction at TRISB0_bit;
sbit LCD0_D5_Direction at TRISB1_bit;
sbit LCD0_D6_Direction at TRISB2_bit;
sbit LCD0_D7_Direction at TRISB3_bit;

////////////////////////////////////////////////////////////////////////////////
const char x10[]                  =".....Welcome...." ;
const char x11[]                  ="Running........." ;
const char x12[]                  ="Error..........." ;
const char x13[]                  ="Finish.........." ;
const char x14[]                  ="Emergency......." ;
const char x15[]                  ="1-USB.......2-SD" ;
const char x16[]                  ="1RUN 2back 3main" ;
const char x17[]                  =".....waiting...." ;
const char x18[]                  ="....loading....." ;
const char x19[]                  ="enter_to_Back..." ;
////////////////////////////////////////////////////////////////////////////////
char mas,zz=1,yy=1,ii=1;int x;
char iitxt[7];
////////////////////////////////////////////////////////////////////////////////
void show(char i){
switch(i){
case 1 : Lcd0_GotoYX_16x4(zz,0);Lcd0_CstrOut(x10);break;
case 2 : Lcd0_GotoYX_16x4(zz,0);Lcd0_CstrOut(x11);break;
case 3 : Lcd0_GotoYX_16x4(zz,0);Lcd0_CstrOut(x12);break;
case 4 : Lcd0_GotoYX_16x4(zz,0);Lcd0_CstrOut(x13);break;
case 5 : Lcd0_GotoYX_16x4(zz,0);Lcd0_CstrOut(x14);break;
case 6 : Lcd0_GotoYX_16x4(zz,0);Lcd0_CstrOut(x15);break;
case 7 : Lcd0_GotoYX_16x4(zz,0);Lcd0_CstrOut(x16);break;
case 8 : Lcd0_GotoYX_16x4(zz,0);Lcd0_CstrOut(x17);break;
case 9 : Lcd0_GotoYX_16x4(zz,0);Lcd0_CstrOut(x18);break;
case 10: Lcd0_GotoYX_16x4(zz,0);Lcd0_CstrOut(x19);break;
}
}
////////////////////////////////////////////////////////////////////////////////
void main() {
trisa=0; porta=0;
Lcd0_Init();
uart1_init(9600);
while(1){
while(!UART1_Data_Ready()){}
 ii = UART1_Read();
while(!UART1_Data_Ready()){}
 zz = UART1_Read();
show(ii);
if(zz==4){delay_ms(20);Lcd_Cmd(_LCD_CLEAR);}
}}
ودة صورة للمشكلة حصل.
[IMG][/IMG]

ثالثا : المشاركة بتاعت حضرتك اللي بعنوان (نصيحه في البرمجه).
انا الصراحة مش قادر استوعبها خااااااااااااااااااااالص مش فاهم حاجة.
رابعا :

كود:
 Lcd0_GotoYX_16x4(0,0);Lcd0_RstrOut("welcome");
يعني ممكن اتخدمها كدة ولا لازم اسيف الرسالة في متغير الاول ؟

خامسا :
الارقام ؟ لية في اكتر من دالة علشان اكتب الرقم مش ممكن عادي اعمل

كود:
int x=12; char xtx[7];
inttostr(x,xtx);
Lcd0_GotoYX_16x4(0,0);Lcd0_RstrOut(xtx);
سادسا : انا مش فاهم اوي لية نستخدم LATx PORTx
انا قرائة المشاكل اللي في الموقع اللي حضرتك منزلة بس مش فاهم كويس لو ممكن توضيح . وبعدين احنا نستخدم ال LATx بدل ال PORTX دائما . في اي بك عادي لو كدة يبقا هما عملوا ال PORTX لية ؟ مادام ال LAT افصل . دة استخدامة في اية ودة استخدامة في اية انا مش فاهم .

احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 1 اعجاب
شكراً rashad shubita ( شكر العضو على هذه المشاركة )
اعجاب rashad shubita ( أعجبته المشاركة )

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:136
قديم 10-08-2014, 01:41 PM المشاركة 14   
افتراضي


احب اشكر حضرتك جامد جدا لان حضرتك علمتني كتير اوي الصراحة مش في موضوع الشاشات حضرتك علمتني حاجات كتير اوي في البرمجة فجزاك الله كل خير ........بس انا عندي بقا شوية مشاكل تتلخص في التالي .
اولا : انا مش عاوز استخدم المكتبة اللي هيا w1Lcd0 لانها هيبقا في شواية مشاكل كدة مع الIC الزيادة دة .
ثانيا : انا استخدمت المكتبة الجديدة اللي هيا lcd0 بس بيحصل خطاء مش عارف اية سببة انا بستخدم P18F2620 وحطيت في ملف المشروع الملف دة p18_Lcd-4 ومش حطيتة في الميكرواس .
ودة هوا الكود

كود:
//sbit lcd
sbit LCD0_RS at LATB4_bit ;
sbit LCD0_EN at LATB5_bit ;
sbit LCD0_D4 at LATB0_bit ;
sbit LCD0_D5 at LATB1_bit ;
sbit LCD0_D6 at LATB2_bit ;
sbit LCD0_D7 at LATB3_bit ;
sbit LCD0_RS_Direction at TRISB4_bit;
sbit LCD0_EN_Direction at TRISB5_bit;
sbit LCD0_D4_Direction at TRISB0_bit;
sbit LCD0_D5_Direction at TRISB1_bit;
sbit LCD0_D6_Direction at TRISB2_bit;
sbit LCD0_D7_Direction at TRISB3_bit;

////////////////////////////////////////////////////////////////////////////////
const char x10[]                  =".....Welcome...." ;
const char x11[]                  ="Running........." ;
const char x12[]                  ="Error..........." ;
const char x13[]                  ="Finish.........." ;
const char x14[]                  ="Emergency......." ;
const char x15[]                  ="1-USB.......2-SD" ;
const char x16[]                  ="1RUN 2back 3main" ;
const char x17[]                  =".....waiting...." ;
const char x18[]                  ="....loading....." ;
const char x19[]                  ="enter_to_Back..." ;
////////////////////////////////////////////////////////////////////////////////
char mas,zz=1,yy=1,ii=1;int x;
char iitxt[7];
////////////////////////////////////////////////////////////////////////////////
void show(char i){
switch(i){
case 1 : Lcd0_GotoYX_16x4(zz,0);Lcd0_CstrOut(x10);break;
case 2 : Lcd0_GotoYX_16x4(zz,0);Lcd0_CstrOut(x11);break;
case 3 : Lcd0_GotoYX_16x4(zz,0);Lcd0_CstrOut(x12);break;
case 4 : Lcd0_GotoYX_16x4(zz,0);Lcd0_CstrOut(x13);break;
case 5 : Lcd0_GotoYX_16x4(zz,0);Lcd0_CstrOut(x14);break;
case 6 : Lcd0_GotoYX_16x4(zz,0);Lcd0_CstrOut(x15);break;
case 7 : Lcd0_GotoYX_16x4(zz,0);Lcd0_CstrOut(x16);break;
case 8 : Lcd0_GotoYX_16x4(zz,0);Lcd0_CstrOut(x17);break;
case 9 : Lcd0_GotoYX_16x4(zz,0);Lcd0_CstrOut(x18);break;
case 10: Lcd0_GotoYX_16x4(zz,0);Lcd0_CstrOut(x19);break;
}
}
////////////////////////////////////////////////////////////////////////////////
void main() {
trisa=0; porta=0;
Lcd0_Init();
uart1_init(9600);
while(1){
while(!UART1_Data_Ready()){}
 ii = UART1_Read();
while(!UART1_Data_Ready()){}
 zz = UART1_Read();
show(ii);
if(zz==4){delay_ms(20);Lcd_Cmd(_LCD_CLEAR);}
}}
ودة صورة للمشكلة حصل.
[IMG][/IMG]

ثالثا : المشاركة بتاعت حضرتك اللي بعنوان (نصيحه في البرمجه).
انا الصراحة مش قادر استوعبها خااااااااااااااااااااالص مش فاهم حاجة.
رابعا :

كود:
 Lcd0_GotoYX_16x4(0,0);Lcd0_RstrOut("welcome");
يعني ممكن اتخدمها كدة ولا لازم اسيف الرسالة في متغير الاول ؟

خامسا :
الارقام ؟ لية في اكتر من دالة علشان اكتب الرقم مش ممكن عادي اعمل

كود:
int x=12; char xtx[7];
inttostr(x,xtx);
Lcd0_GotoYX_16x4(0,0);Lcd0_RstrOut(xtx);
سادسا : انا مش فاهم اوي لية نستخدم LATx PORTx
انا قرائة المشاكل اللي في الموقع اللي حضرتك منزلة بس مش فاهم كويس لو ممكن توضيح . وبعدين احنا نستخدم ال LATx بدل ال PORTX دائما . في اي بك عادي لو كدة يبقا هما عملوا ال PORTX لية ؟ مادام ال LAT افصل . دة استخدامة في اية ودة استخدامة في اية انا مش فاهم .
السلام عليكم
1- ارجو متابعه مشاركه 3 لحل مشكله حيث تجد صورتين 1 و2 نفذهما لتحل لك مشكله
2- بالنسبه لمشاركه " نصيحه في البرمجه " ملخص فكره لا تخلي مصفوفه مفتوحه دائما يعني دائما خلي اخر عنصر = 0 وطبعا 0 يعني null وطبعا أقصد مصفوفات في حاله text يعني اعرض الاحرف
لو ترجع لمشاركه رقم 10 توضح مشكله وحلها ايضا يعني اذا لم تجعل اخر عنصر مصفوفه =0 فأنه سيحصل مشاكل في عرض الرساله والصوره واضحه

ومشاركه 9 عرضت بالبدايه كيف نقلل حجم الكود لنفس مشروع وبأستخدام مكتبه جديده
وبعد ذلك عرض الكود بدون عمل تصفير للمصفوفه
فعندك حلين
1- بأستخدام مكتبه جديده وتحدد عدد عناصر الي تريد عرضها عن طريق الامر
كود:
Lcd0_CstrNout
2- اذا لم تستخدم مكتبه فعليك
زياده عدد عناصر مصفوفه فأنا مثلا اريد اعرض فقط 16 اذا أخبره عندي مصفوفه عدد عناصرها 17 وعنصر أخير لغرض غلق مصفوفه وطبعا نجعله =0 ويعني null في اسكي كود
كود:
char text_lcd[17];
كود:
for(x=0;x<17;x++)
                         {
                           if(x==16){text_lcd[x]=0;break;}// reset text_lcd[x] this verry nessary for avoid overwrited
                          text_lcd[x]=txt[x+y]; // 15+42

                          }

3- بالنسبه
كود:
Lcd0_GotoYX_16x4(0,0);
Lcd0_RstrOut("welcome");
انا لا ارى اي مشكله الامر
كود:
Lcd0_GotoYX_16x4(0,0
يحدد رقم صف وعمود على شاشه
والامر Lcd0_RstrOut بيعرض الرساله

وبالطبع كلما تريد عرض رساله او الارقام تحدد رقم صف وعمود في شاشه حتى يعرض رساله من نقطه الي حددتها وان لم تحدد اي نقطه فهو راح يكمل من اخر مكان وصل اليه مؤشر

4- LATx PORTx
بأختصار PORTx فيه مشاكل وهو يمكن ان يتأثر به تغيرات وطبعا حسب هاردوير يعني كل بن أكيد عليه متسعات (( طبعا استاتيكيه او عاديه )) استاتيكيه أقصد متسعه الي تتولد مابين نقطتين بينهما فرق جهد
ومشكله هي عندما تقول اجعل بن 0 من بورت b =1 ربما يصبح 1 ومن ثم يرجع الى 0 بسبب عدم وجود وقت كافي لتفريق متسعه موجوده على هذا البن لذا ينصح بوضع ديلي لكي يتم شحن متسعه او تفريقها
بينما LATx فهذا البورت معزول عزل تام فهو لايتأثر بأي متسعات

5- بالنسبه متى يستخدم PORTx or LATx
فملاحظه موجوده في اخر الصفحه للكتاب الي رفقته وهذا مقتبس منها


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 10-08-2014 الساعة 02:03 PM
احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 1 اعجاب
شكراً rashad shubita ( شكر العضو على هذه المشاركة )
اعجاب rashad shubita ( أعجبته المشاركة )

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:136
قديم 12-08-2014, 05:52 PM المشاركة 15   
x4


السلام عليكم
أن شالله قريبا راح أجمع كل مكتبات LCD الجديده في ملف واحد تضيفه الى كومبايلر مايكروسي برو ليصبح جزء من مكتبات موجوده وعندها لاتحتاج أضافه اي مكتبه الى مشروع لانها اساسا راح أصير جزء من كومبايلر وبتالي راح تتعامل معها حال حال اي مكتبه موجوده
صراحه انا وصلت الى 50% بس أحتاج بعض الوقت لاكمال ملف وأضافه الامثله وتجربه ذلك وبعدها سوف أعطيكم ملف مع بعض التعليمات لكيفيه أضافته الى كومبايلر
تحياتي


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:136
قديم 13-08-2014, 02:57 AM المشاركة 16   
افتراضي


السلام عليكم
أن شالله قريبا راح أجمع كل مكتبات LCD الجديده في ملف واحد تضيفه الى كومبايلر مايكروسي برو ليصبح جزء من مكتبات موجوده وعندها لاتحتاج أضافه اي مكتبه الى مشروع لانها اساسا راح أصير جزء من كومبايلر وبتالي راح تتعامل معها حال حال اي مكتبه موجوده
صراحه انا وصلت الى 50% بس أحتاج بعض الوقت لاكمال ملف وأضافه الامثله وتجربه ذلك وبعدها سوف أعطيكم ملف مع بعض التعليمات لكيفيه أضافته الى كومبايلر
تحياتي
السلام عليكم

تفضلو هذا ملف
http://up.top4top.net/downloadf-top4...bf001-rar.html
او
https://www.mediafire.com/?3u25qin3hcf15j1

في هذا موضوع انت تستخدم مكتبه شاشه حال حال مكتبات موجوده في كومبايلر وهي تظهر في Library manager

ارجو متابعه هذا الموضوع لكيفيه أضافته الى مكتبه كومبايلر
http://www.qariya.info/vb/showthread...535#post892535
أبتداءا من مشاركه 91

ملاحظه مهمه// عليك بذهاب الى Library manager لتحديد مكتبه الي تستخدمها لكي تعمل معاك بنجاح

وهذه امثله على أستخدام مكتبه
http://up.top4top.net/downloadf-top4...25ae1-rar.html

تحياتي

احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 1 اعجاب
شكراً rashad shubita ( شكر العضو على هذه المشاركة )
اعجاب rashad shubita ( أعجبته المشاركة )
إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 06:18 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025