過去の投稿日別表示

[ リスト | 詳細 ]

全1ページ

[1]

LCD(3)

もうあと少し??
//sample22_01.c
#pragma sfr

//インターフェース
#define LCD_INSTRUCTION 0
#define LCD_WRITE 0
#define LCD_READ 2
#define LCD_ENABLE 1
#define LCD_CONTROL (LCD_INSTRUCTION + LCD_WRITE)
#define LCD_STATUS (LCD_INSTRUCTION + LCD_READ)
#define LCD_PUT (LCD_DATA + LCD_WRITE)
#define LCD_GET (LCD_DATA + LCD_READ)

//LCDコントロール制御
#define LCD_CLEAR 1
#define LCD_HOME 2
#define LCD_MODE 4//エントリモード
#define LCD_DISPLAY 8
#define LCD_CURSOR 16//カーソルシフト
#define LCD_FUNCTION 32
#define LCD_CGRAM 64//アドレス
#define LCD_DDRAM 128

//LCD制御 OP
#define LCD_CUR_INC 2//アドレス+1
#define LCD_CUR_DEC 0//アドレスー1
#define LCD_WITHSHIFT 1//表示シス
#define LCD_OFF 0 //表示OFF
#define LCD_ON 4//表示ON
#define LCD_DISPCUR 2//クリア
#define LCD_BLINK 1//ブリンク
#define LCD_8BIT 16
#define LCD_4BIT 0
#define LCD_2LINE 8//2行
#define LCD_1LINE 0//1行
#define LCD_CHAR10 4//10ドット
#define LCD_CHAR7 0//7ドッド

void lcd_init(void);
void lcd_puts(char *);
void lcd_putc(char);
void lcd_control(unsigned char);
void lcd_clear(void);
void lcd_home(void);
void lcd_line2(void);
static void wait(int cnt);


void lcd_init(void){ //初期化
  PM1.0 = 0;
  PM1.1 = 0;
  PM1.2 = 0;
  PM1.3 = 0;
  PM1.4 = 0;
  PM1.5 = 0;
  PM1.6 = 0;
  PM1.7 = 0;

  wait(15);
  lcd_control(LCD_FUNCTION + LCD_8BIT);
  wait(5);
  lcd_control(LCD_FUNCTION + LCD_8BIT);
  wait(5);
  lcd_control(LCD_FUNCTION + LCD_8BIT + LCD_2LINE + LCD_CHAR7);
  lcd_control(LCD_DISPLAY + LCD_OFF);
  lcd_clear();
  lcd_home();
  
  lcd_control(LCD_DISPLAY + LCD_ON + LCD_DISPCUR + LCD_BLINK);
  lcd_control(LCD_MODE + LCD_CUR_INC);
}

//wait
static void wait(int cnt){
  int m,n;
  for(m=0;m<cnt;m++){
    for(n=0;n<5000;n++){};
  }
}



//表示clear
void lcd_clear{
 lcd_control(LCD_CLEAR);
  wait(3);
}

//carsor home
void lcd_home(void){
  lcd_control(LCD_HOME);
  wait(3);
}


//line 2
void lcd_line2(void){
  lcd_contol(LCD_DDRAM + 0x40);
  wait(3);
}

//lcd 文字列表示
void lcd_puts(char *msg){
  char *p;
  for(p=msg; *p! = '\0';p++){
  lcd_put(*p);
  }
}

//lcd 1文字表示           <<<<<<<作成途中>>>>>>
void lcd_putc(char ch){

}

//lcd コマンド制御                   <<<<<<<作成途中>>>>>>
void lcd_control(unsigned char cmd){

}

void main(){
  lcd_init();
  lcd_home():
  lcd_puts("This is test");
  lcd_line2();
  lcd_puts("line 2");
}


全1ページ

[1]


.


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事