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

📄 12232.c

📁 AVR单片机做的MP3
💻 C
字号:
#include <iom16v.h> 
#include <macros.h> 
#include<12232.h>
#include<main.h>
#include<fat16.h>
uint16 zikustart;
extern BPB_SecPerClus;
extern BUFFER[512];
void delay_1ms(void) 
{ 
   unsigned int i; 
   for(i=0;i<1142;i++); 
} 

void delay_10us(void) 
{ 
   unsigned char i; 
   for(i=0;i<10;i++); 
} 

void delay(unsigned int n) 
{ 
   unsigned int i; 
   for(i=0;i<n;i++)delay_1ms(); 
} 
void OUTMD(unsigned char i) 
{ 
    delay_10us(); 
   lcd_control_port = 0xff; 
   lcd_control_port &= ~RW; 
    delay_10us(); 
   lcd_control_port |= A0;    
    delay_10us(); 
   DATA=i; 
    delay_10us(); 
   lcd_control_port &= ~E1; 
    
} 

void OUTMI(unsigned char i) 
{ 
    delay_10us(); 
   lcd_control_port = 0xff; 
   lcd_control_port &= ~RW; 
    delay_10us(); 
   lcd_control_port &= ~A0;    
    delay_10us();
   DATA=i; 
    delay_10us(); 
   lcd_control_port &= ~E1;
    
} 

void OUTSD(unsigned char i) 
{ 
    delay_10us(); 
   lcd_control_port = 0xff; 
   lcd_control_port &= ~RW; 
    delay_10us(); 
   lcd_control_port |= A0;    
    delay_10us(); 
   DATA=i; 
    delay_10us(); 
   lcd_control_port &=~E2; 

} 

void OUTSI(unsigned char i) 
{ 
    delay_10us(); 
   lcd_control_port = 0xff; 
   lcd_control_port &= ~RW; 
    delay_10us(); 
   lcd_control_port &= ~A0;    
    delay_10us(); 
   DATA=i; 
    delay_10us(); 
   lcd_control_port &=~E2; 
    
} 

void lcdini(void) 
{ 
  DATA=0xff; 
  lcd_data_ddr|=0xff; 
  lcd_control_port|=0xff; 
  lcd_control_ddr=0x0f;
  lcd_light_ddr|=0x02;
   OUTMI(0XAE);  
   OUTMI(0XC0); 
   OUTMI(0XA0); 
   OUTMI(0XA4); 
   OUTMI(0XA9);
   OUTMI(0XAF);
   
   OUTSI(0XAE); 
   OUTSI(0XC0);
   OUTSI(0XA0);
   OUTSI(0XA4); 
   OUTSI(0XA9);  
   OUTSI(0XAF);    
} 


void SetPage(uint8 page0,uint8 page1) 
{ 
OUTMI(0xB8|page0); 
OUTSI(0xB8|page1); 
} 

void SetAddress(uint8 address0,uint8 address1) 
{ 
OUTMI(address0); 
OUTSI(address1); 
} 

void PutCharR(uint8 ch) 
{ 
OUTSD(ch); 
} 

void PutCharL(uint8 ch) 
{ 
OUTMD(ch); 
}  

void clrscr(void) 
{ 
uint8 i; 
uint8 page; 
for (page=0;page<4;page++) 
{ 
  SetPage(page,page); 
  for (i=0;i<61;i++) 
  { 
   SetAddress(i,i); 
   PutCharL(0x00); 
   PutCharR(0x00); 
  } 
} 
}  
void lcd_init(void)
{
  lcdini(); //reset                                                    
  clrscr(); //clr  
  clrscr();
}
uint16 get_location(uint8 data1,uint8 data2)
{
 uint8 i;
 uint16 temp1,temp2;
 uint32 location;
 uint32 start;
 data1-=0xa1,data2-=0xa1;
 temp1=data1*94;
 location=temp1+data2;
 location=location<<5;
 temp1=location>>9;
 temp2=location%512;
 start=ClusConvLBA(zikustart);
 start=start+temp1;
 ReadBlock(start);
 return temp2;
}
void show_chin(uint8 *chin,uint8  adress1,uint8 lenth,uint8 loc)
{
 uint8 i,j=0,p,window=0,loca;  
 loca=0;
 p=adress1;
 if(loc) loca=2;
 while(lenth)
 {
 for(i=0;i<32;i++)
  {
  if(p>76) window=1,p=p%61;
  if(i<16)
   {
    SetPage(loca,loca);   
    SetAddress(p,p);
    if(window) PutCharR(chin[j]); 
    else       PutCharL(chin[j]);
   }
  else
   {
   SetPage(loca+1,loca+1);
   SetAddress(p-16,p-16);
   if(window) PutCharR(chin[j]); 
   else       PutCharL(chin[j]);
   }
   p++;
   j++;
  }     
  p-=16;
  lenth--;
 }
 
}
uint16 show_filename(uint8  *chinese1,uint8 adress1)                                            
{            
 uint16 start;
 start=get_location(chinese1[0],chinese1[1]);
 return start;
}

⌨️ 快捷键说明

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