閲覧総計:&counter();  (本日:&counter(today);  昨日:&counter(yesterday);)~
~
*A/D値をLCDに表示 [#c8b96228]

液晶ディスプレイ(LCD:Liquid Crystal Display)の活用の一つとして
A/D変換値を表示する事例を紹介します。
アナログセンサの値をデジタル変換した0〜1023の値をLCDに表示する
事で入力されたアナログセンサ値を数値で正確に把握する事が可能となり
ます。

本事例は「PIC16F88」を用い、半固定抵抗を回す事により、0〜1023のA/D変換値を
作り、その値をリアルタイムでLCDに表示しました。 06/11/20

16文字×1行LCD
DMC16117A (OPTREX社製) 秋月@300円 制御ICは「日立HD44780準拠品」 電源:5V
http://www.allelectronics.com/spec/LCD-114.pdf

【参照Help】
「mikroC Libraries」の「LCD8 (8-bit interface) Library」

&attachref(P1010207.JPG,zoom,150x150,button){新しい写真添付};


 /**
 * A/D変換値を液晶ディスプレイ(LCD)に表示
 *
 * PIC16F88 クロック:内蔵8MHz
 * 
 * アナログ入力:RA1 
 * LCD制御pin RA0:R/W  RA2:RS  RA3;E
 * LCD:DMC16117A (OPTREX社製) 秋月@300円 06/11/15 
 * http://www.allelectronics.com/spec/LCD-114.pdf
 * 電源:乾電池3本(4.5V)
 *
 * 開発環境:MikroC V6.2
 * Device Flags:
 * _CP_OFF  _CCP1_RB3  _DEBUG_OFF  _WRT_ENABLE_OFF
 * _CPD_OFF  _LVP_OFF  _BODEN_OFF  _MCLR_OFF  _PWRTE_ON
 * _WDT_OFF  _INTRC_IO  _IESO_ON__CFG2  _FCMEN_ON__CFG2
 */
 void main() {
     //使用変数の定義 
     char *text1 = "A/D Levl"; //LCD上位表示文字 
     char *text2 = "********"; //LCD下位表示文字
     //unsigned int port;
     //char *s_port;
     int port; //07/10/4 修正
     char s_port[7]; //07/10/4 修正
     
     //マイコンの初期化
     //内蔵クロック8MHz使用に設定
     OSCCON = 0b01110000;
     
     //A/D Clock Set = 2.0us
     //Up to 1.6us
     ADCON1.ADCS2=1;
     ADCON0.ADCS1=0;
     ADCON0.ADCS0=1;
 
     // A/D利用PORTの設定 // ANALOG=1, DIGITAL=0 //
     ANSEL = 0b00000010; //RA1のみアナログ使用
 
     PORTA = 0b00000000; //PORTAの中身をきれいにする
     PORTB = 0b00000000; //PORTBの中身をきれいにする
 
     TRISA = 0b00000010; //RA1のみ1:入力に設定、他は0:出力
     TRISB = 0b00000000; //PORTB 8ヶ全て0:出力に設定
     //マイコンの初期化終わり
 
     Lcd8_Config(&PORTA, &PORTB, 2,3,0,7,6,5,4,3,2,1,0); //LCD初期設定
     Delay_ms(1000); //1秒待機
 	
     Lcd8_Cmd(LCD_CURSOR_OFF); //カーソル非表示  
     
     do {
         //アナログデータの取得
         //0~1023
         port = ADC_Read(1); //RA1値をアナログデジタル変換
         Delay_ms(500); //0.5秒待機 
         
         IntToStr(port, s_port); //数値を文字列に変換 
  
         Lcd8_Out(1, 1, text1); //LCD上位文字表示
         Lcd8_Out(2, 1, s_port); //LCD下位文字表示        
     } while(1);
 }


関連ページ:LCD表示法(基礎)

★この情報は役に立ちましたか?
#vote(はい[6],いいえ[0])

#comment