در اين بخش مي‌توانيد آموزش و مثال‌های مرتبط با میکروکنترلرهای AVR را مشاهده بفرمایید

مطالب برایتان مفید بود

عالی و ساده بود،ادامه دهید
18
82%
خوب و قابل فهم بود،ادامه دهید
4
18%
ساده و قابل فهم نبود.
0
بدون راي
تکراری و سخت بود.
0
بدون راي
 
کل آرا : 22

New Member



no avatar
پست ها

2

تشکر کرده: 0 مرتبه
تشکر شده: 2 مرتبه
تاريخ عضويت

سه شنبه 19 دی 1396 09:28

محل سکونت

tehran

آرشيو سپاس: 0 مرتبه در 0 پست

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته

توسط kourosh E big110 » سه شنبه 19 دی 1396 10:10

sinaset نوشته است:بنام خداوند بخشنده و مهربان
با سلام

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

بهتر است کم کم شروع کنیم و وارد جزییات  کامپیوتر کوچک پر سر و راز شویم .

حافظه ها در میکروکنترولر

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


ابتدا حافظه EEPROM (قسمت اول)

مخفف کلمه Electrically Erasable Programmable Read-Only Memory پاک سازی با ولتاژ و قابلیت خواندن و نوشتن .

این حافظه ساده اما جالب،می تواند اطلاعات را در طولانی مدت درون خود ذخیر کند! یعنی اگر برق برود، این حافظه اطلاعات خود را نگه می دارد !
از قابلیت های جالب دیگر این ایسی نگه داری اطلاعات درونی خود تا 100 سال است! یعنی اگر اطلاعاتی بر روی ان ذخیر شود تا 100 سال ان را نگه میدارد .

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

این ایسی می تواند اطلاعات را در درون خود ذخیره کند و همچنین می توادند این اطلاعات را بخواند.(یعنی هم قابلیت خواندن دارد و هم ذخیری سازی)

بطور کلی و عمومی  میکروکنترولر مقداری حافظه EEPROM  دارن که بسته به مدلشان این حجم از 64 بایت تا 4کیلوبایت (و کمی بیشتر) متغییر است(در خانواده AVR).  که البته اگر شخصی بیش از نیاز داشته باشد،باید ایسی ان را تهیه کند(ایسی ان هم نسبتا ارزان قیمت هستن،)

باهم دیگر حافظه EEPROM میکروکنترولر MEGA32 را بررسی کوتاه میکنیم.

این حافظه در این قسمت از میکروکنترولر مگا32 قرار داده شده:
که یکی از گذرگاه های ارتباطی میکروکنترولر می باشد ، و میکرو به راحتی می تواند به ان ارتباط برقرار کند
و مشخصات فنی ان :
همانجور که می ببینید، حافظه EEPROM مگا 32 حدود 1024 بایت یا به عبارتی ساده تر 1 کیلوبایت می باشد(هر 1024 بایت می شود 1 کیلوبایت)
یک نکته مهم دیگر که باید در رابطه با حافظه EEPROM بدانید، این است که یک چرخه برای پاک و نوشتن اطلاعات دارد،که بعد از ان دیگر حافظه خراب میشود و قابلیت نوشتن و پاک کردن را از دست میدهد. همانجور که بر روی تصویر قید کردیم،برای این حافظه،حدود 100 هزاربار چرخه نوشتن و پاک کردن می باشد( 100 هزاربار کامل حافظه پر شود و سپس خالی شود)که این البته فقط مربوط به حافظه EEPROM نیست بلکه بیشتر حافظه های دیجیتال امروز چنین مشکلی را دارن .

و در پایان نیز این حافظه می تواند تا 100 سال اطلاعات خود را نگه دارد (که این البته در نوع خود بی نظیر است!)

ایا این میزان حافظه کم نیست؟!
(ادامه دارد...)
باتشکر.

mohsen2017 از این پست سپاسگزاري کرده است

New Member



no avatar
پست ها

2

تشکر کرده: 0 مرتبه
تشکر شده: 2 مرتبه
تاريخ عضويت

سه شنبه 19 دی 1396 09:28

محل سکونت

tehran

آرشيو سپاس: 0 مرتبه در 0 پست

سورپرایز AVR

توسط kourosh E big110 » سه شنبه 19 دی 1396 10:19

س
سلام،،، داداش میدونی چند وقته داخل اینترنت دارم دنبال آموزش "ای وی آر" میگردم؟ نه که نباشه ها، البته که هست.
منتها هیچ کدومشون مثل شما اینوری جزئیات توضیح نمیدن،،،
واقعا" ممنونم...

sinaset از این پست سپاسگزاري کرده است

Colonel II

Colonel II



نماد کاربر
پست ها

6603

تشکر کرده: 1669 مرتبه
تشکر شده: 8138 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته

توسط sinaset » سه شنبه 19 دی 1396 13:51

سلام بر شما
ممنون و تشکر از شما کاربر محترم.
خدا شکر که اموزش مفید بوده..
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

Colonel II

Colonel II



نماد کاربر
پست ها

6603

تشکر کرده: 1669 مرتبه
تشکر شده: 8138 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته

توسط sinaset » چهارشنبه 27 دی 1396 09:46

بنام خدا
باسلام


ادامه مبحث وقفه
وقفه با پالس پایین رونده!


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

کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


کدهایی برنامه:
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد کل برنامه+شبیه ساز
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

mohsen2017 از این پست سپاسگزاري کرده است

Colonel II

Colonel II



نماد کاربر
پست ها

6603

تشکر کرده: 1669 مرتبه
تشکر شده: 8138 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته

توسط sinaset » سه شنبه 3 بهمن 1396 10:17

بنام خدا
باسلام .

ادامه مبحث...

بهتر است خود مثال هایی وقفه را انجام دهد و در شرایط مختلف ان را ازمایش کنید!

خودم نیز،در گذشته ازمایشاتی داشتم،به این نتیجه رسیدم،وقفه ها واکنش نسبتا سریعی دارند! اما نه به ان شکل که شاید تصور میشود!(دستورات برنامه باید درست نوشته شوند!)

فرض کنید،شما دستور 500 میلی ثانیه،تاخیر در تابع اصلی while داده باشید،در همان لحظه (یعنی زمانی که هنوز 500 میلی ثانیه تاخیر تمام نشده و تازه ابتدا ان می باشد) یک اینتراپت صورت بگیرید،در این لحظه،برنامه صبر میکند،تا 500 میلی ثانیه (یا اخرین دستور!در حال اجرا) تمام شود، سپس وارد تابع وقفه میشود!

که این البته خوب نیست! و در زمان کد نویسی و مخصوصا جاهایی که نیاز است،کارها دقیق انجام شود،باید دقت شود،دستورات به چه شکل در برنامه نوشته شده است !

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

فرکانس شمار!

از کارهایی که می توان به کمک وقفه ها انجام داد،شمارش، پالس یا فرکانس ها می باشد!
در مثال البته کمی پیشرفته! به کمک تایمر کانتر و وقفه (مد پایین رونده) فرکانس 2100 هرتزی (2.1 کیلوهرتزی) شمارش میشود (*البته این برنامه فرکانس شمار نوشته شده، می تواند از 1 هرتز تا بیشتر از 2100 هرتز را شمارش کند!) .
قصد نداریم،وارد جزییات مثال شویم!چون از تایمر کانتر استفاده کردیم! (و هنوز مبحث تایمر ها شروع نشده است) .همچنین از LCD کارکتری استفاده کردیم(که هنوز مبحث ان را شروع نکرده ایم) قصد از معرفی مثال،درک بهتره قابلیت هایی وقفه ها می باشد!

ما در این طرح از تایمر استفاده کردیم،یعنی تایمر هر 1 ثانیه یک بار،اور فلو میشود و تابع وقفه اش اجرا میشود. سپس متغیر count که در درون وقفه می باشد،مقدارش خوانده میشود و به روی LCD نمایش داده میشود.
*توضیح از یک بعد دیگر:متغیر Count درون تابع وقفه شماره 0 قرار دارد.هر بار که پالس برای وقفه ارسال میشود،مقدارش افزایش پیدا می کند.تا اینکه به 1 ثانیه برسد! وقتی به 1 ثانیه رسید مقدارش خوانده میشود و به روی LCD نمایش داده میشود.
*واحد سنجش فرکانس هرتز در ثانیه می باشد! برای همین تایمر 1 ثانیه می باشد! وقتی گفته میشود فرکانس 2100 هرتز است،یعنی در ثانیه 2100 موج مربعی تولید میشود و ارسال میکند.


در فایل برنامه،چند تولید کننده پالس قرار داده ام،بهتر است انها را هم استفاده کنید.
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد شبیه ساز و برنامه.

باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

mohsen2017 از این پست سپاسگزاري کرده است

Colonel II

Colonel II



نماد کاربر
پست ها

6603

تشکر کرده: 1669 مرتبه
تشکر شده: 8138 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته

توسط sinaset » چهارشنبه 11 بهمن 1396 08:25

باسلام

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

باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

mohsen2017 از این پست سپاسگزاري کرده است

New Member



no avatar
پست ها

6

تشکر کرده: 50 مرتبه
تشکر شده: 2 مرتبه
تاريخ عضويت

پنج شنبه 9 آذر 1396 16:36

آرشيو سپاس: 0 مرتبه در 0 پست

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته

توسط mohsen2017 » پنج شنبه 17 اسفند 1396 18:43

سلام
دوست عزیزادامه اموزش ها کی انجام میدید ان شالله؟

sinaset از این پست سپاسگزاري کرده است

Colonel II

Colonel II



نماد کاربر
پست ها

6603

تشکر کرده: 1669 مرتبه
تشکر شده: 8138 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته

توسط sinaset » جمعه 18 اسفند 1396 08:55

بنام خدا
باسلام

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

مثال با وقفه در مد Any Change

همانطور که قبلا توضیح داده شد،این مد،هر تغییری در ولتاژ صورت بگیرید، ان را نمایان می کند!
حالا می خواهیم،به کمک یک کد ساده،شکل موج خروجی را به صورت خیلی ساده نمایان کنیم !
*در تصویر بالا  موج 2100 که به اشتباه از مثال ها قبلی باقی مونده! فرکانس در واقع 2 می باشد!
برای همین در تابع وقفه از دستور زیر استفاده می کنیم :

کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


همانطور که گفته شد،با بالا و پایین رفتن کلاک، وقفه اجرا میشود! مثلا وقتی کلاک بالا است،وقفه یک بار اجرا میشود،وقتی از بالا به پایین می اید و صفر میشود،بازهم یک وقفه اجرا میشود و وقتی از دوباره بالا می رود و 1 میشود،یک وقفه اجرا میشود!
و در هر بار، تابع وقفه اجرا میشود ! حال ما در تابعه وقفه برای اینکه دستورات درست اجرا شوند! PIND.2 در وضعیت 0 و PIND.2 در وضعیت 1 استفاده میکنیم! PIND.2 در واقع، همان پایه وقفه 0 می باشد!
حال در برنامه می گویم ، هر وقت تابع وقفه اجرا شد! و وضعیت PIND.2 در وضعیت 0 بود شکل خروجی را در LCD بدین صورت __ نمایش بده، و هر وقت PIND.2 در وضعیت 1 بود شکل خروجی را در LCD بدین _|--|_ صورت نمایش بده .


 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد برنامه
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

mohsen2017 از این پست سپاسگزاري کرده است

Colonel II

Colonel II



نماد کاربر
پست ها

6603

تشکر کرده: 1669 مرتبه
تشکر شده: 8138 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته

توسط sinaset » يکشنبه 20 اسفند 1396 08:50

بنام خدا
باسلام

ساخت اسیلوسکوپ ساده ! (مدل پیشرفته مثال قبل)

در ادامه،در این مثال به کمک وقفه 0 در مد Any Change (هر تغییری) و  تایمر (که فعلا نیاز به دانستن ان ندارید) یک اسیلوسکوپ ساده ساخته میشود ..!

مثال پست قبلی ساده بیان شد،تا شکل موج خروجی دیده شود! اما مثال قبلی مشکل بزرگی نیز داشت! و ان اینکه،اصلا نمی توان درک کرد،موج خروجی،دقیقا کی وارد میشود! یعنی زمان ورود موج و زمان خروجی موج مربعی مشخص نبود! برای همین شکل موج به درستی دیده نمیشد!

برای حل این مسئله باید،یک زمان سنج وجود داشته باشد، که هر لحظه بررسی کند،که شکل موج در چه شکلی می باشد! برای همین از تایمر خود میکرو برای حل این مسئله استفاده می کنیم.
همانجور که در تصویر می بینید،برنامه 6 کلید دارد! 6 کلید که می توان به کمک ان مقیاس اندازه گیری را نسبت به فرکانس ورودی انتخاب کرد!
برنامه 4 فرکانس اماده دارد،که به کمک سوئیچ ها می توان ان را برای پایه وقفه 0 انتخاب کرد !( که باید به صورت تک تک انتخاب شود!)  این فرکانس ها 1 و 4 و 8 و 12 هرتز می باشد ! (و فرکانس چندان بالایی نیز نمی باشند!)

*مقیاس برای چیست؟!

شما یک موج 12 هرتزی انتخاب کرده اید! اگر مقیاس روی 300 یا 100 میلی ثانیه باشد! شکل موج کناره هم و کوچک  به صورت بهم ریخته روی تصویر LCD نمایش داده میشوند، اما وقتی مقیاس میلی ثانیه کمتر میشود،به مرور موج ها بزرگ تر و مرتب تر و بهتر دیده میشوند !

مقیاس در واقع کار نمونه برداری ، از شکل موج ورودی را سریع تر انجام میشود برای همین شکل موج خروجی دقیق تر و بهتر خواهد بود

معرفی کد تابع وقفه

کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


در این مثال،برای افزایش سرعت و دقت برنامه، کدهایی درون وقفه کوتاه تر می باشند !
و از یک متغیر به نام BIT  برای گرفتن وضعیت پایه وقفه، استفاده شده، تا بدین ترتیب،برنامه نیز بهتر اجرا شود.

شرح کوتاه برنامه:
تایمر هر مدت یک بار ( براساس مقیاس که کاربر برای ان مشخص میکند) فعال میشود و یک نمونه، از وضعیت ، ورودی وقفه 0 درون متغیرBIT می ریزد،سپس درون برنامه،در حلقه While دستور Active_lcd فعال میشود و وضعیت BIT بررسی میشود،اگر BIT در وضعیت 1 بود، یک شکل موج بالا روی LCD نمایش داده میشود و اگر 0 بود یک شکل موج پایین به روی LCD نمایش داده میشود !
سپس کلید بررسی میشوند (که ایا فشرده شده اند یا که خیر،تا براساس ان مقیاس تنظیم شود) و در انتها Active_lcd  بسته میشود ، تا از دوباره توسط تایمر فعال شود ..


 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد برنامه
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

2 کاربر از این پست سپاسگزاري کرده اند

Colonel II

Colonel II



نماد کاربر
پست ها

6603

تشکر کرده: 1669 مرتبه
تشکر شده: 8138 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته

توسط sinaset » چهارشنبه 23 اسفند 1396 09:03

بنام خدا
باسلام

مثال شمارش افراد عبوری!

تصور کنید،در طرحی،قصد دارید،افرادی که از کنار سنسور رد میشوند را شمارش کنید! سمت راست فرستنده مادون قرمز یا لیزر  یا دیگر سنسور ها کار گذاشتید و طرف دیگر (با فاصله) گیرنده مادون قرمز یا لیزر یا .. کار گذاشتید. و وقتی افرادی می خواهند از ان مکان عبور کنند،ارتباط نوری برای چند لحظه قطع میشود و پایه وقفه صفر 0 میشود!

حال به کمک این قابلیت می توان بسیار ساده،افراد مختلف را شمارش کرد !

در این طرح وقفه شماره 0 در مد Low level (یعنی زمان که پایه وقفه در وضعیت صفر است) استفاده میشود

کد تابع وقفه:
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


چیز بخصوصی ندارد! هر وقت وقفه اجرا شده، متغیر count  شروع به افزایش 1 واحدی خود میکند .. و تابع نمایش LCD اجرا میشود .. و مقدار به روی LCD نمایش داده میشود.

 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد برنامه از اینجا

باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

mohsen2017 از این پست سپاسگزاري کرده است

Colonel II

Colonel II



نماد کاربر
پست ها

6603

تشکر کرده: 1669 مرتبه
تشکر شده: 8138 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته

توسط sinaset » چهارشنبه 1 فروردین 1397 08:26

بنام خدا
باسلام

اتصال کلید ها به وقفه های خارجی!
یکی از کارهای مهمی  در برنامه نویسی سخت افزار این است که،برنامه طوری نوشته شود،که سرعت عمل بالا باشد و از سخت افزار به صورت بهینه استفاده شود !

می توان دو کلید به میکروکنترولر اضافه کرد و در حلقه while برنامه دو خط برنامه نوشت،تا دائم میکرو بررسی کند،ببینید کلید ها فشرده شد یا که خیر! همین کار وقت،میکروکنترولر را  می گیرد! (در کارهای معمولی چندان تاثیر گذار نیست! ولی در کارهایی مهم،چرا ..)

اما می توان دو کلید به وقفه های خارجی میکروکنترولر اتصال داد،! تا بجایی اینکه دائم بررسی شود،که اتفاقی برای کلید ها افتاده یا که خیر ! . میکروکنترولر هر وقت وقفه خارجی برایش اتفاق افتاد،خودش خبر بدهد !

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

مد استفاده شده نیز Low level می باشد، یعنی زمانی که کلید در وضعیت صفر می باشد !

دستور وقفه 0 و 1:

کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


*2 خازن 100 نانو کلید ها : سرعت عمل وقفه ها بسیار بالا می باشد! معمولا پیش می اید،که وقتی کلید فشرده میشود،چندین بار،تابع وقفه اجرا میشود! با گذاشتن خازن 100 نانوفاراد،وقتی کلید فشرده میشود،چند لحظه طول میکشد،تا خازن تخلیه شود،همین میزان تاخیر،جلو اشتباهات و خطا ها را می گیرد .

کدبرنامه :
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 

 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  برنامه
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

mohsen2017 از این پست سپاسگزاري کرده است

Colonel II

Colonel II



نماد کاربر
پست ها

6603

تشکر کرده: 1669 مرتبه
تشکر شده: 8138 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته

توسط sinaset » جمعه 3 فروردین 1397 09:18

باسلام


LCD 16X2


با توجه به اینکه،مبحث LCD کاراکتری در اینترنت به وفور و با جزییات در رابطه با ان صحبت شده..

برای اشنایی با این LCD این مقالات را مطالعه کنید :

 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  و  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  و لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 

-------
تنظیم وقفه ها در کدویزارد

همانطور که قبلا (در صفحه 8) توضیح دادیم،به کمک نرم افزار کدویزارد که درون کدویژن قرار دارد،می توان به راحتی و به صورت گرافیکی واحد ها درونی میکروکنترولر را مقدار دهی کرد.. واحد وقفه هایی خارجی نیز،در کدویزارد وجود دارد!

برای اینکه،بتوانید واحد وقفه های خارجی را تنظیم کنید و به متناسب ان کد دریافت کنید. کدویزارد خود را باز کنید (صفحه 8 را ببینید !)

سپس به سربرگ زیر بروید

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

حال برای انتخاب مد وقفه،ابتدا باید واحد را فعال کنید،سپس مد مدنظر را انتخاب کنید .

بعد از انکه،وقفه مد نظر را تنظیم کردید،باید به کدویزارد بگویید،تا کد متناسب به وضعیت انتخابی شما را بدهد !برای این منظور،کارهایی که در تصویر زیر گفته شده را باید انجام بدهید!

همانطور که می بینید کدویزارد،مجموعه از کد به شما داد! در واقع کدویزارد،مجموعه از تنظیمات همه واحدهای درونی و تنظیمات اولیه،میکروکنترولر را به شما داده! و شما باید،به دنبال کدها وقفه های خارجی بگردید!

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

*توابع وقفه،همیشه،در بالا تابع اصلی نوشته میشود
*وضعیت ریجستر ها و تنظیمات اولیه واحدها همیشه در حلقه اصلی نوشته میشود(قبل از while )  
*اگر کدهایی ساخته شده در کدویزارد را ببینید متوجه میشود،هر کدی در کجا قرار بگیرید بهتره خواهد بود(به عنوان الگو از ان استفاده کنید)

باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

sadegh42 از این پست سپاسگزاري کرده است

قبلي

 


  • موضوعات مشابه
    پاسخ ها
    بازديدها
    آخرين پست

چه کسي حاضر است ؟

کاربران حاضر در اين انجمن: بدون كاربران آنلاين و 0 مهمان