📄 lcd.h
字号:
//lcd.h
//Liweihua
//2005.04.12
#define XBYTE ((unsigned char volatile xdata *) 0)
/* T6963C 端口定义 */
#define LCM_CMD XBYTE[0x7EFF]
#define LCM_DAT XBYTE[0x7EFE]
/* T6963C 命令定义 */
#define CMD_CUR_POS 0x21 /* 光标位置设置 */
#define CMD_CGR_POS 0x22 /* CGRAM偏置地址设置 */
#define CMD_ADD_POS 0x24 /* 地址指针位置 */
#define CMD_TXT_STP 0x40 /* 文本区首址 */
#define CMD_TXT_WID 0x41 /* 文本区宽度 */
#define CMD_GRH_STP 0x42 /* 图形区首址 */
#define CMD_GRH_WID 0x43 /* 图形区宽度 */
#define CMD_MOD_OR 0x80 /* 显示方式:逻辑"或" */
#define CMD_MOD_XOR 0x81 /* 显示方式:逻辑"异或" */
#define CMD_MOD_AND 0x82 /* 显示方式:逻辑"与" */
#define CMD_MOD_TCH 0x83 /* 显示方式:文本特征 */
#define CMD_DIS_SW 0x90 /* 显示开关: */
/* D0=1/0:光标闪烁启用/禁用; */
/* D1=1/0:光标显示启用/禁用; */
#define CMD_DIS_TXT 0x94 /* D2=1/0:文本显示启用/禁用; */
/* D3=1/0:图形显示启用/禁用; */
#define CMD_DIS_GRA 0x98
#define CMD_CUR_SHP 0xA0 /* 光标形状选择:0xA0-0xA7 表示光标占的行数 */
#define CMD_AUT_WR 0xB0 /* 自动写设置 */
#define CMD_AUT_RD 0xB1 /* 自动读设置 */
#define CMD_AUTRD_OVR 0xB2 /* 自动读/写结束 */
#define CMD_AUTWR_OVR 0xB3
#define CMD_INC_WR 0xC0 /* 数据一次写,地址加1 */
#define CMD_INC_RD 0xC1 /* 数据一次读,地址加1 */
#define CMD_DEC_WR 0xC2 /* 数据一次写,地址减1 */
#define CMD_DEC_RD 0xC3 /* 数据一次读,地址减1 */
#define CMD_NOC_WR 0xC4 /* 数据一次写,地址不变 */
#define CMD_NOC_RD 0xC5 /* 数据一次读,地址不变 */
#define CMD_SCN_RD 0xE0 /* 屏读 */
#define CMD_SCN_CP 0xE8 /* 屏拷贝 */
#define CMD_BIT_OP 0xF0 /* 位操作 */
/*LCD消息*/
#define SCR_EV_DISP_OVER 0x00//LCD闲置
#define SCR_EV_DISP_SYSTEM_MSG 0x01//初始化完成后显示系统参数
#define SCR_EV_DISP_TIME 0x02//显示时间
/////////////////////////////////////
#define SCR_EV_WIN_JAM 0x03//显示提示信息,需延时显示
#define SCR_EV_WIN_ACCIDENT_ALARM 0x04//显示提示信息,需延时显示
#define SCR_EV_WIN_SETTING 0x05//显示设置菜单选项
#define SCR_EV_WIN_PHONEBOOK 0x06//显示电话本条目
#define SCR_EV_WIN_HISMSG_ENTRY 0x07//显示历史信息入口
/////////////////////////////////////
#define SCR_EV_SELECT_OPERATION 0x08//屏幕最后一行显示操作按钮
#define SCR_EV_CANCEL_OPERATION 0x09//擦除操作按钮
////////////////////////////////////////////
#define SCR_EV_WIN_SET_DEVICE_ID 0x0A//设置设备编号
#define SCR_EV_WIN_SET_NUMBER 0x0B//显示输入电话号码的窗口
#define SCR_EV_WIN_SET_IP 0x0C//显示输入IP地址的窗口
#define SCR_EV_WIN_SET_PORT 0x0D//显示输入端口号的窗口
#define SCR_EV_QUESTION1 0x0E//询问是否要替换某一个号码
#define SCR_EV_WIN_SET_SN 0x0F//只有用户选择了替换号码时才发生
#define SCR_EV_DISP_DEVICE_ID 0x10
#define SCR_EV_DISP_NUMBER 0x11//显示输入框中的电话号码
#define SCR_EV_DISP_IP 0x12//显示输入框中的IP地址
#define SCR_EV_DISP_PORT 0x13//显示输入框中的端口号
#define SCR_EV_DISP_SN 0x14//显示输入框中的电话号码编号
/////////////////////////////////////
#define SCR_EV_DIALING 0x15//屏幕上方提示正在拨号
#define SCR_EV_TALKING 0x16//屏幕上方提示正在通话
//需要延时显示的消息
#define SCR_EV_HANGUP 0x17//屏幕上方提示结束通话
#define SCR_EV_PEER_HANGUP 0x18//屏幕上方提示对方挂断
#define SCR_EV_PEER_TOUT 0x19//屏幕上方提示对方超时
#define SCR_EV_ADD_OK 0x1A//输入框后面提示加入电话号码成功
#define SCR_EV_REPLACE_OK 0x1B//输入框后面提示替换电话号码成功
#define SCR_EV_MODIFY_OK 0x1C//输入框后面提示修改电话号码成功
#define SCR_EV_DEL_OK 0x1D//输入框后面提示删除电话号码成功
#define SCR_EV_DEL_ALL_OK 0x1E
#define SCR_EV_SET_OK 0x1F//提示设置成功(ip/port)
#define SCR_EV_INPUT_ERR 0x20
//////////////////////////////////////
//需要闪烁显示的消息
#define SCR_EV_FLASH_RTMSG 0x21//电话打入,闪烁的电话图标
#define SCR_EV_FLASH_CALL 0x22//收到实时信息,闪烁的信息图标
/////////////////////////////////////
//新信息阅读超时
//#define SCR_EV_TOUT_NEW_MSG 0x24//屏幕上方中间提示x条未读
/////////////////////////////////////
#define SCR_EV_DISP_RTMSG 0x25//显示实时信息内容
#define SCR_EV_DISP_HISTORY_MSG 0x26//显示历史信息内容
#define SCR_EV_QUESTION2 0x27//询问是否阅读下一条信息
/////////////////////////////////////
//系统状态参数等的查询和显示
#define SCR_EV_GPS_QUERY 0x28//根据GPS信号作显示
#define SCR_EV_GPRS_SIGNAL_VALUE 0x29//显示GPRS信号强度
#define SCR_EV_GPRS_ONLINE_MODE 0x2A//显示在线状态(数据/命令)
#define SCR_EV_VEHICLE_LOGINOK 0x2B//显示车辆登陆成功图标
#define SCR_EV_ALARMING 0x2C//显示正在报警
#define SCR_EV_ALARM_OK 0x2D//显示报警成功,需要延时显示
#define SCR_EV_CLEAR_HINT_MSG 0x2E//擦除屏幕上方提示信息
////////////////////////////////////////////////////
//与主机通信错误
#define SCR_EV_CHECK_CABLE 0x2F//显示电缆错误
#define RECV_RTMSG_MAXNUM 8
#define NEW 0xFF
#define OLD 0x00
#define RTMSG_MAXLEN 300//XXXX,xx:xx:xx:xx,xxxxxxxxx...
#define OPERATOR_ID_LEN 6
#define OPERATION_ID_LEN 4
#define DISPATCH_ACK_TOUT 20
typedef struct
{
unsigned char type;
unsigned char state;
unsigned char buf[RTMSG_MAXLEN];
unsigned char len;
unsigned char operator_id[OPERATOR_ID_LEN];
unsigned char operation_id[OPERATION_ID_LEN];
unsigned char msg_ack_flag;
unsigned char dispatch_ack_timerh;
//新增
////////////////////////////////////////////
unsigned char *addr;//对应的flash地址
///////////////////////////////////////////
}RTMSG;
#define HISTORY_MSG_CONTENT_MAX_LEN 248
typedef struct
{
unsigned char type;
unsigned char year;
unsigned char month;
unsigned char day;
unsigned char hour;
unsigned char minute;
unsigned char second;
unsigned char msg_buf[HISTORY_MSG_CONTENT_MAX_LEN];
unsigned char state;
unsigned char len;//length of the content in msg_buf
}HISTORY_MSG;
#define FLASH_DISP_TOUT 20//闪烁超过20秒不再闪烁
#define FLASH_DISP_INTERVAL 33//闪烁间隔为330毫秒
//#define FLASH_DISP_INTERVAL2 25//闪烁间隔为250毫秒
#define DELAY_DISP_TOUT 2//延时2秒
#define ARROW_ROTATE_TOUT 1
#define SYSINIT_TOUT 21
#define HOST_ACK_TOUT 15
typedef struct
{
//LCD显示消息
unsigned char event_notice;
//标志位,状态位
unsigned char vehicle_logined;
unsigned char gps_data_validate_flag;
unsigned char first;
unsigned char gprs_online_state;
unsigned char arrow_no;
// unsigned char speed;
unsigned char gprs_signal_value;
unsigned char err_msg_on;
unsigned char check_cable;
unsigned char flash_disp_no;
unsigned char flash_count1;//rtmsg
unsigned char flash_count2;//call in
unsigned char flash_count3;//alarm
unsigned char satelite_rotate_count;
unsigned char delay_disp_no;
unsigned char ignored_msg_on;
unsigned char ignored_call_on;
//实时信息显示缓存偏移量
unsigned int offset_rtmsg;
//历史信息显示缓存偏移量
unsigned int offset_hismsg;
//存放读出的一条历史信息
HISTORY_MSG tmp_rdbuf;
// unsigned char buf_read[256];
//指向当前处理的实时信息
RTMSG *rtmsg_p;
//指向当前回复的调度信息
RTMSG *ackmsg_p;
//Timer
unsigned char flash_tout_timerh;
unsigned char flash_interval_timerh1;
unsigned char flash_interval_timerh2;
unsigned char flash_interval_timerh3;
unsigned char delay_disp_timerh;
unsigned char satelite_rotate_timerh;
unsigned char sysinit_timerh;
unsigned char wait_ack_timerh;
//for drow a pixel
unsigned char lcd_dot[128][16];
}LCDCB;
typedef struct
{
unsigned char* cc_mb;
unsigned char cc_sum;
unsigned char cc_x;
unsigned char cc_y;
}MENU_ITEM;
typedef struct
{
MENU_ITEM header;
unsigned char menuitem_sum;
MENU_ITEM menu_item[6];
}WINDOW;
unsigned char ST01(void) ;
unsigned char ST3(void);
unsigned char WrDblParaCmd(unsigned char uCmd,unsigned char uPar1,unsigned char uPar2) ;
unsigned char WrSglParaCmd(unsigned char uCmd,unsigned char uPar1) ;
unsigned char WrNonParaCmd(unsigned char uCmd) ;
unsigned char WrDat(char uData) ;
void SetPos(unsigned char urow,unsigned char ucol) ;
void LcdInit(void) ;
void ClearAll(void);
void ClearMenuRegion(void);
void ClearInputRegion(unsigned char y);
void ClearHintMsg(void);
void ClearButton(void);
void ClearMenuRegion(void);
void ClearIcon(unsigned char x,unsigned char y);
void GetHZDot(unsigned char hh,unsigned char ll);//reentrant;
void GetAsciiDot(unsigned char ascii);
void DispChn(unsigned char type,unsigned char cc_x,unsigned char cc_y);
void DispAscii(type,unsigned char x,unsigned char y);
void DispWindow(WINDOW* win_p);
void DispMenuItem(unsigned char type,unsigned char chn_sum,unsigned char *hzmb,unsigned char x,unsigned char y);//reentrant;
void DispIcon(unsigned char *icon_dot,unsigned char dot_num,unsigned char x,unsigned char y);
void DispIcon2(unsigned char *icon_dot,unsigned char x,unsigned char y);
//unsigned int TextRecombine (unsigned char* str1,unsigned char* str2,unsigned int len);
void DispTxt(unsigned char txt_len,unsigned char *hzmb,unsigned char cc_x,unsigned char cc_y);
void DispDateTime(void);
void DispSysMsg(void);
void SetPixel(unsigned char point_x,unsigned char point_y);
void PlotCirclePoint(unsigned char x,unsigned char y,unsigned char xx,unsigned char yy) ;
void Circle (unsigned char xc,unsigned char yc,unsigned char radius);
void InitPoll(void);
void LcdPoll(void);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -