• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      C8051F120代替C8051F020的應(yīng)用實(shí)現(xiàn)*

      2010-06-13 03:30:16霍彩虹徐芳萍
      關(guān)鍵詞:波特率存儲(chǔ)空間寄存器

      霍彩虹,徐芳萍

      (河南 新鄉(xiāng) 760廠,河南 新鄉(xiāng) 453009)

      C8051F[1]系列單片機(jī)是由 Silicon Laboratory 公司生產(chǎn)的具有CIP-51內(nèi)核高性能微控制器。其CIP-51與MCS-51指令集完全兼容,具有標(biāo)準(zhǔn)的8052外設(shè)部件。CIP-51采用流水線結(jié)構(gòu),與標(biāo)準(zhǔn)的8051結(jié)構(gòu)相比指令執(zhí)行速度有很大的提高,具有JTAG接口,可在系統(tǒng)編程,程序調(diào)試與下載都非常方便。另外,C8051F是一種混合信號(hào)微控制器,片上不但具有SPI、I2C等接口,還集成了ADC和DAC,使用起來(lái)更加簡(jiǎn)便。這些優(yōu)越的性能使C8051F系列單片機(jī)一經(jīng)推出便迅速在國(guó)內(nèi)得到普及。C8051F020[2]是其中最常用的一種,已被廣泛應(yīng)用到通信、電子及工業(yè)監(jiān)控等領(lǐng)域。但是隨著這些電子產(chǎn)品的不斷智能化、復(fù)雜化,程序代碼長(zhǎng)度和數(shù)據(jù)空間越來(lái)越大,而C8051F020的存儲(chǔ)空間只有64KB。如果產(chǎn)品需要升級(jí)增加新功能,面臨的最大問(wèn)題之一,則是64KB存儲(chǔ)空間滿足不了程序使用。

      對(duì)于一個(gè)正在被使用的產(chǎn)品來(lái)說(shuō),通過(guò)改動(dòng)硬件實(shí)現(xiàn)升級(jí)的方式顯然是不太合適的。那么能否從C8051F系列單片機(jī)中找到一款存儲(chǔ)空間大、引腳完全兼容的器件來(lái)代替C8051F020呢?C8051F120正是解決這一難題的理想選擇。

      1 C8051F120與C8051F020的區(qū)別

      C8051F120[3]是一款與 C8051F020 引腳完全兼容,F(xiàn)LASH存儲(chǔ)空間達(dá)到128KB,片上外部RAM達(dá)到8KB的單片機(jī),其性能比 C8051F020更優(yōu)越。C8051F120與C8051F020的主要區(qū)別如下:

      1)C8051F120與C8051F020雖然引腳兼容但代碼卻不同,CIP-51實(shí)現(xiàn)了 SFR分頁(yè)機(jī)制,C8051F120使用5個(gè)SFR頁(yè):0、1、2、3和F。使用特殊功能寄存器頁(yè)選擇寄存器SFRPAGE來(lái)選擇SFR頁(yè)。例如要訪問(wèn)異步串口0(UART0)的控制寄存器SCON0,首先需對(duì)SFRPAGE進(jìn)行設(shè)置,使其位于第0頁(yè),即SFRPAGE=0,然后才能對(duì)SCON0進(jìn)行訪問(wèn)。

      2)C8051F120內(nèi)部有一個(gè)精確的24.5MHz的內(nèi)部振蕩器,同時(shí)內(nèi)部還有1個(gè)鎖相環(huán)PLL,通過(guò)使用這個(gè)PLL,可使C8051F120工作頻率高達(dá)100MHz。

      3)C8051F120的FLASH存儲(chǔ)器采用代碼分頁(yè)(Code Banking),共4頁(yè),每頁(yè)32KB。其FLASH分組結(jié)構(gòu)如圖1所示,在執(zhí)行FLASH寫、讀、擦除操作時(shí),PSBANK寄存器(見(jiàn)表1)中的COBANK位決定三個(gè)高地址FLASH塊中的哪一個(gè)被映射到地址范圍0x08000~0x0FFFF。

      COBANK:常量操作存儲(chǔ)塊選擇位,分別指向BANK 0-3;IFBANK:取指操作存儲(chǔ)塊選擇位,分別指向BANK 0-3

      4)C8051F120的外設(shè)在結(jié)構(gòu)上與C8051F020也有部分區(qū)別,如UART0的波特率設(shè)置,通過(guò)對(duì)寄存器SSTA0的配置可選擇定時(shí)器1、2、3或4作為波特率發(fā)生源,而URAT1具有增強(qiáng)型的波特率發(fā)生器,由定時(shí)器1作為其波特率發(fā)生源,因此在對(duì)原C8051F020的程序進(jìn)行更改時(shí)應(yīng)特別注意這些細(xì)節(jié)。

      2 利用Keil C51工具實(shí)現(xiàn)大容量程序的存儲(chǔ)

      Keil C51[5]工具是目前各種51系列單片機(jī)最通用的編譯工具軟件,它支持代碼分頁(yè),可以管理一個(gè)公共的區(qū)域和32個(gè)代碼頁(yè),每個(gè)最大可達(dá)64KB,從而具備共2MB的代碼切換空間。如果沒(méi)有相應(yīng)的代碼分頁(yè)設(shè)置,Keil C51將無(wú)法編輯超過(guò)64KB地址空間的程序。一般情況下,用戶運(yùn)行的程序都在FLASH的0X0000~0XFFFF地址空間中。Keil C5l代碼分頁(yè)使用的是Bank Switching技術(shù)。使用Bank Switching技術(shù)可生成代碼長(zhǎng)度和數(shù)據(jù)空間大于64 KB的目標(biāo)程序,它的使用彌補(bǔ)了C8051F系列單片機(jī)在地址空間方面的不足,拓展了它的應(yīng)用范圍。

      2.1 Bank Switching技術(shù)介紹

      具體實(shí)現(xiàn)Bank Switching技術(shù)的是KeilC#5l中的分組連接定位器BL5l。Keil C5l語(yǔ)言源程序經(jīng)過(guò)C5l編譯器編譯后,生成浮動(dòng)地址的目標(biāo)代碼文件。這種浮動(dòng)地址的目標(biāo)代碼必須經(jīng)過(guò)連接定位器BL5l的連接和定位,生成具有絕對(duì)地址的目標(biāo)代碼,才能寫入程序存儲(chǔ)器正常運(yùn)行。BL51支持分組連接定位,允許生成代碼大于64 KB的目標(biāo)程序,可以在具有適當(dāng)硬件擴(kuò)展邏輯的系統(tǒng)中進(jìn)行代碼組之間的切換,以達(dá)到正常運(yùn)行的目的。目前版本的BL5l可以管理最多64個(gè)代碼組,每個(gè)代碼組最大為64KB。

      2.2 Bank Switching技術(shù)在C8051F120中的應(yīng)用

      C8051F120的FLASH存儲(chǔ)空間為128K,采用代碼分頁(yè),共分為4頁(yè),每頁(yè)32KB,把主程序放在公共代碼區(qū)(Common Area),復(fù)位和中斷向量、代碼常數(shù)、C51中斷函數(shù)、組切跳轉(zhuǎn)表、庫(kù)函數(shù)這些代碼必須安排在公共代碼區(qū)域。用C8051F120代替C8051F020只需對(duì)程序進(jìn)行修改,C8051F120采用了代碼分頁(yè),因此必須將原來(lái)的程序進(jìn)行重新劃分,合理安排存儲(chǔ)空間。由于筆者所設(shè)計(jì)的程序較為復(fù)雜,不易舉例說(shuō)明,下面給出一個(gè)結(jié)構(gòu)簡(jiǎn)單的示例作說(shuō)明,利用Keil C51進(jìn)行程序編譯的具體操作步驟如下[4]:

      1)在菜單 Project選擇中選擇Option for Target“Target”選擇項(xiàng),按圖2所示進(jìn)行項(xiàng)目配置。

      圖2 Option for Target“Target”配置

      由于C8051F120有4頁(yè)分區(qū),每頁(yè)32KB,所以選擇“Code Banking”,在 Banks中寫入 4,在 Bank Area中寫入地址范圍為0x80000~0xffff。

      2)新建工程項(xiàng)目,將文件 boot.c,function1.c,function2.c和function3.c依次加入到該工程中,其中boot.c文件,作為公用代碼段程序,main函數(shù)是分別調(diào)用不同分頁(yè)區(qū)的程序,程序代碼如下:

      下面,我們將這些文件指定到不同分區(qū)中。用右鍵點(diǎn)擊樹狀列表中的 boot.c,選中 option for file“boot.c”,在 properties的 code bank選項(xiàng)中,選擇 common項(xiàng),如圖3所示:此項(xiàng)表明boot.c將被編譯到代碼的公用代碼段中,在所有分頁(yè)代碼的起始部分被復(fù)制。與此類似,我們將 function1.c,function2.c和 function3.c分別指定到bank1,bank2,和bank3中。

      圖3 code bank配置

      將keilc51libl51_bank.a51復(fù)制到項(xiàng)目目錄下,并加入項(xiàng)目中,在l51_bank.a51中,主要修改以下內(nèi)容[3]:

      3)在菜單 Project選擇中選擇 Option for Target“Output”選擇項(xiàng),按圖4所示進(jìn)行項(xiàng)目配置。

      圖4 Option for Target“Output”配置圖

      4)編譯該項(xiàng)目,keil c編譯器將生成1個(gè)project.M51文件,檢查該文件可驗(yàn)證各個(gè)文件的BANK分配情況。同時(shí),編譯后會(huì)產(chǎn)生 project.H01、project.H02和project.H03這3個(gè)hex文件,通過(guò)下載器可將此3個(gè)文件按照指定的代碼空間分別下載到C8051F120的各個(gè)BANK空間段中。

      3 結(jié)語(yǔ)

      采用Keil C51的代碼分頁(yè)技術(shù)——Bank Switching技術(shù),可以有效地解決大容量程序代碼和數(shù)據(jù)在C8051F120中的存儲(chǔ)問(wèn)題。當(dāng)C8051F020系統(tǒng)中的Flash存儲(chǔ)空間不能滿足需要時(shí),可以直接利用C8051F120來(lái)替代,這種解決方案改動(dòng)簡(jiǎn)單、技術(shù)可行,是C8051F020升級(jí)使用最為有效的方法之一。同時(shí)Keil C51的代碼分頁(yè)技術(shù)也使得C8051F系列單片機(jī)的應(yīng)用領(lǐng)域更為廣闊。

      [1]潘琢金,孫德龍,夏秀峰.C8051F單片機(jī)應(yīng)用解析[M].北京:北京航空航天大學(xué)出版社,2002.

      [2]Silicon Laboratories.C8051F020/1/2/3 Mixed - Signal ISP FLASH MCU Family[EB/OL].http://www.xhl.com.cn/sjsc/sjsc/sjscdetail:asp?sid=21,2005,11.

      [3]Silicon Laboratories.C8051F120/1/2/3 High - Speed Mixed - Signal ISP FLASH MCU[EB/OL].http://www.xhl.com.cn/sjsc/sjsc/sjscdetail:asp?sid=33,2005,11.

      [4]Silicon Laboratories.CODE BANKING USING THE KEIL 8051 TOOLS[EB/OL].http://www.xhl.com.cn/xhl/downfile/e_AN30.pdf,2005.11.

      [5]Keil Software.Getting Started with μVision2[EB/OL].2001.

      猜你喜歡
      波特率存儲(chǔ)空間寄存器
      基于多種群協(xié)同進(jìn)化算法的數(shù)據(jù)并行聚類算法
      蘋果訂閱捆綁服務(wù)Apple One正式上線
      CAN 總線波特率自適應(yīng)程序設(shè)計(jì)
      智能制造(2020年5期)2020-07-03 06:24:00
      Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
      用好Windows 10保留的存儲(chǔ)空間
      基于FPGA的異步串行通信波特率容錯(cuò)設(shè)計(jì)
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      C*Core芯片SCI串口波特率容限優(yōu)化
      高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
      一種可重構(gòu)線性反饋移位寄存器設(shè)計(jì)
      安新县| 台江县| 营口市| 阿荣旗| 科技| 河津市| 溧水县| 广宗县| 鸡泽县| 丰原市| 镇巴县| 平湖市| 赣州市| 墨脱县| 松溪县| 温泉县| 黑龙江省| 剑河县| 申扎县| 墨脱县| 格尔木市| 乌拉特后旗| 德保县| 白山市| 海宁市| 古丈县| 满洲里市| 安乡县| 河北区| 上饶市| 建阳市| 马山县| 安宁市| 宁河县| 河西区| 通城县| 房产| 综艺| 苏尼特右旗| 礼泉县| 中山市|