تایمر در ATMEGA8 و شاخص های LED. برنامه نویسی میکروکنترلر AVR Timer در میکروکنترلر ATMEGA8 با صفحه نمایش ال سی دی

درس 10

تایمر شمارنده وقفه

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

تایمر شمارنده - اینها چنین دستگاهها یا ماژول ها در یک میکروکنترلر هستند که، همانطور که از نام دیده می شود، به طور مداوم چیزی را در نظر می گیرند. آنها به یک مقدار معینی یا به همان اندازه که مانند آنها هستند، می دانند. آنها در نظر گرفته شده اند به طور مداوم در یک سرعت، با سرعت فرکانس ساعت میکروکنترلر، اصلاح شده بر روی تقسیم کننده های فرکانس، که ما در برخی از ثبت نام پیکربندی.

و این تایمر ها شمارنده ها به طور مداوم در نظر گرفته می شوند اگر ما آنها را راه اندازی کنیم.

تایمر در MK atmega8 سه.

دو نفر از آنها هستند هشتم تایمر، یعنی آنهایی که می توانند تنها تا 255 سال به حداکثر برسند. این مقدار برای ما کافی نخواهد بود. حتی اگر ما حداکثر تقسیم فرکانس را اعمال کنیم، دوم را شمارش نمی کنیم، حتی نمی توانیم نیمه بیچه را حساب کنیم. و ما چنین کاری را انجام می دهیم تا به 1 ثانیه برسد تا کنترل افزایش شاخص LED را کنترل کند. البته شما می توانید هنوز هم افزوده به یک متغیر به مقدار مشخصی، اما من می خواهم به طور کامل حساب های سخت افزاری.

اما یک تایمر دیگر وجود دارد - این یک کامل است 16 بیتیتایمر او نه تنها 16 بیتیاما هنوز هم در آن وجود دارد، که از دیگر تایمر نیست. با استفاده از این گزینه ها، بعدا می دانیم.

در اینجا این تایمر 16 بیتی است، ما امروز مطالعه خواهیم کرد. همچنین، با این تایمر آشنا شوید، شما خودتان را به خود اختصاص نمی دهید تا کار دو نفر دیگر را بررسی کنید، زیرا آنها بسیار ساده تر هستند. اما با این وجود، تایمر های 8 بیتی در آینده نیز در نظر گرفته خواهد شد، زیرا برای دستیابی به وظایف پیچیده تر، یک تایمر کافی نخواهد بود.

در حال حاضر به طور خلاصه در مورد وقفه.

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

در کنترل کننده ATMEGA8 ما 19 نوع وقفه وجود دارد. در اینجا همه آنها در جدول مستندات فنی برای کنترل کننده هستند

چه نوع می تواند شرایط باشد؟ به عنوان مثال، در مورد ما، یک تایمر به مقدار مشخصی، یا به عنوان مثال، بایت و سایر شرایط به اتوبوس آمد.

در حال حاضر ما این وقفه را پردازش می کنیم که در جدول قرار داده شده در بالای 7 موقعیت قرار دارد - Timer1 CompA.در 0x006 نامیده می شود.

حالا بیایید به تایمر 16 بیتی ما نگاه کنیم یا تایمر 1.

در اینجا طرح ساختاری آن است

ما می بینیم ثبت نام در آنجا tcntnجایی که شماره به طور مداوم در حال تغییر است، یعنی، به طور مداوم افزایش می یابد. تقریبا این شمارنده است. به این معناست که این ثبت نام این شماره را ذخیره می کند که همچنین تایمر را نیز شمارش می کند.

و در ثبت نام ocrna و ocrnb (حروف n یک شماره تایمر است، در مورد ما 1 خواهد بود) - اینها رجیستری هستند که در آن ما وارد می کنیم که کدام Chilo را در ثبت TCNTN مقایسه می کند.

به عنوان مثال، ما تعداد کمی به ثبت نام OCRNA را ذکر کردیم و به محض این که این شماره با ارزش ثبت نام حساب کاربری همزمان بود، این وقفه بوجود می آید و ما قادر خواهیم بود آن را پردازش کنیم. تایمر با وقفه ها بسیار شبیه به تاخیر معمول در کد است، تنها زمانی که ما در تاخیر هستیم، در این زمان ما نمی توانیم هیچ کد (خوب، دوباره "ما"، در واقع، allu). و هنگامی که تایمر معتقد است، کل کد برنامه ما در این زمان آرام است. بنابراین ما برنده غول پیکر هستیم، نه اجازه دادن به منابع زیادی از کنترلر در یک یا نیم ثانیه دوم را آسان تر می کنیم. در این زمان، ما می توانیم فشار دکمه هایی را که ما می توانیم در تایمر و خیلی بیشتر پردازش کنیم، اداره کنیم.

همچنین یک ثبت نام TCCR وجود دارد. این ثبت نام ثبت نام ثبت نام است. بیت تعریف شده ای وجود دارد که مسئول پیکربندی تایمر هستند.

همچنین، تایمر دارای چندین حالت است که ما نیز کمی تعجب می کنیم.

این شامل دو طرف است، زیرا ما یک کنفرانس 8 بیتی داریم و نمی توانیم ثبت نام های 16 بیتی باشد. بنابراین، در نیمی از ثبت نام (و از لحاظ جسمی در یک ثبت نام)، بخش مسن تر ثبت نام ذخیره می شود، و در دیگری - جوانترین. شما همچنین می توانید آن را یک جفت ثبت نام متشکل از دو مجتمع TCCR1A و TCCR1B جدا کنید. شماره 1 به این معنی است که ثبت نام به تایمر 1 تعلق دارد.

ثبت نام TCCR مسئول نصب یک تقسیم کننده است به طوری که تایمر به سرعت شمارش نمی کند، او همچنین برای نصب یک حالت خاص (یا به جای بیت های خاص خود) پاسخ می دهد.

بیت های WGM مسئول تنظیم حالت هستند

ما در اینجا بسیاری از انواع حالت ها را می بینیم.

طبیعی - این یک حالت عادی است، تایمر به پایان می رسد.

PWM - این هست شیم فقط انواع مختلف، یعنی تایمر می تواند نقش داشته باشد مدولاتور پالس. ما با این تکنولوژی در کلاس های بعد آشنا خواهیم شد.

CTC - این یک تصادف بازنشانی، درست است که ما نیاز داریم. در اینجا Registers TCNT و OCR مقایسه شده است. دو حالت چنین، ما به اول نیاز داریم، دوم با یک ثبت نام دیگر کار می کند.

تمام انواع رژیم ها ما در این درس مطالعه نخواهیم کرد. هنگامی که ما به این حالت ها نیاز داریم، ما آن را فهمیدیم.

خوب، بیایید فردا خودمان باشیم و در نهایت چیزی را به برخی از ثبت نام ها امتحان کنید.

کد، همانطور که همیشه از پروژه گذشته ایجاد شد. برای پروتئوس، کد نیز از اشغال گذشته کپی شده و تغییر نام داده شد، مسیر سیستم عامل جدید نیز در خواص کنترل کننده مشخص شد. پروژه هایی که ما می نامیم test07.

بیایید سعی کنیم که چگونه کد را کامپایل کنیم و آن را در Proteus اجرا کنیم. اگر همه چیز خوب کار کند، شما شروع به اضافه کردن یک کد جدید می کنید.

ما یک تابع دیگر را اضافه خواهیم کرد، مزایای اضافه کردن توابع ما در گذشته یاد گرفته ایم. کد تابع پس از عملکرد Segchar و عملکرد اصلی قرار می گیرد. پس از این واقعیت که ما در داخل ویژگی جدید ما تماس می گیریم تابع Segchar.

علاوه بر این، ما یک تابع را ایجاد نخواهیم کرد، بلکه دو مورد دیگر. در یک تابع، ما تمام کد اولیه تایمر ما را قرار می دهیم، و عملکرد دیگر یک دستگیره قطع از تایمر خواهد بود و آنها به چنین توابع خاصی مشخص نیستند. هنگامی که لازم است، آنها خود را بسته به شرایط خاصی که در بالا ذکر شد، باعث می شود.

بنابراین اولین تابع ما تماس گرفتیم timer_ini.

//———————————————

خالی.timer_ini.( خالی.)

{

}

//———————————————

همچنین، اجازه دهید از توابع ما استفاده کنیم، و همچنین برخی از بلوک های کامل با تبلیغات متغیرهای جهانی، ما از یکدیگر با نمونه های توابع جداگانه جدا خواهیم شد، که به دلیل حضور دو لایه پیش رو، کامپایلر پردازش نمی کند و آنها را نمی گیرد به نظرات با توجه به این مذاکرات، ما خواهیم دید که کدام یک از تابع به پایان می رسد و دیگر شروع می شود.

این تابع، همانطور که می بینیم هیچ استدلالی ندارد - هیچ ورودی، بازگشتی نیست. بیایید این ویژگی را بلافاصله در عملکرد اصلی () تماس بگیریم

unsignedچارbutcount \u003d 0،butstate \u003d 0؛

timer_ini.();

در حال حاضر ما آسیب به کد را شروع خواهیم کرد.

به عنوان مثال، با TCCR1B ثبت نام کنید. با استفاده از عملیات مورد علاقه ما "یا"، ما یک کمی از ثبت نام را وارد خواهیم کرد

خالی.timer_ini.( خالی.)

tccr1b.|= (1<< WGM12);

از نظر، ما می بینیم که ما با جنگ های حالت کار می کنیم، و ما تنها بیت های WGM12 را نصب خواهیم کرد، بقیه صفر را ترک می کنند. بر اساس این، ما این حالت را پیکربندی کردیم:

همچنین، تایمر هنوز چنین ثبت نام کرده است - تیمسک. این ثبت نام مسئول ماسک های وقفه است - ماسک وقفه. این ثبت نام برای همه تایمر ها، نه تنها برای اولین بار، شایع است. در این ثبت نام، بیت ها را نصب خواهیم کرد ocie1aکه به نوع وقفه شما نیاز دارید Timer1 CompA.

tccr1b.|= (1<< WGM12); // نصب حالت STS (بازنشانی تصادف)

تیمسک|= (1<< ocie1a);

در حال حاضر اجازه دهید با مقایسه خود را ثبت کنید OCR1A (H و L). برای این باید کمی شمارش شود. ثبت نام ocr1ah بخش های قدیمی تر شماره را برای مقایسه و ثبت نام ذخیره می کند ocr1al - جوانتر

اما قبل از محاسبه، اجازه دهید کد را با هر مقادیر این ثبت نام متوجه شویم و سپس ما را اصلاح کنیم، همانطور که تقسیم کننده را راه اندازی خواهیم کرد و همچنین در محاسبه زمان حساب مورد نیاز شرکت خواهیم کرد. بدون تقسیم، تایمر بیش از حد سریع خواهد شد.

تیمسک|= (1<< ocie1a); // کمی از اجازه وقفه از تصادف از یک تصادف با OCR1A (H و L) نصب کنید

ocr1ah= 0b10000000؛

ocr1al= 0b00000000؛

tccr1b.|= ( ); // تقسیم را نصب کنید

تا کنون، هیچ تقسیم کننده ای تنظیم نشده است، زیرا هنوز فکر نکرده ایم. بگذارید این کار را انجام دهیم

در حالی که ما در ثبت نام هستیم ocr1a شماره 0B1000000000000000 وجود دارد که مربوط به عدد دهدهی 32768 است.

میکروکنترلر کار می کند همانطور که ما در 80،000،000 هرتز موافقت کردیم.

ما 8000000 تا 32768 را تقسیم می کنیم، ما تقریبا 244.14 دریافت می کنیم. در اینجا با چنین فرکانس در هرتز و تایمر ما کار خواهد کرد اگر ما تقسیم را اعمال نمی کنیم. به این ترتیب، تعداد ما 244 بار در ثانیه تغییر خواهد کرد، بنابراین ما حتی آنها را نمی بینیم. بنابراین، تقسیم فرکانس تایمر اعمال خواهد شد. ما یک تقسیم کننده را به 256 انتخاب می کنیم. این فقط به ما متصل می شود و حتی تا 1 هرتز، سپس تعداد مقایسه ها را تنظیم می کنیم.

در اینجا چند تقسیم کننده برای 1 تایمر وجود دارد

من یک تقسیم کننده را در جدول اختصاص دادم. ما می بینیم که ما باید فقط بیت ها را نصب کنیم CS12.

از آنجا که تقسیم فرکانس 256 است، پس ما 80،000،000 را در این تقسیم به اشتراک می گذاریم، آن را به 31250 تبدیل خواهد شد، این چیزی است که ما باید شماره را در TCNT قرار دهیم. به این تعداد، تایمر ما در نظر گرفته خواهد شد به شمارش به 1 ثانیه. شماره 31250 در نمایش دودویی 0B011110100000010 است. بگذارید این شماره را به جفت ثبت نام بفرستیم و همچنین یک تقسیم کننده را اعمال کنیم

ocr1ah= 0b 01111010 ; // نوشتن یک شماره به ثبت نام برای مقایسه

ocr1al= 0b 00010010 ;

tccr1b.|= (1<< CS12 ); // تقسیم را نصب کنید

با این تابع، همه چیز.

در حال حاضر عملکرد زیر، دستیار وقفه از تصادف است. او چنین نوشته شده است

ISR( timer1_compa_vect.)

{

}

و بدن این ویژگی خود را در حقیقت صلاحیت تعداد اعداد انجام می شود.

ما به یک متغیر نیاز داریم ما آن را در سطح جهانی اعلام خواهیم کرد، در ابتدای فایل

#عبارتند از.

//———————————————

unsignedچارمن.;

//———————————————

بر این اساس، از کد در عملکرد اصلی ()، ما همان متغیر را حذف خواهیم کرد

intاصلی( خالی.)

unsignedچارمن.;

ما همچنین تمام کد را در یک چرخه بی نهایت شکایت می کنیم. نقش او در حال حاضر ما یک تایمر را انجام خواهیم داد، و من فکر می کنم او با آن مواجه نخواهد شد، بلکه حتی بهتر است، "هیچ کس" این را تداخل نمی دهد.

در حالی که(1)

{

// برای (I \u003d 0؛ I<10;i++)

// {

// در حالی که (butstate \u003d\u003d 0)

// {

// اگر (! (PINB & 0B00000001))

// {

// اگر (ButCount< 5)

// {

// butcount ++؛

// }

// دیگر

// {

// i \u003d 0؛

// butstate \u003d 1؛

// }

// }

// دیگر

// {

// اگر (Butcount\u003e 0)

// {

// butcount-؛

// }

// دیگر

// {

// butstate \u003d 1؛

// }

// }

// }

// segchar (i)؛

// _delay_ms (500)؛

// butstate \u003d 0؛

// }

در حال حاضر، در واقع، بدن عملکرد دستیار. در اینجا ما تابع Segchar را فراخوانی خواهیم کرد. سپس ما در 1 متغیر افزایش خواهیم یافت من.. و به طوری که آن را فراتر از شماره منحصر به فرد نیست، ما آن را تحت این شرایط تنظیم مجدد

ISR( timer1_compa_vect.)

اگر.( من.>9) من.=0;

segchar( من.);

من.++;

در حال حاضر من یک کد کمی را در ابتدای عملکرد اصلی () اصلاح خواهم کرد. بندر D.چه چیزی مسئول دولت بخش ها است، ما یکی را خواهیم گرفت، به طوری که وقتی روشن می شوید، این نشانگر درخشش ندارد، زیرا آن با یک آند معمول است. سپس ما شماره 0 را به یک متغیر جهانی I، فقط برای سفارش می دهیم. به طور کلی، به عنوان یک قاعده، هنگام شروع از متغیرهای غیر اختصاصی، و به همین ترتیب همیشه صفر است. اما ما هنوز آن را آغاز می کنیم. و مهمتر از همه، وقفه از تایمر کار می کرد، کافی نیست که آن را در ابتدای تایمر قرار دهیم. همچنین به طور کلی، وقفه های جهانی باید برای همه وقفه ها حل شود. برای این یک ویژگی خاص وجود دارد sei () - تنظیم وقفه.

در حال حاضر کد این خواهد بود

DDRB= 0x00؛

portd= 0b 11111111 ;

پورت= 0b00000001؛

من.=0;

سمی();

در حالی که(1)

همچنین، ما باید فایل کتابخانه وقفه را در ابتدای فایل متصل کنیم

#عبارتند از.

#عبارتند از.

#عبارتند از.

همچنین متغیرها برای دکمه نباید برای ما مورد نیاز باشد، زیرا ما امروز با دکمه کار نخواهیم کرد. آنها را مرتکب شوید

intاصلی( خالی.)

// unsigned char butcount \u003d 0، butstate \u003d 0؛

timer_ini.();

ما کد ما را جمع آوری می کنیم و عملکرد آن را ابتدا در Proteus بررسی می کنیم. اگر همه چیز خوب کار کند، سپس در یک طرح زندگی نیز بررسی کنید

همه چیز برای ما کار می کند عالی

در اینجا چنین کرونومتر است. اما از آنجایی که ما حتی یک رزوناتور کوارتز نداریم، این کرونومتر را نمی توان دقیقا نام برد.

با این وجود، امروز ما با شما آموختیم. ما در مورد وقفه ها آموخته ایم، آنها همچنین آموختند که آنها را پردازش کنند، آموخته اند که با تایمر ها کار کنند، چندین رشته جدید میکروکنترلر را پیکربندی کنند، قبل از اینکه ما فقط با ثبت نام پورت کار کردیم. همچنین، به هزینه این همه، ما به طور قابل توجهی دستگاه محاسبات منطقی میکروکنترلر ما را به طور قابل توجهی تخلیه کردیم.

تماشای آموزش تصویری

دیدگاه های پست: 17 258

تایمر طراحی شده است تا بار را در یک زمان روشن کند و به یکی دیگر از آنها برسد. حجم کار کار در فریم های خاصی از زمان.

طراحی ساعت زمان واقعی PCF8583 در بسته نرم افزاری با یک باتری پشتیبان گیری برای ساعت کار در غیاب قدرت استفاده می شود. به عنوان یک مغز از دستگاه، یک میکروکنترلر ATMEGA8 با سرعت 16 مگاهرتز اعمال می شود.
این دستگاه از شارژ تلفن برنامه ریزی شده است - بنابراین هیچ تثبیت کننده 5V در طرح وجود ندارد - یک اتصال برق 5V و منبع تغذیه 220V برای BP وجود دارد.
بار به رله تبدیل می شود - با نوع مشخص شده در نمودار به 10A.
3 LED در نمودار وجود دارد:
گزینه ها. - هنگامی که شما به تنظیمات ساعت وارد می شوید، روشن می شود.
زمان. - فلاش زمانی که تایمر کار می کند - زمانی که تایمر غیرفعال می شود، سوزانده نمی شود.
خارج - وضعیت رله را نشان می دهد - روشن یا غیر فعال شده است.
دکمه ها:
sw1 - دکمه H..
SW2 - دکمه M..
تنظیمات:
تنظیم ساعت
برای سفارشی کردن ساعت شما باید دکمه را نگه دارید sw1 قبل از آفتاب گرفتن چراغ گزینه ها..
نقطه روشن می شود و دکمه را لمس نمی کند sw1 ساعت نصب شده و دکمه SW2 دقایق.


برای خروج از تنظیمات شما همچنین باید دکمه را نگه دارید. sw1 تا زمانی که رهبری می رود گزینه ها..
تنظیم تایمر
برای پیکربندی تایمر شما نیاز به حالت نمایش (حالت وظیفه - پایه) تنظیم دکمه ها sw1 - روشن کردن بار، SW2 - زمان برای خاموش کردن بار پس از شماره گیری تایمر، اگر دکمه ها در عرض 2-3 ثانیه فشرده نشوند، به حالت زمان نمایش زمان بروید.


غیر فعال کردن تایمر
برای غیرفعال کردن تایمر شما نیاز به نگه داشتن و نگه داشتن دکمه SW2 - دستگاه بارگذاری را روشن می کند و تایمر آن را خاموش نخواهد کرد.
طرح.


یک اتصال غیر استاندارد ISP در نمودار اعمال می شود:
1 - VCC
2 - Mosi.
3 - Miso
4 - SCK
5 - تنظیم مجدد
6 - GDN.

تخته مدار چاپی



در هیئت مدیره مدار چاپی، یک شاخص با یک آند معمولی E40361 اعمال می شود - اما ممکن است به دیگری با یک pinout و ابعاد مشابه امکان پذیر باشد.

برخی از مدل های 3D.




یک طرح ساده از یک تایمر خوب در ATMEGA8 MK، ناوبری راحت در منو، صفحه نمایش ال سی دی ال سی دی، ساعت زمان واقعی، حداقل قطعات.

به عنوان مثال، به عنوان مثال، برای گلخانه ها بسیار مفید است، ممکن است آبیاری یا گردش خون را در هیدروپونیک سازماندهی کنید، شما می توانید فیدرها و نوشیدنی ها را برای حیوانات، پرندگان و خیلی بیشتر برای آنچه که بیشتر است، تنظیم کنید.


قلب این تایمر بسیار محبوب است و دیگر میکروکنترلر میکروکنترلر Atmega8 نیست.

البته، برای سیستم عامل، ما به یک برنامه نویس نیاز داریم، اما اگر لازم نیست، شما می توانید تنها 4 سیم کشی متصل به پورت LPT با توجه به این طرح انجام دهید.

ما نیاز داریم:

طرح تایمر

همانطور که در آن دیده می شود هیچ مدار قدرت و محرک وجود ندارد، این به این دلیل است که شما ممکن است تصمیم به استفاده از یک BP تثبیت شده از راه دور، و همچنین شناخته شده نیست که بار در برنامه ریزی برای اتصال، بنابراین هر کس باید محرک تحت الزامات فنی خود را انتخاب کنید .

متناوبا، محرک بر روی تریز ها، تریستورها و سیمستور ها در زیر نشان داده شده است.



گزینه از طرح Sprint.

هنگام نصب تراشه ساعت و عنصر کوارتز باید توجه ویژه ای داشته باشید. طول مسیرهای بین آنها باید حداقل باشد و بهتر است از میکرو کوارتز از ساعت مچی استفاده کنید و آن را به طور مستقیم به پاهای MS ساعت تبدیل کنید. تمام فضای آزاد در کنار ساعت با مس در بدن پر شده است. باتری لازم است برای نگهداری ساعت ها در شرایط کاری در حالی که قطع ارتباط از شبکه است. اگر به دلایلی این باتری را نصب نکرده اید، سپس سیم را روی بدن قرار دهید، در غیر این صورت ساعت به سادگی نمی رود.

میکروکنترلر توسط یک برنامه نویس یا با استفاده از 5 سیم ساده نصب می شود.

نویسنده سیستم عامل (دانلود - Multitimer) سعی کرده است و فوب ها را تغییر نداده است، که باعث می شود آن را بسیار ساده تر، بدون مشکل، نرم افزار برای یک رادیو تازه کار آماتور. اگر MK هنوز استفاده نشده است، یکی از جدیدترین فروشگاه ها، سپس به سادگی سیستم عامل و همه چیز را پوشانده است، اما اگر قبلا تغییرات در فیوزها وجود داشته باشد، باید آنها را به عنوان CKSEL \u003d 0001 تنظیم کنید. همه چیز ساده است و به توضیح نیازی نیست.

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

در برش چاقوی برش، با کمک تفنگ از تفنگ، صفحه نمایش ال سی دی را تعمیر کنید.، سوراخ ها را تحت دکمه های کنترل و دکمه قدرت برش دهید.

ما تمام گره ها را در داخل مسکن قرار می دهیم، به طور مداوم چک کردن چگونگی بسته شدن پوشش را در صورت لزوم بسته بندی می کنیم یا تداخل می کنیم.

در طرح جمع آوری شده، ما غذا می دهیم، چنین تصویری باید ظاهر شود.

کنترل توسط چهار دکمه انجام می شود. این منو شامل سه مورد، ساعت نصب ساعت، اسلات اسلات تمام تایمر، تایمر - نصب تایمر.

ابتدا در منوی ساعت و نمایشگاه (\u003e) (\u003e)<)(#) точное время.


اشاره به دکمه های کنترل در خط پایین صفحه نمایش، هر منو متفاوت است، بنابراین لازم نیست که دکمه ها را توصیف کنید.

در حال حاضر همه چیز آماده است تا به درستی موقعیت زمان تایمر را تنظیم کند، پس از فشار دادن شبکه، برنامه در حافظه دائمی MK ثبت شده است.

تایمر شمارش معکوس به شما کمک خواهد کرد تا دقیقا فاصله زمانی از 1 تا 24 ساعت را اندازه گیری کنید.

امروز، هیچ کس طراحی تایمر را متعجب نخواهد کرد، زیرا در فروش و در اینترنت چنین دستگاههایی را دوست دارید. و تمام تایمرها به نظر می رسد مانند یکدیگر نگاه کنند. و هنگامی که شما شروع به در نظر گرفتن توابع طرح در جزئیات بیشتر، شما هر گونه ناراحتی برای خودتان پیدا کنید.

در اینجا، از این ملاحظات، یک برنامه تایمر را که با پارامترهای زیر مطابقت دارد انجام دادم:
- طراحی جمع و جور و مدار ساده؛
- دکمه فشار عملیاتی؛
- هنگام مدیریت دکمه ها، اقدامات تکثیر بر روی ال سی دی؛
- زمان کار تا یک ثانیه؛
- محدوده شمارش معکوس از 1 ثانیه تا 24 ساعت؛
- شروع تابع، مکث؛
- تابع بازنشانی مرجع و مقادیر زمان نمایشگاه؛
- هنگامی که مقدار به 00.00.00 رسیده است، محرکه روشن است؛

تمام وظایف مجموعه در این پروژه اجرا شد.

تایمر شمارش معکوس به شما کمک خواهد کرد تا دقیقا فاصله زمانی از 1 تا 24 ساعت را اندازه گیری کنید.

امروز، هیچ کس طراحی تایمر را متعجب نخواهد کرد، زیرا در فروش و در اینترنت چنین دستگاههایی را دوست دارید. و تمام تایمرها به نظر می رسد مانند یکدیگر نگاه کنند. و هنگامی که شما شروع به در نظر گرفتن توابع طرح در جزئیات بیشتر، شما هر گونه ناراحتی برای خودتان پیدا کنید.

در اینجا، از این ملاحظات، یک برنامه تایمر را که با پارامترهای زیر مطابقت دارد انجام دادم:
- طراحی جمع و جور و مدار ساده؛
- دکمه فشار عملیاتی؛
- هنگام مدیریت دکمه ها، اقدامات تکثیر بر روی ال سی دی؛
- زمان کار تا یک ثانیه؛
- محدوده شمارش معکوس از 1 ثانیه تا 24 ساعت؛
- شروع تابع، مکث؛
- تابع بازنشانی مرجع و مقادیر زمان نمایشگاه؛
- هنگامی که مقدار به 00.00.00 رسیده است، محرکه روشن است؛

تمام وظایف مجموعه در این پروژه اجرا شد.

شرح حالت عملیات تایمر

پس از روشن شدن تایمر، می توانید زمان لازم را تنظیم کنید. هدف از دکمه ها در نمودار قابل مشاهده است. پس از نصب، شمارش دکمه شروع-مکث را فشار می دهید. حداکثر زمان خارج از زمان 23.59.59.

اصلاح زمان شمارش معکوس را می توان در هر زمان از تایمر تولید کرد، پس از منبع تغذیه به مدار.

به محض اینکه زمان به 00.00.00 برسد، LED روشن می شود (در حال حاضر آن تقلید از گنجاندن محرک یا به سادگی می تواند با ژنراتور جیغ زدن).

اگر هنگام کار بر روی دکمه شروع-مکث کلیک کنید، تایمر متوقف می شود شمارش را متوقف می کند، دوبار فشار دادن دکمه شروع-مکث منجر به از سرگیری توقف می شود.

برای خاموش کردن بار پس از تعویض، شما باید تنظیم مجدد را فشار دهید، داده های تایمر نصب شده 00.00.01 - بار خاموش است. یا یک دوره مرجع جدید را تنظیم کنید و دکمه دکمه شروع مکث را فشار دهید.

نمایش در کاراکترهای ال سی دی< ! \u003e به این معنی است که بار غیر فعال است (PD3) و زمان شروع زمان تعیین شده شروع به فشار دکمه شروع.

کوارتز خارجی 8 مگاهرتز، برای دقت حساب.

فهرست عناصر رادیویی

تعیین یک نوع اسمی عدد توجه داشته باشیدنمرهدفترچه من
MK AVR 8 بیتی

atmega8

1 در نوت بوک
تنظیم کننده خطی

LM7805

1 در نوت بوک
اصلاح دیود

1N4148.

1 در نوت بوک
خازن22 pf2 در نوت بوک
خازن0.1 MKF1 در نوت بوک
100 μF1 در نوت بوک
کندانسور الکترولیتی470 μF.1 در نوت بوک
مقاومت

470 آه

1 در نوت بوک
مقاومت قوی5 com1 در نوت بوک
مقاومت

10 com

1 در نوت بوک
رزوناتور کوارتز8 مگاهرتز1