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

📄 blinky1.c

📁 mp3量不要让站长把时间都花费在为您修正说明上。压缩包解压时不能有密码。系统会自动删除debug和release目录
💻 C
📖 第 1 页 / 共 5 页
字号:
				 }
				
			}
		}
	
		if( KEY_VOLD_STATE()==0 )
		{
		
			VS1003_Delay_Nmicrosecond(1000);
		 
			if( KEY_VOLD_STATE()==0 )
			{	
				
				if(VOL<30)
				{
					VOL++;	
					VS1003_WriteReg(VS1003_SPI_VOL ,VOL_BUFFER[VOL]);
			  	
					while(VS1003_DREQ_STATE() != VS1003_DREQ);	
					lcd_gotoxy(60,5);
					lcd_putchar(VOL_LCD[VOL]>>8);
					lcd_putchar(VOL_LCD[VOL]);
				 }	
			
				
			}
		}



}




void VpS1003_Play(void)
{
	uint32 n;
	uint32 i;
//	uint32 j;
//	uint32 num;
	uint32 data_pointer=0; 

//	uint8 stop=0;
		

	num	= Clust;

	while(1)
	{
		for(i=0;i<8;i++)
		{	
		  SD_ReadBlock(FirstDataSector+(num-2)*8+i,BUFFER);
		
			do
			{	
				if(VS1003_DREQ_STATE()== VS1003_DREQ) 
				{	
					for(n=0;n<32;n++)
					{	
						VS1003_WriteDat(BUFFER[data_pointer]);
						data_pointer++;	
					}
					
				}
			}
			
			while(data_pointer<511); 
			data_pointer=0;
						
			
		}

		num = fatNextCluster(num);
		
/*		j++;
		SPI0_CS_SET();
		lcd_gotoxy(50+j*5,0);
		lcd_putchar('.');
	
		if(j>5)
		{
		  	lcd_gotoxy(50,0);
			lcd_putsf("",6);
		
			j=0;
		}
		SPI0_CS_CLR();*/

/*		if(j%10==0)
		{
		 	lcd_gotoxy(50+j/10,0);
			lcd_putchar('.');
		
		}
		if(j>50)
		{
			lcd_gotoxy(50,0);
			lcd_putsf("",6);	
		}	
*/			
		
		
		
		TEXT_KEY();

		if(num==CLUST_EOFE)
		{
			GetFileClust();
			num = Clust;
			//num ++;
		}

    	

	} 
	 	
}







unsigned char data[]={             
0x00, 0x00, 0x00, 0x00, 0x00,   // sp        
0x00, 0x00, 0x2f, 0x00, 0x00,   // !        
0x00, 0x07, 0x00, 0x07, 0x00,   // "        
0x14, 0x7f, 0x14, 0x7f, 0x14,   // #        
0x24, 0x2a, 0x7f, 0x2a, 0x12,   // $        
0x62, 0x64, 0x08, 0x13, 0x23,   // %        
0x36, 0x49, 0x55, 0x22, 0x50,   // &        
0x00, 0x05, 0x03, 0x00, 0x00,   // ’        
0x00, 0x1c, 0x22, 0x41, 0x00,   // (        
0x00, 0x41, 0x22, 0x1c, 0x00,   // )        
0x14, 0x08, 0x3E, 0x08, 0x14,   // *        
0x08, 0x08, 0x3E, 0x08, 0x08,   // +        
0x00, 0x00, 0xA0, 0x60, 0x00,   // ,        
0x08, 0x08, 0x08, 0x08, 0x08,   // -        
0x00, 0x60, 0x60, 0x00, 0x00,   // .        
0x20, 0x10, 0x08, 0x04, 0x02,   // /        
0x3E, 0x51, 0x49, 0x45, 0x3E,   // 0        
0x00, 0x42, 0x7F, 0x40, 0x00,   // 1        
0x42, 0x61, 0x51, 0x49, 0x46,   // 2        
0x21, 0x41, 0x45, 0x4B, 0x31,   // 3        
0x18, 0x14, 0x12, 0x7F, 0x10,   // 4        
0x27, 0x45, 0x45, 0x45, 0x39,   // 5        
0x3C, 0x4A, 0x49, 0x49, 0x30,   // 6        
0x01, 0x71, 0x09, 0x05, 0x03,   // 7        
0x36, 0x49, 0x49, 0x49, 0x36,   // 8        
0x06, 0x49, 0x49, 0x29, 0x1E,   // 9        
0x00, 0x36, 0x36, 0x00, 0x00,   // :        
0x00, 0x56, 0x36, 0x00, 0x00,   // ;        
0x08, 0x14, 0x22, 0x41, 0x00,   // <        
0x14, 0x14, 0x14, 0x14, 0x14,   // =        
0x00, 0x41, 0x22, 0x14, 0x08,   // >        
0x02, 0x01, 0x51, 0x09, 0x06,   // ?        
0x32, 0x49, 0x59, 0x51, 0x3E,   // @        
0x7C, 0x12, 0x11, 0x12, 0x7C,   // A        
0x7F, 0x49, 0x49, 0x49, 0x36,   // B        
0x3E, 0x41, 0x41, 0x41, 0x22,   // C        
0x7F, 0x41, 0x41, 0x22, 0x1C,   // D        
0x7F, 0x49, 0x49, 0x49, 0x41,   // E        
0x7F, 0x09, 0x09, 0x09, 0x01,   // F        
0x3E, 0x41, 0x49, 0x49, 0x7A,   // G        
0x7F, 0x08, 0x08, 0x08, 0x7F,   // H        
0x00, 0x41, 0x7F, 0x41, 0x00,   // I        
0x20, 0x40, 0x41, 0x3F, 0x01,   // J        
0x7F, 0x08, 0x14, 0x22, 0x41,   // K        
0x7F, 0x40, 0x40, 0x40, 0x40,   // L        
0x7F, 0x02, 0x0C, 0x02, 0x7F,   // M        
0x7F, 0x04, 0x08, 0x10, 0x7F,   // N        
0x3E, 0x41, 0x41, 0x41, 0x3E,   // O        
0x7F, 0x09, 0x09, 0x09, 0x06,   // P        
0x3E, 0x41, 0x51, 0x21, 0x5E,   // Q        
0x7F, 0x09, 0x19, 0x29, 0x46,   // R        
0x46, 0x49, 0x49, 0x49, 0x31,   // S        
0x01, 0x01, 0x7F, 0x01, 0x01,   // T        
0x3F, 0x40, 0x40, 0x40, 0x3F,   // U        
0x1F, 0x20, 0x40, 0x20, 0x1F,   // V        
0x3F, 0x40, 0x38, 0x40, 0x3F,   // W        
0x63, 0x14, 0x08, 0x14, 0x63,   // X        
0x07, 0x08, 0x70, 0x08, 0x07,   // Y        
0x61, 0x51, 0x49, 0x45, 0x43,   // Z        
0x00, 0x7F, 0x41, 0x41, 0x00,   // [        
0x55, 0x2A, 0x55, 0x2A, 0x55,   // 55        
0x00, 0x41, 0x41, 0x7F, 0x00,   // ]        
0x04, 0x02, 0x01, 0x02, 0x04,   // ^        
0x40, 0x40, 0x40, 0x40, 0x40,   // _        
0x00, 0x01, 0x02, 0x04, 0x00,   // ’        
0x20, 0x54, 0x54, 0x54, 0x78,   // a        
0x7F, 0x48, 0x44, 0x44, 0x38,   // b        
0x38, 0x44, 0x44, 0x44, 0x20,   // c        
0x38, 0x44, 0x44, 0x48, 0x7F,   // d        
0x38, 0x54, 0x54, 0x54, 0x18,   // e        
0x08, 0x7E, 0x09, 0x01, 0x02,   // f        
0x18, 0xA4, 0xA4, 0xA4, 0x7C,   // g        
0x7F, 0x08, 0x04, 0x04, 0x78,   // h        
0x00, 0x44, 0x7D, 0x40, 0x00,   // i        
0x40, 0x80, 0x84, 0x7D, 0x00,   // j        
0x7F, 0x10, 0x28, 0x44, 0x00,   // k        
0x00, 0x41, 0x7F, 0x40, 0x00,   // l        
0x7C, 0x04, 0x18, 0x04, 0x78,   // m        
0x7C, 0x08, 0x04, 0x04, 0x78,   // n        
0x38, 0x44, 0x44, 0x44, 0x38,   // o        
0xFC, 0x24, 0x24, 0x24, 0x18,   // p        
0x18, 0x24, 0x24, 0x18, 0xFC,   // q        
0x7C, 0x08, 0x04, 0x04, 0x08,   // r        
0x48, 0x54, 0x54, 0x54, 0x20,   // s        
0x04, 0x3F, 0x44, 0x40, 0x20,   // t        
0x3C, 0x40, 0x40, 0x20, 0x7C,   // u        
0x1C, 0x20, 0x40, 0x20, 0x1C,   // v        
0x3C, 0x40, 0x30, 0x40, 0x3C,   // w        
0x44, 0x28, 0x10, 0x28, 0x44,   // x        
0x1C, 0xA0, 0xA0, 0xA0, 0x7C,   // y        
0x44, 0x64, 0x54, 0x4C, 0x44,   // z        
0x00, 0x08, 0x36, 0x41, 0x00,   // {        
0x00, 0x00, 0x7F, 0x00, 0x00,   // |        
0x00, 0x41, 0x36, 0x08, 0x00,   // }        
0x08, 0x10, 0x08, 0x04, 0x08    // ~        
};    
 

//======================================================================================               
void lcd_init(void)                       //nokia3310初始化函数        
{ 
	SPI0_Init(64);

	LCD_RST_GPIO();
	LCD_RST_OUT();
	LCD_RST_SET();

	LCD_CS_GPIO();
	LCD_CS_OUT();
	LCD_CS_SET();

	LCD_DC_GPIO();
	LCD_DC_OUT();
	LCD_DC_SET();
	
		        
                           
	LCD_RST_CLR();

   	LCD_RST_SET();		     //复位结束    


     LCD_CS_CLR();        //5110使能                     
 	LCD_DC_CLR();						  //准备写指令      
 
   
  SPI0_SrByte(32+1);                        //进入扩展指令      
  SPI0_SrByte(128+38);                      //设置Vop,相当于亮度         
  SPI0_SrByte(4+3);                         //设置温度系数,相当于对比度          
  SPI0_SrByte(16+3);                        //设置偏置,这句要与不要的实际效果好像一样      
  SPI0_SrByte(32+0);                        //进入基本指令      
  SPI0_SrByte(12);                          //使能芯片活动/垂直寻址      
	LCD_CS_SET();

}         

//=======================================================================================        
void lcd_cls(void)                        //nokia3310清屏,光标复位        
{        
  unsigned int  i=0;         
   	LCD_CS_CLR();  
  	LCD_DC_CLR();

  SPI0_SrByte(128);                         //光标回到0列        
  SPI0_SrByte(64);                          //光标回到0行        
                               //准备写数据        
  	LCD_DC_SET();
  for(i=0;i<504;i++)                      //写504个0数据,就是清屏        
  SPI0_SrByte(0);     
 	LCD_CS_SET();   
}         
//=======================================================================================        

//光标定位,x(0-83)是列地址,y(0-5)是行地址            
void lcd_gotoxy(unsigned char x,unsigned char y)        
{        
 
 	LCD_DC_CLR();
	LCD_CS_CLR();
	   
  SPI0_SrByte(x+128);        
  SPI0_SrByte(y+64);      
 	LCD_CS_SET();  
}        
//=======================================================================================        
            
void lcd_putchar(unsigned char character) //显示ASCII值的字符        
{        
  unsigned char i=0;        
  unsigned int No;        
  No=character-32;                        //字模数据是由空格开始,空格字符的ASCII的值就是32        
  No=No*5;                                //每个字符的字模是5个字节        
    
 	LCD_DC_SET();

	LCD_CS_CLR();

  while(i<5)                              //一个字符的字模是5个字节,就是5*8点阵        
     {        
       SPI0_SrByte(data[No]);          
       i++;        
       No++;        
     }        
  SPI0_SrByte(0);                           //每个字符之间空一列        
 	LCD_CS_SET();

}          


//=====================================================================================        
void lcd_putsf(unsigned char *string , unsigned char n) //显示FLASH里面的字符串        
{                
  unsigned char i=0;        
  while(i<n)        
       {          
         lcd_putchar( string[i] );        //顺序显示字符        
         i++;                                 
       }        
}  




void   UART0_SendByte(uint8 data)
{
	U0THR=data;
	while((U0LSR&&0x40)==0);
}

void   UART0_SendStr(uint8 const *str)
{
	while(1)
	{
		if (*str=='\0')break;
		UART0_SendByte(*str++)	 ;
	}
}



void  send_text(void)
{
	uint32   i;
	uint8 high,low;

	UART0_SendByte(0x0d);
	UART0_SendByte(0x0a);
	UART0_SendByte(0x0d);
	UART0_SendByte(0x0a);
	UART0_SendByte(0x0d);
	UART0_SendByte(0x0a);
	UART0_SendByte(0x0d);
	UART0_SendByte(0x0a);
	UART0_SendByte(0x0d);
	UART0_SendByte(0x0a);
	
	for (i=0;i<512;i++)
	{										  
	high=TEXT[i]&0xF0;
	low=TEXT[i]&0x0F;
	high=high>>4;

	if(high>=0x0A&&high<=0x0F)
	high=high+0x40-0x09;
	if(high<=9)
	high=high+0x30;

	 
	if(low>=0x0A&&low<=0x0F)
	low=low+0x40-0x09;
	if(low<=9)
	low=low+0x30;

	UART0_SendByte(high);
	UART0_SendByte(low);
	UART0_SendByte(0x20);

	if((i+1)%16==0)
	{
  	UART0_SendByte(0x0d);
	UART0_SendByte(0x0a);	
	}
	
	}
}













int main(void)
{  
	#ifdef __DEBUG_RAM    
    MEMMAP = 0x2;                   //remap
   #endif

   #ifdef __DEBUG_FLASH    
    MEMMAP = 0x1;                   //remap
    #endif

    #ifdef __IN_CHIP    
    MEMMAP = 0x1;                   //remap
    #endif

    PINSEL0 = (PINSEL0 & 0xFFFF0000) | 0x05 | 0x50;

    /* 设置系统各部分时钟 */
    /* Set system timers for each component */
    PLLCON = 1;
    #if (Fpclk / (Fcclk / 4)) == 1
    VPBDIV = 0;
     #endif
     #if (Fpclk / (Fcclk / 4)) == 2
    VPBDIV = 2;
    #endif
    #if (Fpclk / (Fcclk / 4)) == 4
    VPBDIV = 1;
     #endif

     #if (Fcco / Fcclk) == 2
    PLLCFG = ((Fcclk / Fosc) - 1) | (0 << 5);
    #endif
    #if (Fcco / Fcclk) ==

⌨️ 快捷键说明

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