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

📄 display.c

📁 使用单片机控制两片串行A/D芯片TLC5615输出字模电压值
💻 C
字号:
#include"AO_Display.H"
extern unsigned char KeyBoardInData;
//bit flag = 0; 
unsigned char Scale = 1; //1为128*64,2为64*32
unsigned char XOffset =0;
unsigned char YOffset =0;
extern unsigned char CharConter; 
unsigned char dx;
unsigned char dy;

//unsigned char RXCount;
unsigned char RXBuffers[3];

unsigned char RXCount = 2;
unsigned char jcount=0;


unsigned char code XAdd [6] ={32,48,64,80,96,112};
unsigned char code YAdd [2] ={128,96};
unsigned char CharBuffer[16]={200,200,200,200,
							  200,200,200,200};
//unsigned char tabx[]={32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60};
//unsigned char taby[]={32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60};
extern void zuobiao1(void);	

/*********************************************************** 
函数名称: 
函数功能:显示字符数组 
入口参数: 
出口参数: 
备 注: 
***********************************************************/
/*void DisCharBuffer( void )
{
	unsigned i,j;
	for(i=0;i<2;i++)
		for(j=0;j<4;j++)
			{
			DisOneLetterInAO(XAdd[j],YAdd[i],CharBuffer[i*4+j]);
			}
}  */



/******************************************************	
函数名称:串口初始化函数
入口参数:void
修改时间:
******************************************************/ 	
void UartInit( void )
{
		EA = 0;
		TR1 = 0;
		RXD = 1;
		TXD = 1;
		SCON = 0x50;	  //串口方式1,允许接收
		PCON = 0x00;	
		TMOD = 0x21;
		TH1 = 0xfd;
		TL1 = 0xfd;	     //设置波特率9600
		TR1 = 1;
		ES = 1;			 //允许串行口中断  
		EA = 1;			 //允许中断
}

/***********************************************************
函数名称:串口中断函数
修改时间:
***********************************************************/
void sioproc() interrupt 4     // using 1
{	unsigned char i;
	unsigned char m; 
	unsigned char tabx[2];
    unsigned char taby[2];
    if (RI)			         //接收中断
       {
	       RI = 0; 		  		   		   
		   
		   if(RXCount)
		   {  
		       m = SBUF; 
			   RXCount--; 		       
			   RXBuffers[1-RXCount] = m;    
			   			  
			   if(RXCount==0)
			     {
			        RXCount = 2;          //当接收到的数据为2时给接收次数清零
					dx = RXBuffers[0];
			        dy = RXBuffers[1]; 
					tabx[jcount] = dx;
			        taby[jcount] = dy;
			        jcount++; 
				    if(jcount==40)//采集40个点
		               {
					     
						 while(1)
						 {

						  	zuobiao1();
	           	            for(i=0;i<100;i++)
		                      {		  
			 		              DisPoint(tabx[i],taby[i]);	   
			   
		                       }	 
						  jcount = 0; 
								
				          }
			  
					    }


				  }    
		        		 
             }
   	    }
 }


/*********************************************************** 
函数名称: 
函数功能: 显示一个16x16的字符
入口参数: 
出口参数: 
备 注: 
***********************************************************/
void Dis16x16Char(unsigned x,unsigned y,unsigned char *zifu)
{
   unsigned char i,j,k;
   for(k=0;k<2;k++)
	for(i=0;i<8;i++)
	 for(j=0;j<16;j++)
	  {
		if((zifu[j+16*k]>>i)&0x01)
		{
		  DisPoint(x+(j*Scale)+XOffset,(y+(8*k+i)*Scale)+YOffset);	   //
		}
		else 
		{
		  ZLocation = 0;
		}			
	}
}
/*********************************************************** 
函数名称: 
函数功能: 显示一个8x16的字符
入口参数: 
出口参数: 
备 注: 
***********************************************************/
void Dis8x16Char(unsigned x,unsigned y,unsigned char *zifu)
{
	unsigned char i,j,k;
	for(k=0;k<2;k++)
	for(i=0;i<8;i++)
	 {
		for(j=0;j<8;j++)
		{
		 if((zifu[j+8*k]>>i)&0x01)
		 {					
			DisPoint(x+(j*Scale)+XOffset,(y+(8*k+i)*Scale)+YOffset);	
		 }
		else
		 {
			ZLocation = 1;
		 }
       }
	}
}
/*********************************************************** 
函数名称: 
函数功能:绘一个点 
入口参数: 
出口参数: 
备 注: 
***********************************************************/
void DisPoint(unsigned char x,unsigned char y)
{
	//	ZLocation = 0;	
		XLocation(x);		 
		YLocation(y); 	
	//	ZLocation = 1;
}


void shurushow( void )
{
   unsigned char i;  

	for(i=0;i<20;i++)
	{
//	Dis16x16Char(XAdd[0],YAdd[0],shu);
//	Dis16x16Char(XAdd[1],YAdd[0],ru);
//	Dis16x16Char(XAdd[3],YAdd[0],qu1);
//	Dis16x16Char(XAdd[4],YAdd[0],xian);
//	Dis16x16Char(XAdd[5],YAdd[0],xian);
	Dis16x16Char(XAdd[0],YAdd[1],qing);
	Dis16x16Char(XAdd[1],YAdd[1],shao);
	Dis16x16Char(XAdd[2],YAdd[1],hou);
	Dis16x16Char(XAdd[3],YAdd[1],slh);
	}
}
/*********************************************************** 
函数名称: 
函数功能:显示欢迎画面 
入口参数: 
出口参数: 
备 注: 
***********************************************************/
void DisWelcome( void )
{
	unsigned char i;  

	for(i=0;i<20;i++)
	{
	  Dis16x16Char(XAdd[0],YAdd[0],ce);
	  Dis16x16Char(XAdd[1],YAdd[0],kong);
	  Dis8x16Char(XAdd[2],YAdd[0],Five);
	  Dis16x16Char(XAdd[3],YAdd[0],Zu);
	}

	for(i=0;i<20;i++)
	{
	  Dis16x16Char(XAdd[1],YAdd[0],hu);
	  Dis16x16Char(XAdd[2],YAdd[0],dong);
	  Dis16x16Char(XAdd[3],YAdd[0],chun);
	}

	for(i=0;i<20;i++)
	{
	  Dis16x16Char(XAdd[1],YAdd[0],liu);
	  Dis16x16Char(XAdd[2],YAdd[0],hong);
	  Dis16x16Char(XAdd[3],YAdd[0],bin);
	}

	for(i=0;i<20;i++)
	{
	  Dis16x16Char(XAdd[1],YAdd[0],xu);
	  Dis16x16Char(XAdd[2],YAdd[0],bin);
	  Dis16x16Char(XAdd[3],YAdd[0],sheng);
	} 
}
/*********************************************************** 
函数名称: 
函数功能: 显示128x128的图片
入口参数: 
出口参数: 
备 注: 
***********************************************************
void Dis128x128Imag( unsigned char *imag )
{
	unsigned char i,j,k;

	for(k=0;k<16;k++)
		for(i=0;i<8;i++)
	 		for(j=0;j<128;j++)
			{
				if((imag[j+128*k]>>i)&0x01)
				{					
					DisPoint(j,(128+8*k+i));	
				}
			}
			
}
/*********************************************************** 
函数名称: 
函数功能:显示64x64的图片 
入口参数: 
出口参数: 
备 注: 
***********************************************************/
/*void Dis64x64Imag( unsigned char *imag )
{
	unsigned char i,j,k;

	for(k=0;k<8;k++)
		for(i=0;i<8;i++)
	 		for(j=0;j<64;j++)
			{
				if((imag[j+64*k]>>i)&0x01)
				{					
					DisPoint(j+96,(64+8*k+i)+32);	
				}
			}
}  */

/*****************************************************************
函数名称:坐标显示
*****************************************************************/
void zuobiao1( void )
{
   unsigned char i;
   for(i=32;i<160;i=i+1)
	{
	  DisPoint(i,32);
	}
   	for(i=200;i>32;i=i-1)
	{
	  DisPoint(32,i);
	}
  /* Dis16x16Char(100,144,shu);
   Dis16x16Char(116,144,ru);
   Dis16x16Char(132,144,qu);
   Dis16x16Char(148,144,xian);	*/
}	
/*********************************************************** 
函数名称: 
函数功能:显示一个表格 
入口参数: 
出口参数: 
备 注: 
***********************************************************/
/*void DisBiaoGe( void )
{
	unsigned char i;
	for(i=32;i<160;i=i+4)
	{
	DisPoint(i,144);
	}
	for(i=32;i<160;i=i+4)
	{
	DisPoint(i,128);
	}
	for(i=32;i<160;i=i+4)
	{
	DisPoint(i,112);
	}
	for(i=32;i<160;i=i+4)
	{
	DisPoint(i,96);
	}


	//竖线
	for(i=144;i>96;i=i-4)
	{
	DisPoint(160,i);
	}

	for(i=144;i>96;i=i-4)
	{
	DisPoint(144,i);
	}

	for(i=144;i>96;i=i-4)
	{
	DisPoint(128,i);
	}

	for(i=144;i>96;i=i-4)
	{
	DisPoint(112,i);
	}
	for(i=144;i>96;i=i-4)
	{
	DisPoint(96,i);
	}
	for(i=144;i>96;i=i-4)
	{
	DisPoint(80,i);
	}
	for(i=144;i>96;i=i-4)
	{
	DisPoint(64,i);
	}
	for(i=144;i>96;i=i-4)
	{
	DisPoint(48,i);
	}
	for(i=144;i>96;i=i-4)
	{
	DisPoint(32,i);
	}	 
}*/
/*********************************************************** 
函数名称: 
函数功能: 
入口参数: 
出口参数: 
备 注: 
***********************************************************/

⌨️ 快捷键说明

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