میکروکنترلر چیست ؟

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

کلمه میکروکنترلر:
این کلمه از دو کلمه 1- میکرو -2 کنترلر  تشکیل شده 

*
میکرو : میدونین که این یک واحد یونانی است و برابر با 10 به توان منفی 6 متر است. یعنی یک ملیونیوم متر واحده خیلی کوچیکیه نه....ولی واحدهای  خیلی کوچیکتر از این هم داریم که در الکترونیک مورد استفاده قرار میگیرند در قسمتهای بعدی توضیحیهاتی راجع به این واحد ها و موارد استفاده آنها داده میشه.

*
کنترلر : که همه معنی و مفهومشو میدونین . یعنی کنترل کننده به تعبیری یعنی "مغز " البته بدون تفکر فقط دستوراتی که به اون داده میشه به  نحو احسن انجام میده.

حالا چرا این کلمات ؟ 
به نظر من کلمه میکرو به دو منظور استفاده شده منظور اول و مهم سرعت عمل میکروکنترلر است که میتواند تا یک ملیونیوم ثانیه باشد و دستوارتی که  به اون میدیم با این سرعت انجام بده به همین خاطر واژه میکرو رو به اون اختصاص دادن البته معنی دوم آن شاید کوچیکی این قطعه باشد که تا یک ملیونیوم متر کوچیک شده شاید باور کردنی نباشه ولی در یک تراشه ممکنه بیش از یک ملیون تراتزیستور به کار رفته باشه. این کلمه وقتی اهمیتش کامل میشه که با واژه کنترلر عجین بشه تا معنیش کامل بشود .
 
حالا نحوه انجام دادن کار میکروکنترلر را به صورت کلی بررسی میکنیم :
تا حالا همه شما با ماشین حساب کار کردین تا حالا به نحوه کار کردنش  فکر کردین شما اطلاعاتتون را که همون عملیات ریاضی هست به وسیله صفحه کلید به اون میدید بعد ماشین حساب این اطلاعات رو بر مبنای دستوراتی که قبلا به اون داده شده پردازش میکند و جواب را رویlcd نمایش میدهد. در واقع یک میکروکنترلر برنامه ریزی شده به عنوان مغز ماشین حساب این اطلاعات یا داده  رو از صفحه کلید میگیره روشون پردازش انجام میده و بعد بر روی lcd نمایش  میده.

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

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

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

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

عیب میکروکنترلر:
میکروکنترلر با این همه مزایا که گفتیم دارای یک عیب کوچیک است .و آن سرعت پایین ! است آیا سرعتی معادل یک ملیونیوم ثانیه سرعت کمی است ؟ سرعت کمی  نیست ولی یک مثال شاید بحثو بهتر باز کند 
یک گیت منطقی رو در نظر بگیرین که با توجه به ورودی خروجیشو تنظیم  مکنه سرعت عمل این گیت منطقی 10 به توان منفی 9 ثانیه است یعنی نانو ثانیه ولی اگر ما بخواهیم این گیت رو با میکروکنترلر کار کنیم سرعتی معادل میکرو ثانیه داریم پس از لحاظ سرعت برای کاربردهای خیلی محدودی میکروکنترلر مناسب نیست.
 
خب حالا این میکروکنترلر را با این همه کاربرد کی ساخته؟ 
حدود 4 دهه پیش در سال 1971 میلادی شرکت اینتل اولین میکروکنترلر را ساخت و اولین میکروکنترلر را با نام 8080 در اوایل سال 1980 روانه بازار  کرد .همین شرکت اینتلی که الان در ساخت cpu یکه تاز دنیاست .اما بعدا این امتیاز رو به شرکت های دیگری واگذار کرد و شرکت های زیادی در حال حاضر  میکروکنترلر های مختلف تولید میکنند

منبع

 

AVR Microcontroller Quick Reference Guide

این مقاله نوشته شده در فوریه 2004 توسط شرکت ATMEL یکی از بزرگترین تولیدکنندگان چیپ های میکروالکترونیک در جهان است.

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

هر روزتان بهتر از دیروز باد!

مقدمه ای بر میکروکنترلرهای AVR :

 

میکروهای AVR دارای انعطاف پذیری غیر قابل مقایسه و بی همتایی هستند.آنها قادر به ترکیب هر نوع کدی با یک معماری کارامد از طریق زبانهای C و Assembly هستند و قادرند از طریق این برنامه ها تمام پارامترهای ممکن در یک سیکل یا چرخه ماشین را با دقت بسیار بالا هماهنگ کنند.

میکرو AVR دارای معماریی است که میتواند در تمام جهات مورد استفاده شما،عمل کند میکرو AVR معماریی دارد که برای شما کارایی 16 بیتی ارائه می دهد که البته قیمتش به اندازه یک 8 بیتی تمام می شود.

 

بهره های کلیدی AVR :

 

دارای بهترین MCU برای حافظه فلش در جهان ! (MCU: Master Control Unit)

دارای سیستمی با بهترین هماهنگی

دارای بالاترین کارایی و اجرا در CPU (یک دستورالعمل در هر سیکل کلاک)

دارای کدهایی با کوچکترین سایز

دارای حافظه خود برنامه ریز

دارای واسطه JTAG که با IEEE 1149.1 سازگار است

 (IEEE: Institute of Electrical and Electronics Engineers.)

دارای سخت افزار ضرب کننده روی خود

دارای بهترین ابزارها برای پیشرفت و ترقی

دارای حالات زیادی برای ترفیع دادن یا Upgrade .

 

واژگان کلیدی AVR :

 

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

میکروکنترلر AVR بر مبنای معماری  RISC(کاهش مجموعه ی دستورالعملهای کامپیوتر) پایه گذاری شده و مجموعه ای از دستورالعملها را که با 32 ثبات کار میکنند ترکیب می کند.

به کارگرفتن حافظه از نوع Flash  که AVR ها به طور یکسان از آن بهره می برند از جمله مزایای آنها است.

یک میکرو AVR می تواند با استفاده از یک منبع تغذیه 2.7 تا 5.5 ولتی از طریق شش پین ساده در عرض چند ثانیه برنامه ریزی شود یا Program شود.

میکروهای AVR در هرجا که باشند با 1.8 ولت تا 5.5 ولت تغذیه می شوند البته با انواع توان پایین (Low Power)که موجودند.

راه حلهایی که AVR پیش پای شما می گذارد، برای یافتن نیازهای شما مناسب است:

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

خانواده های محصولات AVR :

Tiny AVR:

میکروکنترلری با اهداف کلی و با بیش از 4 کیلو بایت حافظه فلش و 128 بایت حافظه استاتیک و قابل برنامه ریزی است.(منظور از حافظه استاتیک SRAM و حافظه قابل برنامه ریزی EEPROM است.)

Mega AVR:

این نوع میکروها قابلیت خود برنامه ریزی دارند و می توان آنها را بدون استفاده از مدارات اضافی برنامه ریزی کرد همچنین بیش از 256K بایت حافظه فلش و 4K بایت حافظه استاتیک و قابل برنامه ریزی دارند.

LCD AVR:

این نوع میکرو دارای درایور برای نمایشگر LCD با قابلیت کنترل اتوماتیک تباین و مقایسه تصویر می باشد.باعث تمدید عمر باتری می شود و در حالت فعال دارای توان مصرفی پایینی است.

 

توان مصرفی پایین:

  • توان مصرفی پایین آنها برای استفاده بهینه از باتری و همچنین کاربرد میکرو در وسایل سیار و سفری طراحی شده که میکروهای جدید AVR با توان مصرفی کم از شش روش اضافی در مقدار توان مصرفی ، برای انجام عملیات بهره می برند.
  • این میکروها تا مقدار 1.8 ولت قابل تغذیه هستند که این امر باعث طولانی تر شدن عمر باتری می شود.
  • در میکروهای با توان پایین ، عملیات شبیه حالت Standby است یعنی میکرو می تواند تمام اعمال داخلی و جنبی را متوقف کند و کریستال خارجی را به همان وضعیت شش کلاک در هر چرخه رها کند!

ابعاد مختلف میکروهای AVR را در اشکال زیر مشاهده می کنید:

 

   

 

 

 

AVR های مدل tiny:

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

نکات کلیدی و سودمند مدل Tiny :

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

 

AVR های مدل Mega:

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

نکات کلیدی و سودمند مدل Mega :

  • حافظه سریع از نوع فلش با عملکرد خود برنامه ریز و بلوکه ی بوت (Boot Block)
  • دقت بسیار بالای 8-کانال در تبدیل آنالوگ به دیجیتال 10 بیتی
  • USART و SPI و TWI بر طبق واسطه های سریال
  • واسطه ی JTAG بر طبق IEEE 1149.1

TWI: Two Wire Interface is a byte oriented interface

USART: Universal Serial Asynchronous Receiver/Transmitter

SPI: Serial Peripheral Interface

JTAG available only on devices with 16KB Flash and up

واسط JTAG فقط در میکروهای با بیش از 16 کیلوبایت حافظه فلش موجود است.

AVR های مدل LCD:

آنها با بالاترین یکپارچگی و انعطاف پذیری ممکن طراحی شده اند و با داشتن درایور LCD و کنترلر اتوماتیک وضوح تصویر ،بهترین واسطه را با انسان دارند و دارای توان مصرفی پایین و کارایی بالایی هستند.اولین عضو این خانواده 100 سگمنت داشت و دارای یک UART و SPI به منظور ارتباط به صورت سریال بود.

نکات کلیدی وسودمند مدل LCD :

  • کارایی فوق العاده با سرعت یک میلیون دستورالعمل در ثانیه به ازای یک مگاهرتز
  • واسطه ها برای ارتباط با انسان: وقفه های صفحه کلید و درایور نمایشگر LCD
  • آنها این اجازه را به طراح سیستم می دهند که توان مصرفی را در برابر سرعت پردازش تا جایی که امکان دارد بهینه کند.

 

نکات کلیدی و سودمند حافظه ی فلش خود برنامه ریز:

  • قابلیت دوباره برنامه ریزی کردن بدون احتیاج به اجزای خارجی
  • 128 بایت کوچک که به صورت فلش سکتور بندی شده اند
  • داشتن مقدار متغیر در سایز بلوکه ی بوت (Boot Block)
  • خواندن به هنگام نوشتن
  • بسیار آسان برای استفاده
  • کاهش یافتن زمان برنامه ریزی
  • کنترل کردن برنامه ریزی به صورت سخت افزاری

 

راههای مختلف برای عمل برنامه ریزی:

موازی یا Parallel :

  • یکی از سریعترین روشهای برنامه ریزی
  • سازگار با برنامه نویس های(programmers) اصلی

 

خود برنامه ریزی توسط هر اتصال فیزیکی:

  • برنامه ریزی توسط هر نوع واسطه ای از قبیل TWI و SPI و غیره
  • دارا بودن امنیت صد درصد در بروزرسانی و کدکردن

 

ISP:

  • واسطه سه سیمی محلی برای بروزرسانی سریع
  • آسان و موثر در استفاده

 

واسطه JTAG :

  • واسطه ای که تسلیم قانون IEEE 1149.1 است و می تواند به صورت NVM برنامه ریزی کند یعنی هنگام قطع جریان برق داده ها از بین نروند.استفاده از فیوزها و بیتهای قفل.
  • بیشتر برای دیباگ کردن آنچیپ و به منظور تست استفاده می شود

 

نرم افزار ارائه شده توسط شرکتATMEL به نام AVR Studio 4 :

این نرم افزار به صورت رایگان در سایت شرکت ATMEL قرار دارد می توانید با رجوع به آدرس http://www.atmel.com آن را دانلود کنید.

این نرم افزار در حقیقت یک اسمبلر برای محصولات AVR اتمل است و به صورت کاملا ویژوالی است.

می تواند با انواع دستگاههای برنامه نویس میکرو ارتباط برقرار کند و کدها را در میکرو دانلود کند.

و قابلیت ترجمه کدها به زبانهای C و Assembly را دارد و ...

 

انواع برنامه نویسها که AVR Studio 4 با آنها سازگار است:

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

 

Emulators Platforms

In System Programmers

Starter Kits

ICE 40/50

AVRISP

STK500

JTAGICE

JTAGICE

STK501

 

 

STK502

 

STK500/STK501/STK502

 

STK500

Supports All AVR Devices

Interfaces with AVR Studio

Early Support for New

Devices Push Buttons, LEDs & RS232

 

STK501

STK500 Expansion Module for ATmega64/128

ZIF Socket & PCB Footprint

Onboard 32 kHz Oscillator

Additional RS232 Port

 

STK502

STK500 Expansion Module for ATmega169

ZIF Socket & PCB Footprint

Onboard 32 kHz Oscillator

Demo Application with Temperature Sensor

 

JTAGICE / JTAGICE mkII

 

Interfaced using AVR Studio

 

Real-Time Emulation in Actual Silicon

Debug the Real Device at the Target Level

Communicates Directly to the Device through 4-Pin JTAG Interface

One-wire Debug Interface (JTAGICE mkII only)

Supports

Program Breakpoints

Data Breakpoints

Full I/O View and Watches

Full Execution Control

 

ICE40/50 Emulator

ICE50

Emulates all Peripherals (Both Digital and Analog)

Supports all Instructions And Peripherals Real-Time

All Configurations Done from AVR Studio

Unlimited Number of Breakpoints

Source Level Debugging

Supports the Newest Members of AT mega

And AT tiny Product Families

 

ICE40

Same Features as ICE50

End Low Cost ICE for ATtiny13, ATtiny26, ATmega8, ATmega8515,

ATmega8535

ICE50 Upgrade Available

 

پروگرامرهایی که AVR های خاصی را پشتیبانی می کنند:

 

ICE50

ICE40

ICE200

JTAGICE mkll

JTAGICE

STK502

STK501

STK500

AVRISP

Product

 

 

*

 

 

 

 

*

 

Tiny11

 

 

*

 

 

 

 

*

*

Tiny12

*

*

 

*

 

 

 

*

*

Tiny13

 

 

 

 

 

 

 

*

*

Tiny15

*

*

 

 

 

 

 

*

*

Tiny26

 

 

 

 

 

 

 

*

 

Tiny28

*

 

 

*

 

 

 

*

*

Tiny2313

 

 

*

 

 

 

 

*

 

90S1200

 

 

*

 

 

 

 

*

 

90S2313

 

 

*

 

 

 

 

*

 

90S2323

 

 

*

 

 

 

 

*

 

90S2343

*

*

 

 

 

 

 

*

*

Mega8

*

*

 

 

 

 

 

*

*

Mega8515

*

*

 

 

 

 

 

*

*

Mega8535

*

 

 

*

*

 

 

*

*

Mega16

*

 

 

*

*

 

 

 

*

Mega162

*

 

 

*

*

 

 

*

*

Mega32

*

 

 

*

*

 

*

*

*

Mega64

*

 

 

*

*

 

*

*

*

Mega128

*

 

 

*

 

 

 

*

*

Mega48

*

 

 

*

 

 

 

*

*

Mega88

*

 

 

*

 

 

 

*

*

Mega168

*

 

 

*

*

*

 

*

*

Mega169

 

 برگرفته از سایت :بایتس کلوپ

 

مقدمه ای بر AVR

تکنولوزی AVR برای اولین بار در سال 1997 توسط شرکت Atmel ارائه شد و بعد از آن جزء تولیدات محبوب این شرکت قرار گرفت.مزیت اصلی این تکنولوژی داشتن هسته RISC همراه با تعداد زیادی ثبات کاری یا Working Register است.این ثباتها به ALU مرتبط هستند و توسط آنها می توان تعداد زیادی ریز دستورالعمل را در مدت زمان یک پالس ساعت اجرا کرد به عبارتی دیگر اجرای هر دستورالعمل یک پالس ساعت لازم دارد در حالیکه اجرای این ریز دستورالعملها در میکروکنترلرهای دیگر در تعداد زیادتری از پالس ساعت اجرا می شوند بنابراین AVR ها می توانند بسیار سریعتر عمل کنند و همچنین کدهای با حجم بالایی را اجرا کنند.به عنوان مثال کارایی یک AVR که با سرعت4MHz کار می کند با کارایی میکروی PIC با سرعت 16MHz و همچنین میکروی 8051 با سرعت 48MHz برابر است!

معماری AVR

ثباتهای AVR

میکروکنترلرهای 8 بیتی AVR 32 ثبات 8 بیتی همه منظوره دارند یعنی r0 تا r31 .

سه ثبات آدرس شانزده بیتی با نام مستعار X و Y و Z که هر کدام از این سه ثبات دو ثبات از همان 32 ثبات 8 بیتی هستند یعنی X(r27:r26), Y(r29:r28), Z(r31:r30)) .

یک ثبات 16 بیتی به منظور اشاره گر پشته که در آدرسهای ورودی/خروجی:

0x3e(SPH) و 0x3d(SPL) قرارگرفته اند.همچنین این آدرسها در حافظه داده با آدرسهای 0x5e و 0x5d هستند

یک ثبات 8بیتی به منظور سنجش وضعیت یا همان ثبات پرچم با نام SREG .

ITHSVNZC

I : فعال ساز و غیرفعال ساز عمومی وقفه SREG7 یا Global Interrupt Enable/Disable Flag

T: بیت انتقالی مورد استفاده دستورالعملهای BLD وBST با نام SREG6

H: Half Carry Flag, SREG5

S : بیت علامت یا Signed tests Instruction Set, SREG4

V : سرریزنما برای مکمل دو یا Two's Complement Overflow Indicator, SREG3

N : بیت منفی یا Negative Flag, SREG2

Z : بیت صفر یا Zero Flag, SREG1

C : Carry Flag, SREG0

حافظه داده و ثباتهای AVR

32 آدرس اول حافظه یعنی (0x0000 تا 0x001f ) متعلق به ثباتهای r0 تا r31 هستند.البته در برخی MCU (MicroController Unit) ها برای ثباتها از فضای حافظه ی داده استفاده می شود.

آدرسهای ( 0x0020 تا 0x005f ) از حافظه ی داده در دسترس آدرسهای ورودی/خروجی (0x00 تا 0x3f ) است.

از آدرس 0x0060 حافظه ی داده به بعد فقط شامل حافظه استاتیک است یعنی SRAM .

دو ثبات برای واحد ریاضی منطقی ALU

تعداد زیادی از دستورالعملهای ALU شامل دو ثبات هستند یکی مقصد یا Destination(Rd) و یکی منبع یا Source(Rr) که نحوه کدگشایی دستورالعمل را در زیر می بینید:

بیتهایی که در آن حرف i قرار گرفته دستورالعملند و حرف d بیتهای مقصد هستند و حرف r بیتهای منبع هستند ثبات منبع از بهم پیوستن بیتهای (r9 : r3 : r2 : r1 : r0) و ثبات مقصد از بهم پیوستن بیتهای (d8 : d7 : d6 : d5 : d4)مشخص می شوند همچنین بیتهای باقی مانده

(i15 : i14 : i13 : i12 : i11 : i10) خود دستورالعمل را مشخص می کنند.

به عنوان مثال حاصل جمع r17 و r2 که همان Add r17 , r2 است به صورت زیر کدگشایی یا Encode می شود:

0000110100010010

که در این صورت خروجی AVR-OBJDUMP از این قرار استHex :

0: 12 0d add r17, r2

توجه داشته باشید که یک کلمه ی 16 بیتی از هشت بیت کم ارزش آن در حافظه ذخیره می شود.

دستورالعملهای Encode شده با قالب دو ثباتی را در جدول زیر مشاهده می کنید:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

توجه: دستور rol Rd همان دستور adc Rd , Rd است و همچنین دستور lsl Rd همان دستورالعمل

add Rd , Rd و همچنین tst Rd معادل با دستور and Rd , Rd و همینطور دستور clr Rd معادل است با دستور

eor Rd , Rd .

دستورالعملهای منطقی و ریاضی

یک برنامه به زبان اسمبلی برای ضرب r3 در عدد 7

.arch atmega32 ; the mcu to simulate

.text ; specifies instruction memory

.org 0x0 ; start off at memory location 0

start:

clr r2 ; alias for eor r2, r2

mov r4, r3 ; r4 = r3

add r3, r3 ; double r3

add r4, r3 ; r4 = r3 + 2*r3

add r3, r3 ; double r3 again

add r4, r3 ; r4 = r3 + 2*r3 + 4*r3 = 7*r3

نتیجه زبان ماشین برنامه فوق برای AVR-OBJDUMP –d از این قرار است:

00000000 :

0: 22 24 eor r2, r2

2: 43 2c mov r4, r3

4: 33 0c add r3, r3

6: 43 0c add r4, r3

8: 33 0c add r3, r3

a: 43 0c add r4, r3

Immediate ALU Encoding

کدگشایی به روش فوری به شکل قالب زیر صورت می گیرد:

 

ثباتهای R16 تا R31 توسط چهار بیت نوع d قابل دسترسی هستند.بیتهای نوع I شامل Opcode هستند و هشت بیت نوع k شامل داده های فوری می شوند که از این هشت بیت ، چهار بیت با ارزش بالا یا High nybble آن عبارت است از (k12 , k11 , k10 , k9) و همچنین چهار بیت با ارزش پایین یا Low nybble آن برابر است با

(k3 , k2 , k1 , k0.)

به عنوان مثال دستور العمل LDI r27, 0xac به صورت زیر کدگشایی خواهد شد:

avr-objdump:

0: bc ea ldi r27, 0xAC

Opcode در این مثال برابر است با 1110 که معادل است با 0xe HEX

دستورالعملهای پرشی

میکروهای AVR می توانند به اندازه63+k<>64- کلمه از محل دستورالعمل جاری با حفظ وابستگی به یکی از هشت بیت ثبات پرچم پرش نمایند به جدول زیر توجه فرمایید

دستورالعملهای انتقال داده:

خواص AVR

دارای بهترین MCU برای حافظه فلش در جهان ! (MCU: Master Control Unit)

دارای سیستمی با بهترین هماهنگی

دارای بالاترین کارایی و اجرا در CPU (یک دستورالعمل در هر سیکل کلاک)

دارای کدهایی با کوچکترین سایز

دارای حافظه خود برنامه ریز

دارای واسطه JTAG که با IEEE 1149.1 سازگار است

 (IEEE: Institute of Electrical and Electronics Engineers.)

دارای سخت افزار ضرب کننده روی خود

دارای بهترین ابزارها برای پیشرفت و ترقی

دارای حالات زیادی برای ترفیع دادن یا Upgrade

Jtag

Jtag استانداردری است که توسط شرکتهای تولیدکنندهpcb وic تهیه وتولیدگردیده وازسال1990 به عنوان استانداردieee باشماره ieee1194.1-1990 به ثبت رسیدحال این استانداردسخت افزارونرافزارموردنیازبرای فعال کردن قابلیت تست وارتباط بادنیای خارج ازic .میکروکنترلرهاراارایه کرده است وبه یادداشته باشیم درسال1993 باشمارهieee1194.1a-1993 ودرسال1995 باشمارهieee1194.1b-1995 تجدیدنظروترمیم نهایی شده است

معماریjtag

هرابزاری اگربخواهدباjtag سازگارباشدبایددارای پین های زیرباشد

1 –tck (test clock input)این clock ورودی حتمابایدجداازclock سیستم باشد

2 –tdi (test data in)این پورت دیتابه همراه ابزارسازگارباجی تگ واردخواهدشد

3 –tdo (test data out) به همراه این پورت ابزارسازگارباجی تگ خارج می شود

4 –tms (test mode select)این پورت حالتهای مختلف تست رابه انجام می رساند(توجه داشته باشید

4 پین ذکرشده برای هرارتباطی بایدوجودداشته باشدهرچنوکه یک پین پنجم دیگری نیزوجودداردکه کاملااختیاری است

5 –trst (test reset input) حال اینکه این پورت نیزراه اندازی غیرهمزمانtap controller رابرای شمافراهم خواهم نمود(tap controllerدسترسی شمارابه بسیاری ازتوابع داخلی تحت استانداردجی تگ رابرای شمافراهم خواهدکرد).

خانواده های محصولات AVR

Tiny AVR

میکروکنترلری با اهداف کلی و با بیش از 4 کیلو بایت حافظه فلش و 128 بایت حافظه استاتیک و قابل برنامه ریزی است.(منظور از حافظه استاتیک SRAM و حافظه قابل برنامه ریزی EEPROM است.)

Mega AVR

این نوع میکروها قابلیت خود برنامه ریزی دارند و می توان آنها را بدون استفاده از مدارات اضافی برنامه ریزی کرد همچنین بیش از 256K بایت حافظه فلش و 4K بایت حافظه استاتیک و قابل برنامه ریزی دارند.

LCD AVR

این نوع میکرو دارای درایور برای نمایشگر LCD با قابلیت کنترل اتوماتیک تباین و مقایسه تصویر می باشد.باعث تمدید عمر باتری می شود و در حالت فعال دارای توان مصرفی پایینی است.

AVR های مدل Tiny

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

نکات کلیدی و سودمند مدل Tiny

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

کارایی عظیم آنها برای ارزش و بهای وسایل موثر است.

 

AVR های مدل Mega

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

نکات کلیدی و سودمند مدل Mega

حافظه سریع از نوع فلش با عملکرد خود برنامه ریز و بلوکه ی بوت (Boot Block)

دقت بسیار بالای 8-کانال در تبدیل آنالوگ به دیجیتال 10 بیتی

USART و SPI و TWI بر طبق واسطه های سریال

واسطه ی JTAG بر طبق IEEE 1149.1

 

مدل LCD

آنها با بالاترین یکپارچگی و انعطاف پذیری ممکن طراحی شده اند و با داشتن درایور LCD و کنترلر اتوماتیک وضوح تصویر ،بهترین واسطه را با انسان دارند و دارای توان مصرفی پایین و کارایی بالایی هستند.اولین عضو این خانواده 100 سگمنت داشت و دارای یک UART و SPI به منظور ارتباط به صورت سریال بود.

نکات کلیدی وسودمند مدل LCD

کارایی فوق العاده با سرعت یک میلیون دستورالعمل در ثانیه به ازای یک مگاهرتز

واسطه ها برای ارتباط با انسان: وقفه های صفحه کلید و درایور نمایشگر LCD

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

نکات کلیدی و سودمند حافظه ی فلش خود برنامه ریز

 قابلیت دوباره برنامه ریزی کردن بدون احتیاج به اجزای خارجی

128 بایت کوچک که به صورت فلش سکتور بندی شده اند

داشتن مقدار متغیر در سایز بلوکه ی بوت((Boot Block

خواندن به هنگام نوشتن

بسیار آسان برای استفاده

کاهش یافتن زمان برنامه ریزی

کنترل کردن برنامه ریزی به صورت سخت افزاری

راههای مختلف برای عمل برنامه ریزی

موازی یا Parallel

یکی از سریعترین روشهای برنامه ریزی

سازگار با برنامه نویس های اصلی

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

برنامه ریزی توسط هر نوع واسطه ای از قبیل TWI و SPI و غیره

دارا بودن امنیت صد درصد در بروزرسانی و کدکردن

ISP

واسطه سه سیمی محلی برای بروزرسانی سریع آسان و موثر در استفاده

 

 

میکروکنترلر

Micro 1.pdf

Micro 2.pdf

Micro 3.pdf

Micro 4.pdf

Micro 5.pdf

Micro 6.pdf

AVR(Microcontroller)

 

 

 

 

 

 

 

 

 

                         نرم افزار

                                                                                                                                                                                        

 

            مقالات

 

 

 

www.iaushab.ac.ir

خطاهايي كه در هنگام کامپایلر کردن برنامه در صورت وجود نمایان می شوند.


Error Description
1
Unknown statement
2
Unknown structure EXIT statement
3
WHILE expected
4
No more space for IRAM BIT
5
No more space for BIT
6 .
expected in filename
7
IF THEN expected
8
BASIC source file not found
9
Maximum 128 aliases allowed
10
Unknown LCD type
11
INPUT, OUTPUT, 0 or 1 expected
12
Unknown CONFIG parameter
13
CONST already specified
14
Only IRAM bytes supported
15
Wrong data type
16
Unknown Definition
17 9
parameters expected
18
BIT only allowed with IRAM or SRAM
19
STRING length expected (DIM S AS STRING * 12 ,for example)
20
Unknown DATA TYPE
21
Out of IRAM space
22
Out of SRAM space
23
Out of XRAM space
24
Out of EPROM space
25
Variable already dimensioned
26
AS expected
27
parameter expected
28
IF THEN expected
29
SELECT CASE expected
30
BIT's are GLOBAL and can not be erased
31
Invalid data type
32
Variable not dimensioned
33
GLOBAL variable can not be ERASED
34
Invalid number of parameters
35 3
parameters expected
36
THEN expected
37
Invalid comparison operator
38
Operation not possible on BITS
39
FOR expected
40
Variable can not be used with RESET
41
Variable can not be used with SET
42
Numeric parameter expected
43
File not found
44 2
variables expected
45
DO expected
46
Assignment error
47
UNTIL expected
50
Value doesn't fit into INTEGER
51
Value doesn't fit into WORD
52
Value doesn't fit into LONG
60
Duplicate label
61
Label not found
62
SUB or FUNCTION expected first
63
Integer or Long expected for ABS()
64 ,
expected
65
device was not OPEN
66
device already OPENED
68
channel expected
70
BAUD rate not possible
71
Different parameter type passed then declared
72
Getclass error. This is an internal error.
73
Printing this FUNCTION not yet supported
74 3
parameters expected
80
Code does not fit into target chip
81
Use HEX(var) instead of PRINTHEX
82
Use HEX(var) instead of LCDHEX
85
Unknown interrupt source
86
Invalid parameter for TIMER configuration
87
ALIAS already used
88 0
or 1 expected
89
Out of range : must be 1-4
90
Address out of bounds
91
INPUT, OUTPUT, BINARY, or RANDOM expected
92
LEFT or RIGHT expected
93
Variable not dimensioned
94
Too many bits specified
95
Falling or rising expected for edge
96
Prescale value must be 1,8,64,256 or 1024
97
SUB or FUNCTION must be DECLARED first
98
SET or RESET expected
99
TYPE expected
100
No array support for IRAM variables
101
Can't find HW-register
102
Error in internal routine
103 =
expected
104
LoadReg error
105
StoreBit error
106
Unknown register
107
LoadnumValue error
108
Unknown directive in device file
109 =
expected in include file for .EQU
110
Include file not found
111
SUB or FUNCTION not DECLARED
112
SUB/FUNCTION name expected
113
SUB/FUNCTION already DECLARED
114
LOCAL only allowed in SUB or FUNCTION
115 #
channel expected
116
Invalid register file
117
Unknown interrupt
200 .
DEF not found
201
Low Pointer register expected
202 .
EQU not found, probably using functions that are not supported by the selected chip
203
Error in LD or LDD statement
204
Error in ST or STD statement
205 }
expected
206
Library file not found
207
Library file already registered
210
Bit definition not found
211
External routine not found
212
LOW LEVEL, RISING or FALLING expected
213
String expected for assignment
214
Size of XRAM string 0
215
Unknown ASM mnemonic
216
CONST not defined
217
No arrays allowed with BIT/BOOLEAN data type
218
Register must be in range from R16-R31
219
INT0-INT3 are always low level triggered in the MEGA
220
Forward jump out of range
221
Backward jump out of range
222
Illegal character
223 *
expected
224
Index out of range
225 ()
may not be used with constants
226
Numeric of string constant expected
227
SRAM start greater than SRAM end
228
DATA line must be placed after the END statement
229
End Sub or End Function expected
230
You can not write to a PIN register
231
TO expected
232
Not supported for the selected micro
233
READ only works for normal DATA lines, not for EPROM data
234 ')
block comment expected first
235 '(
block comment expected first
236
Value does not fit into byte
238
Variable is not dimensioned as an array
239
Invalid code sequence because of AVR hardware bug
240
END FUNCTION expected
241
END SUB expected
242
Source variable does not match the target variable
243
Bit index out of range for supplied data type
244
Do not use the Y pointer
245
No arrays supported with IRAM variable
246
No more room for .DEF definitions
247 .
expected
248
BYVAL should be used in declaration
249
ISR already defined
250
GOSUB expected
251
Label must be named SECTIC
252
Integer or Word expected
253
ERAM variable can not be used
254
Variable expected
255
Z or Z+ expected
256
Single expected
257 ""
expected
258
SRAM string expected
259 -
not allowed for a byte
260
Value larger than string length
261
Array expected
262
ON or OFF expected
263
Array index out of range
264
Use ECHO OFF and ECHO ON instead
265
offset expected in LDD or STD like Z+1
266
TIMER0, TIMER1 or TIMER2 expected
267
Numeric constant expected
268
Param must be in range from 0-3
269
END SELECT expected
270
Address already occupied
322
Data type not supported with statement
323
Label too long
324
Chip not supported by I2C slave library
325
Pre-scale value must be 1,8,32,128,256 or 1024
326 #
ENDIF expected
327
Maximum size is 255
328
Not valid for SW UART
999
DEMO/BETA only supports 2048 bytes of code
Other error codes are internal ones. Please report them when you get them

منبع

 

مقایسه avr با 8051

 مقایسه ما با تمام میکروهای 8 بیتی هست یعنی در مجموع میشه گفت AVR یه رقیب قدرتمند برای بقیه میکروهای قوی است و یه انقلاب بزرگ هم به شمار میره. هنوز هیچ میکرویی به سرعت بالای AVR در محاسبات دست پیدانکرده .در ضمن AVR قادره که محاسبات 16 بیتی رو هم انجام بده. شهار ATMEL هم اینکه شما پول یه میکرو 8 بیتی رو میدید ولی میتونید از قایلیتهای یک میکرو 16 بیتی استفاده کنید.
AVR از معماری RISC با تعداد دستورالعمل بالا بهره میبره که دربین میکروها کم نظیر هست. اکثر دستورالعمل های آن باوجود زیاد بودن تعداد دستورالعملها در یک سیکل انجام میشه.
این میکرو از مدهای کاهش توان به خوبی بهره برده و تایید کننده آن زیاد بودن مدهای کاهش توان آن و استفاده از تقسیم کلاک به صورت نرم افزاری است که در کمتر میکرویی دیده میشه.
AVR حتی برعکس میکروهای دیگه هیچ تقسیم کلاکی انجام نمیده(مثلا 8051 کلاک رو بر 12 و PIC که یه میکرو قدرتمند هست کلاک رو بر 4 تقسیم میکنه). این امر که AVR کلاک رو تقسیم نمیکنه موجب کاهش مصرف انژی و افزایش MIPS شده.

تکنولوژی بکار رفته در
AVR موجب شده که حتی میتوان از آن در محیط های صنعتی و پر نویز براحتی از آن استفاده کرد(به گفته خود ATMEL والا هنوز خودم یه تست دقیق انجام ندادم ولی اون رو با یه فیبر یه رو و با یه کابل LCD تقریبا 20 سانتی و یا استفاده از باتری ماشین در کنار شمع پیکان غیر انژکتوری تست کردم ولی فقط در فاصله تقریبا 5-6 سانتی از اون صفحه LCD قاتی میکرد ولی نمیدونم میکرو هم ریست میشد یا نه .در ضمن قسمت تغذیه فقط از یک 7805 تشکیل شده بود. و این آزمایش هم برای خودم و هم برای چند تا از دوستانم که کارهای صنعتی انجام میدادن شگفت آور بود). اما به دلیل اینکه هنوز هیچ کسی اون رو تابه حال در محیط صنعتی تست نکرده و به دلیل اطمینان بالای PIC هیچ کسی دوست نداره اعتبار خودش رو به خطر بندازه.
یه جا یه مهندسه میگفت توی یه محط صنعتی که حتی کامپیوتر ریست میکرده
PIC به خوبی کار خودشو انجام میداده!!!!!!!!!!

در ضمن
AVR مجهز به آخرین امکانات مثل تایمر واچ داگ و برون اوت دیتکتور و مبدل های ADC و PWM است.
یکی از مهمترین بخشی که کمتر در هر میکرویی دیده میشه مقایسه کننده آنالوگ با گین 1 و 10 و 200 و .. است که بسته به میکرو فرق میکنه.
این مقایسه کننده میتونه تو ورودی مبدل
ADC قرار بگیره . این بخش برای بعضی طراحان خیلی مهمه و اونا رو مجذوب خودش کرده.

forum.persiantools.com

نکات کلیدی و سودمند در مورد avr

میکروهای AVR دارای انعطاف پذیری غیر قابل مقایسه و بی همتایی هستند.آنها قادر به ترکیب هر نوع کدی با یک معماری کارامد از طریق زبانهای C و Assembly هستند و قادرند از طریق این برنامه ها تمام پارامترهای ممکن در یک سیکل یا چرخه ماشین را با دقت بسیار بالا هماهنگ کنند.

میکرو AVR دارای معماریی است که میتواند در تمام جهات مورد استفاده شما،عمل کند میکرو AVR معماریی دارد که برای شما کارایی 16 بیتی ارائه می دهد که البته قیمتش به اندازه یک 8 بیتی تمام می شود.

بهره های کلیدی AVR :

 

دارای بهترین MCU برای حافظه فلش در جهان ! (MCU: Master Control Unit)

دارای سیستمی با بهترین هماهنگی

دارای بالاترین کارایی و اجرا در CPU (یک دستورالعمل در هر سیکل کلاک)

دارای کدهایی با کوچکترین سایز

دارای حافظه خود برنامه ریز

دارای واسطه JTAG که با IEEE 1149.1 سازگار است

(IEEE: Institute of Electrical and Electronics Engineers.)

دارای سخت افزار ضرب کننده روی خود

دارای بهترین ابزارها برای پیشرفت و ترقی

دارای حالات زیادی برای ترفیع دادن یا Upgrade .

واژگان کلیدی AVR :

 

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

میکروکنترلر AVR بر مبنای معماری  RISC(کاهش مجموعه ی دستورالعملهای کامپیوتر) پایه گذاری شده و مجموعه ای از دستورالعملها را که با 32 ثبات کار میکنند ترکیب می کند.

به کارگرفتن حافظه از نوع Flash  که AVR ها به طور یکسان از آن بهره می برند از جمله مزایای آنها است.

یک میکرو AVR می تواند با استفاده از یک منبع تغذیه 2.7 تا 5.5 ولتی از طریق شش پین ساده در عرض چند ثانیه برنامه ریزی شود یا Program شود.

میکروهای AVR در هرجا که باشند با 1.8 ولت تا 5.5 ولت تغذیه می شوند البته با انواع توان پایین (Low Power)که موجودند.

راه حلهایی که AVR پیش پای شما می گذارد، برای یافتن نیازهای شما مناسب است:

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

 

توان مصرفی پایین:

  • توان مصرفی پایین آنها برای استفاده بهینه از باتری و همچنین کاربرد میکرو در وسایل سیار و سفری طراحی شده که میکروهای جدید AVR با توان مصرفی کم از شش روش اضافی در مقدار توان مصرفی ، برای انجام عملیات بهره می برند.
  • این میکروها تا مقدار 1.8 ولت قابل تغذیه هستند که این امر باعث طولانی تر شدن عمر باتری می شود.
  • در میکروهای با توان پایین ، عملیات شبیه حالت Standby است یعنی میکرو می تواند تمام اعمال داخلی و جنبی را متوقف کند و کریستال خارجی را به همان وضعیت شش کلاک در هر چرخه رها کند!

نکات کلیدی و سودمند حافظه ی فلش خود برنامه ریز:

  • قابلیت دوباره برنامه ریزی کردن بدون احتیاج به اجزای خارجی
  • 128 بایت کوچک که به صورت فلش سکتور بندی شده اند
  • داشتن مقدار متغیر در سایز بلوکه ی بوت (Boot Block)
  • خواندن به هنگام نوشتن
  • بسیار آسان برای استفاده
  • کاهش یافتن زمان برنامه ریزی
  • کنترل کردن برنامه ریزی به صورت سخت افزاری

راههای مختلف برای عمل برنامه ریزی:

موازی یا Parallel :

  • یکی از سریعترین روشهای برنامه ریزی
  • سازگار با برنامه نویس های(programmers) اصلی

 

خود برنامه ریزی توسط هر اتصال فیزیکی:

  • برنامه ریزی توسط هر نوع واسطه ای از قبیل TWI و SPI و غیره
  • دارا بودن امنیت صد درصد در بروزرسانی و کدکردن

 

ISP:

  • واسطه سه سیمی محلی برای بروزرسانی سریع
  • آسان و موثر در استفاده

 

واسطه JTAG :

  • واسطه ای که تسلیم قانون IEEE 1149.1 است و می تواند به صورت NVM برنامه ریزی کند یعنی هنگام قطع جریان برق داده ها از بین نروند.استفاده از فیوزها و بیتهای قفل.
  • بیشتر برای دیباگ کردن آنچیپ و به منظور تست استفاده می شود

 

منبع

 

میکروکنترلر avr

زبانهای سطح بالا یا همان HHL به سرعت در حال تبدیل شدن به زبان برنامه نویسی استاندارد بای میکروکنترلر ها حتی برای میکروهای 8 بیتی کوچک هستند. زبان برنامه نویسی BASIC و C بیشترین استفاده را در برنامه نویسی میکروها دارند ولی در اکثر کاربردها کدهای بیشتری را نسبت به زبان برنامه نویسی اسمبلی تولید میکنند. ATMEL ایجاد تحولی در معماری، جهت کاهش کد به مقدار مینیمم را درک کرد که نتیجه این تحول میکروهای AVR هستند که علاوه بر کاهش و بهینه سازی مقدار کدها به طور واقع عملیات را تنها در یک کلاک سیکل توسط معماری RISC انجام میدهند و از 32 رجیسر همه منظوره (Accumulator) استفاده میکنند که باعث شده 4 تا 12 بار سریعتر از میکروهای مورد استفاده کنونی باشند.

تکنولوژی حافظه کم مصرف غیر فرار اتمل برای برنامه نویسی
AVR مورد استفاده قرار گرفته است در نتیجه حافظه های فلش و EEPROM در داخل مدار قابل برنامه ریزی هستند(ISP). میکروهای AVR اولیه داری 1 ، 2 ، و 8 کیلوبایت حافظه فلش و به صورت کلمات 16 بیتی سازماندهی شده بودند.

AVR ها به عنوان میکروهای RISC با تعداد دستورات فراوان طراحی شده اند که باعث میشود حجم کد تولید شده کم و سرعت بالاتری به دست آید.

عملیات تک سیکل:
با انجام تک سیکل دستورات، کلاک اسیلاتور با کلاک داخلی سیستم یکی میشود. هیچ تقسیم کننده ای در داخل
AVR قرار ندارد که ایجاد اختلاف فاز کند. اکثر میکروها کلاک اسیلاتور به سیستم را به 4 یا 12 تقسیم میکنند که خود باعث کاهش سرحت میشود. بنابراین AVR ها 4 تا 12 بار سریعتر و مصرف آنها نیز 4-12 بار نسبت به میکروکنترولرهای مصرفی کنونی کمتر است زیرا در تکنولوژی CMOS استفاده شده در میکروهای AVR ، مصرف توان سطح منطقی متناسب با فرکانس است.

طراحی برای زبانهای
BASIC و C :
زبانهای
BASIC و C بیشترین استفاده را در دنیای امروز بعنوان زبانهای HLL دارند. تا امروز معماری بیشتر میکروها برای زبان اسمبلی طراحی شده بود و کمتر از زبانهای HLL حمایت کرده اند.
هدف
ATMEL طراحی معماری بود که هم برای زبان اسمبلی و هم زبانهای HLL مفید باشد. به طور مثال در زبانهای BASIC و C میتوان یک متغییر محلی به جای متغییر سراسری در داخل زیربرنامه تعریف کرد، در این صورت فقط در زمان اجرای زیربرنامه مکانی از حافظه RAM برای متغییر اشغال میشود در صورتی که اگر متغییری به عنوان سراسری تعریف گردد در تمام وقت مکانی از حافظه FLASH ROM را اشغال کرده است.
برای دسترسی سریعتر به متغییرهای محلی و کاهش کد، نیاز به افزایش رجیسترهای همه منظوره است.
AVR ها دارای 32 رجیستر هستند که مستقیما به LOGIC ALU (ARITHMETIC UNIT) متصل شده اند، و تنها در یک کلاک سیکل به این واحد دسترسی پیدا میککند. سه جفت از این رجیسترها میتوانند به عنوان رجیسترهای 16 بیتی استفاده شوند.

منبع

مقدمه ای راجع به avr

زبانهای سطح بالا یا همان HHL به سرعت در حال تبدیل شدن به زبان برنامه نویسی استاندارد بای میکروکنترلر ها حتی برای میکروهای 8 بیتی کوچک هستند. زبان برنامه نویسی BASIC و C بیشترین استفاده را در برنامه نویسی میکروها دارند ولی در اکثر کاربردها کدهای بیشتری را نسبت به زبان برنامه نویسی اسمبلی تولید میکنند. ATMEL ایجاد تحولی در معماری، جهت کاهش کد به مقدار مینیمم را درک کرد که نتیجه این تحول میکروهای AVR هستند که علاوه بر کاهش و بهینه سازی مقدار کدها به طور واقع عملیات را تنها در یک کلاک سیکل توسط معماری RISC انجام میدهند و از 32 رجیسر همه منظوره (Accumulator) استفاده میکنند که باعث شده 4 تا 12 بار سریعتر از میکروهای مورد استفاده کنونی باشند.

تکنولوژی حافظه کم مصرف غیر فرار اتمل برای برنامه نویسی
AVR مورد استفاده قرار گرفته است در نتیجه حافظه های فلش و EEPROM در داخل مدار قابل برنامه ریزی هستند(ISP). میکروهای AVR اولیه داری 1 ، 2 ، و 8 کیلوبایت حافظه فلش و به صورت کلمات 16 بیتی سازماندهی شده بودند.

AVR ها به عنوان میکروهای RISC با تعداد دستورات فراوان طراحی شده اند که باعث میشود حجم کد تولید شده کم و سرعت بالاتری به دست آید.

عملیات تک سیکل:
با انجام تک سیکل دستورات، کلاک اسیلاتور با کلاک داخلی سیستم یکی میشود. هیچ تقسیم کننده ای در داخل
AVR قرار ندارد که ایجاد اختلاف فاز کند. اکثر میکروها کلاک اسیلاتور به سیستم را به 4 یا 12 تقسیم میکنند که خود باعث کاهش سرحت میشود. بنابراین AVR ها 4 تا 12 بار سریعتر و مصرف آنها نیز 4-12 بار نسبت به میکروکنترولرهای مصرفی کنونی کمتر است زیرا در تکنولوژی CMOS استفاده شده در میکروهای AVR ، مصرف توان سطح منطقی متناسب با فرکانس است.

طراحی برای زبانهای
BASIC و C :
زبانهای
BASIC و C بیشترین استفاده را در دنیای امروز بعنوان زبانهای HLL دارند. تا امروز معماری بیشتر میکروها برای زبان اسمبلی طراحی شده بود و کمتر از زبانهای HLL حمایت کرده اند.
هدف
ATMEL طراحی معماری بود که هم برای زبان اسمبلی و هم زبانهای HLL مفید باشد. به طور مثال در زبانهای BASIC و C میتوان یک متغییر محلی به جای متغییر سراسری در داخل زیربرنامه تعریف کرد، در این صورت فقط در زمان اجرای زیربرنامه مکانی از حافظه RAM برای متغییر اشغال میشود در صورتی که اگر متغییری به عنوان سراسری تعریف گردد در تمام وقت مکانی از حافظه FLASH ROM را اشغال کرده است.
برای دسترسی سریعتر به متغییرهای محلی و کاهش کد، نیاز به افزایش رجیسترهای همه منظوره است.
AVR ها دارای 32 رجیستر هستند که مستقیما به LOGIC ALU (ARITHMETIC UNIT) متصل شده اند، و تنها در یک کلاک سیکل به این واحد دسترسی پیدا میککند. سه جفت از این رجیسترها میتوانند به عنوان رجیسترهای 16 بیتی استفاده شوند

منبع

معماری داخلی میکرو کنترلر

ساده ترين معماري ميكرو كنترلر، متشكل از يك ريز پردازنده، حافظه و درگاه  ورودي/خروجي است. ريز  پردازنده نيز متشكل از واحد پردازش مركز (CPU) و  واحد كنترل (CU)است.

CPU درواقع مغز يك ريز پردازنده است و محلي است كه در آنجا تمام عمليات رياضي و منطقي ،انجام مي شود. واحد كنترل ، عمليات داخلي ريز پردازنده را كنترل مي كند و سيگنال هاي كنترلي را به ساير بخشهاي ريز پردازنده ارسال مي كند تا دستورالعمل ها ي مورد  نظر انجام شوند.

حافظه بخش خيلي مهم از يك سيستم ميكرو كامپيوتري است. ما مي توانيم بر اساس به كارگيري حافظه، آن را به دو گروه دسته بندي كنيم: حافظه برنامه و حافظه داده . حافظه برنامه ، تمام كد برنامه را ذخيره مي كند. اين حافظه معمولاً از نوع حافظه فقط خواندني (ROM) مي باشد. انواع ديگري از حافظه ها نظير EPROM و حافظه هاي فلش EEPROM براي كاربردهايي كه حجم توليد پاييني دارند و همچنين هنگام پياده سازي برنامه به كار مي روند . حافظه داده از نوع حافظه خواندن / نوشتن (RAM) مي باشد . در كاربردهاي پيچيده كه به حجم بالايي از حافظه RAM نياز داريم ، امكان اضافه كردن تراشه هاي حافظه بيروني به اغلب ميكرو كنترلر ها وجود دارد.

 

درگاهها ورودي / خروجي (I/O )به سيگنال هاي ديجيتال بيروني امكان مي دهند كه با ميكرو كنترلر ارتباط پيدا كند. درگاههاي I/O معمولاً به صورت گروههاي 8 بيتي دسته بندي مي شوند و به هر گروه نيز نام خاصي اطلاق مي شود. به عنوان مثال ، ميكروكنترلر 8051 داراي 4 درگاه ورودي / خروجي 8 بيت مي باشد كه P3, P2, P1, P0 ناميده مي شوند. در تعدادي از ميكرو كنترلر ها ، جهت خطوط درگاه I/O قابل برنامه ريزي مي باشد. لذا بيت هاي مختلف يك درگاه را مي توان به صورت ورودي يا خروجي برنامه ريزي نمود. در برخي ديگر از ميكروكنترلرها (از جمله ميكروكنترلرهاي 8051) درگاههاي I/O به صورت دو طرفه مي باشند. هر خط از درگاه I/O اين گونه ميكرو كنترلرها را مي توان به صورت ورودي و يا خروجي مورد استفاده قرار داد . معمولاً ، اين گونه خطوط خروجي ، به همراه مقاومتهاي بالا كش بيروني به كار برده مي شوند.

 

منبع

 

ویژگی های میکروکنترلر pic

 

به نام خدا

 

 

ميكروكنترلرهاي خانواده PIC از معماري هاردوارد استفاده ميكنند . اين بدان معنااست كه كل حافظه به دو قسمت تقسيم شده است  . كه عبارتند از : حافظه داده و حافظه برنامه .مزيت اين معماري آن است كه ميتوان به هر دو بخش حافظه در يك دستورالعمل دسترسي داشت  . اغلب PIC  ها داراي سه بلاك حافظه داخلي ميباشند :

 

 

۱_ Data memory  : كه اين حافظه به Bank0 و Bank1 و ... تقسيم ميشوند .هر بانك شامل حافظه  RAM  معمولي (general purpose register) و ريجيستر هاي مخصوص (status,intcon,option,…) مي باشد.

 

2_ Eeprom memory  : يكي از تفاوت هاي اصلي ميكروهاي گذشته مثل سري 8051 با PIC و AVR  ، همين حافظه ميباشد. اين حافظه تقريبا بينابين RAM  و ROM   از نظر كاربرد ميباشد . اين  حاظه به صورتي است كه ميتوان در حين برنامه نويسي ، اطلاعات را در آن ذخيره يا پاك  كرد (RAM) واطلاعات آن در صورت قطعي برق نيز پاك نمي شود (ROM) . نسيت به  RAM  و ROM  داراي سرعت به مراتب پايين تر ميباشد .

 

3_Program memory  : برنامه اي كه توسط كاربر نوشته ميشود . در اين حافظه LOAD ميشود . به عنوان مثال PIC16F877 (40 پين) داراي پروگرام كانتر 13 بيتي براي آدرس دهي كردن Flash program memory به حجم (8k*14bit) ميباشد .

 

 

PIC ها از لحاظ نوع Program memory  به 4 دسته تقسيم ميشوند .

 

1) Flash Program Memory

 

مزيت اين گونه PIC ها سرعت نسبتا بالاي خواندن اطلاعات از ROM و درنتيجه سرعت بالاتر اجراي عمليات ميباشد . حافظه هاي فلش موجب گرديده تا سرعت اجراي برنامه از 12 كلاك در 8051 به 4 كلاك در PIC و 1 كلاك در AVR كاهش يابد .

خانواده هايي كه نام IC داراي F باشد داراي اين گونه حافظه ميباشند (مانند 16F84 , 16F877.....) .

 

2) Eprom program memory

 

خانواده هايي كه نام IC داراي C يا CE باشد.(16C84)

 

3)Rom Program Memory

 

خانواده هايي كه نام IC  داراي CR باشد (16CR84)

 

4) Eeprom Program Memory

 

همچنين بعضي از PIC ها نيز داراي رنج ولتاژي گسترده ميباشند كه داراي مشخصه  L  در نام  IC  مي باشد.(PIC16LF84)

 

منبع

 

ساخت موزیک با avr

قبل از شروع این بحث بهتر است آشنایي مختصري با تئوري موسیقي پیدا کنید.اجزاي یک ملودي نتها هستند.هر نت در واقع يک فرکانس یا يک باند فرکانسي است.مثلا طبق استاندارد جهاني نت لا ازپايينترین اکتاو (Octave)، با فرکانس 440HZ نواخته می شود.نتها در اکتاوها متوالیا تکرار می شوند.اما فرق یک نت در یک اکتاوتا اکتاودیگر چیست؟تفاوت دربمی وزیری صداست.درواقــــع صدای نتهـــــای واقع در اکتــاوهای بالاتر، زیرترمی شود.

فرکانس نتهای موسیقی را می توان طبق رابطه زیر به دست آورد.

fx=fbase * 2 ^(n/12)

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

fsi=440*2^(2/12)=494HZ

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

برای شروع کار می توانيد مثال زير را دانلود کنيد.

 

Download : AVR-Music.zip

 

http://www.amnelec.persianblog.com

عملکرد میکرو کنترلر

 


میکرو کنترلر در اصطلاح به ریز پردازنده هایی گفته می شود که بجز
CPU حداقل شامل سیستم های ورودی و خرو جی (I/o) حافظه و مدارات ارتباط با حافظه در داخل تراشه اصلی هستند و نیازی به مدارات واسطه بیرونی جهت ارتباط با سیستم های جانبی را ندارد. البته امکانات همه میکرو کنترلر ها هشابه و یکسان نمی باشد و برخی از میکرو کنترلر ها علاوه بر امکانات فو ق العاده شامل مبدل های دیجیتال به آنالوگ و آنالوگ به دیجیتال و یا حتی امکانات بیشتر و اختصاصی تر می باشند.

میکرو کنترلر MC68HC7058 ساخت شرکت MOTOROLA نمونه ای از میکرو کنترلر های مدرن می باشد که امروزه در ساختمان مانیتور های پارس از آن استفاده شده است. قلب این میکرو کنترلر را ریز پردازنده 6805 تشکیل می دهد و حافظه آن شامل 3.75 کیلو بایت حافظه ROM جهت ذخیره کردن نرم افزار اجرایی و 256 بایت حافظه RAM جهت ذخیره سازی مو قت می باشد.
نرم افزار ذخیره شده در حافظه این میکرو کنترلر تحت امتیاز شرکت هیوندای کره جنوبی بوده و قابل دسترسی یا دخل و تصرف ننی باشد و فقط مختص 15 اینج مدل
HL -5870 می باشد. از و ضایف اصلی میک رو کنترلر می توان به موارد زیر اشاره کرد:
1- کنترل دکمه های جلوی مانیتور در صنعت ساخت
2- ایجاد ولتاژ های
DC جهت کنترل قسمت های مختلف مدار
3-ارتباط با حامظه
none volatile جهت ذخیره سازی و باز خوانی اطلاعات.
4- ارتباط با سیستم تغذیه جهت مدیریت توان مصرمی
5- ارتباط با سیستم مولد
OSD
6- ارتباط با سیستم تنظیم گر خودکار
7- تنظیم اعو جاجات و تصحیح خطاها
8- مضناتیس جدایی
9- پردازش سیگنال های همزمانی
10- کنترل پیچش تصویر

 

 

منبع

 

چرا میکروکنترلر

اول الکتریسیته نبود، یعنی بود ولی آدم نمی دیدش! گاهی وقتا رعد و برق رو تو آسمون می دید ولی نمی دونست چیه! بعد که فهمید کهربا می تونه کاه رو جذب می کنه بازم نمی دونست چرا ولی فلاسفه یونان باستان می گفتند کهربا روح داره که می تونه چیزی رو حرکت بده! خب بیچاره ها حق هم داشتند شاید اگه ماکسول هم اون موقع زندگی می کرد همین حرف رو میزد! بعد که یه دو سه هزار سالی گذشت تا یه بابایی به اسم گیلبرت اومد گفت نه بابا این به خاطر اینه که کهربا در اثر اصطکاک با بعضی از مواد می تونه باردار بشه و خرده کاه رو جذب کنن. تا اینجا هیچ خبری از بار متحرک نبود و فقط بار ساکن مورد توجه بود تا اینکه تو اوائل قرن هجدهم بنجامین فرانکلین گفت الکتریسیته می تونه جاری بشه و در اینجا بود که مدار الکتریکی متولد شد چون ذره ی باردار فقط تو مسیر بسته می تونه دور بزنه. حدود صد سال بعد در سال 1831 مایکل فارادی تئوری تولید جریان الکتریکی بوسیله ی تغییر میدان مغناطیسی رو ارائه کرد و چند سال بعد ژنراتورها ساخته شدند. از همین جا بود که بشر تصمیم گرفت الکترون ها رو به شکلهای مختلف تو مسیرهای مختلف (مدار) به گردش دربیاره و همش تقصیر فارادی بود !!!!

تا اینجا هم تا پنجاه شصت سال همه چیز به خوبی و خوشی! پیش می رفت ولی در اواخر صده ی نوزدهم بود که یک روز آقای ادیسون لامپ خلا رو کشف کردند و دانش الکترونیک متولد شد. این اختراع مفید به سرعت منجر به ساخت تقویت کننده و فرستنده های رادیویی شد. بازهم تا چهل پنجاه سال مهندسان الکترونیک سرشون به لامپ های خلا گرم بود و برای خودشون با این لامپ ها انواع و اقسام مدارات آنالوگ و دیجیتال از آمپلی فایر صوتی گرفته تا ماشین حساب های بزرگ و کامپیوتر رو ساخته بودند. اولین کامپیوترشون انیاک (
ENIAC) بود با 30.000 تا لامپ و به اندازه یک ساختمان چند طبقه که قدرتش از ماشین حساب های جیبی شما هم کمتر بود!

این دفعه یه اتفاقی افتاد که تقصیر آزمایشگاه های بل بود که نیمه هادی ها رو به جون هم انداخت و ترانزیستور و دیود و ترایاک و انواع المان های غیرخطی با تولد اولین المان فیزیک حالت جامد (ترانزیستور) اختراع شدند و دنیا برای مهندسان الکترونیک گلستان شد!! لامپ های داغ، شکننده، گران، پرمصرف، حجیم و کم انعطاف جاشون رو به یک سوگلی سه پایه دادند که نه تنها داغ نمی شد و نمی شکست، خیلی کم مصرف و جمع و جور بود. تولد این جانور سه پا اولین انقلاب الکترونیک لقب گرفت ولی انقلاب اول زیاد دوام نداشت چون 10-15 سال بعد از اون دومین انقلاب که اختراع مدار مجتمع (
IC) بود صورت گرفت. مدارهایی که قبلا یک بار با لامپ طراحی شده بودند و یک بار با ترانزیستور باز طراحی شدند این بار روی یک تراشه ی سیلیکونی به صورت یک بسته بندی وارد بازار شدند.

یک پرانتز برای جمله ی آخر:

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

پرانتز بسته!

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

منبع

 

تحلیل برنامه bascom   avr

به توضیح تک به تک قسمتها میپردازیم :

۱:در قسمت معرفی آی سی از کلمه کلیدی $Regfile برای معرفی استفاده شده است . این دستور به این صورت است که باید بعد ازآن کلمه معرف آی سی مورد استفاده را در جلوی آن وارد کنیم . البته برای هر آی سی کلمه ی مخصوصی وجود دارد که برای ATMEGA32 باید کلمه ی M32def.dat را تایپ کرد . البته باید توجه داشت که این کلمه باید داخل یک جفت کوتیشن ( گ + Shift ) قرار گیرد :
$
Regfile = “M32def.dat

۲: در قسمت بعدی که تعیین فرکانس کاری است کلمه کلیدی $Crystal باید نوشته شود و آنرا باید مساوی با فرکانس کار بر حسب هرتز قرار داد :
$
Crystal = 1000000

۳: حال به بخش معرفی سخت افزار رسیدیم . در این برنامه چون پورت B باید بتواند جریان بیرون دهد و سخت افزار خارجی ای که همان LED است را روشن کند بعنوان خروجی تعریف میشود . همیشه برای معرفی سخت افزار از کلمه کلیدی Config اسفاده میشود . پس برای خروجی کردن پورت B مینویسیم :
Config Portb = output

۴: چون در این برنامه نیازی به تعریف متغیری نبود به بخش برنامه اصلی میرویم و در این قسمت عددی را به پورت B خواهیم فرستاد تا طبق آن LED ها روشن شوند . البته ذکر این نکته لازم است که اگر بخواهیم عددی را در مبنای دودویی بنویسیم ابتدا باید &B را نوشته و بعد ععد مورد نظر را تایپ کنیم و همینطور برای نوشتن در مبنای هگز که &H تایپ میشود و اگر هیچکدام از کلمات ذکر شده را ننویسیم عدد در مبنای دسیمال محسوب میشود .

۵: در آخر برنامه نیز از کلمه کلیدی END برای مشخص نمودن پایان برنامه استفاده شده است .

دانلود برنامه ==> http://www.irankorea.com/microtak/microtak-about27.html

 

تایمر ها    در 8051

 

 

تایمر ها از اجزاء پر کاربرد پروژه های 8051 می باشند.کار اصلی تایمر شمارش تعداد سیکل های کریستال می باشد.چون هر دوره تناوب کریستال در کسری از ثانیه رخ می دهد بنابراین می توان برای شمارش زمان سپری شده ، از آن استفاده کرد .
8051 دارای دو عدد تایمر 16 بیتی می باشد که با نامهای تایمر یک و تایمر صفر شناخته شده اند .هر تایمر در حقیقت از دو ثبات 8 بیتی با نام
TH و TL ساخته شده است .از تایمر ها در 4 مود کاری می توان استفاده کرد:
مود 00 که از تایمر به عنوان یک شمارشگر 13 بیتی استفاده می کند .
مود 01 از تایمر به عنوان شمارشگر 16 بیتی استفاده می کند .
مود 02 به عنوان شمارشگر 8 بیتی با راه اندازی خودکار استفاده می کند.(
AutoReload)
مود 03 تایمر را به دو تایمر 8 بیتی تقسیم می کند که به آن حالت تسخیر شده می گویند.

در 4 مود کاری بالا مود های یک و دو بیشترین کاربرد را در انجام پروژه ها دارند .تایمر 16 بیتی مود 01 می تواند از مقدار 0000 تا
FFFFH بشمارد پس از رسیدن به مقدار FFFF تایمر پرچم خود را (TF) را یک می کند و مجددا از مقدار 0000 شروع به شمارش می کند.

در مود 2 که همان حالت
AutoReload است تایمر به عنوان یک شمارشگر 8 بیتی از مقدار 00 تا FFh می شمارد البته در این مود می توان برای تایمر تعیین کرد که چه مقدار بشمارد فرضا در برنامه ای احتیاج به این پیدا می کنیم تا تایمر یک وظیفه ای را هر 100 میکرو ثانیه انجام دهد در این حالت از مود 2 استفاده می کنیم . مقدار اولیه شمارش را در ثبات TH قرار می دهیم .و سپس پس از راه اندازی تایمر این مقدار در ثبات TL قرار می گیرد و تایمر از مقدار تعیین شده تا FFh می شمارد . پس از رسیدن TL به FFh تایمر پس از یک کردن TF ، مجددا مقدارموجود در TH را در ،م کپی کرده و به همین ترتیب شمارش ادامه می یابد .

تایمر ها دارای دو ثبات با نامهای
TCON وTMOD هستندثبات ،TMOD برای مقدار اولیه دادن به تایمر مورد استفاده قرار می گیرند و ثبات TCON برای کنترل تایمر مورد استفاده قرار می گیرد ثبات TMOD همیشه باید قبل از راه اندازی تایمر مقدار دهی شود.شکل ثبات TMOD به صورت زیر است:


TMODیک ثبات 8 بیتی است که به دو قسمت 4 بیتی (nible) تقسیم می شود نیبل بالا برای تایمر 1 و نیبل پایین برای تایمر 0 مورداستفاده قرار می گیرد .اختلاف دو نیبل در همین است و غیر از این کاملا با هم مشابهند .
بیت
Gate ، می توان گفت که یک نوع راه انداز تایمر است . این بیت مشابه کلید روشن و خاموش عمل می کند در صورتی که مقدار این بیت را یک قرار دهیم کنترل تایمر از طریق پالس ورودی به پایه ی INT1 صورت می گیرد یکی از کاربرد های این بیت اندازه گیری پالس خارجی اعمال شده به پایه ی INT1 می باشد.
بیت
C/T نوع کارکرد تایمر را تعیین می کند که آیا تایمر برای شمارش تعداد پالس کریستال خارجی متصل به پایه T1 یا T0 مورداستفاده قرار گیرد یا برای شمارش تعداد پالس های کریستال مدار میکرو که آن هم به پایه های 18 و 19 متصل است .در حالت اول می گویند که تایمر به عنوان کانتر (شمارنده اتفاقات) عمل می کند و در حالت دوم می گویند که تایمر در حالت شمارش گر زمان کار می کند .در صورتی که بیتc/T را یک کنیم تایمر به عنوان کانتر و در صورتی که این بیت را صفر کنیم تایمر به عنوان شمارشگر واحد زمان به کار گرفته می شود.

بیتهای
M1و M0 هم مود کاری را که قبلا بررسی کردیم تعیین می کند .ابتدا مود مورد نظر را تعیین می کنیم سپس مقدار معادل آن در مبنای دو را در بیتهای M1, M2 قرار می دهیم .

یک مثال برای اینکه تایمر 1در حالت
AutoReload و به عنوان تایمر (شمارش گر زمان) مورد استفاده قرار گیرد :


معدل این کار دستور زیر است:

Mov Tmod,#00100000b


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


بیت
TF:قبلا هم در مورداین بیت صحبت کردیم هنگامی که تایمر شروع به شمارش کرد بسته به مودی که برای کار در آن تنظیم شده است پس از رسیدن به مقدار نهایی (FFh یا FFFFh یا1FFFh ) قبل از اینکه مجددا از صفر شروع به شمارش کند بیتTF را یک می کند تا نشان دهد که مقدار فعلی در دور دوم شمارش است و قبلا یک بار شمارش کامل شده است .
این بیت به صورت سخت افزاری یک می شود و ما باید به صورت نرم افزاری قبل از پایان دور دوم شمارش آن را صفر کنیم .
TF1 برای تایمر یک و TF0 پرچم شمارش برای تایمر صفر است.

بیت
TR: بیت کنترل راه اندازی نامیده شده است .در صورتی که این بیت را یک کنیم تایمر شروع به شمارش می کند و در صورتی که این بیت صفر شود تایمر متوقف می شود. مانند TF، ،TR1 برای کنترل تایمر 1 و TR0 برای کنترل راه اندازی تایمر 0 مورد استفاده قرار می گیرد.

4 بیت بعدی این ثبات برای عملیات وقفه کاربرد دارد که انشاالله در مبحث وقفه ها به صورت کامل توضیح خواهیم داد .
اکنون روش کار با تایمر را به صورت الگوریتم در می آوریم تا بهخاطر سپردن آن آسانتر شود.

1.از کدام تایمر استفاده خواهیمکرد؟
2.مود کاری تایمر را تعیین کنید.
3.تایمر مورد نظر شماست یا شمارنده
3.ثبات
TMOD را با معادل دودوئی آن بار گذاری کنید.
4.در صورتی که از
AutoReload استفاده می کنید TH را با مقدار اولیه مناسب بار کنید.
5.تایمر را راه اندازی کنید .
7.منتظر یک شدن
TF بمانید .


مثال:
برنامه ای بنویسید که یک پالس با دوره تناوب 200 میکرو ثانیه بر روی پایه ی
P1.0 تولید کند.


حل:
دوره تناوب پالس 200 میکرو ثانیه عنوان شده است یک پالس در نصف دوره تناوب در حالت
high و در نصف دیگر در حالت low قرار دارد . نصف دوره تناوب 100 میکرو ثانیه است و چون پالس متقارن است ما فقط به نصف دوره تناوب احتیاج داریم بنابراین مود تایمر را 2 یعنی حالت autoReload و مقدار اولیه را -100 در نظر می گیریم.
برای اینکه بفهمید چرا -100 ،توجه کنید که ما می خواهیم که تایمر 100 واحد بشمارد در حالت
AutoReload چون تایمر 8 بیتی است حداکثر مقدار شمارش FFh است بنابراین :
TH=FFh-100d=9Bh
اما -100 هم دقیقا مشابه مقدار بالا است .بنابراین اگر ما به جای -100 مقدار 9
Bh را در TH قرار می دادیم نیز نتیجه فرقی نمی کرد.

در این مثال فرقی نمی کند که از کدام تایمر استفاده کنیم .در حقیقت تایمر ها هیچ تفاوتی با هم ندارند .

Mov TMOD,#00100000b

Mov TH1,#-100
Setb TR1
Wait :jnb Tf1,wait
ClR TF1
CPL p1.0
Sjmp wait


همانطور که مشاهده می کنید قبل از پایان دور دوم شمارش مقدار
TF باید صفر شود.

منبع:دانشگاه کردستان

کارت گرافیک  avr

تا حالا فکر کردین AVR رو به مانیتور وصل کنین؟ چه قدر خوب می شه نه؟ اگه دیگه خروجی ویدیو هم داشته باشه که دیگه حرف نداره نه؟ ولی نمی ارزه حتما خیلی پیچیده می شه ولی تعجب نکنین اگه بگم چند تا مقاومت می خواد ادامه رو ببینین

این یه کارت گرافیک که می تونه متن رو از طریق پورت سریالش در یافت کنه و به خروجی
VGA یا ویدئو ارسال کنه برنامش رو هم می تونید روی ATMega16 ، 32 یا میکرو های مشابه اجرا کنید.
خود برنامه به زبان
C نوشته شده و باید با GCC اجراش کنید (مقاله AVR GCC رو ببینین http://www.iranled.com/modules.php?name=News&file=article&sid=41 )
نقشه خیلی ساده ای هم داره توی فایل می تونید کل سورس نقشه و ... رو پیدا کنید

Download File

 

آموزش avr studio

این یه PDF آموزشی برای AVRStudio
AVR Studio یک نرم افزار رایگان برای دیباگ کردن نوشتن برنامه اسمبلی برای AVR های شرکت Atmel است که می توانید آنرا از سایت این شرکت (www.atmel.com) در یافت کنید

آخرین ورژن
AVR Studio در هنگام نوشتن این مقاله 4 است از این نرم افزار به غیر از دیباگ کردن برنامه های اسمبلی می توانید برای دیباگ کردن کد های کمپایل شده را نیز استفاده کنید و به عنوان دیباگ برای نرم افزار های که فرمتهای COFF را مانند Codevision پشتیبانی می کنند استفاده کنید(از ورژن 4.06 به بعد) با این روش می توانید برنامه نوشته شده به زبان مثلا C را داخل AVRStudio دیباگ کنید.

Download File

 

http://www.iranled.com/article33.html

ارتباط دهی  mmc و avr

آیا تا کنون درگیر پروژه ای شده اید که به حافظه غیرفرارخیلی بالا(چند ده یا صد مگا بایت)احتیاج داشته باشید!؟ اگر این طورباشد،حتما در ابتدا ناامید شده اید.چون این چنین حافظه ای به صورت چیپ وجود ندارد.اما برای من خیلی وقتها یک محدودیت بزرگ،باعث یک جهش بزرگ شده است.همین محدودیت باعث شدکه کارتهای مالتی مدیا(MMC) را شکار کنم.گرچه حتی خود شرکتهای سازنده این کارتها هم اطلاعات فنی آنها را به راحتی در اختیار دیگران قرارنمی دهند.اما چیزی به دست آوردم که ارزش زحمتش را داشت.

بگذریم! شما میتوانید یک MMC را با ظرفیت 128مگا بایت به قیمت حدود 10000تومان بخرید.چیزی که گفتم برای یک مهندس برق و سخت افزار خیلی وسوسه کننده است.با این حجم حافظه شما می توانید با فرکانس نمونه گیری 20کیلو نمونه در ثانیه(20ksps) و با یک A/DوD/A هشت بیتی حداقل یک ساعت و چهل و پنج دقیقه صدا ضبط کنید!و اما این کارتها مزایایی دارند که روز به روز بر کاربردشان افزوده می شود.

1-اندزه کوچکی دارند.

2-حجم حافظه بالایی دارند.

3-سرعت بالایی دارند(با ارتباط دهی SPI تا 20 مگا بیت در ثانیه)

4-سیم کشی کمی لازم دارند.

5-قیمت خیلی کمی دارند.

6-همه جا یافت می شوند.در شهرستان ما(لارستان) ، شاید برای پیدا کردن یک میکروکنترلر8051دچار مشکل شوید.ولی MMCفقط در دکه های نوشابه فروشی یافت نمی شود.

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

MMCها به دو روش برنامه ریزی می شوند:MMCوSPI

کسانی که با میکروکنترلرهای جدید مثل AVR کار می کنندباید خیلی خوشحال باشند.چون می توانند به روش SPI با سرعت 8Mbps با MMC کار کنند.البته اولش کمی سخت است.

شما می توانید کارت خود را به AVR وصل کنید.

تغذیه MMC ها می تواند بین 2.9 تا 3.6 ولت باشد.اگر بخواهید Datasheet کامل یک MMC را داشته باشید،در سایت www.alldatasheet.com کارت HB288032MM1 را جستجو کنید.این کارت 32مگابایتی است.

من خودم برای ارتباط دهی MMCبا AVR یک کتابخانه نوشته ام وبه کتابخانه های CodeVision خود اضافه کرده ام.کسانی که این کتابخانه را بخواهند،می توانند به Emailمن درخواست بفرستند تا با هزینه ای مناسب برای آنها فرستاده شود.البته با این تعهد اخلاقی که به فکر تکثیر آن مخصوصا در اینترنت نباشند.

datasheet اين کتابخانه را در زير دانلود کنيد .

Download : MMC_Lib_Help.pdf

پروگرامر 8051

اين پروگرامر قابليت برنامه ريزي ميکروهاي سري 8051 را دارا مي باشد.
از قابليتهاي اين پروگرامر مي توان به موارد زير اشاره کرد:
-
قابليت اتصال از طريق پورت سريال
-
شناسايي ميکروکنترلر بصورت خودکار
-
بازبيني اطلاعات
-
شناسايي سخت افزار بصورت خودکار

ميکروکنترلري که روي چيپ نياز است را بايد با برنامه EZ52.hex برنامه ريزي کرد .
بقيه قطعات را طبق شماتيک تهيه و از آن لذت ببريد. برگرفته از سایت IC4IR.com 

http://electronic.persiangig.com/Software/EZDownloader8051.zip

 

پروگرم کردن pic

آی سی PIC  به زبان های مختلفی قابل برنامه ریزی است مثل C#,C,Basic و... حال برای پروگرم کردن این آی سی به یک مدار نیاز داریم تا اتصال آی سی به کامپیوتر رو برقرار کنه.
این مدار قابلیت پروگرم کردن آی سی های(
PIC18F442و PIC18F458و PIC18F452و PIC18F252و PIC18F6620و PIC18F8720و PIC18F2620و PIC16C66و PIC16C72و PIC16C745و PIC16F84و PIC18F876) را دارد.
این مدار رو می تونید با روشهای مختلفی تهیه کنید مثلا می تونید از برد سوراخ دار یا برد برد استفاده کنید یا استفاده از
PCB آماده که من لینکشو در پایین گذاشتم یا آماده اون رو از بازار بخرید(به احتمال زیاد تو تهران پیدا میشه خصوصا تو پاساژ امجد!). برای ساخت این مدار من پیشنهاد میکنم از PCB استفاده کنید چون هم راحتتره و هم تمیزتر! برای ساخت این مدار به وسایل تقریبا زیادی احتیاج داریم که همه آنها در شمای کلی مدار نوشته شده است. در ضمن این مدار ورودی رو از پورت پرینتر میگیره.
نوعی دیگر از آی سی های میکرو نیز وجود دارد به نام
AVR که معمولا روی خود مدار اصلی پروگرم میشوند.
 در ضمن اگر مشکلی  داشتید حتما در قسمت نظرات مطرح کنید.

شمای کلی مدار
PCB آماده مدار

 

منبع : www.electronic.shahkey.com

نرم افزار ارائه شده توسط شرکت ATMELبه نام  AVR Studio 4

نرم افزار ارائه شده توسط شرکت ATMELبه نام  AVR Studio 4

این نرم افزار به صورت رایگان در سایت شرکت ATMEL قرار دارد می توانید با رجوع به آدرس http://www.atmel.com آن را دانلود کنید.

این نرم افزار در حقیقت یک اسمبلر برای محصولات AVR اتمل است و به صورت کاملا ویژوالی است.

می تواند با انواع دستگاههای برنامه نویس میکرو ارتباط برقرار کند و کدها را در میکرو دانلود کند.

و قابلیت ترجمه کدها به زبانهای C و Assembly را دارد و ...

انواع برنامه نویسها که AVR Studio 4 با آنها سازگار است:

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

 

Emulators Platforms

In System Programmers

Starter Kits

ICE 40/50

AVRISP

STK500

JTAGICE

JTAGICE

STK501

 

 

STK502

STK500/STK501/STK502

STK500

Supports All AVR Devices

Interfaces with AVR Studio

Early Support for NewDevices Push Buttons, LEDs & RS232

 

STK501

STK500 Expansion Module for ATmega64/128

ZIF Socket & PCB Footprint

Onboard 32 kHz Oscillator

Additional RS232 Port

 

STK502

STK500 Expansion Module for ATmega169

ZIF Socket & PCB Footprint

Onboard 32 kHz Oscillator

Demo Application with Temperature Sensor

JTAGICE / JTAGICE mkII

Interfaced using AVR Studio

Real-Time Emulation in Actual Silicon

Debug the Real Device at the Target Level

Communicates Directly to the Device through 4-Pin JTAG Interface

One-wire Debug Interface (JTAGICE mkII only)

Supports

Program Breakpoints

Data Breakpoints

Full I/O View and Watches

Full Execution Control

ICE40/50 Emulator

ICE50

Emulates all Peripherals (Both Digital and Analog)

Supports all Instructions And Peripherals Real-Time

All Configurations Done from AVR Studio

Unlimited Number of Breakpoints

Source Level Debugging

Supports the Newest Members of AT mega

And AT tiny Product Families

 

ICE40

Same Features as ICE50

End Low Cost ICE for ATtiny13, ATtiny26, ATmega8, ATmega8515,ATmega853

ICE50 Upgrade Available

 

منبع

 

Atmega32

 

یکی از انواع میکروکنترلرهای جدید که در بازار الکترونیک ارائه شده است، میکروکنترلر های شرکت ATMEL با نام میکروکنترلرهای خانوادهAVR  می باشد. این میکروکنترلر های هشت بیتی به دلیل قابلیت برنامه نویسی  توسط کامپایلر زبان های سطح بالا (HLL ) بسیار مورد توجه قرار می گیرند. این میکروکنترلر ها از معماری RISC برخوردارند و شرکت ATMEL سعی نموده است با استفاده از معماری پیشرفته و دستورات بهینه، حجم کد تولید شده را کم و سرعت اجرای برنامه را بالا ببرد. یکی از مشخصات این نوع میکروکنترلر ها دارا بودن 32 رجیستر همه منظوره می باشد. همچنین در این میکروکنترلر ها از حافظه های کم مصرف و غیر فرار FLASH و EEPROM استفاده می شود.

کامپایلر هایی به زبان BASIC  و C که زبانهای پرکاربرد در دنیا هستند برای این نوع میکرو ها طراحی شده است و علاوه برآن از زبان اسمبلی نیز همچنان می توان برای برنامه نویسی استفاده کرد.

به عنوان مثال کامپایلر BASCOM با زبان BASIC برای برنامه نویسی این نوع از میکروکنترلر ها می تواند مورد استفاده قرار گیرد.

 

میکروکنترلر های AVR به سه دسته اصلی تقسیم می شوند:

·        سری AT90S یا  AVR

·        سری TINYAVR

·        سری MEGAAVR

 

میکروکنترلر های نوع MEGAAVR  دارای قابلیت های بیشتری نسبت به دو سری دیگر هستند. در اینجا به بررسی مشخصات و پایه های یکی از میکروکنترلرهای پرکاربرد سری MEGA به نام ATMega32 می پردازیم:

 

ATMega32

 

 

مهمترین مشخضات این میکروکنترلر 40 پایه عبارت است از:

 

·        کارایی بالا و توان مصرفی کم

·        32 رجیستر (ثبات) 8 بیتی

·        سرعت با سقف 16 میلیون دستور در ثانیه در فرکانس 16 Mhz

·        32 کیلو بایت حافظه FLASH داخلی قابل برنامه ریزی با قابلیت ده هزار بار نوشتن و پاک کردن

·        2 کیلو بایت حافظه داخلی SRAM

·        1024 بایت حافظه EEPROM داخلی قابل برنامه ریزی با قابلیت صد هزار بار نوشتن و خواندن

·        قابلیت ارتباط JTAG

·        دو تایمر/شمارنده  هشت بیتی

·        یک تایمر/شمارنده  شانزده بیتی

·        چهار کانال PWM

·        هشت کانال مبدل A/D  ده بیتی

·        یک مقایسه کننده آنالوگ داخلی

·        WATCHDOG قابل برنامه ریزی با اسیلاتور داخلی

·        ارتباط سریال برای برنامه ریزی: ISP

·        USART سریال قابل برنامه ریزی

·        دارای شش حالت SLEEP

·        منابع وقفه داخلی و خارجی

·        اسیلاتور داخلی RC

·        کار با ولتاژ 4.5  تا 5.5

·        فرکانس کاری 0 تا 16 مگاهرتز

·        32 خط داده ورودی و خروجی قابل برنامه ریزی

·        ...

 

پایه های میکروکنترلرATMega32:

 

منبع :http://www.nurc.ir

 

اطلاعات كلي در مورد ميكروكنترلرهاي AVR

اطلاعات كلي در مورد ميكروكنترلرهاي AVR
میکروهای AVR دارای انعطاف پذیری غیر قابل مقایسه و بی همتایی هستند.آنها قادر به ترکیب هر نوع کدی با یک معماری کارامد از طریق زبانهای C و Assembly هستند و قادرند از طریق این برنامه ها تمام پارامترهای ممکن در یک سیکل یا چرخه ماشین را با دقت بسیار بالا هماهنگ کنند.

 

اين مقاله اطلاعات كلي در مورد ساختار داخلي و انواع مختلف ميكروهاي AVR و همچنين مزاياي آنها نسبت به نمونه هاي قبلي 8051 پرداخته است.در ترجمه آن سعي كردم بيشتر از لغات فارسي معادل استفاده كنم با اينكه خودم زياد راضي نيستم ولي چاره اي نداشتم بايد فارسي را پاس بداريم ! حتما مي دانيد كه براي برخي لغات تخصصي انگليسي هيچ معادل فارسي وجود ندارد به خاطر همين در بعضي از قسمتها خود لغت انگيسي را آورده ام كه فهم صحيح آن بستگي به تجربه ي خواننده دارد.مسلم است كه اگر شما درباره ي ميكروكنترلرها پيش زمينه اي داشته باشيد آنگاه آمادگي بيشتري براي فهم اين مقاله خواهيد داشت پس اگر يك خواننده مبتدي در ميكروكنترلرها هستيد ممكن است در درك برخي مطالب كمي دچار مشكل شويد البته كمي ! كه با پرسيدن چند سوال كوچك از كسي كه اينكاره است مي توانيد بعضي ابهامات را برطرف كنيد.اميدوارم هميشه پيروز و شاد باشيد .

 

مقدمه اي بر ميكروكنترلرهاي AVR

ميكروهاي AVR داراي انعطاف پذيري غير قابل مقايسه و بي همتايي هستند.آنها قادر به تركيب هر نوع كدي با يك معماري كارامد از طريق زبانهاي C و Assembly هستند و قادرند از طريق اين برنامه ها تمام پارامترهاي ممكن در يك سيكل يا چرخه ماشين را با دقت بسيار بالا هماهنگ كنند.ميكرو AVR داراي معماريي است كه ميتواند در تمام جهات مورد استفاده شما،عمل كند ميكرو AVR معماريي دارد كه براي شما كارايي 16 بيتي ارائه مي دهد كه البته قيمتش به اندازه يك 8 بيتي تمام مي شود.

 بهره هاي كليدي AVR :

داراي بهترين MCU براي حافظه فلش در جهان ! (MCU: Master Control Unit)

داراي سيستمي با بهترين هماهنگي

داراي بالاترين كارايي و اجرا در CPU (يك دستورالعمل در هر سيكل كلاك)

داراي كدهايي با كوچكترين سايز

داراي حافظه خود برنامه ريز

داراي واسطه JTAG كه با IEEE 1149.1 سازگار است

 (IEEE: Institute of Electrical and Electronics Engineers.)

داراي سخت افزار ضرب كننده روي خود

داراي بهترين ابزارها براي پيشرفت و ترقي

داراي حالات زيادي براي ترفيع دادن يا Upgrade .

 واژگان كليدي AVR :

 ميكرو كنترلر AVR به منظور اجراي دستورالعملهاي قدرتمند در يك سيكل كلاك(ساعت) به اندازه كافي سريع است و مي تواند براي شما آزادي عملي را كه احتياج داريد به منظور بهينه سازي توان مصرفي فراهم كند.

ميكروكنترلر AVR بر مبناي معماري  RISC(كاهش مجموعه ي دستورالعملهاي كامپيوتر) پايه گذاري شده و مجموعه اي از دستورالعملها را كه با 32 ثبات كار ميكنند تركيب مي كند.

به كارگرفتن حافظه از نوع Flash  كه AVR ها به طور يكسان از آن بهره مي برند از جمله مزاياي آنها است.

يك ميكرو AVR مي تواند با استفاده از يك منبع تغذيه 2.7 تا 5.5 ولتي از طريق شش پين ساده در عرض چند ثانيه برنامه ريزي شود يا Program شود.

ميكروهاي AVR در هرجا كه باشند با 1.8 ولت تا 5.5 ولت تغذيه مي شوند البته با انواع توان پايين (Low Power)كه موجودند.

راه حلهايي كه AVR پيش پاي شما مي گذارد، براي يافتن نيازهاي شما مناسب است:

با داشتن تنوعي باور نكردني و اختيارات فراوان در كارايي محصولات AVR، آنها به عنوان محصولاتي كه هميشه در رقابت ها پيروز هستند شناخته شدند.در همه محصولات AVR مجموعه ي دستورالعملها و معماري يكسان هستند بنابراين زماني كه حجم كدهاي دستورالعمل شما كه قرار است در ميكرو دانلود شود به دلايلي افزايش يابد يعني بيشتر از گنجايش ميكرويي كه شما در نظر گرفته ايد شود مي توانيد از همان كدها استفاده كنيد و در عوض آن را در يك ميكروي با گنجايش بالاتر دانلود كنيد.

خانواده هاي محصولات AVR :

Tiny AVR:

ميكروكنترلري با اهداف كلي و با بيش از 4 كيلو بايت حافظه فلش و 128 بايت حافظه استاتيك و قابل برنامه ريزي است.(منظور از حافظه استاتيك SRAM و حافظه قابل برنامه ريزي EEPROM است.)

Mega AVR:

اين نوع ميكروها قابليت خود برنامه ريزي دارند و مي توان آنها را بدون استفاده از مدارات اضافي برنامه ريزي كرد همچنين بيش از 256K بايت حافظه فلش و 4K بايت حافظه استاتيك و قابل برنامه ريزي دارند.

LCD AVR:

اين نوع ميكرو داراي درايور براي نمايشگر LCD با قابليت كنترل اتوماتيك تباين و مقايسه تصوير مي باشد.باعث تمديد عمر باتري مي شود و در حالت فعال داراي توان مصرفي پاييني است.

توان مصرفي پايين:

توان مصرفي پايين آنها براي استفاده بهينه از باتري و همچنين كاربرد ميكرو در وسايل سيار و سفري طراحي شده كه ميكروهاي جديد AVR با توان مصرفي كم از شش روش اضافي در مقدار توان مصرفي ، براي انجام عمليات بهره مي برند.

اين ميكروها تا مقدار 1.8 ولت قابل تغذيه هستند كه اين امر باعث طولاني تر شدن عمر باتري مي شود.

در ميكروهاي با توان پايين ، عمليات شبيه حالت Standby است يعني ميكرو مي تواند تمام اعمال داخلي و جنبي را متوقف كند و كريستال خارجي را به همان وضعيت شش كلاك در هر چرخه رها كند!

ابعاد مختلف ميكروهاي AVR را در اشكال زير مشاهده مي كنيد:

 AVR هاي مدل tiny:

به خود اجازه ندهيد كه نام آن شما را گول بزند... ميكروهاي مدل tiny توانايي هاي عظيمي دارند.به خاطر كوچك بودن و داشتن MCU بسيار پر قدرت به اينگونه ميكروها نياز فراواني هست آنها به هيچ منطق خارجي نياز نداشته و به همراه يك مجتمع مبدل آنالوگ به ديجيتال و يك حافظه قابل برنامه ريزي EEPROM قابليتهاي خود را ثابت مي كنند.

نكات كليدي و سودمند مدل Tiny :

آنها به منظور انجام يك عمليات ساده بهينه سازي شده و در ساخت وسايلي كه به ميكروهاي كوچك احتياج است كاربرد فراوان دارند.

كارايي عظيم آنها براي ارزش و بهاي وسايل موثر است.

 AVR هاي مدل Mega:

اگر شما به ميكرويي احتياج داريد كه داراي سرعت و كارايي بالا باشد و توانايي اجراي حجم زيادي از كد برنامه را داشته و بتواند داده هاي زيادي را سروسامان دهد بايد از AVR هاي مدل Mega استفاده كنيد آنها به ازاي هر يك مگا هرتز سرعت ، توانايي اجراي يك ميليون دستورالعمل در هر يك ثانيه را دارند همچنين قابل برنامه ريزي و بروزرساني كدها با سرعت و امنيت بسيار بالايي هستند.

نكات كليدي و سودمند مدل Mega :

حافظه سريع از نوع فلش با عملكرد خود برنامه ريز و بلوكه ي بوت (Boot Block)

دقت بسيار بالاي 8-كانال در تبديل آنالوگ به ديجيتال 10 بيتي

USART و SPI و TWI بر طبق واسطه هاي سريال

واسطه ي JTAG بر طبق IEEE 1149.1

TWI: Two Wire Interface is a byte oriented interface

USART: Universal Serial Asynchronous Receiver/Transmitter

SPI: Serial Peripheral Interface

JTAG available only on devices with 16KB Flash and up

واسط JTAG فقط در ميكروهاي با بيش از 16 كيلوبايت حافظه فلش موجود است.

AVR هاي مدل LCD:

آنها با بالاترين يكپارچگي و انعطاف پذيري ممكن طراحي شده اند و با داشتن درايور LCD و كنترلر اتوماتيك وضوح تصوير ،بهترين واسطه را با انسان دارند و داراي توان مصرفي پايين و كارايي بالايي هستند.اولين عضو اين خانواده 100 سگمنت داشت و داراي يك UART و SPI به منظور ارتباط به صورت سريال بود.

نكات كليدي وسودمند مدل LCD :

كارايي فوق العاده با سرعت يك ميليون دستورالعمل در ثانيه به ازاي يك مگاهرتز

واسطه ها براي ارتباط با انسان: وقفه هاي صفحه كليد و درايور نمايشگر LCD

آنها اين اجازه را به طراح سيستم مي دهند كه توان مصرفي را در برابر سرعت پردازش تا جايي كه امكان دارد بهينه كند.

نكات كليدي و سودمند حافظه ي فلش خود برنامه ريز:

قابليت دوباره برنامه ريزي كردن بدون احتياج به اجزاي خارجي

128 بايت كوچك كه به صورت فلش سكتور بندي شده اند

داشتن مقدار متغير در سايز بلوكه ي بوت (Boot Block)

خواندن به هنگام نوشتن

بسيار آسان براي استفاده

كاهش يافتن زمان برنامه ريزي

كنترل كردن برنامه ريزي به صورت سخت افزاري

راههاي مختلف براي عمل برنامه ريزي:

موازي يا Parallel :

يكي از سريعترين روشهاي برنامه ريزي

سازگار با برنامه نويس هاي(programmers) اصلي

 خود برنامه ريزي توسط هر اتصال فيزيكي:

برنامه ريزي توسط هر نوع واسطه اي از قبيل TWI و SPI و غيره

دارا بودن امنيت صد درصد در بروزرساني و كدكردن

ISP:

واسطه سه سيمي محلي براي بروزرساني سريع

آسان و موثر در استفاده

 واسطه JTAG :

واسطه اي كه تسليم قانون IEEE 1149.1 است و مي تواند به صورت NVM برنامه ريزي كند يعني هنگام قطع جريان برق داده ها از بين نروند.استفاده از فيوزها و بيتهاي قفل.

بيشتر براي ديباگ كردن آنچيپ و به منظور تست استفاده مي شود

نرم افزار ارائه شده توسط شركتATMEL به نام AVR Studio 4 :

اين نرم افزار به صورت رايگان در سايت شركت ATMEL قرار دارد مي توانيد با رجوع به آدرس http://www.atmel.com آن را دانلود كنيد.

اين نرم افزار در حقيقت يك اسمبلر براي محصولات AVR اتمل است و به صورت كاملا ويژوالي است.

مي تواند با انواع دستگاههاي برنامه نويس ميكرو ارتباط برقرار كند و كدها را در ميكرو دانلود كند.

و قابليت ترجمه كدها به زبانهاي C و Assembly را دارد و ...

 انواع برنامه نويسها كه AVR Studio 4 با آنها سازگار است:

در اين قسمت خصوصيات پروگرامر ها را به زبان انگليسي ارائه كردم چون به زبان فارسي اصلا قابل فهم نمي بود و بايد يكي پيدا مي شد تا ترجمه فارسي آن را دوباره ترجمه كند...

 

Emulators Platforms

In System Programmers

Starter Kits

ICE 40/50

AVRISP

STK500

JTAGICE

JTAGICE

STK501

 

 

STK502

 

 

 STK500/STK501/STK502

 STK500

Supports All AVR Devices

Interfaces with AVR Studio

Early Support for New

Devices Push Buttons, LEDs & RS232

STK501

STK500 Expansion Module for ATmega64/128

ZIF Socket & PCB Footprint

Onboard 32 kHz Oscillator

Additional RS232 Port

STK502

STK500 Expansion Module for ATmega169

ZIF Socket & PCB Footprint

Onboard 32 kHz Oscillator

Demo Application with Temperature Sensor

JTAGICE / JTAGICE mkII

Interfaced using AVR Studio

 Real-Time Emulation in Actual Silicon

Debug the Real Device at the Target Level

Communicates Directly to the Device through 4-Pin JTAG Interface

One-wire Debug Interface (JTAGICE mkII only)

Supports

Program Breakpoints

Data Breakpoints

Full I/O View and Watches

Full Execution Control

 ICE40/50 Emulator

ICE50

Emulates all Peripherals (Both Digital and Analog)

Supports all Instructions And Peripherals Real-Time

All Configurations Done from AVR Studio

Unlimited Number of Breakpoints

Source Level Debugging

Supports the Newest Members of AT mega

And AT tiny Product Families

 ICE40

Same Features as ICE50

End Low Cost ICE for ATtiny13, ATtiny26, ATmega8, ATmega8515,

ATmega8535

ICE50 Upgrade Available

روگرامرهايي كه AVR هاي خاصي را پشتيباني مي كنند:

 

ICE50

ICE40

ICE200

JTAGICE mkll

JTAGICE

STK502

STK501

STK500

AVRISP

Product

 

 

*

 

 

 

 

*

 

Tiny11

 

 

*

 

 

 

 

*

*

Tiny12

*

*

 

*

 

 

 

*

*

Tiny13

 

 

 

 

 

 

 

*

*

Tiny15

*

*

 

 

 

 

 

*

*

Tiny26

 

 

 

 

 

 

 

*

 

Tiny28

*

 

 

*

 

 

 

*

*

Tiny2313

 

 

*

 

 

 

 

*

 

90S1200

 

 

*

 

 

 

 

*

 

90S2313

 

 

*

 

 

 

 

*

 

90S2323

 

 

*

 

 

 

 

*

 

90S2343

*

*

 

 

 

 

 

*

*

Mega8

*

*

 

 

 

 

 

*

*

Mega8515

*

*

 

 

 

 

 

*

*

Mega8535

*

 

 

*

*

 

 

*

*

Mega16

*

 

 

*

*

 

 

 

*

Mega162

*

 

 

*

*

 

 

*

*

Mega32

*

 

 

*

*

 

*

*

*

Mega64

*

 

 

*

*

 

*

*

*

Mega128

*

 

 

*

 

 

 

*

*

Mega48

*

 

 

*

 

 

 

*

*

Mega88

*

 

 

*

 

 

 

*

*

Mega168

*

 

 

*

*

*

 

*

*

Mega169

 اميد وارم اين اطلاعات كوچك مفيد واقع شده و اندكي به آموختني هاي شما دوست عزيز افزوده شود.

 برگرفته از سايت :بايتس كلوپ

PLC

شرح کار PLC (Power Line Carrier)

در سیستمهای PLC اطلاعات ارسالی به صورت Single Side-Band (SSB) مدوله شده و در پهنای باند Khz 4 ارسال میگردد.بسته به نوع کاربرد پهنای باند Khz 4  به کانالهای فرعی تقسیم شده و در هر کانال ، اطلاعات مربوط به یک سیگنال گنجانیده میشود.

 

کاربردهای مختلف سیگنالهای PLC

 

1-  ارتباط تلفنی : در شبکه های مخابراتی شرکتهای برق منطقه ای که شامل تعدادی مرکز تلفن در پستهای کلیدی ومهم شبکه فشارقوی می باشد.برای ارتباط میان مراکز تلفنی عمدتاً از کانال PLC استفاده میشود. همچنین از این کانال برای ارتباط تلفنی میان مشترکین با مراکز تلفنی که عمدتاً پستهای فاقد مرکز تلفنی اند استفاده میشود.

2-  تلگراف و پست تصویری : در شبکه های فشارقوی میتوان جهت اعمال مدیریت عملیاتی مناسب از دورنویسها استفاده نمود. سرعت ارسال معمولاً بین 50الی 79 Bd بوده ، در پست تصویری بالاتر است.

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

4-  حفاظت از راه دور : حفاظت در مقابل اتصال کوتاه، بوسیله رفع آن با بی برق کردن خط معیوب توسط دستگاههای تشخیص اتصال کوتاه رله های حفاظتی امکان پذیر است. برای انجام اینکار و در اسرع وقت و در عین حال برای پیشگیری از قطع شدن سایر کلیدها و رله های مربوط به شبکه برقراری یک مسیر ارتباط علائم حفاظتی ما بین رله های حفاظتی ضروری است.

 

شرح عملکرد سیستم PLC

 

 

در این سیستم برای ارتباط دو طرفه میان دو پست A,B یک زوج فرستنده و گیرنده در هر کدام از پستها قرار می گیرد.و چون دستگاههای فرستنده و گیرنده PLC را نمی توان مستقیماً به خط فشار قوی وصل کرد.به همین خاطر به تجهیزات واسطه ای نیاز است تا هم سیگنال فرکانس بالای PLC را به خط کوپل نموده و هم مانع از اتصال مستقیم ولتاژ بالا به دستگاههای حساس PLC بشوند به همین خاطراز خازنهای کوپلاژ استفاده می شود.که با افزایش فرکانس به طور اتصال کوتا عمل می کنند و در فرکانسهای بالا به صورت اتصال باز در می آیند.معمولاً خازنهای کوپلاژ بین 2000pf تا 1000pf انتخاب می شوند.

در پستهای فشار قوی برای اندازه گیری ولتاژ و جریان خط از تقسیم کننده های ولتاژ خازنی به نام CVT استفاده می شود لذا از آنها می توان جهت خازن جدا کننده Ccoupl استفاده کرد.برای اینکه تلفات خط کم شود باید حداکثر توان فرستنده به خط کوپله شده و توان برگشتی به حداقل خود برسد.وسیله ای که جهت تطبیق امپدانس به کار می رود جعبه یا واحد تطبیق امپدانس نامیده می شود و با علامت اختصاری LMU (Line Matching Unit)   نشان داده می شود.

 

برای اینکه سیگنال ارسالی توسط PLC   به خطوط دیگر انتشار پیدا نکند باید با قرار دادن مداری بر سر راه نشتی مانع از راه یابی آن به مسیر ناخواسته شویم به عبارت دیگر در مقابل فرکانسهای بالای PLC مقاومت زیاد از خود نشان دهد. و در مقابل سیگنال فشارقوی 50 هرتز همانند یک اتصال کوتاه عمل کند با توجه به این دو خصوصیت عنوان شده به نظر می رسد استفاده از دو سلف سری با خط انتقال در پستهای A,B را حل می کند.زیرا امپدانس سلفی XL=2∏FL با فرکانس رابطه مستقیم دارد. که به آنها Line trap نیز گفته می شود.

 

اما استفاده از یک سلف سری با خط انتقال مطلوب نمی باشد. چون با خازنهاى معادل ترانسفورماتورهاى موجود درپست بصورت سرى قرار گرفته و چنانچه اندوکتانس L  و سوسپنانس خازنهاى معادل ترانسفورماتورهاى پست(C)  به گونه اى باشند که فرکانس رزونانس با تشدید مجموع سری این دو یعنی F=1/2∏√LC   معادل فرکانس کار دستگاه PLC شود. در این فرکانس مدار اتصال کوتاه بوده و در نتیجه نقطه سیگنال PLC به خط انتقال از دید سیگنال PLC زمین شده و تمام سیگنال از دست می رود. به خاطر رفع این عیب از یک مقاومت اهمی بالا با سلف سری شده است.

 

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

لازم به تذکر است که هزینه ساخت تله موج با افزایش Rmin بیشتر می شود.

منبع

 

میکرو کنترلر چیست؟

 

1-  معرفی میکروکنترلرها :

          به آی سی هایی که قابل برنامه ریزی می باشد و عملکرد آنها از قبل تعیین شده میکروکنترلرگویند میکرو کنترل ها دارای ورودی - خروجی و قدرت پردازش می باشد .

 

2-  بخشهای مختلف میکروکنترلر :

       میکروکنترلر ها از بخشهای زیر تشکیل شده اند

Cpu                                واحد پردازش

Alu                                 واحد محاسبات

I /O                                ورودی ها و خروجی ها

Ram                               حافظه اصلی میکرو

Rom                               حافظه ای که برنامه روی آن ذخیره می گردد

Timer                             برای کنترل زمان ها

          و . . .

 

3- خانواده های میکروکنترلر

         خانواده : Pic   -  AVR  -  8051  

 

4- یک میکروکنترلر چگونه برنامه ریزی میشود .

            میکرو کنترلر ها دارای کامپایلرهای خاصی می باشد که با زبان های Assembly basic, c می توان برای آنها برنامه نوشت سپس برنامه نوشته شده را توسط دستگاهی به نام   programmer که در این دستگاه  ای سی  قرار می گیرد و توسط یک کابل به یکی از در گاه های کامپیوتر وصل می شود برنامه نوشته شده روی آی سی  انتقال پیدا میکند و در Rom ذخیره می شود .

 

5- با میکرو کنترلر چه کارهایی می توان انجام داد .

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

 

6- امکانات میکرو کنترلرها :

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

 

7- شروع کار با میکرو کنترلر:

              برای شروع کار با میکرو کنترلر بهتر است که یک زبان برنامه نویسی مثل   c یا basic  را بیاموزید سپس یک برد programmer  تهیه کرده و برنامه خود را روی میکرو ارسال کنید سپس مدار خود را روی برد برد بسته و نتیجه را مشاهده کنید.   

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

 

8- مقایسه خانواده های مختلف میکرو وکنترلرها:

     خانواده 8051 :

           این خانواده از میکرو کنترولر ها جزو اولین نوع میکرو کنترولر ها یی بود که رایج شده و جزو پیشکسوتان مطرح میشود . معروف ترین کامپایلر برای این نوع میکرو keil یا franklin  می باشد میکرو های این خانواده به نوسان ساز نیاز مند هستند و درمقابل خانواده pic   یا AVR  از امکانات کمتری برخور دار می باشد معروف ترین آی سی ها این خانواده 89S51  یا 89C51  می باشد .

     خانواده AVR

           این خانواده از میکرو کنترلرها تمامی امکانات 8051 را دارا می باشد و امکاناتی چون ADC (مبدل آنالوگ به دیجیتال) – نوسان ساز داخلی و قدرت و سرعت بیشتر – EEPROM  (حافظه) از جمله مزایای این خانواده می باشد مهم ترین آی سی این خانواده Tiny  و Mega است.

     خانواده pic  :

           این خانواده از نظر امکانات مانند AVR میباشد و در کل صنعتی تر است .

 

9- مزایای میکرو کنترلر نسبت به مدار های منطقی :

    1- یک میکرو کنترلر را می توان طوری برنامه ریزی کرد که کار چندین گیت منطقی را انجام دهد.

    2- تعداد آی سی هایی که در مدار به کار میرود به حداقل میرسد .

    3- به راحتی می توان برنامه میکرو کنترلر را تغییر داد و تا هزاران بار میتوان روی میکرو  برنامه های جدید نوشت و یا پاک کرد .

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

منبع

 

تاریخچه ی میکرو پرسوسور و کاربرد

مقدمه:
تغییر سیستم‌های مکانیکی و برقی به سیستم‌های الکترونیکی در بیشتر تکنولوژی‌های عمده، سیستم‌های الکترونیکی جایگزین بخش‌های مکانیکی شده و از آن پیش افتاده‌اند. سیستم تلفن در اصل مجموعه‌ای از اجزای مکانیکی (یعنی سیستم شماره‌گیر) بود که در آن حرکت فیزیکی به علائم الکتریکی تبدیل می‌شد. با وجود این، امروزه تلفن تماماً الکترونیکی است ؛ امروزه چاپ الکترونیکی شده است. تلویزیون، کامپیوتر و بسیاری از ابزارهای دیگر نیز که در زندگی روزمره از آن استفاده می‌کنیم همین گونه‌اند. سیستم‌های الکترونیکی مسلماً یک سره بر تکنولوژی فکری متکی هستند زیرا محاسبات ریاضی و نوشتن نرم‌افزار و برنامه‌ها کارکرد آنها را ممکن می‌گرداند.

یکی از برجسته‌ترین تغییرات، کوچک شدن وسایلی است که هادی برق هستند یا تکانه‌های برقی را منتقل می‌کنند. وسایل اولیه مانند لامپ‌های خلاء که در رادیوهای قدیمی دیده می‌شود حدود 5 تا 10 سانتی‌متر ارتفاع داشتند. اختراع ترانزیستور تغییری شگرف را به دنبال داشت: توانایی تولید وسایل میکروالکترونیک با صدها کارکرد از جمله کنترل، تنظیم، هدایت و حافظه که میکروپرسسورها به اجرا درمی‌آورند. در آغاز هر تراشه 4 کیلو بایت حافظه داشت که بعدها به 8، 16، 32، 64 کیلو بایت افزایش یافت و امروزه سازندگان میکروپروسسور تراشه‌هایی تولید می‌کنند که ظرفیت ذخیره‌سازی آنها چندین مگابایت یا حتی گیگا (میلیارد) بایت است.
امروزه یک تراشه‌ی ریز سیلیکنی(میکروپروسسور) حاوی مدارهای الکترونیکی دارای صدها هزار ترانزیستور و همه‌ی اتصالات لازم و بهای آن فقط چند دلار است. مداربندی روی این تراشه می‌تواند خود میکروکامپیوتری باشد با ظرفیت پردازش ورودی / خروجی و حافظه‌ی دستیابی تصادفی و... .


اولین میکروپروسسور:

میکروپروسسور: پس از پیدایش الکترونیک دیجیتال و جنبه های جذاب و ساده طراحیهای دیجیتال و کاربردهای فراوان این نوآوری، با تکنولوژیهای SSI , MSI ، ادوات الکترونیک دیجیتال، مانند قطعات منطقی به بازار ارائه شد. شرکت تگزاس اولین میکروپروسسور 4 بیتی را با فن آوری 2SI طراحی و عرضه نمود که بعنوان بخش اصلی ماشین حساب مورد استفاده قرار گرفت و این گام اول در پیدایش و ظهور میکروپروسسورها بود.

BIOS
وکاربرد میکروپرسسوردر کامپیوتر:


یکى از متداول ترین کاربردهاى Flash memory در سیستم ابتدایى ورودى/ خروجى (basic input/output system) کامپیوتر است که معمولاً به BIOS شناخته مى شود. وظیفه BIOS که تقریباً روى هر کامپیوترى وجود دارد،آن است که مطمئن شود تمام قطعات و اجزاى افزارى یک کامپیوتر در کنار یکدیگر به درستى کار مى کنند . هر کامپیوترى در قلب خود براى پردازش درست اطلاعات شامل یک میکروپروسسور است . میکروپروسسور قسمت سخت افزارى کار است. براى انجام درست کار ، به نرم افزار نیز احتیاج است. هر کاربرى با دو نوع نرم افزار آشنا است:سیستم عامل و نرم افزارهاى کاربردى. BIOS نوع سوم نرم افزارى است که کامپیوتر شما براى
اجراى درست به آن نیازمند است.
BIOS
چه کارى انجام مى دهد: نرم افزار BIOS مجموعه اى از وظایف مختلف را بر عهده دارد، ولى مهم ترین آنها اجراى سیستم عامل است. وقتى یک کامپیوتر روشن مى شود، میکروپروسسور سعى مى کند اولین دستورات را اجرا کند. ولى نکته در این است که این دستورات باید از جایى به میکروپروسسور اعلام شود. گرچه سیستم عامل روى هارد وجود دارد، ولى میکروپروسسور نمى داند اطلاعات در آنجاست. BIOS دستورات اولیه را براى این دسترسى به میکروپروسسور اعلام مى کند.

کاربرد میکروپروسسوردرانواع کارتهای هوشمند :

کارتهای هوشمند ((DRAC|TRAMSکارتهایی هستند که از یک قسمت پلاستیکی تشکیل گردیده اند که در داخل آنها یک چیپ میکروپروسسور ( PIHCROSSECORPORCIM) قرار دارد و اطلاعات لازم روی این چیپها قرار می گیرند. میزان و تنوع اطلاعاتی که در کارت ذخیره می گردد، به توانایی چیپ داخل آن بستگی دارد.
انواع مختلف کارتهای هوشمند که امروزه استفاده می شود، کارتهای تماسی ، بدون تماسی و کارتهای ترکیبی هستند.
کارتهای هوشمند تماسی بایستی در داخل یک کارت خوان قرار داده شوند. این کارتها یک محل تماس روی صفحه دارند که تماسهای الکترونیکی را برای خواندن ونوشتن روی چیپ میکروپروسسور )زمانی که در داخل کارت خوان قرار دارد(، فراهم می آورد. نمونه این کارتها در زندگی روزمره بسیار به چشم می خورد.
کارتهای بدون تماس ، یک آنتن سیم پیچی درون خود دارا هستند که همانند چیپ میکروپروسسور درداخل کارت ، گنجانده شده است . این آنتن درونی اجازه انجام ارتباطات و ردوبدل کردن اطلاعات را فراهم می آورد. برای چنین ارتباطی ، بایستی علاوه بر اینکه زمان ارتباطکاهش یابد، راحتی نیز افزایش پیدا کند..
کارتهای ترکیبی ، به عنوان هم کارتهای تماسی و هم کارتهای بدون تماس عمل می کنند و در حقیقت داخل این نوع کارتها هم چیپ الکترونیکی و هم آنتن وجود دارد وچنانچه کارت خوان وجود داشته باشد از کارت خوان می توان استفاده کرد و چنانچه وجود نداشته باشد، از آنتن کارت می توان ارتباط را برقرار کرد.
شاید این سوال پیش آید که چرا از کارتهای هوشمند )کارتهای حافظه دار( به جای کارتهای مغناطیسی استفاده می شود؟
پاسخ این است که ذخیره سازی اطلاعات در کارتهای هوشمند و میکروپروسسور دارهزار مرتبه بیشتر ازکارتهای مغناطیسی است . مزیت دیگر اینکه این کارتها از سرعت ذخیره سازی بالا ومکانیسم های ایمنی قویتری برخوردارند.


میکروپروسسور درکنترل فرکانس :


520B
یک دستگاه فرکانس متوسط است که بوسیله میکروپروسسور کنترل می شود، دارای نمایشگر LCD یا (Liquid Crystal Display و دو خروجی می باشد.
کنترل های تاچ سوییچ و نمایشگر LCD این امکان را به استفاده کننده می دهد که با سرعت و دقت پارامترها را انتخاب کرده و بر روی نمایشگر LCD به وضوح مشاهده نماید. تراپیست به سرعت با کنترل ها آشنا شده و از سهولت استفاده در درمانهای کلینیکی لذت خواهد برد.


خصوصیات منحصر به فرد :

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

میکرو پروسسور در دستگاههای کارت خوان :
این سیستم با استفاده از کارت-بلیت هوشمند بدون تماس قادر به ثبت اعتبار مالى و دیگر اطلاعات دارنده کارت مى‌باشد. و موارد استفاده ی آنها در این مکانهایی است .
·
مترو،· اتوبوسرانى،· عوارض اتوبان
·
تعاونى فرهنگیان،· تسهیلات رفاهى و بُن کارمندى
·
مراکز تفریحى و باشگاههاى ورزشى
·
شناسنامه پزشکى بیمار
·
سلف سرویس دانشگاهها و ادارات
·
پارکینگها
·
کارت تلفن،· پارکومتر،· جایگاههاى سوختگیرى

مشخصات سخت‌افزاری دستگاه:


·
میکروپروسسور: 16 بیت
·
پردازنده رمزنگار کمکى
·
ارتقاء خودکار نرم‌· افزارى با فلاش بایوس (منحصر بفرد در ایران)
·
حافظه: 512Kb اصلى و 512Kb براى Bios
·
بازسازى هوشمند اطلاعات کارت
·
سازگارى ساختار کارت با استاندارد بین‌· المللى
·
ذخیره‌· سازى دوگانه اطلاعات براى بازیافت اضطرارى
·
رابط: RS232, RS422 و مودم (RS485 بنا به سفارش)
·
پورت چاپگر
·
مجهز به UPS داخلى جهت کار هنگام قطع برق
·
باترى پشتیبان براى نگهدارى اطلاعات
· 2
رله براى کنترل چراغ سبز و قرمز (و آژیر)
·
نمایشگر با کیفیت‌· FSTN داراى لامپ‌· پس‌· زمینه‌·
·
امکانات جانبی: اتصال به راه‌· بند،· نمایشگر بزرگ بیرونى،· صفحه‌· کلید بیرونى
مشخصات کارت:
·
چیپ MIFARE
·
ابعاد: ISO 7816
·
حافظه: 1024 بایت(*8 BIT) EEPROM
·
عمر خدماتى چیپ: 100000 بار نوشتن،· 10 سال حفظ اطلاعات

microtak

http://www.microom.co.sr/

http://www.roboedukia.blogsky.com 

 

 

Microcontroller 8051 Application Commands

 

Command

Description

Example

1

MOV

Move data

MOV destination, source

2

SETB

Set direct bit from BIT space

SETB bit     SETB Bit Operand

3

CLR

Clear direct bit from BIT space

CLR bit     CLEAR Operand

4

JB

JUMP if Bit is set

JB bit,label  Jump if dir bit (from BIT space) is set

5

JNB

JUMP if Bit is Not set

JNB bit,label   Jump if dir bit (from BIT space) is not set

6

SJMP

Short JUMP

SJMP LABEL Short jump (relative address)

7

LJMP

Long JUMP

LJMP LABEL   (16-bit destination address. )

8

DJNZ

DECREMENT Operand and Jump

if Not Zero

DJNZ bit,label   Decrement direct byte and jump if not zero

 

9

RET

RETURN from Subroutine

RET Return from subroutine

10

ACALL

Absolute Subroutine CALL

ACALL LABEL   (11-bit destination address )

11

LCALL

Long Subroutine CALL

LCALL label (16-bit destination address.  )

12

INC

INCREMENT Operand with a

constant

INC byte  Increment register

 

13

DEC

DECREMENT Operand with a

constant

DEC byte  Decrement register

14

CJNZ

COMPARE destination, source

and jump if not equal

CJNZ byte,#data,label

Compare  data to reg and jump if notequal

15

DA

DECIMAL ADJUST Accumulator

for Addition

DA A  Decimal adjust accumulator

 

16

RL

ROTATE Accumulator Left

RL A  Rotate accumulator left

 

17

RR

ROTATE Accumulator Right

RR A Rotate accumulator right

18

CPL

COMPLEMENT Operand

CPL bit [A]  (Complement direct bit from BIT space

) Complement accumulator

 

19

END

The END directive signals the end of the assembly module

 

The END directive is required in every assembly source file.

 

 

پروگرامر چیست؟ چگونه یک پروگرامر PIC بسازیم؟

پروگرامر چیست؟ چگونه یک پروگرامر PIC بسازیم؟

 

 

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

 

این برنامه ها بسته به نوع میکروکنترلری که استفاده می کنیم می تواند در کامپایلرهای مختلفی نوشته شوند و آن کامپایلر برنامه را پس از رفع عیب، کامپایل یا اصطلاحاً به زبان ماشین  ترجمه می نماید و یک فایل از برنامه که به زبان ماشین یا همان صفر و یک هاست به ما تحویل می دهد:

 

 

 

 

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

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

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

عکس نمونه هایی از پروگرامرها:

 

 

 

 

 

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

برای مثال در زیر شماتیک مدار ساده ای که می تواند برای پروگرام کردن میکروکنترلرهای 18 پین از نوع PIC استفاده شود را آورده ایم:

 

 

 

 

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

سپس برای پروگرام کردن بایستی از نرم افزار: ICPROG استفاده کنیم و کد زبان ماشین را در آن باز نموده و میکروکنترلر را پروگرام نماییم. یادآوری می کنیم که برای نوشتن برنامه های میکروکنترلر های PIC  می توان از زبان برنامه نویسی بیسیک و کامپایلر PICBasic استفاده نمود:

 

 

 

 

نکته آخر اینکه در روش بالا بایستی از سیستم عامل ویندوز 98 استفاده کرد زیرا سیستم عامل ویندوز XP برای امنیت کامپیوترها، به طور نرمال پورت های کاپیوتر، از جمله پورت سریال را که ما استفاده کرده ایم، بسته نگه می دارد و نرم افزار ICPROG  قادر به باز کردن آن نمی باشد. اما در سیستم ویندوز 98 این گونه نیست.

به خاطر داشته باشیم که  از رگولاتور ولتاژ 7805  برای تغذیه مدار با یک ولتاژ ثابت 5 ولت استفاده می شود.

و یک شماتیک از پروگرامر میکروکنترلر های AVR :

 

منبع: /www.nurc.ir

در صورتی که در مدار بالا دچار اشکال شدید می توانید به سایت منبع(www.nurs.ir) مراجعه نمایید

آموزش  PIC Basic Pro

این مقاله را از اینجا دانلود کنید

 پسورد      ra-121

انواع اسیلاتور های میکرو کنترلر PIC

 

دانلود

کنترل کننده های قابل برنامه ریزی

کنترل کننده های قابل برنامه ریزی

Programmable logic   Controller (PLC)                                                      

نياز به کنترل کننده هایی با هزینه کمترکاربرد متنوع تر و سهولت استفاده بیشتر، منجر به توسعه کنترل کننده های قابل برنامه ریزی برمبنای CPU و حافظه شد و از آنان به طور گسترده ای در کنترل فرآیند ها و ماشین آلات استفاده گردید.PLC  ها در آغاز به عنوان جانشینی برای سیستم های منطقی رله ای و تایمری غیر قابل تغییر توسط اپراتورطراحی شدند تا به جای تابلوهای کنترل متداول قدیمی استفاده شوند. PLC ها توانستند سهولت استفاده و قابلیت انعطاف پذیری زیادی را به سیستم های کنترلی ارزانی دارند. این کار به وسیله برنامه ریزی آن ها و اجرای دستورالعمل های منطقی ساده که اغلب به شکل دیاگرام نردبانی است، صورت می گیرد. PLC ها دارای یک سری توابع درونی از قبیل: تایمر ها و شمارنده ها شیف رجیستر ها می باشند که امکان کنترل مناسب را، حتی با استفاده از کوچک ترین PLC نیز، فراهم می آورند.یک PLC با خواندن سیگنال های ورودی، دریافتی از  پروسه مورد نظر، کار خود را شروع کرده و سپس دستورالعمل های منطقی (که قبلاً برنامه ریزی شده و در حافظه جای گرفته است) را بر روی این سیگنال های ورودی اعمال می کند و در پایان، سیگنال های خروجی مطلوب را برای راه اندازی تجهیزات و ماشین آلات پروسه تولید می نماید. تجهیزات استانداردی درون PLC ها تعبیه شده اند که به آن ها اجازه می دهد مستقیماً و بدون نیاز به واسطه های مداری یا رله ها، به المان خروجی یا محرک (actuator) و مبدل های ورودی (مانند پمپ ها و سوپاپ ها) متصل شوند.

با استفاده از PLCها ، اصلاح و تغییر یک سیستم کنترل بدون نیاز به تغییر محل اتصالات سیم ها ممکن شده است و برای هر گونه تغییر، تنها کافی است که برنامه کنترل با استفاده از یک کی پد یا ترمینال VDU (نمايشگر ویدیویی) تغییر یابد. همچنین PLCها نسبت به سیستم های قدیمی، برای نصب و راه اندازی به زمان کوتاهتری نیازمندند. PLC ها  از لحاظ ساختمان داخلی شبیه کامپیوترهای معمولی می باشند، ولی برخی ویژگی های خاص، آن ها را ابزاری مناسب جهت انجام کنترل صنعتی نموده است. برخی از این ویژگی ها عبارتند از:

- تجهیزات حفاظت کننده PLCها از نویز و شرایط نامساعد محیطی

ساختار مدولار PLCها که به سادگی امکان تعویض یا افزودن واحد یا واحدهایی را به PLC می دهد (مثلاً واحد ورودی /خروجی)

- اتصالات استاندارد ورودی / خروجی و نیز سطوح سیگنال استاندارد

- زبان برنامه  نویسی قابل درک و آسان (مانند دیاگرام نردبانی یا نمودار وظایف)

- سهولت در برنامه ریزی و برنامه نویسی مجدد در حین کارکرد فرآیند.

برگرفته از :  http://www.ra-121.blogfa.com/