//************************************************************* // I2C LCD ライブラリ PIC18 // AQM1602XA-RN-GBW 16キャラ x 2行 // コントローラ:ST7032 // // ============================================================ // 以下、参考元:岩本さんサイトのコメント // // I2C LCD ライブラリ PIC18 Ver 2.0 20130512 // 以下の機能を提供する // // LCD_int() ----- 初期化(I2C初期化を含む) // LCD_cmd(cmd) ----- コマンド出力 // LCD_dat(chr) ----- 1文字表示 // LCD_str(*str) ----- 文字列表示 // LCD_ROMstr(*str) -- ROM文字列表示 // LCD_hex(char); // LCD_posyx(y,x) ---- カーソル位置指定、行 y、横位置 x // LCD_clr() ----- 全消去 // LCD_icon_on(icn); -- 指定アイコン ON // LCD_icon_off(icn);-- 指定アイコン OFF // LCD_icon_clr();----- 全アイコン OFF // //液晶表示器とPICはI2Cにより接続される // 1)Define I/O PORT // PORTB(4)pin13 : SDA // PORTB(6)pin11 : SCL // 2)OSC // 内部クロック 4MHz // // Copyright (c) 2012-2013 iwamoto All Rights Reserved // ============================================================= // 以下追加 190612 N.Ishii // DDRAMアドレスセットコマンド定義 // ユーザーキャラクタ書込み関数 //**************************************************************** //************* Delay ******************************************* // 必要とするディレイ時間をクロック周波数から計算し、 // 指定するために、クロック周波数を指定する。 //*************************************************************** //#define _XTAL_FREQ 4000000 #define _XTAL_FREQ 16000000 // //*************** Delay Define for 4MHz Clock********* #define Delay_50uS __delay_us(50) #define Delay_2mS __delay_ms(2) //#define Delay_100mS __delay_ms(100) #define Delay_100mS delay_ms(100) // 190614 /* /////////////////////////////////// // 調整用定数 /////////////////////////////////// //#define CONTRAST 0x2D // for 3.3V #define CONTRAST 0x18 // for 5.0V */ //******************************** // ボーレート定数 //******************************** // --------- for 4MHz ------------ //#define SlewCont SLEW_OFF // Slew Rate 100K //#define BaudConst 0x09 // BRG Value for 4MHz // --------- for 16MHz ------------ //#define SlewCont SLEW_OFF // Slew Rate 100K #define BaudConst 0x27 // BRG Value for 16MHz→ 100Kbps 190613 // --------- for 48MHz ------------ //#define SlewCont SLEW_ON // Slew Rate 400K //#define BaudConst 0x1D // BRG Value for 48MHz /* /////////////////////////////////// // アイコン定数 /////////////////////////////////// #define i_Ant 0x4010 // アンテナ #define i_Tel 0x4210 // 電話 #define i_Aud 0x4410 // 音声 #define i_Pulg 0x4610 // 接続 #define i_Up 0x4710 // Up #define i_Dn 0x4708 // Down #define i_UpDn 0x4718 // Down #define i_Lock 0x4910 // 鍵 #define i_XFlag 0x4B10 // X旗 #define i_BatEMP 0x4D02 // バッテリー空 #define i_BatLOW 0x4D12 // バッテリー小 #define i_BatMID 0x4D1A // バッテリー中 #define i_BatFUL 0x4D1E // バッテリー満 #define i_Circle 0x4F10 // 三重丸 */ ///// DDRAMアドレスセットコマンド定義 #define DDRAM_START_ADDRESS_SET 0x80 //******************* 提供機能 ******************************* void LCD_dat(char chr); void LCD_cmd(char cmd); void LCD_clr(void); void LCD_int(void); void LCD_str(char *str); void LCD_posyx(char ypos,char xpos); //void LCD_icon_on(int icn); //void LCD_icon_off(int icn); //void LCD_icon_clr(void); void LCD_ROMstr(const char *); void LCD_hex(char); void LCD_cg_ram_user_set(void); void delay_ms (int ms); // 190614