mikroCでPICを使う

by K.I
2009/01/15

Index


概要


1そうじゃない使い方も出来ると思うけど

[top]

環境設定

Cコンパイラ・インストール

ICprogインストール

PIC ProgrammerV4


[top]

テストボード

16F628

リセット回路

テストボード回路

ブレッドボードによる配線


[top]

プログラムの準備

コンフィグレーション

ポート設定

プロジェクト作成


2IC-progで書込むので、この設定はおそらく無意味。

[top]

プログラムする

プログラムの仕様

単純なプログラム

#define Q_CK 1
#define H_CK 2

unsigned char key;

void setup_port() {

        TRISA   = 0b00000000;   // RA Output
        TRISB   = 0b00001111;   // RB4-7:Output, RB0-3:Input
        PORTA   = 0b00000000;   // RA=00000000
        PORTB   = 0b11110000;   // RB=11110000

        CMCON = 0b00000111; // ComparatorMode OFF
        OPTION_REG.F7 = 0;  // RB Pull-Up
        PCON.F3 = 1;        // INTOSC 4MHz
}

unsigned char switch_read() {

        return(~PORTB&0x0F);
}

//      RB5     SMD
//      RB6     SDI
//      RB7     SCK

void sck_out(unsigned char n) {
        unsigned char i;

        for (i=0; i<n ;i++) {
                Delay_ms(H_CK);
                PORTB.F7 = 0;
                Delay_ms(H_CK);
    PORTB.F7 = 1;
        }
}

void output_1(void) {

        PORTB.F5 = 0;

        sck_out(10);

        Delay_ms(Q_CK);
        PORTB.F6 = 0;
        Delay_ms(Q_CK);
        PORTB.F7 = 0;
        Delay_ms(H_CK);
        PORTB.F7 = 1;

        sck_out(5);

        Delay_ms(H_CK);
        PORTB.F7 = 0;
        Delay_ms(Q_CK);
        PORTB.F6 = 1;
        Delay_ms(Q_CK);
        PORTB.F7 = 1;

        sck_out(10);
        
        PORTB.F5 = 1;

        Delay_ms(250);
        Delay_ms(250);
        Delay_ms(250);
        Delay_ms(250);
}

void main() {

        setup_port();

        while(1) {
                key = switch_read();
                        switch (key) {
                        case 1:
                                output_1();
                                break;
                        default:
        break;
                }
        }
}

コンパイル


[top]

プログラム書込み

IC-progの接続

IC-progの使い方

Verify failed at address 0000h!


[top]

PIC ProgrammerV4の使い方


[top]

まとめ

メモ

MikroCについて



comments powered by Disqus