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);//写一层带有标题的屏幕