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

📄 dis_xl.c

📁 很好的51显示程序!做为一个人机对话,HAO
💻 C
📖 第 1 页 / 共 5 页
字号:
	{
		r_p=0;	
	}
	
	soe[w_p][0]=data_rx[5];	
	for(k=1;k<3;k++)
	{	
		soe[w_p][k]=data_rx[2*k+4]+data_rx[2*k+5]*256;
	}
	w_p++;
	w_p &= 0xf;
	event=1;
}

void soe_zz()
{
	if((r_p==w_p)&&(event==1))
	{
		if(s_b==0)
		{
			s_b=0xf;
		}
		else
		{
			s_b--;
		}
	}
	else if((r_p!=w_p)&&(s_b!=r_p))
	{	
		s_b--;
	}
}

void soe_page()
{
	if(r_p!=w_p)
	{
		total= (w_p + 1)/2;
	}
	else if((r_p==w_p)&&(event==1))
	{
		total = 8;
	}
	else 
	{
		total = 0;
	}
}


void int_samkey() interrupt 1
{ 
	unsigned int tmp1, tmp2;

	TH0 = 0xb8;
	TL0 = 0x00;
	cnt1++;
	
	tmp1 = ~KEY9;
	tmp1 = ((tmp1 & b0_msk)<<8);
	tmp2 = ~KEY8;
	tmp2 &= 0xff;
	kscan = (tmp1 | tmp2);
		
	kready = keya & keyb;
	keya = keyb;
	keyb = kscan;
	tmp2 = (kready & kscan);
	if(tmp2 != 0)
	{
		tmp1 = (kready ^ keybak);
		if(tmp1 != 0)
		{
			keybak = kready;		
			if(!TKEY)
			{
				TKEY = kready;   			
			}
		}
	}
	else
	{
		keybak = 0;
	}
}

void int_com() interrupt 4
{ 
    unsigned char i,check1;  
    	
    if(RI==1)  
    {   
      rx1=rx0;  
      rx0=SBUF;  
      if((rx1==0xeb)&(rx0==0x90)) flag_rx=1;  
      if(flag_rx==1) { p_rx++; data_rx[p_rx]=rx0;}   
      if(p_rx>(data_rx[4]+4))   
      {  
		  check1=0xeb;
          for(i=1;i<p_rx;i++) 
		  {
			  check1=check1^data_rx[i];
		  }
          if(check1==rx0)
		  {
			  rsymbol |= b2_msk;     //整帧
			  data_led = (data_led ^ 0x01);
			  LED8 = data_led;
			  CLED = 0;
			  CLED = 1;/* LED8=1;CLED = 0;CLED = 1;  */ 
			  P2 =0xff;
		  }
		  flag_rx=0; 
		  p_rx=0;  
	  }
      RI=0;   
    }  
	TI=0; 
} 

void LCD_CLR()
{ 
	unsigned int i,j; 

	for(i=0;i<6000;i++); 
	for(i=0;i<4;i++) 
	{
		for(j=0;j<16;j++)
		{
			disp816(j*8,i*2,' ');
		}
	}
}

unsigned char check_pass()
{
	unsigned char tem,j;
	
	tem=4;
	recode();
	for(j=0;j<4;j++)
	{
		if(mm[j]!=kk[j])
		{
			tem--;
		}
	}

	if(tem!=4)
	{
		tem=4;
		for(j=0;j<4;j++)
		{
			if(mm[j]!=1)
			{
				tem--;
			}
		}
	}

	return tem;
}
 
void recode()
{
	unsigned int  y;
	unsigned char x,z;

	
	IE=0x0;

	for(x=0,z=1;z<5;x++,z++)
	{
		kk[x]=rdbytespi(z);
		if(kk[x]>9) { kk[x]=0; }			    
		for(y=0;y<1000;y++);
	}

	IE=0x92;
}

/**********************************************************
按键处理:row为每屏定值的行数row=p_y/2;
***********************************************************/
void dealkey(unsigned char row,unsigned char colum)
{
	unsigned int j;

	if(page_change != 1)
	{
		switch(TKEY)
		{
			case up:
				if(p_y>0)
				{
					disp816(p_x,p_y,ascdz[t_y--][t_x]);
					p_y -=2;
					if(ascdz[t_y][t_x]=='.')
					{
						t_x++;
						p_x+=8;
					}	
					if(p_y==0)
					{
						for(j=20000;j>0;j--);
					}
				}
				break;				
			case down:
				if(p_y<row)
				{
					disp816(p_x,p_y,ascdz[t_y++][t_x]);
					p_y +=2;
					if(ascdz[t_y][t_x]=='.')
					{
						t_x++;
						p_x+=8;
					}
					if(p_y==6)
					{
						for(j=20000;j>0;j--);
					}
				}
				break;
			case left:
				if(p_x>72)
				{
					disp816(p_x,p_y,ascdz[t_y][t_x--]);
					p_x -=8;
					if(ascdz[t_y][t_x]=='.')
					{
						t_x--;
						p_x-=8;
					}
				}
				break;
			case right:
				if(p_x<colum)
				{
					disp816(p_x,p_y,ascdz[t_y][t_x++]);
					p_x +=8;
					if(ascdz[t_y][t_x]=='.')
					{
						t_x++;
						p_x+=8;
					}
				}
				break;
			case add:
				if(ascdz[t_y][t_x]<'9')
				{
					ascdz[t_y][t_x]++;
					rsymbol |= b4_msk;
					tflag=1;
				}
				break;
			case sub:
				if(ascdz[t_y][t_x]>'0')
				{
					ascdz[t_y][t_x]--;
					rsymbol |= b4_msk;
					tflag=1;
				}
				break;
			default: 
				break;
		}
		disp816n(p_x,p_y,ascdz[t_y][t_x]);
	}
}

/**********************************************************
按键处理:row为每屏定值的行数row=p_y,start-位定值起始p_y=0或2;
***********************************************************/
void dealkey_kzz(unsi

⌨️ 快捷键说明

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