به نام خدا
نام درس : آزمایشگاه ریزپردازنده
استاد : جناب آقای یعقوبی تبار
محمدرضا چناری
موضوع : میکروکنترلر ATmega32
و نحوه عملکرد آن
ریزپرداز یا ریزپردازنده یا میکروپرسسور (به انگلیسی: Microprocessor)تراشه کوچکی است که میتواند عملیات حسابی و منطقی را انجام دهد. این تراشهها از تعداد بسیار زیادی ترانزیستور ساخته شدهاند. ریزپردازنده قلب هر رایانه دستی یا رومیزی است که به عنوان واحد پردازشگر مرکزی شناخته شدهاست. یک دستگاه محاسبهای کامل است که روی یک تراشه واحد ساخته میشود و مجموع دستورهای دستگاه را اجرا میکند. سه کار مهم را انجام میدهد یکی اینکه از واحد همبستگی منطقی/ حساب، استفاده میکند یعنی کارهای وابسته به ریاضی چون جمع، تفریق، ضرب و تقسیمکردن را انجام میدهد، دوم میتواند اطلاعات را از مکان یک حافظه به حافظه دیگر انتقال دهد و سوم اینکه میتواند تصمیم بگیرد و به یک سری از دستورهای جدید که براساس آن تصمیمات است جهش کند.
میکرو کنترلرها دارای ویژگیها و دسته بندی های متفاوتی می باشند.
از نظر نو پایه به دو نوع DIP و SMD تقسیم میشوند.
میکرو کنترلر Atmega32 و Atmega 16 که این عدد حافظه داخلی قابل برنامه ریزی می باشد. 32KByte و 16KByte.
Atmega 32 و Atmega32L که تفاوت آن در ولتاژ و فرکانس است.
2.7V – 5.5V for ATmega32L 4.5V – 5.5V for ATmega32
0-8MHz for ATmega32L 0 – 16MHz for ATmega
دارای 40 پایه دو پایه منبع تغذیه ، یک پایه جهت ریست کردن که در حالت یک فعال می شود و دو پایه جهت زمین شدن میکرو کنترلر AVR
سرعت پردازش تا 16 مگاهرتز
یکی از کاربردهای آن جهت برنامه ریزی GPS و فرستنده و گیرنده های رادیویی می باشد .
از دیگر ویژگی های میکرو کنترلر Atmega32 قابلیت برنامه ریزی و پاک کردن دیش از 1000 بار میباشد
قابلیت نگهداری اطلاعات 20 سال در دمای 85 درجه سانتیگراد و 100 سال در دمای 25 درجه
چهارکانال PMW جهت برنامه ریزی تایمرهای کنترل موتورهای DC.
AVR یک میکروکنترلر تک تراشه ای با معماری ۸ بیتی RISC است که با امکانات استانداردی از جمله وجود ROM برنامه، RAM داده، EEPROM داده، تایمرها و پورت های I/O داخلی ارائه می گردد.
اکثر AVR ها امکانات اضافی مانند ADC,PWM و انواع مختلف واسط سریال مانند ART,SPI,I2C(TWI),CAN ,USB و غیره را به همراه خود دارند.
دیتاشیت فارسی میکروکنترلر ATmega322
این میکروکنترلر بسیار کاربردی می باشد و در پروژه های مختلفی می توان از ان استفاده کرد. در ادامه مطلب برخی از ویژگی های این میکروکنترلر گفته شده است?
در تصویر بالا ترتیب پایه های این میکروکنترلر را مشاهده می کنید. میکروکنترلر ATMEGA32 از سری میکروکنترلرهای ساخت شرکت اتمل (Atmel) می باشد که دارای توان مصرفی پایینی بوده و در معماری آنها از ساختار پیشرفته RISK بهره گرفته شده است. این میکروکنترلر 8 بیتی است و قابلیت های بسیار زیادی دارد که شامل:
حافظه, برنامه و داده غیر فرار:
حداکثر کریستال مورد استفاده :
ولتاژ کاری :
قابلیت ارتباط JTAG
این قابلیت برای دیباگ کردن و اشکال زدایی برنامه و تراشه استفاده میشه.
و قابلیت این رو هم داره که حافظه های میکروکنترلر رو برنامه ریزی کنه و یا فیوز بیت(توضیح میدم که چیه) رو میشه با اون تنظیم کرد.
و خیلی قابلیت های دیگه ای که گاهی در مدارات برای استفاده از اون ها باید از یک IC جداگانه استفاده بشه ، اما این میکروکنترلر همه ی این قابلیت هارو در خودش داره و قراره هر قسمت از آموزش AVR با C با این قابلیت ها آشنا بشیم و براش پروژه هایی رو ببندیم.
پایه های ATMEGA32
این آی سی یک قطعه 40 پایس و شکل پایه های اون به شکل زیره:
پایه های میکروکنترلر ATMEGA16
پایه های ATMEGA16 یا ATMEGA32 با هم تفاوتی ندارن.
فعلا لازم نیست که بدونین این پایه ها دقیقا چه کاری انجام میدن ، فقط به نام گذاری پایه ها توجه کنین ، میبینین که 4 سری نام گذاری وجود داره .A,B,C,D که برای هر سری از این پایه ها از صفر تا 7 (8 پایه) نام گذاری شدن ، به هرکدوم از این 8 پایه یک پورت میگن که میشه اون هارو بعنوان ورودی/خروجی تعریف کرد.
همونطور که گفتم هر پایه اسم خاصی داره و داخل پرانتز قابلیت هر پایه مشخص شده ، مثلا پورت A(پایه های 33 تا 40 که با اسم PA و مخفف Port A مشخص شدن) همشون قابلیت ADC(مبدل آنالوگ به دیجیتال) شدن رو دارن و یا برخی از پایه ها چند قابلیت دارن که میشه نسبت به پروژه قابلیت مورد نظر خودمون رو انتخاب کنیم و از اون پایه ها استفاده کنیم.
تعریف پروژه
نرم افزار پرتئوس
پرتئوس یک نرم افزار بسیار عالی برای طراحی مدارات الکترنیکی است.
این نرم افزار یکی از بهترین برنامه ها برای طراحی مدارات الکتریکی پیشرفته است و شما میتوانید مدارات خود را قبل از اینکه در عمل ببندید, درون این نرم افزار بکشید و توسط شبیه ساز آن, مدار خود را تست کنید و اگر عیبی داشت آن را بر طرف کنید.
به وسیله ی این نرم افزار میتوانید مدارات میکروکنترلرها، میکروپروسسورها، DSP و غیره را شبیه سازی کنید.
معرفی نرم افزار پروتئوس Proteus
نرم افزار پروتئوس ( proteus) یک نرم افزار تخصصی برای مهندسین برق و الکترونیک می باشد.
نرم افزار پروتئوس یکی از نرم افزار های معروف و قدرتمند در رشته الکترونیک می باشد که از آن می توان برای طراحی و آنالیز مدارات الکترونیک استفاده کرد . محبوبیت این نرم افزار بگونه ای افزایش یافته است که کاربران به آن لقب ” قویترین آزمایشگاه مجازی الکترونیک” را داده اند .
پروتئوس قابلیت شبیه سازی ، طراحی و آنالیز مدارات آنالوگ و دیجیتال را دارد و مهمترین ویژگی آن نسبت به نرم افزارهای مشابه دیگر همانند Orcad، شبیه سازی میکروکنترولر ها و موتورهای مختلف است .
جالب است بدانید که این نرم افزار دارای دو بخش مجزا بوده که در یک بخش (ISIS Proteus) می توان مدار طراحی شده را آنالیز کرد و در بخش دیگر (ARES Proteus) می توان برای مدار طراحی شده ، pcb یا مدار چاپی ساخت که البته ساخت مدار چاپی در آن نسبت به نرم افزار های مشابه مانند PROTEL بسیار ساده تر بوده ولی کمتر از آن استفاده می شود .
این نرم افزار یکی از قوی ترین نرم افزار های شبیه سازی الکترونیک است که تقریبا تمام کار های شبیه سازی IC های قابل برنامه ریزی ( میکروکنترلر ها ) از جمله میکروکنترلر های avr , fpga pic را انجام و اجرا می کند.
همچنین این نرم افزار خاصیتی دارد که در صورت نصب بودن آخرین نسخه درایور کارت گرافیک شما برنامه عناصر موجود را بصورت زیبا و شیشه ای به شما نمایش می دهد.
?
چه کسانی از نرم افزار Protuse استفاده می کنند
تمامی کسانی که می خواهند مداری را طراحی کنند استفاده می کنند .
اساتید الکترونیک برای آموزش به هنرجویان خود استفاده می کنند .
مهندسان برای تست مدار های خود استفاده میکنند .
برای شبیه سازی مداراتی که آی سی های قابل برنامه ریزی( مثل ۸۰۵۱) در آنها وجود دارد ، استفاده می کنند .
برای بدست آوردن پشت فیبر مدار چاپی استفاده می کنند .
برای طراحی کیت های چند لایه استفاده می کنند .
برای صدها کار دیگر که دانشجویان رشته های برق و الکترونیک از آن استفاده می کنند .
نرمافزار code vision AVR
CodeVisionAVR یک نرم افزار تخصصی برای رشته های برق و کامپیوتر (گرایش سخت افزار) می باشد. در واقع این نرم افزار یک کامپایلر برای زبان برنامه نویسی C می باشد که برای برنامه نویسی میکروکنترلر های AVR از آن استفاده می شود. این برنامه محیط برنامه نویسی و کامپایل کردن برنامه نوشته شده برای برنامه ریزی میکروکنترلر را برای شما فراهم می کند.
اصولا کاربران برای انتقال اطلاعات و دستورهای خود به میکروکنترلر یا اصطلاحا برنامه نویسی آن, از یک نرم افزار استفاده می کنند. انواع مختلفی از نرم افزارها وجود دارند که به وسیله آن می توان میکروکنترلرهای سری AVR را برنامه ریزی کرد. یکی از محیط های برنامه نویسی به زبان C, نرم افزار CodeVision AVR کدویژن است. این نرم افزار علاوه بر کامپایل کد برنامه نوشته شده, قابلیت وصل شدن به پروگرامر (Programmer) را برای انتقال داده ها به میکروکنترلر و قابلیت بارگذاری برنامه روی میکروکنترلر را دارا است.
دانلود نرم افزار برنامه نویسی کدویژن CodeVision AVR 1.25.8 به زبان C
نرم افزار کدویژن CodeVision AVR دارای یک محیط گرافیکی ویژه به نام Code Wizard AVR است که برنامه نویسی با آن بسیار ساده می شود. بر اساس پیکربندی و مقدار دهی اولیه در محیط Code Wizard, یک کد پایه تولید می شود که با تغییرات جزئی در آن می توان به برنامه مورد نظر دست پیدا کرد. در ادامه می توانید نسخه CodeVision AVR 1.25.8 نرم افزار کدویژن را به همراه کرک آن از سرور پر قدرت الکترونیک 98 دانلود نمائید.
پروژه چراغ راهنمایی
لوازم موردنیاز : ۱- میکروکنترلر ATmega32 ۲- 7 seg ۳- مقاومتهای ۳۳۰ اهمی ۴- Traffic lights
نرمافزارهای مورد استفاده : ۱- proteus ۲- Code vision AVR
شرح پروژه
میخواهیم با استفاده از میکروکنترلر ATmega32یک چراغ راهنمایی طراحی کنیم. برای این کار باید اول در نرمافزار proteusطراحیهای لازم و chipهای موردنظر را در نرمافزار تنظیم کرده و مقیاسهای متناسب با پروژه را در نظر داشته باشیم.
سپس برای کدنویسی مربوط به میکروکنترلر ATmega32از نرمافزار codevisionاستفاده میکنیم. برای این کار باید اطلاعات مربوط به پورتها و تایمهای موردنظر و البته لازم به ذکر است که باید Delayمربوط به چراغ را در برنامهنویسی مد نظر قرار داده و با درنظر داشتن ظرفی مانند int i پورتهای مربوط به میکروکنترلر و چراغ ترافیکی را به صورت صفر و یک در بازهی زمانی مشخص و مناسب تنظیم کنیم و این کار را در یک حلقهی بینهایت مانند while? انجام میدهیم تا چرخه به طور مداوم کار خود را انجام دهد و ورودیها و خروجیها حتما باید قبل از کدنویسی مشخص شوند و این کار در نرمافزار Code vision AVR قابل انجام میباشد.