کد PIC نمونه با نرم افزار CCS

کد PIC

برخی از نمونه کد های PIC که در کلاس PIC تدریس شده اند، در ادامه آمده اند. این کد ها با نرم افزار CCS نوشته شده اند.

کد PIC فرکانس متر

در این کد PIC با استفاده از تایمر 0 که پالس خود را از پایه ی T0CKI دریافت می کند، تعداد پالس های خارجی اعمال شده به این پایه در عرض یک ثانیه که توسط تایمر یک ایجاد می شود، اندازه گیری می کند.

فرکانس متر

دانلود


کد PIC تقسیم کننده ی فرکانسی

تقسیم کننده ی فرکانسی

در این برنامه یک فرکانس تا حداکثر 1KHz به میکروکنترلر اعمال می شود. میکروکنترلر با استفاده از CCP زمان دوره ی تناوب را اندازه می گیرد و بعد از اندازه گیری زمان دوره ی تناوب بستگی به میزان تنظیم تقسیم فرکانسی فرکانس به عددی بین 1 تا 11 تقسیم می شود. در شکل فوق فر کانس ورودی برابر 1KHz می باشد و تقسیم فرکانسی برابر 5 است در نتیجه فرکانس خروجی برابر 200Hz شده است. در شکل فوق آی سی U2 همان میکروکنترلر موجود در برنامه ی فر کانس متر می باشد که وظیفه ی نمایش فرکانس خروجی را بر عهده دارد. آی سی U1 نیز فرکانس ورودی را اندازه گرفته و خروجی را بر N تقسیم می کند.

دانلود


کد PIC وقفه ی خارجی

Ext INT

این برنامه که در قسمتی از برنامه ی بالا نیز بکار رفته است با اعمال یک لبه ی پایین رونده به پایه ی INT0 شمارنده ای که مقدار آن روی پورت D نمایش می یابد و در حالت عادی شمارنده ای در داخل حلقه ی while شمارش می یابد و روی PORTB نشان داده می شود.

دانلود


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

Servo Motor

در این برنامه آی سی U2 با فشردن دو کلید متصل شده به آن می تواند فرکانسی بین 1500 تا 500 هرتز را تولید کند و زاویه ی چرخش موتور نیز با تغییر این فرکانس تغییر می کند. آی سی U1 نیز یک فرکانس متر می باشد که فرکانس رو پایه ی مرکزی سروو موتور را کنترل می کند.

دانلود


کد PIC ارتباط چهار میکروکنترلر به صورت SPI

SPI

در این برنامه یک میکروکنترلر Master شماره ای را دائما می شمارد و این شماره را برای میکروکنترلر اول ارسال کرده، آن را بعلاوه یک کرده و برای میکرو دوم ارسال می کند و مجددا آن را بعلاوه یک کرده و برای میکروی سوم می فرستد.

دانلود


کد PIC ارتباط دو میکروکنترلر به صورت USART

USART

در این برنامه آی سی U2 یک عدد را به صورت صعودی شمارش کرده و آن را از طریق USART برای میکروکنترلر دوم ارسال می کند. میکروکنترلر دوم با دریافت اطلاعات، آنها را روی LCD نشان می دهد.

دانلود


کد PIC راه اندازی آی سی زمان سنج DS1307 و نمایش آن روی LCD

آی سی زمان سنج DS1307

در این برنامه از آی سی زمان سنج DS1307 استفاده شده است. برای بستن عملی مدار باید به پایه های 1 و 2 این آی سی کریستالی با فرکانس 32768 هرتز وصل شود و پایه ی شماره ی 3 به سر مثبت یک باتری 3 ولتی (که به عنوان باتری بک آپ است) وصل می شود و سر منفی باتری نیز زمین می شود. با اتصال باتری پشتیبان اطلاعات زمان می تواند تا 10 سال حفظ شوند.

 

دانلود


کد PIC ساعت دیجیتالی و نمایش آن روی سون سگمنت

ساعت دیجیتالی

در این مدار ساعت، دقیقه و ثانیه بر روی یک سون سگمنت شش رقمی نشان داده می شود. با استفاده از سه کلید موجود در مدار می توان ساعت و دقیقه را تنظیم نمود.

دانلود


کد PIC قفل رمزی

قفل رمزی

در این برنامه رمز پیش فرض 1234 می باشد. کاربر با وارد کردن رمز صحیح و سپس فشردن کلید مساوی می تواند خروجی را (در اینجا PORTA) فعال نماید. در صورتی که کاربر عدد 9999 را وارد کند، رمز قدیم، سپس رمز جدید و مجددا تکرار رمز جدید تقاضا می شود (یعنی وارد شدن عدد 9999 به عنوان تغییر رمز است).

دانلود


کد PIC فلاشر 4 کانال با قابلیت انتخاب مد کاری و سرعت فلاش

فلاشر 4 کانال

در این فلاشر با فشردن کلید Mode می توان مد کاری فلاشر را تعویض نمود. با فشردن کلید های DEC Speed و INC Speed می توان سرعت فلاشر را تنظیم نمود.

دانلود


کد PIC شمارنده صفر تا 99 روی دات ماتریس 8 در 16

شمارنده بر روی دات ماتریس


در این برنامه با استفاده از دو آی سی لچ عدد صفر تا 99 روی ماتریس 8 در 16 نمایش داده شده است. برای ساخت اعداد متغیر از آرایه ی 16 عضوی در حافظه ی SRAM استفاده شده است به طوری که میکروکنترلر کد های دو عدد را که قرار است نمایش یابد (مثل 8 و 5) را از حافظه ی Flash خوانده و در درون این حافظه قرار می دهد و سپس آنها را نشان می دهد.

دانلود


کد PIC تابلوی روان روی LCD کاراکتری

تابلوی روان


در این برنامه ابتدا طول متن نوشته شده مشخص می شود (با رسیدن به کاراکتر Null اسکی) و سپس متنی به طور متحرک روی LCD کاراکتری با حلقه ی for نمایش می یابد.


کد PIC راه اندازی LCD گرافیکی

GLCD

در این برنامه عکس ثابتی بر روی LCD گرافیکی نمایش داده می شود. تمامی توابع این LCD توابع غیر آماده هستند و نوشته شده اند. این نوع نمایشگر به دو نیمه تقسیم می شود که برای کنترل این دو نیمه دو پایه به نام های CS1 و CS2 قرار داده اند. درایور بکار رفته در این نمایشگر KS108 بوده و ابعاد این نمایشگر 128 در 64 پیکسل می باشد. لازم به ذکر است که ترتیب پایه های این نمایشگر که در تصویر فوق می بینید با نمایشگر واقعی که از بازار خریداری می کنید تفاوت دارد.

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

پایه های GLCD



کد PIC ارتباط با ماژول MSSP

ماژول MSSP هم برای ارتباط SPI و هم برای ارتباط I2C بکار می رود.

در شکل زیر ارتباط SPI را مشاهده می کنید که در آن یک میکروکنترلر Master قرار دارد. اگر این میکروکنترلر عدد 10 را برای میکروکنترلر Slave ارسال نماید، میکروکنترلر Slave دما را برای Master ارسال می کند. برای این منظور باید Logicstate را که نقش کلید را در شبیه سازی دارد، یک کنیم. اگر Logicstate صفر باشد، میکروکنترلر Master عدد 20 را ارسال می کند که گیرنده یا همان Slave همین عدد را به فرستنده می دهد.

دانلود

دریافت دما از چندین میکروکنترلر

دریافت دما

این برنامه نیز با ارتباط SPI می باشد که در آن دو میکروکنترلر AVR و دو میکروکنترلر PIC قرار دارند. در این برنامه میکروکنترلر PIC که در مد Master قرار دارد، داده ای را برای میکروکنترلر PIC اراسال می کند (از 0 تا 255 به صورت نمایشی) و میکروکنترلر PIC نیز آن را دریافت کرده و دما را برای میکروکنترلر Master ارسال می کند و این میکروکنترلر آن را نشان داده و به همین شکل دما را از دو میکروکنترلر AVR دریافت می کمد و آنها را هم نشان می دهد.

راه اندازی مبدل آنالوگ به دیجیتال 24 بیتی MCP3550

MCP3550

این آی سی یک آی سی خیلی دقیق است که معمولا در سنسور های وزن بکار می رود ارتباط این آی سی به صورت SPI است و دما را از ورودی خوانده و به صورت یک عدد 24 بیتی بر روی نمایشگر نمایش می دهد. این برنامه مکن است در نرم افزار پروتئوس با تغییر دما خوب عمل نکند.

ارتباط با تراشه ی EEPROM خارجی سری AT24Cxx

AT24Cxx

در این برنامه ابتدا توسط تابع eeprom_write در خانه ی دوم حافظه عدد 0x65 نوشته می شود عدد 0xA0 آدرس آی سی EEPROM است که توسط پایه های A0-A1-A2 تعیین می شود. و پس از آن توسط تابع eeprom_read_n_byte از خانه ی دهم حافظه 16 عدد خوانده شده و در آرایه ی data که در RAM قرار دارد ریخته می شود. این توابع به صورت خام هستند و شما باید آنها را در سایر برنامه ها استفاده نمایید (مانند برنامه ی قفل رمزی)

ارتباط با آی سی DS1307 از طریق ارتباط I2C سخت افزاری

DS1307

در این برنامه زمان و تاریخ از DS1307 خوانده می شود و بر روی LCD نمایش داده می شود. توسط تابع i2c_init فرکانس I2C برابر 25 کیلو هرتز می شود و I2C در مد Master با فرکانس ورودی 4 مگاهرتز راه اندازی می شود. توسط تابع rtc_get_time زمان گرفته می شود و اگر زمان بیش از 59 باشد (یعنی اولین بار است که برق به DS1307 وصل می شود) زمان به صورت پیش فرض 12:00:00 تنظیم میشود. در نهایت مقدار زمان بر روی LCD نشان داده خواهد شد. شما می توانید به این برنامه کلید اضافه کنید تا بتوانید مقدار زمان را تنظیم نمایید

7 thoughts on “کد PIC نمونه با نرم افزار CCS

  1. hosein says:

    سلام با تشکر از آموزش های خودتون لطفا اگر امکانش هست پروژه ساعت دیجیتال با آی سی ds 1307 و نمایش ساعت روی ۷سگمنت رو آموزش بدین با میکرو pic

  2. امیر says:

    سلام مجدد
    مدار راه اندازی سون سگمنت 4دیجیت من با دو تا شیفت رجیستر سریال به موازی 74hc595 بصورت cascaded کار میکنه. این مدار فقط با سه پایه میکروکنترلر فرمان می گیره.
    سوالم ابنه که، چرا مدار فوق با کدی که در آردوینو uno نوشتم کار میکنه ولی با همون کد که به دستورات c کامپایلر mikroC برای میکروی pic18f4520 تبدیل شده کار نمی کنه.
    با احترام

  3. امیر says:

    سلام
    چرا زمان تاخیری که تابع Delay در میکروکنترلر pic18f4520 من ایجاد می کند خیلی بیشتر از زمان واقعی است؟ (مثلا بجای 500 میلی ثانیه، چند ثانیه می شود).

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *