مطالب علمی

LED چشمک زن با میکروکنترلر PIC

خانواده ی PIC16 میکروکنترلر های 8 بیتی هستند که در کنار قیمت مناسب از امکانات مناسبی نیز برخوردار هستند. مثل هر میکروکنترلر دیگری تعدادی I/O دارند اولین و ساده ترین قدم  برای شروع کار با یک میکروکنترلر یادگیری نحوه ی کنترل پایه های I/O در یک میکروکنترلر است. در ادمه رجیستر های لازم برای کار با I/O ها در میکروکنترلر PIC16 توضیح داده خواهد شد.

رجیستر TRIS:

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

port-and-tris-register-in-pic-microcontroller-%d8%a7%d9%84%da%a9%d8%aa%d8%b1%d9%88%d9%84%d8%a8

رجیستر PORT:

اگر به هریک از بیت های این رجیستر مقدار 1 داده شود پین متناظر از پورت در صورت خروجی بودن به HIGH تغییر وضعیت می دهد. و اگر 0 مقدار دهی شود وضعیت پین مورد نظر به 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

برنامه LED چشمک زن با میکروکنترلر PIC

/* 
 * File:   led.c
 * Author: Ali Ezzati
 *
 * Created on February 8, 2015, 5:46 PM
 */
#define _XTAL_FREQ 8000000
 
#include <xc.h>
 
// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.
 
// CONFIG
#pragma config FOSC = EXTRCCLK  // Oscillator Selection bits (RC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, Resistor and Capacitor on RA7/OSC1/CLKIN)
#pragma config WDTE = ON        // Watchdog Timer Enable bit (WDT enabled)
#pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = ON       // RA5/MCLR/VPP Pin Function Select bit (RA5/MCLR/VPP pin function is MCLR)
#pragma config BOREN = ON       // Brown-out Detect Enable bit (BOD enabled)
#pragma config LVP = ON         // Low-Voltage Programming Enable bit (RB4/PGM pin has PGM function, low-voltage programming enabled)
#pragma config CPD = OFF        // Data EE Memory Code Protection bit (Data memory code protection off)
#pragma config CP = OFF         // Flash Program Memory Code Protection bit (Code protection off)
 
 
 
 
int main()
{
  TRISB0 = 0; //RB0 as Output PIN
  while(1)
  {
    RB0 = 1;  // LED ON
    __delay_ms(1000); // 1 Second Delay
    RB0 = 0;  // LED OFF
    __delay_ms(1000); // 1 Second Delay
  }
  return 0;
}

توضیحاتی در مورد برنامه:

عبارت #define _XTAL_FREQ 8000000  فرکانس کلاک میکروکنترلر را برای برنامه مشخص می کند تا تابع__delay_ms()  زمان مورد نظر را به درستی برای ما ایجاد کند.

عبارت #pragma config  و کدهای بعد از آن بیت های وضعیت میکروکنترلر PIC را تنظیم می کند که در ادمه درباره ی نحوه ی تنظیم این بیت ها بیشتر توضیح میدم.

شماتیک لازم برای راه اندازی LED چشمک زن با میکروکنترلر PIC

blinking-led-using-pic-microcontroller-circuit-diagram-1024x771

 تنظیم بیت های وضعیت میکروکنترلر PIC

برای تنظیم این بیت ها کافیه از منوی window این مسیر رو دنبال کنید.

Window >> PIC Memory Views >> Configuration Bits

pic-memory-views-configuration-bits

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

select-required-configurations

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

generated-configuration-bits-source

دانلود شبیه سازی

نویسنده: علی عزتی

نوشته های مشابه

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

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

دکمه بازگشت به بالا