www.pudn.com > LCDRT12232F.rar > lcd_12232F.h


 
#ifndef LCD_12232F_DEV_H 
#define LCD_12232F_DEV_H 
 
#include  
 
 
#define MAJOR_NUM 250 
 
#define ADR_LCD_COMMAND na_lcd_16207 
#define ADR_LCD_DATA (na_lcd_16207 + 8) 
 
#define ADR_LCD_LINE1_OFFSET 0x80 
#define ADR_LCD_LINE2_OFFSET 0x90
#define ADR_LCD_LINE3_OFFSET 0xA0
#define ADR_LCD_LINE4_OFFSET 0xB0 
 
#define BUF_LEN 16 
 #define LCD_CHARS_PER_LINE 16     
 

/*  
 * 创建ioctl命令号  
 */ 
#define IOCTL_WRITE                        _IOR(MAJOR_NUM, 0, char *) 
#define IOCTL_READ                         _IOR(MAJOR_NUM, 1, char *)
#define IOCTL_LCD_ON                       _IOR(MAJOR_NUM, 2, char *) 
#define IOCTL_LCD_OFF                      _IOR(MAJOR_NUM, 3, char *) 
#define IOCTL_LCD_CLEAR                    _IOR(MAJOR_NUM, 4, char *)  
#define IOCTL_LCD_RESET                    _IOR(MAJOR_NUM, 5, char *) 
#define IOCTL_LCD_HOME                     _IOR(MAJOR_NUM, 6, char *) 
#define IOCTL_LCD_CURSOR_LEFT              _IOR(MAJOR_NUM, 7, char *) 
#define IOCTL_LCD_CURSOR_RIGHT             _IOR(MAJOR_NUM, 8, char *) 
#define IOCTL_LCD_CURSOR_ON                _IOR(MAJOR_NUM, 9, char *)  
#define IOCTL_LCD_DISP_SHOW_ON             _IOR(MAJOR_NUM, 10, char *) 
#define IOCTL_LCD_CURSOR_GET               _IOR(MAJOR_NUM, 11, char *) 
#define IOCTL_LCD_CURSOR_SET               _IOR(MAJOR_NUM, 12, char *) 
#define IOCTL_LCD_GET_CURSOR_POS           _IOR(MAJOR_NUM, 13, char *)  
#define IOCTL_LCD_SET_CURSOR_POS           _IOR(MAJOR_NUM, 14, char *) 
#define IOCTL_LCD_CURSOR_BLINK             _IOR(MAJOR_NUM, 15, char *) 
#define IOCTL_LCD_ROW1_BLINK               _IOR(MAJOR_NUM, 16, char *) 
#define IOCTL_LCD_DISP_LEFT                _IOR(MAJOR_NUM, 17, char *) 
#define IOCTL_LCD_DISP_RIGHT               _IOR(MAJOR_NUM, 18, char *) 
#define IOCTL_LCD_DISP_ON                  _IOR(MAJOR_NUM, 19, char *) 
#define IOCTL_LCD_DISP_OFF                 _IOR(MAJOR_NUM, 20, char *) 
#define IOCTL_LCD_LINE1                    _IOR(MAJOR_NUM, 21, char *)  
#define IOCTL_LCD_LINE2                    _IOR(MAJOR_NUM, 22, char *) 
#define IOCTL_LED_NORMAL                   _IOR(MAJOR_NUM, 23, char *) 
#define IOCTL_LCD_BACKGROUND_LED_OFF       _IOR(MAJOR_NUM, 24, char *)  
#define IOCTL_LCD_WARNING_LED_ON           _IOR(MAJOR_NUM, 25, char *)

// RT12232F LCD 控制指令 
#define    LCD_CMD_CLEAR  0x01               //清除显示指令 
#define    LCD_CMD_HOME   0x02               //地址归位指令 
 
#define    LCD_CMD_MODES  0x04               //模式设定指令 
#define    LCD_CMD_MODES_SHIFT  0x10         //LCD_CMD_MODES | LCD_CMD_ENABLE_SHIFT  游标右移,AC加1;否则,光标左移,AC减1
#define    LCD_CMD_MODES_SHOW_SHIFT 0x01     //image shift enable 
 
#define    LCD_CMD_ONOFF  0x08              // 显示状态开关 
#define    LCD_CMD_ONOFF_BLINK  0x01        //LCD_CMD_ONOFF | LCD_CMD_ONOFF_BLINK  游标位置反白使能 
#define    LCD_CMD_ONOFF_CURSOR  0x02       //LCD_CMD_ONOFF | LCD_CMD_ONOFF_CURSOR 游标开关使能 
#define    LCD_CMD_ONOFF_DISP  0x04         //LCD_CMD_ONOFF | LCD_CMD_ONOFF_DISP   整体显示使能 
 
#define    LCD_CMD_SHIFT  0x10              //游标或显示移位控制,不改变DDRAM内容,AC dont't change 
#define    LCD_CMD_SHIFT_RIGHT  0x04        //LCD_CMD_SHIFT | LCD_CMD_ENABLE_SHIFT_RIGHT
#define    LCD_CMD_SHIFT_SHOW_RIGHT 0x08    //image shift enable 
 
#define    LCD_CMD_FUNC   0x20              //功能设定,need set width,then set RE 
#define    LCD_CMD_FUNC_WIDTH  0x10         // LCD_CMD_FUNC | LCD_CMD_FUNC_WIDTH 8位数据,否则为4位数据        
#define    LCD_CMD_FUNC_EXPANSION 0x04      // LCD_CMD_FUNC | LCD_CMD_FUNC_EXPANSION,扩充指令操作,否则基本指令操作 
#define    LCD_CMD_ROW1_BLINK 0x04          // 在选择完扩充指令后可以使用
#define    LCD_CMD_ROW2_BLINK 0x05          // 在选择完扩充指令后可以使用 
 
#define    LCD_CMD_RAMCGR 0x40              // 将CGRAM地址设定到IR寄存器 
#define    LCD_CMD_RAMDDR 0x80              // 将DDRAM地址设定到IR寄存器

#define    LCD_BUSY 0x80
 
 
#define    LCD_COM_RESET   0x30             //在软件初始化时使用,在此之前不能检查BF标志 
#define    LCD_INTERFACE   0x10             // interface width;1 (8 BITS)/0 (4BITS) 
#define    LCD_NUMROWS     0x08             //  display rows; 1 (2 ROWS)/0 (1ROW) 
#define    LCD_PIXEL       0x04             // character pixel;    1(5x10 dots)/0 (5x7 dot) 
#define    LCD_MOVE        0x02             // character move direction; 1(increment)/0(decrement) 
#define    LCD_SHIFT       0x01             // move character with display shift; 1(shift) 0(no shift) 
#define    LCD_DISP_SHIFT  0x08             // action after character; 1(display shift)/0(character shift)
 
#define    LED_STATE_NORMAL       0xff 
 
//菜单架构 
 
 //一级菜单 
#define nSHE_BEI_ZHUANG_TAI  1 
#define nBEN_JI_SHE_ZHI      2 
#define nTE_SHU_MING_LING    3 
 //低级菜单 
#define nIP_ADDRESS_STATE    11 
#define nIP_ADDRESS_SHOW     110  
#define nSYSTEM_TIME_STATE   12 
#define nSYSTEM_TIME_SHOW    120  
#define nIP_ADDRESS_SET      21 
#define nIP_ADDRESS          210  
#define nSYSTEM_TIME_SET     22 
#define nSYSTEM_TIME         220 
 
 

/*  
 * The name of the device file  
 */ 
#define DEVICE_FILE_NAME "/dev/lcd_RT12232F" 
#define DEVICE_NAME "lcd_RT12232F"

/*  
 * The function to write to nios 
 */ 
int WriteNios(unsigned long addr, unsigned long value); 
    
/*  
 * The function to read from nios 
 */ 
int ReadNios(unsigned long addr, unsigned long * pValue); 
 
 
/* 
 *在,对get_user做了预处理定义,定义如下: 
   #define get_user(x, ptr)					\ 
   ({								\ 
      int __gu_err = 0;						\ 
      typeof(*(ptr)) __gu_val = 0;				\ 
      switch (sizeof(*(ptr))) {					\ 
      case 1:						\ 
      case 2:						\ 
      case 4:						\ 
      case 8:						\ 
	    memcpy(&__gu_val, ptr, sizeof (*(ptr))); \ 
	    break;							\ 
      default:							\ 
	    __gu_val = 0;						\ 
	    __gu_err = __get_user_bad();				\ 
	    break;							\ 
      }								\ 
    (x) = __gu_val;						\ 
    __gu_err;							\ 
    }) 
 */ 
 
 
 
 
 
 
 
 
 
#endif