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

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

amine-alc
:: مهندس ::
تاريخ التسجيل: Mar 2011
المشاركات: 5
نشاط [ amine-alc ]
قوة السمعة:0
قديم 18-12-2013, 01:06 AM المشاركة 1   
افتراضي مساعدة ف مشروع فتح وقفل باب بباسورد؟ Twitter FaceBook Google+



السلام عليكم
مشروع فتح و قفل باب بباسورد يعمل جيدا على ISIS ولكن عند التطبيق العملي لا يظهر على LCD سوى مربعات سوداء في السطر الاول

هذا هو الكود اللذي استعملته ارجوا المساعدة من ذوي الخبرة و شكرا
كود:
/* Project : Digital Lock Security
Tested on 16F877A * 4MHz....4x3 Keypad 16x2 LCD
* Written and compiled successfully with mikroC PRO
* The code is built in a modular style to allow a user to find ways to modifyp roject.
* In start the D Lock programs loads with a default code of "2345"
*Format is *2345# which can be enter to unlock the door,
* The code cam be change by entering the master code in the format *23455# new 4 digit code .
*/
// Variables Declaration
unsigned i=0;
unsigned kp;
char code1[10];                      //Hold Key code variable
char user1[4];                       //Hold current EEPROM Code
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 connections
char  keypadPort at PORTD;
// End Keypad module connections
// 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 connection
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_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 = '1'; break; // 1
case  2: kp = '2'; break; // 2
case  3: kp = '3'; break; // 3
case  5: kp = '4'; break; // 4
case  6: kp = '5'; break; // 5
case  7: kp = '6'; break; // 6
case  9: kp = '7'; break; // 7
case 10: kp = '8'; break; // 8
case 11: kp = '9'; break; // 9
case 13: kp = 42; break; // *
case 14: kp = 48; break; // 0
case 15: kp = 35; break; // #
}
code1[i] = kp;
//Lcd_Chr(2, i+1, code1[i]);// Print key ASCII value on Lcd
Lcd_Chr(2, i+1, '*');// Replace key ASCII value by "*" on Lcd
i++;

}
void delay_20ms()
{
delay_ms(20);
}
void code_read()  //Read data from EEPROM
{
delay_20ms();
user1[0] = EEPROM_Read(0x00);          // Read data from address 0
delay_20ms();
user1[1] = EEPROM_Read(0x01);          // Read data from address 2
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 EEPROM
{
delay_20ms();
EEPROM_Write(0x00,code1[0]);               // Write some data at address 00
delay_20ms();
EEPROM_Write(0x01,code1[1]);               // Write some data at address 02
delay_20ms();
EEPROM_Write(0x02,code1[2]);               // Write some data at address 04
delay_20ms();
EEPROM_Write(0x03,code1[3]);               // Write some data at address 08
}
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 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
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);
}

اعلانات

amine-alc
:: مهندس ::
تاريخ التسجيل: Mar 2011
المشاركات: 5
نشاط [ amine-alc ]
قوة السمعة:0
قديم 18-12-2013, 10:51 AM المشاركة 2   
افتراضي



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

amine-alc
:: مهندس ::
تاريخ التسجيل: Mar 2011
المشاركات: 5
نشاط [ amine-alc ]
قوة السمعة:0
قديم 18-12-2013, 10:53 AM المشاركة 3   
افتراضي



إضافة رد

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

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

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


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

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