LoginSignup
0
0

More than 1 year has passed since last update.

LPC812MAXと液晶、ACM1602K-NLW-BBWで3分タイマー(74HC164)(mbed)

Last updated at Posted at 2022-09-02

LPC812MAXと液晶、ACM1602K-NLW-BBWで3分タイマー(74HC164)(mbed)

x mbed2リビジョン144
x リビジョンを変更できる人むけ

x 原因は、わからないが液晶がちらつく場合は、ウェートを調整してね!!
(電源-GND間のパスコン(47μF~100μF...するといいらしい)

目的
パラレルLCDのテスト

STM32L010でMbedを使い16文字2行液晶に3分を
表示するプログラム

74hc164シフトレジスターを使用した。
液晶とのピン数を節約した。信号線10本から
信号線3本に減らした。

1 CLK クロック端子(緑色)
2 RSDATA RS端子とデータの共有端子(黄色)
3 E 読み込み書き込み同期信号(青色)

秋月電子
キャラクター液晶 [ACM1602K-NLW-BBW] 通販コード P-10185
半固定ボリューム10kΩ [TSR-065-103-R] 通販コード P-06063
CD74AC164E 通販コード I-11356

アイテンドウ
8ビットシフトレジスタ [HD74LS164P] www.aitendo.com/product/12485

-88-

o_con88.jpg

o_con712.jpg





// gpio_P_LCD_3min_812_1


#include "mbed.h"

//*          *****  *****       ***  * *
//*         *       *    *     *   * * *
//*         *       *    *     *   * * *
//*         *       *    *     *   * * *
//*         *       *    *     *   * * *
//********   *****  *****       ***  * *

int kk;
#define oun_min() for(kk=0;kk<60;kk++){wait_ms(1000);}

#define swclk1  P0_16    //B 9
#define swdio1  P0_17    //G 8
#define en1     P0_7     //R 7

DigitalOut swdclk(swclk1);
DigitalOut swdio(swdio1);
DigitalOut en(en1);

void seg1(int v,int rs)
{
    for(int jj=0; jj<8; jj++) {
        if( (v<<jj) & 0x80 ) {
            swdio=1; //ビットが1
        } else {
            swdio=0; //ビットが0
        }//endif
        swdclk=1;
        swdclk=0; //clk
    }//for

    swdio=rs;
    en=1;
    wait_ms(1);
    en=0;
}

//文字列の表示 nana_seg
int ns_printf(char *str1)
{

    //文字の中身がゼロか
    while(*str1) {

        //一文字出力
        seg1( *str1 ++, 1  );

    } //while

    //戻り値
    return(0);
}//ns_printf

int lcd_int[]= {
    0x30,0x30,0x30,0x38,0x08,0x01,0x06,0x08+0x04
};//lcd_init

int main()
{

    //GPIOの初期化
    en=0;
    swdclk=0;
    swdio=0;
    wait_ms(200); //debug

    //液晶の初期化
    for(int ii=0; ii<8; ii++) {
        seg1( lcd_int[ii], 0);
        wait_ms(2);
    }//for

    seg1( 0x80+0x00, 0  );  //1ライン目にカーソルを移動
    ns_printf( (char *)"START" );
    wait_ms(700);

    //画面クリア
    seg1(   0x01, 0  );
    wait_ms(5);

    ns_printf( (char *)"0," );
    oun_min()
    ns_printf( (char *)"1," );
    oun_min()
    ns_printf( (char *)"2," );
    oun_min()
    ns_printf( (char *)"3" );

    while(1) {} //無限ループ

}//main




o_con833.jpg

-5-

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0