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

📄 mainpro.h

📁 用SL811做USB主机的源码
💻 H
字号:
#include "subpro.h"
#include "PCF8563.h"
#include "ADC.h"

void ASC(unsigned char x,unsigned char y,unsigned char *p)
{unsigned char temp;
	 for (;;)
	 	 {temp=*p++;
		  if (temp==0) break;
		  dispASC(x++,y,temp);
		 }
}
void USB_Fat(void)
{unsigned int i,j,temp;
 unsigned char x=0,y=0;
 /*
 		  x=11;y=10;i=26;
 		  disp16x16(x+=2,y,i++);
 		  disp16x16(x+=2,y,i++);
 		  disp16x16(x+=2,y,i++);
 		  disp16x16(x+=2,y,i++);
 		  disp16x16(x+=2,y,i++);
 		  disp16x16(x+=2,y,i++);
 		  disp16x16(x+=2,y,i++);
 		  disp16x16(x+=2,y,i++);
 		  disp16x16(x+=2,y,i++);
*/
ASC(3,10,"Name of the files in Udisk:");
	  
		  x=0;y=40;
		  for (i=0;i<16;i++)
		  	  { if (Fat_data[i*32] == 0) break;
			  	if (i>7) {x=20;}
				   else {x=0;}
			  	if (i==8) y=40;
				disp16x8(x++,y,i/10);
				disp16x8(x++,y,i%10);//序号
				x += 3;
				for (j=0;j<8;j++)//文件名
			  	  {
				  temp=Fat_data[i*32+j];
				  if (temp>0x7b) temp=0x5e;
				  dispASC(x++,y,temp);
				  }
				dispASC(x++,y,0x2e);//小数点
			  	for (j=8;j<11;j++)//扩展名
			  	  {
				  temp=Fat_data[i*32+j];
				  if (temp>0x7b) temp=0x5e;
				  dispASC(x++,y,temp);
				  }
			    y += 20;
			  }
			ASC(0,200,"Enter the needed file.");
			ASC(0,220,"Clear the Udisk,please!");
}	

void USB_display(unsigned int base)
{	 unsigned int i=0,j=0,x=0,y=0;
	 
	 for (j=0;j<15;j++)
	 	 {disp16x8(x++,y,(((j<<4)+base)/256)>>4);
		  disp16x8(x++,y,(((j<<4)+base)/256)%16);
		  disp16x8(x++,y,(((j<<4)+base)%256)>>4);
		  disp16x8(x++,y,(((j<<4)+base)%256)%16);
		  x++;
		  x++;
		  
		  for (i=0;i<8;i++)
		 	  {disp16x8(x++,y,usb_data[/*base+*/j*16+i]>>4);
			   disp16x8(x++,y,usb_data[/*base+*/j*16+i]%16);}
		  x++;
		  for (i=8;i<16;i++)
		  	  {disp16x8(x++,y,usb_data[/*base+*/j*16+i]>>4);
			   disp16x8(x++,y,usb_data[/*base+*/j*16+i]%16);}
		  x=0;
		  y += 16;
		 } 
}//usb_data

void hanzi_xianshi(unsigned char Page)
{unsigned int i=0,j=1;
	if (Ztab[Page][0]!=0)
	{
	 for (i=Ztab[Page][0];i>0;i--)
	 	 {
		 switch (Ztab[Page][j]) 
		 		 {
		 		 case 0://char16x8
				 	  	disp16x8(Ztab[Page][j+1],Ztab[Page][j+2],Ztab[Page][j+3]);
						break;
				 case 1://char16x16
				 	  	disp16x16(Ztab[Page][j+1],Ztab[Page][j+2],Ztab[Page][j+3]);
						break;
				 case 2://char24x24
				 	  	disp24x24(Ztab[Page][j+1],Ztab[Page][j+2],Ztab[Page][j+3]);
						break;
				 default:break;
				 }
		  j += 4;
		 }
	}
}

void kuang_xianshi(unsigned char Page)
{unsigned int i=0,j=1;
	if (Ktab[Page][0] != 0)
	 for (i=Ktab[Page][0];i>0;i--)
	 	 {kuang(Ktab[Page][j],Ktab[Page][j+1],Ktab[Page][j+2],Ktab[Page][j+3]);
		  j += 5;
		 }
}

void LCD(void)
{	//ram_cpl
	//clear_screen();
	picture(15,90,10,83);
	hanzi_xianshi(page);
	//kuang_xianshi(page);
	
	
	Line(1,38,0,200);
	Line(0,1,200,38);
	
	Time_display(0,0);
}

void display_pages(void)
{	 switch (page) {
	 case 1:USB_Fat();break;
	 case 2:/*if (flashing) break;
	 	  	if (Usb_success) ASC(10,100,"Read File Success!");
	 	  	   else ASC(10,100,"Read File Failure!"); 
	 	  	*/
			USB_display(USB_address);
			break;
	 default:	picture(15,90,10,83);
	 			hanzi_xianshi(page);
				Line(1,38,0,200);
				Line(0,1,200,38);
				//Time_display(0,0);
	 		 	break;}
}

⌨️ 快捷键说明

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