همانطور که در آموزش یک زبان برنامه نویسی جدید اولین برنامه !Hello World نام دارد ، اولین برنامه در برنامه نویسی یک میکروی جدید Blinky نام دارد. در برنامه Blinky یکی از پایه های میکرو به تناوب ۰ و ۱ (دیجیتال) میشود . یعنی بین ۰ ولت و مقدار تغذیه میکرو تغییر میکند. در صورتیکه یک LED به پایه مذکور اتصال یابد LED شروع به چشمک زدن میکند .
برای اجرای اولین برنامه مدار زیر را میبندیم. توجه کنید پایه MCLR باید حتما به سطح تغذیه High در مدار ما وصل شود .دربرنامه زیر ابتدا فرکانس کاری کریستال میکرو برای برنامه مشخص شده است . بعد از اضافه کردن فایل
/*
* File: XC8.c
* Author: Ali
*
* Created on July 13, 2017, 9:18 AM
*/
#define _XTAL_FREQ 16000000
#include < xc.h>
// BEGIN CONFIG
#pragma config FOSC = HS // Oscillator Selection bits (HS oscillator)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#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
while(1)
{
RB0=1;
__delay_ms(1000);
RB0=0;
__delay_ms(1000);
}
return 0;
}
تنظیمات config میکرو:
در میکروی pic16f877a که آموزش قسمتهای آن را در دست داریم config به شرح زیر است، توجه داشته باشید که در میکروهای دیگر این تنظیمات میتواند تغییراتی داشته باشد که باید به datasheet سازنده مراجعه کرد .
pragma config FOSC =
با این خط نوع منبع کلاک میکرو را مشخص میکنیم. در صورتیکه از کریستال خارجی فرکانس بالا استفاده کنیم HS و در صورتیکه از کریستال ساعت ۳۲ کیلوهرتز استفاده کنیم از LP ، در صورتیکه از کریستال خارجی با توان متوسط و سرعت کم استفاده کنیم از عبارت XT استفاده میکنیم. تنظیمات مربوط به منبع کلاک به صورت زیر است:
EXTRCCLK: Use an external RC oscillator circuit. The RC oscillator is connected to pin RA5/OSC1/CLKIN and the clock signal is outputted via the RA4/OSC2/CLKOUT pin.
EXTRCIO: Use an external RC oscillator. The RC oscillator is connected to pin RA5/OSC1/CLKIN and the RA4/OSC2/CLKOUT pin is available for I/O.
INTRCCLK: Use the internal RC oscillator. Pin RA4/OSC2/CLKOUT operates as CLKOUT and pin RA5 is available for I/O.
INTRCIO: Use the internal RC oscillator. Pins RA4 and RA5 are available for I/O.
LP: Low power external crystal oscillator on pins OSC1 and OSC2. This mode offers low power consumption and is only designed for 32kHz watch crystals.
XT: External crystal/resonator on pins OSC1 and OSC2 (RA5 and RA4). This is the medium gain setting appropriate for crystals with a medium drive level specification. This is the mode you will probably use.
HS: External crystal/resonator on pins OSC1 and OSC2 (RA5 and RA4). This is the high gain setting appropriate for crystals with a high drive level specification.
EC: External clock. Use this if you already have a logic level clock signal in your circuit. The clock signal is connected to RA5/OSC1/CLKIN and RA4/OSC2/CLKOUT is available for I/O.
WDTE: تعیین میکند آیا تایمر نگهبان فعال شود یا نه .
PWRTE: با فعال کردن این قسمت تایمر زمان روشن شدن میکرو فعال میشود. در این حالت به مدت ۶۴ میلی ثانیه میکرو در حالت ریست باقی میماند تا تغذیه سیستم به ثبات برسد.
BOREN:در صورتیکه این قسمت فعال باشد و سطح ولتاژ تغذیه میکرو در طی زمان بیش از ۲۰۰ میکرو ثانیه به زیر ۲.۲ ولت برسد میکرو ریست خواهد شد.این قسمت را میتوان به صورت زیر تنظیم کرد:
ON: Brown-out reset is enabled.
NSLEEP: Enabled during operation and disabled during sleep mode.
SBODEN: Brown-out reset is controlled by software via the SBOREN bit of the PCON register.
LVP:با غیرفعال کردن این قابلیت میتوانیم از پایه RB3/PGM به عنوان یک پایه I/O استفاده کنیم . توجه نمایید که در میکروهای مختلف پایه PGM به پایه های متفاوتی اختصاص داده شده است و این عملکرد در میکروهای مختلف خانواده PIC پایه های مختلفی را به عنوان I/O به کار میگیرد یا از کار میاندازد.
مابقی تنظیمات config مربوط به حفاظت کد در EEPROM و FLASH میکرو میباشد که فعلا خارج از بحث ماست .
هیچ نظری موجود نیست:
ارسال یک نظر