//********************************************************************** /*   <LCD制御ライブラリ(mikroCコンパチブル)> */ //********************************************************************** #include "lcd_lib_4bit.h" //********************************************************************** //■■■LCD文字出力(カレントカーソル位置)関数■■■ void Lcd2_Chr_Cp(char out_char) { LCD_D7 = out_char.B7; LCD_D6 = out_char.B6; LCD_D5 = out_char.B5; LCD_D4 = out_char.B4; LCD_RS = 1; LCD_EN = 1; asm nop; LCD_EN = 0; // LCD_D7 = out_char.B3; LCD_D6 = out_char.B2; LCD_D5 = out_char.B1; LCD_D4 = out_char.B0; LCD_RS = 1; LCD_EN = 1; asm nop; LCD_EN = 0; // Delay_us(100); } //********************************************************************** //■■■LCD文字出力(行列指定)関数■■■ void Lcd2_Chr(char row, char column, char out_char) { Lcd2_Cmd_8bit(0x80 + (column - 1) + ((row - 1) * 0x40)); Lcd2_Chr_Cp(out_char); } //********************************************************************** //■■■LCD文字列出力(カレントカーソル位置)関数■■■ void Lcd2_Out_Cp(char *text) { while (*text != 0x00) { Lcd2_Chr_Cp(*text); text++; } } //********************************************************************** //■■■LCD文字列出力(行列指定)関数■■■ void Lcd2_Out(char row, char column, char *text) { Lcd2_Cmd_8bit(0x80 + (column - 1) + ((row - 1) * 0x40)); Lcd2_Out_Cp(text); } //********************************************************************** //■■■LCDコマンド出力関数■■■ void Lcd2_Cmd(char cmd) { Lcd2_Cmd_8bit(cmd); Delay_ms(10); } //********************************************************************** //■■■LCD初期化関数■■■ void Lcd2_Init() { LCD_RS_Direction = 0; LCD_EN_Direction = 0; LCD_D7_Direction = 0; LCD_D6_Direction = 0; LCD_D5_Direction = 0; LCD_D4_Direction = 0; LCD_RS = 0; LCD_EN = 0; Delay_ms(20); Lcd2_Cmd_4bit(0b00110000); //ファンクションセット(8bitモード) Delay_ms(10); Lcd2_Cmd_4bit(0b00110000); //ファンクションセット(8bitモード) Delay_ms(10); Lcd2_Cmd_4bit(0b00110000); //ファンクションセット(8bitモード) Delay_ms(10); Lcd2_Cmd_4bit(0b00100000); //ファンクションセット(4bitモード) Delay_ms(10); Lcd2_Cmd_8bit(0b00101000); //ファンクションセット(4bitモード,1/16デューティ,5×7ドット) Delay_ms(10); Lcd2_Cmd_8bit(0b00001000); //表示オフ Delay_ms(10); Lcd2_Cmd_8bit(0b00000001); //表示クリア Delay_ms(10); Lcd2_Cmd_8bit(0b00000110); //エントリーモードセット Delay_ms(10); } //********************************************************************** //■■■LCD初期化用コマンド出力(4bit)関数■■■ void Lcd2_Cmd_4bit(char cmd) { LCD_D7 = cmd.B7; LCD_D6 = cmd.B6; LCD_D5 = cmd.B5; LCD_D4 = cmd.B4; LCD_RS = 0; LCD_EN = 1; asm nop; LCD_EN = 0; // Delay_us(100); } //********************************************************************** //■■■LCD初期化用コマンド出力(8bit)関数■■■ void Lcd2_Cmd_8bit(char cmd) { LCD_D7 = cmd.B7; LCD_D6 = cmd.B6; LCD_D5 = cmd.B5; LCD_D4 = cmd.B4; LCD_RS = 0; LCD_EN = 1; asm nop; LCD_EN = 0; // LCD_D7 = cmd.B3; LCD_D6 = cmd.B2; LCD_D5 = cmd.B1; LCD_D4 = cmd.B0; LCD_RS = 0; LCD_EN = 1; asm nop; LCD_EN = 0; // Delay_us(100); } //**********************************************************************