ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





  1. #1
    تاریخ عضویت
    2014/01/02
    اهر
    62
    11

    راهنمایی جهت تکمیل نمودن یک برنامه به زبان ****

    با سلام خدمت دوستان ومهندسین عزیز
    بنده یک دزد گیر با میکرو m8ساختم که همه چیش درسته فقط متاسفانه وقتی هر کدوم از ورودیها تحریک میشه شروع به اژیر زدن میکنه و تا موقعی که با ریموت دزد گیر رو غیر فعال نکنم اژیر قطع نمیشه از دوستان میخواستم راهنماییم کنند که برنامرو چجوری تغییر بدم تا وقتی ورودی ها تحریک شدن اژیر به مدت 15دقیقه بزنه و مجددا بره رو حالت اماده به کار و اگه این 15 دقیقه رو بشه با دیپ سوییچ به دوتایم مختلف تبدیل کرد عالی میشه مثلا وقتی دیپ سوییچ وصل بود 15 دقیقه بزنه و وقتی قطع بود 5 دقیقه بزنه
    این هم برنامه ای که نوشتم
    $regfile = "m8def.dat"
    $crystal = 8000000
    Config Portb = Input
    Config Portd = Output
    Config Debounce = 30
    Do
    Debounce Pinb.0 , 1 , Roshan , Sub
    Debounce Pinb.1 , 1 , Khamosh , Sub
    Debounce Pinb.2 , 1 , Zi , Sub
    Debounce Pinb.2 , 0 , Zia , Sub
    Debounce Pinb.3 , 1 , Zii , Sub
    Debounce Pinb.3 , 0 , Ziia , Sub
    Debounce Pinb.4 , 1 , Zix , Sub
    Debounce Pinb.4 , 0 , Zixa , Sub
    Debounce Pinb.5 , 1 , Zxx , Sub
    Debounce Pinb.5 , 0 , Zxxa , Sub
    Loop
    End
    Roshan:
    Reset Portd.0 پایه منفی اژِیر
    Set Portd.1 پایه مثبت اژیر
    Set Portd.2 ال ای دی
    Waitms 500
    Reset Portd.0
    Reset Portd.1
    Set Portd.2
    Return
    Khamosh:
    Reset Portd.0
    Set Portd.1
    Reset Portd.2
    Waitms 500
    Set Portd.0
    Reset Portd.1
    Return
    Zi:
    Set Portd.1 پایه مثبت اژیر
    Set Portd.3 پایه مثبت ال ای دی
    Return
    Zia:
    Reset Portd.3
    Return
    Zii:
    Set Portd.1 پایه مثبت اژیر
    Set Portd.4 پایه مثبتال ای دی
    Return
    Ziia:
    Reset Portd.4
    Return
    Zix:
    Set Portd.1 پایه مثبت اژیر
    Set Portd.5 پایه مثبتال ای دی
    Return
    Zixa:
    Reset Portd.5
    Return
    Zxx:
    Set Portd.1 پایه مثبت اژیر
    Set Portd.6 پایه مثبت ال ای دی
    Return
    Zxxa:
    Reset Portd.6
    Return
    این هم شماتیک:
    • تبلیغات
      .

  2. #2
    تاریخ عضویت
    2014/11/14
    ECA
    4,330
    3,385

    پاسخ : راهنمایی جهت تکمیل نمودن یک برنامه به زبان ****

    سلام
    من بسکام کار نکردم
    در کل میگم خودتون تست کنید
    از یه تایمر استفاده کنید
    مثلا ورودی وقتی تحریک شد متغییر بشماره (ثانیه ای) حالا یه ساعت درست می کنی میگی وقتی این متغییر دقیقه به 15 رسید تایمر رو صفر کنه و خروجی هارم صفر کنه
    (یکم گنگ قسمت تایمرشو توضیح دادم ولی در کل میشه فهمید منظورمو)
    واسه اون حالت 2 دقیقه و 15 دقیقه یکم فکر کن روش ببین میتونی چیکارش کنی
    موفق باشی
    Proudly @real_ahmadi
    #real_ahmadi

    واسه اسمت بجنگ
  3. #3
    تاریخ عضویت
    2014/01/02
    اهر
    62
    11

    پاسخ : راهنمایی جهت تکمیل نمودن یک برنامه به زبان ****

    نقل قول نوشته اصلی توسط مهندس احمدی

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    سلام
    من بسکام کار نکردم
    در کل میگم خودتون تست کنید
    از یه تایمر استفاده کنید
    مثلا ورودی وقتی تحریک شد متغییر بشماره (ثانیه ای) حالا یه ساعت درست می کنی میگی وقتی این متغییر دقیقه به 15 رسید تایمر رو صفر کنه و خروجی هارم صفر کنه
    (یکم گنگ قسمت تایمرشو توضیح دادم ولی در کل میشه فهمید منظورمو)
    واسه اون حالت 2 دقیقه و 15 دقیقه یکم فکر کن روش ببین میتونی چیکارش کنی
    موفق باشی
    مرسی مهندس جان
    دقیقا همینجوریه که گفتین ولی متاسفانه بلد نیستم چجوری برنامه تایمر رو بنویسم
  4. #4
    تاریخ عضویت
    2017/08/27
    648
    529

    پاسخ : راهنمایی جهت تکمیل نمودن یک برنامه به زبان ****

    نقل قول نوشته اصلی توسط AMIR987

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    دقیقا همینجوریه که گفتین ولی متاسفانه بلد نیستم چجوری برنامه تایمر رو بنویسم
    الان میخوای با تایمر بنویسی؟ اگر نه باید با حلقه for کار کنی
    یکیشو انتخاب کن
  5. #5
    تاریخ عضویت
    2014/11/14
    ECA
    4,330
    3,385

    پاسخ : راهنمایی جهت تکمیل نمودن یک برنامه به زبان ****

    نقل قول نوشته اصلی توسط AMIR987

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    مرسی مهندس جان
    دقیقا همینجوریه که گفتین ولی متاسفانه بلد نیستم چجوری برنامه تایمر رو بنویسم
    خوب با دیلی بنویس هموون waitms اینجوری کار می کنه ولی دقیق نیست یا مثا نمیشه خاموشش کرد حتما بید 15 دقیقش تموم بشه بهترین راه همون تایمره
    توی هلپ نرم افزار همه چیزشو نوشته ببین و بنویس
    موفق باشی
    Proudly @real_ahmadi
    #real_ahmadi

    واسه اسمت بجنگ
  6. #6
    تاریخ عضویت
    2014/01/02
    اهر
    62
    11

    پاسخ : راهنمایی جهت تکمیل نمودن یک برنامه به زبان ****

    نقل قول نوشته اصلی توسط kamy007

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    الان میخوای با تایمر بنویسی؟ اگر نه باید با حلقه for کار کنی
    یکیشو انتخاب کن
    مرسی دوست عزیز
    به نظر شما کدوم بهترو راحت تره ؟
    ممنون از راهنماییتون

    دلیل: ادغام دو پست برای جلوگیری از اسپم

    نقل قول نوشته اصلی توسط مهندس احمدی

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    خوب با دیلی بنویس هموون waitms اینجوری کار می کنه ولی دقیق نیست یا مثا نمیشه خاموشش کرد حتما بید 15 دقیقش تموم بشه بهترین راه همون تایمره
    توی هلپ نرم افزار همه چیزشو نوشته ببین و بنویس
    موفق باشی
    مهندس جان با دیلی امتحان کردم دقتش زیاد مهم نیست بین 12 تا 16 دقیقه باشه ولی متا سفانه با دیلی تا اون تایم تموم نشه به برنامه بر نمیگرده ونمیشه زودتر از اون تایم خاموشش کرد و در فعال کردنش هم به مشکل برمیخورم چون اگر یکی از ورودی ها تحریک بشه باید 15 دقیقه منتظر بمونم تا به برنامه اصلی برگرده و بتونم با ریموت فعالش کنم
    سپاس
  7. #7
    تاریخ عضویت
    2017/08/27
    648
    529

    پاسخ : راهنمایی جهت تکمیل نمودن یک برنامه به زبان ****

    $regfile = "m8def.dat"
    $crystal = 8000000
    $hwstack = 32 ' default use 32 for the hardware stack
    $swstack = 10 ' default use 10 for the SW stack
    $framesize = 40 ' default use 40 for the frame space

    Config Portb.1 = Output
    Dim Tim As Byte

    '***********************************************************************
    'config timer2 as timer
    'AVR Timert2 is 8bit so (crystal/Prescale)/timer2 => (800000/1024)/256
    Config Timer2 = Timer , Prescale = 1024
    '***********************************************************************

    '************************Interrup*************************************
    On Timer2 Timer2isr
    Enable Timer2
    Enable Interrupts
    '**********************************************************************


    Do

    If Tim > 100 Then
    Toggle Portb.1
    Tim = 0
    End If

    Loop


    Timer2isr:
    Incr Tim 'tim=tim+1
    Return

    این برنامه روش استفاده از تایمر 2 و اینتراپت اونو نشون میدن
    پورت b پین یک رو روشن خاموش میکنه
    بایت tim در روتین اینتراپت یکی یکی زیاد میشه
    یک کم باهاش کار کن دستت میاد

    '*****کانفیگ کردن تایمر دو**********
    . بصورت سخت افزاری کلاک کریستال تقسیم بر پریاسیکل شده و وارد تایمر میشود نایمر هم هشت بیتی است که میشود عدد255 بنابراین داریم کریستال تقسیم بر پریاسکل حاصل تقسیم بر 256 . عدد بدست امده مبشود زمان رخ دادن یک تینتراپ تایمر و اجرای روتین اینتراپت تایمر
    Config Timer2 = Timer , Prescale = 1024
    در اینجا تعریف میکنیم که اینتراپت تایمر در یک روتین که در اینجا با لیبل تایمر2 ای اس ار نام گذاری شده اجرا شود
    On Timer2 Timer2isr
    در این خط اعلام میکنیم که میکرو اینتراپتهای تعریف شده را اجرا کند
    Enable Interrupts
    تایمر دو روشن
    Enable Timer2
    *************************************************
    Do
    برنامه اصلی خودت را اینجا بنویس
    Loop
    *************************************************
    ******************************************
    Timer2isr:
    اینجا روتین اینتراپپ اجرا میشود برنامه اینتراپت را اینجا بنویس
    Return
    ویرایش توسط kamy007 : 2017/09/18 در ساعت 15:21
  8. #8
    تاریخ عضویت
    2014/11/14
    ECA
    4,330
    3,385

    پاسخ : راهنمایی جهت تکمیل نمودن یک برنامه به زبان ****

    نقل قول نوشته اصلی توسط AMIR987

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    مرسی دوست عزیز
    به نظر شما کدوم بهترو راحت تره ؟
    ممنون از راهنماییتون

    دلیل: ادغام دو پست برای جلوگیری از اسپم


    مهندس جان با دیلی امتحان کردم دقتش زیاد مهم نیست بین 12 تا 16 دقیقه باشه ولی متا سفانه با دیلی تا اون تایم تموم نشه به برنامه بر نمیگرده ونمیشه زودتر از اون تایم خاموشش کرد و در فعال کردنش هم به مشکل برمیخورم چون اگر یکی از ورودی ها تحریک بشه باید 15 دقیقه منتظر بمونم تا به برنامه اصلی برگرده و بتونم با ریموت فعالش کنم
    سپاس
    بله بنده هم گفتم خدمتتون اگر از دیلی استفاده کنی هیچ کاری نمیتونی انجام بدی تا مدت زمانش تموم بشه
    از تایمر استفاده کن
    پاینده باشید
    Proudly @real_ahmadi
    #real_ahmadi

    واسه اسمت بجنگ
  9. #9
    تاریخ عضویت
    2014/01/02
    اهر
    62
    11

    پاسخ : راهنمایی جهت تکمیل نمودن یک برنامه به زبان ****

    نقل قول نوشته اصلی توسط kamy007

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    این برنامه روش استفاده از تایمر 2 و اینتراپت اونو نشون میدن
    پورت b پین یک رو روشن خاموش میکنه
    بایت tim در روتین اینتراپت یکی یکی زیاد میشه
    یک کم باهاش کار کن دستت میاد

    '*****کانفی
    خیلی ممنون دوست عزیز شرمنده یک مدت درگیر کار بودم نمیتونستم به فروم سر بزنم.میشه یکمی در مورد برنامه انتراپت توضیح بدین؟ویه سوال دیگه اینکه میتونیم به تایمر شرط بزاریم که وقتیpinb.0 یک بود و اون چهار تا ورودی (pinb.2_3_4_5) یک شدن شروع به بکار کنه و اگه pinb.1 یک بود حتی اگه ورودی ها (pinb.2_3_4_5) تحریک شدن تایمر فعال نشه؟
    ویرایش توسط AMIR987 : 2017/10/02 در ساعت 21:12
  10. #10
    تاریخ عضویت
    2013/03/18
    babol
    1,415
    694

    پاسخ : راهنمایی جهت تکمیل نمودن یک برنامه به زبان ****

    نقل قول نوشته اصلی توسط AMIR987

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    خیلی ممنون دوست عزیز شرمنده یک مدت درگیر کار بودم نمیتونستم به فروم سر بزنم.میشه یکمی در مورد برنامه انتراپت توضیح بدین؟ویه سوال دیگه اینکه میتونیم به تایمر شرط بزاریم که وقتیpinb.0 یک بود و اون چهار تا ورودی (pinb.2_3_4_5) یک شدن شروع به بکار کنه و اگه pinb.1 یک بود حتی اگه ورودی ها (pinb.2_3_4_5) تحریک شدن تایمر فعال نشه؟
    در ادامه توضیحات جناب احمدی باید بگم که تایمر کانتر ها اینطوریه که مثلا سی پی یو داره به کارهاش میرسه و خط به خط برنامه ها رو اجرا میکنه با تمام توان ُ در کنارش یکی هست که همش داره به یادش میندازه بیا فلان کار رو هم انجام بده.سی پی یو هم تا یادش اومده که باید فلان کار رو انجام بده -به کار فعلی خود استوپ میده و میره به اون کار میرسه و دوباره برمیگرده به ادامه کارش تا دوباره به یادش بندازن و برو و ... .
    خوب اونی که داره به یاد سی پی یو میندازه بهش میگن تایمر کانتر. و اون استوپ زدن و رفتن به کاری که یادش افتاد و انجام دادن و بهش میگن وقفه (interrupt) چون به کار اصلیش وقفه میزنه و به یه کار دیگه میرسه و دوباره برمیگرده.
    خوب برای اینکه میکرو بفهمه که همچین کارایی باید انجام بدی قبل همچیز باید با برنامه نویسی حالیش کنی که من میخام از تایمر استفاده کنم. و همچنین باید برای اون کاری که قرار سی پی یو وقتی یادش اومد بره اونو انجام بده - باید بدنه و کدهاشو یجا بنویسی که تو تنظیماتش میتونی پیدا کنی.

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    موفق باشید.
    به سمت نور خورشيد حرکت کن،تو ميتوني تابش خورشيد رو حس کني ،حتي اگه کور باشي.
    (پيش به سوي هدف)
نمایش نتایج: از 1 به 10 از 10

موضوعات مشابه

  1. راهنمایی برای پیدا نمودن معادل آی سی LM386G
    توسط mm1356gh در انجمن مفاهیم پایه برق و الکترونیک
    پاسخ: 5
    آخرين نوشته: 2020/05/19, 20:08
  2. راهنمایی در مورد پروگرام نمودن atmega128
    توسط mm1356gh در انجمن میکروکنترلرهای AVR
    پاسخ: 1
    آخرين نوشته: 2016/01/13, 23:41
  3. پاسخ: 1
    آخرين نوشته: 2015/01/21, 09:08
  4. راهنمایی در مورد چگونگی روش load نمودن avr
    توسط mohhamdamin در انجمن میکروکنترلرهای AVR
    پاسخ: 11
    آخرين نوشته: 2013/11/29, 19:25
  5. ّبروژه تکمیل شده ولت متر به زبان بیسیک
    توسط hosein-eghbali در انجمن میکروکنترلرهای AVR
    پاسخ: 4
    آخرين نوشته: 2009/02/04, 00:21

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •