亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lcd.c

?? 用atmega64+vs1003(音頻解碼芯片)+SD制成的板子
?? C
?? 第 1 頁 / 共 2 頁
字號:
     
}
void LCD_Write_Char2(unsigned char *mat){
	unsigned char i;
			switch(D_x){
				case 0:    //寫入第一行(1-12)
						for(i=0;i<12;i++){
							DispBuff[0][D_y+i]=mat[i];	
						}
						for(i=0;i<12;i++){
							DispBuff[1][D_y+i]&=0xf0;
							DispBuff[1][D_y+i]|=(mat[i+12]&0x0f);
						}
				    break;
				case 1: //寫入第二行(13-24)
			 	  for(i=0;i<12;i++){
							DispBuff[1][D_y+i]&=0x0f;
							DispBuff[1][D_y+i]|=(mat[i]<<4);
						}
						for(i=0;i<12;i++){
							DispBuff[2][D_y+i]= ((mat[i]>>4))|(mat[12+i]<<4);
					}
					break; 
				case 2: //寫第三行(25-36)同第一行  
						for(i=0;i<12;i++){
							DispBuff[3][D_y+i]=mat[i];	
						}
						for(i=0;i<12;i++){
							DispBuff[4][D_y+i]&=0xf0;
							DispBuff[4][D_y+i]|=(mat[i+12]&0x0f);
						}
				    break;
				case 3: //寫第四行(37-48) 同第二行
						for(i=0;i<12;i++){
							DispBuff[4][D_y+i]&=0x0f;
							DispBuff[4][D_y+i]|=(mat[i]<<4);	
						}
						for(i=0;i<12;i++){
							DispBuff[5][D_y+i]= (mat[i]>>4)|(mat[12+i]<<4);
						}
					break; 
		     };    
}

//從字庫中查找出字模
void Get_HzMat(unsigned char *code,unsigned char *mat)
{
	 unsigned char qh,wh;
	 unsigned char i,j;
	 unsigned int  sector,clusor,secoff;
	 unsigned long foffset;
	 qh=(*code++)-0xa1;
	 wh=(*code)-0xa1;
	 foffset=(unsigned long)(94*qh+wh)*24;    //得到字庫中的字節偏移量
	 sector=foffset/BytesPerSector;           //得到總的完整的扇區數(不要寫成(unsigned int ) foffset/512
	 secoff= (unsigned int) foffset%BytesPerSector; //扇區內的字節數偏移
	 wh=(unsigned char)sector%SectorsPerCluster; 
	 clusor=(unsigned int)sector/SectorsPerCluster;    //得到總的簇數
   eeprom_read_block(&foffset,(void*)(clusor*4),4); //為節省時間不從FAT中讀取簇號
	 foffset=(unsigned long) (foffset+wh)*BytesPerSector+secoff;
	 i=0;  reading = 0;
	 SD_Write_Command(16,8);     //設置一次讀寫BLOCK的長度為8個字節
	while(1){
		reading=1;   
		SD_Write_Command(17,foffset);      
		while (Read_Byte_SPI()!= 0xfe) ;
		for(j=0; j<8; j++){
		  mat[i++]=Read_Byte_SPI();
		}
		Read_Byte_SPI();//CRC - Byte 
		Read_Byte_SPI();//CRC - Byte
		reading=0;
		MMC_PORT|=MMC_CS_PIN;        //關閉SD卡 
	    if(i>=24)    break; 
	     foffset+=8;
		 secoff+=8;
		if(secoff>=(BytesPerSector-1)){ 
			secoff=0;		
			if(++wh>=SectorsPerCluster){ wh=0;	 clusor++;  
			 eeprom_read_block(&foffset,(void*)(clusor*4),4);  
			 foffset=foffset*512;
			 foffset=0;
	      }
		}
	}
	SD_Write_Command(16,512);     //設置一次讀寫BLOCK的長度為512個字節   
}

/*-----------------------------------------------------------------------
LCD_draw_map: 位圖繪制函數
輸入參數:X、Y:位圖繪制的起始X、Y坐標;
*map:位圖點陣數據;
Pix_x:位圖像素(長)
Pix_y:位圖像素(寬)
-----------------------------------------------------------------------*/
void LCD_draw_map(unsigned char X,unsigned char Y,PGM_P map, //unsigned char *map,
unsigned char Pix_x,unsigned char Pix_y)
{
  unsigned int i,n;
  unsigned char row;
  if (Pix_y%8==0) 
    row=Pix_y/8;//計算位圖所占行數
  else
    row=Pix_y/8+1;
  for (n=0;n<row;n++)
  {
    LCD_set_XY(X,Y);
    for(i=0; i<Pix_x; i++)
    {
    //  LCD_write_byte(map[i+n*Pix_x], 1);
	  LCD_write_byte(pgm_read_byte(map+i+n*Pix_x));
    }
    Y++;//換行
  }
}
void DispNumber(uchar x,uchar y,unsigned long number)
{
	 unsigned int kmm;
	 unsigned char t1,t2,t3,t4;
	 if(x>3)  return;
//	  t0=number/10000;
//	  number=number%10000;
		t1=number/1000;
		kmm=number%1000;
		t2=kmm/100;
		kmm=kmm%100;
		t3=kmm/10;
		t4=kmm%10;
		D_x=x;
		D_y=y;
//		LCD_write_char(t0+0x30);
		LCD_write_char(t1+0x30);
	 	LCD_write_char(t2+0x30);
	 	LCD_write_char(t3+0x30);
	 	LCD_write_char(t4+0x30);
		TimeFlag|=bLcdUpdate;
}
    
void DispDecodeTime(uchar x,uchar y,unsigned int second)
{
	unsigned int kmm;
	unsigned char t1,t2,t3,t4;
	if(x>3)  return;
	t1= second%60; kmm=second/60;
	t3=t1/10; 	t4=t1%10;
	t1=kmm/10;	t2=kmm%10;
	D_x=x;	    D_y=y;
	LCD_write_char(t1+0x30);
	LCD_write_char(t2+0x30);  //
	LCD_write_char(':');
	LCD_write_char(t3+0x30);
	LCD_write_char(t4+0x30);
	TimeFlag|=bLcdUpdate;
}
    
void LcdWrite(void)
{
	uchar t1,t2;
	uchar *p;    
	uchar line;
	if(LcdFlag==0){ 
		if(TimeFlag&bLcdUpdate) 
		{
			TimeFlag&=~bLcdUpdate;  
			p=(uchar *) &DispBuff[0][0];
			for(t1=0;t1<6;t1++){   
				LCD_set_XY(0,t1);
				switch(t1){
					case 0:
						  if(InverseLine&0x01) {
						  	for(t2=0;t2<84;t2++)			LCD_write_byte(~(*p++));
						  }else{
						  	for(t2=0;t2<84;t2++)	    LCD_write_byte(*p++);
						  }
					     break;	
					case 1:
						 line=(InverseLine&0x03);
						 if(line==0){
						 		for(t2=0;t2<84;t2++)	    LCD_write_byte(*p++);
						 }else if(line==1){
							  for(t2=0;t2<84;t2++)      LCD_write_byte((*p++)^0x0f);
						 }else if(line==2){
						 	  for(t2=0;t2<84;t2++)      LCD_write_byte((*p++)^0xf0);
						 }else{
						    for(t2=0;t2<84;t2++)			LCD_write_byte(~(*p++));
						 }
							break;							
					case 2:
							if(InverseLine&0x02) {
						  	for(t2=0;t2<84;t2++)			LCD_write_byte(~(*p++));
						  }else{
						  	for(t2=0;t2<84;t2++)	    LCD_write_byte(*p++);
						  }	
						  break;
					case 3:
							if(InverseLine&0x04) {
						  	for(t2=0;t2<84;t2++)			LCD_write_byte(~(*p++));
						  }else{
						  	for(t2=0;t2<84;t2++)	    LCD_write_byte(*p++);
						  }
						  break;
									
					case 4:
						 line=(InverseLine>>2)&0x03;
						 if(line==0){
						 		for(t2=0;t2<84;t2++)	    LCD_write_byte(*p++);
						 }else if(line==1){
							  for(t2=0;t2<84;t2++)      LCD_write_byte((*p++)^0x0f);
						 }else if(line==2){
							  for(t2=0;t2<84;t2++)      LCD_write_byte((*p++)^0xf0);
						 }else{
						    for(t2=0;t2<84;t2++)			LCD_write_byte(~(*p++));
						 }
							break;		
										
					case 5:
						 if(InverseLine&0x08) {
						  	for(t2=0;t2<84;t2++)			LCD_write_byte(~(*p++));
						  }else{
						  	for(t2=0;t2<84;t2++)	    LCD_write_byte(*p++);
						  }
						  break;
				}
		 	}
		}   	
		return;
	}
	
	if(LcdFlag&bUpdate1){  
		LCD_write_String(0,lcd[0].y,lcd[0].pStr);
		LcdFlag&=~bUpdate1; TimeFlag|=bLcdUpdate;
	}else if(LcdFlag&bUpdate2){        
		LCD_write_String(1,lcd[1].y,lcd[1].pStr);
		LcdFlag&=~bUpdate2; TimeFlag|=bLcdUpdate;
	}else if(LcdFlag&bUpdate3){ 
		LCD_write_String(2,lcd[2].y,lcd[2].pStr);
        LcdFlag&=~bUpdate3; TimeFlag|=bLcdUpdate;
	}else if(LcdFlag&bUpdate4){
		LCD_write_String(3,lcd[3].y,lcd[3].pStr);
		LcdFlag&=~bUpdate4;  TimeFlag|=bLcdUpdate;
	}

}
void DispVolume(void)
{
  unsigned char t1,t2;
	D_x=3;	    D_y=63;
	t1=(vol+1)/10;
	t2=(vol+1)%10;
	LCD_write_icon(0);
	D_y+=2;
	if(t1==0){
	LCD_write_char(' ');
	}else{
	LCD_write_char(t1+0x30);
	}
	LCD_write_char(t2+0x30);  //
	TimeFlag|=bLcdUpdate;
}
void PrintString(uchar x,uchar y,uchar *str)
{                   

    if(x>3)  return;
	LcdFlag|=(1<<x);
/*	if(x==0){
		LcdFlag|=bUpdate1;
	}else if(x==1){
		LcdFlag|=bUpdate2;
	}else if(x==2){
		LcdFlag|=bUpdate3;
	}else if(x==3){
		LcdFlag|=bUpdate4;
	}	
*/	
	lcd[x].y=y;
	lcd[x].pStr=str;
}
void ClrLyricScreen(void)
{   unsigned char i;
	for(i=0;i<84;i++){
		DispBuff[1][i]&=0x0f;
	  }
 		for(i=0;i<84;i++){
		DispBuff[2][i]=0;
		DispBuff[3][i]=0;
	  }
	  for(i=0;i<84;i++){
	  	DispBuff[4][i]&=0xf0;
	  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
本田岬高潮一区二区三区| 欧美日韩视频不卡| 亚洲精品欧美激情| 欧美日韩成人综合天天影院 | 国产米奇在线777精品观看| 中文字幕一区二区三区在线不卡| 欧美日韩国产片| 波多野洁衣一区| 国产精品一级片| 日韩精品免费专区| 亚洲精品自拍动漫在线| 国产亚洲精品超碰| 欧美一区二区三区喷汁尤物| 91免费在线播放| 国产成人激情av| 久久成人免费网站| 午夜精品在线看| 亚洲精品日产精品乱码不卡| 日本一区二区三区视频视频| 日韩精品中文字幕在线不卡尤物| 色诱亚洲精品久久久久久| 国产高清久久久久| 另类的小说在线视频另类成人小视频在线| 亚洲人精品一区| 国产精品久久久久久久久图文区 | 亚洲男同性视频| 久久久激情视频| 精品国产自在久精品国产| 欧美丰满一区二区免费视频| 在线观看视频一区| 91丝袜呻吟高潮美腿白嫩在线观看| 国产成人av电影| 久久av资源网| 紧缚捆绑精品一区二区| 奇米精品一区二区三区在线观看| 亚洲国产欧美在线| 一级做a爱片久久| 一区二区三区中文字幕精品精品 | 久久99精品国产.久久久久| 五月婷婷综合激情| 成人网在线免费视频| 国产一区日韩二区欧美三区| 老司机精品视频一区二区三区| 日精品一区二区| 婷婷亚洲久悠悠色悠在线播放| 亚洲成av人片一区二区三区| 亚洲福利一二三区| 日韩综合小视频| 日本aⅴ免费视频一区二区三区| 五月综合激情网| 日韩经典一区二区| 美女网站色91| 国产揄拍国内精品对白| 精品一区二区三区免费观看| 国产一区二区三区观看| 国产成人综合精品三级| 成人午夜av在线| 色综合久久九月婷婷色综合| 欧美日韩中文字幕精品| 欧美一区二区视频免费观看| 精品久久人人做人人爰| 亚洲国产精品ⅴa在线观看| 中文字幕在线视频一区| 一级做a爱片久久| 美女脱光内衣内裤视频久久影院| 国产一区二区三区在线观看免费视频| 国产成人免费视频精品含羞草妖精| 成人一区二区三区| 色视频成人在线观看免| 欧美绝品在线观看成人午夜影视| 欧美成人一区二区三区在线观看 | 91精品国产色综合久久ai换脸| 日韩欧美国产wwwww| 国产欧美日韩在线| 亚洲欧美日韩电影| 免费一级片91| 成人免费视频播放| 精品视频一区二区不卡| 久久夜色精品国产欧美乱极品| 国产精品三级视频| 亚洲成年人影院| 国产精品白丝jk黑袜喷水| 成人午夜电影久久影院| 欧美肥大bbwbbw高潮| 国产欧美一区二区三区在线看蜜臀 | 亚洲一区自拍偷拍| 蜜臀av国产精品久久久久| 成人精品视频.| 欧美高清视频不卡网| 久久久久久久久岛国免费| 亚洲精品国产品国语在线app| 久久精品999| 91福利在线播放| 久久久99精品久久| 亚洲国产一区二区三区| 国产福利精品一区| 欧美日韩夫妻久久| 国产精品国产三级国产| 青青草原综合久久大伊人精品| www.欧美.com| 精品国产一区二区亚洲人成毛片| 夜夜嗨av一区二区三区四季av| 国产裸体歌舞团一区二区| 欧美日韩国产高清一区二区三区| 国产午夜精品福利| 日本sm残虐另类| 日本韩国欧美在线| 26uuu久久综合| 午夜精品123| 日本道精品一区二区三区| 久久亚洲捆绑美女| 强制捆绑调教一区二区| 国产三级欧美三级| 欧美精选一区二区| 91国偷自产一区二区开放时间 | 精品伦理精品一区| 一区二区三区精密机械公司| 粉嫩久久99精品久久久久久夜| 正在播放一区二区| 亚洲一区二区三区四区五区中文| 粗大黑人巨茎大战欧美成人| 精品国产凹凸成av人网站| 日韩高清一级片| 欧美熟乱第一页| 亚洲精品高清视频在线观看| 国产不卡免费视频| 精品国产污网站| 首页欧美精品中文字幕| 欧美亚洲一区二区在线| 一区二区三区成人| 91免费视频大全| 日本一区二区三区dvd视频在线| 久久99国产精品麻豆| 日韩欧美中文一区二区| 水蜜桃久久夜色精品一区的特点| 欧美女孩性生活视频| 亚洲成人福利片| 欧美日韩国产综合久久| 亚洲第一精品在线| 欧美日韩一区二区欧美激情| 亚洲午夜久久久久| 欧美性生交片4| 亚洲图片欧美色图| 色8久久精品久久久久久蜜| 亚洲女子a中天字幕| 欧美系列一区二区| 天堂蜜桃91精品| 欧美一区二区三级| 精品一区二区三区视频| 精品国产一区久久| 国产a级毛片一区| 国产精品国产三级国产aⅴ原创| 成人性色生活片| 国产亚洲人成网站| aaa亚洲精品| 夜夜嗨av一区二区三区| 欧美日韩国产成人在线免费| 偷拍自拍另类欧美| 欧美电影免费提供在线观看| 国产一区日韩二区欧美三区| 国产精品免费免费| 欧洲激情一区二区| 日韩成人av影视| 国产亚洲欧美激情| 91麻豆视频网站| 亚洲午夜精品一区二区三区他趣| 337p亚洲精品色噜噜噜| 国产乱色国产精品免费视频| 国产精品久久久久精k8| 欧美亚洲自拍偷拍| 黑人巨大精品欧美一区| 国产精品欧美一级免费| 日本电影亚洲天堂一区| 久久99国产精品久久99 | 日韩精品亚洲一区| 久久综合九色综合97婷婷| av一二三不卡影片| 丝袜美腿亚洲一区| 国产欧美日韩久久| 欧美日韩专区在线| 国产高清在线观看免费不卡| 亚洲欧美另类图片小说| 欧美大片国产精品| 91亚洲午夜精品久久久久久| 日韩1区2区日韩1区2区| 中文久久乱码一区二区| 欧美日韩高清在线| 成人免费视频国产在线观看| 日韩国产一二三区| 成人免费在线视频观看| 日韩视频免费观看高清在线视频| 成人动漫av在线| 蜜桃视频第一区免费观看| 亚洲人吸女人奶水| 26uuu色噜噜精品一区二区| 欧美午夜一区二区| 成人永久免费视频| 九九视频精品免费| 亚洲成av人**亚洲成av**| 中文字幕不卡在线|