CPU包括運(yùn)算器和控制器,運(yùn)算器主要包括算術(shù)運(yùn)算、邏輯運(yùn)算和位運(yùn)算,控制邏輯包括定時和控制、指令寄存器、譯碼器、地址指針和程序計數(shù)器PC。
CPU外還有時鐘電路、ROM、RAM、定時/計數(shù)器、并行IO、串行接口、中斷系統(tǒng)。
1.IO口相關(guān)知識
這些IO口實際上就是GPIO,它是單片機(jī)內(nèi)的特殊功能寄存器SFR里面的4個8bit的寄存器。
IO可以作為輸出或輸入。
IO作為輸出時自帶鎖存功能,也就是寫1后,輸出一直是1(鎖存器上的值),引腳上可能被外部電路影響而不是1了。
單片機(jī)4組IO口,P0輸出時需要上拉;P1/P2/P3是準(zhǔn)雙向口。
有些口還可以作為數(shù)據(jù)或地址輸入輸出口。P1只能作為雙向口,P0擴(kuò)展數(shù)據(jù)和地址,P2擴(kuò)展地址高8位,P3有第二特殊功能。
注意讀引腳和讀鎖存器的區(qū)別:因為有時候輸出設(shè)定為1,但是可能被外部電路鉗制到低電平,所以當(dāng)設(shè)置P0=1時想再設(shè)定P0=2時,就用讀鎖存器,這樣就是1+1,不然就是讀引腳可能就會變成0+1.常見的讀鎖存器的指令是:在使用ANL、ORL、XRL、CLR、SETB等位操作指令對I/O口進(jìn)行按位修改時,單片機(jī)將首先讀回端口鎖存器的值,送入ALU進(jìn)行相應(yīng)位修改,再寫回端口寄存器,通過驅(qū)動電路輸出給外圍電路。
讀引腳時需要先想端口寫1,把T2截止,這樣讀到才是外部真實電平。
雙向IO口/準(zhǔn)雙向IO口的區(qū)別
標(biāo)準(zhǔn)雙向IO口的特點有兩條:
1、在輸出模式下,可以輸出高低電平;
2、在輸入模式下,如果沒有接外部電路,應(yīng)呈現(xiàn)高阻態(tài)。
對于51單片機(jī)的P1、P2、P3口,由于有內(nèi)部上拉電阻,輸入模式下不可能出現(xiàn)高阻態(tài),所以稱之為準(zhǔn)雙向IO口。而P0口作為IO口工作時,如果不加上拉電阻就無法輸出高電平;而加了上拉電阻,輸入時又不會出現(xiàn)高阻態(tài),所以也是準(zhǔn)雙向IO口。
單片機(jī)的P0口如果工作在第二功能狀態(tài)下,則是雙向IO口。當(dāng)P0口工作在第二功能狀態(tài)下,兩個晶體管都可以工作。如果上面的晶體管斷開,下面的導(dǎo)通,就輸出低電平;反之上面的導(dǎo)通下面的斷開,就輸出高電平并且不需要上拉電阻;如果兩個晶體管都斷開,則可以作為輸入,并且在沒有外界電路時呈現(xiàn)高阻態(tài)。所以是雙向IO口。
注:灌電流比拉電流能通過更大的電流;點亮LED一般用灌電流方式。
參考:
2.中斷
常用術(shù)語:內(nèi)部中斷、外部中斷、中斷響應(yīng)、中斷服務(wù)程序、中斷優(yōu)先級、中斷嵌套、中斷源、中斷矢量。
中斷作用:①快速的CPU和慢速外部設(shè)備的速度配合;②實現(xiàn)實時控制;③實時故障發(fā)現(xiàn)和處理;④實時干預(yù)計算機(jī)工作。
單片機(jī)六個中斷源:外部0、外部1、定時器0/1/2、串口。
外部中斷可以設(shè)置為電平觸發(fā)或邊沿觸發(fā)。
四個與中斷有關(guān)的寄存器:TCON、SCON、IP、IE.
串行中斷標(biāo)志需要軟件清除。
若是外部中斷用電平觸發(fā),若是電平觸發(fā)不撤銷,跳出中斷程序后會再次進(jìn)入中斷程序。
中斷響應(yīng)受阻斷:正在執(zhí)行RETI或訪問IE、IP,必須執(zhí)行完該指令,并執(zhí)行下一條指令后才能響應(yīng)中斷(如強(qiáng)一行,電平觸發(fā)會每次執(zhí)行一條主程序)。
3.定時器和計數(shù)器
51是兩個寄存器,52是三個寄存器,都是16位的。
工作方式寄存器TMOD、控制寄存器TCON
4.存儲資源
內(nèi)部RAM,一般為128B,其中包括了可為尋址的16B,用C 語言時都是編譯器在幫忙分配。RAM是用于存放運(yùn)行時臨時數(shù)據(jù)的。
內(nèi)部ROM,一般是4KB,用于存放程序的,也就是keil編譯出來的bin文件需要存儲到單片機(jī)里面。
外部存儲器,通過IO口,可以擴(kuò)展外部RAM最大64KB,外部ROM最大64KB。
評論