:: در صورت نبودن و یا اشکال لینک دانلود کتاب ها، لطفا در نظرات همان مطلب اطلاع دهید

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

if download link is not working, please tell us in comments field.

آموزش میکروکنترلر پیک (3)(شمارنده باینری)

on . در مجموعه برق و الکترونیک

 مثال امروز ما شمارش به صورت باینری می باشد. یعنی می خواهیم میکرو led   ها را به صورت شمارش باینری روشن کند. هدف اصلی از این برنامه آشنایی با دستور for    می باشد که در واقع یک دستور حلقه ای است.

شکل کلی این دستور به صورت زیر است:

 

For index=start to stop (step(-) inc)

 Body

Next index

از این دستور برای افزایش یا کاهش یک متغیر استفاده می شود. در این دستور index   نام متغیر مورد نظر است که می خواهیم در هر گام به آن افزوده شود یا از آن کاسته شود، start   مقدار اولیه متغیر است و step   مقدار افزایش یا کاهش است که هر بار دستور next   اجرا می شود این افزایش یا کاهش در متغیر اعمال می شود و stop   مقدار نهایی می باشد که هر وقت index=stop   شد، حلقه for   متوقف شده و دستورات بعدی برنامه اجرا می شوند.

Body   نیز دستورات مورد نظر می باشند که می خواهیم میکرو آن را در حلقهfor   اجرا کند.

نکته) اگر هیچ مقداری برای step   در نظر گرفته نشود، هر بار که برنامه به عبارن next   می رسد، متغیر به مقدار یک واحد افزایش می یابد.

این هم برنامه ساده امروز ( شمارش به صورت باینری):

TRISB=0

B0 VAR BYTE

LOOP:

FOR B0=0 TO 255

PORTB=B0

PAUSE 250

NEXT B0

GOTO LOOP

END

با دستورات خط اول و دوم که از قبل آشنا هستید. همانطور که ملاحظه می کنید در این برنامه از ساده ترین شکل حلقه   for استفاده شده است. متغیر B0   از صفر تا 255، یک واحد یک واحد می شمارد و در هر شمارش آن را روی پورت B   نمایش می دهد و 250 میلی ثانیه تاخیر ایجاد می کند.

بعد از این که تا 255 را نشان داد با دستور goto loop   دوباره به ابتدای حلقه ی loop   باز می گردد و یک بار دیگر شمارش را از صفر شروع می کند.

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

 

 

For B2=20 TO 10 step -2

Next

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

scheme3

 

ساعت با قابلیت تنظیم ساعت و دقیقه

on . در مجموعه برق و الکترونیک

ساعت با قابلیت تنظیم ساعت و دقیقه و ثانیه

 اجزاي مدار
 PIC16F876-LCD LM016L
  زبان برنامه نويسي: C
 محتوايات پوشه:
 سورس كد و فايل پروتئوس و  فايل هگز (HEX)
 

عملکرد مدار

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

دانلود

 منبع : www.eca.ir

آموزش میکروکنترلر پیک (2)(led راه رونده)

on . در مجموعه برق و الکترونیک

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

TRISB=0

SYMBOL B=PORTB

B0 VAR BYTE

MAIN:

B0=1

B=B0

PAUSE 100

SUB:

B0=B0*2

B=B0

PAUSE 100

IF B0=%10000000 THEN MAIN

GOTO SUB

END

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

 

خط دوم: از دستور symbol استفاده شده، با استفاده از این دستور می توان مثلا برای پورت B یک کلمه ی دیگر قرار داد کرد. که ما دراینجا از B به جای پورت B استفاده کردیم. یعنی هرجا در برنامه از کلمه B استفاده کردیم ، منظورمان همان PORTB است.

 

برنامه اصلی : برای این که منظورمان را پیاده کنیم می توانیم از راه حل زیر استفاده کنیم: بدین صورت که ابتدا خروجی پورت B، یک شود، سپس 10 شود، و پس از آن 100 و همینطور تا  10000000 ادامه دهیم و دوباره به حالت اول برگردیم. یکی از ساده ترین راه ها برای تحقق این راه حل استفاده از دستور فوق در برنامه است:

 

1

10×1=10

10×10=100

10×100=1000

.

.

عدد 10 اول در مبنای ده همان 2 می باشد که در برنامه استفاده کردیم. بعد از رسیدن به  10000000 باید برنامه به حالتی برگردد که خروجی 1 شود که برای این منظور از یک حلقه استفاده می کنیم.

شماتیک مدار:

1.jpg

 

اکنون مانند قسمت قبل این آموزش(قسمت اول)، فایل hex را ساخته و در میکرو LOAD می کنیم و برای اجرای برنامه روی گزینه run کلیک می کنیم.

در اینجا لازم می دانم چند نکته را هم در پایان این قسمت قرار دهم.

 

نکته 1) به جای استفاده از دستور PORTB=B0 می توانیم از دستور POKE PORTB,B0 استفاده کنیم.

 

نکته 2) برای تعریف یک متغیر جدید از دستور VAR استفاده می کنیم. اگر بعد از آن BYTE استفاده کنیم، متغیرمان یک بایتی در نظر گرفته می شود. بهتر است از B0,B1,…,B51 برای متغیر بایتی استفاده کنیم. و برای متغیرهای دوبایتی از W0,W1,…,W52 استفاده کنیم. W0 از B0,B1 تشکیل شده است.

 

نکته3) یک بایت از 0 تا 255 می تواند بشمارد.(یعنی 2 به توان 8)

 

نکته 4) یک کلمه از دو بایت تشکیل شده است.

 

آموزش میکروکنترلر پیک (1)(چشمک زن ساده)

on . در مجموعه برق و الکترونیک

از امروز قصد دارم آموزش کار با میکروکنترلر PIC را به صورت مثال شروع کنم. برای این منظور از مثال های بسیار ساده شروع می کنیم و کم کم سطح پروژه ها را بالا می بریم. همچنین برای کم کردن هزینه و ... ، فعلا به صورت عملی کار نمی کنیم و فقط آن ها را شبیه سازی می کنیم.

ابتدا لازم است نرم افزارهای مورد نیاز را برای تمرین فراهم کنید که لیست آن ها به قرار زیر می باشد:

 

1- Micro Code Studio (برای نوشتن برنامه ها و کامپایل کردن – من خودم از ورژن 2.1 استفاده می کنم)

2- نرم افزار شبیه ساز proteus (بهترین نرم افزار برای شبیه ساز میکروها می باشد – هم اکنون آخرین ورژن آن 7.4 می باشد)

بعد از نصب این دو نرم افزار کار را شروع می کنیم.

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

مثال 1) می خواهیم یک LED با فاصله زمانی 1 ثانیه چشمک بزند.

اول باید برنامه مربوطه را بنویسیم.

می خواهیم این مثال را روی میکروی 16F84A اجرا کنیم. این میکرو دارای دو پورت A و B (پورت A چهار پایه و پورت B 8 پایه دارد) به عنوان پایه های خروجی یا ورودی است. منظور از خروجی این است که داده از پردازشگر میکرو به پایه های آن ارسال می شود و منظور از ورودی این است که داده از محیط خارج از میکرو و توسط این پایه ها به پردازشگر میکرو می رسد.

 

 

حال برنامه Micro Code Studio را اجرا می کنیم و شروع می کنیم به نوشتن برنامه چراغ چشمکزن.

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

TRISB=%00000000

این دستور تمام 8 پایه پورت B را به عنوان خروجی تعریف می کند. علامت % نشان دهنده باینری بودن این عدد می باشد.

برنامه Micro Code Studio پورت ها را به این صورت می شناسد: مثلا برای پورت B0، portb.0

حالا باید به میکرو بگوییم پورت b0 را یک کند، یعنی روشن کند:

portb.0=1

 

سپس می خواهیم این پورت 1 ثانیه روشن بماند:( عدد جلوی دستور PAUSE تاخیر بر حسب میلی ثانیه می باشد)

pause 1000

پورت b.0 خاموش شود:

portb.0=0

دوباره یک ثانیه تاخیر و بعد دوباره به دستور portb.0=1 برگردد، پس کل برنامه به صورت زیر شد:

TRISB=%00000000

MAIN:

portb.0=1

pause 1000

portb.0=0

pause 1000

goto main

end

(باید در انتهای هر برنامه از دستور end استفاده شود.)

حال از منوی کشویی بالای برنامه Micro Code Studio میکروی 16F84A را انتخاب می کنیم. سپس روی دکمه save کلیک می کنیم و در انتها روی گزینه compile only کلیک می کنیم. حال در جایی که save کردیم می بینیم که یک فایل با پسوند hex وجود دارد. از این فایل برای شبیه سازی در پروتئوس استفاده می کنیم.

برنامه پروتئوس را باز کرده و شماتیک را مثل زیر می بندیم:

1.jpg

نکته) در تنظیمات میکرو فرکانس را روی 4 مگاهرتز (برابر با کریستال خارجی) انتخاب می کنیم. در همین پنجره یعنی تنظیمات میکرو آدرس فایل hex را وارد می کنیم و روی ok کلیک می کنیم.

منظور از VDD همان ولتاژ 5 ولتی منبع تغذیه می باشد.

سپس روی دکمه Run کلیک کرده و نتیجه را مشاهده کنید.

 

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

on . در مجموعه برق و الکترونیک

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

یک میکرو پروسسور در واقع یک (Central Processor Unit)CPU یا همان بخش مرکزی پردازش می باشد. همانطور که از نام آن بر می آید وظیفه پردازش اطلاعات را بر عهده دارد.میکروپروسسور برای انجام این وظیفه نیاز به ثبت دستور العملها (ROM)، محلی برای اجرای فرامین (RAM) و ارتباط با محیط خارج (پورتهای I/O) دارد.که باعث افزایش هزینه و کندی سرعت می شوند. از معروفترین میکروپروسسورها می توان از میکروپروسسور Z80 یاد کرد.

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

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

1.CPU

2.حافظه ثبت دستور العملها ROM

3.حافظه اجراء فرامین RAM

4.پورتهای ورودی و خروجی I/O

5.شمارنده و تایمر

6.باس داده،باس کنترل

7. مبدل آنالوگ به دیجیتال

8.پورت سریال

و .............

از میکروکنترلر های معروف میتوان به خانواده 8051 ،AVR ،PIC اشاره کرد.
 
 

ساختار یک میکروکنترلر

تاریخچه میکروکنترلر های PIC

شرکت General Instrument مبتکر اصلی ساخت و استفاده از CPU 16 بیتی با نام CP1600 بود.در حالی که این CPU بطور کلی از نظر عملکرد از عملکرد خوبی برخوردار بود اما به سبب ضعف در کارایی پورتهای ورودی و خروجی این شرکت PIC هشت بیتی را در سال 1975 برای بهبود کلی در سرتا سر سیستم بوسیله حذف وظایف پورتهای ورودی و خروجی از CPU بوجود آورد. این کار با استفاده از یک ذخیره سازی ساده Microcode در ROM انجام پذیرفت اگر چه هم اکنون از این تکنولوژی در ساخت PIC استفاده نمی شود.

در حال حاضر علامت تجاری PIC و PICmicro برای شرکت MICROCHIP Technology ثبت شده و میکروکنترلر های PIC توسط این شرکت تولید می شود.

PIC ابتدایی از سر کلمات "Peripheral Interface Controller" توسط شرکت General Instrument گرفته شده بود.برای PIC پیشرفته تر همچون PIC1640 و PIC1650 از سر کلمات "Programmable Interface Controller" استفاده شده است.
.
 
 
 
 
 
 
انواع خانواده PIC از نظر ساختار هسته

" 12 هسته ای Baseline Core

" 14 هسته ای Mid-Range Core  

" 16 هسته ای High End Core


در حال حاظر با توجه به قدرتمندی این میکروکنترلر ، PIC از سرکلمات با معنی واقعی "Programmable Intelligent Computer" به معنای کامپیوتر هوشمند قابل برنامه ریزی نشات گرفته شده است.
 

سالها پیش شرکت general یک تراشه با نام pic1650 تولید کرد که به صورت کامپیوتر هوشمند قابل برنامه ریزی مطرح شد.


این تراشه مادر پیک بود و از لحاظ کارکرد با pic16c54 موجود مشابه است که عمدتا بعنوان سخت افزار جانبی میکروپروسسور cp1600 بکار برده می شود و شاید به همین خاطر است که عده زیادی بر این اعتقادند که پیک از سر کلمات کنترلر مدار واسط جانبی گرفته شده است اخیرا کمپانی microchip که سازنده میکرو کنترلرهای پیک می باشد این میکرو کنترلرها را با عبارت PICmicro MCUS معرفی کرده است.
 
 
pic1

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

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

دومین ملاک ساده بودن میکروکنترلر است

کیفیت و قیمت نیز از ملاکهای بارز دیگر آن می باشد.

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

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

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


چرا میکروکنترلر های پیک؟

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

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

 

آخرین کتاب ها