• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > C8051F12X操作FLASH存儲(chǔ)器程序

    C8051F12X操作FLASH存儲(chǔ)器程序

    作者: 時(shí)間:2016-11-30 來(lái)源:網(wǎng)絡(luò) 收藏
    DBMODE 為數(shù)據(jù)線的輸入輸出模式 為單片機(jī)的PXMDOUT
    DBOUT 為輸出模式
    DBus 為數(shù)據(jù)端口 Px
    /--------FLASH命令傳送------//
    void Comm_Latch_Cycle(uchar COMMAND)
    {
    uchar SFRPAGE_SAVE = SFRPAGE;
    SFRPAGE = CONFIG_PAGE;
    DBMODE = DBOUT;
    ALE=0;
    ALE=0;
    CLE=1;
    RE=1;
    WE=1;
    DBus=COMMAND; //WRITE COMMAND
    WE=0;
    WE=1;
    CLE=0;
    ALE=0;
    SFRPAGE = SFRPAGE_SAVE;

    }
    //------------------ 傳送地址------------------------------
    void Add_Latch_Cycle(uint ADDR ) //傳送地址,ADDR為頁(yè)地址,從addr頁(yè)第0字節(jié)開(kāi)始
    {
    uchar SFRPAGE_SAVE = SFRPAGE;
    SFRPAGE = CONFIG_PAGE;
    DBMODE= DBOUT;
    CLE=0;
    ALE=1;
    RE=1;
    WE=1;
    DBus=0; //A0-A7,column address
    WE=0;
    WE=1;
    DBus=(uchar)ADDR; //A9-A16 ,Row Address page address A12-A29
    WE=0;
    WE=1;
    DBus=(uchar)(ADDR>>8); //A17-A24,Row Address
    WE=0;
    WE=1;
    ALE=0;
    CLE=0;
    SFRPAGE = SFRPAGE_SAVE;
    }
    //讀狀態(tài),狀態(tài)正確時(shí)返回0,錯(cuò)誤時(shí)返回1
    uchar Status_Read(void)
    {
    uchar Status;
    Comm_Latch_Cycle(0x70);
    Status=Read_Byte();
    Status=Status & 0x01;
    return Status; //status=0 erease ok else failled
    }
    //從FLASH讀一個(gè)字節(jié)
    uchar Read_Byte(void) //read one bytefromflash
    {
    uchar Rdata;
    char SFRPAGE_SAVE = SFRPAGE;
    SFRPGCN=CONFIG_PAGE;
    DBMODE = DBIN; //Data Bus input mode
    DBus = 0xFF;
    ALE =0;
    CLE =0;
    RE =1;
    RE =0;
    Rdata =DBus;
    RE=1;
    SFRPAGE = SFRPAGE_SAVE;
    return(Rdata);
    }
    //------------------Block Erease------------------------------
    uchar Block_Erase(uint page_number) //
    {
    uchar SFRPAGE_SAVE = SFRPAGE;
    SFRPAGE = CONFIG_PAGE;
    DBMODE= DBOUT;
    Comm_Latch_Cycle(0x60);
    ALE=1;
    CLE=0;
    DBus=(uchar)page_number; //A9-A16
    WE=0;
    WE=1;
    DBus=(uchar)(page_number>>8); //A17-A24
    WE=0;
    WE=1;
    ALE=0;
    CLE=0;
    Comm_Latch_Cycle(0xD0);
    SFRPAGE = CONFIG_PAGE;
    RB = 1;
    while(!RB);
    SFRPAGE=SFRPAGE_SAVE;
    return Status_Read(); //status=1,Bad Block; Status = 0, Erease OK
    }


    關(guān)鍵詞: C8051F12XFLASH存儲(chǔ)

    評(píng)論


    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 紫金县| 敦煌市| 浙江省| 南城县| 宁津县| 遵化市| 南安市| 车致| 金门县| 修武县| 澄城县| 阿瓦提县| 内黄县| 日土县| 剑阁县| 晋宁县| 高青县| 寻乌县| 屏南县| 白银市| 惠东县| 漠河县| 新巴尔虎右旗| 桦甸市| 贵南县| 临漳县| 新密市| 临夏县| 桐乡市| 余江县| 如东县| 晋城| 阳山县| 青铜峡市| 久治县| 肇东市| 思茅市| 瑞丽市| 凤阳县| 龙口市| 建德市|