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

   

الصورة الرمزية abdellah48
abdellah48
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2010
الدولة: المغرب
المشاركات: 157
نشاط [ abdellah48 ]
قوة السمعة:
قديم 02-08-2012, 03:53 PM المشاركة 25   
افتراضي



اليكم مثال اخر لتحريك كلمة حرفا بحرف واعادة ذلك مرارا
كود:
  // LCD module connections
sbit LCD_RS at RB2_bit;
sbit LCD_EN at RB3_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;
//pin direction
sbit LCD_RS_Direction at TRISB2_bit;
sbit LCD_EN_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;
// End LCD module connections
  char text[21] = "microelectronika";
void main(){ char i=0;pcon.f3=1;
  Lcd_Init();                        // Initialize Lcd
  Lcd_Cmd(_LCD_CLEAR);               // Clear display
  Lcd_Cmd(_LCD_CURSOR_OFF);          // Cursor off
   for(;;){
   for(i=0;i<17;i++) {
      lcd_chr(1,i,text[i-1]);
      delay_ms(150);
   }
 lcd_cmd(_lcd_clear);

}
كود:

}
اتمنى أن يطرح احد سؤالا ما لتكون مناقشة مفيدة لا أحد يريييد النقاش أخرجوا ما لديكم لتفيد وتستفيد ولا تكتموا ما اتاكم الله من العلم .


التعديل الأخير تم بواسطة : abdellah48 بتاريخ 02-08-2012 الساعة 03:57 PM
اعلانات

الصورة الرمزية kaoutar11
kaoutar11
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2012
الدولة: Algeria
المشاركات: 144
نشاط [ kaoutar11 ]
قوة السمعة:
قديم 03-08-2012, 02:05 AM المشاركة 26   
ha


أختي الكريمة هل اشتغل معك الكود , سأطرح مثالا اخر ان شاء الله أليس لديك اية سؤال حول lcd ?
السلام عليك اخي في الحقيقة عندما قمت بتحميل النسخة الجديدة ظهر لي نفس الخطأ لم اعرف لحد الن ما هو السبب علما انني اعدت كتابة البرنامج بالأحرف الصغيرة و لكن لا جدوى كأن الميكروسي لا يعرف تعليمة sbit lcd_rs_at rb 32_bitلأنه يظهر الخطا هنا, و عن عدم طرحي لهذه الإشكالية هو انني لا اريد ان ّأعيق التقدم في الشرح ,

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

الصورة الرمزية kaoutar11
kaoutar11
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2012
الدولة: Algeria
المشاركات: 144
نشاط [ kaoutar11 ]
قوة السمعة:
قديم 03-08-2012, 02:33 AM المشاركة 27   
افتراضي


اليكم هذا المثال موجود بموقع الميكروسي لكيفية تحريك كلمة ما من خلاله تتعرف على أوامر للتحريك نحو اليمين واليسار تفضلوا:
كود:
// LCD module connections
sbit LCD_RS at RB2_bit;
sbit LCD_EN at RB3_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;

sbit LCD_RS_Direction at TRISB2_bit;
sbit LCD_EN_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;
// End LCD module connections

char txt1[] = "mikroElektronika";
char txt2[] = "EasyPIC6";
char txt3[] = "Lcd4bit";
char txt4[] = "example";
char i;                              // Loop variable

void Move_Delay() {                  // Function used for text moving
  Delay_ms(500);                     // You can change the moving speed here
                  }
  void main(){ pcon.f3=1;


  Lcd_Init();                        // Initialize LCD

  Lcd_Cmd(_LCD_CLEAR);               // Clear display
  Lcd_Cmd(_LCD_CURSOR_OFF);          // Cursor off
  Lcd_Out(1,6,txt3);                 // Write text in first row

  Lcd_Out(2,6,txt4);                 // Write text in second row
  Delay_ms(2000);
  Lcd_Cmd(_LCD_CLEAR);               // Clear display

  Lcd_Out(1,1,txt1);                 // Write text in first row
  Lcd_Out(2,5,txt2);                 // Write text in second row

  Delay_ms(2000);

  // Moving text
  for(i=0; i<4; i++) {               // Move text to the right 4 times
    Lcd_Cmd(_LCD_SHIFT_RIGHT);
    Move_Delay();
  }

  while(1) {                         // Endless loop
    for(i=0; i<8; i++) {             // Move text to the left 7 times
      Lcd_Cmd(_Lcd_shift_left);
      Move_Delay();
    }

    for(i=0; i<8; i++) {             // Move text to the right 7 times
      Lcd_Cmd(_LCD_SHIFT_RIGHT);
      Move_Delay();
    }
  }
}
هذه الجملة
void Move_Delay()هي الدالة المسؤولة عن التحريك ويمكن تغيير الزمن الموجود داخلها لتسريع أو جعل الحركة بطيئة ,
مابداخل void main() :
نقوم بتصفير الشاشة من خلال الأمر
كود:
Lcd_Cmd(_LCD_CLEAR); 
والغاء المؤشر من خلال الأمر
كود:
 Lcd_Cmd(_LCD_CURSOR_OFF); 
ثم كتابة النص lcd4bit في الصف الأول العمود 6 وأيضا كتابة النص 4 example في الصف 2 العمود 6 ثم ننتظر تانيتين
كود:
Lcd_Out(1,6,txt3);Lcd_Out(2,6,txt4); 
ونقوم بتصفير الشاشة من خلال الأمر
كود:
Lcd_Cmd(_LCD_CLEAR);
بعدها نكتب انص microelectronica في الصف 1 العمود 5 وأيضا كتابة النص easypic6 في الصف 2 العمود 5 ثم ننتظر لمدة ثانيتين بعدها نقوم بتحريك الجملتين mecroelectronika و easypic6 أربع مرات نحو اليمين
كود:

  for(i=0; i<4; i++) 
جملة for هي للعد 4 مرات وينفد مابداخلها
كود:
 Lcd_Cmd(_LCD_SHIFT_RIGHT);
      Move_Delay()
بعده ندخل في حلقة تكرارية لا متناهية
كود:
while(1)
سينفذ ما بداخلها
تحريك الجملتين 7 مرات نحو اليسار ثم 7 نحو اليمين وتكرر هذه العملية .
السلام عليكم ارجوا منك أستفسار حول مفهوم
bit LCD_RS at RB2_bit;
sbit LCD_EN at RB3_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;

sbit LCD_RS_Direction at TRISB2_bit;
sbit LCD_EN_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;
هل هي مهمة في توصيل شاشة lcd? و ما الفرق بين

it LCD_RS at RB2_bit;
sbit LCD_EN at RB3_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;
و بين

sbit LCD_RS_Direction at TRISB2_bit;
sbit LCD_EN_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;
و عند قراءة الكود لم أفهم ما هية التعليمة ipcon.F3=1 ما هو دورها في البرنامج , أرجوا ان لا أكون قد أثقلت عليك بالأسئلة


الصورة الرمزية kaoutar11
kaoutar11
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2012
الدولة: Algeria
المشاركات: 144
نشاط [ kaoutar11 ]
قوة السمعة:
قديم 03-08-2012, 02:41 AM المشاركة 28   
افتراضي


لقد و جدت هذا السيت إلى أن الأمر مبكرا قليلا لكي نخوظوا في هاته المواضيع الجديدة إلى انني أريد ان أريكم إياه
http://projectproto.blogspot.in/2010...sm-models.html


الصورة الرمزية abdellah48
abdellah48
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2010
الدولة: المغرب
المشاركات: 157
نشاط [ abdellah48 ]
قوة السمعة:
قديم 03-08-2012, 08:43 AM المشاركة 29   
افتراضي


أختي الكريمة هذه التعليمة pcon.f3=1 نستعملهاعندما نريد استعمال التردد 4mhz والتعليمة pcon.f3=0 نستعملها عندما نريد استعمال التردد 37khz للمذبذب الداخلي للميكروكنترولر pic16f628a لنستغني عن المذبذب الخارجي الذي نشتريه وبالتالي نوفر القليل من المال ويمكنك معرفة هل الميكروكنترولر يحتوي على مذبذب داخلي ام لا؟ كي تستفيدي من هذه الخاصية الاستاذ أحمد قد علمنا ذلك في كتابه (المفتاح البسيط لاستخدام أنواع مختلفة من الميكروكنترولر) اليك الكتاب:http://www.mediafire.com/?w63y114dv4302xn واقرئيه جيداولا تستهيني به وأما فيمايخص
كود:
// LCD module connections
sbit LCD_RS at RB2_bit;
sbit LCD_EN at RB3_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;
//pin direction
sbit LCD_RS_Direction at TRISB2_bit;
sbit LCD_EN_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;
// End LCD module connections
فهي أوامر لتهيئة الميكروكنترولر كي يتعرف عل شاشة lcd فيمكنك تغيير ها حسب طريقة ربطك أرجل الميكروكنترولر مع الشاشة مثلا أن تضعي rs الشاشة مع الرجل b0 و en مع الرجل b1 وd7 مع الرجل b4 الى اخره شريطة أن تغيري الاوامر الموجودة بالاعلى هذه الاخيرة ضرورية كي يشتغل البرنامج وأيضا على الواقع اليك هذا الرابط للاستفادة :http://www.mikroe.com/eng/products/view/7/mikroc-pro-for-pic/
أدخلي الى librairies ثم الى lcd libraries





التعديل الأخير تم بواسطة : abdellah48 بتاريخ 03-08-2012 الساعة 08:50 AM

الصورة الرمزية kaoutar11
kaoutar11
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2012
الدولة: Algeria
المشاركات: 144
نشاط [ kaoutar11 ]
قوة السمعة:
قديم 05-08-2012, 02:54 AM المشاركة 30   
ha


أختي الكريمة هذه التعليمة pcon.f3=1 نستعملهاعندما نريد استعمال التردد 4mhz والتعليمة pcon.f3=0 نستعملها عندما نريد استعمال التردد 37khz للمذبذب الداخلي للميكروكنترولر pic16f628a لنستغني عن المذبذب الخارجي الذي نشتريه وبالتالي نوفر القليل من المال ويمكنك معرفة هل الميكروكنترولر يحتوي على مذبذب داخلي ام لا؟ كي تستفيدي من هذه الخاصية الاستاذ أحمد قد علمنا ذلك في كتابه (المفتاح البسيط لاستخدام أنواع مختلفة من الميكروكنترولر) اليك الكتاب:http://www.mediafire.com/?w63y114dv4302xn واقرئيه جيداولا تستهيني به وأما فيمايخص
كود:
// LCD module connections
sbit LCD_RS at RB2_bit;
sbit LCD_EN at RB3_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;
//pin direction
sbit LCD_RS_Direction at TRISB2_bit;
sbit LCD_EN_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;
// End LCD module connections
فهي أوامر لتهيئة الميكروكنترولر كي يتعرف عل شاشة lcd فيمكنك تغيير ها حسب طريقة ربطك أرجل الميكروكنترولر مع الشاشة مثلا أن تضعي rs الشاشة مع الرجل b0 و en مع الرجل b1 وd7 مع الرجل b4 الى اخره شريطة أن تغيري الاوامر الموجودة بالاعلى هذه الاخيرة ضرورية كي يشتغل البرنامج وأيضا على الواقع اليك هذا الرابط للاستفادة :http://www.mikroe.com/eng/products/view/7/mikroc-pro-for-pic/
أدخلي الى librairies ثم الى lcd libraries



بارك الله فيك أخي


الصورة الرمزية kaoutar11
kaoutar11
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2012
الدولة: Algeria
المشاركات: 144
نشاط [ kaoutar11 ]
قوة السمعة:
قديم 05-08-2012, 03:26 AM المشاركة 31   
افتراضي


كثر الله من أمثالك



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