اطلاعیه

Collapse
No announcement yet.

ساعت با آلارم و راه اندازی موتور

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #16
    پاسخ : ساعت با آلارم و راه اندازی موتور

    نوشته اصلی توسط mr-hb
    کسی نیست توضیح بده خیلی فوریه آخه در ضمن مدارشو کسی میدونه چطوری باید ببندم،این برنامه رو روی مگا16 پروگرام کردم ولی هرثانیه اش فکر کنم حدود 3و4 دقیقه ست
    فیوزبیت فرکانس رو تنظیم نکردی حتماً.
    ?Why not

    دیدگاه


      #17
      پاسخ : ساعت با آلارم و راه اندازی موتور

      من یه کریستال ocr 9803 روبه پایه های 28 و 29 وصل کردم،خوب این فیوزبیت هارو چه جوری باید تنظیم کنم؟؟

      دیدگاه


        #18
        پاسخ : ساعت با آلارم و راه اندازی موتور

        نوشته اصلی توسط mr-hb
        من یه کریستال ocr 9803 روبه پایه های 28 و 29 وصل کردم،خوب این فیوزبیت هارو چه جوری باید تنظیم کنم؟؟
        وقتی به این پایه ها وصل می کنی احتیاج به تنظیمات فیوزبیت نیست.

        ولی

        با هر نرم افزاری پروگرام می کنی باید بری توFuses و SUT_CKSEL رو بزنی بعد Ext.Low frequency انتخاب کنی. (البته اگه به پایه های Xtal1,2 وصل کرده باشی)
        ?Why not

        دیدگاه


          #19
          پاسخ : ساعت با آلارم و راه اندازی موتور

          نوشته اصلی توسط mr-hb
          سلام کسی میتونه در مورد این برنامه خط به خطش یه توضیح بده؟؟
          /************************************************** ***
          This program was produced by the - 1
          2- CodeWizardAVR V2.04.4a Advanced

          3- Project : Examples WWW.PICPARS.COM
          Version : - 4
          5- Date : 31/01/2011
          6- Author : Seyed Mosen GHasemian
          7- Company : www.picpars.com
          Comments: 8

          9- Chip type : ATmega16
          10- Program type : Application
          11-AVR Core Clock frequency: 8.000000 MHz
          12- Memory model : Small
          13- External RAM size : 0
          14- Data Stack size : 256
          ************************************************** ***/

          15- #include <mega16.h>
          16- #include <lcd.h>
          17- #include <stdio.h>
          18- #include <delay.h>
          19- #define xtal 8000000
          20- #asm
          21- .equ __lcd_port=0x1B ;PORTA
          22- #endasm
          23- unsigned char H=12,M=0,S=0 ;
          24- unsigned int Y=1389,MO=11,D=11;


          25- void date_calc(){
          26- unsigned int d;
          27- if(MO<=6) d=31;
          28- if(MO>=7) d=30;
          29- if(MO==12) d=29;
          30- D++;
          31- if(D>d){
          32- D=1;
          33- MO++;
          34- if(MO==13){
          35- MO=1;
          36- Y++;
          }
          }
          }


          37- interrupt [TIM2_OVF] void timer2_ovf_isr(void){
          38- S++;
          39- if(S==59){
          40- S=0;
          41- M++;
          42- if(M==59){
          43- M=0;
          44- H++;
          45- if(H==24){
          46- H=0;
          47- date_calc();
          }
          }
          }
          }


          48- void main(void){
          49- char buffer[32];
          50- lcd_init(16);
          51- ASSR=0x08; // Timer/Counter 2 initialization
          52- TCCR2=0x05; // Clock source: TOSC1 pin , PCK2/128
          53- TCNT2=0x00;
          54- OCR2=0x00;
          55- TIMSK=0x40; // Timer(s)/Counter(s) Interrupt(s) initialization
          56- #asm("sei&quot

          57- while (1){
          58- sprintf(buffer,"TIME %d:%d:%d\nDATE %d/%d/%d",H,M,S,Y,MO,D);
          59- lcd_clear();
          60- lcd_puts(buffer);
          61- delay_ms(300);
          }
          }
          ممنون
          من خط ها رو روی نقل قول شماره گذاری کردم

          تا خط 14 که عملا تعارفات معمول را بجا اوردند
          از خط 15 تا 18 توابع کتابخانه ای که توابع اونها داخل برنامه نیاز بوده فراخوانی شده
          خط 19 کریستال 8 مگا هرتز انتخاب شده
          از خط 20 تا 22 پورتی که ال سی دی روی اون قرار گرفته پورت A تنظیم شده(توسط خود کد ویزارد نوشته شده)
          خط 23 متغیر های H و M وS از نوع کاراکتری انتخاب شدند و مقدار دهی شدند
          خط 24 هم متغیر های Y,MO,D از نوع عددی بدون علامت انتخاب و مقدار دهی شدند
          خط 25 یه تابع نوشته شده به نام clac هدف این تابع هم محاسبه روز ماه و سال میباشد
          خط 26 متغیر d به عنوان متغیر عددی بدون علامت تعریف شده و مشخص کننده روز در برنامه است
          خط 27 تا 29 برای محاسبه ماه های سال و تعداد روزهای هر ماه هست که مثلا خط 27 گفته اگه 6 ماه اول بود هر ماه 31 روزه بقیه هم به همین ترتیب
          خط 30 چون برنامه در تاریخ 11/11 /1389 نوشته شده(از خط 24) مقدار اولیه Dبرابر 11 قرار داده شده و معرف روز است حال در خط 30 پس از هر بار اجرا شدن تابع calc در خط 47 مقدار D یکی افزایش میابد
          خط 31 اگر متغیر D از مقدار d (که برای ماه های سال در خطوط 27 تا 29 تعریف شده)بیشتر شد
          خط 32 مقدار D را برابر 1 قرار بده
          خط 33 به تعداد متغیر MO (ماه ها)یکی اضافه کن
          خط 34 اگر متغیر MO برابر 13 شد
          خط 35 متغیر MO را برابر 1 قرار بده
          خط 36 به تعداد متغیر Y(سال)یکی اضافه کن
          وای خسته شدم!!
          خط 37 زیر برنامه تابع وقفه در هنگام فعال شدن وقفه
          خط 38 متغیر S که معرف ثانیه است را یکی اضافه کن
          خط 39 اگه متغیر S برابر 59 شد
          خط 40 متغیر S را 0 کن
          خط 41 یه دونه به تعداد متغیر M که معرف دقیقه هست اضافه کن
          خط 42 اگه متغیر Mبرابر 59 شد
          خط 43 متغیر M را برابر 0 قرار بده
          خط 44 به تعداد متغیر Hکه معرف ساعت هست یکی اضافه کن
          خط 45 اگه متغیر H برابر 24 شد
          خط 46 متغیر Hرا برابر 0 قرار بده
          خط 47 تابع calc را فراخوانی کرده برای محاسبه روز و ماه و سال یعنی میخواد بگه تا 24 ساعت گذشت روز (متغیر D ) را یکی اضافه کن و بقیه ماجرا که توضیحش رفت
          خط 48 اغاز برنامه اصلی
          خط 49 متغیر buffer از نوع کاراکتری . به طول 32 رشته تعریف شده (اینجا گفته 32 چون می خواسته یه متغیر رشته ای تقریبا بلندی داشته باشه که بعدا اون را برای نمایش روی ال سی دی به کا ببره)
          خط 50 ال سی دی رو از نوع 16 بیتی انتخاب کرده
          خط 51 مال تنظیمات تایمر 2 است این ASSR دارای 4 قسمت هست بع ترتیب از راست به چپ با نام های :AS0,TCN0UB,OCR0UB,TCR0UB حالا این بیتا چیند و چکار می کنند و کی 1 میشند و کی 0 میشند من باید یه 30 خط بنویسم اگه به کتاب اقای پرتوی فر مراجعه کنید صفحه 219 کاملا توضیح داده شده
          خط 52 این رجیستر (TCCR2)که در واقع همون رجیستر تایمر 0 هست منتها جهت تایمر 2 به کار رفته برای تنظیمات فعال و غیر فعال کردن تایمر همچنین جهت تنظیم فرکانس پالس ساعت داخلی و یا خارجی تایمر و تعیین نوع حساسیت تایمر به لبه بالا رونده یا پایین رونده پالس ورودی به پایه T0 هست بازم مراجعه کنید به کتاب پرتویی فر صفحه 177 یه جدول داره دید بزنید!

          خط 53 مقدار اولیه تایمر 2 جهت شروع شمارش برابر 0 قرار داده شده
          خط 54 مقدار رجیستر OCR برابر صفر قرار داده شده این رجیستر هشت بیتی با مقدار شمارنده(TCNT2) مقایسه میشود و از تطابق این دو برای تولید وقفه خروجی یا تولید شکل موج روی پایه OC0 استفاده میشه
          خط 55 این رجیستر برای فعال سازی وقفه تایمر هست دارای 8 تا بیت هست به ترتیب از راست به چپ OCIE2,TOIE2,TICE1,OCIE1A,OCIE1B,TOIE1,OCIE0,TOIE0ب ازم مراجعه کنید به همون کتاب پرتویی فر صفحه 185 بحثش از اینجا خارجه

          خط 56 فراخوانی وقفه
          خط 57 حلقه تکرار بی نهایت (دیگه ضایعه !!)
          خط 58 تبدیل به کاراکتر کردن متغیر های عددی روز و ماه و سال و دقیقه و ... با تقریب اعداد صحیح و ریختن اون ها داخل متغیر buffer جهت نمایش روی ال سی دی
          خط 59 پاک کردن ال سی دی
          خط 60 نوشتن متغیر buffer روی ال سی دی
          خط 61 یه تاخیر جهت بهتر نشون داده شدن اعداد روی ال سی دی

          اخیش تموم شد :wow:
          گویند سنگ لعل شود در مقام صبر اری شود ولی به خون جگر شود
          همیشه آخر همه چیز خوبه، اگر هم هنوز خوب نشده پس هنوز آخرش نشده(چارلی چاپلین)

          دیدگاه


            #20
            پاسخ : ساعت با آلارم و راه اندازی موتور

            دوستان من یکی ساختم
            ساعت + آلارم با فایل صوتی(پخش فایل WAV تمای فرمت های 8بیت مونو و استریو) + تاریخ کاملا شمسی + محاسبه روزهای هفته و سال 366 و 365 روزه +دما+ قطع آلارم مدل Iphone (که دست روش میکشن قطع میشه)
            همه در یک ATMEGA32 کاملا هم Real Time ، اصلا وقفه تو اجرا نمی افته
            خودم وقتی نگاش میکنم حال میکنم، البته هنوز یکسری نواقص داره که دارم ذره ذره حلش میکنم
            دلا خو کن به تنهایی که از تنها بلا خیزد

            دیدگاه


              #21
              پاسخ : ساعت با آلارم و راه اندازی موتور

              خوش به حالت :nice: :nice:

              دیدگاه


                #22
                پاسخ : ساعت با آلارم و راه اندازی موتور

                نوشته اصلی توسط Navid_Micro
                دوستان من یکی ساختم
                ساعت + آلارم با فایل صوتی(پخش فایل WAV تمای فرمت های 8بیت مونو و استریو) + تاریخ کاملا شمسی + محاسبه روزهای هفته و سال 366 و 365 روزه +دما+ قطع آلارم مدل Iphone (که دست روش میکشن قطع میشه)
                همه در یک ATMEGA32 کاملا هم Real Time ، اصلا وقفه تو اجرا نمی افته
                خودم وقتی نگاش میکنم حال میکنم، البته هنوز یکسری نواقص داره که دارم ذره ذره حلش میکنم
                یه عکس هم بگیر ما هم حال کنیم :mrgreen:

                برای تنظیم ساعت می تونی GPS بزاری :biggrin:

                دیدگاه


                  #23
                  پاسخ : ساعت با آلارم و راه اندازی موتور

                  یه عکس هم بگیر ما هم حال کنیم :mrgreen:

                  برای تنظیم ساعت می تونی GPS بزاری :biggrin:
                  ما نوکرتیم داداش
                  چشم ، کامله کاملش که کردم ، عکس و یا فیلم ازش میزارم
                  برای ساعت از ای سی کلاک استفاده کردم :job:
                  GPS >woooooooooooooooooooow
                  70000 پول بدم واسه یه ساعته فکستنی ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ :mrgreen:
                  [hr]
                  در رابطه با GPS هم یه برنامه کامل نوشتم ، خیلی عالیه ، تستش کردم ،جواب گرفتم ، تمام پروتکل ها رو میخونه
                  میتونید توی تاپیک راه اندازی GPS اون رو پیدا کنید و ازش استفاده کنید ، احتمالا صفحه 27 یا 28 باید باشه ، درست یادم نیست
                  دلا خو کن به تنهایی که از تنها بلا خیزد

                  دیدگاه

                  لطفا صبر کنید...
                  X