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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? w29c040讀寫程序.txt

?? W29C040(512K FLASH)讀寫程序2007-09-10 11:16很是激動(dòng)
?? TXT
字號(hào):
W29C040(512K FLASH)讀寫程序2007-09-10 11:16很是激動(dòng),去年用AT89S52搗弄了半年也沒(méi)搞定,這次換成C8051f040,也不知道是天見我可憐還是狗運(yùn),終于把數(shù)據(jù)寫進(jìn)去了。想當(dāng)時(shí)到處找的程序都沒(méi)用,郁悶非常,這次走運(yùn)成功,拿出來(lái)曬曬太陽(yáng)(雖然也是該的別人的程序,但是好歹能用)。

/*W29C040(512K FLASH)讀寫程序*/
#include    <c8051f040.h>
#include <INTRINS.h>
#include <absacc.h>
sbit    E=P1^0;
sbit    RW=P1^1;
sbit    RS=P1^2;
sbit A16=P4^0;//高地址16讀寫,推拉式
sbit A17=P4^1;//高地址17讀寫,推拉式
sbit A18=P4^2;//高地址18讀寫,推拉式
sbit CS=P4^4;//片選,低電平有效,推拉式
//C8051F040有兩套外部存儲(chǔ)器接口,為了方便,這里用第二套,且不用分時(shí)復(fù)用
sbit WR=P4^7
sbit RD=P4^6;
sbit Button=P3^7;
//P7    數(shù)據(jù)寫推拉式,數(shù)據(jù)讀漏極開路
//P6 低地址讀寫,推拉式 
//P5 高地址讀寫,推拉式
//256B數(shù)組
unsigned int xdata Data[256]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255};

void Delay(unsigned int l_time); 
void protect(); 
void erase();
void read();
void select_segment(unsigned char seg); 
/***********************************************************************************/
void Reset_Sources_Init()//禁止看門狗
{
     WDTCN       = 0xDE;
     WDTCN       = 0xAD;
}
void EMI_Init()//設(shè)置EMI,WR=P4^7,RD=P4^6;P7    數(shù)據(jù)讀寫,P6 低地址讀寫,P5 高地址讀寫
{
     SFRPAGE     = EMI0_PAGE;
     EMI0CF      = 0x37;
}
void Port_IO_Init()//端口狀態(tài)設(shè)置,推拉——漏極
{
     SFRPAGE     = CONFIG_PAGE;
     P4MDOUT     = 0xD0;
     P5MDOUT     = 0xFF;
     P6MDOUT     = 0xFF;
     P7MDOUT     = 0xFF;
     XBR2        = 0x40;    
}
void Init_Device(void)//初始化
{
     Reset_Sources_Init();
     EMI_Init();
     Port_IO_Init();
}
/***********************************************************************************/
void SendCommandByte(unsigned char ch)//液晶1602寫控制命令
{
     RS=0;  
     RW=0;
     P2=ch;
     E=1;
     Delay(10);
     E=0;
     Delay(100);  
}
void SendDataByte(unsigned char ch)//液晶1602寫數(shù)據(jù)
{    RS=1;
     RW=0;
     P2=ch;
     E=1;
     Delay(10);
     E=0;
     Delay(100);  
}
void InitLcd()//液晶1602初始化
{
     SendCommandByte(0x30);
     SendCommandByte(0x30);
     SendCommandByte(0x30);
     SendCommandByte(0x38); //設(shè)置工作方式
     SendCommandByte(0x0c); //顯示狀態(tài)設(shè)置
     SendCommandByte(0x01); //清屏
     SendCommandByte(0x06); //輸入方式設(shè)置
}
void DisplayMsg1(unsigned char *p)//顯示第一行
{ 
     unsigned char count;
     SendCommandByte(0x80);    //設(shè)置DDRAM地址 
     Delay(2000);//根據(jù)單片機(jī)頻率設(shè)置延時(shí),以免液晶未準(zhǔn)備好導(dǎo)致字符顯示不完全
     for(count=0;count<16;count++)
      {
        SendDataByte(*p++);
      }
} 

void DisplayMsg2(unsigned char *p)//顯示第二行
{ 
     unsigned char count;
     SendCommandByte(0xc0);    //設(shè)置DDRAM地址 
     Delay(2000);
     for(count=0;count<16;count++)
      {
SendDataByte(*p++);
      }
}

/***********************************************************************************/
void write_data(unsigned int m_addr,unsigned int s_sector,unsigned int acount) //寫數(shù)據(jù)
{ 
     unsigned int data addraa; /* addraa 為內(nèi)存地址,addrbb 為29C040地址 */ 
     unsigned int data i,j;  
     bit flag;
     addraa=m_addr;   
     for(j=acount;j>0;j--) 
     { 
protect(); //接觸保護(hù) ?
CS=0;
     select_segment(s_sector/256); /*s_sector 是256的整數(shù)倍*/ 
     for(i=0;i<256;i++,addraa++) 
     {     
       XBYTE[addraa]=Data[i];    //高位   
    }
/*翻轉(zhuǎn)位判斷寫入完成  
           --addraa;
     ACC=Data[addraa];
     flag=ACC^7;  
      while(1)
      {
       ACC=XBYTE[addraa];
       if(ACC^7==flag) break;
       flag=ACC^7; 
       }  
*/  
//延時(shí)等待寫入完成
for(i=0;i<2;i++)
     { 
      Delay(65535);
     } 
     CS=1;
     s_sector++; 
     }      
} 
/* 選擇 29C040 段地址(高位地址),seg 為段地址*/ 
void select_segment(unsigned char seg) 
{ 

     P4&=0xf8;
     switch(seg) 
     { 
        case 0: P4|=0x00; break; // 29c040 a18a17a16= 000 00000-0ffff 
        case 1: P4|=0x01; break; // 29c040 a18a17a16= 001 10000-1ffff 
        case 2: P4|=0x02; break; // 29c040 a18a17a16= 010 20000-2ffff 
        case 3: P4|=0x03; break; // 29c040 a18a17a16= 011 30000-3ffff 
        case 4: P4|=0x04; break; // 29c040 a18a17a16= 100 40000-4ffff 
        case 5: P4|=0x05; break; // 29c040 a18a17a16= 101 50000-5ffff 
        case 6: P4|=0x06; break; // 29c040 a18a17a16= 110 60000-6ffff 
        case 7: P4|=0x07; break; // 29c040 a18a17a16= 111 70000-7ffff 
     } 
}  
void protect() //解除保護(hù)?
{ 
     select_segment(0);/*必須寫到第0段*/  
     XBYTE[0x5555]=0xaa; 
     XBYTE[0x2aaa]=0x55; 
     XBYTE[0x5555]=0xa0;  
} 
void erase()//整片擦除
{
     unsigned char i;
     select_segment(0);/*必須寫到第0段*/ 
     CS=0;
     XBYTE[0x5555]=0xaa; 
     XBYTE[0x2aaa]=0x55; 
     XBYTE[0x5555]=0x80; 
     XBYTE[0x5555]=0xAA;
     XBYTE[0x2AAA]=0x55;  
     XBYTE[0x5555]=0x10; 
     CS=1;
     for(i=0;i<6;i++)
     { 
        Delay(65535);
     }
     _nop_();
}
void Read(unsigned int r_addr)//讀數(shù)據(jù)
{
     unsigned char    ch1[16]="addr 0x           ";
     unsigned char    ch2[16]="data 0x           ";
     unsigned char i;
     unsigned    int Data;

     //讀數(shù)據(jù),P7為漏極開路
     SFRPAGE     = CONFIG_PAGE;
     P4MDOUT     = 0xD0;
     P5MDOUT     = 0xFF;
     P6MDOUT     = 0xFF;
     XBR2        = 0x40;

     CS=0;
     _nop_();_nop_();_nop_();_nop_();_nop_();
     Data=XBYTE[r_addr];
     CS=1;
/***********************************************/
    //轉(zhuǎn)化為可顯示ASCII字符
     ch2[8]=Data%0x10+0x30;
     ch2[7]=Data/0x10%0x10+0x30;
     for(i=7;i<9;i++)
     {
       if(ch2[i]>0x39) ch2[i]+=0x7;
     }
     ch1[10]=r_addr%0x10+0x30;
     ch1[9]=r_addr/0x10%0x10+0x30;
     ch1[8]=r_addr/0x100%0x10+0x30;
     ch1[7]=r_addr/0x1000%0x10+0x30;    
     for(i=7;i<11;i++)
     {
      if(ch1[i]>0x39) ch1[i]+=0x7;
     }
/**********************************************/
     SendCommandByte(0x01); //清屏
     DisplayMsg1(ch1);
     DisplayMsg2(ch2);    
}
void Delay(unsigned int l_time)/*寫完一個(gè)扇區(qū)后延時(shí)*/ 
{ 
     unsigned int data lp;
     for(lp=0;lp<l_time;lp++)      
     {;} 
}
main() 
{ 
     unsigned char xdata msg1[16]="0123456789ABCDEF";
     unsigned char xdata msg2[16]="....READY,GO!...";
     unsigned int i;
     Init_Device();
     InitLcd();
     DisplayMsg1(msg1);
     DisplayMsg2(msg2);  
     erase();
     write_data(0x2000,0,1);  
     for(i=0x2000;i<0x2100;i++)
     {
      Read(i);
      while(1)//添加一個(gè)按鈕,按一下地址自加一,并顯示地址和讀出的數(shù)據(jù)
      {
        if(Button==0)
        {
          while(Button==0){;}     
          break;
        }
      }
     } 
while(1);

 

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区四区在线免费观看| 亚洲国产日产av| 欧美性猛交xxxx黑人交| 国产成人在线视频播放| 狠狠久久亚洲欧美| 蜜桃视频一区二区| 久久99精品久久只有精品| 免费在线观看一区二区三区| 日韩在线观看一区二区| 一区二区成人在线视频| 亚洲欧美国产三级| 一区二区三区在线播放| 一个色在线综合| 午夜欧美大尺度福利影院在线看| 亚洲国产精品久久不卡毛片 | 久久国产生活片100| 午夜精品123| 蜜臀久久99精品久久久久久9| 秋霞电影一区二区| 九九**精品视频免费播放| 国产精品伊人色| 97精品电影院| 欧美日韩免费电影| 日韩欧美国产午夜精品| 久久综合狠狠综合久久激情 | 美女免费视频一区二区| 国产一区二区在线视频| 成人黄色电影在线| 在线亚洲免费视频| 91精品国产91久久综合桃花 | 国产欧美日韩精品在线| 亚洲欧美在线视频观看| 一个色在线综合| 老司机午夜精品99久久| 久久99在线观看| 99久久精品免费看| 欧美老女人在线| 久久久久88色偷偷免费| 亚洲精品免费在线播放| 日本不卡一二三区黄网| 国产91精品精华液一区二区三区| 色综合久久综合网97色综合| 欧美一区二区三区日韩| 国产欧美一区二区在线| 亚洲一级二级在线| 国产一区二区三区精品欧美日韩一区二区三区| 成人综合在线网站| 欧美精品粉嫩高潮一区二区| 久久久久久久综合日本| 成人福利视频在线看| 欧美日本在线看| 亚洲国产成人一区二区三区| 亚洲午夜三级在线| 国产精品一区二区x88av| 欧洲视频一区二区| 国产亚洲一区字幕| 天天综合天天做天天综合| 国产999精品久久久久久| 欧美日韩精品一区二区三区蜜桃| 国产日韩欧美精品在线| 午夜欧美在线一二页| 成人av资源在线| 日韩欧美国产成人一区二区| 一区二区三区欧美日韩| 国产美女一区二区| 精品视频在线免费| 国产精品毛片久久久久久久 | 欧美日韩三级视频| 国产精品麻豆欧美日韩ww| 人人超碰91尤物精品国产| 91丨porny丨户外露出| 亚洲精品在线免费观看视频| 亚洲国产成人高清精品| 99久久久久久99| 国产午夜精品一区二区三区嫩草| 日韩精彩视频在线观看| 91亚洲精品久久久蜜桃网站| 久久影院午夜论| 蜜臀a∨国产成人精品| 91久久国产综合久久| 国产免费成人在线视频| 精品制服美女丁香| 777色狠狠一区二区三区| 一区二区三区在线视频观看| 久久综合国产精品| 久久综合综合久久综合| 欧美嫩在线观看| 亚洲综合色婷婷| 色丁香久综合在线久综合在线观看| 国产欧美一区二区精品仙草咪| 精品影视av免费| 日韩欧美在线观看一区二区三区| 亚洲综合视频在线| 色爱区综合激月婷婷| 亚洲视频在线一区| av亚洲产国偷v产偷v自拍| 国产喂奶挤奶一区二区三区| 狠狠色丁香婷婷综合久久片| 欧美成人福利视频| 美脚の诱脚舐め脚责91 | 色婷婷精品久久二区二区蜜臀av| 国产精品免费aⅴ片在线观看| 国产精品一二三四| 久久色.com| 国产精品系列在线观看| www国产精品av| 国产真实乱偷精品视频免| 精品va天堂亚洲国产| 国产乱码精品一区二区三区av | 欧美激情在线免费观看| 国产99一区视频免费| 国产精品久久久久影视| 99久久精品一区| 夜夜嗨av一区二区三区| 欧美午夜精品免费| 丝瓜av网站精品一区二区| 91精品国产色综合久久不卡电影| 日韩av中文字幕一区二区| 日韩欧美黄色影院| 国产乱子轮精品视频| 亚洲国产精品成人综合色在线婷婷| 国产成人免费视| 综合激情成人伊人| 欧美在线一二三| 美腿丝袜亚洲三区| 国产亚洲综合色| 一本大道久久a久久精二百| 一个色妞综合视频在线观看| 制服.丝袜.亚洲.中文.综合| 韩国精品免费视频| 中文子幕无线码一区tr| 日本高清视频一区二区| 肉丝袜脚交视频一区二区| 精品久久久久久久久久久院品网| 国产91露脸合集magnet| 亚洲精品乱码久久久久久日本蜜臀| 欧美日韩一区在线观看| 精品无码三级在线观看视频| 国产精品另类一区| 欧美日韩一区久久| 国模少妇一区二区三区| 亚洲桃色在线一区| 欧美一区二区三区四区五区| 国产99久久久国产精品免费看| 亚洲精品中文在线观看| 日韩三区在线观看| 成人av在线资源| 午夜精品久久一牛影视| 久久久精品日韩欧美| 日本道精品一区二区三区| 美女尤物国产一区| 亚洲欧美一区二区在线观看| 91精品一区二区三区久久久久久 | 5858s免费视频成人| 国产裸体歌舞团一区二区| 一区二区三区四区高清精品免费观看| 日韩午夜电影在线观看| gogogo免费视频观看亚洲一| 日韩在线卡一卡二| 中文字幕人成不卡一区| 日韩一区二区三区在线| 91一区二区在线| 国内精品视频一区二区三区八戒| 亚洲欧美日韩一区二区三区在线观看 | 成人av在线网站| 欧美日韩精品三区| 国产成人高清视频| 午夜精品福利一区二区三区av | 欧美电影免费观看高清完整版在线| 成人免费看的视频| 美女视频黄频大全不卡视频在线播放| 亚洲欧洲制服丝袜| 国产色产综合色产在线视频| 制服丝袜激情欧洲亚洲| 91国模大尺度私拍在线视频| 国产福利精品一区二区| 日本伊人色综合网| 一区二区三区国产精华| 久久久www成人免费无遮挡大片 | 欧美国产欧美综合| 日韩丝袜情趣美女图片| 在线观看中文字幕不卡| 成人性生交大片免费看中文 | 色屁屁一区二区| 国产福利一区二区三区在线视频| 日韩vs国产vs欧美| 亚洲一区二区三区四区在线 | 国产99久久久国产精品潘金| 日本va欧美va精品| 亚洲国产视频直播| 一区二区三区日本| 亚洲色图欧美偷拍| 国产精品麻豆视频| 国产精品入口麻豆九色| 国产亚洲一区二区三区四区| 日韩免费观看高清完整版| 欧美二区三区的天堂| 欧美日韩免费一区二区三区| 国产成人综合在线| 视频一区视频二区中文字幕|