李啟明 李傳芳
[摘 要]學(xué)習(xí)MCS51系列單片機,需要了解MCS51系列單片機的學(xué)習(xí)要點,這是學(xué)習(xí)MCS51系列單片機的捷徑。這篇文章的目的就是說明MCS51系列單片機的學(xué)習(xí)要點,并加以分析,供給讀者參考。
[關(guān)鍵詞]MCS51;讀寫指令;堆棧;I/O ;中斷
掌握了微機的工作原理以及匯編程序的基本應(yīng)用方法,為學(xué)習(xí)MCS51系列單片機打下堅實的基礎(chǔ),使學(xué)習(xí)MCS51系列單片機更加輕松簡單。如果我們能夠?qū)W(xué)習(xí)MCS51系列單片機的要點提出來,那就可以起到事半功倍的作用。
一、MCS51系列單片機存儲器讀寫指令
在微機原理中的匯編語言程序里,無論是在內(nèi)外存儲器間傳送數(shù)據(jù)還是讀取程序存儲器的數(shù)據(jù),都是應(yīng)用MOV操作指令來完成。但是MCS51系列單片機有許多不同。首先是MSC51系列單片機的存儲器分為內(nèi)部數(shù)據(jù)存儲器和外部數(shù)據(jù)存儲器以及內(nèi)外部程序存儲器,其匯編語言程序讀寫這些存儲器指令都有不同之處。例如讀寫內(nèi)部數(shù)據(jù)存儲器的數(shù)據(jù)用MOV指令即可,而讀寫外部數(shù)據(jù)存儲器的數(shù)據(jù)則必須使用MOVX指令。讀內(nèi)外部程序存儲器的數(shù)據(jù)時也要使用MOVC指令。
二、MCS51系列單片機的堆棧和堆棧指令
無論是在微機原理還是在MCS51系列單片機中,堆棧的含義都是相同的,就是以“先進后出”的方式。堆棧操作中有兩條指令:①是入棧指令PUSH,②是出棧指令POP。微機原理中,堆棧是按向下減少的,進行PUSH指令操作時,棧頂?shù)刂稴P減2后送回SP,再存入一個字數(shù)據(jù)(即兩個字節(jié)數(shù)據(jù));POP指令是把當(dāng)前棧頂?shù)刂稴P所指的一個字數(shù)據(jù)(即兩個字節(jié)數(shù)據(jù))取出后,棧頂?shù)刂稴P加2后送回SP。而在MCS51系列單片機中,堆棧是向上增長的,PUSH指令入棧的數(shù)據(jù)只是一個字節(jié),且入棧時先將棧頂?shù)刂稴P自動加1,然后才將數(shù)據(jù)壓入堆棧;而POP指令的操作則是先將堆棧中的一個字節(jié)數(shù)據(jù)彈出送給direct(存儲地址),然后棧頂?shù)刂稴P自動減1。
三、MCS51系列單片機的I/O輸入輸出方式
在微機原理的課程中,進行I/O輸入輸出必須擴展連接外部的I/O元器件,如8155、8255 I/O芯片。8086/8088CPU采用I/O端口獨立編址形式。CPU用專門的I/O指令去訪問I/O端口。輸入指令I(lǐng)N AX,PORT端口字信息送AX,以及IN AL,PORT端口字節(jié)信息送AL;輸出指令OUT? PORT, AX字信息送端口,以及OUT PORT, AL字節(jié)信息送端口。IN和OUT指令都提供了字和字節(jié)兩種使用方式,地址PORT就是專用的地址空間,而在MCS51系列單片機的輸入輸出就簡單得多了,因為MCS51系列單片機的芯片內(nèi)有四個雙向并行I/O端口P0~P3,每個端口都配有端口鎖存器、輸出驅(qū)動器和輸入緩沖器,每個I/O口可以進行字節(jié)輸入/輸出,也可以單獨進行位輸入/輸出。在對I/O口進行讀寫操作時,其讀寫方式和讀寫數(shù)據(jù)存儲器的方式是一樣的。例如讀寫P1端口,其指令為MOV A,P1端口P1字節(jié)信息送A累加器,MOV P1,A字節(jié)信息送端口P1。單獨進行位輸入輸出的指令為SETB P1.0把P1口的第0位置1,即輸出高電平;CLR P2.3 把P2口的第3位置0,即輸出低電平。
四、MCS51系列單片機的中斷
在微機原理的課程中,以8086/8088的中斷系統(tǒng)為例,該中斷系統(tǒng)可以處理256種不同的中斷。最多有256個中斷向量,每個中斷向量對應(yīng)一個中斷類型碼,且每個中斷向量需要四位存儲地址,一共需要1k的存儲單元,中斷向量表安排在00000H~003FFH。在中斷響應(yīng)時,CPU把中斷類型碼乘于4,由此取得該中斷源的中斷向量地址指針,依據(jù)該指針可從中斷向量表中取出兩個字分別送入IP和CS,引導(dǎo)CPU去執(zhí)行中斷服務(wù)程序。所有在編制好中斷服務(wù)程序后,給中斷服務(wù)程序安排了存儲空間,還須將它的入口地址置入中斷向量表中與中斷類型碼對應(yīng)的地址中,當(dāng)中斷到來時,CPU才會根據(jù)中斷類型碼自動取出中斷向量,轉(zhuǎn)入中斷服務(wù)程序中。MCS51系列單片機的中斷系統(tǒng)具有三類共五個中斷源,即INT0和INT1以及 T0、T1定時或計數(shù)溢出中斷和串行口發(fā)送或接受中斷。MCS51系列單片機的中斷系統(tǒng)也設(shè)置了中斷向量,但其向量地址是一一對應(yīng)固定的。INT0外部中斷向量地址是0003H,INT1外部中斷向量地址是0013H,T0定時/計數(shù)溢出中斷向量地址是000BH,T1定時/計數(shù)溢出中斷向量地址是001BH,串行發(fā)送或接受中斷向量地址是0023H。MCS51系列單片機發(fā)生中斷時,其CPU會根據(jù)中斷類型從各固定地址取出中斷服務(wù)程序的入口地址,轉(zhuǎn)入中斷服務(wù)程序中。
參考文獻:
[1]許立梓,何小敏,高明琴,等.微型計算機原理及應(yīng)用[M].北京:機械工業(yè)出版社,2003.
[2]李明,畢萬新.單片機原理與接口技術(shù)[M].大連:大連理工大學(xué)出版社,2014.
[作者單位]
廣東工業(yè)大學(xué)課室管理中心
(編輯:原琳娜)