تبليغاتX
الکترونیک و روباتیک
این خبر عینا از سایت http://www.mem.ir/index.php نقل شده.

شرکت Atmel 5 میکروکنترلر 8 بیتی AVR جدید با توان مصرفی بسیار پایین برای استفاده در مدارات با تعداد کدهای بالا و اینترفیسینگ زیاد عرضه نموده است.

این میکروکنترلر ها با نام های ATmega640، ATmega1280، ATmega2560، ATmega1281، ATmega2561 عرضه شده است و دارای 64 تا 256 کیلو بایت flash و 8 کیلو بایت RAM به صورت داخلی می باشد.

این میکروهای جدید مدارات جانبی میکروها را با توجه به مدارات داخلی خود کاهش داده است که از آن جمله می توان به وجود یک اسیلاتور RC 8 مگا هرتزی در داخل خود که باعث حذف اسیلاتور خارجی گشته است را نام برد؛ از دیگر قابلیت های جالب این میکرو مصرف بسیار پایین آن می باشد این میکرو که با 1.5 ولت کار می کند در حالت power down تنها 100 نانو آمپر مصرف می کند که باعث افزایش عمر باتری خواهد شد.

مدل 100 پین این میکرو ها داراری 4 کانال UART و 16 عدد A/D می باشد.

قیمت این میکرو ها برای 10000 عدد برای ATmega640، 4.75$ ؛ ATmega1281، 6.00$؛ ATmega1280، 6.40$؛ ATmega2561، 7.50$ و ATmega2560، 7.80$ می باشد.


برای اطلاعات بیشتر به سایت زیر مراجعه نمایید:

www.atmel.com


+ نوشته شده توسط افشین در چهارشنبه سوم آبان 1385 و ساعت 14:44 |
ساده ترين معماري ميكرو كنترلر، متشكل از يك ريز پردازنده، حافظه و درگاه ورودي/خروجي است. ريز پردازنده نيز متشكل از واحد پردازش مركز (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 اين گونه ميكرو كنترلرها را مي توان به صورت ورودي و يا خروجي مورد استفاده قرار داد . معمولاً ، اين گونه خطوط خروجي ، به همراه مقاومتهاي بالا كش بيروني به كار برده مي شوند.





میکرو کنترلر 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 با 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 قرار بگیره . این بخش برای بعضی طراحان خیلی مهمه و اونا رو مجذوب خودش کرده.


خانواده میکروکنترلرهای AVR شامل طیف گسترده ای از آی سی ها است که از 8 پایه شروع و به 64 پایه ختم می شود. اما در بین این طیف گسترده تعدادی استفاده عمومی تری دارند مانند ATMEGA32 . که در تمام مثالهای آورده شده از این آی سی استفاده شده است .

+ نوشته شده توسط افشین در چهارشنبه نوزدهم مهر 1385 و ساعت 8:31 |

 اين مطلب رو عينا از وبلاگ دانشجوي مهندسي برق نقل ميكنم:

 

http://www.ml.blogfa.com/

 

 

 

خانواده میکروکنترلرهای AVR شامل طیف گسترده ای از آی سی ها است که از 8 پایه شروع و به 64 پایه ختم می شود. اما در بین این طیف گسترده تعدادی استفاده عمومی تری دارند مانند ATMEGA32 . که در تمام مثالهای آورده شده از این آی سی استفاده شده است .

مشخصات سخت افزاری
ATMEGA32 :

شکل ظاهری و پایه ها:

ATMEGA32 در سه نوع بسته بندی PDIP با 40 پایه و TQFP با 44پایه و MLF با 44 پایه ساخته میشود که در بازار ایران بیشتر نوع PDIP موجود میباشد .

ATMRGA32 دارای چهار پورت 8بیتی ( 1 بایتی ) دارد که علاوه بر اینکه بعنوان یک پورت معمولی میتوانند باشند کارهای دیگری نیز انجام میدهند . بطور مثال PORTA میتواند بعنوان ورودی ADC (تبدیل ولتاژ آنالوگ به کد دیجیتال ) استفاده شود که این خاصیت های مختلف پورت در برنامه ای که نوشته میشود تعیین خواهد شد .
ولتاژ مصرفی این آی سی از 4.5
V تا 5.5V میتواند باشد .
فرکانس کار هم تا 16
MHz میتواند انتخاب شود که تا 8MHz نیازی به کریستال خارجی نیست و در داخل خود آی سی میتواند تامین شود . فرکانس کار از جمله مواردی است که باید در برنامه تعیین شود . لازم به ذکر است که این فرکانس بدون هیچ تقسیمی به CPU داده میشود . بنابراین این خانواده از میکروکنترلرها سرعت بیشتری نسبت خانواده های دیگر دارند .
پایه ی شماره 9 نیز ریست سخت افزاری میباشد و برای عملکرد عادی آی سی نباید به جایی وصل شود و برای ریست کردن نیز باید به زمین وصل میشود .
پایه های 12 , 13 نیز برای استفاده از کریستال خارجی تعبیه شده است .


ساختار داخلی
ATMGA32 :
برنامه ای که برای میکروکنترلر در کامپیوتر نوشته میشود وقتی که برای استفاده در آی سی ریخته میشود ( توسط پروگرامر مخصوص آن خانواده ) در مکانی از آن آی سی ذخیره خواهد شد بنام
ROM . حال در ATMEGA32 مقدار این حافظه به 32KB ( 32 کیلوبایت ) میرسد .
در این آی سی مکانی برای ذخیره موقت اطلاعات یا همان
RAM هم وجود دارد که مقدارش 2KB است .
در
RAM اطلاعات فقط تا زمانی که انرژی الکتریکی موجود باشد خواهد ماند و با قطع باتری اطلاعات از دست خواهند رفت . به همین منظور در ATMEGA32 مکانی برای ذخیره اطلاعات وجود دارد که با قطع انرژی از دست نخواهند رفت . به این نوع حافظه ها EEPROM گفته میشود که در این آی سی مقدارش 1KB است و تا 100,000 بار میتواند پر و خالی شود .

نرم افزار
نرم افزار مورد نیاز برای برنامه نویسی :
حال میخواهیم طرز نوشتن برنامه برای میکروکنترلرهای خانواده ی
AVR را شروع کنیم . پس برای اینکار نیاز به یک نرم افزار داریم که بتوانیم در آن برنامه ی خود را بنویسیم . یکی از نرم افزارهای قدرتمند برای انجام دادن اینکار نرم افزاریسیت بنام Bascom AVR . در این نرم افزار همانطور که از نامش معلوم است برنامه باید بزبان Basic که زبانی با سطح بالا (HLL) است نوشته شود . همچنین این نرم افزار دارای شبیه ساز داخلی برای تست کردن برنامه نوشته شده است که یکی از ویژگیهای این نرم افزار میباشد .


تحلیل برنامه

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

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

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

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

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

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

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

معرفی
LCD کارکتری :
LCD های کارکتری خود به چند نوع دیگر از لحاظ اندازه تقسیم بندی میشوند . که از LCD هایی با 1 سطر و 1 ستون آغاز میشوند تا اندازهایی مثل 4 سطر و 40 ستون که البته تمام آنها از 16پایه تشکیل شده اند.


برای راه اندازی
LCD توسط AVR نیازی به دانستن جزئیات طرز کار LCD نیست . برای کار با LCD علاوه بر پایه های تغذیه و CONTRAST ( تنظیم روشنایی ) که باید مانند شکل مداری پایین بایاس شوند نیاز به 6 پایه ی دیگر است که عبارتند از پایه های :
RS , E , DB4 , DB5 , DB6 , DB7 .

تحلیل برنامه :

۱:برای تعیین نوع LCD از کلمات کلیدی Config و بعد از آن Lcd استفاده شده و آنها را مساوی نوع LCD مورد استفاده قرار میدهیم که در اینجا نوع مورد استفاده دارای 2 سطر و 16 ستون میباشد. پس بصورت زیر خواهیم نوشت :
Config Lcd = 16*2

۲: در مرحله ی بعد ترتیب وصل کردن پایه ها را معرفی خواهیم کرد و برای اینکار پایه هایی از LCD را که برای راه اندازی آن استفاده میشود و قبلا نیز گفته شده بود را مساوی پایه هایی از میکروکنترلر قرار میدهیم که میخواهیم به آنها وصل شود و البته این نوع راه اندازی توسط AVR را که تنها با شش پایه صورت میگیرد را نوع راه اندازی PIN میگویند . پس طبق سخت افزار نشان داده شده بصورت زیر خواهیم نوشت :
Config Lcdpin = pin , Rs = porta.0 , e = porta.1 , db4 = porta.2 , db5 = porta.3 , db6 = porta.4 , db7 = porta.5
( به علامت , بین بخشها دقت کنید . )

۳: بعد از انجام کارهای بالا که جزو بخش معرفی سخت افزار محسوب میشوند به سراغ برنامه اصلی میرویم که کار آن نمایش متن روی LCD است و برای انجام اینکار از کلمه کلیدی LCD و در جلوی آن متنی که باید نمایش داده شود استفاده میکنیم و باید توجه داشت که متن را باید داخل کوتیشن قرار داد .

۴: در انتهای برنامه نیز END را مینویسیم .

نحوه ی کامپایل برنامه و پروگرام کردن
IC

کامپایل برنامه نوشته شده :
بعد از نوشتن برنامه باید آنرا کامپایل کرد تا اگر اشتباهی در تایپ کلمه ای وجود داشته باشد برای اصلاح آن اخطار داده شود و فایلهای از جمله فایل هگز که برای پروگرام کردن نیاز است ابجاد گردند . برای کامپایل برنامه همانطور که در تصویر بخش اول نمایش داده شده است باید از دکمه ی
F7 استفاده کرد . با انجام اینکار برنامه ی ما کامپایل خواهد شد .
پروگرام کردن
IC :
بعد از کامپایل برنامه نوبت به آن رسیده است که با نحوه ریختن برنامه داخل
IC یا باصطلاح پروگرام کردن آشنا شوید . پس نیاز است که یک دستگاه پروگرامر مختص به خانواده AVR داشته باشید . برای پروگرام کردن میکروکنترلرهای خانواده AVR انواع مختلفی پروگرامر که از استانداردهای خاصی پیروی میکنند وجود دارد که مصرف عمومی تر را پروگرامهای نوع STK200/300 دارند که البته دارای مدار بسیار ساده ایست و برای پروگرام کردن از کابل LPT ( پرینتر ) استفاده میکند و در بازار هم بیشتر این نوع پروگرامر یافت میشود .
هنگامیکه میخواهیم کار پروگرام کردن را شروع کنیم ابتدا باید پروگرامر را به کامپوتر وصل نموده و بعد از توسط محیطی از نرم افزار
Bascom AVR نوع آنرا برای کامپیوتر معرفی کنیم ( اینکار فقط یکبار انجام شود کافیست ) . برای شناساندن پروگرامر به کامپیوتر از منوی Option گزینه Programmer را انتخاب میکنیم :

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

 

+ نوشته شده توسط افشین در یکشنبه شانزدهم مهر 1385 و ساعت 7:1 |

این مطلب عینا از وبلاگ http://www.acrosoft.blogfa.com/ نقل شده.

با تشکر از آقای علیرضا عبدشاه:

 آشنائی با LCD

LCD ها ابزاری برای نمایش اطلاعاتی هستند که  شامل حروف و اعداد و همچنین برخی کاراکترهای گرافیکی می شود. بطور معمول در تجربیات اولیه در نمایش اطلاعات دیجیتال از نمایشگر های هفت قسمتی (seven segment) استفاده می شود که این نمایشگرها فقط ارقام (0 تا 9) و بعضی حروف مثل A b C را بصورت نه چندان زیبا نمایش می دهند. اما با بکار گیری LCD اطلاعات را بصورت زیبا و کاملتر می توان نمایش داد. البته استفاده از LCD برای مدارات ساده توصیه نمی شود و عموما آنرا همرا با میکروکنترلر  یا CPU ها بکار می برند.
چیزی که از آن بعنوان
LCD یاد می شود درواقع یک صفحه نمایشگر LCD مانند صفحه ماشین حساب است که همراه با آی سی کنترلر و مدارهای جانبی اش و عموما با لامپ پشت صفحه در یک بسته پیش ساخته عرضه می شود.

همانطور که گفته شد LCD دارای یک کنترلر است که با فرستادن اطلاعات به آن این اطلاعات را در صفحه ای که عموما به چند سطر و ستون تقسیم شده نمایش می دهد. مثلا برای نمایش حرف "M" کافیست کد اسکی این حرف را طبق یک پروتکل ساده به LCD ارسال کنیم. همچنین می توان دستوراتی از قبیل پاک کردن صفحه نمایش، جابجایی مکان نما، خاموش روشن کردن مکان نما و غیره را نیز به LCD ارسال کرد.
LCD ها از طریق مقدار اطلاعاتی که میتوانند در صفحه نمایش بدهند انتخاب و خریداری می شوند. انواع معمول آن عبارتند از 16 ، 20 ، 32 و 40 کاراکتر در هر خط در 1 یا 2 یا 4 سطر. مثلا 2 در 16 یعنی صفحه دارای دو خط و هر خط 16 کاراکتر است. همچنین LCD موردنظر میتواند همراه با لامپ پشت صفحه (Back light) یا بدون آن انتخاب شود. LCD ها کاراکتر ها را در ماتریس های 5x7 pixel نمایش می دهند. در تصویر زیر یک نمونه 2 در 16 مشاهده می شود:

54زل

لا5

 Lcdها دارای 16 پایه هستند که 8 خط آن مربوط به فرستادن یا خواندن داده ها یا دستورالعمل ها می باشد.  پایه های دیگر خطوط کنترل و ولتاژهای تغذیه می باشند. لیست کامل خط ها بقرار زیر است:

 شماره و نام خط

 عملکرد

1- Vss

زمین

2- Vcc

ولتاژ 5 ولت برای کنترلر

3- Vee

ولتاژ تنظیم درخشندگی(contrast)

4- RS

 انتخابگر ثبات دستور / داده

5- RW

 انتخابگر خواندن / نوشتن

6- Enable

فعال کننده

7-14 Bus

8 خط گذرگاه داد یا دستور

15-

ولتاژ 5 ولت برای لامپ پشت صفحه

16-

زمین برای لامپ پشت صفحه

 

Vee : برای تنظیم درخشندگی کاراکترها بکار می رود که باید ولتاژی بین صفر و 5 ولت به این پایه اعمال نمود. برای بیشترین درخشندگی این پایه را به زمین متصل کنید.

انتخابگر ثبات داده / دستور مشخص می کند که چه چیزی به LCD فرستاده می شود. اگر این خط صفر باشد کنترلر LCD بایت موجود روی خطوط 7 تا 14 را بعنوان یک دستور تلقی کرده و اگر این پایه یک باشد اطلاعات را بعنوان یک کد اسکی که باید کاراکتر معادل آنرا نمایش دهد در نظر می گیرد.

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

فعال کننده: برای هر دستور یا داده ای که به LCD میفرستیم یا میخواهیم از آن بخوانیم باید یک پالس پائین رونده (یعنی تغییر از سطح یک به صفر) را به این پایه اعمال کنیم تا دستور یا داده بوسیله کنترلر LCD پردازش شود.

در خطوط 7 تا 14 خط 7 کم ارزشترین بیت(LSB) و خط 14 پر ارزش ترین بیت (MSB) می باشد.

در صورت تمایل به روشن کردن لامپ پشت صفحه ولتاژ 5 ولت را به پایه 15 اعمال و پایه 16 را به زمین متصل می کنیم.

برای آزمایش می توان LCD را به پورت چاپگر متصل  و اطلاعاتی را به آن ارسال نمود. در این حالت بطور معمول خطوط داده پورت به خطوط 7 تا 14 و سه خط کنترلی به پایه های 4 تا 6 اتصال داده می شود توجه داشته باشید که ولتاژ تغذیه و لامپ پشت صفحه LCD توسط منبع خارجی تامین می شود.
روش فرستادن یک کاراکتر:
خط خواندن نوشتن را صفر کنید تا نوشتن انتخاب شود.
خط داده / دستور را یک کنید تا داده انتخاب شود.
کد اسکی کاراکتر مورد نظر را روی خطوط
D0 تا D7 قرار دهید.
خط انتخاب را ابتدا یک و سیس صفر کنید. حداقل 450 نانو ثانیه باید این خط را صفر نگه دارید تا داده پردازش شود. بعد از آن حالت خط تاثیری نخواهد داشت.

54dfdef

+ نوشته شده توسط افشین در چهارشنبه دوازدهم مهر 1385 و ساعت 7:30 |

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

http://electronic-girls.blogfa.com/85023.aspx

 

سير تكاملي ميكرو كنترلرها

اولين ميكرو كنترلرها در اواسط دهه 1970 ساخته شدند. اين ميكرو كنترلرها در ابتدا پردازنده هاي ماشين حساب بودند كه داراي حافظه برنامه كوچكي از نوع ROM ، حافظه داده از نوع RAM و تعدادي درگاه ورودي/خروجي بودند.

با توسعه فناوري سيليكون ، ميكرو كنترلرهاي 8 بيتي قويتري ساخته شدند. در اين ميكرو كنترلرها علاوه بر بهينه شدن دستورالعمل ها، تايمر/شمارنده روي تراشه، امكانات وقفه و كنترل بهينه شده خطوط  I/O نيز به آنها اضافه شده است. حافظه موجود بر روي تراشه هنوز هم محدود مي باشد و دربسياري موارد كافي نيست.يكي از پيشرفتهاي قابل توجه در آن زمان، قابليت استفاده از حافظة EPROM قابل پاك شدن با اشعه ماورا بنفش، روي تراشه بود. اين قابليت، زمان طراحي و پياده سازي محصول را بطور محسوسي كاهش داد و نيز براي اولين بار امكان استفاده از ميكرو كنترلر ها را در كاربردهايي كه حجم توليد پاييني دارند، فراهم ساخت.

خانواده8051 در اوايل دهه 1980 توسط شركت اينتل معرفي گرديد. از آن زمان تاكنون8051 يكي از

 

 محبوبترين ميكرو كنترلرها بوده و بسياري از شركتها ديگر نيز به توليد آن اقدام كرده اند. در حال حاضر

 

مدل هاي مختلفي از 8051 وجود دارد كه در بسياري از آنها امكاناتي نظير مبدل آنالوگ به ديجيتال حجم

 

 نسبتاً بزرگ از حافظه برنامه و حافظه داده، مدولاتور عرض پالس (PWM) در خروجيها و حافظه فلش

 

Flash)) كه امكان پاك كردن و برنامه ريزي مجدد آن توسط سيگنالهاي الكتريكي وجود دارد، تعبيه شده است.

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

بسياري از ميكرو كنترلرهاي 16 بيتي، امكاناتي نظير حجم زياد حافظه برنامه و حافظه داده، مبدل هاي آنالوگ به ديجيتال چند كانالي، تعداد زيادي درگاه I/O، چندين درگاه سريال، عملكردهاي بسيار سريع رياضي و منطقي و مجموعه دستورالعمل هاي بسيار قدرتمند با قابليت پردازش سيگنال را دارا مي باشند.

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

ساده ترين معماري ميكرو كنترلر، متشكل از يك ريز پردازنده، حافظه و درگاه ورودي/خروجي است. ريز پردازنده نيز متشكل از واحد پردازش مركزي (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 اين گونه ميكرو كنترلرها را مي توان به صورت ورودي و يا خروجي مورد استفاده قرار داد . معمولاً ، اين گونه خطوط خروجي ، به همراه مقاومتهاي بالا كش بيروني به كار برده مي شوند.

 خانواده 8051

خانواده 8051 يك خانواده ميكرو كامپيوتر (ميكرو كنترلر ) 8 بيتي تك تراشه اي استاندارد است كه بسيار محبوب و عامه پسند مي باشد و توسط سازندگان مختلف با قابليت هاي متفاوت توليد مي گردد. اين آي سي استاندارد اصلي كه اولين عضو اين خانواده مي باشد، 8051 است كه يك ميكرو كنترلر 40 پايه مي باشد.

 هم اكنون اين آي سي با پيكربندي هاي مختلف موجود مي باشد. 80C51 نوع cmos و كم مصرف اين خانواده است.  8751 داراي حافظه برنامه از نوع EPROM است كه عمدتاً در هنگام پياده سازي به كار برده مي شود.

89c51 نيز داراي حافظه فلش قابل برنامه ريزي و پاك شدن (PEROM) است لذا بدون نياز به پاك كردن با اشعه ماورابنفش ، مي توان حافظه برنامه را برنامه ريزي كرد.8052 عضو بهينه شده اين خانواده مي باشد و حافظه RAM آن بيشتر بوده و تعداد تايمر/شمارنده آن نيز بيشتر است. انواع مختلفي از خانواده 40 پايه وجود دارد كه داراي مبدل هاي آنالوگ به ديجيتال ، مدولاتورهاي عرض پالس و نظاير آن هستند. در بخش پايين خانواده 8051 ، ميكرو كنترلر هاي 20 پايه قرار دارند كه از لحاظ كد ، سازگاري كاملي با انواع 40 پايه دارند و اين ادوات 20 پايه براي كاربردهايي با پيچيدگي كمتر كه نياز به خطوط I/O كمتري دارند و نيز براي كاربردهايي كه بايد مصرف توان كمتري داشته باشند (مثل سيستم هاي قابل حمل)،ساخته شده اند.

آي سي هاي AT89C2051 و AT89C1051 (ساخت شركت Atmel)چنين ميكرو كنترلرهايي هستند كه از لحاظ كد سازگاري كاملي با خانواده 8051 دارند و مصرف توان آنها نيز كمتر است.

 خانواده 8051

8051 يك ميكرو كنترلر 8 بيتي با مصرف كم و قابليت زياد است. تعداد زيادي از اعضاي خانواده 8051 داراي معماري مشابهي هستند و هر يك از اعضا با اعضاي ديگر سازگار مي باشند . قابليت هاي ميكرو كنترلر 8051 استاندارد به شرح زير مي باشد:

       ·           4 كيلو بايت حافظه برنامه

       ·           8*256 حافظه داده RAM       

       ·          32 خط I/O قابل برنامه ريزي

       ·           دو عدد تايمر / شمارنده 16 بيتي

       ·           6 منبع وقفه

       ·           درگاه UART سريال  قابل برنامه ريزي

       ·           قابليت اتصال به حافظه بيروني

       ·           بسته بندي 40 پايه استاندارد

+ نوشته شده توسط افشین در سه شنبه سی و یکم مرداد 1385 و ساعت 13:44 |

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

   http://electronic-girls.blogfa.com/85023.aspx                         

 

میکرو کنترلر

مقدمه:

اولین ریز پردازنده ای که با موفقیت عملی به بازار عرضه شد محصول شرکت اینتل در سال 1971 با نام 8080 بود بعد از آن بازار رقابت میکرو پروسسوری گرم شد و شرکت های دیگری همچون RCA ,ZILOG,MOS technology ریز پردازنده های خود را به بازار عرضه کردند.
کم کم با ورود کامپیوتر به صنعت ،وجود تکنولوژی دیگری نیز احساس شد . تکنولوژیی که از میکرو پروسسور جمع و جور تر و کند تر بود اما هزینه را خیلی پایین می آورد .این تکنولوزی میکرو کنترلر نام گرفت و کار آن نظارت و کنترل یک سری اعمال بود که توسط برنامه نویسی انجام می شد.
امروزه میکرو کنترلر حوزه های وسیعی از زندگی مارا اشغال کرده است بی آنکه بدانیم که سیستم به کار رفته در آنها میکرو کنترلری است و به اشتباه همه ی آنها را کامپیوترمی نامیم.برای مثال ماشین لباسشویی که اتمام کار خود را با نواختن آهنگی اعلام میکند یا اجاق گازی که خاموش شدن شعله را با آهنگ گوشزد می کند و یا خودروی سمندی که باز بودن در خودرو را با جمله ی" در ب خودرو باز است."یاد آوری می کند( البته با فرکانس بالاتر از فرکانس صدای من!!!)همگی نمونه های ملموسی از سیستم های میکرو کنترلری هستند که روزانه بار ها با آنها سر و کار داریم.

ملزومات یک سیستم کامپیوتری:

اما واحد های استاندارد یک سیستم کامپیوتری :

1-واحد پردازش مرکزی
cup :


همان مغز سیستم است و فعالیت های سیستم را کنترل می کند و عملیات هایی را بر روی داده ها انجام می دهد .
Cup مجموعه ای از مدارات منطقی است که به طور متناوب دستورات را واکشی و اجرا می کنند.
Cup خود دارای چند قسمت می باشد:
الف-
ALU یا واحد محاسبه و منطق که مسئول انجام اعمال محاسباتی نظیر جمع و تفریق و ... و اعمال منطقی مانند مقایسه And و OR و ... می باشد

ب – واحد کنترل که مسئول رمز گشایی و تعیین نوع عملیاتی است که
ALU باید انجام دهد.

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

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

2. حافظه :

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

ROM (رام) یا حافظه فقط خواندنی توسط کارخانه برنامه نویسی شده و محتویات آن توسط کاربر یا برنامه نویس تغییر نمی یابد. در حقیقت ROM یک بار برنامه نویسی شده و بارها و بارها می توان آن را خواند .محتویات ROM ثابت است و با قطع برق از بین نمی رود.

RAM (رم) حافظه با دستیابی تصادفی است که CPU اطلاعات را در آن ذخیره می کند و محتویات آن توسط برنامه نویس هم می تواند تغییر داده شود محتویات آن با قطع جریان برق هم از بین می رود.


حافظه های ثانویه ، حافظه هایی هستند که ما اطلاعات را بر روی آنها ذخیره می کنیم تا بعدا دوباره آن اطلاعات را مورد استفاده قرار دهیم و با قطع برق هم محتویات آنها از بین نمی رود .در حقیقت حافظه های ثانویه ترکیبی از خصوصیات
Rom و Ram هستند . پایداری خود در مقابل قطع برق را از ROM و توانایی تغییر محتویات توسط کاربر را از RAM به ارث برده اند .برای حافظه های ثانویه می توان از HARD DISK و FLOPPY نام برد


3- گذرگاه یا باس:

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

الف – باس آدرس :برای هر عمل خواندن یا نوشتن
CPU آدرس (موقعیت) داده را با قرار دادن یک آدرس روی باس آدرس به حافظه ارسال می کند.

ب - باس کنترل :با قرار دادن آدرس بر روی باس آدرس یک سیگنال کنترلی بر روی گذرگاه کنترل قرار می گیرد که مشخص می کند که عملیات مورد نظر خواندن است یا نوشتن در حافظه.

ج‌- گذرگاه داده : برای عملیات خواندن یک بایت داده بر روی گذرگاه داده توسط حافظه قرار داده می شود و برای عمل نوشتن یک بایت داده توسط
CPU بر روی گذرگاه داده قرار می گیرد .
علاوه بر سیگنالهای کنترلی
READ و WRITE سیگنال کنترلی دیگری هم با نام CLOCK وجود دارد که برای هم زمان کردن واحدها به کار می رود.

4 – واحد های ورودی و خروجی :

این واحد مسئول ارتباط با دنیای خارج است و توانایی اتصال سیستم ها را به کامپیوتر می دهد .

از کامپیوتر با نام ماشین برنامه پذیر نام بردیم . حال ببینیم برنامه چه تعریفی دارد.

برنامه:

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

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

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

CPU تنها با داده های باینری کار می کند بنابراین هر دستور العمل نوشته شده توسط برنامه نویس باید به مقدار معادل باینری (همان زبان ماشین) آن تبدیل شود و سپس اجرا شود.
یک سیکل واکشی دستور به صورت زیر می باشد:

1- مقدار
PC یا شمارنده برنامه بر روی گذرگاه آدرس قرار می گیرد .
2- سیگنال کنترلی
READ بر روی گذرگاه کنترل قرار می گیرد
3- داده ( کد عملیاتی دستورالعمل) از حافظه خوانده می شود و روی گذرگاه داده قرار می گیرد
4- کد عملیاتی در ثبات
IR قرار می گیرد
5- شمارنده برنامه به ابتدای دستور بعدی اشاره میکند( اغلب گفته می شود که شمارنده برنامه یک واحد افزایش می یابد اما گاهی اوقات 2 واحد و گاهی 3 واحد افزایش پیدا می کند در حقیقت شمارنده برنامه به اندازه طول دستور فعلی افزایش پیدا می کند.)

مرحله ی اجرا شامل کد گشایی و ایجاد سیگنالهای کنترلی لازم برای باز کردن ثات های
CPU و قرار دادن محتویات آنها در ALU و مجددا قرار دادن نتیجه عملیات در ثبات ها است.

مقایسه ریز پردازنده و میکرو کنترلر :

ریز پردازنده یک
IC است که فقط شامل CPU است اما میکرو کنترلر مدارات اضافی دیگری در داخل همان IC قرار داده شده است که میکرو کنترلر را تبدیل به یک میکرو کامپیوتر کرده است ( البته در مقیاس کمتر) مدارات دیگری همانند ROM,RAM, timer, و رابط سریال و پردازش وقفه و...
اما برای اینکه یک میکروپروسسور به عنوان یک میکرو کامپیوتر عمل کند به مدارات ذکر شده بالا در خارج
IC نیازمندیم که این مدارات هم حجم و هم هزینه را به طور نمایی افزایش می دهند .
اما ریز پردازنده و میکرو کنترلر از نظر معماری داخلی به هیچ وجه قابل مقایسه نیستند ریز پردازنده برای انجام اعمال پردازشی بسیار پیچیده در سرعت بالا طراحی شده است و نتیجتا معماری آن بسیار پیچیده تر از معماری میکرو کنترلر خواهد بود .
تفاوت دیگر میکرو کنترلر و میکرو پروسسور در مصرف توان آنهاست .میکرو کنترلر توان بسیار کمتر از توان مصرفی میکرو پوسسور لازم دارد چون مدارات آن نسبت به میکروپروسسور بسیار کمتر است و این یک مزیت برای طراحی مدارات می باشد.
   

 

منبع: http://electronic-girls.blogfa.com/post-49.aspx

 

+ نوشته شده توسط افشین در سه شنبه سی و یکم مرداد 1385 و ساعت 13:31 |

 

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

مشکلاتی مثل پیچیدگی در طراحی- تحلیل- پیاده سازی- همامنگی و ...

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

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

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

 اگر دقیق تر بخوام بگم اول باید یکی از خانواده های موجود رو انتخاب کنید وبعد  با توجه به نیازتون یه میکرو از میکروهای اون خانواده انتخاب کنید- برای شروع من خانواده PIC  سری 16F84  رو پیشنهاد میکنم. این میکرو 18 پایه است با دوتا پورتI/O   که شامل 13 درگاه ارتباطی بوده که تا اطلاع ثانوی کافیه. سایر جزئیات این خانواده رو بعدا کامل براتون میگم.

 مرحله بعد انتخاب یه زبان استاندارد میکرو و کامپایلر اونه. برای خانواده PIC میتوان از زبان های اسمبلی- پاسکال- بیسیک و C که برای PIC طراحی شده استفاده کرد که اندکی با حالت استاندارد تفاوت دارند. تفاوت بیشتر در دستورات خاص میکرو است که برای کامپیوتر استفاده نمی شوند.

 کامپایلرهای موجود برای زبان بیسیک  PICBASIC  و PRO  PICBASIC .

PRO  PICBASIC  دارای چند قابلیت اضافه در مقایسه با PICBASIC است و درمجموع کار کمی با PICBASIC متفاوت است.  این نرم افزار از   MicroCode Studio    بوده و نسخه رایگان آن Version 2.2.1.1 از آدرس زیر قابل دانلود است.

 

http://www.melabs.com/pbpdemo.htm

 

 با وجود تمام کتاب هایی که در مورد برنامه نویسی به عنوان مرجع یا راهنما وجود دارد بهترین راهنما استفاده از Help  و Sample موجود در برنامه است که به کمک آن علاوه بر لیست تمامی دستورات- قالب کلی و ترکیب دستورات مختلف نیز موجود است. البته در مورد زبان C   بهتر است اول C استاندارد فراگرفته شود تا تغیرات C برای PIC راحت تر قابل درک باشد.

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

 از اون جایی که من می خوام در مورد PIC ها صحبت کنم اسم پروگرامر ما می شهPIC Programmer .

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

 توی این سایت میتونین تعدادی از پروگرامرهای استاندارد که نرم افزار اون رو می شناسه رو پیدا کنید:

 

http://www.ic-prog.com/index1.htm

 

پروگرمری که در ادامه می بینید رو از یکی از دوستان گرفتم. این یکی قادر به پروگرام کردن تمام میکروهای PIC است و چند تا EEPROM است.

  

 

 

                     

 

 

 

 

 

 

 

 

+ نوشته شده توسط افشین در شنبه بیست و هشتم مرداد 1385 و ساعت 6:11 |