記事一覧

UBW基板でMikcroC

2009.07.29


先日作ったUBW基板MikroCでプログラミングしてみました。
基板をブレッドボードに挿し、cdsから読み取ったアナログ値をLCDに表示させるというものです。
Swordfish添付のサンプルプログラムADIn.basと同じ機能をC言語で書いてみたのが以下のコードです。


void main() {
unsigned int temp;
char dsp[7];

PORTC = 0;
TRISC = 0;
TRISB = 0;
TRISA = 0xFF;
ADCON0 = 1;
ADCON1 = 0x7;

// Lcd_Init(&PORTB);
Lcd_Config(&PORTB, 3, 2, 1, 7, 6, 5, 4);
Lcd_Cmd(Lcd_CLEAR);
Lcd_Cmd(Lcd_CURSOR_OFF);

while(1) {
PORTC.F0 = ~PORTC.F0;
PORTC.F1 = ~PORTC.F0;
temp = (Adc_Read(0) + 1) * 500 / 1024;
Delay_ms(500);
IntToStr(temp, dsp);
Lcd_Out(1, 1, "DC Volts");
Lcd_Out(2, 1, dsp);

}
}


// Lcd_Init(&PORTB);
の部分はLCDの配線をSFC用にしているため、
Lcd_Config(&PORTB, 3, 2, 1, 7, 6, 5, 4);
に置き換えています。
PORTC.F0 = ~PORTC.F0;
PORTC.F1 = ~PORTC.F0;

はLEDの赤と緑を交互に点滅させるオマケです。
コードの行数はSFCと遜色ないですが、18PICともなるとレジスタ設定が多岐にわたり、ちょっと大変でした。

タグ:PIC 18F2550 ADC LCD UBW