📄 lcdzk.c.bak
字号:
/*LCD Cursor Size Subroutine */
void LCD_CursorSize(unsigned char Cursor)
{
#ifdef LCD_DISPLAY__
LCD_CmdWrite(0x18);
LCD_CmdWrite(Cursor); //0x20
#endif
}
/*LCD Cursor Off Subroutine */
void LCD_CursorOff(void)
{
#ifdef LCD_DISPLAY__
LCD_CmdWrite(0x10);
LCD_CmdWrite(0xE9); //Cursor Off
#endif
}
/*LCD Cursor On Subroutine */
void LCD_CursorOn(void)
{
#ifdef LCD_DISPLAY__
LCD_CmdWrite(0x10);
LCD_CmdWrite(0xED); //Cursor On
#endif
}
/*LCD Cursor Set X Subroutine */
/*void LCD_CursorX(unsigned char Cx)
{
#ifdef LCD_DISPLAY__
LCD_CmdWrite(0x60);
LCD_CmdWrite(Cx);
#endif
}*/
/*LCD Cursor Set Y Subroutine */
/*void LCD_CursorY(unsigned char Cy)
{
#ifdef LCD_DISPLAY__
LCD_CmdWrite(0x70);
LCD_CmdWrite(Cy);
#endif
}*/
/*LCD Cursor Set XY Subroutine */
void LCD_CursorXY(unsigned char Cx,unsigned char Cy)
{
#ifdef LCD_DISPLAY__
LCD_CmdWrite(0x60);
LCD_CmdWrite(Cx);
LCD_CmdWrite(0x70);
LCD_CmdWrite(Cy);
CursorX=Cx;
CursorY=Cy;
#endif
}
/*LCD Clear Screen Subroutine */
void LCD_Clear(void)
{
#ifdef LCD_DISPLAY__
unsigned char REG_TMP;
LCD_CmdWrite(0xE0);
LCD_CmdWrite(0x00);
REG_TMP = LCD_CmdRead(0xF0);
REG_TMP &= (0xF7);
REG_TMP |= (0x08);
LCD_CmdWrite(0xF0);
LCD_CmdWrite(REG_TMP);
delay_ms(10);
#endif
}
/*LCD Command Write Subroutine */
void LCD_CmdWrite(unsigned char Cmd_Data)
{
#ifdef LCD_DISPLAY__
LCD_ChkBusy(); //Call LCD_ChkBusy to Check Busy Bit
LCD_DDR=0xff;
LCD_CS1=0;
LCD_RS=1;
LCD_RW=0;
LCD_OUT = Cmd_Data;
LCD_EN = 1;
nop();
LCD_EN = 0;
LCD_RW=1;
LCD_CS1=1;
#endif
}
/*LCD Data Write Subroutine */
void LCD_DataWrite(unsigned char Data_Data)
{
#ifdef LCD_DISPLAY__
LCD_ChkBusy(); //Call LCD_ChkBusy to Check Busy Bit
LCD_DDR=0xff;
LCD_CS1=0;
LCD_RS=0;
LCD_RW=0;
LCD_OUT = Data_Data;
LCD_EN = 1;
nop();
LCD_EN = 0;
LCD_RS=1;
LCD_RW=1;
LCD_CS1=1;
#endif
}
/*LCD Cmd Read Subroutine */
unsigned char LCD_CmdRead(unsigned char REG_Addr)
{
#ifdef LCD_DISPLAY__
unsigned char REG_READ;
LCD_CmdWrite(REG_Addr);
LCD_ChkBusy(); //Call LCD_ChkBusy to Check Busy Bit
LCD_DDR=0x00;
LCD_CS1=0;
LCD_RS=1;
LCD_RW=1;
LCD_EN = 1;
nop();
REG_READ = LCD_IN;
nop();
LCD_EN = 0;
LCD_RS=1;
LCD_RW=1;
LCD_CS1=1;
return REG_READ;
#endif
}
/*LCD Data Read Subroutine */
unsigned char LCD_DataRead(void)
{
#ifdef LCD_DISPLAY__
unsigned char DATA_READ;
LCD_ChkBusy();
LCD_DDR=0x00;
LCD_CS1=0;
LCD_RS=0;
LCD_RW=1;
LCD_EN = 1;
nop();
DATA_READ = LCD_IN;
nop();
LCD_EN = 0;
LCD_RS=1;
LCD_RW=1;
LCD_CS1=1;
return DATA_READ;
#endif
}
/*LCD Check Busy Subroutine */
void LCD_ChkBusy(void)
{
#ifdef LCD_DISPLAY__
do
{
// wdr();
}
while(LCD_BUSY == 1);
#endif
}
void disp_real(void)
{
unsigned char strdata[15];
memset(strdata, 0x00, 15);
sprintf(strdata,"%6.1f",(float)(ombro_min*fGrid));
disp_string(14,20,strdata);
sprintf(strdata,"%6.1f",(float)(ombro_ten*fGrid));
disp_string(14,38,strdata);
sprintf(strdata,"%6.1f",(float)(ombro_hour*fGrid));
disp_string(14,56,strdata);
sprintf(strdata,"%6.1f",(float)(ombro_day*fGrid));
disp_string(14,74,strdata);
sprintf(strdata,"%6.1f",(float)(ombro_continue*fGrid));
disp_string(14,92,strdata);
}
void disp_alarm(void)
{
unsigned char strdata[15];
memset(strdata, 0x00, 15);
sprintf(strdata,"%5.1f",g_lx0);
disp_string(9,0,strdata);
sprintf(strdata,"%5.1f",g_lx1);
disp_string(22,0,strdata);
sprintf(strdata,"%5.1f",g_l11);
disp_string(17,16,strdata);
sprintf(strdata,"%5.1f",g_l12);
disp_string(17,32,strdata);
sprintf(strdata,"%5.1f",g_l13);
disp_string(17,48,strdata);
sprintf(strdata,"%5.1f",g_l22);
disp_string(17,64,strdata);
sprintf(strdata,"%5.1f",g_l23);
disp_string(17,80,strdata);
sprintf(strdata,"%5.1f",g_l32);
disp_string(17,96,strdata);
sprintf(strdata,"%5.1f",g_l33);
disp_string(17,112,strdata);
}
void disp_title(unsigned char page)
{
unsigned char i;
unsigned char strdata[30];
LCD_Clear();
switch (page)
{
case 1:
// disp_hzstr(4,0,"北京局三家店段官厅西工区");
// disp_hzstr(4,0,"北京局三家店段狼山工区");
// disp_hzstr(4,0,"北京局三家店段南口工区");
// disp_hzstr(4,0,"北京局三家店段沙河工区");
disp_hzstr(4,0,"北京局三家店段下花园工区");
// disp_hzstr(4,0,"北京局三家店段雁翅工区");
// disp_hzstr(4,0,"北京局三家店段珠窝工区");
disp_hzstr(4,20,"当前降雨");
disp_stringf(12,20,": mm");
disp_hzstr(2,38,"十分钟降雨");
disp_stringf(12,38,": mm");
disp_hzstr(2,56,"一小时降雨");
disp_stringf(12,56,": mm");
disp_hzstr(6,74,"日降雨");
disp_stringf(12,74,": mm");
disp_hzstr(4,92,"连续降雨");
disp_stringf(12,92,": mm");
break;
case 2:
sprintf_P(szBuffer,alarmvalue);
disp_hzstr(0,0,"阈值");
disp_stringf(4,0,"LX0: mm LX1: mm");
sprintf_P(szBuffer,alarmoutnote);
disp_hzstr(2,16,"注意警戒值");
disp_stringf(12,16,"L11: mm");
// sprintf_P(szBuffer,alarmoutnote);
disp_hzstr(2,32,"注意警戒值");
disp_stringf(12,32,"L12: mm");
// sprintf_P(szBuffer,alarmoutnote);
disp_hzstr(2,48,"注意警戒值");
disp_stringf(12,48,"L13: mm");
sprintf_P(szBuffer,alarmoutrisk);
disp_hzstr(2,64,"危急警戒值");
disp_stringf(12,64,"L22: mm");
// sprintf_P(szBuffer,alarmoutrisk);
disp_hzstr(2,80,"危急警戒值");
disp_stringf(12,80,"L23: mm");
sprintf_P(szBuffer,alarmoutclose);
disp_hzstr(2,96,"封锁区间值");
disp_stringf(12,96,"L32: mm");
// sprintf_P(szBuffer,alarmoutclose);
disp_hzstr(2,112,"封锁区间值");
disp_stringf(12,112,"L33: mm");
disp_alarm();
break;
case 3:
disp_hzstr(4,20,"请输入密码");
disp_stringf(14,20,":****");
break;
case 4:
disp_hzstr(4,50,"正在打印,请等待。。。");
break;
case 5:
disp_hzstr(6,4,"1:设置警戒值");
disp_hzstr(6,24,"2:设置手机号");
disp_hzstr(6,44,"3:设置时钟");
disp_hzstr(6,64,"4:查询数据");
disp_hzstr(6,84,"5:打印结果");
disp_hzstr(4,110,"请按数字键选择或取消!");
break;
case 6:
disp_hzstr(0,60,"时钟");
memset(strdata, 0x00, 30);
sprintf(strdata, "20%02d-%02d-%02d %02d:%02d:%02d", CLK_YEAR, CLK_MONTH, CLK_DAY,
CLK_HOUR, CLK_MIN, CLK_SEC);
disp_string(6,60,(unsigned char*)strdata);
break;
case 7:
disp_hzstr(2,28,"报警手机号");
disp_stringf(12,28,":");
memset(strdata, 0x00, 30);
for (i=0;i<11;i++)
{
strdata[i]=MobilePhone[i];
}
disp_string(14,28,strdata);
disp_hzstr(2,68,"雨量计量程");
disp_stringf(12,68,":");
memset(strdata, 0x00, 30);
sprintf(strdata,"%3.1f",fGrid);
disp_string(14,68,strdata);
disp_stringf(17,68,"mm");
break;
case 8:
// disp_hzstr(4,0,"北京局三家店段官厅西工区");
// disp_hzstr(4,0,"北京局三家店段狼山工区");
// disp_hzstr(4,0,"北京局三家店段南口工区");
// disp_hzstr(4,0,"北京局三家店段沙河工区");
disp_hzstr(4,0,"北京局三家店段下花园工区");
// disp_hzstr(4,0,"北京局三家店段雁翅工区");
// disp_hzstr(4,0,"北京局三家店段珠窝工区");
disp_hzstr(4,20,"最大降雨量");
disp_hzstr(20,20,"发生时刻");
disp_hzstr(0,38,"十分钟");
disp_stringf(6,38,": 15.0mm");
disp_stringf(21,38,"10:35");
disp_hzstr(0,56,"一小时");
disp_stringf(6,56,": 20.0mm");
disp_stringf(21,56,"18:24");
disp_hzstr(0,74,"日降雨");
disp_stringf(6,74,": 25.0mm");
disp_hzstr(2,92,"连续");
disp_stringf(6,92,": 30.0mm");
disp_hzstr(4,111,"日期");
memset(strdata, 0x00, 30);
sprintf(strdata, "20%02d-%02d-%02d", CLK_YEAR, CLK_MONTH, CLK_DAY);
disp_string(12,111,(unsigned char*)strdata);
break;
case 9:
// disp_hzstr(4,0,"北京局三家店段官厅西工区");
// disp_hzstr(4,0,"北京局三家店段狼山工区");
// disp_hzstr(4,0,"北京局三家店段南口工区");
// disp_hzstr(4,0,"北京局三家店段沙河工区");
disp_hzstr(4,0,"北京局三家店段下花园工区");
// disp_hzstr(4,0,"北京局三家店段雁翅工区");
// disp_hzstr(4,0,"北京局三家店段珠窝工区");
disp_hzstr(0,38,"站点ID号:");
disp_hzstr(2,68,"IP地址:");
// disp_stringf(12,68,"10.14.83.174"); //北京局三家店段官厅西工区
// disp_stringf(12,68,"10.14.83.170"); //北京局三家店段狼山工区
// disp_stringf(12,68,"10.14.83.178"); //北京局三家店段南口工区
// disp_stringf(12,68,"10.14.83.177"); //北京局三家店段沙河工区
disp_stringf(12,68,"10.14.83.173"); //北京局三家店段下花园工区
// disp_stringf(12,68,"10.14.83.175"); //北京局三家店段雁翅工区
// disp_stringf(12,68,"10.14.83.176"); //北京局三家店段珠窝工区
break;
default:
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -