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

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

?? sd.c

?? 2.4tft彩屏教程
?? C
字號:
/*-----------------------------------------------
  名稱:讀SD卡寫彩屏
  公司:上海浩豚電子科技有限公司
  網站:www.doflye.net
  編寫:師訪
  日期:2009.12
  修改:無
  內容:通過讀出SD卡中320x240像素、16位BMP圖片的HEX數據,依次寫到屏上,還原圖片
  注意事項:由于SD卡使用SPI模式,并且是塊讀取(512Byte),所以需要單片機提供大于512的可用RAM,以供緩沖使用
            這里可以選擇STC89c52RD+、STC89C58RD+、STC89C516RD+,后綴RD+表明擴展RAM是1024字節,RC表明擴展RAM256字節
------------------------------------------------*/
#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字節緩沖區,注意需要使用 xdata關鍵字
unsigned char xdata DATA[512];

//===========================================================
//寫一字節到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卡讀一字節,模擬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;
} 
//================================================================
//發命令到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卡指定地址寫數據,一次最多512字節
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); //兩字節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卡指定地址讀取數據,一次最多512字節
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;  //執行循環需要的臨時變量
  unsigned int i;
  unsigned long AddTemp=393728;//SD卡地址第一個數據物理地址初始值,可以用winhex查看,這里是512扇區,512x512=262144,根據實際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字節的信息
    {
    SdReadBlock(DATA,AddTemp+(j*512),512);//每次讀出512字節放到緩沖區
    for(i=0;i<256;i++)                    //然后寫到液晶屏,可以顯示256個像素,每個像素16位即2個字節
	   {   
   	   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);                         //等待按鍵按下繼續執行循環顯示下一幅圖片,如果沒有按下則等待
	 
 } 
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久9999亚洲精品| 欧美中文字幕一二三区视频| 亚洲理论在线观看| 欧美激情在线一区二区三区| 精品免费日韩av| 欧美一区二区三区免费| 欧美福利电影网| 91精品国产综合久久久久久漫画 | 欧美一级日韩一级| 91精品国产品国语在线不卡| 91精品国产综合久久香蕉麻豆| 欧美日韩国产综合一区二区三区| 欧美日韩国产一二三| 欧美日韩亚洲综合在线 | 在线视频中文字幕一区二区| 99精品欧美一区二区蜜桃免费| 99在线精品免费| 欧美亚洲一区二区在线| 欧美精品自拍偷拍| 精品国产免费视频| 国产精品亲子乱子伦xxxx裸| 综合欧美一区二区三区| 亚洲成在人线在线播放| 毛片不卡一区二区| 国产精品一级二级三级| 一本色道综合亚洲| 欧美精品三级在线观看| 26uuu色噜噜精品一区二区| 国产精品天美传媒| 亚洲二区在线观看| 国产精品123区| 色国产综合视频| www激情久久| 亚洲自拍欧美精品| 精品一区免费av| 91福利视频久久久久| 欧美成人官网二区| 亚洲精品久久久蜜桃| 美女一区二区视频| 色女孩综合影院| 欧美精品一区在线观看| 亚洲男同1069视频| 国产福利不卡视频| 91麻豆精品国产自产在线| 久久久精品国产免大香伊 | 另类综合日韩欧美亚洲| 成人av动漫在线| 日韩写真欧美这视频| 亚洲四区在线观看| 精品一区二区三区日韩| 欧美最猛性xxxxx直播| 久久久美女毛片| 麻豆一区二区三| 在线观看一区二区精品视频| 亚洲国产精品精华液ab| 久久成人免费网| 欧美精品久久天天躁| 国产精品高清亚洲| 国产麻豆成人精品| 日韩亚洲欧美成人一区| 亚洲一区视频在线| 91丨九色丨国产丨porny| 国产午夜精品久久| 国产乱码精品1区2区3区| 91精品国产综合久久小美女| 亚洲午夜成aⅴ人片| 91蜜桃在线免费视频| 国产精品每日更新在线播放网址 | 国产清纯白嫩初高生在线观看91 | 亚洲欧洲av在线| 国产精品系列在线观看| 精品欧美乱码久久久久久| 日韩国产欧美在线观看| 欧美视频一区在线| 夜夜爽夜夜爽精品视频| 日本高清免费不卡视频| 一区二区三区欧美激情| 色婷婷精品久久二区二区蜜臂av | 国产日韩三级在线| 韩国三级在线一区| 久久久av毛片精品| 国产成人av福利| 国产日韩影视精品| 成人的网站免费观看| 中文字幕在线不卡| 在线观看成人小视频| 一区二区三区精品| 欧美日韩国产中文| 日本成人超碰在线观看| 欧美va亚洲va香蕉在线| 国产麻豆成人传媒免费观看| 国产午夜精品久久| aa级大片欧美| 性久久久久久久久久久久| 91精品久久久久久久久99蜜臂| 老司机午夜精品| 久久亚洲精品国产精品紫薇| 成人激情校园春色| 亚洲一卡二卡三卡四卡五卡| 日韩一区二区视频在线观看| 国产精品自拍在线| 亚洲色图制服丝袜| 91精品国产免费| 国产成人精品免费| 亚洲国产日韩一区二区| 精品国内片67194| 丁香桃色午夜亚洲一区二区三区| 亚洲你懂的在线视频| 日韩欧美在线综合网| 97超碰欧美中文字幕| 日韩精品一级中文字幕精品视频免费观看 | 乱一区二区av| 日韩毛片一二三区| 精品国产免费人成电影在线观看四季| 成人看片黄a免费看在线| 五月婷婷色综合| 中文成人av在线| 日韩一区二区视频| 91丨porny丨中文| 国产在线播放一区三区四| 亚洲一区在线播放| 国产精品毛片大码女人| 欧美一区国产二区| 在线中文字幕一区| 国产大陆a不卡| 久久国产视频网| 亚洲综合999| 亚洲色图制服诱惑| 日本一区二区电影| 精品理论电影在线观看| 欧美乱熟臀69xxxxxx| av动漫一区二区| 懂色av中文一区二区三区| 青草av.久久免费一区| 亚洲精品中文字幕在线观看| 久久青草欧美一区二区三区| 91精品福利在线一区二区三区 | 欧美日韩一区二区在线观看视频| 丁香五精品蜜臀久久久久99网站 | 国产女人水真多18毛片18精品视频| 欧美日韩精品欧美日韩精品一综合| 丁香六月久久综合狠狠色| 精品一区二区三区免费| 欧美aaaaaa午夜精品| 午夜a成v人精品| 日韩av中文字幕一区二区三区| 亚洲黄色性网站| 亚洲综合一区二区精品导航| 中文字幕亚洲成人| 中文字幕欧美激情| 国产网站一区二区| 中文字幕不卡在线观看| 中文字幕乱码亚洲精品一区| 国产情人综合久久777777| 国产亚洲成aⅴ人片在线观看| 久久久久久一二三区| 久久精品一区二区| 欧美国产精品劲爆| 中文字幕第一页久久| 亚洲欧洲99久久| 日韩伦理免费电影| 亚洲午夜三级在线| 日韩影院在线观看| 精品一区二区三区影院在线午夜 | 国产无一区二区| 国产精品高潮呻吟| 亚洲国产成人porn| 日韩电影免费在线看| 精品中文av资源站在线观看| 国产剧情av麻豆香蕉精品| 粉嫩蜜臀av国产精品网站| 波多野结衣一区二区三区| 日本高清免费不卡视频| 欧美精品日韩综合在线| 久久精品无码一区二区三区| 国产精品久久久久婷婷| 亚洲一区二区综合| 久久机这里只有精品| 97se狠狠狠综合亚洲狠狠| 欧美日韩黄视频| 久久精品夜色噜噜亚洲aⅴ| ...中文天堂在线一区| 婷婷久久综合九色综合绿巨人| 久久国产综合精品| 色激情天天射综合网| 欧美大胆人体bbbb| 亚洲伦理在线免费看| 蜜臀a∨国产成人精品| 不卡在线视频中文字幕| 欧美日韩精品一区二区三区| 久久久99久久| 丝袜亚洲精品中文字幕一区| 岛国精品一区二区| 91精品国产综合久久福利| 国产精品萝li| 日本不卡123| 99精品视频在线播放观看| 精品国产免费一区二区三区四区 | 欧美乱妇15p| 中文字幕日韩精品一区|