51單片機在片設備與中斷(1)
- MCS-51單片機內部有4個8位的并行I/O口P0、P1、P2、P3。其中P3口、P2口、P1口為準雙向口,P0口為雙向的三態數據線口。各端口均由端口鎖存器、輸出驅動器、輸入緩沖器等構成。各端口除可進行字節的輸入/輸出外,每個位口線還可單獨用作輸入/輸出,實際應用非常方便。
- 對并行I/O口的“讀—修改—寫”類指令(例如CPL P0.0、ANL P1,#0FH等)實際是讀出對應的端口鎖存器的內容,執行修改后再寫回到端口鎖存器中。之所以是“讀鎖存器”而不是“讀引腳”,是為了避免因引腳外部電路的原因而使引腳的狀態發生改變而造成誤讀。
P0口是一個三態雙向I/O口,在需要進行外部ROM、RAM等擴展時,采用分時復用的方式,通過地址鎖存器后作為地址總線的低8位和8位數據總線;在不需要進行外部ROM、RAM等擴展時,作為通用的I/O口使用。P0在用作通用輸出口時必須外接上拉電阻,用作輸入口時,則必須先把鎖存器寫入1。P0口的輸出級具有驅動8個LSTTL負載的能力。
本文引用地址:http://cqxgywz.com/article/201611/321803.htm當不需要在單片機芯片外部擴展程序存儲器,只需擴展256字節的片外RAM時,訪問片外RAM就可以利用“MOVX A,@Ri”,“MOVX @Ri,A”類指令來實現。這時只用到了地址線的低8位,P2口不受該類指令的影響,仍可以作為通用I/O口使用。
P3口相應的端口線處于第二功能,應滿足的條件是:
串行I/O口處于運行狀態(RXD,TXD)。 外部中斷已經打開(INT0、INT1)。 定時/計數器處于外部計數狀態(T0、T1)。 執行讀/寫外部RAM的指令(RD、WR)。
定時/計數器4種工作方式的特點
- 方式0是13位計數器,最大計數值213=8192,計數范圍比方式1小,計算定時初值比較麻煩,容易出錯,與方式1比較無任何優點(設計初衷是為了兼容更早的48系列單片機)。
- 方式1是16位計數器,最大計數值為216=65536,計數范圍大,適用于定時范圍較大的應用場合。
- 方式2是8位計數器,最大計數值是28=256,缺點是計數范圍小,優點是定時初值可自動恢復,適用于需要重復定時,而定時范圍還不大的應用場合。
- 方式3是8位計數器,僅適用于T0,T1無方式3。T0方式3時,被拆成兩個獨立的8位計數器TH0、TL0:TL0使用T0原有的控制寄存器組成一個8位的定時/計數器;TH0借用T1的TF1、TR1,只能對機內機器周期脈沖計數,組成另一個8位定時器。T0方式3時T1方式2作串行口波特率發生器。
定時器初值的計算
定時時間的計算公式為:
若設初值TC=0,則定時器定時時間為最大。當單片機系統主頻為12MHz時,各種工作方式下定時器的最大定時時間為:


評論