LCDを1Wで表示

                                      宮前 2011.6〜

履歴
     2011.7.26版 UP
     2011.7.10版 UP

    制御線1本(1W)で、LCD表示が可能になりました。
    空いている出力ポートがあれば、LCD表示できます。

   (1) 1WでLCD表示

      LCDの出番が無いのは、LCDがポートを沢山(最低6個)使用するのが、一番と思いました。

      そこでMCUをLCDと一体にして、信号線1本で、表示することにしました。

 

写真は信号線2本ですが実際に使用しているのは
1本です。
   


こちらは送信側(利用する側)

EZ-LCDライブラリーと全く同じ使い方です。
ez-lcdの頭にpを付けて使用します。

信号線は1本だけ接続します。

UARTと SUARTが使用できます。
                  

ボーレート:38400bpi



公開したサンプル(送信側)は、3番ピンか24番ピンを使用していますが、SUARTの場合は、ピンは自由に選べます。    

 こちらは、LCD表示側です。
 送信側からのコマンド(データ)に従い表示します。
 表示は、chanさんのEZ-LCDライブラリーを使用しています。

 
LCDの左上に5を表示すら場合は、下記のように
使用します。1〜4
 信号の中身は下記  受信側の動きは下記です  
1. plcd_init();  I  コマンド I を 読み込み lcd_init(); が実行されます。  
2. plcd_putc(’5’);  P35 (35は5の16進表現)  P35 を読み込み、 文字35を変換して5を得ます。
 これで lcd_putc(c); 実行します。(cには、’5’ が入る) 
  1Wライブラリーのソース

  chanさんのxprintf等からも使用可能


     

 

 
 


                           
      1w 38400     2011.7.10   38400版とサンプル4種類

                      chanさんのAVR用組み込みprintfモジュール」は、出力先を任意のモジュールを指定できます。
                      1Wライブラリーに変更する場合は、
                      xdev_out(plcd_putc);
                      とすることで、xprintft等の出力処理を、plcd_putcに変更できます。
                      http://elm-chan.org/fsw/strf/xprintf_j.html
                   

      2011.7.26      2011.7.26   上に加え、
                          ARM7(LPC2388 雑誌付録)
                          V850(雑誌付録)
                          パソコンから制御。

                          内容は、AVR版と同様です。

    提供ライブラリー
     chanさんのZZ-LCDライブラリーの各関数の頭にpを付けた関数です
     関数の引数は、全く同じです。
   

chanさのZZ-LCD 1wライブラリー 転送サイズ(バイト) 送信データ
lcd_init plcd_init 1  I
lcd_putc plcd_putc 3 Pxx
lcd_cursor plcd_cursor 2 Cx
lcd_setcg plcd_setcg 3+8*n  n:は、登録文字数 Sxy hhhhhhhhhhhhhhhh*n
lcd_put_fue plcd_put_fuel 3 Fxy      *1
lcd_put_bar plcd_put_bar 7 Bxxxyyz    *2
lcd_put_point plcd_put_point 7 Pxxxyyz    *2
       
       

                                                   *1: 5〜-1は、6〜0にシフトして転送
                                                  *2: valは、3桁に制限(第一引数)
 

 1.  受信側(LCD側)    ソースなど
     全機能を実装すると、Aiitny2313の2Kをオーバーするので、公開版は、lcd_put_pointを実装していません。(コメント)
     8Mhzで動かしています。 
     ボーレート:38400  
     処理しきれなくなると、(データ取りこぼし)表示が乱れたり、停止することもあります。
     ここは送信側が、気をつける必要があります。
     5V、3.3Vで動作確認しました。
     

 2.  送信側のサンプル    
     (1) MCU:Atmega168
        8Mhz(内臓クロック)で動作。
       ボーレート:38400 
       UARTは、ソフトてもハードでも可能。
       割り込み使用していなければ、送信で使用するポートは、出力可能なであれば、どれでも使用できます。

     (2) ARM   LPC2388 (インターフェース 2008.5月号の付録基板)   2011.7.26 追記
       UARTは、ソフトても行っています。
       UARTのポートは、CN3-B19から出しています。P0-18 (ここは雑誌の誤植がありますので要注意)
       UARTのソースは、chanさんのLチカ通信を流用しています。
       内容は、AVRのsamp2とsamp3の移植。
       まだソースは不要(ゴミ)だらけです。
          

   
各機能を確認

2段目は、棒グラフ
   


   (3)  v850se    Interface2007.5月号付録基板V850ES/JG2を使用
               使用ポートは P9L.0 で CON1の1番から信号が出ます。
               USARTの部分は、ARM版とほとんど同じです。  

   (4)  パソコンのソフトから

                COM1固定です。
                USBシリアルを使用する場合は、ソースを直してください。
                COM1 を COMx にするだけです。MinGWを使用。
                ソースは、ゴミ(不要部分)だらけです。

--------------------------------------------------------------------------------------------------

     送信側は、フォーマットさえあっていれば、ターミナルソフトでも、picでも、H8でもARMでもPCソフトでも何でもOKです。
     実際、ターミナルソフトでテストしました。

     LCDの表示桁、 MCUの違い動作速度により EZ-LCDモジュールの設定変更が必要になります。
       http://elm-chan.org/fsw/ezlcd/00index_j.html

 3. 5Vと3.3V動作

       5V動作で濃度調整で、シリコンダイオードを使用(0.6V程度)しているのを見てまねをしました。安価で良いですね。

       3.3Vは、chanさんが公開しているチャージポンプで昇圧し、5.1K(手持ち)を通すと、-0.9V程度になりました。
       又このとき、5Vの調整で使ったダイオードは、OFFするので、在っても問題になりません。
       ショートピン(jp1)で、5V動作と3.3V動作の切り替えが出来ました。
   
               

D3が、5V動作時の濃度調整。

3.3V動作時は、JP1を閉じるだけ。
小さい基板を貼り付けています。

橙線がoscの線

白線がVopへの線

青は、Gnd


   lcd 3.3V で検索

 

inserted by FC2 system