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

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

محمد يسرى محمد
:: مهندس متميز ::
تاريخ التسجيل: Apr 2010
المشاركات: 525
نشاط [ محمد يسرى محمد ]
قوة السمعة:0
قديم 23-10-2012, 05:16 PM المشاركة 1   
افتراضي مشكلة فى lcd Twitter FaceBook Google+



السلام عليكم
اخوانى الاعزاء
عندى مشكلة اريدكم ان تساعدونى فى حلها
عندى برنامج لقياس درجة حرارة عن طريق lm35 و pic16f877a
وتظهر درجة الحرارة المقاسة على شاشة lcd 2*16
عندما جربت البرنامج على البروتيوس فانه يعمل بشكل جيد وكذلك عندما شغلته على دائرة testboard
اذن اين المشكلة ؟؟
عندما اردت ان اعمل pcb للدائرة وجدت انه يجب ان يتم تغيير بورت الاخراج الذى تشتغل عليه ال lcd
ولذلك وضعت ال lcd على اطراف b0-b1-b2-b3-b4-b5
بحيث تكون الاطراف ( b5-b4-b3-b2) موصلة باطراف الداتا فى الشاشة
اما b0 فيتم توصيله على rs
و b1 فيتم توصيله على enable
وعندما اردت تعريف تلك البنات فى البرنامج وجدت ان الوضع الافتراضى لتوصيل ال lcd هو ان يتم التوصيل من b2 الى b7
وحاولت كثيرا ان اعيد ضبط بنات البورت b و لكن الشاشة دائما تظل بيضاء بالرغم من ان باقى البرنامج يعمل على باقى الخروج
والغريب ان البروتيوس هو الاخر عند تشغيله على الوضع الجديد ( البنات موصلة من b0 الى b5) فانه يعمل بشكل جيد
فلماذا لا تعمل الشاشة عند توصيلها على الوضع الجديد رغم تعديل البرمجة لتناسب ذلك الوضع ؟؟
وشكرا

اعلانات

الصورة الرمزية fathi-mohmed
fathi-mohmed
:: مهندس متميز ::
تاريخ التسجيل: Aug 2010
الدولة: القاهرة
المشاركات: 518
نشاط [ fathi-mohmed ]
قوة السمعة:0
قديم 23-10-2012, 06:10 PM المشاركة 2   
افتراضي


أخي العزيز لازم تعرف ال الشاشة تركب علي اي الاطراف اولا
وذلك بالاوامر التالية
sbit lcd_rs at RD0_bit;
sbit lcd_en at RD1_bit;
sbit lcd_d7 at RD7_bit;
sbit lcd_d6 at RD6_bit;
sbit lcd_d5 at RD5_bit;
sbit lcd_d4 at RD4_bit;

sbit LCD_RS_Direction at TRISD0_bit;
sbit LCD_EN_Direction at TRISD1_bit;
sbit LCD_D7_Direction at TRISD7_bit;
sbit LCD_D6_Direction at TRISD6_bit;
sbit LCD_D5_Direction at TRISD5_bit;
sbit LCD_D4_Direction at TRISD4_bit;
sbit LCD_D3_Direction at TRISD3_bit;
sbit LCD_D2_Direction at TRISD2_bit;

وغير البورت اللي انت تريد الاخراج عالية

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

محمد يسرى محمد
:: مهندس متميز ::
تاريخ التسجيل: Apr 2010
المشاركات: 525
نشاط [ محمد يسرى محمد ]
قوة السمعة:0
قديم 23-10-2012, 06:44 PM المشاركة 3   
افتراضي


اخي العزيز شكرا علي الرد بس في ملاحظة انا استخدمت ميكرو بيزك واعتقد ان التعليمات التي وضعتها هي خاصة بالميكروسي فهل يمكن استخدامها علي المايكروبيزك ايضا ام انه يوجد بها تغيير ؟ وشكرا


الصورة الرمزية azouvb.net
azouvb.net
:: عضو فضي ::
تاريخ التسجيل: May 2009
المشاركات: 152
نشاط [ azouvb.net ]
قوة السمعة:67
قديم 23-10-2012, 07:24 PM المشاركة 4   
افتراضي


السلام عليكم

تفضل
dim LCD_RS as sbit at RB4_bit
LCD_EN as sbit at RB5_bit
LCD_D4 as sbit at RB0_bit
LCD_D5 as sbit at RB1_bit
LCD_D6 as sbit at RB2_bit
LCD_D7 as sbit at RB3_bit

LCD_RS_Direction as sbit at TRISB4_bit
LCD_EN_Direction as sbit at TRISB5_bit
LCD_D4_Direction as sbit at TRISB0_bit
LCD_D5_Direction as sbit at TRISB1_bit
LCD_D6_Direction as sbit at TRISB2_bit
LCD_D7_Direction as sbit at TRISB3_bit

و ايضا هناك مكتبة في دليل الميكروبيسك به جميع اوامر lcd
بالتوفيق


محمد يسرى محمد
:: مهندس متميز ::
تاريخ التسجيل: Apr 2010
المشاركات: 525
نشاط [ محمد يسرى محمد ]
قوة السمعة:0
قديم 23-10-2012, 07:26 PM المشاركة 5   
افتراضي


اخي العزيز شكرا علي الرد بس في ملاحظة انا استخدمت ميكرو بيزك واعتقد ان التعليمات التي وضعتها هي خاصة بالميكروسي فهل يمكن استخدامها علي المايكروبيزك ايضا ام انه يوجد بها تغيير ؟ وشكرا


محمد يسرى محمد
:: مهندس متميز ::
تاريخ التسجيل: Apr 2010
المشاركات: 525
نشاط [ محمد يسرى محمد ]
قوة السمعة:0
قديم 23-10-2012, 08:50 PM المشاركة 6   
افتراضي


السلام عليكم

تفضل
dim LCD_RS as sbit at RB4_bit
LCD_EN as sbit at RB5_bit
LCD_D4 as sbit at RB0_bit
LCD_D5 as sbit at RB1_bit
LCD_D6 as sbit at RB2_bit
LCD_D7 as sbit at RB3_bit

LCD_RS_Direction as sbit at TRISB4_bit
LCD_EN_Direction as sbit at TRISB5_bit
LCD_D4_Direction as sbit at TRISB0_bit
LCD_D5_Direction as sbit at TRISB1_bit
LCD_D6_Direction as sbit at TRISB2_bit
LCD_D7_Direction as sbit at TRISB3_bit

و ايضا هناك مكتبة في دليل الميكروبيسك به جميع اوامر lcd
بالتوفيق
اخى العزيز
هل تلك الاوامر هى التى سوف استخدمها فى الميكروبيزك ؟؟
وشكرا


محمد يسرى محمد
:: مهندس متميز ::
تاريخ التسجيل: Apr 2010
المشاركات: 525
نشاط [ محمد يسرى محمد ]
قوة السمعة:0
قديم 23-10-2012, 09:03 PM المشاركة 7   
افتراضي


السلام عليكم
اخوانى الاعزاء
هل يمكن ان يضع احدكم برنامج صغير لعرض اى كلمة على ال lcd سواء بلغة الميكرو بيزك او بالمايكروسى
وذلك حتى استطيع ان اقوم بتعديل البرنامج الموجود عندى
بحيث يكون :
RS موصلة ب RB0
ENABLE موصلة ب RB1
طرف رقم 11 فى الشاشة موصل ب RB2
طرف رقم 12 فى الشاشة موصل ب RB3
طرف رقم 13 فى الشاشة موصل ب RB4
طرف رقم 14 فى الشاشة موصل ب RB5
مع مراعاة ان الكريستالة المستخدمة 4 ميجا هرتز
برجاء وضع البرنامج وملف الهيكس الخاص به
ياريت حد يساعدنى ضرورى


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:395
قديم 24-10-2012, 05:38 AM المشاركة 8   
افتراضي


هذا كود شغال لاضهار الارقام بالكسور العشرية على الشاشة

[CENTER]
كود:
 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;
كود:
 char i=0;
char y[15];
float x=0;
float k=0;
void inc_dcr(float x)
              {

               floattostr(x,y);
               lcd_cmd(_lcd_clear);
               lcd_out(1,4,y);
              }

void main()
 {cmcon=7;
 trisa=3;
  lcd_init();
  Lcd_Cmd(_LCD_CLEAR);
  Lcd_Cmd(_LCD_CURSOR_OFF);
  lcd_out(1,1,"Download");
  for(i=0;i<8;i++)
                 {delay_ms(700);
                 lcd_out_cp(".");
                 }
  delay_ms(500);
  Lcd_Cmd(_LCD_CLEAR);
  lcd_out(1,4,"0");
  while(1)
          {
           if(porta.f0==0){while(porta.f0==0){}k+=0.1;inc_dcr(k);}
           if(porta.f1==0){while(porta.f1==0){}k-=0.1;if(k < 0.1)k=0;inc_dcr(k);}
          }

  }
الاوامر التي تخص تهيئة الشاشة هي التي باللون الاحمر و بدونها لا تعمل الشاشة ...
وانت ربما لم تكتب الامر الاخير منها ...
طبعا هذا الكود باستخدام المتحكم 628[/CENTER]


التعديل الأخير تم بواسطة : حيدر علاج حسن بتاريخ 24-10-2012 الساعة 05:42 AM
إضافة رد

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

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

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


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

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