/********************************************************************************************* * SPI制御モノクロ・グラフィック液晶用ライブラリ・ヘッダ: AQM1248A_Lib.h * WAV Player V2用 * MPU:dsPIC33FJ64GP802 * * ※「はじめてのPIC」サイトの、岩本さんが作成されたライブラリを元に、モディファイしました。 * 修正過程のコメント等は、出来るだけ削除整理した形でまとめました。 *  尚、オリジナルの、MPUは、PIC18F14K50で、MSSP SPI機能を使っています。 * * 以下は、岩本さんのコメントのままです。 * プロポーショナルな最大5x7dotの文字パターンを提供するとともに * 以下の機能も実現する * * LCD_int () G_LCDを初期化する * LCD_cmd (cmd) G_LCDにコマンドデータを送信する * LCD_dat (chr) 文字コードchrを文字パターンに変換しG_LCDに文字を表示する * LCD_ram (dat) G_LCDにグラフィックデータを送信する * LCD_clr () G_LCDの表示RAMを全消去する * LCD_posyx (ypos, xpos) G_LCDの表示RAMをアドレスを指定する * LCD_str(add) PICのRAM領域にある文字列をG_LCDに表示する * LCD_ROMstr(r_add) PICのROM領域にある文字列をG_LCDに表示する * * 以下は、文字表示した後で、次の表示位置xposを返す * xpos = LCD_chr1x(chr, ypos, xpos) 通常文字 * xpos = LCD_str1x(add, ypos, xpos) RAM領域通常文字列 * xpos = LCD_ROMstr1x(add, ypos, xpos) ROM領域通常文字列 * * xpos = LCD_chr2x(chr, ypos, xpos) 2倍拡大文字 * xpos = LCD_str2x(add, ypos, xpos) RAM領域2倍拡大文字列 * xpos = LCD_ROMstr2x(r_add, ypos, xpos) RAM領域2倍拡大文字列 * * xpos = LCD_chr3x(chr, ypos, xpos) 3倍拡大文字 * xpos = LCD_str3x(add, ypos, xpos) RAM領域3倍拡大文字列 * xpos = LCD_ROMstr3x(r_add, ypos, xpos) RAM領域3倍拡大文字列 * * 引数の意味とデータ型 * cmd : char型データ G_LCDへのコマンドデータ * dat : char型データ G_LCDへのグラフィックデータ * chr : char型データ G_LCDに表示する文字のコードデータ * ypos : char型データ G_LCDの表示RAMの縦(page)位置 * xpos : unsigned char型データ G_LCDの表示RAMの横(column)位置 * add : RAM領域の文字列開始アドレスポインタ * r_add : ROM領域の文字列開始アドレスポインタ * * 2015/11/4 N.Ishii *********************************************************************************************/ #include "p33FJ64GP802.h" //#define Fosc 80 /// LCD Ports define #define SPI_RS LATAbits.LATA0 #define SPI_CS LATBbits.LATB5 #define SPI_SDI LATBbits.LATB9 #define SPI_SCK LATBbits.LATB8 /// 関数プロトタイプ void LCD_int (void); void LCD_cmd (char ); void LCD_dat (unsigned char ); void LCD_ram (char ); void LCD_clr (void ); void LCD_posyx (char, unsigned char ); void LCD_str(char *); void LCD_ROMstr(const char *); unsigned char LCD_chr1x(unsigned char, char, unsigned char); unsigned char LCD_str1x(char *, char, unsigned char); unsigned char LCD_ROMstr1x(const char *, char, unsigned char); unsigned char LCD_chr2x(unsigned char, char, unsigned char); unsigned char LCD_str2x(char *, char, unsigned char); unsigned char LCD_ROMstr2x(const char *, char, unsigned char); unsigned char LCD_chr3x(unsigned char, char, unsigned char); unsigned char LCD_str3x(char *, char, unsigned char); unsigned char LCD_ROMstr3x(const char *, char, unsigned char); void Delay_ms(unsigned int t); void Delayus(unsigned int t);