برنامه های تدریس شده در نیمسال دوم سال 91-92
در این برنامه با نگه داشتن کلید به مدت 5 ثانیه دیود روشن می شود و اگر کمتر از 5 ثانیه آن را نگه داریم، تاثیری ندارد.
در این برنامه اگر کلید را نگه نداریم خط 20برنامه
while(PINA.1==1)
اجرا نشده و دائما ایکس صفر می شود
حال اگر کلید را نگه داریم برنامه وارد حلقه ی خط 20 می شود و هر 0.1 ثانیه به ایکس اضافه می شود
در این حالت اگر کلید را زودتر از 5 ثانیه رها کنیم ایکس مجددا صفر می شود
بعد از 5 ثایه ایکس بیش از 50 می شود و دستور خط 24 اجرا می شود و دیود روشن می شود
و تا وقتی کلید را نگه داریم، دیود روشن می ماند و خاموش نمی شود برای خاموش شدن آن باید کلید را رها کرد و مجددا 5 ثانیه نگه داشت
برنامه ی تنظیم سرعت چشمک زدن دیود
در این برنامه با کلید up می توان مقدار سرعت را افزایش و با کلید down می توان مقدار سرعت را کاهش داد.
در این برنامه ایکس می تواند بین 1 الی 30 باشد اگر ایکس 1 باشد دیود هر 10 میلی ثانیه و اگر ایکس 30 باشد، دیود هر 300 میلی ثانیه یک بار خاموش و روشن می شود. البته اگر ایکس بیشتر شود برای کاهش آن شما باید دست خود را بیشتر روی کلید نگه دارید
برنامه ی فرکانس متر با وقفه ی خارجی
در این برنامه با استفاده از وقفه ی خارجی می توان فرکانسی تا 10 کیلو هرتز را اندازه گیری نمود.
این برنامه برای اندازه گیری فرکانس های کمتر از 10 کیلو هرتز مناسب است
در فرکانس های بالا تر به دلیل اینکه تعداد وقفه ها زیاد می شود
میکروکنترلر باید از تابع تاخیر 1 ثانیه ای خارج شده و به وقفه برود و سپس برگردد که این منجر به
افزایش زمان اجرای تابع تاخیر 1 ثانیه ای می شود
برای رفع این مشکل باید تاخیر 1 ثانیه ای را با تایمر ایجاد نماییم
برنامه ی فتوسل با میکروکنترلر AVR
در این برنامه از یک سنسور نور یا LDR استفاده شده است. این سنسور در تاریکی حدود یک مگا اهم و در نور خورشید حدود یک کیلو اهم مقاومت دارد. در این برنامه وقتی مقاومت روی سنسور حدود 100 کیلو اهم شود (نور کم شود)، لامپ روشن شده و در صورتی که این مقاومت حدود 50 کیلو اهم شود (نور زیاد شود)، لامپ خاموش می شود. در شکل زیر نحوه ی راه اندازی این مدار را مشاهده می کنید:
در این برنامه LDR و مقامت یک مگا اهمی با هم سری هستند. وقتی مقاومت LDR برابر 100 کیلو اهم باشد، طبق قانون تقسیم ولتاژ، ولتاژ روی پایه ی ADC برابر 0.45 ولت و وقتی این مقاومت 50 کیلو اهم است این ولتاژ حدود 0.23 ولت است. ADC با اندازه گیری این دو ولتاژ عدد 93 و 48 را بر می گرداند.
در این برنامه اگر دما بالای 30 درجه بود خروجی وصل شده و اگر زیر 27 درجه بود، خروجی وصل می شود و در دمای بین 30 تا 27 خروجی بدون تغییر باقی می ماند. در دمای 30 درجه خروجی سنسور 0.3 ولت است و در نتیجه عدد ADC برابر 61 خواهد شد و در دمای 27 درجه خروجی 0.27 ولت است که عدد ADC برابر 55 خواهد شد.
برنامه ی دریافت اطلاعات از طریق USART
در این برنامه فرکانس میکروکنترلر برابر 8 مگاهرتز و نرخ ارسال برابر 9600 است که در این حالت عددی که باید در رجیستر UBRR قرار بگیرد برابر 51 یا 33 هگز می باشد.
در این برنامه داده ی دریافت شده هم به صورت مبنای 10 و هم به صورت کد اسکی نشان داده می شود.
ایجاد 2 ثانیه زمان با میکروکنترلر AVR
در این برنامه فرکانس میکروکنترلر برابر 4 مگاهرتز می باشد و تقسیم کننده ی فرکانسی تایمر 0 برابر 1024 انتخاب شده است. برای ایجاد 2 ثانیه تایمر 7812 شمارش انجام می دهد مه برای انجام این تعداد شمارش 30.51 بار سر ریز می شود. در این حالت تایمر 30 بار کامل سر ریز شده و 0.51 شمارش خود یعنی 132 شماره می شمارد. برای جبران این شمارش تایمر را با عدد 123 بار گذاری می کنیم
در این برنامه هر 2 ثانیه یکبار یک LED خاموش و روشن می شود.
ایجاد دو زمان 3 ثانیه و 0.2 ثانیه با تایمر 0
به دلیل اینکه در این برنامه دو زمان مختلف مد نظر است، یکی از این زمانها تقریبی خواهد بود و یکی از زمانها دقیق می شود. در این برنامه زمان 3 ثانیه دقیق فرض شده است و فرکانس میکروکنترلر 2 مگاهرتز است. تقسیم فرکانسی برابر 1024 بوده و برای ایجاد 3 ثانیه تایمر می بایست 5859 شمارش انجام دهد که در این صورت 22.88 بار سر ریز می شود که اگر حساب نماییم 29 شمارش تا 23 سر ریز کم دارد که در ابتدا این عدد را در TCNT0 بار گذاری می کنیم.
در این برنامه حدود 0.2 ثانیه (کمی بیشتر) یک LED که به پورت A.0 متصل شده است چشمک می زند و هر 3 ثانیه یکبار LED PORTA.1 روشن می شود و عبارت Welcome از طریق USART توسط تابع printf ارسال می شود. برای تنظیم نرخ ارسال برابر 9600 در رجیستر UBRR عدد 12 قرار گرفته است که در این شرایط 016 درصد خطا داریم.
تمامی برنامه ها در فایل ZIP قرار دارند. برای باز کردن آنها، آنها را دانلود نمایید و فایل با پسوند C را با Notepad باز نمایید (یا با Code Vision AVR) تمامی نقشه ها با نرم افزار پروتئوس ورژن 7 به بالا باز می شوند