برق. قدرت. کنترل. الکترونیک. مخابرات. تاسیسات.

دایره المعارف تاسیسات برق (اطلاعات عمومی برق)

این مقاله اطلاعات كلی در مورد ساختار داخلی و انواع مختلف میكروهای AVR و همچنین مزایای آنها نسبت به نمونه های قبلی 8051 پرداخته است.

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

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

                                  

 

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

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

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

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

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

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

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

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

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

دارای حالات زیادی برای ترفیع دادن یا 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 های مدل tiny:

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

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

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

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

AVR های مدل Mega:

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

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

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

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

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

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

واسط 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 :

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

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

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

 

 

 

 

 

 

 

آموزش میکروavrبه زبان ساده

توی چند وبلاگ این مطلب رو دیدم از نویسنده اش تشکّر می کنم و  توصیه می کنم شما هم این خود آموز زیبا را مطالعه کنید.

قسمت اول اشنایی با میكروكنترلر AVR

سلام . برای اونایی كه تا حالا با میكرو كار نكردن كمی مشكله كه بعضی از مفاهیم رو یاد بگیرن برای همین من اشنایی مقدماتی با avr به زبان ساده در اوردم .راستش دیگه از این ساده تر به ذهنم نرسید . دوستانی كه تمایل به یادگیری avr دارن باید بدونن كه باید با میانی دیجیتال اشنایی داشته باشند حداقل اینكه با گیت های منطقی اشنایی داشته باشین برای اشنایی با دیجیتال كتاب مبانی دیجیتال هنرستان یا كتاب طراحی دیجیتال نوشته موریس مانو خوبه. نوشته زیر مقدمه ای بر اشنایی با میكرو هست كه گفتگوی بین دو دوست رو نشون میده كه دارن درباره میكرو avr صحبت می كنن امیدوارم كه مفید باشه.

1-سلام خوبی
2-سلام خوبم تو خوبی
1-اره خوبم . چكار می كنی كم پیدایی
2-اره یك چند وقتیه دارم پروژه دانشگاه رو انجام می دم
1-چی هست این پروژت
2-هیچی ساخت یك دور سنج موتور با میكروكنترلرAVR
1-چی میكروكنترلرavr ؟؟؟؟ میكرو كنترلر دیگه چیه
2-میكروكنترلر رو اگه بخام به زبون ساده بهت بگم یك كنترل كننده هستش كه تقریبا هر چی ازش بخای برایت انجام میده
1-پس بگو یك رباته
2-نه منظورم هر كاری نبود ببین مثل یك كامپیوتر كه بهش فرمان میدی اون هم انجام میده البته از نظر ظاهری كه نگاهش كنی یك ایسی 40 پایه هستش
1-چی؟؟؟؟؟ مگه میشه یك كامپیوتر به اندازه یك ایسی چهل پایه باشه
2-نه خود كامپیوتر منظورم از كامپیوتر اینه كه بهش فرمان می دی اونم انجام میده
1-بازم نفهمیدم بیشتر توضیح بده اصلا به چه دردی میخوره
2-بزار بیشتر برات توضیح بدم این یك ایسی هستش كه ما به وسیله كامپیوتر برنامه نویسی می كنیم بعد برنامه رو می ریزیم توی میكرو . كاربردش هم خیلی زیاده مثلا باهاش می تونی ساعت . فركانس متر. قفل رمز درست كنی
1-یكم بیشتر درباه خود میكرو توضیح بده
2-این میكرویی كه بهت میگم یك خانواده هستش كه انواع مختلفی داره كه تشكیل شده از سه گروه 1-tiny 2-90s 3-mega
1-خوب فرق این سه گروه باهم چیه مثلا tiny با 90s یا با mega چه فرقی دارن
2-فرفشون توی امكاناتی كه دارن هستش و همین فرق باعث شده كه قیمت هاشونم باهم فرق كنه
1-منظورت از امكاناتشون چیه
2-ببین بزار بیشتر برات درباره خود میكرو توضیح بدم . از امكاناتی كه این میكرو ها دارن میشه به تایمر – كانتر- تولید موج pwm – حافظه ای كه اطلاعات رو توی خودش حفظ كنه – سرعت بالای انجام دستورات- I\O (یا همون ورودی خروجی خدمون) – مبدل انالوگ به دیجیتال adc – مقایسه كننده انالوگ و... . حالا كه با امكاناتش اشنا شدی همینو بهت بگم كه بعضی از میكرو ها توی امكاناتشون و توی مقدار حافضه با هم فرق دارن برای همین قیمتهاشونم باهم فرق میكنه
1-خوب حالا كدوم از همه امكاناتش بیشتره
2-نوع mega از همه امكاناتش بیشتر و از نظر مقدار حافضه هم از همه حافضه اش بیشتره بعد نوع 90s و در نهایت نوع tiny
1-این همه امكانات همه توی یك ایسی پس حتما باید یك صد هزار تومنی قیمتش باشه
2-نه اگه بهت بگم كه بهترین نوع این میكرو كه نوع mega هستش رو توی خود بازار ایران با سه هزار تومن می تونی بخری باورت نمی شه
1-چی فط سه هزار تومن اون هم بهترین نوعش اخه چطور ممكنه این همه امكانات فقط سه هزارتومن اون هم بهترین نوعش!!!!!!!!!!!!!!!!!!!!!!
2-خوب دیگه تكنولوژیه دیگه
1-راستی گفتی یكی از امكاناتش حافضه هستش بگو ببینم اصلا این حافضه به چه دردی می خوره؟؟
2-یادت میاد كه بهت گفته بودم كه باید به این میكرو فرمان بدیم
1-اره
2-خوب این فرمان ها رو ما با یك نرم افزار مینویسیم
1-خوب چه ربطی داره به سوال من
2-یكم صبر داشته باش . این برنامه ای كه مانوشتیم توی این حالفضه قرار می گیره
1-بیشتر توضیح بده
2-حافضه میكرو avr دو تا هستش یكی حافضه بلند مدت كه بهش می گن eeprom و دومی هستش حافضه كوتاه مدت كه بهش می گن flash
1-خوب فرقشون باهم چیه
2-فرقشون در اینه كه در حافظه كوتاه مدت با قطع تغذیه (ولتاژ) میكرو اطلاعات از بین می ره ولی در حافضه بلند مدت با قطع شدن تغذیه میكرو اطلاعات از بین نمیره
1-اها فهمیدم . خوب یادم میاد بهم گفتی كه هر كاری ازش بخایم برامون انجام میده چطوری باید بهش بگیم كه فلان كار رو انجام بده ؟
2-خوب بزار به صورت كلی بهت بگم كه گیج نشی . ما برای كارهایی كه از این میكرو می خایم باید بهش برنامه بدیم این برنامه توسط نرم افزار نوشته می شه
1-چه نرم افزاری؟
2-نرم افزارای مختلفی هستش كه باهاش برای میكرو برنامه می نویسن برنامه هایی رو كه من می شناسم bascom –codvision و ... هستش كه من با bascom كار می كنم. خوب حالا بزار ادامه مطلب رو بگم . برنامه ای رو كه ما می نویسیم زبان های مختلفی داره
1-منظورت انگلیسی یا فارسی هستش
2-نه بابا منظورم زبان های برنامه نویسی هستش كه عبارتند از baisic-c –اسمبلی
1-یعنی باید همه ای زبان های برنامه نویسی رو بلد باشیم
2-نه بابا ناراحت نباش من خودم وقتی كه می خاستم میكروكنترلر یاد بگیرم هیچ كدوم از این زبان ها رو یاد نداشتم . چقدر سوال می كنی منو از موضوع پرت كردی . هر كدوم از این زبان ها در یك نرم افزار خاص خودش نوشته می شه مثلا اگه دوست داشتی برنامه رو با زبان بیسیك بنویسی باید با نرم افزار baisic كار كنی اگه خاستی با زبان c برنامه بنویسی باید با نرم افزار codvision برنامه بنویسی . خوب حالا وقتی كه برنامه رو نوشتی باید برنامه رو بریزی توی میكرو . حتما می خای بپرسی چطوری برنامه رو میریزن توی میكرو خوب بهت می گم با یك پروگرامر
1-چی پروگرامر دیگه چیه؟
2-نترس پروگرامر وسیله ای هستش كه میكرو رو روی اون قرار میدی ویك سر دیگش وصل می شه به پرینتر كامپیوتر بعد كه به كامپیوتر نصب شد از طریق نرم افزار فرمان ارسال برنامه به داخل میكرو رو میدی مثلا در نرم افزار بیسكام كه بعدا مفصلا بهت توضیح میدم با زدن كلید F4 برنامه ریخته می شه داخل میكرو
1-ببین من نفهمیدم نقش این پروگرامر این وسط چیه
2-پروگرامر واسطه ای هست میان میكرو و كامپیوتر . خوب اخه مرد حسابی برنامه ای كه تو برای میكرو نوشتی باید بره توی میكرو یا نه . پس از روی هوا هم كه نمی شه برنامه رو فرستاد پس میان یك پروگرامر وصل می كنند به كامپیوتر و میكرو رو روی این پروگرامر قرار میدن بعد از توی كامپیوتر فرمان ارسال برنامه رو می دن
1-ببین درست فهمیدم یا نه پروگرامر تنها نقشی كه داره اینه كه برنامه ای كه ما توی كامپیوتر نوشیتم رو بریزه توی میكروكنترلر
2-افرین
1-بازم سوال دارم
2-بگو
1-این امكاناتی رو كه گفتی میكرو داره چطوری می تونیم ازش استفاده كنیم
2-این كار رو موقع برنامه نویسی بهش می گیم . مثلا می خایم از كانتر میكرو ( كانتر به معنی شمارنده ) استفاده كنیم . باید در اول برنامه بنویسیم كه از كانتر می خا هیم استفاده كنیم . به این كار در اصتلاح می گویند config . البته بعدا درباره برناه نویسیش – نحوه كار با نرم افزار – اتصال سخت افزاری میكرو برای كامل توضیح می دم
1-یك مثال می تونی بزنی كه كاربرد این میكرو و امكاناتش چیه؟؟؟
2-اره ولی قول بده كه نترسی كه برنامه شو بنویسم چون كه بعدا درباره كل دستورات برنامه نویسی و نحوه كار با نرم افزار برات توضیح می دم
1-باشه
2-خوب گفتی یك مثال بزن منم یم مثال خیلی ساده میزنم . فرض كن كه با دو تا میكروسوییچ می خایم یك led رو روشن خاموش كنیم . برای این كار اول باید برنامه توسط نرم افزار نوشته بشه كه من در اینجا از زبان بیسیك برای نوشتن برنامه استفاده میكنم :
کد:

$regfile = "8515DEF.DAT"
$crystal = 8000000
Config Porta = Output
Config Pinb.0 = Input
Config Pinb.1 = Input
Config Debounce = 25
Do
Debounce Pinb.0 , 1 , Sett , Sub
Debounce Pinb.0 , 1 , Resett , Sub
Loop
End

Sett:
Set Porta.0
Return
Resett:
Reset Porta.0
Return


1-خوب درباره اینا توضیح بده
2-صبر داشته باش اسیاب به نوبت گفتم كه بعدا درباره تك تك دستورات و نحوه كار با نرم افزار برات توضیح می دم
1-قول می دی
2-قول می دم كه تك تك دستورات رو با مثال زباد برات توضیح بدم
1-خوب حالا من چكار كنم
2-فعلا برو نرم افزار بیسكام (bascom) رو نصب كن .
1- اقا این avr چی بوده ما نمی دونستیما
2- اره تازه كجاشودیدی بزار یكم راه بیفتی اونوقت می فهمی چی بوده
1- یادم می یاد بهم قول داده بودی كه بهم میكرو یاد بدی
2- حتما به روی چشم . خوب حالا قرار بود از كجا شروع كنیم
1- یك لحظه وایستا اول به چندتا از سوالایی كه برام پیش اومده جواب بده بعد شروع كن به یاد دادن
2- در خدمتم هر چی سوال داری بگو كه منو یاد اون اولایی كه می خاستم میكرو یاد بگیرم می ندازی
1- سوال اول اینكه اصلا ما چرا از میكروكنترلر استفاده می كنیم اصلا چه مزیتی داره و كجاها ازش استفاده میشه؟
2- خوب . همونطور كه از اسمش پیداست میكرو كنترلر یعنی یك كنترل كننده . این كنترل كننده می تونه هر پدیده ای رو كنترل كنه فقط كافیه كه بهش برنامه بدی ( تكنولوژی دیگه) كنترل دقیق پدیده هایی همچون دما. فشار. نور. فاصله. و... . و كاربرد ان در بیشتر زمینه های رباتیك . ماشین های هوشمند و صنعت هستش
1- مثل plc ؟؟؟
2- بله با این تفاوت كه میكرو كنترلر از نظر حجم و قیمت زمین تا اسمان با plc فرق می كند مثلا قیمت یك plc حدود هفتاد هزارتومنه اون هم با امكانات حداقل و ابعاد زیاد ولی میكروكنترلر با همه امكانات با قیمت 3000 تومان كه ابعاد بسیار كمی هم داره در بازار ایران به وفور پیدا میشه . البته این تفاوت هیچ وقت از ارزش plc كم نخواهد كرد زیرا plc فقط در صنعت كاربرد دارد و یك المان صنعتی می باشد نسبت به میكروكنترلر بیشتر در صنعت استفاده می شه.
1- خوب یك سوال دیگه این میكروكنترلری كه میگی سرعت اجرای فرمان هایی كه باید اجرا كنه چقدر هستش
2- بستگی به فركانس كاری میكرو داره . معمولا سرعت انجام دستوراللعمل هایی كه انجام می ده بین 8 تا 16 میلیون دستور العمل در ثانیه هستش
1- چی درست شندیم 8 تا 16 میلیون فرمان اونم فقط توی یك ثانیه ؟؟؟
2- اره درست شنیدی
1- خوب این 8 تا 16 میلیون فرمان یا به قول خودت دستورالعمل سرعتش به چی بستگی داره
2- مستفیما به فركانش كاری میكرو بستگی داره
1- اخرین سوال بعد برو سراغ ادامه مطالب اموزشی
2- در خدمتم بگو
1- این امكاناتی كه گفتی بعضی از میكرو ها دارن بعضی ها هم ندارن باید از كجا متوجه بشیم خودت حتما همه رو حفظ كردی
2- ( با خنده) نه عزیز این میكرو ها هر كدومشون دارای یك دیتا شیت هستند كه اطلاعاتی درباره میكرویی كه می خای باهاش كار كنی بهت میده . اطلاعاتی از قبیل . ولتاز كاری . فركانس كاری . امكانات میكرو و...
1- ok حالا برو سر اموزش
2- خواهش می كنم به روی چشم . بزار یك سر فصل خیلی كلی برات بگم كه چه چیزایی رو باید بهت بگم 1- اول باید با نرم افزار bascom اشنا بشی 2- و در اخر باید دستورات برنامه نویسی رو یاد بگیری

خوب اول می ریم سر نرم افزار bascom كه خیلی ساده هستش . منم خیلی كلی برات نرم افزارو توضیح می دم بقیشو خودت یكم سیخ بزنی یاد می گیری
1-
باشه هر طور كه صلاح می دونی
2-
اول بزار در باره این نرم افزار بیسكام (bascom) برات بگم . خوب من قبلا بهت گفتم كارهایی رو كه ما از یك میكرو می خایم باید به صورت برنامه بهش بدیم . خوب حالا این برنامه رو باید با یك نرم افزاری نوشته بشه یا نه
1-
بله
2-
خوب این نرم افزار همین بود كه بهت گفتم . ما به وسیله این نرم افزار خواسته هایی كه از یك میكرو AVR داریم را به صورت برنامه نویسی اجرا می كنیم. خوب بهتره كه زیاد طولش ندم و مستقیم برم سر نرم افزار. اول بزار یك مقدار از منو های كاری نرم bascom1.11.7.4 برات توضیح بدم
File : اول روی گزینه file كلیل می كنی بعدش روی NEW كلیك می كنی . یك صفحه سفید باز میشه . این صفحه محیط برنامه نویسی هستش
منوی EDIT كه چیز مهمی نداره
PROGRAM : با كلیك كردن روی این منو به اولین گزینه می رسیم كه نوشته COMPILE . حتما با خودت می گی این COMPILE به چه دردی می خوره خوب الان من بهت می گم . گفتیم كه ما در محیط برنامه نویسی برنامه مان را می نویسیم خوب ما بالخره باید بدانیم كه این برنامه ای كه نوشتیم دارای خطای نوشتاری هست یا نه خوب پس حالا فهمیدی به چه دردی می خوره .
1-
نگفتی چطوری از گزینه COMPILE‌ استفاده كنیم ؟؟
2-
شما بعد ای كه برنامه رو نوشتی باید از منوی PROGRAM گزینه COMPILE رو انتخاب كنی سپس به طور اتومات برنامه شما چك می شه اگه خطایی بود زیر نرم افزار می نویسه اگه نبود كه هیچی در ضمن شما این كار رو می تونی با كلید میانبر F7 هم انجام بدی
SIMULATE : این گزینه یك شبیه ساز هستش و برنامه ای رو كه شما نوشتی رو برات شبیه سازی می كنه می كنه كه من هیچ ازش خوشم نمی یاد چون دارای خطا هستش و بهتره كم ازش استفاده كنی . این كار رو می تونی با كلید میانبر F2 انجام بدی
SEND TO CHIP : شما بعد از این كه برنامه رو توی محیط برنامه نویسی نوشتی و بعدش هم COMPILE كردی نیاز داری كه برنامه رو بریزی داخلی میكرو این كار رو با كلیك روی گزینه SEND TO CHIP باید انجام بدی كه خودش اتومات برنامه رو میریزه توی میكروكنترلر . این كار رو بازدن كلید F4 هم می تونی انجام بدی


منو TOOLS : این منو باشه بعدها برات توضیح میدم چون فعلا باهاش سروكار نداری

منوی OPTIONS: با كلیك روی این منو اولین گزینه ای كه به چشم می خوره COMPILER هستش كه مهمه بقیه هم باهاش سروكار نداشتم پس فكروتو مشغول بقیش نكن حرفه ای كه شدی شاید بقیش برات كاربرد داشته باشه . خوب حالا این COMPILER رو كه روش كلیك می كنی پنج گزینه دیگه ضاهر میشه . اولی نوشته CHIP : به معنی انتخاب میكرو هستش شما میكرویی رو كه می خای ازش استفاده كنی رو توی ان قسمت انتخاب می كنی . گزینه بعدی OUTPUT هستش كه باهاش كاری نداریم .گزینه بعدی COMMUNCIATION هستش وقتی روی این گزینه كلیك می كنی یك پنجره باز می شه شما باید در قسمت FERQUENCY مقدار فركانس كاری میكروAVR رو بر حسب هرتز اینجا وارد كنی
1-
یك سوال از كجا بفهمم كه فركانس كاری میكرویی كه ازش می خام استفاده كنم چنده ؟؟
2-
با خواندن دیتا شیت یا همان كاتالوگ خود مكرو كنترلر . گزینه بعدی 12C هستش كه با اونم كاری نداریم . گزینه بعد LCD هستش
1-
حتما باید این گزینه رو هم بی خیال شیم
2-
برعكس گزینه LCD گزینه مهمی هستش . تو در این قسمت باید مشخص كنی كه LCD باید به كدوم یكی از پایه های میكروكنترلر وصل بشه و اندازه LCD رو هم می تونی توی این قسمت مشخص كنی
1-
خوب بیشتر توضیح بده در باره این گزینه
2-
این گزینه باشه وعتی كه LCD رو بهت توضیح دادم اونوقت این گزینه رو هم بهت یاد میدم
1-
این LCD خیلی مشكله ؟؟
2-
نه اتفاقا بسیار اسون و كار كردن باهاش بسیار لذت بخشه. راستی یك گزینه دیگه توی منویTOOLS هستش به نام PROGRAMMER . كه مال اتخاب نوع پروگرامر هستش
این هم از قسمت های مهم نرم افزار BSCOM
اگه سوالی هست بگو
1-
ما چرا باید از گزینه COMPILE استفاده كنیم
2-
برای این كه ببینیم برنامه ای رو كه نوشتیم از لحاظ نوشتاری (لغت) مشكلی داره یا نه . اگه بعد از نوشتن برنامه COMPILE نكنی نرم افزار اجازه ریخت برنامه روی میكروكنترلر رو نمیده
1-
اها گرفتم چی می گی
2-
خوب حالا بریم سر اصل مطب كه اشنایی با برنامه نویسی هستش كه مهمترین بخشه پس خوب گوش كن
1-
ای به چشم
2-
پس بزار اول یك مقدمه ای بگم بعد . ببین برنامه ای رو كه شما می خای برای میكروكنترلر توی محیط برنامه نویسی نرم افزار بنویسی به زبان های مختلف نوشته می شه و هر زبان برنامه نویسی نرم افزار مخصوص خودشو داره مثلا برای نوشتن برنامه به زبان بیسیك از نرم افزار BASCOM . برای نوشتن با زبان C از نرم افزار CODVISION استفاده می كنیم . كه من بیسیك رو دوست دارم وبهت یاد می دم . چون زبان برنامه نویسی بسیار ساده ای هستش . خوب دیگه وقتشه بریم سر دستورات برنامه نویسی.
دستور $REGFILE : اولین حركتی كه باید در محیط برنامه نویسی انجام بدی اینه كه میكروكنترلری رو كه می خای ازش استفاده كنی رو باید در محیط برنامه نویسی ذكر كنی مثلا تو یك میكرو كنترلر ATMEGA16 خریدی پس باید در محیط برنامه نویسی اینطور میكرو رو معرفی كنی کد:

$REGFILE = "M16DEF.DAT" برای ATMEGA16
$REGFILE = "8535DEF.DAT" برای AT90S8535
$REGFILE="AT12DEF.DAT" برای ATTINY12

یك راه دیگه هم هست كه میكرو رو از داخل تنظیمات خود نرم افزار معرفی می كنی
1-
چطوری . یعنی دیگه نمی خاد دستور $REGFILE رو بنویسیم
2-
نه لازم نیست . برای این كار به منوی OPTIONS نرم افزار مراجعه می كنی سپس گزینه COMPILR و بعد گزینه CHIP رو كلیك می كنی یك پنجره باز می شه كه اول صفحه نوشته CHIP . كه جلوش یك كادر هستش كه میكرو رو اونجا انتخاب می كنی سپس OK می كنی
1-
پس همیشه در برنامه اولین كاری كه باید بكنم اینه كه میكروكنترلر رو معرفی كنم طبق روش بالا كه گفتی نه ؟
2-
اره كاملا درسته
دستور $CRYSTAL : دومین گامی كه بعد از معرفی میكرو باید انجام بدی اینه كه فركانس كاری میكرو رو برای نرم افزار مشخص كنی كه برای این كار از دستور $CRYSTAL استفاده میكنی مثلا فرض كن فركانس میكروی MEGA16 تو 8 مگاهرتز هستش یعنی 8000000 هرتز كه با این دستور فركانس كاری رو معرفی می كنی البته به هرتز :
$CRYSTAL = 8000000
فركانس كاری میكرو رو هم می تونی از داخل نرم افزار انتخاب كنی به این صورت كه می روی داخل منوی OPTIONS سپس گزینه COMPILER سپس گزینه COMMUNICATION رو كلیك می كنی یك پنجره باز می شه در داخل این پنجره یك جایی نوشته FERQUENCY كه جلوش شما باید فركانس رو انتخاب كنی و بعد OK كنی
END : در گام سوم پایان هر برنامه ای باید از دستور END استفاده كنی یعنی اتمام برنامه
1-
خوب بگو ببینم كه گام چهارم چی هستش
2-
گام چهارمی وجود نداره خیط شدی . در واقع برنامه نویسی یعنی قسمت شیرین كار از اینجا شروع میشه. خوب حالا بهت توضیح میدم كه برای نوشتن یك برنامه باید چكار كرد اولین چیزی رو كه باید بهت یاد بدم متغییرها هستند . همونطور كه از اسمش پیداست یعنی قابل تغییر هستش . انواع متغییر ها عبارتند از: 1- BIT 2- BYTE 3- WORD 4- INTEGER 5- LONG 6- SINGLE 7- STRING .
BIT كه یعنی 0 و 1
BYTE تشكیل شده از هشت بیت و هر BYTE 0 تا 255 مقدار دارد
WORD تشكیل شده از دو BYTE و هر WORD 0 تا 65535 مقدار دارد
با بقیه متغییر ها هم فعلا كاری نداریم
1-
خوب درست كارش چی هست و كجا كاربرد داره
2-
بزار وقتی كه یكم رفتیم جلوتر كم كم می فهمی خوب ادامه مطلب رو گوش كن
دستور DIM : DIM به معنی معرفی اسم متغییر است كه می تونه هر اسمی باشه مثلا : A یا B یا ALI یا TEMO حتی اسم خودت فقط برای اینه كه متغییر رو یك نامی بهش بدی كه با بقیه متغییرها قاطی نشه
دستور AS : AS به معنی نوع متغییر هستش كه باید یكی از انواع متغییر های BIT یا BYTE یا INTEGER باشه
مثال:
کد:

DIM A AS BYTE
DIM B AS BIT
DIM ALI AS BYTE
DIM N AS SINGLE

1-
یك مثال مفهومی تر بزن
2-
باشه مثلا در DIM A AS BYTE . به این معنی كه متغییری كه نامش هست A از نوع بایت (BYTE) می باشد
DIM ALI AS BIT . یعنی متغییری كه نامش هست ALI از نوع بیت BIT می باشد .
1-
حالا فهمیدم
2-
بزار بریم جلوتر مثال روز برات روشن میشه كه این دستورات كجا كاربرد داره
در ضمن شما گاهی لازم است كه به متغییر مقدار هم بدی كه به ترتیب زیر عمل می كنی
مثلا شما یك متغییر داری از نوع بایت
DIM S AS BYTE
كه می تونی از 0 تا 255 بهش مقدار بدی به تریتیب زیر
S = 1 یا S = 12 یا S = 0 یا S = 255 یا هر رقمی كه از 0 تا 255 دوست داشتی البته اگه لازم بود
دستور INCR : با نوشتن این دستو شما می توانید یك متغییر را افزایش بدی به مثال زیر توجه كن بهتر می فهمی
DIM B AS BYTE
B=0
INCR B
بزار از خط اول برات توضیح بدم برنامه ای كه ما نوشتم رو میكرو میاد از خط اول شروع می كنه به خوندن خط اول یعنی ما یك متغیری داریم به نام B و از نوع BYTE
خط دوم به متغییر B مقدار دادیم
خط سوم دستور دادیم كه متغیر B رو یك واحد افزایش بده وقتی كه میكرو به خط سوم رسید و اونو خوند اگه متغییر ما بوده 0 الان میشه 1
1-
كاربردش چیه این دستور INCR
2-
كاربردش توی شمارنده هستش
دستور DECR : این دستور برعكس دستور قبل هستش و یك واحد از متغییر ما كم می كنه
مثال :
کد:

DIM U AS BYTE
U = 20
DECR U

خط اول یعنی ما یك متغییری داریم كه اسمش هست U و از نوع بایت
خط دوم به U مقدار دادیم
خط سوم یك واحد از مقدار U كم كردیم
بزار یك مثال كاربردی تر بزنم :
کد:

$REGFILE = "M16DEF.DAT"
$CRYSTAL = 8000000
DIM K AS BYTE
K = 100
INCR K
DECR K
END

خوب حال خوب گوش كن
خط اول ما اومدیم نوع میكرو مونو مشخص كردیم كه هست مگا16
خط دوم فركانس كاری میكرو رو مشخص كردم
خط سوم گفتیم كه ما یك معغییری داریم به نام K و از نوع بایت
خط چهارم برای متغییر بایت یك مقدار دادیم
خط پنجم دستور دادیم كه یك واحد به متغییر K اضافه كن یعنی اگه 100 بوده الان می شه 101
خط ششم دستور دادیم كه یك واحد از متغییر K كم كن یعنی الان كه هست 101 یك واحد كه كم بشه میشه 100
خط هفتم دستور پایان برنامه رو دادیم
1-
سوال دارم اگه مثلا در مثال بالا دستور INCR و یا DECR رو دو بار زیر هم بنویسیم چی می شه
2-
برای پاسخ به سوالت به یك مثال دیگه توجه كن

کد:

$REGFILE = "M16DEF.DAT"
$CRYSTAL = 8000000
DIM K AS BYTE
K = 100
INCR K
DECR K
DECR K
DECR K
INCR K
END

خوب حال خوب گوش كن
خط اول ما اومدیم نوع میكرو مونو مشخص كردیم كه هست مگا16
خط دوم فركانس كاری میكرو رو مشخص كردم
خط سوم گفتیم كه ما یك معغییری داریم به نام K و از نوع بایت
خط چهارم برای متغییر بایت یك مقدار دادیم
خط پنجم دستور دادیم كه یك واحد به متغییر K اضافه كن یعنی اگه 100 بوده الان می شه 101
خط ششم دستور دادیم كه یك واحد از متغییر K كم كن یعنی الان كه هست 101 یك واحد كه كم بشه میشه 100
خط هفتم دوباره دستور دادیم كه یك واحد از متغییر K كم كن خوب متغییر K كه الان هستش 100 میشه 99
خط هشتم دوباره دستور دادیم كه یك واحد از متغییر K كم كن خوب متغییر K كه 99 بوده میشه الان 98
1-
فهمیدم بزار خط نهم و دهم رو خودم بگم ببینم یاد گرفتم یا نه
خط نهم یعنی خط نهم دستور دادیم یك واحد به متغییر K اضاف بشه یعنی الان كه K هستش 98 بعد از خونده شدن دستور خط نهم میشه 99 و خط دهم یعنی اتمام برنامه
2-
احسنت افرین داری راه میافتی ها
1-
دستور بعدی چیه
2-
دستور بعدی در مورد LCD هستش . بزار اول در مورد خود LCD برات بگم بعد دستوراتش رو با هم مرور می كنیم
LCD ها انواع مختلفی دارند اولی گرافیكی – دومی كاركتری كه من با كاركتری كار می كنم شبیه lcd ماشین حساب هستش كه از نظر ابعاد هم باهم فرق دارن مثلا 16 در 1 – 16 در 2 – 16 در 4 – 40 در 4 و...
1-
خوب مثلا این شماره ها برای چیه مثلا همین 16 در 2
2-
عدد اول یعنی 16 به ما میگه كه این lcd ما 16 ردیف ( افقی ) داره عدد دوم بعنی 2 به ما می گه این lcd دو ستون ( عممودی ) داره
1-
حالا گرفتم
2-
این lcd ها 14 پایه دارند كه ما فقط از 9 پایه ان استفاده می كنیم كه برای استفاده از ان و وصل ان به میكروكنترلر به ترتیب زیر عمل می كنیم
پایه اول vss نام دارد كه به زمین وصل میشه
پایه دوم vdd هستش كه به ولتاژ 5 ولت وصل میشه
پایه سوم vee هستش كه به زمین وصل میشه
پایه چهارم rs هستش كه به میكرو وصل می شه . بعدا بهت می گم به كجای میكرو وصل میشه
پایه پنجم rw هستش كه اونم به زمین وصل میشه
پایه ششم E هستش كه اونم به میكرو وصل می شه
پایه های 7 8 9 10 كه هیچی به جایی وصل نمیشن
پایه 11 DB4 اسمش هست اونم به میكرو وصل میشه
پایه 12 DB5 اسمش هست اونم به میكرو وصل میشه
پایه 13 DB6 اسمش هست اونم به میكرو وصل میشه
پایه 14 DB7 اسمش هست اونم به میكرو وصل میشه

1-
یك سوال بعضی از پایه های بالا رو كه معرفی كردی گفتی وصل میشه به LCD ولی نگفتی به كدوم پایه LCD باید وصل بشه
2-
بله نگفتم ولی اگر یكم صبر كنی بهت میگم . اگه یادت باشه وقتی كه داشتم نرم افزار BASCOM رو برات توضیح می دادم گفتم كه توی منوی OPTINS بعد COMPILER یك گزینه هست به نام LCD شما اونجا مشخص می كنی كه پایه های میكروكنترلر به كدوم پایه LCD وصل بشه كه باید به ترتیب زیر عمل كنی بعد از این كه وارد گزینه LCD توی نرم افزار شدی یك پنجره باز میشه كه سمت راست اون شش كادر هستش كه شما باید اونجا مشخص كنی كه LCD به كدوم پایه های میكرو وصل بشه . می دانیم كه اكثر میكرو ها دارای چهار PORT هستند البته به غیر از خانواده TINY
1-
پورت چیه واز؟؟
2-
به هر هشت پایه میكرو یك پورت میگن كه هر پورت باز خودش یك اسم داره مثلا ATMEGA32 دارای چهار پورت هستش به نام های A –B –C –D هر كدو از این پورت ها هشت پایه هستند
1-
از كجا بفهمیم كه مثلا پورت A یا پورت C كجاست
2-
باز هم از روی دیتاشیت خود ایسی
1-
خوب ادامه بده
2-
هنگامی كه شما می خای LCD رو به میكرو وصل كنی باید در گزینه LCD یك پورت رو به دلخاه انتخاب كنی
1-
فرقی نمیكنه كه كدوم پورت باشه
2-
نه هر كدو از پورت ها كه دوست داشته مثلا پورت A یا پورت D
1-
اها خوب ادامه بده
2-
مثلا حال كردی كه LCD رو به پورت C وصل كنی برای این كار در نرم افزار وقتی كه به قسمت LCD رفتی و یك پنجره باز شد در قسمت راست پنجره شش گزینه برای انتخاب وجود داره كه باید به ترتیب زیر عمل كنی :
اولین گزینه از بالا نوشته ENABLE كه باید PORTC.5 رو انتخاب كنی
دومین گزینه نوشته RS كه باید PORTC.4 رو انتخاب كنی
سومین گزینه نوشته DB7 كه باید PORTC.3 رو انتخاب كنی
چهارمین گزینه نوشته DB6 كه باید PORTC.2 رو انتخاب كنی
پنجمی گزینه نوشته DB5 كه باید PORTC.1 رو انتخاب كنی
ششمین گزینه نوشته DB4 كه باید PORTC.0 رو انتخاب كنی
حال فهمیدی كدوم پایه های میكرو به LCD وصل میشه
1-
اها پس سخت افزاری هم باید به ترتیبی كه مثل بالا مشخص كردیم LCD رو به میكروكنترلر وصل كنیم
2-
كاملا درسته. شما مختاری كه هر PORT كه دوست داشتی رو به میكرو وصل كنی ولی باید هر پورتی كه توی ذهنت در نظر داری رو توی نرم افزار مثل شكل بالا انتخاب كنی
یك نكته دیگه اینكه در قسمت سمت چپ همین پنجره LCD یك گزینه هست به نام LCD TYPE كه شما اونجا اندازه LCD تو مشخص می كنی مثلا یك LCD رفتی خریدی كه اندازش هست 16در 2 توی این گزینه باید 16*2 رو انتخاب كنی بعدی OK رو بزنی . خوب حال بریم سر دستورات LCD :
دستور CLS : این دستور كل LCD رو پاك و اماده نوشتن می كنه كه همیشه باید قبل از دستور نوشت روی LCD این دستور نوشته بشه
دستور LCD : خوب با این دستور شما می تونی یك عبارت رو روی LCD نمایش بدی مثلا یك عدد یا یك اسم یا یك كلمه یا یك متغییر . البته قبل این دستور باید حتما CLS نوشته بشه این مثال توجه كن
کد:

$REGFILE = "M16DEF.DAT"
$CRYSTAL = 8000000
CLS
LCD " ALI "
END


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

$REGFILE = "M16DEF.DAT"
$CRYSTAL = 8000000
CLS
LCD " 999 "
END

مثل مثال قبل
1-
اها فهمیدم
2-
یادت میاد كه بهت گفتم نرم افزار بیسكام یك جایی داره به نام شبیه ساز
1-
اره چطور مگه
2-
خوب تو می تونی اونجا این دستوراتی رو كه امروز یادت دادم رو اونجا شبیه سازی كنی
1-
تو كه گفتی از این شبیه سازش خوشت نمی یاد
2-
اره منظورم این بود كه توی كار های بزرگ نمیشه ازش استفاده كرد ولی توی كارهای كوچیك میشه ازش استفاده كرد
1-
حالا چی كار می كنه این شبیه ساز نرم افزار
2-
برنامه ای رو كه تو نوشتی برات شبیه سازی می كنه داخلش یك LCD هم داره برو حال كن
1-
چطوری ازش استفاده كنم
2-
بعد از این كه تو برنامه رو نوشتی باید برنامتو از نظر نداشتن خطا چك كنی
1-
چطوری
2-
با زدن كلید F7 . بعد اگه برنامت اشكالی نداشت كلید F2 رو می زنی و وارد محیط شبیه ساز یا همون SIMULATOR میشی
1-
اینطوری گیج میشم یك مثال هم بزن
2-
باشه به روی چشم فرض كن كه ما یكی از برنامه های بالا رو نوشتیم مثل برنامه زیر:
کد:

$REGFILE = "M16DEF.DAT"
$CRYSTAL = 8000000
CLS
LCD " ALI "
END

درضمن تنظیمات روهم مثل بالا كه گفتم پایه های LCD رو توی نرم افزار انتخاب كن رو مثل بالا انتخاب می كنی
بعد دكمه F7 رو بزن تا برنامه چك بشه
بعد دكمه F2 رو بزن تا وارد محیط شبیه ساز بشی . توی محیط شبیه ساز خیلی دكمه هستش كه من فقط چند تارو كه كاربرد داره برات میگم
دكمه اوال از بالا سمت چپ شبیه دكمه PLAY ویدو هست كه اسمش هست RUN PROGRAM كه برای اجرای برنامه شبیه ساز هستش
دكمه بعدی كه هچی دكمه بقلیش شبییه دكمه استپ ویدو هست كه اسمش هست STOP PROGRAM كه برای توقف شبیه سازی هستش
چند تا دكمه اون طرفتر یك دكمه كه داخلش یك مستطیل ابی رنگی هستش و روش نوشته LCD . این دكمه رو وقتی كه میزنی یك LCD توشه
خوب ادامه حالا كه وارد محیط شبیه ساز شدی اول برای شبیه سازی مثال بالا دكمه LCD رو انتخاب می كنی بعد دكمه RUN PROGRAM رو میزنی باید یك ده پانزده ثانیه صبر می كنی تا روی LCD نوشته بشه ALI


http://www.panatel.org/showthread.php?p=101209

صفحات جانبی

نظرسنجی

    لطفاً نظرات خود را درمورد وبلاگ با اینجانب در میان بگذارید.(iman.sariri@yahoo.com)نتایج تاکنون15000مفید و 125غیرمفید. با سپاس


  • آخرین پستها

آمار وبلاگ

  • کل بازدید :
  • تعداد نویسندگان :
  • تعداد کل پست ها :
  • آخرین بازدید :
  • آخرین بروز رسانی :