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

   

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 07-03-2012, 05:29 PM المشاركة 9   
افتراضي



الدالة الرئيسية

الجزء ما قبل الحلقة الغير منتهية

كود:
void main()
{
 //ADCON1 |= 0x07;      // Configure AN pins as digital
 //TRISA = 0x00;          // set direction to be output
 TRISB=0;
 PORTB=0;
 
 TRISC=0;
 PORTC=0;
 Keypad_Init();                           // Initialize Keypad
 Lcd_Init();                              // Initialize Lcd
 code_read();
 //If no code is stored then default is 2345
 if(user1[0] == 0xFF && user1[1] == 0xFF && user1[2] == 0xFF && user1[3] == 0xFF )
 {
 EEPROM_Write(0x00,'2');               // Write some data at address 00
 delay_20ms();
 EEPROM_Write(0x01,'3');               // Write some data at address 02
 delay_20ms();
 EEPROM_Write(0x02,'4');               // Write some data at address 04
 delay_20ms();
 EEPROM_Write(0x03,'5');               // Write some data at address 08
 }
 code_read();
 Lcd_Cmd(_LCD_CLEAR);                      // Clear display
 Lcd_Cmd(_LCD_CURSOR_OFF);                 // Cursor off
 Lcd_Out(1, 1,msg1 );
 delay_ms(2000);
 //Lcd_Cmd(_LCD_CLEAR);                      // Clear display

اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 07-03-2012, 05:30 PM المشاركة 10   
افتراضي


حلقة التكرار الغير منتهية :



كود:
do
 {
  i = 0;
  code_enter();
  if(code1[0] == 42)
  {
   Lcd_Cmd(_LCD_CLEAR);                      // Clear display
   Lcd_Out(1, 1,msg2);
   //delay_ms(500);
   i = 0;
   code_enter();
   code_enter();
   code_enter();
   code_enter();
   code_enter();
   if(code1[0] == '2' && code1[1] == '3' && code1[2] == '4' && code1[3] == '5' && code1[4] == '5')  //check master code
   {
    code_enter();
    if(code1[5] == 35)
    {
     change_code();
    }
   }
   if(code1[0] == user1[0] && code1[1] == user1[1] && code1[2] == user1[2] && code1[3] == user1[3] && code1[4] == 35) //compare code with store one
   {
    Lcd_Cmd(_LCD_CLEAR);                      // Clear display
    Lcd_Out(1, 1, msg3);// "Access Granted"
    PORTB.B0  =1;
    PORTC.B0  =1;
    delay_ms(5000);
    PORTB.B0  =0;
    PORTC.B0  =0;
    Lcd_Out(1, 1, msg1);// "Welcome ......."
   }
   else
   {
    Lcd_Cmd(_LCD_CLEAR);
    Lcd_Out(1, 1,msg4 ); //   "Access Denied"
    PORTB.B1  =1;
    PORTC.B0  =1;
    delay_ms(2000);
    PORTB.B1  =0;
    PORTC.B0  =0;
    Lcd_Out(1, 1, msg1);// "Welcome ......."
   }
  }
 }while(1);
}

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

ROOH ALGHALA
:: مهندس ::
تاريخ التسجيل: Oct 2013
المشاركات: 13
نشاط [ ROOH ALGHALA ]
قوة السمعة:
قديم 28-10-2013, 11:31 PM المشاركة 11   
افتراضي


السلام عليكم ورحمة الله وبركاته مشكور اخ F. Abdelaziz عالاكواد والشرح <<<طبقت نفس الاكواد لكن يظهر ان في خطاء في بعض الاكواد بداية من هنا
كود:
}
 code_read();
  Lcd_Cmd(_LCD_CLEAR); //Clear Display
   Lcd_Cmd(_LCD_CURSOR_OFF); //Cursor Off
 Lcd_Out(1, 1, msg1);
 Delay_ms(2000);
   //Lcd_Cmd(_LCD_CLEAR); //Clear Display
  do
  {
الاخطاء اللي ظهرت عندي في هذه السطور واسماء الاخطاء هي

specifier needed
syntax error:')' expected, but '1' found
invalid declarator expected'(' or identifier
identifier redefined
'msg1' identifier redfined
internal error

طبعا البرنامج اللي استخدمه هو ميكروسي لبرمجة البيك
حاولت بتغيير الاكواد وفحصها لكن لا اعلم مالخطاء
كود:
unsigned kp;
unsigned i=0;
char code1 [10];
char user1[4];
char msg1[16] = "welcome...";
char msg2[16] = "Enter Code";
char msg3[16] = "Access Granted";
char msg4[16] = "Access Denied";
char msg5[16] = "Enter New code";
//keypad module conections
char keypadPort at PORTD;
// End keypad module conections
// LCD module connections
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// End LCD module connections
sbit LED_G at PORTB.B0;
sbit LED_R at PORTB.B1;
sbit buzzer at PORTC.B0;
 
 
void code_enter()
{
kp = 0; // Reset key code variable
// Wait for key to be pressed and released
do
// kp = keypad_key_press(); //Store key code in kp variable
kp = keypad_key_click();    // Store key code in kp variable
while (!kp);
// Prepare value for output, transform key to it's ASCII value
 switch (kp) {
      case  1: kp = 49; break; // 1        // Uncomment this block for keypad4x4
      case  2: kp = 50; break; // 2
      case  3: kp = 51; break; // 3
      case  4: kp = 65; break; // A
      case  5: kp = 52; break; // 4
      case  6: kp = 53; break; // 5
      case  7: kp = 54; break; // 6
      case  8: kp = 66; break; // B
      case  9: kp = 55; break; // 7
      case 10: kp = 56; break; // 8
      case 11: kp = 57; break; // 9
      case 12: kp = 67; break; // C
      case 13: kp = 42; break; // *
      case 14: kp = 48; break; // 0
      case 15: kp = 35; break; // #
      case 16: kp = 68; break; // D
    }
code1[i] = kp;
//Lcd_Chr(2, i+1, code1[i]);
Lcd_Chr(2, i+1, '*');
i++;
}
void delay_20ms()
{
Delay_ms(20);
}

 void code_read()  //Read data from EEBROM
 {
 delay_20ms();
 user1[0] = EEPROM_Read(0x00); // Read data from address 0
 delay_20ms();
 user1[1] = EEPROM_Read(0x01); // Read data from address 1
 delay_20ms();
 user1[2] = EEPROM_Read(0x02); // Read data from address 4
 delay_20ms();
 user1[3] = EEPROM_Read(0x03); // Read data from address 8
 delay_20ms();
 }
 void code_write() // Write data from EEBROM
 {
 delay_20ms();
 EEPROM_Write(0x00,code1[0]); //Write some data at address00
 delay_20ms();
 EEPROM_Write(0x01,code1[1]); //Write some data at address02
 delay_20ms();
 EEPROM_Write(0x02,code1[2]); //Write some data at address04
 delay_20ms();
 EEPROM_Write(0x03,code1[3]); //Write some data at address08
 }
 void change_code()
 {
 Lcd_Cmd(_LCD_CLEAR); //Clear Display
 Lcd_Out(1, 1, "Enter New Code");
 i=0;
 code_enter();
 code_enter();
 code_enter();
 code_enter();
 code_write();
 code_read();
  }
   void main()
   {
   //ADCON1 |=0X07;  //Configure AN pins as digital
   //TRISA =0X00; //Set diriction to be output
   TRISB=0;
   PORTB=0;
   TRISC=0;
   PORTC=0;
   keypad_Init(); //Initialize keypad
   Lcd_Init(); //Initialize Lcd
   code_read();
 //if no code is stored then default is 2345
 if(user1[0] == 0xff && user1[1] == 0xff && user1[2] == 0xff && user1[3] == 0xff)
 EEPROM_Write(0x00,'2'); //Write some data at address00
 delay_20ms();
 EEPROM_Write(0x01,'3'); //Write some data at address02
 delay_20ms();
 EEPROM_Write(0x02,'4'); //Write some data at address04
 delay_20ms();
 EEPROM_Write(0x03,'5'); //Write some data at address08
 delay_20ms();
 }
 code_read();
  Lcd_Cmd(_LCD_CLEAR); //Clear Display
   Lcd_Cmd(_LCD_CURSOR_OFF); //Cursor Off
 Lcd_Out(1, 1, msg1);
 Delay_ms(2000);
   //Lcd_Cmd(_LCD_CLEAR); //Clear Display
  do
  {
  i=0;
  code_enter();
  if(code1[0]==42)
  {
  Lcd_Cmd(_LCD_CLEAR);
  Lcd_Out(1, 1, msg2);
  //delay_ms(500);
  i=0;
  code_enter();
  code_enter();
  code_enter();
  code_enter();
  code_enter();
  
  
 if(code1[0] == '2' && code1[1] == '3' && code1[2] == '4' && code1[3] == '5' && code1[4] == '5') // check master code
 {
 code_enter();
 if (code1[5] == 35)
 {
 change_code();
  }
 }
 if(code1[0] == user1[0] && code1[1] == user1[1] && code1[2] == user1[2] && code1[3] == user1[3] && code1[4] == 35)
 {

 {
   Lcd_Cmd(_LCD_CLEAR); //Clear Display
     Lcd_Out(1, 1, msg3);
     PORTB.B0 = 1;
     PORTC.B0 = 1; //BUZZER
     Delay_ms(5000);
     PORTB.B0 = 0;
     PORTC.B0 = 0;
     Lcd_Out(1, 1, msg1);
     }
     else
     {
      Lcd_Cmd(_LCD_CLEAR); //Clear Display
     Lcd_Out(1, 1, msg4);
     PORTB.B1 =1;
     PORTC.B0 =1;
     delay_ms(2000);
     PORTB.B1 = 0;
     PORTC.B0 = 0;
     Lcd_Out(1, 1, msg1);
      }
     }
    }while(1);
   }


عبدالله نعمان
:: مهندس متواجد ::
تاريخ التسجيل: May 2006
المشاركات: 173
نشاط [ عبدالله نعمان ]
قوة السمعة:
قديم 19-11-2013, 08:49 AM المشاركة 12   
افتراضي


ممتاز جدا.......


amine-alc
:: مهندس ::
تاريخ التسجيل: Mar 2011
المشاركات: 5
نشاط [ amine-alc ]
قوة السمعة:
قديم 23-12-2013, 05:07 AM المشاركة 13   
افتراضي


مواضيعك تلفتني
اتمنى وضعها كلها مع بعض كفهرس في صفحه واحده


الصورة الرمزية Abdw9
Abdw9
:: عضو فضي ::
تاريخ التسجيل: Nov 2011
الدولة: السودان
المشاركات: 519
نشاط [ Abdw9 ]
قوة السمعة:
قديم 24-12-2013, 08:11 AM المشاركة 14   
افتراضي السلام عليكم ورحم الله


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



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