در اين بخش مي‌توانيد در مورد تمامي مسائل مرتبط با میکروکنترلرهای AVR به بحث بپردازيد
Novice Poster

Novice Poster



no avatar
پست ها

55

تشکر کرده: 148 مرتبه
تشکر شده: 17 مرتبه
تاريخ عضويت

پنج شنبه 22 بهمن 1394 21:03

آرشيو سپاس: 0 مرتبه در 0 پست

استفاده از کلید در میکرو

توسط javad_2010 » چهارشنبه 11 فروردین 1395 15:57

سلام
با استفاده از منطق ۰و ۱ میشه به میکرو فهموند که یه کاری انجام بده،مثلا پایه ایی رو صفر یا یک کنه.این میشه کلید
اما وقتی این کارو انجام میدیم با استفاده از دستور if,این کلید فقط یکبار دستور حلقه رو انجام میده،وبعد از اتمام دستور با فشردن مجدد کلید دیگه دستور انجام نمیشه!!!
چطور میشه دوباره کلید از نو بشه؟؟؟
یعنی کلید بازم عمل کنه،نه فقط یکبار
If(PINB.0==1)
}
Delay_ms(25);
While(PINB.0==0);
دستورات
{

Colonel II

Colonel II



نماد کاربر
پست ها

5580

تشکر کرده: 1558 مرتبه
تشکر شده: 6863 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

Re: استفاده از کلید در میکرو

توسط sinaset » چهارشنبه 11 فروردین 1395 16:26

سلام بر شما

معمولا از چند راه کار استفاده میشه .

یکی از این رها معمولا یک مقاومت پول آپ (یا پول دان) مخالف به پین مربوطه وصل میشود،تا درصورتی که کلید رها شد،وضعیت کلید به حالت اول برگردد ..

مثالی که ذکر کردید

کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 



در این وضعیت شما باید یک مقاومت 10 تا 4.7 کیلواهم از GND به پایه مربوط وصل کنید.
در این وضعیت وقت کلید را فعال کنید،پایه 1 میشود،وقتی که کلید رها شود فوری GND میشود .. (یا همون 0 میشود)

راهایی دیگری نیز وجود دارد،ولی مقاومت های پول آپ و پول دان دقت کارها را بیشتر افزایش میدهد.
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

javad_2010 از این پست سپاسگزاري کرده است

Novice Poster

Novice Poster



no avatar
پست ها

55

تشکر کرده: 148 مرتبه
تشکر شده: 17 مرتبه
تاريخ عضويت

پنج شنبه 22 بهمن 1394 21:03

آرشيو سپاس: 0 مرتبه در 0 پست

Re: استفاده از کلید در میکرو

توسط javad_2010 » چهارشنبه 11 فروردین 1395 16:38

sinaset نوشته است:سلام بر شما

معمولا از چند راه کار استفاده میشه .

یکی از این رها معمولا یک مقاومت پول آپ (یا پول دان) مخالف به پین مربوطه وصل میشود،تا درصورتی که کلید رها شد،وضعیت کلید به حالت اول برگردد ..

مثالی که ذکر کردید

کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 



در این وضعیت شما باید یک مقاومت 10 تا 4.7 کیلواهم از GND به پایه مربوط وصل کنید.
در این وضعیت وقت کلید را فعال کنید،پایه 1 میشود،وقتی که کلید رها شود فوری GND میشود .. (یا همون 0 میشود)

راهایی دیگری نیز وجود دارد،ولی مقاومت های پول آپ و پول دان دقت کارها را بیشتر افزایش میدهد.
باتشکر.


با سلام
اینکارو انجام دادم تو محیط پروتئس،وقتی شبیه سازی میکنم انجام نمیشه

Colonel II

Colonel II



نماد کاربر
پست ها

5580

تشکر کرده: 1558 مرتبه
تشکر شده: 6863 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

Re: استفاده از کلید در میکرو

توسط sinaset » چهارشنبه 11 فروردین 1395 17:12

سلام بر شما
پایه مربوط را چطور تعریف کردید امپیدانس را بالا بردید ی که خیر؟! در صورت امکان کدهایی برنامه خود را در اینجا قرار دهید.
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

javad_2010 از این پست سپاسگزاري کرده است

Novice Poster

Novice Poster



no avatar
پست ها

55

تشکر کرده: 148 مرتبه
تشکر شده: 17 مرتبه
تاريخ عضويت

پنج شنبه 22 بهمن 1394 21:03

آرشيو سپاس: 0 مرتبه در 0 پست

Re: استفاده از کلید در میکرو

توسط javad_2010 » چهارشنبه 11 فروردین 1395 17:38

کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 

Colonel II

Colonel II



نماد کاربر
پست ها

5580

تشکر کرده: 1558 مرتبه
تشکر شده: 6863 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

Re: استفاده از کلید در میکرو

توسط sinaset » چهارشنبه 11 فروردین 1395 17:46

با سلام

به اجازه پست شما رو ویرایش کردم و در کد: قرار دادم.(لطفا در پست های بعدی درون کد: قرار بدهید)

درست نمی دونم چه کاری می خواهید انجام دهید. اما وقتی پورت را به عنوان خروجی تعریف کردید باید از دستور PORT استفاده کنید،که در برنامه بالا از PIN استفاده کرده اید .

پول اپ را هم فعال کنید.. بعد از DDRB.0=1  بنویسید PORTB.0=0x00
باقی دستورات پورت B را به صورت PORTB بنویسید.
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

javad_2010 از این پست سپاسگزاري کرده است

Novice Poster

Novice Poster



no avatar
پست ها

55

تشکر کرده: 148 مرتبه
تشکر شده: 17 مرتبه
تاريخ عضويت

پنج شنبه 22 بهمن 1394 21:03

آرشيو سپاس: 0 مرتبه در 0 پست

Re: استفاده از کلید در میکرو

توسط javad_2010 » چهارشنبه 11 فروردین 1395 21:47

sinaset نوشته است:با سلام

به اجازه پست شما رو ویرایش کردم و در کد: قرار دادم.(لطفا در پست های بعدی درون کد: قرار بدهید)

درست نمی دونم چه کاری می خواهید انجام دهید. اما وقتی پورت را به عنوان خروجی تعریف کردید باید از دستور PORT استفاده کنید،که در برنامه بالا از PIN استفاده کرده اید .

پول اپ را هم فعال کنید.. بعد از DDRB.0=1  بنویسید PORTB.0=0x00
باقی دستورات پورت B را به صورت PORTB بنویسید.
باتشکر.


بازم نشد
کلید فقط یه بار عمل میکنه
من یه بیتو فقط عنوان خروجی تعریف کردم،باتوجه به کم بودن تعداد پایه tiny45

Colonel II

Colonel II



نماد کاربر
پست ها

5580

تشکر کرده: 1558 مرتبه
تشکر شده: 6863 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

Re: استفاده از کلید در میکرو

توسط sinaset » پنج شنبه 12 فروردین 1395 07:05

سلام بر شما

پست قبلی شما رو اشتباه مطالعه کردم.. شما DDRB.0 رو به عنوان خروجی قرار دادید و DDRB.1 رو صفر قرار دادید (به عنوان ورودی)  .. (پس نیازی به استفاده از دستور پورت نیست چون DDRB.1 صفر می باشد)

می خواهید پورت 1 حدود 6 بار خاموش و روشن شود؟!


برنامه رو براتون اصلاح کردم

کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


فقط در اصلاحه جدید.. مقاومت 4.7 تا 10 کیلو اهم رو از VCC به پایه PORTB.1 وصل کنید و به کلید هم جریان منفی یا GND وصل کنید ( * در برنامه های حرفه اکثرا از منفی برای فعال کردن کلید ها استفاده می کنند،شاید یکی از دلایلش حرکت الکترونیک ها از منفی به مثبت می باشد)

و نکته مهم دیگر،برنامه نوشته شده توسط شما،در حلقه تعریف نشده بود! به خاطر داشته باشید همیشه در تابع اصلی یعنی void main همیشه یک حلقه بی نهایت قرار دهید و کدهایی که می خواهید دائم برسی شوند را در ان قرار بدهید،وگرنه به مشکلات به مانند مشکلاتی که اکنون داشتید اید برخواهید خورد.
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

javad_2010 از این پست سپاسگزاري کرده است

Novice Poster

Novice Poster



no avatar
پست ها

55

تشکر کرده: 148 مرتبه
تشکر شده: 17 مرتبه
تاريخ عضويت

پنج شنبه 22 بهمن 1394 21:03

آرشيو سپاس: 0 مرتبه در 0 پست

Re: استفاده از کلید در میکرو

توسط javad_2010 » پنج شنبه 12 فروردین 1395 09:25

sinaset نوشته است:سلام بر شما

پست قبلی شما رو اشتباه مطالعه کردم.. شما DDRB.0 رو به عنوان خروجی قرار دادید و DDRB.1 رو صفر قرار دادید (به عنوان ورودی)  .. (پس نیازی به استفاده از دستور پورت نیست چون DDRB.1 صفر می باشد)

می خواهید پورت 1 حدود 6 بار خاموش و روشن شود؟!


برنامه رو براتون اصلاح کردم

کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


فقط در اصلاحه جدید.. مقاومت 4.7 تا 10 کیلو اهم رو از VCC به پایه PORTB.1 وصل کنید و به کلید هم جریان منفی یا GND وصل کنید ( * در برنامه های حرفه اکثرا از منفی برای فعال کردن کلید ها استفاده می کنند،شاید یکی از دلایلش حرکت الکترونیک ها از منفی به مثبت می باشد)

و نکته مهم دیگر،برنامه نوشته شده توسط شما،در حلقه تعریف نشده بود! به خاطر داشته باشید همیشه در تابع اصلی یعنی void main همیشه یک حلقه بی نهایت قرار دهید و کدهایی که می خواهید دائم برسی شوند را در ان قرار بدهید،وگرنه به مشکلات به مانند مشکلاتی که اکنون داشتید اید برخواهید خورد.
باتشکر.

اپدانس یعنی چی؟؟؟

Novice Poster

Novice Poster



no avatar
پست ها

55

تشکر کرده: 148 مرتبه
تشکر شده: 17 مرتبه
تاريخ عضويت

پنج شنبه 22 بهمن 1394 21:03

آرشيو سپاس: 0 مرتبه در 0 پست

Re: استفاده از کلید در میکرو

توسط javad_2010 » پنج شنبه 12 فروردین 1395 10:06

sinaset نوشته است:سلام بر شما

پست قبلی شما رو اشتباه مطالعه کردم.. شما DDRB.0 رو به عنوان خروجی قرار دادید و DDRB.1 رو صفر قرار دادید (به عنوان ورودی)  .. (پس نیازی به استفاده از دستور پورت نیست چون DDRB.1 صفر می باشد)

می خواهید پورت 1 حدود 6 بار خاموش و روشن شود؟!


برنامه رو براتون اصلاح کردم

کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


فقط در اصلاحه جدید.. مقاومت 4.7 تا 10 کیلو اهم رو از VCC به پایه PORTB.1 وصل کنید و به کلید هم جریان منفی یا GND وصل کنید ( * در برنامه های حرفه اکثرا از منفی برای فعال کردن کلید ها استفاده می کنند،شاید یکی از دلایلش حرکت الکترونیک ها از منفی به مثبت می باشد)

و نکته مهم دیگر،برنامه نوشته شده توسط شما،در حلقه تعریف نشده بود! به خاطر داشته باشید همیشه در تابع اصلی یعنی void main همیشه یک حلقه بی نهایت قرار دهید و کدهایی که می خواهید دائم برسی شوند را در ان قرار بدهید،وگرنه به مشکلات به مانند مشکلاتی که اکنون داشتید اید برخواهید خورد.
باتشکر.

...........
بازم ممنون از توجه تون
بازم نشد
کلید فقط یکبار عمل میکند.C

Colonel II

Colonel II



نماد کاربر
پست ها

5580

تشکر کرده: 1558 مرتبه
تشکر شده: 6863 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

Re: استفاده از کلید در میکرو

توسط sinaset » پنج شنبه 12 فروردین 1395 10:45

سلام بر شما

فایل پرتئوس و کدهاتون رو یک جا اپلود کنید و اینجا قرار بدید تا بررسی کنم.
امپیدانس رو هم می توانید در  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد مطالعه فرمایید
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

javad_2010 از این پست سپاسگزاري کرده است

Novice Poster

Novice Poster



no avatar
پست ها

55

تشکر کرده: 148 مرتبه
تشکر شده: 17 مرتبه
تاريخ عضويت

پنج شنبه 22 بهمن 1394 21:03

آرشيو سپاس: 0 مرتبه در 0 پست

Re: استفاده از کلید در میکرو

توسط javad_2010 » پنج شنبه 12 فروردین 1395 17:50


بعدي

 


  • موضوعات مشابه
    پاسخ ها
    بازديدها
    آخرين پست

چه کسي حاضر است ؟

کاربران حاضر در اين انجمن: بدون كاربران آنلاين و 0 مهمان