F020基礎(chǔ)知識
每個端口引腳的輸出方式都可被配置為漏極開路或推挽方式,缺省狀態(tài)為漏極開路。(缺省Pn=0xff)
在推挽方式,向端口數(shù)據(jù)寄存器中的相應(yīng)位寫邏輯‘0’將使端口引腳被驅(qū)動到GND,寫邏輯‘1將使端口引腳被驅(qū)動到VDD。
在漏極開路方式,向端口數(shù)據(jù)寄存器中的相應(yīng)位寫邏輯‘0’將使端口引腳被驅(qū)動到GND,寫邏輯‘1’將使端口引腳處于高阻狀態(tài)(注:必須禁止弱上拉,內(nèi)部有弱上拉)。
通過設(shè)置輸出方式為“漏極開路”并向端口數(shù)據(jù)寄存器中的相應(yīng)位寫‘1置為數(shù)字輸入。例如,設(shè)置P3MDOUT.7為邏輯‘0’并設(shè)置P3.7為邏輯‘1‘即可將P3.7配置為數(shù)字輸入
FLASH存儲器除了用于存儲程序代碼之外還可以用于非易失性數(shù)據(jù)存儲。這就允許在程序運行時計算和存儲類似標定系數(shù)這樣的數(shù)據(jù)。數(shù)據(jù)寫入用MOVX指令,讀出用MOVC指令。
MCU的FLASH存儲器中有一個附加的128字節(jié)的扇區(qū),可用于非易失性數(shù)據(jù)存儲。然而它較小的扇區(qū)容量使其尤其適于作為通用的非易失性臨時存儲器。盡管FLASH存儲器可以每次寫一個字節(jié),但必須首先擦除整個扇區(qū)。若要修改一個多字節(jié)數(shù)據(jù)集中的某一個字節(jié),數(shù)據(jù)集必須被移動到臨時存儲區(qū)域。128字節(jié)的扇區(qū)規(guī)模使數(shù)據(jù)更新更加容易,可以不浪費程序存儲器或RAM空間。
該128字節(jié)的扇區(qū)在64K字節(jié)FLASH存儲器中是雙映射的;它的地址范圍是從0x1000到0x1007F。該128B扇區(qū)是雙映射的,其邏輯地址為0x00-0x7F(該128字節(jié)無法通過JTAG讀出或?qū)懭耄翆懻珻PU時,會將該區(qū)域的數(shù)據(jù)擦除),為了訪問該扇區(qū),PSCTL寄存器中的SFLE位必須被設(shè)置為邏輯‘1’。該扇區(qū)不能用于存儲程序代碼。
指令是以系統(tǒng)時鐘周期為單位,而不像51單片機以機器周期(12×系統(tǒng)時鐘周期)為單位,速度大大提高
C8051F020低端口(P0. P1. P2和P3)既可以按位尋址也可以按字節(jié)尋址。高端口(P4. P5. P6和P7)只能按字節(jié)尋址。
對于附加128字節(jié)的flash扇區(qū),每次擦除128個字節(jié)
對于其他flash扇區(qū),每次擦除512個字節(jié)
ADC0的轉(zhuǎn)換速率最大是100ksps,其轉(zhuǎn)換速率由SAR clock決定,而采樣速率由用戶自己決定(可通過定時器設(shè)置_),但要小于轉(zhuǎn)換速率。
C8051FXX單片機的加密方式,是通過修改FLASH存儲器的0xfdfe和0xfdff這兩個字節(jié)來實現(xiàn)的。其中0xfdfe是寫保護字節(jié)。0xfdff是讀保護字節(jié)。每個字節(jié)的8個位分別對應(yīng)8K的FLASH存儲空間,如果該存儲空間的對應(yīng)位被清除,則該空間也被加密。
STARTUP.A51 這個文件有什么用,有必要添加到工程嗎?
如果不添加"startup.a51"文件,編譯器就會自動加入一段初始化內(nèi)存以及堆棧等的代碼,這時的內(nèi)存初始化部分你就無法去控制了,當然這在大部分情況下沒什么關(guān)系。但是如果你想你的程序在復(fù)位后,內(nèi)存里面的信息依然還保存著(所說的“熱復(fù)位”),那么你就需要添加該啟動文件,并且去里面修改內(nèi)存初始化部分,不要初始化你需要保留的部分內(nèi)存。
評論