بسم الله الرحمن الرحيم
اولا يا اخى
انا ادعوك الى الصبر والتروى
انا اعلم ان بك حماسة وانا مثلك تماما
ولاكن تعلمت ان الصبر مفيد
انت دلوقتى نزلت اكثر من موضوع لشىء واحد وهذا خطا
عموما حصل خير
نزل الكود والدائرة وكل شىء من هنا
http://www.4shared.com/rar/7h40c8HO/eltalb99.html?
ودى صورة الدائرة وعليها شرح بسيط ليها
وزى مانت شايف انا ملقيتش الاى سى DTMF فى البروتوس
فاطريت انى اعود عنة بميكرو بكود يشبة عمل الاى سى بالزبط
طبعا دة ملكش دعوة بية دة خاص بالتجربة فقط
ودة الى انت هتشيلة وهتركب مكانة الاى سى DTMF
__________________________________________________ _________
ودة الكود
كود:
char keydtmf[]={'D',1,2,3,4,5,6,7,8,9,0,83,35,'A','B','C'};
char number[16];
long int natg=0;
long int x2=100000;
char x;
char x3=0;
void interrupt() {
if(x3==4){x2=1;}
for(x=0;x<16;x++){if(PORTA==x){number[x]=keydtmf[x];natg=natg+number[x]*x2;x2=x2/10;}}
intcon.f2=0;
TMR0=255;
x3=x3+1;
if(number[11]==83){x3=0;natg=0;x2=100000;}
for(x=0;x<16;x++){number[x]=0;}
}
void main() {
CMCON=7;TRISA=255;TRISB=0;PORTB=0;
option_reg=56;intcon=160;TMR0=255;
while(1){
if(x3==5){
if(natg==123435){PORTB=~PORTB;natg=0;x2=100000;x3=0;}
else {natg=0;x2=100000;x3=0;}
}
}
}
اعذرنى انا عارف ان الكود معقد بس انا بعملة باستعجال فاعذرنى
المهم الكود دة بيستقبل 4 ارقام وبعد ما بتدوس على شباك # بينفذ الاوامر
والارقام دة بترتيب معين
يعنى باسورد
يعنى لو انت كاتبلة 1234 لازم يكون بنفس الترتيب
1 الاول وبعد كدة 2 وبعد كدة 3 وبعد كدة 4 وبعد كدة شباك
يشتغل لكن لو غيرت اى رقم او بدلت حتى فى الترتيب مش هيشتغل
وفى المثال دة دى هى الارقام الى بيستقبلها
كود:
if(natg==123435){PORTB=~PORTB;natg=0;x2=100000;x3=0;}
زى مانت شايف 123435
35 دة رمز الشباك # فاملكش دعوة بية
كل الى تغير فية زى مانت عايز هما الاربع ارقام دول 1234
ممكن بقى تحطهم 5698 زى مانت عايز المهم يكونوا 4 ارقام واخيرهم 35 زى مانت شايف فى الكود
ولو عايز تزود رقم ولا حاجة فى الكود قلى وانا ازودهولك اختصارانا للشرح
وبعد ما بيطابق الكود الارقام الى انت عايزة يعنى تم ادخال الباسورد صح
هيعكس حالة البورت B كلة يعنى لو بصفر هيخليه بواحد ولو ب 1 هيخلية بصفر
طبعا هنا تحت الاوامر بقى الى انت عايزة تتنفذ لما يتكتب الباسورد صح
اما الباقى الى هو دة
كود:
natg=0;x2=100000;x3=0;
فدة سيبة زى ما هو دة خاص بالعملية الحسابية فى الكود
وفى حاجة كمان
لو دوست على اكثر من زرار بشكل خاطء
يعنى بوظت الترتيب او بوظت اى شىء وكتبت ارقام غير صحيحة
لازم تدوس على الزرار الى بيخرج 11 او مكتوب فى الداتا شيت S
ودة بيعرف الميكرو انوا يعمل اعادة ترتيب للامور من الاول وجديد
علشان ميحصلش خطا
وبعد ما تدوس علية تبدء تكتب الارقام من الاول وجديد
__________________________________________________ _________
وتردد الكريستالة 4 ميجا هيرتز
وتوصيل ادائرة واضح زى ما شوفت فى الصورة
الاطراف فى الاى سى بنفس رقمها فى الميكرو قصاد بعض
والطرف OE هتوصلة على الطرف A4 فى الميكرو
__________________________________________________ _________
ملحوظة اخيرة
الكود الى انت هتحتاجة هتلاقى اسمة eltalb99
وهو فى اول فولدر ملكش دعوة بالى فى تانى فولدر لانوا خاص بالتجربة فقط
__________________________________________________ _________
كدة خلص الشرح اى حاجة مش فاهمها انا تحت امرك ان شاء الله