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

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

?? flash_write.c

?? C8051F單片機應用和液晶顯示器編程的例子
?? C
字號:
//-----------------------------------------------------------------------------
// Copyright (C) 2004 Silicon Laboratories, Inc.
//
// AUTH: JS
// DATE: 03 JUL 02
//
// This program flashes the green LED on the C8051F31x target board about 
// five times a second using the interrupt handler for Timer2.
//
// Target: C8051F31x
//
// Tool chain: KEIL Eval 'c'
//

//-----------------------------------------------------------------------------
// Includes
//-----------------------------------------------------------------------------
//OSC=24.5MHz
/* 
;                                C8051F310
;            KEY5    P0.1       1|---=---|32 P0.2 XTAL1
;            KEY6    P0.0       2|       |31 P0.3 XTAL2
;            GND                3|       |30 P0.4 KEY1
;            VDD                4|       |29 P0.5 KEY2
;            /RST/C2ACK         5|       |28 P0.6 CNVSTR KEY3
;            KEY7    P3.0(C2D)  6|       |27 P0.7 KEY4
;            CS2     P3.1       7|       |26 P1.0 D0
;            CS1     P3.2       8|       |25 P1.1 D1
;            RD      P3.3       9|       |24 P1.2 D2
;            WR      P3.4      10|       |23 P1.3 D3
;            RS      P2.7      11|       |22 P1.4 D4
;            MR_B    P2.6      12|       |21 P1.5 D5
;            MWE     P2.5      13|       |20 P1.6 D6
;            MRE     P2.4      14|       |19 P1.7 D7
;            MALE    P2.3      15|       |18 P2.0 LP
;            MCLE    P2.2      16|-------|17 P2.1 MCE
;              
*/
//=============================
#include <c8051f310.h>

//=============================

#define uchar unsigned char
#define uint unsigned int
//=============================
uchar xdata buffer[513];     //開辟頁緩存數組
uchar *pointer;              //建立數組指針
uchar raddrl; uchar raddrh;  //頁尋址的高、低位
uchar mydata;                //數據
//=============================
sbit         KEY4  =P0^7;
sbit           RD  =P3^3;
sbit           RS  =P2^7;
sbit           WR  =P3^4;
sbit          MR_B =P2^6;
sbit          MWE  =P2^5;
sbit          MRE  =P2^4;
sbit          MALE =P2^3;
sbit          MCLE =P2^2;
sbit          MCE  =P2^1;    
//================
sbit    LED  =P0^1;
//=================
uchar autorun;
//=========delay without key==========================================
void DelayX1ms(uchar count)
{
 uchar i,j,k;
 for(i=0;i<count;i++)
  for(j=0;j<40;j++)
   for(k=0;k<120;k++)
    {
     ;
    }
}
//=====================================================================
void DelayX10ms(uint count)
{
 uint i,j,k;
 for(i=0;i<count;i++)
  for(j=0;j<10;j++)
   for(k=0;k<120;k++)
    {
     ;
    }
}
//====================================================================
void Delay50us(uchar count)
{
 uchar i,j;
 for(j=0;j<count;j++)
   for(i=0;i<6;i++)
   {
    ;
    }
}
//=======================================================================
void key_wait(uint count)
{
 uint i,j,k;
 if(autorun==0)
  {
   for(i=0;i<count;i++)
   for(j=0;j<10;j++)
   for(k=0;k<120;k++)
    {
     if(KEY4!=1)
      {
        autorun=1;
        goto next;
      }
     ;
    }
  }
 else
  {
   while(1)
    {
     if(KEY4!=1)
      {
       for(i=0;i<100;i++)
       for(j=0;j<100;j++)
         {
            ;
         }
       goto next;
      }
    }
  }
 next:
 ;
}
//=============K9F5608U0A===============
//=============RESET====================
void reset(void)
{
 MCE=0;
 MR_B=1;
 MRE=1;
 MWE=1;
 MCLE=0;
 MALE=0;
 P1=0xff; 
 MCLE=1;
 MALE=0;
 MWE=0;
 MWE=0;
 MWE=0;
 MWE=1;
 MWE=1;
 MWE=1;
 MCLE=0;
 MALE=0;
 while(MR_B==0)
	{
	 ;
	}
}
//============命令輸出函數=================
void writecomd(unsigned char comd)
{ 
  P1=comd;
  MCLE=1;
  MALE=0;
  MWE=0;
  MWE=0;
  MWE=1;
  MWE=1;
  MCLE=0;
  MALE=0;
}
//============地址輸出函數====================
void writeaddr(uchar raddrl,uchar raddrh)
{ 
 P1=0x00;
 MCLE=0;
 MALE=1;
 MWE=0;
 MWE=0;
 MWE=1;
 MWE=1;
 P1=raddrl;
 MWE=0;
 MWE=0;
 MWE=1;
 MWE=1;
 P1=raddrh;
 MWE=0;
 MWE=0;
 MWE=1;
 MWE=1;
 MCLE=0;
 MALE=0;
}
//=============數據輸出函數=============
void writedata(void)
{ 
 P1= *pointer;
 MWE=0;
 MWE=0;
 MWE=1;
 MWE=1;
 pointer++;
}
//=============讀操作==================
uchar readsta(void)
{ 
 unsigned char soop;
 P1MDOUT=0x00;
 P1=0xff;
 DelayX1ms(20);
 MRE=0;
 MRE=0;
 soop=P1;
 MRE=1;
 P1MDOUT=0xff;
 return(soop);
}
//==============整塊擦除1塊=32pages 共2048塊====
uchar blockerase(uint block)
{
 unsigned char result;
 writecomd(0x60);
 block=block*32;
 P1=block&0x00ff;
 MCLE=0;
 MALE=1;
 MWE=0;
 MWE=0;
 MWE=1;
 MWE=1;
 P1=(block&0xff00)>>8;
 MWE=0;
 MWE=0;
 MWE=1;
 MWE=1;
 MCLE=0;
 MALE=0;
 writecomd(0xd0);
 while(MR_B==0)
	{
	 ;
	}
 writecomd(0x70);
 result=readsta();
 if((result&0x01)== 1)
  {
   return(1);
  }//出錯處理
 else
   return(0);
}
//==============整頁寫入的詳細代碼======
uchar pagewrite(uchar raddrl,uchar raddrh)
{ 
 int i;
 unsigned char result;
 pointer = &buffer;
 writecomd(0x00);//必須指出開始地址
 writecomd(0x80);
 writeaddr(raddrl,raddrh);
 for(i=0;i<512;i++)
   {
    writedata();
   }
 writecomd(0x10); 
 while(MR_B==0)
	{
	 ;
	}
 writecomd(0x70);
 result=readsta();
 if((result&0x01) == 1)
  {
   return(1);
  }//出錯處理
 else
   return(0);
 }
//===============
//-----------------------------------------------------------------------------
// SYSCLK_Init
//-----------------------------------------------------------------------------
//
// This routine initializes the system clock to use the internal 24.5MHz / 8 
// oscillator as its clock source.  Also enables missing clock detector reset.
//
void SYSCLK_Init (void)
{
   OSCICN = 0x83;                         // IOSCEN IFRDY 0 0 0 0 IFCN1 IFCN0 (sfr OSCICN=0xB2;內部振蕩器控制寄存器) 
                                          // IOSCEN=1 內部振蕩器使能;IFRDY=0/1 內部振蕩器未運行在編程頻率/內部振蕩器按編程頻率運行.
                                          // IFCN1 IFCN0=00~11  8分頻 4 2 1分頻.

   RSTSRC = 0x04;                         // 0 FERROR C0RSEF SWRSF WDTRSF MCDRSF PORSF PINRSF (sfr RSTSRC=0xEF;復位源寄存器) 
                                          // MCDRSF=0/1 禁止時鐘丟失檢測器/使能時鐘丟失檢測器;檢測到時鐘丟失條件時觸發復位.
                                       
}

//-----------------------------------------------------------------------------
// PORT_Init
//-----------------------------------------------------------------------------
//
// Configure the Crossbar and GPIO ports.
// P3.3 - LED (push-pull)
//
void PORT_Init (void)
{
   PCA0MD &= ~0xc0;                      // CIDL WDTE WDCLK 0 CPS2 CPS1 CPS0 ECF (sfr PCA0MD=0xD9;PCA0 MODE)
                                         // CIDL=0/1 當系統控制器處于空閑方式時,PCA 繼續正常工作/當系統控制器處于空閑方式時,PCA 停止工作.
                                         // WDTE=0/1 看門狗定時器被禁止/PCA 模塊4 被用作看門狗定時器.
                                         // WDCLK=0/1 對看門狗定時器使能位解鎖/鎖定看門狗定時器使能位(當WDCLK 被置‘1’時,在發生下一次系統復位之前將不能禁止WDT).
                                         // CPS2-CPS0=000 系統時鐘的12分頻 001 系統時鐘的4 分頻 010 定時器0 溢出 011 ECI 負跳變(最大速率= 系統時鐘頻率/4)100 系統時鐘 101 外部時鐘的8 分頻.
                                         // ECF=0/1 禁止CF中斷/當CF(PCA0CN.7)被置位時,允許PCA 計數器/定時器溢出的中斷請求.
                                         // disable watchdog timer
                                         // WDTE = 0 (clear watchdog timer enable)
	                                       
   //========================================================  
   XBR0     = 0x00;                       // CP1AE CP1E CP0AE CP0E SYSCKE SMB0E SPI0E URT0E (sfr XBR0=0xE1;端口I/O 交叉開關寄存器0)
                                          // no digital peripherals selected

   XBR1     = 0x40;                       // WEAKPUD XBARE T1E T0E ECIE PCA0ME(3位) (sfr XBR1=0xE2;端口I/O 交叉開關寄存器1) 
                                          // WEAKPUD=0 弱上拉使能;XBARE=1 交叉開關使能;T1E=0 T1不連到端口引腳;T0E=0 T0不連到端口引腳.
                                          // ECIE(PCA0 外部計數輸入使能位)=0 ECI不連到端口引腳;PCA0ME=000 所有的PCA I/O 都不連到端口引腳.
                                          // Enable crossbar and weak pull-ups

   P3MDOUT |= 0x1e;                       // 000 P3MDOUT[4:0](P3.4–P3.0 輸出方式配置位) (sfr P3MDOUT=0xA7;端口3輸出方式寄存器)
                                          // P3MDOUT[4:0]=0/1 對應的P3.n 輸出為漏極開路/對應的P3.n 輸出為推挽方式.
                                          // enable LED as a push-pull output

   P2MDOUT |= 0xff;
   P1MDOUT |= 0xff;
   P0MDOUT |= 0x02;
   P1=0xff;
}

//-----------------------------------------------------------------------------
/*初始化*/
//========================================
uchar xdata ddata[]={
0x42,
};
//-----------------------------------------------------------------------------
// MAIN Routine
//-----------------------------------------------------------------------------
void main (void) 
{                                        
 uint i,j;
 uchar state;
 autorun=0;             
 KEY4=1;
 SYSCLK_Init ();                        // Initialize system clock to 24.5MHz
 PORT_Init ();                          // Initialize crossbar and GPIO
 //===========================
 LED=0;
 reset();
 //========Erase==============
 /*for(i=0;i<2048;i++)
 {
  state=blockerase(i);
 }*/
 //========Page write=========

 for(j=0;j<32;j++)
  {
   for(i=0;i<512;i++)
   {
    buffer[i]=0x00;
   }
   state=pagewrite(j,0);
  }
 //===========================  
 LED=1;
 while(1)
 {
  ;
 } 
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区在线| 欧美性受极品xxxx喷水| 久久99精品国产| 麻豆成人91精品二区三区| 天天综合天天做天天综合| 午夜影院久久久| 性做久久久久久| 青娱乐精品视频| 麻豆91在线播放| 狠狠狠色丁香婷婷综合久久五月| 久久激情五月婷婷| 老司机午夜精品| 韩国女主播成人在线观看| 国产麻豆精品久久一二三| 国产精品88av| 99久久婷婷国产| 色婷婷久久一区二区三区麻豆| 在线免费观看日本欧美| 欧美美女直播网站| 日韩女优视频免费观看| 国产日韩欧美精品综合| 亚洲三级视频在线观看| 亚洲成人自拍网| 免费成人在线视频观看| 久久国产成人午夜av影院| 国产麻豆精品久久一二三| 成人污视频在线观看| 色婷婷亚洲综合| 日韩三级视频在线观看| 亚洲国产精品99久久久久久久久| 亚洲欧洲中文日韩久久av乱码| 五月综合激情日本mⅴ| 激情欧美日韩一区二区| 成人免费视频caoporn| 久久久久亚洲蜜桃| 国产精品久久久久久久久久免费看| 亚洲男人都懂的| 视频一区二区欧美| 国产超碰在线一区| 在线观看成人免费视频| 精品三级在线观看| 国产精品久久三| 日韩国产精品久久久| 国产成人在线视频免费播放| 在线免费亚洲电影| 2020国产精品| 亚洲第一会所有码转帖| 国产成人免费xxxxxxxx| 欧美日韩一区中文字幕| 国产欧美一区二区精品性| 亚洲五月六月丁香激情| 国产精品一级在线| 欧美日韩久久一区| 中文乱码免费一区二区| 爽爽淫人综合网网站| 成人三级伦理片| 欧美一区二区三区免费大片| 亚洲柠檬福利资源导航| 国产一区二区三区日韩| 欧美精品久久久久久久多人混战| 国产日韩精品一区二区浪潮av| 亚洲一区二区三区三| 高清久久久久久| 91精品国产综合久久小美女| 亚洲免费在线播放| 国产美女视频91| 日韩欧美一二三四区| 亚洲自拍都市欧美小说| 成人毛片视频在线观看| 日韩精品资源二区在线| 亚洲成人av免费| 色综合色综合色综合| 中文字幕巨乱亚洲| 久久97超碰国产精品超碰| 欧美制服丝袜第一页| 《视频一区视频二区| 国产福利91精品一区二区三区| 日韩一区二区在线观看视频 | 久久久三级国产网站| 亚洲一区二区三区中文字幕在线| 成人高清av在线| 久久九九全国免费| 免费在线观看不卡| 欧美日韩国产精品成人| 亚洲女与黑人做爰| www.日韩精品| 日本一区二区三级电影在线观看| 久久国产精品99久久人人澡| 欧美欧美欧美欧美首页| 午夜在线成人av| 欧美日韩高清影院| 亚洲成a天堂v人片| 欧美日韩一区二区在线观看视频| 亚洲午夜在线电影| 欧美伊人久久久久久久久影院| 亚洲精品免费电影| 日本久久精品电影| 亚洲专区一二三| 欧美日韩和欧美的一区二区| 一区二区三区蜜桃| 欧美系列亚洲系列| 亚洲一区二区三区视频在线| 欧美主播一区二区三区| 亚洲高清免费观看高清完整版在线观看 | 欧美最猛性xxxxx直播| 亚洲欧美日本在线| 色狠狠综合天天综合综合| 亚洲美女视频在线观看| 色播五月激情综合网| 亚洲一区在线观看免费 | 日韩限制级电影在线观看| 日日骚欧美日韩| 日韩午夜精品电影| 精品一区二区三区欧美| 久久久久久久久久久电影| 国产91精品一区二区麻豆亚洲| 中文一区在线播放| 91香蕉视频在线| 一级中文字幕一区二区| 在线播放一区二区三区| 极品美女销魂一区二区三区免费 | 奇米精品一区二区三区四区| 欧美xxxx老人做受| 成人一区二区三区中文字幕| 国产精品色一区二区三区| 色综合久久88色综合天天免费| 亚洲电影视频在线| 日韩欧美一区二区三区在线| 韩国精品一区二区| 《视频一区视频二区| 欧美日韩免费不卡视频一区二区三区| 日韩激情中文字幕| 国产欧美视频一区二区| 色妹子一区二区| 蜜桃免费网站一区二区三区| 欧美极品美女视频| 欧美吻胸吃奶大尺度电影| 六月丁香婷婷久久| 中文字幕综合网| 在线综合亚洲欧美在线视频| 国产精品99久久久| 亚洲风情在线资源站| 精品乱人伦一区二区三区| 成人av资源网站| 日韩高清国产一区在线| 国产精品日产欧美久久久久| 欧美色视频一区| 国产精品自拍毛片| 亚洲自拍偷拍综合| 国产三区在线成人av| 欧美日韩国产综合一区二区| 国产成人精品免费| 亚洲va欧美va国产va天堂影院| 精品国精品国产尤物美女| 色av综合在线| 国产成人在线观看| 天天色天天操综合| 国产精品二三区| 精品国产一区久久| 欧美性生活大片视频| 国产精品主播直播| 亚洲 欧美综合在线网络| 国产精品青草久久| 欧美一二区视频| 欧美在线影院一区二区| 国产成人一级电影| 麻豆91在线播放| 亚洲第一成年网| 成人免费在线观看入口| 精品日韩一区二区三区免费视频| 色av综合在线| 国产盗摄女厕一区二区三区| 秋霞午夜av一区二区三区| 亚洲综合一区在线| 国产精品乱码人人做人人爱| 精品国产一区二区亚洲人成毛片 | 亚洲激情网站免费观看| 久久综合国产精品| 337p亚洲精品色噜噜狠狠| 99re视频精品| 成人激情小说网站| 国产一区福利在线| 日本网站在线观看一区二区三区| 亚洲美腿欧美偷拍| 亚洲日本丝袜连裤袜办公室| 国产精品欧美久久久久无广告| 亚洲精品一区二区三区99| 91精品国产综合久久小美女| 欧美日韩精品欧美日韩精品一 | 亚洲精品久久久蜜桃| 欧美国产丝袜视频| 国产午夜亚洲精品午夜鲁丝片| 欧美成人bangbros| 欧美一区二区三区四区高清| 欧美精品在欧美一区二区少妇| 欧美丝袜丝nylons| 欧美日韩小视频| 欧美久久久久久久久久| 欧美日韩情趣电影| 337p亚洲精品色噜噜噜|