[HD44780] LCD 초기 설정에서 디스플레이로
10478 단어 H8 마이크로컴퓨터HD44780LU3172h8-3664lcd
HD44780은 현재 유통되고 있는 거의 모든 CLCD의 컨트롤러가 사용하는 물건이다.
40줄을 사용했어요.×2의 LU3172LCD 모듈입니다.
마이크로컴퓨터는 H8/3664를 사용했다.
시작 구성은 다음과 같습니다.
초기화 프로그램
1. 전원 공급 장치 연결
2.15ms이상 대기
3. 기능 집합(8비트mode 설정)
4.4.1ms 이상 대기 중
5. 기능 집합(8비트mode 설정)
6.100us 이상 대기 중
7. 기능 집합(8비트mode 설정)
8. 기능 집합(8비트mode 설정)
9. 기능 세트(다양한 설정)
10. 디스플레이 제어
11. 디스플레이 삭제
12. 신청 모드 설정
7에서 12 사이에도 상응하는 무게가 있어야 한다.
LCD_init()
함수 LCD 초기화나는 init()입니다.
LCD_init().c
/* LCDのイニシャライズ */
void LCD_init(unsigned char bus, unsigned char line, unsigned char font, unsigned char cursor, unsigned char blink, unsigned char add, unsigned char shift)//LCD_init(1,1,0,1,1,1,0);
{
unsigned char data=0x00; // 変数宣言
_wait(1500); // ウェイト
data=0x30;
LCD_IR(data); // ファンクションセット1回目
_wait(410); //ウェイト
data=0x30;
LCD_IR(data); // ファンクションセット2回目
_wait(410);
data=0x30;
LCD_IR(data); // ファンクションセット3回目
_wait(410);
data=0x20; // ファンクションセット(インターフェースデータ長8ビット)
data |= (bus <<4); //バス幅 1:8bit 0:4bit
data |= (line << 3); //表示ライン 1:2行表示 0:1行表示
data |= (font << 2); //表示フォント 1:11ライン/行 0:8ライン/行 ※11ラインはg,yなどが切れずに表示されるが2行モードが使えなくなる.
LCD_IR(data);
_wait(40); // ウェイト
data=0x0c; //表示ON/OFF
data |= (cursor <<1); //下線カーソル 1:ON
data |= blink; //ブロックカーソル 1:ON
LCD_IR(data);
_wait(40); // ウェイト
LCD_IR(0x01); //表示クリア
_wait(40); // ウェイト
data = 0x04; // エントリモード
data |= (add << 1); //0:デクリメント 1:インクリメント
data |= shift; //1:表示シフトあり
LCD_IR(data);
_wait(400); // ウェイト
}
_wait, 제법 등 시간을 벌세요.그러나 컴파일러에 따라 처리 시간도 다르기 때문에 환경에 따라 수치를 바꿔야 한다.
(등 정해진 시간 이상이면 되므로 전체에 영향을 주지 않는 범위 내에서 큰 값으로 설정할 수 있다)
다양한 매개변수를 매개변수로 설정할 수 있습니다.
LCD_IR
LCD_IR()는 안내자 액세스용 함수입니다.
LCD_IR.c
static void LCD_IR( unsigned char data )
{
PDR7 &= 0xef; //0 LCD_RS(0x10) レジスタをインストラクションレジスター(IR)にセット
PDR7 &= 0xdf; //0 LCD_RW(0x20) 0:書き込み 1:読み出し
PDR7 |= 0x40; //1 LCD_E(0x40) シグナル可能セット
PDR8 = data; //LCD_PORT(Port8) データの書き込み
_wait(410); // 20usのウェイト
PDR7 &= 0xbf; // シグナル可能リセット(Eの立下りでレジスタの読み書きを行う)
_wait(410); // 20usのウェイト
}
LCD_init() 실행이 끝나면 설정이 완료됩니다.LCD_DR
마지막으로 함수 LCD 표시DR().
LCD_DR.c
static void LCD_DR( unsigned char data )
{
PDR7 |= 0x10; //1 LCD_RS(0x10) レジスタをデータレジスター(DR)にセット
PDR7 &= 0xdf; //0 LCD_RW(0x20) 0:書き込み 1:読み出し
PDR7 |= 0x40; //1 LCD_E(0x40) シグナル可能セット
PDR8 = data; //LCD_PORT(Port8) データの書き込み
_wait(410); //ウェイト
PDR7 &= 0xbf; // シグナル可能リセット(Eの立下りでレジスタの読み書きを行う)
_wait(20);
}
데이터에 ASCII 코드가 있습니다.샘플 보기
char LCD_title[81]="Yellow_tracer kiki0817 Yellow_IDE,H8/3664f, from2019_01_19 ";
for(i=0;i<80;i++){
LCD_DR(LCD_title[i]);
}
Reference
이 문제에 관하여([HD44780] LCD 초기 설정에서 디스플레이로), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kiki0817/items/db8025b3690a4e94c5b4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)