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

📄 send.c

📁 一个简单的串口程序。学校的作业了拉。!! !! !! !!1
💻 C
字号:
#include <at89x52.h>
unsigned char a[]={0x3f,0x06,0x5b,0x4f,0x66 ,0x6d ,0x7d ,0x07 ,0x7f ,0x6f ,0x77 ,0x7c};
unsigned char keyvalue;
	void delay(unsigned char j) 
    {
	  unsigned char m,k;
	  for(m=0;m<j;m++)
	  for(k=0;k<255;k++);
	 }
  
void Serialinit(void)
{       
	TMOD = (TMOD & 0x0F) | 0x20;      //T1工作方式
	TH1 = -6;                        //波特率初始值 注意用倍频方式
	PCON |= 0x00;	                 //SMOD = 1
	TR1 = 1;
	SCON = 0x40;	//REN = 1
	ES = 1;
	EA = 1; }
void RS232_intr( void ) interrupt 4		//注意RI和TI任一位变为1都中断
{
	
	if( TI == 1 ){  TI=0;SBUF=keyvalue; 
    while(TI==0);TI=0; }


}
/*void Key()
	{
	 unsigned char x,y,key;
     
	  P2=0xf0;
      x=P2;
      x=x&0xf0;
      P2=0x0f;
      y=P2;
      y=y&0x0e;
      key=x|y;
      if(key==254) return;
     
      delay(1);
	  switch(key)
	   {
	    case 236: keyvalue=3; break;
		case 234: keyvalue=2; break;
		case 230: keyvalue=1; break;

		case 220: keyvalue=6; break;
		case 218: keyvalue=5; break;
		case 214: keyvalue=4; break;

		case 188: keyvalue=9; break;
		case 186: keyvalue=8; break;
		case 182: keyvalue=7; break;

		case 124: keyvalue=0; break;
		case 122: keyvalue=11; break;
		case 118: keyvalue=10; break;
		 }
         P0=a[keyvalue];
		 TI=1;
	  
	}*/

   unsigned char KeyDriver()
	{ unsigned char x,y,key;
	  P2=0x0f;				//低四位输入1,高四位输出0
	  x=P2;
	  
	  //x=x&0x0f;			//P2输入后,清高四位,作为X值
	  P2=0xf0;				//高四位输入1,低四位输出0
	  
	  y=P2;
      //y=y&0xf0;	//P2输入后移位到低四位,并清低四位,作为Y值
      key=x|y;
	  key=key&0xfe;
	  return key;
	 }

	   unsigned char Key()
	{
	  unsigned char Keyok;
	  Keyok=KeyDriver();
	  if(Keyok==0xfe)
	    {//keyvalue=111;
	     return (keyvalue);
		}
	   else
        {
         
		  
         switch(Keyok)
	     {
	      case 0x0ec: keyvalue=3; return(keyvalue);
		  case 0x0ea: keyvalue=2; return(keyvalue);
		  case 0x0e6: keyvalue=1; return(keyvalue);
		  case 220: keyvalue=6; return(keyvalue);
		  case 218: keyvalue=5; return(keyvalue);
		  case 0x0d6: keyvalue=4; return(keyvalue);
		  case 188: keyvalue=9; return(keyvalue);
		  case 186: keyvalue=8; return(keyvalue);
		  case 182: keyvalue=7; return(keyvalue);
		  case 124: keyvalue=11; return(keyvalue);
		  case 122: keyvalue=0; return(keyvalue);
		  case 118: keyvalue=10; return(keyvalue);
		 }
		  P0=a[keyvalue];
		 TI=1;
	   }	  
	 }

void main( void )
{
	Serialinit();

	while(1)
{ Key();
delay(25);}
}

⌨️ 快捷键说明

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