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

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

A-M-S
:: مهندس جيد ::
تاريخ التسجيل: May 2014
المشاركات: 242
نشاط [ A-M-S ]
قوة السمعة:0
قديم 01-06-2014, 10:39 AM المشاركة 1   
ha تعديل على كود اذا سمحتم Twitter FaceBook Google+



اخواني الكرام..السلام عليكم و رحمة الله ..
عندي دائرة قفل الكتروني بشاشة ال سي دي كان قد طرحها احد الاخوه هنا في المنتدي و وصلتها عمليا و عملت 100% ...احببت ان اضيف عليها بعض التعديلات مثل ان اضيف رقم جوالي مثلا او ان اعمل زمن تأخير معين ...و لكن عندما فتحت sourse file لكي اعدل على البرنامج كانت ايقونة build غير مفعله .. حاولت ان اعمل نسخ من البرنامج و لصق في برنامج جديد على (سي) ولكن كان يعطيني البرنامج الجديد رساله باللون الاحمر ..لا اعرف ما محتواها(اعتقد رسالة خطأ) ولكن لا تنتج ملف هيكس فهل لديكم حل لهذا الموضوع ...مع الشكر سلفا..

اخواني رقم المايكرو في هذا المشروع :16f877a
مع العلم ان المشروع يعمل على بروتس كذلك يعمل على ارض الواقع بكفائه عاليه ..

اللغه سي..
وجزاكم الله كل خير .
ملاحظه ..ملف ppc (الملف السي الاحمر القابل للبرمجه )غير موجود.


التعديل الأخير تم بواسطة : A-M-S بتاريخ 01-06-2014 الساعة 10:47 AM
اعلانات

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:394
قديم 01-06-2014, 12:43 PM المشاركة 2   
افتراضي


افتح ملف كود جديد وانسخ الكود اليه ثم اعمل بيلد وهكذا سوف تتكون عندك جميع ملفات الميكروسي

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

A-M-S
:: مهندس جيد ::
تاريخ التسجيل: May 2014
المشاركات: 242
نشاط [ A-M-S ]
قوة السمعة:0
قديم 02-06-2014, 05:38 AM المشاركة 3   
افتراضي


افتح ملف كود جديد وانسخ الكود اليه ثم اعمل بيلد وهكذا سوف تتكون عندك جميع ملفات الميكروسي
اخي حيدر شكرا لسرعة الرد ....ولكن حاولت نسخ الكود و لصقه على NEW PROJECT ولكن كان يعطيني رسالة خطأ عندما اعمل بيلد !


((الٌا اذا كنت تقصد شيئ اخر ))
ارجو التوضيح ......


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:394
قديم 02-06-2014, 06:27 AM المشاركة 4   
افتراضي


انسخ الكود هنا من فضلك ..
وايضا صورة لرسالة الخطأ .


A-M-S
:: مهندس جيد ::
تاريخ التسجيل: May 2014
المشاركات: 242
نشاط [ A-M-S ]
قوة السمعة:0
قديم 02-06-2014, 07:04 AM المشاركة 5   
افتراضي


ان شاء الله... سأرفع لك الكود قريبا .


A-M-S
:: مهندس جيد ::
تاريخ التسجيل: May 2014
المشاركات: 242
نشاط [ A-M-S ]
قوة السمعة:0
قديم 03-06-2014, 02:02 PM المشاركة 6   
افتراضي


char i = 0 , m = 0 , error = 0 ;
const int number[ ]={'y','y',3,2,1,'x',6,5,4,'x',9,8,7,'x','x',0 ,'y'} ;
char temp[6] ;
char temp2[6] ;
char attempts = 0 ;
unsigned cnt ;


void interrupt()
{
cnt++;
INTCON = 0x20;
}

// subroutines
void tone1()
{
sound_play ( 659, 250 ) ;
}
void tone2()
{
sound_play ( 698, 250 ) ;
}
void Tone3()
{
sound_play ( 784, 250 ) ;
}
void melody()
{
cnt = 0 ; tmr0 = 0 ;
while( cnt < 36621 && keypad_read()!= 16 ) // 5-minute alarm until long press on *
{
tone1(); tone2(); tone3(); tone3();
tone1(); tone2(); tone3(); tone3();
tone1(); tone2(); tone3();
tone1(); tone2(); tone3(); tone3();
tone1(); tone2(); tone3();
tone3(); tone3(); tone2(); tone2(); tone1();
}


stop_alarm : portc.f3 = 0 ;
}


void set_new_pass()
{
lcd_cmd(lcd_clear) ;
lcd_out(1,1,"ENTER NEW PASS:") ;
lcd_cmd(lcd_second_row) ;
i = 0 ;
while(portc.f2==0) {}
get_new_pass :
m = 0 ; error = 0 ;
m = keypad_released() ;
while(m==0 || m==14) goto get_new_pass ;
if(m==16) // if CANCEL button is pressed
{

if(i!=0)
{
while(portc.f2==0) {}
lcd_out(2,i," ") ;
lcd_cmd(lcd_move_cursor_left);
i-- ;
goto get_new_pass ;
}
else goto end_sub ;
}
lcd_chr_cp('*') ;
temp[i] = number[m] ;
i++ ;
if(i==6) goto confirm_new_pass ;
goto get_new_pass ;

confirm_new_pass:
while(keypad_released() !=14 && portc.f2==1) {}
if(portc.f2==0) goto get_new_pass ;

for(i=0;i<6;i++)
{
eeprom_write(i,temp[i]) ;
delay_ms(20) ;
}

lcd_cmd(lcd_clear) ;
lcd_out(1,3,"NEW PASS HAS" ) ;
lcd_out(2,4,"BEEN ADDED") ;
delay_ms(2000) ;
end_sub :
lcd_cmd(lcd_clear) ;


}
void check_old_pass()
{

start2:
m = 0 ; i = 0 ; error = 0 ;
lcd_cmd(lcd_clear) ;
lcd_out(1,1,"ENTER OLD PASS:") ;
lcd_cmd(lcd_second_row) ;
while(keypad_released()==16) {}
wait2 :
m = keypad_released() ;
while(m==0 || m==14) goto wait2 ;

edit2 :
if(m==16)
{
if(i!=0)
{
while(portc.f2==0) {}
if(eeprom_read(i-1)!=temp2[i-1] && error>0 ) error-- ;
lcd_out(2,i," ") ;
lcd_cmd(lcd_move_cursor_left);
i-- ;
goto wait2 ;
}
else goto end_sub ;
}
lcd_chr_cp('*') ;
temp2[i] = number[m] ;
if(eeprom_read(i)!=temp2[i]) error++ ;
i++ ;
if(i==6)
{
wait4 :
m = 0 ;
m = keypad_released() ;
if(m!=16 && m!=14)goto wait4 ;
if(m==16) goto edit2 ;
goto compare2 ;
}
goto wait2 ;
compare2:
if(error!=0)
{
lcd_cmd(lcd_clear) ;
lcd_out(1,4,"INVALID!!") ;
while(keypad_released()==0) {}
goto start2 ;
}

else set_new_pass() ;
end_sub:
lcd_cmd(lcd_clear) ;
}



// main program

void main()
{


trisb = 0 ; portb = 0 ;
trisd = 0 ; portd = 0 ;
trisc.f0 = trisc.f1 = 0 ; portc = 0 ;
trisc.f2 =1 ;
trisc.f3 = 0 ;

OPTION_REG = 0x84; // Assign prescaler to TMR0
INTCON = 0xA0; // Enable TMRO interrupt


// lcd initialization
lcd_init(&portb) ;
lcd_cmd(lcd_cursor_off) ;

// keypad initialization
keypad_init(&portd) ;

// sound play initialization
sound_init(&portc,0) ;

while(1)
{
start :
if(eeprom_read(0) != 0xff) goto get_current_pass ;
set_new_pass() ;

get_current_pass :

i = 0 ;
error = 0 ;
lcd_cmd(lcd_clear) ;
lcd_out(1,4,"ENTER PASS:") ;

lcd_cmd(lcd_second_row) ;


wait :
if(portc.f2==0) // if emergency button is pressed
{

while(portc.f2==0)
set_new_pass() ;
goto start ;
}
m = keypad_read() ;
while(m==0 || m==14 ) goto wait ;

cancel_or_set :
if(m==16)
{
cnt = 0 ;
tmr0 = 0 ;
while(keypad_read() == 16)
{
if( cnt>= 367 )
{
check_old_pass() ;
goto get_current_pass ;
}
}
if(i!=0)
{
while(keypad_released()==16) {}
if(eeprom_read(i-1)!=temp2[i-1] && error>0 ) error-- ;
lcd_out(2,i," ") ;
lcd_cmd(lcd_move_cursor_left);
i-- ;
goto wait ;
}
}

m = 0 ;
m = keypad_released() ;
while(m==0 || m==14) goto wait ;
if(m==16) goto cancel_or_set ;
lcd_chr_cp('*') ;
temp2[i] = number[m] ;

if(eeprom_read(i)!=temp2[i]) error++ ;
i++ ;
if(i==6)
{
wait4 :
m = 0 ;
m = keypad_released() ;
while(m!=14 && m!=16 && portc.f2==1) goto wait4 ;
if(m == 16) goto cancel_or_set ;
if(portc.f2==0) goto wait ;
goto compare ;
}
goto wait ;

compare :
for(i=0;i<6;i++)
{
if(temp2[i]!=eeprom_read(i)) error++ ;
}

if(error!=0)
{
lcd_cmd(lcd_clear) ;
lcd_out(1,3,"INVALID PASS") ;
error = 0 ;
attempts++ ;
if(attempts>=3)
{
lcd_out( 2,6,"ALARM" ) ;
portc.f3 = 1 ;
melody() ;
goto get_current_pass ;
}
while(keypad_released()==0) {}
goto get_current_pass ;
}

else
{
lcd_cmd(lcd_clear) ;
lcd_out(1,7,"OPEN") ;
portc.f1 = 1 ; delay_ms(5000) ;
portc.f1 = 0 ;
attempts = 0 ;
}
}
}


A-M-S
:: مهندس جيد ::
تاريخ التسجيل: May 2014
المشاركات: 242
نشاط [ A-M-S ]
قوة السمعة:0
قديم 03-06-2014, 02:13 PM المشاركة 7   
افتراضي


انسخ الكود هنا من فضلك ..
وايضا صورة لرسالة الخطأ .

اخي حيدر هذا هو الكود اما بالنسبه للصوره فهي موجوده ولكن بصراحه مش عارف كيف ارفعها عالمنتدي ...بأمكانك اخي لصق الكود عندك و عمل بيلد وتشوف شو رح يكتبلك ...تحياتي لك اخي .


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:394
قديم 03-06-2014, 05:19 PM المشاركة 8   
افتراضي


اخي الكود فيه الكثير من الاخطاء ...


إضافة رد

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

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

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


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

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