⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcdzk.c.bak

📁 使用avr--cc2420模块程序,需要原理图的联系 QQ:120304948
💻 BAK
📖 第 1 页 / 共 2 页
字号:
/*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 + -