PICマイコンの10ビットA/Dコンバータのプログラム+回路図+LEDバー - PIC電圧計

Posted by kyosuke at 03/30 2008
>>次の記事: PIC電圧計の完成!(C言語バージョン+7セグメントLED)
>>前の記事: PIC電圧計の完成!(アセンブラバージョン)



電圧計の完成!
http://toolible.net/monozukuri/articles/21<br />
とか書いてありますが、上記のページはかなりへたっているので
いつか直さないと直さないとと思っていました。。


最近になって
PICマイコンのA/Dコンバータを使う必要が出てきたので、
ちゃんと使えるようにリバイスします。


A/Dコンバータが付いているやつに、
PIC12F675、PIC16F690、PIC16F877とかがあります。


PIC12F675は8ピンで、
少しピンが足りないので却下。

20ピンのPIC16F690を使いたいところですが、
探したけど持ってなかった。


ということで、
とりあえず今もっている40ピンのPIC16F877で試してみます。
(買い物リストに、PIC16F690を加えておく!)


実物
Vol_reg






プログラム (ほとんどPIC C LITE のサンプルプログラムから)

#include <pic.h>
__CONFIG(0xFF32);

/* ADコンバータの初期化 10ビットを使用 */
void init_a2d(void){
	ADCON0=0;	// select Fosc/2
	ADCON1=0x8E;	// select right justify result. A/D port configuration 0
	ADON=1;		// turn on the A2D conversion module
}

/* AN0(RA0) アナログ→デジタル電圧の読み取り */
short read_a2d(unsigned char channel){
	channel&=0x07;	// truncate channel to 3 bits
	ADCON0&=0xC5;	// clear current channel select
	ADCON0|=(channel<<3);	// apply the new channel select
	ADGO=1;	// initiate conversion on the selected channel
	while(ADGO)continue;
	return(((ADRESH<<8)+(ADRESL)));	// return 10 MSB of the result
}

void main(void){
	short x;

	init_a2d();	// initialise the A2D module
	GIE=0;		// we don't want interrupts
	TRISB=0x00;	// POTRB all output
	TRISC=0x00;	// POTRC all output
	
	for(;;){
		x=read_a2d(1);		//0-1024 Gnd-Vcc
		PORTB = x;
		PORTC = x>>8;
	}
}


PORTBの8ピンは全部デジタル出力、

PORTAを
RA0にアナログ入力にして、
RA1,RA2はデジタル出力。

にしようと思ったのですが、

RA1,RA2をデジタル出力にすると、
うまく動きません。。

RA0にアナログ入力とかしていても、
残りのRAをデジタル入出力とかにできると思うのだけど、

うーん、うまくいきませんでした。

RA1,RA2の代わりに、
とりあえずRC0,RC1をデジタル出力にしました。



RA0←アナログ入力

アナログ変換

デジタル出力 → RC1,RC0,RB7,RB6,…,RB0



回路図
Vol_reg


可変抵抗を回すと、
LEDバーでA/Dコンバートの様子を見ることができます。


>>次の記事: PIC電圧計の完成!(C言語バージョン+7セグメントLED)
>>前の記事: PIC電圧計の完成!(アセンブラバージョン)





PIC電圧計のモノ作り記事

Vol_reg_thumb
定電圧電源の製作、電圧表示付き(7セグメント3つ)
PIC電圧計の完成!(C言語バージョン+7セグメントLED)&lt;br /&gt; http://give-n-take.net/gat/user/show_diary/229 &lt;br /...
続きを読む>>定電圧電源の製作、電圧表示付き(7セグメント3つ)
Posted by kyosuke at 04/10 2008

Vol_reg_seg_thumb
PIC電圧計の完成!(C言語バージョン+7セグメントLED)
PICマイコンの10ビットA/Dコンバータのプログラム+回路図+LEDバー&lt;br /&gt; http://toolible.net/monozukuri/articles/51&lt;br ...
続きを読む>>PIC電圧計の完成!(C言語バージョン+7セグメントLED)
Posted by kyosuke at 04/02 2008

Vol_reg_thumb
PICマイコンの10ビットA/Dコンバータのプログラム+回路図+LEDバー
現在のページです
Posted by kyosuke at 03/30 2008

Pictester_thumb
PIC電圧計の完成!(アセンブラバージョン)
前回は、割り込み処理のデバックが終わった。&lt;br /&gt; &lt;br /&gt; いうなれば、今回のデバックが電圧計のためのものと。。&lt;br /&gt; &lt;br /&gt...
続きを読む>>PIC電圧計の完成!(アセンブラバージョン)
Posted by kyosuke at 08/11 2007

No_image
電圧計PICプログラム デバック
さて、デバックする。&lt;br /&gt; &lt;br /&gt; 凡ミスを取り除いて、&lt;br /&gt; ビルトOK。&lt;br /&gt; &lt;br /&gt; RUNし...
続きを読む>>電圧計PICプログラム デバック
Posted by kyosuke at 08/09 2007

PIC電圧計 の14記事を見る