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

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

?? sd.c

?? 2.4tft彩屏教程
?? C
字號:
/*-----------------------------------------------
  名稱:讀SD卡寫彩屏
  公司:上海浩豚電子科技有限公司
  網站:www.doflye.net
  編寫:師訪
  日期:2009.12
  修改:無
  內容:通過讀出SD卡中320x240像素、16位BMP圖片的HEX數(shù)據(jù),依次寫到屏上,還原圖片
  注意事項:由于SD卡使用SPI模式,并且是塊讀取(512Byte),所以需要單片機提供大于512的可用RAM,以供緩沖使用
            這里可以選擇STC89c52RD+、STC89C58RD+、STC89C516RD+,后綴RD+表明擴展RAM是1024字節(jié),RC表明擴展RAM256字節(jié)
------------------------------------------------*/
#include <reg52.h>
#include <stdio.h>
#include<9325TP.h>
//=============================================================
//定義SD卡需要的4根信號線
sbit SD_CLK = P1^1;
sbit SD_DI  = P1^2;
sbit SD_DO  = P1^0;
sbit SD_CS  = P1^3;
//===========================================================
//定義按鍵端口
sbit KEY = P3^2;
//===========================================================
//定義512字節(jié)緩沖區(qū),注意需要使用 xdata關鍵字
unsigned char xdata DATA[512];

//===========================================================
//寫一字節(jié)到SD卡,模擬SPI總線方式
void SdWrite(unsigned char n)
{

unsigned char i;

for(i=8;i;i--)
{
SD_CLK=0;
SD_DI=(n&0x80);
n<<=1;
SD_CLK=1;
}
SD_DI=1; 
} 
//===========================================================
//從SD卡讀一字節(jié),模擬SPI總線方式
unsigned char SdRead()
{
unsigned char n,i;
for(i=8;i;i--)
{
SD_CLK=0;
SD_CLK=1;
n<<=1;
if(SD_DO) n|=1;

}
return n;
}
//============================================================
//檢測SD卡的響應
unsigned char SdResponse()
{
unsigned char i=0,response;

while(i<=8)
{
response = SdRead();
if(response==0x00)
break;
if(response==0x01)
break;
i++;
}
return response;
} 
//================================================================
//發(fā)命令到SD卡
void SdCommand(unsigned char command, unsigned long argument, unsigned char CRC)
{

SdWrite(command|0x40);
SdWrite(((unsigned char *)&argument)[0]);
SdWrite(((unsigned char *)&argument)[1]);
SdWrite(((unsigned char *)&argument)[2]);
SdWrite(((unsigned char *)&argument)[3]);
SdWrite(CRC);
}
//================================================================
//初始化SD卡
unsigned char SdInit(void)
{
int delay=0, trials=0;
unsigned char i;
unsigned char response=0x01;

SD_CS=1;
for(i=0;i<=9;i++)
SdWrite(0xff);
SD_CS=0;

//Send Command 0 to put MMC in SPI mode
SdCommand(0x00,0,0x95);


response=SdResponse();

if(response!=0x01)
{
return 0;
} 

while(response==0x01)
{
SD_CS=1;
SdWrite(0xff);
SD_CS=0;
SdCommand(0x01,0x00ffc000,0xff);
response=SdResponse();
} 

SD_CS=1;
SdWrite(0xff);
return 1; 
}
//================================================================
//往SD卡指定地址寫數(shù)據(jù),一次最多512字節(jié)
unsigned char SdWriteBlock(unsigned char *Block, unsigned long address,int len)
{
unsigned int count;
unsigned char dataResp;
//Block size is 512 bytes exactly
//First Lower SS

SD_CS=0;
//Then send write command
SdCommand(0x18,address,0xff);

if(SdResponse()==00)
{
SdWrite(0xff);
SdWrite(0xff);
SdWrite(0xff);
//command was a success - now send data
//start with DATA TOKEN = 0xFE
SdWrite(0xfe);
//now send data
for(count=0;count<len;count++) SdWrite(*Block++);

for(;count<512;count++) SdWrite(0);
//data block sent - now send checksum
SdWrite(0xff); //兩字節(jié)CRC校驗, 為0XFFFF 表示不考慮CRC
SdWrite(0xff);
//Now read in the DATA RESPONSE token
dataResp=SdRead();
//Following the DATA RESPONSE token
//are a number of BUSY bytes
//a zero byte indicates the MMC is busy

while(SdRead()==0);

dataResp=dataResp&0x0f; //mask the high byte of the DATA RESPONSE token
SD_CS=1;
SdWrite(0xff);
if(dataResp==0x0b)
{
//printf("DATA WAS NOT ACCEPTED BY CARD -- CRC ERROR\n");
return 0;
}
if(dataResp==0x05)
return 1;

//printf("Invalid data Response token.\n");
return 0;
}
//printf("Command 0x18 (Write) was not received by the MMC.\n");
return 0;
}

//=======================================================================
//從SD卡指定地址讀取數(shù)據(jù),一次最多512字節(jié)
unsigned char SdReadBlock(unsigned char *Block, unsigned long address,int len)
{
unsigned int count;
//Block size is 512 bytes exactly
//First Lower SS

 //printf("MMC_read_block\n");

SD_CS=0;
//Then send write command
SdCommand(0x11,address,0xff);

if(SdResponse()==00)
{
//command was a success - now send data
//start with DATA TOKEN = 0xFE
while(SdRead()!=0xfe);

for(count=0;count<len;count++) *Block++=SdRead(); 

for(;count<512;count++) SdRead();

//data block sent - now send checksum
SdRead();
SdRead();
//Now read in the DATA RESPONSE token
SD_CS=1;
SdRead();
return 1;
}
 //printf("Command 0x11 (Read) was not received by the MMC.\n");
return 0;
}

//============================================================
//主程序	
main()
{
 unsigned int x,y; //定義液晶屏坐標
 unsigned long j;  //執(zhí)行循環(huán)需要的臨時變量
  unsigned int i;
  unsigned long AddTemp=328192;//SD卡地址第一個數(shù)據(jù)物理地址初始值,可以用winhex查看,這里是641物理扇區(qū),512x641=328192,根據(jù)實際SD卡內容更改
  	CS=1;
	delayms(5);
	RES=0;
	delayms(5);
	RES=1;
	delayms(5);
	ILI9325_Initial();//液晶屏初始化
	SdInit();         //SD卡初始化
 while(1)
 {

 for(j=0;j<300;j++)   //300表示一幅圖片含有300x512字節(jié)的信息
    {
    SdReadBlock(DATA,AddTemp+(j*512),512);//每次讀出512字節(jié)放到緩沖區(qū)
    for(i=0;i<256;i++)                    //然后寫到液晶屏,可以顯示256個像素,每個像素16位即2個字節(jié)
	   {   
   	   LCD_SetPos(x,x,y,y);
   	   Write_Data(DATA[2*i+1],DATA[2*i]);	 
	   x++;
	   if(x==240)                         //檢測是否寫到屏的邊緣 240x320
	     {
	     y++;
	     x=0;
	     if(y==320)
	       y=0;
	     }
       }
     } 
     AddTemp = AddTemp+((j+20)*512);          //寫完一幅圖片后把SD地址加300x512到下一個圖片地址
     while(KEY);                         //等待按鍵按下繼續(xù)執(zhí)行循環(huán)顯示下一幅圖片,如果沒有按下則等待
	 
 } 
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品九色蝌蚪自拍| 国产成人亚洲综合色影视| 亚洲h精品动漫在线观看| 午夜成人免费电影| 国内精品在线播放| 日本精品一级二级| 精品国产乱码久久久久久夜甘婷婷| 国产欧美日韩另类视频免费观看 | 国产一区二区视频在线| 99热这里都是精品| 日韩视频一区二区| 亚洲乱码中文字幕综合| 久热成人在线视频| 91黄视频在线观看| 91久久香蕉国产日韩欧美9色| 一本到三区不卡视频| 欧美v日韩v国产v| 欧美aaa在线| 91在线云播放| 久久精品男人天堂av| 日韩精品免费专区| 日本高清视频一区二区| 国产欧美日韩另类一区| 久久国产免费看| 精品视频在线免费| 亚洲精品视频观看| 白白色 亚洲乱淫| 久久色在线视频| 奇米综合一区二区三区精品视频| 色婷婷久久一区二区三区麻豆| 国产亚洲视频系列| 久久99精品久久久久婷婷| 欧美色电影在线| 亚洲男女毛片无遮挡| 成人福利视频在线| 中文字幕不卡的av| 国产成人鲁色资源国产91色综 | 亚洲三级免费观看| 国产黄色成人av| 精品国产91洋老外米糕| 免费看精品久久片| 欧美一级黄色录像| 老色鬼精品视频在线观看播放| 欧美精品少妇一区二区三区| 亚洲最新在线观看| 欧美日韩小视频| 五月天视频一区| 这里只有精品免费| 美国av一区二区| 精品国产伦一区二区三区观看体验| 免费看黄色91| 欧美精品一区二区三区在线| 久久91精品国产91久久小草 | 波多野结衣91| 国产精品久久三| 色综合激情五月| 亚洲大型综合色站| 欧美一级二级三级蜜桃| 久久激情五月激情| 国产日韩欧美不卡| 97久久人人超碰| 亚洲综合免费观看高清完整版 | 亚洲va国产va欧美va观看| 欧美日韩dvd在线观看| 美腿丝袜亚洲一区| 久久久不卡网国产精品二区| 成人激情小说乱人伦| 亚洲狼人国产精品| 666欧美在线视频| 国产一区视频网站| 国产精品国产三级国产aⅴ原创| 色狠狠桃花综合| 日韩电影免费在线观看网站| 久久免费视频一区| 91美女片黄在线观看91美女| 天堂影院一区二区| ww亚洲ww在线观看国产| 97se亚洲国产综合自在线 | 26uuu另类欧美亚洲曰本| 成人性生交大片免费看视频在线 | 91精品久久久久久久久99蜜臂| 精品一区二区三区香蕉蜜桃| 椎名由奈av一区二区三区| 91精品欧美久久久久久动漫 | 99v久久综合狠狠综合久久| 亚洲免费视频中文字幕| 777a∨成人精品桃花网| 成人性色生活片| 午夜激情久久久| 国产蜜臀av在线一区二区三区| 欧美亚洲日本一区| 国产乱妇无码大片在线观看| 亚洲激情网站免费观看| 精品美女在线播放| 91久久香蕉国产日韩欧美9色| 久久av中文字幕片| 一区二区三区中文免费| 久久久久亚洲综合| 欧美久久高跟鞋激| 成人午夜伦理影院| 免费国产亚洲视频| 亚洲激情图片一区| 国产日韩视频一区二区三区| 欧美人狂配大交3d怪物一区| 成人毛片视频在线观看| 久久电影网电视剧免费观看| 亚洲在线视频免费观看| 国产日韩v精品一区二区| 7777精品伊人久久久大香线蕉| av在线综合网| 国产99久久久国产精品潘金 | 亚洲精品视频在线观看网站| 久久久91精品国产一区二区精品| 欧美色图在线观看| 91麻豆swag| www.久久精品| 成人性色生活片免费看爆迷你毛片| 蜜臀国产一区二区三区在线播放| 亚洲国产精品久久久久秋霞影院 | 久久精品亚洲一区二区三区浴池| 在线91免费看| 欧美日韩三级在线| 欧美视频一区二区三区| 91成人网在线| 在线观看国产91| 色婷婷av一区二区三区gif| 成人在线综合网| 国产成人精品免费| 成人亚洲一区二区一| 成+人+亚洲+综合天堂| 波多野结衣亚洲| 成人久久久精品乱码一区二区三区 | 亚洲电影在线免费观看| 亚洲黄色尤物视频| 一区二区三区国产| 亚洲精品精品亚洲| 亚洲一区国产视频| 视频一区视频二区中文字幕| 天堂午夜影视日韩欧美一区二区| 天天免费综合色| 日本亚洲最大的色成网站www| 美国三级日本三级久久99| 精一区二区三区| 国产成人精品在线看| www.欧美.com| 欧美亚洲一区三区| 日韩西西人体444www| 精品国产乱码久久久久久蜜臀| 久久久蜜桃精品| 日韩毛片在线免费观看| 亚洲国产精品一区二区尤物区| 日韩成人免费看| 国产美女视频一区| av在线不卡免费看| 8v天堂国产在线一区二区| 久久久综合精品| 最新国产精品久久精品| 亚洲不卡一区二区三区| 韩国欧美国产1区| 91丨porny丨国产| 91精品国产一区二区三区| 久久精品人人爽人人爽| 一区二区视频在线| 秋霞成人午夜伦在线观看| 成人黄页毛片网站| 欧美日韩激情在线| 国产亚洲短视频| 亚洲午夜免费电影| 国产精品一区二区你懂的| 色婷婷久久综合| 精品电影一区二区三区| 最好看的中文字幕久久| 日本不卡的三区四区五区| 成人伦理片在线| 日韩欧美色电影| 亚洲美女视频一区| 国产高清不卡二三区| 欧美丰满嫩嫩电影| 中文字幕中文字幕一区| 麻豆视频一区二区| 在线精品视频一区二区三四| 欧美精品一区二区精品网| 亚洲一区国产视频| 成人黄色电影在线| 精品国精品自拍自在线| 一区二区三区蜜桃| 国产99精品在线观看| 日韩午夜小视频| 亚洲成人免费看| 97久久精品人人做人人爽| 久久色.com| 久久99蜜桃精品| 欧美乱妇15p| 尤物av一区二区| av电影在线不卡| 国产日韩三级在线| 国内外成人在线| 日韩精品专区在线影院观看 | 丰满岳乱妇一区二区三区| 日韩精品在线网站|