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

📄 lcd.c

📁 数据采样显示控制数据采样显示控制数据采样显示控制
💻 C
📖 第 1 页 / 共 2 页
字号:
	unsigned int ii;
    unsigned char jj,kk;
    for(ii=0;ii<count1;ii++)
    for(jj=0;jj<100;jj++)
    for(kk=0;kk<100;kk++);
}
//--------------------------------------------
//--------------------------------------------

//-----------运行正常-----------
uint count; 
void lcd_yxzc(void)	
{
	anjian();
	if(anjian())
	{
		bkl=0;
		bkl=1;
		bkl=0;
		bkl=1;
		count=0;
		switch(jianzhi)
		{
			case shang:
				caidan=5;
				break;
		    case xia:
		        caidan=5;
		        break;		
			case queren:
			    break;
			case quxiao:
			    break;
		}
 	}

	wrhz(2,11,yunxing,4);
	readtime();	
	dptime(7,0);
}
//-----------设置菜单-------------
void lcd_setup(void)	
{
	char row;
	row=caidan1;
	anjian();
	if(anjian())
	{
		bkl=0;
		bkl=1;
		bkl=0;
		bkl=1;
		count=0;
	}
	switch(jianzhi)
	{
		case shang:
			caidan1--;
			if(caidan1<3)
				caidan1=4;
			break;
		case xia:
			caidan1++;
			if(caidan1>4)
				caidan1=3;
			break;
		case queren:
			caidan=caidan1+3;
			break;
		case quxiao:
			caidan1=3;
			caidan=0;
		
	}
	
	wrhz(2,12,zhucaidan,3);
	wrzf(row,9,25);
	wrzf(row,10,25);
	wrzf(caidan1,9,22);			//"-"
	wrzf(caidan1,10,23);		//">"
	wrhz(3,11,shijian,2);		//时间
	wrhz(3,15,shezhi,2);		//设置	
	wrhz(4,11,shibo,2);         //失波
	wrhz(4,15,zhuiyi,2);        //追忆
}
//---------------------------------------------------


//----------------------------------------------------
//------------修改时间---------------------------------
void lcd_ch_time(void)
{
	anjian();
	dptime(4,0);
	wrzf(5,3*flag+9,24);
	wrzf(5,3*(flag-1)+9,25);
	bcdtobin(time_buf);
	if(anjian())
	{
		bkl=0;
		bkl=1;
		bkl=0;
		bkl=1;
		count=0;
	}
	switch(jianzhi)
	{
		case shang:
			time_buf[flag]++;
			break;
		case xia:
			time_buf[flag]--;
			break;
		case queren:
			flag++;
			if(flag==6)
			{
				flag=0;
			
				caidan=0;
			}
			break;
		case quxiao:
			caidan=5;		
	}
	switch(flag)
	{
		case 0:
			if(time_buf[0]>50)
				time_buf[0]=0;
			break;
		case 1:
			if(time_buf[1]>12)
				time_buf[1]=1;
			if(time_buf[1]<1)
				time_buf[1]=12;
			break;
		case 2:
			if(time_buf[2]>31)
				time_buf[2]=1;
			if(time_buf[2]<1)
				time_buf[2]=31;
			break;
		case 3:
			if(time_buf[3]>23)time_buf[3]=0;
			if(time_buf[3]<0)time_buf[3]=23;
			break;
		case 4:
			if(time_buf[4]>59)time_buf[4]=0;
			if(time_buf[4]<0)time_buf[4]=59;
			break;
		case 5:
			if(time_buf[5]>59)time_buf[5]=0;
			if(time_buf[5]<0)time_buf[5]=59;
	}
			bintobcd(time_buf);
			if(jianzhi==queren)
	        settime();

}
//-----------------------------------------------------
//-----------------------------------------------------

sbit work= P1^4;
//-----------------------------------------------------
//-----------------------------------------------------
void timer0_int(void) interrupt 1 
{
	uchar fen;
	TMOD=0x01;
	TH0=0xec;		//5ms定时中断
	TL0=0x78;
	TR0=1;	
	count++;
	if((count%100)==0)
		work=!work;
	if(count==4000)
	{
		fen++;
		count=0;
		if(fen==15)		//5分钟关背光
		{
			bkl=0;
			fen=0;
		}
	}
}
//----------------------------------------------------------
//----------------------------------------------------------
uchar  pp=1;
void multierrordisplay(void)
{     
	if(kr&0x40)     
        {
        wrhz(0,6,quexiang,2);
        wrhz(2,10,quexiang,2);        
	    wrhz(2,14,guzhang,2);
	    wrhz(2,18,yuanyin,2);
	    }
     else 
        {
        wrhz(0,6,space,2);
        wrhz(2,10,space,2);
	    wrhz(2,14,space,2);
	    wrhz(2,18,space,2);
	    }
     if(kr&0x20)
        {
        wrhz(0,11,nibian,2);
        wrhz(3,10,nibian,2);
	    wrhz(3,14,guzhang,2);
	    wrhz(3,18,yuanyin,2);
	    }
     else
        {
        wrhz(0,11,space,2);
        wrhz(3,10,space,2);
	    wrhz(3,14,space,2);
	    wrhz(3,18,space,2);
        }
     if(kr&0x10)
        {
        wrhz(0,16,guoya,2);
        wrhz(4,10,guoya,2);
	    wrhz(4,14,guzhang,2);
	    wrhz(4,18,yuanyin,2);
        }
     else 
        {
        wrhz(0,16,space,2);
        wrhz(4,10,space,2);
	    wrhz(4,14,space,2);
	    wrhz(4,18,space,2);
        }
     if(kr&0x08)
        {
        wrhz(0,21,shibo,2);
        wrhz(5,10,shibo,2);
        wrhz(5,14,guzhang,2);
	    wrhz(5,18,yuanyin,2);
        }
     else
        {
        wrhz(0,21,space,2);
        wrhz(5,10,space,2);
        wrhz(5,14,space,2);
	    wrhz(5,18,space,2);
        }
     wrhz(0,0,guzhang,2);             
     wrzf(0,4,19);     
     dptime(7,0);  
 }
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
uchar shouci,ke;
void krcl(void)
{   	
	uchar hide_arrow=1;                    
	uchar row1;
	uchar key=0;
	key =kr&0x78;
	if(key)
    {
	if(ke != key)                   
		{	                     
			cls(0x00);			
			bkl=0;
			bkl=1;
			bkl=0;
			bkl=1;
			count=0;
            ke = key;                  
        }
    caidan=9;                        
    row1=pp;                                                 
	anjian();                        
    if(anjian())
	{
		bkl=0;
		bkl=1;
		bkl=0;
		bkl=1;
		count=0;
     }                      
    if((jianzhi==shang)||(jianzhi==xia))
    {
           	 hide_arrow=0;           
             pp++;                   
             if(pp==2)
               {
               if(kr&0x40)
                 pp=2;
               else
                 pp=3;
               }
             if(pp==3)
               {
               	if(kr&0x20)
               	 pp=3;
               	else
               	 pp=4;
           	   }
           	 if(pp==4)
           	   {
           	    if(kr&0x10)
           	     pp=4;
           	    else
           	     pp=5;
       	       }
           	 if(pp==5)
           	   {
           	    if(kr&0x08)
           	     pp=5;
           	    else
           	     pp=2;
       	       }
                if(pp>5)
       	         pp=2;
//---------------------------------------------------
       	     if(pp==2)
                  {
                if(kr&0x40)
                 pp=2;
                else
                 pp=3;
               }
             if(pp==3)
                  {
               	if(kr&0x20)
               	 pp=3;
               	else
               	 pp=4;
               }
           	 if(pp==4)
           	  {
           	    if(kr&0x10)
           	     pp=4;
           	    else
           	     pp=5;
       	       }
             if(pp==5)
           	  {
           	    if(kr&0x08)
           	     pp=5;
           	    else
           	     pp=2;
       	       }
          }
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
    switch(jianzhi)
    {
      case queren:
		 hide_arrow=1;
		 caidan=pp-1;
		 if(caidan==0)
		 caidan=8;      
	     break;     
	  case quxiao:
	  	 hide_arrow=1;
	     caidan=8;
    }        
      if(hide_arrow==0)
      {
      wrzf(row1,8,25);
	  wrzf(row1,9,25);
      wrzf(pp,8,22);
	  wrzf(pp,9,23);
	  }
    }
	else 
	{
		if(ke!=0) 
		{        
			caidan=0;      	
			ke=0;
			pp=1;   
	    }	  
	}
}


//----------------------------------------------------------------
//----------------------------------------------------------------
uchar sbcount=0,onetime;
void shibo_memory_program(void)
{    
    uchar signal=0;
    signal=kr&0x80;              	
	if(signal)                           
	{
	if(onetime != signal)	     
     {
      sbcount++;
      if(sbcount>40)
      sbcount=1;
      Memory_write_inErase(1,2007,sbcount*6,time_buf,6);           
      onetime = signal;	              
	 }		    		    		    
    }
    else                         
    {
    	if(onetime != 0)         
    	onetime=0;
	}
}
//------------------------------------------------------------------
//------------------------------------------------------------------

//-------------------------------------------------
//-----------失波追忆-------------------------------
uchar sbpoint=0;
void lcd_sb_memory(void)
{
	anjian();
	if(anjian())
	{  
	   bkl=0;
	   bkl=1;
	   bkl=0;
	   bkl=1;
	   count=0;
	   switch(jianzhi)
	   {
	    case shang:
	         sbpoint++;
	         if(sbpoint>sbcount)
	         sbpoint=1;
	         break;
	    case xia:
	         sbpoint--;
	         if(sbpoint<1)
	         sbpoint=sbcount;
	         break;
	    case queren:
	         sbpoint=0;
	         caidan=5;
	         break;
	    case quxiao:
	         caidan=0;     
	   }
    }
    wrhz(2,6,shibo,2);         //失波
    wrhz(2,10,guzhang,2);      //故障
    wrhz(2,14,fasheng,2);      //发生
    wrhz(2,18,lele,1);         //了
    wrzf(2,20,sbcount/10);     //sbcount十位
    wrzf(2,21,sbcount%10);     //sbcount个位
    wrhz(2,22,cici,1);         //次
	
    
    if(sbcount!=0)
    {        	  	
    wrhz(5,8,didi,1);          //第	
    wrzf(5,10,sbpoint/10);     //sbpoint十位
    wrzf(5,11,sbpoint%10);     //sbpoint个位
    wrhz(5,12,cici,1);         //次
    wrhz(5,14,fasheng,2);      //发生
    wrhz(5,18,shijian,2);      //时间
     	
    Memroy_Array_Read(2007,sbpoint*6,time_buf,6);
    if(sbpoint>0)
    dptime(6,0);
     }
}
//--------------------------------------------------------------------
//--------------------------------------------------------------------
void dpcaidan(void)
{
	if(shouci!=caidan)
	{
		cls(0x00);
		shouci=caidan;
	}
	
	switch(caidan)
	{
		case 0:
			lcd_yxzc();
			break;
		case 1:
			lcd_quexiang();
			delay10ms(500);
	        pp=1;
			break;
		case 2:
			lcd_nibian();
			delay10ms(500);
	        pp=1;
			break;
		case 3:
			lcd_guoya();
			delay10ms(500);
	        pp=1;
			break;
		case 4:
			lcd_shibo();
			delay10ms(500);
	        pp=1;			
			break;
		case 5:
			lcd_setup();
			break;
		case 6:
			lcd_ch_time();
			break;
		case 7:
		    lcd_sb_memory();
			break;
		case 8:
            wrhz(3,8,QATZJXZ,7);
            delay10ms(50);
            break;
		case 9:
		    multierrordisplay(); 
					}
}

void main(void)
{
	TMOD=0x01;
	TH0=0xec;
	TL0=0x78;
	ET0=1;
	TR0=1;	
	EA=1;  
	bkl=0;
	bkl=1;
	bkl=0;
	bkl=1;
    delayms(1);

	wrctrl(0x00,0x00,0x40);
	wrctrl(0x00,0x08,0x42);
	wrctrl(0x1e,0x00,0x41);
	wrctrl(0x1e,0x00,0x43);
        
	wrctrl0(0x81);
	wrctrl0(0x98);
          
	cls(0x00); 
	lcd_yxzc();
  	start12887();
	do
    {   
		krcl();
		shibo_memory_program();	
    	dpcaidan();
    	delayms(500);
	}while(1);
	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -