亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        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ǔ)空間滿(mǎn)足不了程序使用。

        對(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寫(xiě)、讀、擦除操作時(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地址空間的程序。一般情況下,用戶(hù)運(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)代碼,才能寫(xiě)入程序存儲(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中寫(xiě)入 4,在 Bank Area中寫(xiě)入地址范圍為0x80000~0xffff。

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

        下面,我們將這些文件指定到不同分區(qū)中。用右鍵點(diǎn)擊樹(shù)狀列表中的 boot.c,選中 option for file“boot.c”,在 properties的 code bank選項(xiàng)中,選擇 common項(xiàng),如圖3所示:此項(xiàng)表明boot.c將被編譯到代碼的公用代碼段中,在所有分頁(yè)代碼的起始部分被復(fù)制。與此類(lèi)似,我們將 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ǔ)空間不能滿(mǎn)足需要時(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ù)并行聚類(lèi)算法
        蘋(píng)果訂閱捆綁服務(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ì)
        白浆国产精品一区二区| 久久久久久免费毛片精品| 亚洲最大天堂无码精品区| 亚洲美女影院| 亚洲欧美日韩精品久久亚洲区色播| 亚洲国产高清在线视频| 国产在线视频一区二区三区| 国产影片一区二区三区| 麻豆婷婷狠狠色18禁久久| 天天做天天爱天天爽综合网| 乱子真实露脸刺激对白| 黑人巨大亚洲一区二区久| 亚洲一区二区三区精品视频| 中文字幕无码成人片| 久久精品人人做人人综合| 国产不卡一区二区三区免费视| 国产91AV免费播放| 亚洲高清激情一区二区三区| 久久夜色国产精品噜噜亚洲av| 日韩国产人妻一区二区三区| 女邻居的大乳中文字幕| 精品无码AⅤ片| 精品少妇后入一区二区三区| 亚洲一区二区蜜桃视频| 国语自产视频在线| 亚洲色欲色欲大片www无码| 亚洲视频天堂| 最近中文字幕一区二区三区| 国产一区二区三区在线视频观看| 久热国产vs视频在线观看| 欧美大香线蕉线伊人久久| 久久尤物av天堂日日综合| 亚洲精品乱码久久麻豆| 免费av一区二区三区| 欧美人与动人物牲交免费观看| 无码丰满熟妇浪潮一区二区av| 国产丝袜长腿美臀在线观看| 韩日午夜在线资源一区二区| 五月天激情小说| 午夜在线观看有码无码| 亚洲一二三四五中文字幕|