آموزش PICتازه هامیکروکنترلر

آموزش PIC اتصال کلید به PIC (قسمت سوم)

در الکترولب قبلا دو قسمت از آموزش PIC رو نوشتم این آموزش نیز در ادامه همان آموزش ها می باشد. این آموزش ها همراه با شبیه سازی پروتیوس بوده تا دوستان نیازی به خریدن ابزار جدید نداشته باشن و بتونن از آموزش ها استفاده کنند. در قسمت های قبلی نحوه ی استفاده از برنامه ی mplab X رو آموزش دادم و یک led چشمک زن به عنوان اولین پروژه راه اندازی کردیم. در ادامه به نحوه اتصال کلید به میکروکنترلر PIC می پردازیم.

 شماتیک لازم برای اتصال کلید به PIC

pic16f877برنامه ی اتصال کلید به PIC

عملکرد برنامه به این صورت است که وقتی کلید فشار داده می شود led متصل به پایه ی RB0 سه ثاینه روشن شده و بعد خاموش می شود.

#define _XTAL_FREQ 8000000

#include <xc.h>

// BEGIN CONFIG
#pragma config FOSC = HS // Oscillator Selection bits (HS oscillator)
#pragma config WDTE = ON // Watchdog Timer Enable bit (WDT enabled)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
#pragma config BOREN = ON // Brown-out Reset Enable bit (BOR enabled)
#pragma config LVP = OFF // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming)
#pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off)
#pragma config WRT = OFF // Flash Program Memory Write Enable bits (Write protection off; all program memory may be written to by EECON control)
#pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off)
//END CONFIG

int main()
{
  TRISB0 = 0; //RB0 as Output PIN
  TRISD0 = 1; //RD0 as Input PIN

  RB0 = 0; //LED Off

  while(1)
  {
    if(RD0 == 0) //If Switch Pressed
    {
      RB0 = 1; //LED ON
      __delay_ms(3000); //3 Second Delay
      RB0 = 0; //LED OFF
    }
  }
  return 0;
}

 توضیح برنامه اتصال کلید به PIC:

رجیستر TRIS:

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


رجیستر PORT:

اگر به هریک از بیت های این رجیستر مقدار ۱ داده شود پین متناظر از پورت در صورت خروجی بودن به HIGH تغییر وضعیت می دهد. و اگر ۰ مقدار دهی شود وضعیت پین مورد نظر به LOW تغییر می کند. در پایین نمونه مثالی در مورد نحوه ی مقدار دهی به این رجیستر ها قرار می دهم.

TRISC0 = 1; //Makes 0th bit of PORTC Input
TRISC5 = 0; //Makes 5th bit of PORTC Output
RB3 = 1; //Makes 3ed bit of PORTB at Logic High
RB7 = 0; //Makes 7th bit of PORTB at Logic Low

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

اگر در فهم برنامه مشکلی داشتید بگید تا بیشتر توضیح بدم.

 

علی عزتی

علی عزتی هستم. رشته ی مهندسی برق الکترونیک رو خوندم. علاقه ی من به یادگیری و به اشتراک گذاشتن چیز هایی که یاد گرفتم. باعث شد تا الکترولب ایجاد بشه. علاقه ی زیادی به الکترونیک دارم. و دوست دارم چیزهای جدید یادبگیرم و بسازم ... :))

Related Articles

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

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

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.