www.pudn.com > msp430lcd12864.rar > LcdCmd.h
//LcdCmd.h #include#define UINT unsigned int #define BYTE unsigned char #define DataPortOut P6OUT #define DataPortIn P6IN #define DataPortDIR P6DIR #define right 0x0 //右屏选择 #define RightSet P2OUT|=0X80 //右屏选通p2.7 #define RightNotSet P2OUT&=0X7F //右屏不选通 #define left 0x1 //左屏选择 #define LeftSet P2OUT|=0X40 //左屏选通p2.6 #define LeftNotSet P2OUT&=0XBF //左屏不选通 //数据指令选择 #define DataBusSelet P2OUT|=0X08//~0xf7 //数据选择p2.3 #define InsBusSelet P2OUT&=0XF7//~0x08 //指令选择 //读写选择 #define ReadSelect P2OUT|=0X10//~0xef //读选通p2.4 #define WriteSelect P2OUT&=0XEF//~0x10 //写选通 //使能 #define LcdDisable P2OUT&=0XDF//~0x20 //液晶不使能p2.5 #define LcdEnable P2OUT|=0X20//~0xdf //液晶使能 #define MAX_TITLE_NUM 4 //一层中的标题数目 #define NULL 0 #define ALLLEVEL 2 typedef struct _LcdDisplay_xfer//lcd 层次化菜单协议 { BYTE TitleNumber;//当前层中的标题个数,不能超过MAX_TITLE_NUM个 BYTE SelectedTitle; //当前层中被选种的标题 BYTE* pTiltle[MAX_TITLE_NUM];//指向Title数据的指针 struct _LcdDisplay_xfer* pLevelUp;//上一层 struct _LcdDisplay_xfer* pLevelDown[MAX_TITLE_NUM];//下一层 }LCD_DISPLAY_XFER; void inquire_busy(unsigned char lr); void write_display(unsigned char lr,unsigned char dd); unsigned char read_display(unsigned char lr); void write_injunction(unsigned char lr,unsigned char dd);//写指令 unsigned char read_state(unsigned char lr); void InitLcd(void); void ClearScreen(void); void roll(void);//滚动显示 void image_display(unsigned char *ch); void TitleDisplay(unsigned char row,unsigned char* RowData,unsigned char number,unsigned char m_bReverse);//显示一行的数据 void WriteOneChar(unsigned char* CharData,unsigned char lr,unsigned char columnTmp,unsigned char m_bReverse);//写一个汉字 void WriteTitleScreen(LCD_DISPLAY_XFER* level);//写一层带有标题的屏幕