新聞中心

F020基礎(chǔ)知識(shí)

作者: 時(shí)間:2016-11-09 來(lái)源:網(wǎng)絡(luò) 收藏
25M64kflash4352:40969(片外)+256(片內(nèi))RAM

每個(gè)端口引腳的輸出方式都可被配置為漏極開(kāi)路或推挽方式,缺省狀態(tài)為漏極開(kāi)路。(缺省Pn=0xff)
在推挽方式,向端口數(shù)據(jù)寄存器中的相應(yīng)位寫(xiě)邏輯‘0’將使端口引腳被驅(qū)動(dòng)到GND,寫(xiě)邏輯‘1將使端口引腳被驅(qū)動(dòng)到VDD。
在漏極開(kāi)路方式,向端口數(shù)據(jù)寄存器中的相應(yīng)位寫(xiě)邏輯‘0’將使端口引腳被驅(qū)動(dòng)到GND,寫(xiě)邏輯‘1’將使端口引腳處于高阻狀態(tài)(注:必須禁止弱上拉,內(nèi)部有弱上拉)。

通過(guò)設(shè)置輸出方式為“漏極開(kāi)路”并向端口數(shù)據(jù)寄存器中的相應(yīng)位寫(xiě)‘1置為數(shù)字輸入。例如,設(shè)置P3MDOUT.7為邏輯‘0’并設(shè)置P3.7為邏輯‘1‘即可將P3.7配置為數(shù)字輸入

FLASH存儲(chǔ)器除了用于存儲(chǔ)程序代碼之外還可以用于非易失性數(shù)據(jù)存儲(chǔ)。這就允許在程序運(yùn)行時(shí)計(jì)算和存儲(chǔ)類(lèi)似標(biāo)定系數(shù)這樣的數(shù)據(jù)。數(shù)據(jù)寫(xiě)入用MOVX指令,讀出用MOVC指令。

MCU的FLASH存儲(chǔ)器中有一個(gè)附加的128字節(jié)的扇區(qū),可用于非易失性數(shù)據(jù)存儲(chǔ)。然而它較小的扇區(qū)容量使其尤其適于作為通用的非易失性臨時(shí)存儲(chǔ)器。盡管FLASH存儲(chǔ)器可以每次寫(xiě)一個(gè)字節(jié),但必須首先擦除整個(gè)扇區(qū)。若要修改一個(gè)多字節(jié)數(shù)據(jù)集中的某一個(gè)字節(jié),數(shù)據(jù)集必須被移動(dòng)到臨時(shí)存儲(chǔ)區(qū)域。128字節(jié)的扇區(qū)規(guī)模使數(shù)據(jù)更新更加容易,可以不浪費(fèi)程序存儲(chǔ)器或RAM空間。
該128字節(jié)的扇區(qū)在64K字節(jié)FLASH存儲(chǔ)器中是雙映射的;它的地址范圍是從0x1000到0x1007F。該128B扇區(qū)是雙映射的,其邏輯地址為0x00-0x7F(該128字節(jié)無(wú)法通過(guò)JTAG讀出或?qū)懭耄翆?xiě)整片CPU時(shí),會(huì)將該區(qū)域的數(shù)據(jù)擦除),為了訪問(wèn)該扇區(qū),PSCTL寄存器中的SFLE位必須被設(shè)置為邏輯‘1’。該扇區(qū)不能用于存儲(chǔ)程序代碼。

指令是以系統(tǒng)時(shí)鐘周期為單位,而不像51單片機(jī)以機(jī)器周期(12×系統(tǒng)時(shí)鐘周期)為單位,速度大大提高

C8051F020低端口(P0. P1. P2和P3)既可以按位尋址也可以按字節(jié)尋址。高端口(P4. P5. P6和P7)只能按字節(jié)尋址。

對(duì)于附加128字節(jié)的flash扇區(qū),每次擦除128個(gè)字節(jié)
對(duì)于其他flash扇區(qū),每次擦除512個(gè)字節(jié)

ADC0的轉(zhuǎn)換速率最大是100ksps,其轉(zhuǎn)換速率由SAR clock決定,而采樣速率由用戶(hù)自己決定(可通過(guò)定時(shí)器設(shè)置_),但要小于轉(zhuǎn)換速率。

C8051FXX單片機(jī)的加密方式,是通過(guò)修改FLASH存儲(chǔ)器的0xfdfe和0xfdff這兩個(gè)字節(jié)來(lái)實(shí)現(xiàn)的。其中0xfdfe是寫(xiě)保護(hù)字節(jié)。0xfdff是讀保護(hù)字節(jié)。每個(gè)字節(jié)的8個(gè)位分別對(duì)應(yīng)8K的FLASH存儲(chǔ)空間,如果該存儲(chǔ)空間的對(duì)應(yīng)位被清除,則該空間也被加密。

STARTUP.A51 這個(gè)文件有什么用,有必要添加到工程嗎?
如果不添加"startup.a51"文件,編譯器就會(huì)自動(dòng)加入一段初始化內(nèi)存以及堆棧等的代碼,這時(shí)的內(nèi)存初始化部分你就無(wú)法去控制了,當(dāng)然這在大部分情況下沒(méi)什么關(guān)系。但是如果你想你的程序在復(fù)位后,內(nèi)存里面的信息依然還保存著(所說(shuō)的“熱復(fù)位”),那么你就需要添加該啟動(dòng)文件,并且去里面修改內(nèi)存初始化部分,不要初始化你需要保留的部分內(nèi)存。


關(guān)鍵詞: F020基礎(chǔ)知

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉