久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

新唐M051 ISP(LDROM、FMC,相當于8位機EEPROM操作)程序

作者:huqin   來源:本站原創   點擊數:  更新時間:2014年09月01日   【字體:

發一個M051單片機的 ISP操作程序(LDROM、FMC,相當于8位機EEPROM操作)

#include "SmartM_M0.h"
#define DEBUGMSG printf

#define PAGE_SIZE               512
#define DATAFLASH_START_ADDRESS 0x0001F000
#define DATAFLASH_SIZE          0x00001000
#define RW_SIZE                 0x20
STATIC UINT8 g_unDataFlashWRBuf[10];    //全局讀寫緩沖區
/****************************************
*函數名稱:ISPTriger
*輸    入:無
*輸    出:無
*功    能:ISP執行
******************************************/
VOID ISPTriger(VOID)
{
    ISPTRG |= ISPGO;
    while((ISPTRG&ISPGO) == ISPGO);
}
/****************************************
*函數名稱:ISPEnable
*輸    入:無
*輸    出:無
*功    能:ISP使能
******************************************/
VOID ISPEnable(VOID)
{
    Un_Lock_Reg();
    ISPCON |= ISPEN;
}
/****************************************
*函數名稱:ISPDisable
*輸    入:無
*輸    出:無
*功    能:ISP禁用
******************************************/
VOID ISPDisable(VOID)
{
    Un_Lock_Reg();
    ISPCON &= ~ISPEN;
}
/****************************************
*函數名稱:DataFlashRWEnable
*輸    入:無
*輸    出:無
*功    能:數據區讀寫使能
******************************************/
VOID DataFlashRWEnable(VOID)
{
    Un_Lock_Reg();
    ISPCON |= LDUEN;
}
/****************************************
*函數名稱:DataFlashErase
*輸    入:unPage 頁地址
*輸    出:無
*功    能:數據區擦除
******************************************/
VOID DataFlashErase(UINT32 unPage)
{
    ISPEnable();
    DataFlashRWEnable();
    ISPCMD = PAGE_ERASE;
    ISPADR = (unPage*PAGE_SIZE+DATAFLASH_START_ADDRESS);
    ISPTriger();
    ISPDisable();       
}
/****************************************
*函數名稱:DataFlashWrite
*輸    入:pucBuf 寫數據緩沖區
    unSize 寫數據大小
*輸    出:無
*功    能:數據區寫
******************************************/
VOID DataFlashWrite(UINT8 *pucBuf,UINT32 unSize)//unSize要為4的倍數
{
    UINT32 i;   
    ISPEnable();
    DataFlashRWEnable();
    ISPCMD = PROGRAM;
 for(i=0; i<unSize; i+=4)
 {
     ISPADR = (i*4+DATAFLASH_START_ADDRESS);
     ISPDAT = *(UINT32 *)(pucBuf+i);
     ISPTriger();    
 }
    ISPDisable();       
}
/****************************************
*函數名稱:DataFlashRead
*輸    入:pucBuf 讀數據緩沖區
    unSize 讀數據大小
*輸    出:無
*功    能:數據區讀
******************************************/
VOID DataFlashRead(UINT8 *pucBuf,UINT32 unSize)
{
    UINT32 i;
    ISPEnable();
    DataFlashRWEnable();
    ISPCMD = READ;
    for(i=0; i<unSize; i+=4)
    {
     ISPADR = (i*4+DATAFLASH_START_ADDRESS);
        ISPTriger();
  *(UINT32 *)(pucBuf+i)=ISPDAT;
    }    
    ISPDisable();       
}
/****************************************
*函數名稱:main
*輸    入:無
*輸    出:無
*功    能:函數主體
******************************************/
INT32 main(VOID)
{
  UINT32 i;            
  PROTECT_REG         //ISP下載時保護FLASH存儲器
  (
   PWRCON |= XTL12M_EN;      //默認時鐘源為外部晶振
   while((CLKSTATUS & XTL12M_STB) == 0);   //等待12MHz時鐘穩定 
  
   CLKSEL0 = (CLKSEL0 & (~HCLK)) | HCLK_12M; //設置外部晶振為系統時鐘 
  ) 
  UartInit(12000000,9600);     //串口0波特率為9600
  while(1)
  {
      //擦除第0頁
         DataFlashErase(0);      
   DEBUGMSG("\r\nData Flash Write:\r\n");
   //初始化緩沖區,所有數值全為0x11
   memset(g_unDataFlashWRBuf,0x11,sizeof(g_unDataFlashWRBuf));  
   for(i=0; i<sizeof(g_unDataFlashWRBuf); i++)
   {
       DEBUGMSG("%02X ",g_unDataFlashWRBuf[i]);
   }
   //數據區寫
         DataFlashWrite(g_unDataFlashWRBuf,sizeof(g_unDataFlashWRBuf));
   DEBUGMSG("\r\nData Flash Read:\r\n");
   //清零緩沖區
   memset(g_unDataFlashWRBuf,0,sizeof(g_unDataFlashWRBuf));  
   //數據區讀
         DataFlashRead(g_unDataFlashWRBuf,sizeof(g_unDataFlashWRBuf));
   for(i=0; i<sizeof(g_unDataFlashWRBuf); i++)
   {
       DEBUGMSG("%02X ",g_unDataFlashWRBuf[i]);
   } 
  
   Delayms(500); 
  }
}

 
關閉窗口
主站蜘蛛池模板: 日韩视频福利 | 久久婷婷色 | 综合网中文字幕 | 国产人久久人人人人爽 | 欧美精品一区二区三区蜜桃视频 | 国产精品www | 国产成人免费视频网站高清观看视频 | 亚洲精品乱 | 国产精品免费在线 | 国产精品视频中文字幕 | 久久精品 | 精品久久久久久亚洲精品 | 国产999精品久久久 精品三级在线观看 | 97视频在线观看网站 | 中文在线一区二区 | 亚洲黄色在线免费观看 | www.操.com | 日韩成人在线电影 | 噜噜噜噜狠狠狠7777视频 | 免费性视频 | 国产农村一级国产农村 | 欧美日韩亚洲一区 | 国产区在线观看 | 欧美日韩高清在线观看 | 亚洲一区二区三区免费在线观看 | 国产精品日日摸夜夜添夜夜av | 91久久精品日日躁夜夜躁欧美 | 嫩草视频在线 | 精品国产黄a∨片高清在线 成人区精品一区二区婷婷 日本一区二区视频 | 日本人做爰大片免费观看一老师 | 成人高潮片免费视频欧美 | 99re6在线| 超碰一区二区 | av网站免费 | 国产精品欧美一区二区 | 欧美成人精品一区二区男人看 | 日韩久久精品电影 | 精品国产视频 | 91精品国产91久久久久久密臀 | 亚洲精品一区国语对白 | 91视频88av |