led چشمک زن با میکرو کنترولر PIC18F452

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

شما می توانید پی دی اف آموزش روشن و خاموش کردن یک LED  را  از ابتدا تا انتهاکه با  نرم افزار proteus طراحی و با mikroc کد نویسی شده است، از لینک زیر دریافت نمایید:

 

Download

 

one1LED در حالت مصرف کننده جریان

پایه آند LED ،  توسط یک مقاومت، به تغذیه ۵ ولت و کاتد آن، به پورت خروجی میکروکنترلر، متصل شده است. 

oledLED در حالت منبع جریان 

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

twoاینجا دو LED را مشاهده میکنید که به فاصله زمانی ثابتی روشن و خاموش میشوند. 8ledاینجا هشت LED را مشاهده میکنید که به فاصله زمانی ثابتی روشن و خاموش میشوند.

 


تشریح کد نویسی در mikroC برای یک led به زبان سی


void main()//شروع برنامه

{

 TRISB.F0 = 0;// خروجی می کند PORTB0 یا RB0 پین

while(1) //یک حلقه نامتناهی که در داخل آن ال ئی دی متناوبا خاموش و روشن میشود

{

  PORTB.F0 = 1;//  رایک کرده و ال ئی دی را روشن میکند RB0  پین

 Delay_ms(1000);//یک ثانیه تاخیر

 PORTB.F0 = 0;   // را صفر کرده و ال ئی دی را خاموش میکند RB0  پین

Delay_ms(1000);

  }

}


برنامه ریزی پورتهای ورودی/خروجی میکروکنترلر pic


 

بسته به میکروکنترلری که استفاده میکنیم، پورتهای ورودی/خروجی میکروکنترلر pic18f452 دارای نامهای A, B, C, D, E میباشد. پایه های این پورتها ممکنه آنالوگ یا دیجیتال باشد. در مد آنالوگ، این پایه ها ورودی هستند و به مدارات آنالوگ به دیجیتال متصل میشود. در مد دیجیتال میتوان این پورتها ورودی یا خروجی تعریف کرد.

رجیستر TRIS مسیر پورت ها را تعیین میکند. برای هرپورت یک ریجیستر TRIS وجود دارد. ۰ کردن  یک بیت این رجیستر، پایه پورت متناظرش را خروجی میکندو بر عکس.

PORT ها از طریق یک رجیستر ۸ بیتی یا بیت های پورت قابل دسترسی هستند.مثلا اگر پورتی را بخواهیم به صورت خروجی تعریف شود، باید همه پایه های آن ۱ شود.

 


تشریح کد نویسی در mikroC برای دو led به زبان سی


void main()

{

  TRISB.F0 = 0;

  TRISB.F1 = 0;

  while(1)

  {

    PORTB.F0 = 1;

    Delay_ms(1000);

    PORTB.F0 = 0;

    Delay_ms(1000);

    PORTB.F1 = 1;

    Delay_ms(1000);

    PORTB.F1 = 0;

    Delay_ms(1000);

}

روش دیگر ///////////////////////////////////////////////////////////////////////////////

int unsigned Counter;

void main() {

 trisB = ۰;

 while(1)

 {

  portB = 0x01; // روشن میشود LED

 for(Counter = 0; Counter < 2;Counter++)

  {

   delay_ms(1000);

   portB = portB << 1; // بعدی میشودLED یک شیفت به چپ باعث روشن شدن

  }

 }

}


تشریح کد نویسی در mikroC برای هشت  led به زبان سی


 

void main()

{

  TRISB.F0 = 0;

  TRISB.F1 = 0;

   TRISB.F2 = 0;

   TRISB.F3 = 0;

   TRISB.F4 = 0;

   TRISB.F5 = 0;

   TRISB.F6 = 0;

   TRISB.F7 = 0;

  while(1)

  {

    PORTB.F0 = 1;

    Delay_ms(1000);

    PORTB.F0 = 0;

    Delay_ms(1000);

    PORTB.F1 = 1;

    Delay_ms(1000);

    PORTB.F1 = 0;

    Delay_ms(1000);

    PORTB.F2 = 1;

    Delay_ms(1000);

    PORTB.F2 = 0;

    Delay_ms(1000);

    PORTB.F3 = 1;

    Delay_ms(1000);

    PORTB.F3 = 0;

    Delay_ms(1000);

    PORTB.F4 = 1;

    Delay_ms(1000);

    PORTB.F4 = 0;

    Delay_ms(1000);

    PORTB.F5 = 1;

    Delay_ms(1000);

    PORTB.F5 = 0;

    Delay_ms(1000);

    PORTB.F6 = 1;

    Delay_ms(1000);

    PORTB.F6 = 0;

    Delay_ms(1000);

    PORTB.F7 = 1;

    Delay_ms(1000);

    PORTB.F7 = 0;

    Delay_ms(1000);

  }

}

//////////////////////////////////////////////////////////////////////////////////////////////

int unsigned Counter;

void main() {

 trisb = 0;

 while(1)

 {

  portb = 0x01;

  for(Counter = 0; Counter < 8; Counter++)

  {

   delay_ms(1000);

   portb= portb << 1;

  }

 }

}

معرفی میکروکنترلر PIC18F452

download

 

 

میکروکنترلر چیست وچگونه میتوانیم از آن استفاده کنیم؟

در بسیاری از وسایل خانگی مثل مایکروفر ها ، یخچال ها و… از میکروکنترلر استفاده میشود. میکروکنترلر یک کامپیوتر تک تراشه ای است.

میکرو یعنی کوچک بودن ابزار، کنترلر یعنی کنترل کردن آن

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

میکروپروسسور از یک cpu و یک cu تشکیل شده است.

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

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

میکروکنترلر های خانواده pic توسط شرکت Microchip Technology تولید می شود و در حال حاضر یکی از پر کاربردترین میکروکنترلر  در مصارف تجاری و صنعتی است. میکروکنترلر بر اساس تعداد بیتهای باس داخلی طبقه بندی میشود که براین اساس pic18، هشت بیتی میباشد.

ویژگیهای تراشه PIC18F452

حافظه برنامه (بایت)                        ۳۲k

حافظه داده  (بایت)                        ۱۵۳۶                   

EEPROM   (بایت)                          ۲۵۶                                 

I/O    پورتهای                             A,B,C,D,E

تعداد تایمر                                   ۴

منابع وقفه                                   ۱۸

۲                                        PMW

ارتباط سریال                              MSSP,USART

 A/D  مبدل                                 ۸

تشخیص ولتاژ کم                           بله

brown-out reset                          بله

پکیج                                        ۴۰-PIN DIP

طبق شکل این تراشه  ۴۰ پایه دارد و در یک پکیج DIP قرار داده شده است.

منبع: میکروکنترلرهای PIC-مهندس هوار بطحایی