Quantcast
Channel: JH7UBCブログ
Viewing all articles
Browse latest Browse all 440

PIC16F628A Blink

$
0
0
 今回からPICの品種をPIC16F628Aに変更します。

 このPICのファミリーは、627A, 628A,648Aの3種類あります。違いは、フラッシュメモリとEEPROMの容量の違いです。
 PIC16F628Aは、これまで使っていたPIC16F84(84A)に比べると多くの機能をもっています。その分、CONFIをはじめ、様々な設定が必要になります。

 とりあえず、動作確認のために、Lチカをやってみます。

 PIC16F628Aは、内臓発振器を持っていますので、外付けのレゾネータを省くことができます。(CONFIGで、FOSC = INTOSCIOにします。)発振周波数は、PCONレジスタの設定で、4MHzと47KHzを選ぶことができます。(ディフォルトは、4MHzですので、今回は、PCON設定はしません)

 更に4番ピンは、CONFIGの設定で、入力ピンRA5として使うことができます。(MCLRE = OFF)

 RA0~RA3はディフォルトでアナログ入力になっていますので、デジタルIOとして使う場合は、CMCONレジスタを

 0x07に設定します。

 回路図です。RB0に接続したLEDを0.5secごとに点滅させます。非常に簡単です。

イメージ 1

 ブレッドボードです。電源は、FT234からとっています。

イメージ 2

 プログラムです。

#include <xc.h>
#define _XTAL_FREQ 4000000

// CONFIG
#pragma config FOSC = INTOSCIO  // Oscillator Selection bits (INTOSC oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN)
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = ON       // Power-up Timer Enable bit (PWRT enabled)
#pragma config MCLRE = OFF      // RA5/MCLR/VPP Pin Function Select bit (RA5/MCLR/VPP pin function is digital input, MCLR internally tied to VDD)
#pragma config BOREN = OFF      // Brown-out Detect Enable bit (BOD disabled)
#pragma config LVP = OFF        // Low-Voltage Programming Enable bit (RB4/PGM pin has digital I/O function, HV on MCLR must be used for programming)
#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)

void main() {
    CMCON = 0x07;//comparators OFF
    TRISA = 0b00100000;//RA5は入力他は出力
    TRISB = 0x00;//PORTBは全て出力
    PORTA = 0x00;//PORTAクリア
    PORTB = 0x00;//PORTBクリア
    while(1){
        RB0 = 1;//
        __delay_ms(500);
        RB0 = 0;
        __delay_ms(500);
    }
}

Viewing all articles
Browse latest Browse all 440

Trending Articles