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

   

محمد القادري
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2011
المشاركات: 101
نشاط [ محمد القادري ]
قوة السمعة:
قديم 30-04-2011, 12:07 AM المشاركة 17   
افتراضي



هذا الرابط يحتوي على ملف بروتوس وملف الهكس والكود في الأسفل علما باني استخدم ccs compiler ... واتعامل احيانا بالميكروسي والميكروبيزك...

http://www.mediafire.com/?4ai7y3hwb99sye7

كود:
#include<16f877a.h>
#fuses XT,NOPUT,NOWDT,NOPROTECT,NOBROWNOUT,NOdEBUG,NOLVP,NOCPD
#use delay(clock=4000000)
#include<lcd.c>
set_tris_a(0x05);
set_tris_b(0x01);
set_tris_d(0x00);
set_tris_c(0x00);
INT8 y=0,i=0,x=0,d,v;
#int_ext
void isrext()
{

y++;
}


void main()
{

output_d(0);

Lcd_init();

setup_timer_0(RTCC_DIV_1|RTCC_EXT_H_TO_L); // presacaler=16, Use internal clock
set_timer0(0); // init timer0 to 0
enable_interrupts(int_ext);
enable_interrupts(global);
ext_int_edge(L_to_H);
LOOP:
d=y;
x=get_timer0();
v=x;
i=x-y;
printf(lcd_putc,"\f**#in=%d  #out=%d **\n",x,y);
printf(lcd_putc,"   ** #now=%d **",i);
if (i==5){output_bit(pin_c1,1);while(y==d);output_bit(pin_c1,0);}
if (i!=0){output_bit(pin_c0,1);while(y==d && v==get_timer0());}
if (i==0){output_bit(pin_c0,0);while(y==d && v==get_timer0());}
GOTO LOOP;
}

اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 30-04-2011, 01:18 AM المشاركة 18   
افتراضي


أخى الكريم

شكرا جزيلا لك

إليك دائرة مقترحة






مع تمنياتى بدوام التوفيق

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

محمد القادري
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2011
المشاركات: 101
نشاط [ محمد القادري ]
قوة السمعة:
قديم 02-05-2011, 09:37 PM المشاركة 19   
افتراضي


جزاك الله كل خير وجعل ذلك في ميزان حسناتك...اللهم آمين...

استفسار اخر ان امكن...اذا استخدمنا المقاومة الضوئية مع ترانزيستور ...كما في الصورة التالية فهل يمكن ذلك؟؟




ahmad abdullah
:: مهندس متميز ::
تاريخ التسجيل: Jun 2010
الدولة: لبنان-فلسطين
المشاركات: 584
نشاط [ ahmad abdullah ]
قوة السمعة:
قديم 24-05-2011, 07:08 PM المشاركة 20   
افتراضي


عزيزي ... انا لم اتابع الموضوع بطريقة مركزة ... لكن حسب ما فهمت بأن جزء من المشروع هو عد الداخلين او الخارجين.
حسنا ، يجب عليك و ضع مقاومة ضوئية على احد اطراف الباب ، ثم ليزر على الطرف الاخر مسلّط على المقاومة الضوئية ... و من ثم تستخدم المقاطعة )Intrrupt في المايكروكنترولر ... انا لا اعرف استخدام المقاطعة بطريقة جيدة ، لكن يمكن لبعض الاخوة هنا المساعدة في الكود... و يحدث ذلك ، عند انقطاع الليزر عن المقاومة الضوئية ، تدخل على المايكروكنترولر بلسة Pulse و المايكرو يعرف ذلك ، فيزيد متغير ما لنسميه x مثلا ... فيصبح لديك عدد الداخلين مثلا.
طبعاً هذا جزء من المشروع ... و هذا ما استطيع تقديمه حالياً ههههه ... السلام عليكم



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