單片機(jī)是如何工作的?
想知道單片機(jī)是如何工作的,首先要了解單片機(jī)的概念和組成部分。
單片機(jī)的基本結(jié)構(gòu)包括中央處理器(CPU) 、存儲(chǔ)器、定時(shí)/計(jì)數(shù)器、輸入輸出接口、中斷控制系統(tǒng)和時(shí)鐘電路六部分。
一、單片機(jī)的組成結(jié)構(gòu)
中央處理器(CPU)
包括運(yùn)算器和控制器兩部分,是單片機(jī)的核心。運(yùn)算器可用于各種運(yùn)算,控制器用于控制單片機(jī)各部分協(xié)調(diào)工作。
存儲(chǔ)器
用于存放程序和原始數(shù)據(jù)。
時(shí)鐘電路
時(shí)鐘電路產(chǎn)生單片機(jī)運(yùn)行的控制信號(hào),控制單片機(jī)嚴(yán)格按時(shí)序執(zhí)行指令。
定時(shí)/計(jì)數(shù)器:實(shí)現(xiàn)定時(shí)或計(jì)數(shù)功能。
輸入輸出接口(I/O)實(shí)現(xiàn)單片與其他設(shè)備之間的數(shù)據(jù)傳送。
中斷控制系統(tǒng): 用于響應(yīng)中斷源的中斷請(qǐng)求。
二、單片機(jī)引腳
雙列直插式封裝(DIP,Dual Inline Package)
方形封裝(PLCC,Plastic Leaded Chip Carrier)
電源引腳: VCC (40腳)和VSS(20腳)分別接供電電源正極和負(fù)極。
時(shí)鐘電路引腳:單片機(jī)需要有時(shí)鐘脈沖信號(hào)才能工作,經(jīng)(18腳)和 (19腳)接振蕩電路。
控制信號(hào)引腳包括以下4個(gè):
EA( 31腳):當(dāng)EA接高電平時(shí)先內(nèi)后外執(zhí)行ROM程序。接低電平時(shí)只執(zhí)行外部ROM程序。
RST (9腳):當(dāng)輸入兩個(gè)機(jī)器周期以上的高電平時(shí)實(shí)現(xiàn)復(fù)位,使單片機(jī)初始化并重新執(zhí)行程序。
ALE (30腳):訪問外部存儲(chǔ)器和其他外設(shè)時(shí),ALE控制低8位地址和數(shù)據(jù)的分時(shí)傳送。
PSEN (29腳):外部程序存儲(chǔ)器讀選通信號(hào)。
并行輸入/輸出引腳共32個(gè):
PO口(39-32腳):可作地址/數(shù)據(jù)總線端口用,也可作普通I/O口用。
P1口(1-8腳):一般只用作I/O端口。
P2口(21-28腳):當(dāng)訪問外部存儲(chǔ)器時(shí)可輸出高8位地址,也可作普通I/O端口使用。
P3口(10-17腳):主要用其第二功能,也可作普通I/O口用。
三、并行輸入/輸出
P0口位電路結(jié)構(gòu)
1個(gè)數(shù)據(jù)輸出鎖存器。
2個(gè)三態(tài)的數(shù)據(jù)輸入緩沖器BUF1和BUF2。
2個(gè)場(chǎng)效應(yīng)管(FET)。
多路開關(guān)、反相器、與門各1個(gè)。
P0口工作原理——用作復(fù)用的地址/數(shù)據(jù)總線
輸出:“控制”信號(hào)為1,硬件自動(dòng)使轉(zhuǎn)接開關(guān)MUX打向上面,接通反相器的輸出,同時(shí)使“與門”開啟。
當(dāng)輸出的地址/數(shù)據(jù)信息=1,“與門”輸出為1,上方場(chǎng)效應(yīng)管導(dǎo)通,下方場(chǎng)效應(yīng)管截止,P0.x引腳輸出為1。
當(dāng)輸出的地址/數(shù)據(jù)信息=0,上方場(chǎng)效應(yīng)管截止,下方場(chǎng)效應(yīng)管導(dǎo)通,P0.x引腳輸出為0。
P0口工作原理——用作復(fù)用的地址/數(shù)據(jù)總線
輸入:當(dāng)P0口作為數(shù)據(jù)輸入時(shí),僅從外部引腳讀入信息,“控制”信號(hào)為0,MUX接通鎖存器Q端。
P0口作為地址/數(shù)據(jù)復(fù)用方式訪問外部存儲(chǔ)器時(shí),CPU自動(dòng)向P0口寫入FFH,使下方場(chǎng)效應(yīng)管截止,上方場(chǎng)效應(yīng)管由于控制信號(hào)為0也截止,從而保證數(shù)據(jù)信息的高阻抗輸入,從外部輸入的數(shù)據(jù)直接由P0.x引腳通過輸入緩沖器BUF2進(jìn)入內(nèi)部總線。
當(dāng)D鎖存器為1時(shí), 端為0,下方場(chǎng)效應(yīng)管截止,輸出為漏極開路,此時(shí),必須外接上拉電阻才能有高電平輸出;
當(dāng)D鎖存器為0時(shí),下方場(chǎng)效應(yīng)管導(dǎo)通,P0口輸出為低電平。
P0口工作原理——用作通用I/O口
輸入:兩種讀入方式:“讀鎖存器”和“讀引腳”。
當(dāng)CPU發(fā)出“讀鎖存器”指令時(shí),鎖存器的狀態(tài)由Q端經(jīng)上方的三態(tài)緩沖器BUF1進(jìn)入內(nèi)部總線。
當(dāng)CPU發(fā)出“讀引腳”指令時(shí),鎖存器的輸出狀態(tài)Q=1(Q端為0),而使下方場(chǎng)效應(yīng)管截止,引腳的狀態(tài)經(jīng)下方的三態(tài)緩沖器BUF2進(jìn)入內(nèi)部總線。
P1口位電路結(jié)構(gòu)
1個(gè)數(shù)據(jù)輸出鎖存器。
2個(gè)三態(tài)的數(shù)據(jù)輸入緩沖器BUF1和BUF2。
1個(gè)場(chǎng)效應(yīng)管(FET)和1個(gè)片內(nèi)上拉電阻組成。
P1口工作原理——只用作通用I/O口
若CPU輸出1,Q=1,Q-=0,場(chǎng)效應(yīng)管截止,P1.x腳輸出為1;
若CPU輸出0,Q=0,Q- =1,場(chǎng)效應(yīng)管導(dǎo)通,P1.x腳輸出為0。
P1口工作原理——只用作通用I/O口
輸入:分為“讀鎖存器”和“讀引腳”
讀“鎖存器”,輸出Q狀態(tài)經(jīng)輸入緩沖器BUF1進(jìn)入內(nèi)部總線;
“讀引腳”,先向鎖存器寫1,使場(chǎng)效應(yīng)管截止,P1.x引腳上的電平經(jīng)輸入緩沖器BUF2進(jìn)入內(nèi)部總線。
P2口位電路結(jié)構(gòu)
1個(gè)數(shù)據(jù)輸出鎖存器。
2個(gè)三態(tài)的數(shù)據(jù)輸入緩沖器BUF1和BUF2。
1個(gè)場(chǎng)效應(yīng)管(FET)和1個(gè)片內(nèi)上拉電阻組成。
1個(gè)多路轉(zhuǎn)接開關(guān)MUX
P2口工作原理——用作地址總線
在控制信號(hào)作用下,MUX與“地址”接通。
當(dāng)“地址”為0時(shí),場(chǎng)效應(yīng)管導(dǎo)通,P2口引腳輸出0;
當(dāng)“地址”線為1時(shí),場(chǎng)效應(yīng)管截止,P2口引腳輸出1。
P2口工作原理——用作通用I/O口
輸出:在內(nèi)部控制信號(hào)作用下,MUX與鎖存器Q端接通。
CPU輸出1時(shí),Q=1,場(chǎng)效應(yīng)管截止,P2.x引腳輸出1;
CPU輸出0時(shí),Q=0,場(chǎng)效應(yīng)管導(dǎo)通,P2.x引腳輸出0。
P2口工作原理——用作通用I/O口
輸入:分“讀鎖存器”和“讀引腳”兩種方式。
“讀鎖存器”時(shí),Q端信號(hào)經(jīng)輸入緩沖器BUF1進(jìn)入內(nèi)部總線;
“讀引腳”時(shí),先向鎖存器寫1,使場(chǎng)效應(yīng)管截止,P2.x引腳上的電平經(jīng)輸入緩沖器BUF2進(jìn)入內(nèi)部總線。
P3口位電路結(jié)構(gòu)
1個(gè)數(shù)據(jù)輸出鎖存器。
3個(gè)三態(tài)的數(shù)據(jù)輸入緩沖器BUF1和BUF2。
1個(gè)場(chǎng)效應(yīng)管(FET)和1個(gè)片內(nèi)上拉電阻組成。
1個(gè)多路轉(zhuǎn)接開關(guān)MUX和1個(gè)與非門
P3口工作原理——用作第二功能
輸出:該位的鎖存器需要置“1”,使“與非門”為開啟狀態(tài)。
當(dāng)?shù)诙敵鰹?時(shí),場(chǎng)效應(yīng)管截止,P3.x引腳輸出為1;
當(dāng)?shù)诙敵鰹?時(shí),場(chǎng)效應(yīng)管導(dǎo)通,P3.x引腳輸出為0。
P3口工作原理——用作第二功能
輸入:該位的鎖存器和第二輸出功能端均應(yīng)置1,保證場(chǎng)效應(yīng)管截止,P3.x引腳的信息由輸入緩沖器BUF3的輸出獲得。
P3口工作原理——用作通用I/O口
輸出:第二輸出功能端應(yīng)保持“1”,“與非門”開啟。
CPU輸出1時(shí),Q=1,場(chǎng)效應(yīng)管截止,P3.x引腳輸出為1;
CPU輸出0時(shí),Q=0,場(chǎng)效應(yīng)管導(dǎo)通,P3.x引腳輸出為0。
P3口工作原理——用作通用I/O口
輸入:P3.x位的輸出鎖存器和第二輸出功能均應(yīng)置1,場(chǎng)效應(yīng)管截止。
P3.x引腳信息通過輸入BUF3和BUF2進(jìn)入內(nèi)部總線,完成“讀引腳”操作;
也可執(zhí)行“讀鎖存器”操作,此時(shí)Q端信息經(jīng)過緩沖器BUF1進(jìn)入內(nèi)部總線。
四個(gè)并口(P0-P3)在讀引腳之前,都需要將鎖存器置“1”,使場(chǎng)效應(yīng)管截止,避免鎖存器內(nèi)數(shù)據(jù)的干擾。
由于在輸入操作前還必須附加一個(gè)置“1”的準(zhǔn)備動(dòng)作,因此稱為“準(zhǔn)雙向口”。
四個(gè)并口(P0-P3)都是準(zhǔn)雙向口