EM78P447S單片機及其在直流電機紅外遙控系統(tǒng)中的應(yīng)用
1 EM78P447S的主要特點
EM78系列單片機是臺灣義隆電子股份有限公司采用CMOS工藝制造的8位高性價比單片機。該系列單片機一般都內(nèi)置看門狗計數(shù)器(WDT)、RAM、ROM、可編程定時/計數(shù)器、預(yù)分頻器以及5層堆棧。該系列器件的絕大部分指令只需兩個振蕩周期,同時具有內(nèi)外部中斷、低電壓檢測復(fù)位、可編程I/0、內(nèi)部上拉電阻和集電極開路輸出、SLEEP方式等功能。另外,EM78P447S單片機還具有編程簡單、速度快、功耗小、成本低等優(yōu)點,能廣泛應(yīng)用于玩具、家電、工業(yè)控制等方面。
EM78P447S的主要性能特點如下:
●工作電壓范圍:2.5-5.5V;
●允許溫度范圍:0-70°C;
●工作頻率范圍:
石英振蕩型:5V時的范圍為DC-20MHz,
3V時的范圍為DC-8MHz;
RC振蕩型:5V時的范圍為DC-4MHz;
3V時的范圍為DC-4MHz;
●一次可編程ROM達(dá)4K X 13bit;
●內(nèi)部RAM為148 X 8bit;
●具有5層堆棧;
●內(nèi)含一個可以自行規(guī)劃的看門狗計時器(WDT)和一個8位預(yù)分頻器;
●具有24個雙向三態(tài)I/O腳;
●睡眠狀態(tài)的I/O可做規(guī)劃;
●有十個具有提升電阻及叫醒CPU的I/O引腳;
●有兩個具有R-Option功能的I/O引腳,通過R-Option功能可在兩個或兩個以上應(yīng)用程序中放人同一單片機時,用一個輸入腳來判斷選擇哪一個程序。也就是說,R-option功能就是在EM78P447S的某兩個I/0腳上設(shè)置可選擇的下拉電阻,從而通過用戶是否外接下拉電阻(一般為510kΩ)來判斷該腳的狀態(tài),進(jìn)而判斷運行哪一個程序;
●有兩個可規(guī)劃為集電極開路的輸出腳;
●可通過一個8位定時/計數(shù)器(TCC)來選擇信號源和觸發(fā)源,并可進(jìn)行8位預(yù)分頻;
●具有溢出中斷功能;
●具有上電復(fù)位、低電平檢測復(fù)位、RESET引腳輸入低電平復(fù)位、WDT超時溢出復(fù)位等功能;
●絕大部分指令只需兩個振蕩周期;
●具有低電平睡眠模式;
●具有TCC溢出中斷、外部INT引腳輸入脈沖中斷和執(zhí)行INT指令軟件中斷功能;
●采用32腳DIP封裝。
2 EM78P447S的引腳功能和寄存器
2.1 EM78P447S的引腳排列
圖1為EM78P447S的引腳排列。其各引腳的功能如下:
TCC:外部計數(shù)輸入腳;
OSCO:振蕩輸出腳;
VDD:正電源輸入腳;
OSCI:晶振或RC振蕩輸入腳;
NC:空腳;
BESET:復(fù)位輸入端,低電平有效;
VSS:接地腳;
INT:外部中斷輸入腳,下降沿輸入有效;
P50-P57:雙向I/O引腳;
P60-P67:雙向I/O引腳,可通過軟件規(guī)劃成有內(nèi)部提升電阻;
P70-P77:雙向I/O引腳,其中P74、P75可以通過軟件規(guī)劃成有內(nèi)部提升電阻;P76、P77通過軟件可設(shè)定為集電極開路輸出腳;P70、P71可當(dāng)作R-Option的輸入腳。
2.2 EM78P447S中的寄存器
EM78P447S內(nèi)含9個操作用途寄存器。其中間接尋址寄存器R0(IAB)、定時/計數(shù)器R1(TCC)、程序計數(shù)器R2(PC)、狀態(tài)寄存器R3(STATUS)、RAM選擇寄存器R4(RSR)、I/O口寄存器R5(PORT5)、R6(PORT6)、R7(PORT7)等8個寄存器的地址按順序分別為00H-07H,而中斷狀態(tài)寄存器R3F(1SR)的地址為3FH。
在EM78P447S的148個通用寄存器(RAM)中,包括有地址為08H-1FH的寄存器和4個地址為20H-3EH的寄存器組(4個頁面地址由R4的位6、位7來決定)。
另外,EM78P447S中還有7個特殊功能寄存器。其中包括累加器A、控制寄存器CONT、輸入/輸出控制寄存器IOC5、IOC6、IOC7(分別控制port5,port6,port7的輸入/輸出模式)、WDT控制寄存器IOCE和中斷屏蔽寄存器IOCF。
2.3 EM78P447S的指令簡介
EM78P447S單片機共有45個單字、58條指令。這58條指令包括19條邏輯指令、11條算術(shù)運算指令、4條位元指令、4條轉(zhuǎn)移指令、10條控制指令和10條跳躍指令。表1給出了這些指令字按功能的分類。
EM78P447S單片機的指令主要有以下幾個特色:
●除改變程序計數(shù)器的指令需要兩個指令周期外,其余指令均為單指令周期;
●寄存器的每一個位元均可由位元型指令直接進(jìn)行設(shè)定、清除或測試;
●對應(yīng)于IO引腳的I/O寄存器也可以當(dāng)作一般寄存器進(jìn)行存取。也就是說,存取一般寄存器與I/O所使用的指令完全一樣。
3 在直流電機遙控系統(tǒng)中的應(yīng)用
采用EM78P447S為主控器設(shè)計的遙控系統(tǒng)可實現(xiàn)對直流電機正轉(zhuǎn)、反轉(zhuǎn)和停止的遙控控制。該遙控控制系統(tǒng)由發(fā)射模塊、接收輸入模塊和單片機處理輸出模塊三部分組成。
3.1發(fā)射模塊
筆者設(shè)計的該遙控控制系統(tǒng)中的發(fā)射模塊采用3V工作電壓,其電路板上有三個乒乓鍵KO、K1、K2,可分別用來控制電機的正轉(zhuǎn)、反轉(zhuǎn)和停止操作。當(dāng)需要進(jìn)行發(fā)射時,采用發(fā)射專用芯片PT2248及外圍放大電路把信號放大,即可進(jìn)行紅外發(fā)射。其硬件電路原理圖如圖2所示。
3.2接收輸入模塊
本遙控控制系統(tǒng)中的接收模塊采用5V工作電壓,且在該電路板上有一個接收器,可用以接收發(fā)射模塊傳送過來的信號。利用一個放大電路可將接收到的信號放大并傳送到接收專用芯片PT2249A,然后再通過74LS04處理后送給單片機??捎萌齻€發(fā)光二極管分別對應(yīng)于發(fā)射模塊的三個按鍵以顯示操作。當(dāng)按下某一個鍵時,與之對應(yīng)的發(fā)光二極管發(fā)光。其硬件電路如圖3所示。
3.3單片機處理輸出模塊
單片機處理輸出模塊采用5V工作電壓,模塊上的三個乒乓鍵K3、K4、K5,分別對應(yīng)于發(fā)射模塊上的·KO、K1、K2三個鍵,可用來控制電機的正轉(zhuǎn)、反轉(zhuǎn)和停止。這三個鍵可在遙控器出現(xiàn)問題或丟失時代替KO、K1和K2進(jìn)行操作,因此非常方便實用。
單片機上的P5.0-P5.2引腳分別作為電機正轉(zhuǎn)、反轉(zhuǎn)和停止的信號輸入端,P6.0、P6.1引腳分別作為電機正轉(zhuǎn)、反轉(zhuǎn)的信號輸出端。要使電機停止操作,只要將無效信號送人P6.0、P6.1即可。單片機的輸出信號經(jīng)74LS04反向并送人ULN2003A進(jìn)行放大后,即可驅(qū)動繼電器以使直流電機作相應(yīng)操作。
另外,還可用兩個發(fā)光二極管來顯示操作。這樣,當(dāng)電機正轉(zhuǎn)或反轉(zhuǎn)時,其中的一個二極管將點亮,而當(dāng)按下停止按鈕時,兩個都不亮。其硬件電路如圖4所示。
4 系統(tǒng)的軟件設(shè)計
該設(shè)計以EM系列單片機配套的開發(fā)工具EMC為編程工具,由主程序不斷循環(huán)監(jiān)測乒乓鍵的狀態(tài)。當(dāng)某個按鍵被按下松開后,其對應(yīng)的電機被啟動,然后系統(tǒng)再返回檢測按鍵的狀態(tài),以確定是否保持該運行狀態(tài)或轉(zhuǎn)入其它狀態(tài)。
應(yīng)當(dāng)注意:當(dāng)機械開關(guān)按下或放開的瞬間,按鍵會因機械彈性的緣故在接點上產(chǎn)生彈動。這個快速跳動CPU會完全檢測到,因而會出現(xiàn)使用者只按了一次開關(guān),而被CPU認(rèn)為是按下很多次的錯誤情況。為了避免這種誤判現(xiàn)象,設(shè)計時可用延時來處理這種彈跳問題。當(dāng)軟件在檢測到開關(guān)被按下后,先延時一段時間再檢測一次,以避開彈跳的時間,這個彈跳的產(chǎn)生通常在開關(guān)被按下后開始的20ms-50ms之間發(fā)生,因此只要避開這段時間,而不要讀輸入腳的信號即可。其軟件流程如圖5所示。
參考文獻(xiàn)
1.鄧錦城.EM78447入門與實作
2.吳建生.EM78154/x56/x57系列8位單片機原理及應(yīng)用.福州新源電子技術(shù)研究所,1998,3
紅外遙控器相關(guān)文章:紅外遙控器原理
評論