سلام دوستان این پروژه یک کرنومتر است که ۹ حافظه دارد و شما می توانید با ایجاد تغییراتی در برنامه تعداد حافظه را افزایش دهید روش استفاده: با فشار دادن کلید * تایمر شروع به شمارش می کند زمانی که تایمر در حال شمارش است . اگر هر کدام از اعداد را فشار دهید زمان مورد نظر در عدد مربوطه ذخیره می شود و اگر کلید # را فشار دهید تایمر متوقف می شود و اعداد ذخیره شده یک بار نمایش داده می شوند زمانی که تایمر متوقف است اگر هر کدام از اعداد را فشار دهید زمان ذخیره شده فرآخوانی می شود اگر عدد ۰ را فشار دهید تمامی اعداد پاک می شوند اگر کلید # را فشار دهید تمامی اعداد به ترتیب نمایش داده می شوند موفق باشید.
این کرنومتر به شکلی هست که ثانیه رو نشون میده و هر با یک ثانیه افزایش پیدا میکنه و میشه طوری تنظیم کنیم که صدم ثانیه هم نشون داده بشه ولی مشکل اینجاست که ما تایمر 2 رو در 1 ثانیه داریم که سر ریز میکنه و برای تولید صدم ثانیه نیاز به تایمری دیگه داریم از طرفی تایمر 2 بسیار دقیق تر عمل میکنه در تولید ثانیه در حالی که تایمر هایی دیگه در حالت غیر rtc کانقیگ میشن و 3 درصد خطا دارن در برنامه ورژن سوم سعی کردیم تا تایمر 1 رو هم برای تولید صدم ثانیه داشته باشیم ولی همچنان بری تولید ثانیه از تایمر 1 استفاده میکنیم با این کار تولید ثانیه دقیق میشه و صدم ثانیه رو هم داریم.البته راه حل دوم استفاده از همون تایمر 2 هستش که با هر بار افزایش 3 واحدی تایمر به مقدار صدم ثانیه یک عدد اضافه بشه که این راه حل دقیقتر به نظر میرسه.
پیکر بندی تایمر – کانتر 2 به عنوان تایمر
Config timer2 = timer , async = on / off , _ Prescale = 1/8/32/64/128/256/1024
این تایمر 8 بیتی بوده پس حداکثر مقدار شمارش آن تا 255 خواهد بود با این دستور تایمر – کانتر 2 به عنوان یک تایمر به میکرو معرفی می شود. 1/8/32/64/128/256/1024 : مقادیری که می توان برای تقسیم فرکانس میکرو استفاده کرد. async : زمانی که off باشد به صورت یک تایمر معمولی عمل می کند. اما زمانی که on باشد, تایمر به صورت آسنکرون از دو پایه tosc1 و tosc2 که کریستال 32768hz به آنها متصل است کلاک دریافت می کند که در بخش rtc در مورد آن بحت خواهد شد. میزان فرکانس کار این تایمر از رابطه زیر بدست می آید:
فرکانس تایمر= فرکانس کار میکرو / prescal
فعال و روشن کردن تایمر2
Enable timer2
Start timer2
این دو دستور را حتما با هم به کار برید تا میکرو تایمر را روشن کند.
غیر فعال کردن تایمر 2
Stop timer2
از این دستور می توان در جاهای مختلف برنامه برای خاموش کردن تایمر استفاده نمود.نکته : با خاموش کردن timer2 مقدار شمارش شده صفر نخواهد شد و با روشن کردن دوباره آن ادامه شمارش انجام خواهد شد.
نوشتن و خواندن تایمر
Timer2 = var
Var = timer2
نکته : مقدار تایمر در رجیستری به نام timer2 قرار گرفته است که می توان به این رجیستر مقدار داد تا تایمر از آن مقدار شروع به شمارش کند و یا مقدار آن را در متغیری که برای انجام عملیاتی لازم دارید بریزید.
وقفه تایمر 2
Enable ovf2
On ovf2 lable
پرچم سریزی تایمر 2 به نام ovf2 بوده و همانطور که گفته شد با رسیدن مقدار تایمر به عدد 255 ( مقدار timer2 برابر صفر می شود ) این پرچم 1 شده و می توان از آن به عنوان پرش به یک زیر برنامه استفاده کرد و در زیر برنامه با return بازگشت. در این دستور باید اول پرچم را فعالسازی و بعد با دستور ovf2 on در صورت یک شدن ovf2 به برچسب زیر برنامه پرش کرد.
پیکر بندی تایمر – کانتر 2 به عنوان کانتر
Config timer2 = counter , edge = rising / falling
با این دستور کانتر 2 پیکر بندی شده و با اعمال پالس به پایه t2 میکرو یک واحد به رجیستر counter2 اضافه می شود. این کانتر 8 بیتی بوده پس حداکثر مقدار شمارش آن تا 255 خواهد بود ( پالس ورودی بعدی کانتر را صفر می کند ) Edge : گزینه rising برای حساس بودن پایه به لبه بالا رونده و گزینه falling برای حساس بودن پایه به لبه پایین رونده.
فعال و روشن کردن کانتر 2
Start counter2
این دستور را حتما به کار برید تا میکرو کانتر را روشن کند
غیر فعال کردن کانتر2
Stop counter2
از این دستور می توان در جاهای مختلف برنامه برای خاموش کردن کانتر استفاده نمود. با خاموش کردن counter2 مقدار شمارش شده صفر نخواهد شد و با روشن کردن دوباره آن ادامه شمارش انجام خواهد شد.
نوشتن و خواندن کانتر 2
COUNTER 2 = VAR Var = counter2
نکته : مقدار کانتر در رجیستری به نام counter2 قرار گرفته است که می توان به این رجیستر مقدار داد تا کانتر از آن مقدار شروع به شمارش کند و یا مقدار آن را در متغیری که برای انجام عملیاتی لازم دارید بریزید.
وقفه کانتر
2 Enable ovf2 On ovf2 lable
پرچم سریزی کانتر 2 به نام ovf2 بوده و همانطور که گفته شد با رسیدن مقدار کانتر به عدد 255 و با ورود یک پالس دیگر (مقدار counter2 برابر صفر می شود) این پرچم 1 شده و می توان از آن به عنوان پرش به یک زیر برنامه استفاده کرد و در زیر برنامه با return بازگشت. در این دستور باید اول پرچم را فعال سازی و بعد با دستور on ovf2 به برچسب زیر برنامه پرش کرد. نکته : فراموش نشود برای هر کار با وقفه ای اول باید وقفه کلی enable interrupts رافعال کرد.
پوشه حاوی فایلهای زیر است:
1- فایل بسکام
2-فایل پروتیوس pcb و شماتیک
توجه :کاربر گرامی شما علاوه بر خرید مستقیم همچنین میتوانید این فایل را با خرید اشتراک ماهانه دانلود نمایید پس مشترک ماهانه ی سایت شوید و تا پایان مدت اشتراک از آپدیت ها و فایلهای جدید موجود در سایت بهره مند گردید.
لیست فایلهای اعضای اشتراکی
نام فایل :
کرنومتر با 9 عدد حافظه 1
شنبه, 02 فروردين 773 19:36
حداقل اشتراک |
محتویات |
زمان ایجاد |
حجم فایل |
تعداد دانلودها |
رایگان |
برنامه+شماتیک |
چهارشنبه, 24 آبان 1391 21:48 |
20.68 KB |
0 |
تنها کاربران عضو یا دارای مجوز میتوانند دانلود نمایند |
توضیحات :
نام فایل :
کورنومتر با 9 حافظه 2
دوشنبه, 25 آبان 1394 01:29
حداقل اشتراک |
محتویات |
زمان ایجاد |
حجم فایل |
تعداد دانلودها |
تنها کاربران عضو یا دارای مجوز میتوانند دانلود نمایند |
توضیحات :
نام فایل :
کرنومتر با 9 عدد حافظه 3
شنبه, 02 فروردين 773 19:37
حداقل اشتراک |
محتویات |
زمان ایجاد |
حجم فایل |
تعداد دانلودها |
تنها کاربران عضو یا دارای مجوز میتوانند دانلود نمایند |
توضیحات :
در این ورژن با استفاده از تایمر 2 که در حال محاسبه ی یک ثانیه است صدم ثانیه را هم حساب میکنیم که البته خیلی دقیق نیست و این مقدار صدم ثانیه با تقسیم مقدار تایمر 2 بر عدد 2.65 به دست آمده است.برای
...