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

📄 44bmon.c

📁 智能短信终端
💻 C
📖 第 1 页 / 共 4 页
字号:
                     
					 if(stjishi==100)
					 {
					 bf[j]=0x20;charfu=' ';
                     j=j-1; 
					 
					 while(fs) Delay(1);
					// lcdchar(xx,yy,RED,0);
					 if(xx>=1)xx--;
					 else {yy--;xx=39;}
					 
					 lcdchar(xx,yy,RED,0);
					 }
					 else
					{
					 bf[j]=0x20;charfu=' ';
					 lcdchar(xx,yy,RED,0);
					 }
					 }
					 
					  
        break;
        

case  'f':
                
                     key=0;
                     i=0; 
       break; 
case  'c'://///////////////返回
                
                     return; 
       break; 


  case 0:
       break;
   default:           
           key=0;
           Uart_Printf1("\nsorry you touch an wrrong key\n");
           break;

}
}	
           xx=0;yy++;
           lcd_printf(xx,yy,BLUE,"ok");
           Delay(500);
           
           //j=j+1;
           bf[j]=0;
           for(k=0;k<=j;k++)
           xin[k]=bf[k]; 
}	    

/////////////////////////////////////////////////////////////////子程序
/////////////////////////////////////////////////////////////////子程序
/////////////////////////////////////////////////////////////////子程序
/////////////////////////////////////////////////////////////////子程序
void __irq Timer0Isr(void)  //Timer0中断服务程序
{   
int i=0;
static int state=0;
static char akey=0;
static char bkey=0;

static int mark=0;

static char qianbu=0x20;
//static char stjishi=100;由于外部需要调用,设为全局变量
rI_ISPC |=0x02000;  //clear int bit

////////////////////////显示光标/////////////
if(fs<=5)
{
if(mark==9)
{
mark=0;
if(fs==0)//此时光标为灭
{

if(stjishi==50)
{
charfu=0x20;
qianbu=0x20;
if(xx<=38) xx++;
else {xx=0;yy++;}
stjishi=100;
j++;
}
fs=1;

//if(xx<=38)
lcdchar(xx+1,yy,RED,'[');
//else
//lcdchar(0,yy+1,RED,'[');

}
else//此时光标为亮
{

//if(xx<=38)
lcdchar(xx+1,yy,RED,0);
//else
//lcdchar(0,yy+1,RED,0);

fs=0;
}
}
else mark++;
}
else ;
////////////////////////显示光标
//////////////////////////////////////////
if(charfu!=0x20)
{
if(qianbu!=charfu)
{
qianbu=charfu;
stjishi=0;
}else;

if(stjishi!=100)
{
if(stjishi<30)
               stjishi++;
else
               stjishi=50;


}
}
else
{
stjishi=100;
qianbu=0x20;
}
///////////////////////










rPDATG &= 0xf;
switch(state)
{
case 0:
     {
        if((((rPDATF >> 5) & 0xf) == 0xf) && (!Uart_Flush1()))
        
        {
        akey=0;
        bkey=0;
        state=0;
        }
       else 
       
        
        {
        switch ((rPDATF >> 5) & 0xf)
		{
			case 0xf:
			    akey=0;
                bkey=0;
				state=0;
				return;
											
			case 0xe:
				
				for (i=0;((rPDATF >> 5) & 0xf) != 0xf; i++)
				{
					rPDATG = rPDATG & 0xf | (0x10 << i);
				}
				
				switch (i)
				{
					case 1:
						akey='1';
						break;
					case 2:
						akey='5';
						break;
					case 3:
						akey='6';
						break;
					case 4:
						akey='7';
				}
				
				break;
				
			case 0xd:
				
				for (i=0; ((rPDATF >> 5) & 0xf) != 0xf; i++)
				{
					rPDATG = rPDATG & 0xf | (0x10 << i);
				}
				
				switch (i)
				{
					case 1:
						akey='2';
						break;
					case 2:
						akey='8';
						break;
					case 3:
						akey='9';
						break;
					case 4:
						akey='0';
						break;
					
				}
				
				break;
				
			case 0xb:
				
				for (i=0; ((rPDATF >> 5) & 0xf) != 0xf; i++)
				{
					rPDATG = rPDATG & 0xf | (0x10 << i);
				}
				
				switch (i)
				{
					case 1:
						akey='3';
						break;
					case 2:
						akey='a';
						break;
					case 3:
						akey='b'; 
						break;
					case 4:
						akey='c'; 
						break;
						
				}
				
				break;
				
			case 0x7:
				
				for (i=0; ((rPDATF >> 5) & 0xf) != 0xf; i++)
				{
					rPDATG = rPDATG & 0xf | (0x10 << i);
				}
				
				switch (i)
				{
					case 1:
						akey='4';
						break;
					case 2:
						akey='d';
						break;
					case 3:
						akey='e';
						break;
					case 4:
						akey='f';
						break;
				
				}
				
				break;
		}
			
	       state=1; 	
		
		}
		}
          
break;
//////////////////////////////////////////////////////////////////           
case 1:       
     {     
     switch ((rPDATF >> 5) & 0xf)
          { 
			case 0xf:
				state=0;
				akey=0;
				bkey=0;
				return;
											
			case 0xe:
				
				for (i=0;((rPDATF >> 5) & 0xf) != 0xf; i++)
				{
					rPDATG = rPDATG & 0xf | (0x10 << i);
				}
				
				switch (i)
				{
					case 1:
						bkey='1';
						break;
					case 2:
						bkey='5';
						break;
					case 3:
						bkey='6';
						break;
					case 4:
						bkey='7';
				}
				
				break;
				
			case 0xd:
				
				for (i=0; ((rPDATF >> 5) & 0xf) != 0xf; i++)
				{
					rPDATG = rPDATG & 0xf | (0x10 << i);
				}
				
				switch (i)
				{
					case 1:
						bkey='2';
						break;
					case 2:
						bkey='8';
						break;
					case 3:
						bkey='9';
						break;
					case 4:
						bkey='0';
						break;
					
				}
				
				break;
				
			case 0xb:
				
				for (i=0; ((rPDATF >> 5) & 0xf) != 0xf; i++)
				{
					rPDATG = rPDATG & 0xf | (0x10 << i);
				}
				
				switch (i)
				{
					case 1:
						bkey='3';
						break;
					case 2:
						bkey='a';
						break;
					case 3:
						bkey='b'; 
						break;
					case 4:
						bkey='c'; 
						break;
						
				}
				
				break;
				
			case 0x7:
				
				for (i=0; ((rPDATF >> 5) & 0xf) != 0xf; i++)
				{
					rPDATG = rPDATG & 0xf | (0x10 << i);
				}
				
				switch (i)
				{
					case 1:
						bkey='4';
						break;
					case 2:
						bkey='d';
						break;
					case 3:
						bkey='e';
						break;
					case 4:
						bkey='f';
						break;
				
				}
				
				break;
		
        }

              if(akey==bkey)
              state=2;
              else 
              {
              akey=0;
              bkey=0;
              state=0;
              }
     }
break;
///////////////////////////////////////////////////////
case 2:	

   {    if((((rPDATF >> 5) & 0xf) == 0xf) && (!Uart_Flush1()))
        {
        key=akey;
        state=0;
        }
        else
        state=2;
    }
    break;
}     
}









void __irq Utxd1Isr(void)
{
}

void __irq Urxd1Isr(void)
{
static int state=0;
char ch;
rI_ISPC |=0x040;  

ch=rURXH1;


switch(state)
{
case 0:
        if(ch=='+')
       {
       state=1;
       borf=1;
       }
       else
        ;
       break;
       
       
case 1:
       if(ch==',')
       state=2;
       else
        ;
       break;

        
case 2:
       m=m+1;
       weidu[m][0]=ch;
       state=3;
       break;
       
       
case 3:
       if((ch>=0x30)&&(ch<=0x39))
       {
       weidu[m][1]=ch;
       }
       else 
       weidu[m][1]=0;
       
       
       state=0;
       borf=0;
       break;


}

}
void __irq Urxd0Isr(void)
{
}
void __irq Utxd0Isr(void)
{
}
//////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////

void timer_init(int i)
{
    rTCFG0 |=0X0ff;  //prescaler=255
	rTCFG1 |=0X01;	// divide sets=1/4

	rTCNTB0=(i*60000000/256/4);	//count=60M,

	rTCON &=~0X08;
	rTCON |=0X02;	// manual update
	rTCON &=~0X02;
}
////////////////////////////////////////////////////////////////
void Sys_Init(void)
{
	 /* Write Buffer On,8K Cache */
    rSYSCFG = CACHECFG; 
    
    /* Set NonCache Area */
    rNCACHBE0 = 0xc0002000;
       
    Port_Init();

    Uart_Init(MCLK, UART_BAUD);//////////////////////////////

}












⌨️ 快捷键说明

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