الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الى خبراء Pic +keypad+lcd مشروع مش كامل

بدأه awad bekhet في 30 أغسطس 2009 · 6 رد · 2,347 مشاهدة · في الميكروكنترولر (المتحكم) و الدوائر الرقمية و المنطقية
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

يا خبراء

انا عملت مشروع عبارة عن تحكم فى ليدات كتتتتير من خلال الpic واستخدمت

pic 16F871

دة كويس ولا لأ يعنى لو ممكن اغيرة

مع العلم انى محتاج مداخل لل keypad ومخارج lcd

بالأضافة الى 14 مخرج لليدات

ثانيا بالنسبة لشرح البرنامج هوا موجود ف الملف فياريت لو حد يرد عليا

بس بسرعة الله يخليكم علشان انا شغال فية من زمان

الملف هنا ف الرابط او من المرفقات

http://www.qariya.com/vb/showthread.php?t=51021#ixzz0Pc0e21K7

LCD_KEYPAD_PIC.rar

Faculty of Engineering

Computers and Systems Department

#2

المايكروكنترولر مناسب لمشروعك

بس اعتقد انك لازم تعمل ملتبلكسر كود لليد عشان تقدر تشغل 14 ليد عن طريق 8 مخارج فقط وتقلل من التوصيلات واساهلاك التيار

عموما شكل البرنامج كله ماجميل يعنى انت لو حملت قراءة لوحة المفاتيح لمتغير فور قراءة اللوحة ومن ثم قارنتها عن طريق التعليمة

switch

بتختصر نص البرنامج .

على كل حال المشكلة فى برنامجك هى السطور التالية

wait1:
	kp1=Keypad_Released();
	if((kp1==0)||(kp1==16)||(kp1==14)) goto wait1;

لما تضغط على

*

او

#

البوينتر بيمشى للعنوان

Wait1

وبتالى بيستمر اللوب الى ان تضغط اى رقم بين ال

0 - 9

عن أبي هريرة رضي الله عنه عن النبي صلى الله عليه وسلم أنه قال: سيأتي على الناس زمان سنوات خداعات: يصدق فيها الكاذب ويكذب فيها الصادق، ويؤتمن فيها الخائن ويخون فيها الأمين، وينطق فيها الرويبضة. قيل يا رسول الله وما الرويبضة؟ قال: الرجل التافه ينطق في أمر العامة . رواه احمد والحاكم وصححه الالبانى من حديث ابى هريره.‏

#3

السلام عليكم

جرب الكود بعد عملية التعديل فى الملف الرفق

انا مافاهم الهدف من المشروع لكن على كل حال حليت المشكلة المطروحة فى الملف المرفق

//defiine functions
void init(void);
void writenum1(void);
void writenum2(void);
void out_leds(void);

//define variables
unsigned int  kp1 ,cnt , kp2 , location = 16;

//main program
void main(void)
{
  init();
  lcd_cmd(LCD_CLEAR);
   Lcd_out(2,1,"#=OK  *=CANCEL");
	Lcd_out(1,1,"Enter Numbers:   ");
  while(1)
  {


  do
	  //--- un-comment one of the keypad reading functions
	  kp1 = Keypad_Released();
	  //kp = Keypad_Read();
	while (!kp1);



switch (kp1) {
  case 15: Lcd_out(1, location, "0"); break;
  case 4: Lcd_out(1, location, "1"); break;
  case 3: Lcd_out(1,location,"2"); break;
  case 2: Lcd_out(1, location, "3"); break;
  case 8: Lcd_out(1, location, "4"); break;
  case 7: Lcd_out(1,location,"5"); break;
  case 6: Lcd_out(1, location, "6"); break;
  case 12: Lcd_out(1, location, "7"); break;
  case 11: Lcd_out(1,location,"8"); break;
   case 10: Lcd_out(1, location, "9"); break;
  case 16:
	;
		 {Lcd_out(1,16,"	  ");
		 location =17;
	   }
  break;
   case 14: {Lcd_out(1, 16, "OK");
		 location =17;

	   out_leds() ;




	}
   break;


}
	if (location == 16) {location ++;
			 kp2 = kp1;
	}
	else  location =16;


}
}
//to initilize the program
void init(void)
{
 TRISA=0x00; PORTA=0x00;
 TRISB=0x00;
 TRISC=0xFF;
 TRISD=0x00; PORTD=0x00;
 TRISE=0x00; PORTE=0x00;
 Lcd_Init(&PORTB);
 Keypad_Init(&PORTC);
 Lcd_cmd(LCD_CURSOR_OFF);
 Lcd_cmd(LCD_CLEAR);
 for(cnt=0;cnt<3;cnt++)
 {
  Lcd_out(1,7,"WELCOME");
  delay_ms(200);
  Lcd_cmd(LCD_CLEAR);
  delay_ms(200);
 }

}
void out_leds(void)
{
 if(kp1==4)  PORTD=0B00000011;
 if(kp1==3)  PORTD=0B01101101;
 if(kp1==2)  PORTD=0B01100111;
 if(kp1==8)  PORTD=0B01010011;
 if(kp1==7)  PORTD=0B01110110;
 if(kp1==6)  PORTD=0B01111110;
 if(kp1==12)  PORTD=0B00100011;
 if(kp1==11)  PORTD=0B01111111;
 if(kp1==10)  PORTD=0B01110111;
 if(kp1==15)  PORTD=0B00111111;

 if(kp2==4)  PORTE=0B000;PORTA=0B000011;
 if(kp2==3)  PORTE=0B001;PORTA=0B101101;
 if(kp2==2)  PORTE=0B001;PORTA=0B100111;
 if(kp2==8)  PORTE=0B001;PORTA=0B010011;
 if(kp2==7)  PORTE=0B001;PORTA=0B110110;
 if(kp2==6)  PORTE=0B001;PORTA=0B111110;
 if(kp2==12)  PORTE=0B000;PORTA=0B100011;
 if(kp2==11)  PORTE=0B001;PORTA=0B111111;
 if(kp2==10)  PORTE=0B001;PORTA=0B110111;
 if(kp2==15)  PORTE=0B000;PORTA=0B111111;
}

LCD_KEYPAD_PIC.zip

تم تعديل هذه المشاركة بواسطة محمد الامين في 30 أغسطس 2009 في 18:28

عن أبي هريرة رضي الله عنه عن النبي صلى الله عليه وسلم أنه قال: سيأتي على الناس زمان سنوات خداعات: يصدق فيها الكاذب ويكذب فيها الصادق، ويؤتمن فيها الخائن ويخون فيها الأمين، وينطق فيها الرويبضة. قيل يا رسول الله وما الرويبضة؟ قال: الرجل التافه ينطق في أمر العامة . رواه احمد والحاكم وصححه الالبانى من حديث ابى هريره.‏

#4

مشكوووووووووووووووور جدا جدا جدا أخى

محمد الأمين

على ردك

وانا هجرب الكود الجديد ولما يشتغل ان شاء الله هعرفك

ومشكووور تانى

Faculty of Engineering

Computers and Systems Department

#5

على فكرة انا جربتة وهوا مكنش زى ما انا عايز

بس خدت منه فكرة switch case وهيا دى اللى ظبطت معايا الكود

وشكرا تانى ليك

Faculty of Engineering

Computers and Systems Department

#6
awad bekhet كتب:
على فكرة انا جربتة وهوا مكنش زى ما انا عايز

بس خدت منه فكرة switch case وهيا دى اللى ظبطت معايا الكود

وشكرا تانى ليك

ممتاز :wink:

بارك الله فيك

عن أبي هريرة رضي الله عنه عن النبي صلى الله عليه وسلم أنه قال: سيأتي على الناس زمان سنوات خداعات: يصدق فيها الكاذب ويكذب فيها الصادق، ويؤتمن فيها الخائن ويخون فيها الأمين، وينطق فيها الرويبضة. قيل يا رسول الله وما الرويبضة؟ قال: الرجل التافه ينطق في أمر العامة . رواه احمد والحاكم وصححه الالبانى من حديث ابى هريره.‏

#7

شكرا تانى ليك

ولو عايز تعرف الهدف من المشروع

هوا فى المرفقات

LCD_KEYPAD.rar

تم تعديل هذه المشاركة بواسطة awad bekhet في 4 سبتمبر 2009 في 23:14

Faculty of Engineering

Computers and Systems Department

مواضيع مشابهة