版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、單片機MCS-51系列指令快速記憶法 單片機 發(fā)布時間:2010-03-19 02:54:07 隨著微電子技術和超大規(guī)模集成電路技術的發(fā)展,單片微型計算機以其體積小、性價比 高、功能強、可靠性高等獨有的特點,在各個領域(如工業(yè)控制、家電產品、汽車電子、通信、智能儀器儀表)得到了廣泛的應用。學習、使用單片機的人越來越多,而生產單片機的廠家很多,單片機種類繁雜,不知如何選擇。據統計,八位單片機占全球 單片機銷量的65。在八位單片機中,Intel公司的8051單片機內核已成為8位單片機事實上的標準。因此,對初學者而言,選擇8051單片機來學習不失為明智的選擇。 學習單片機,除了搞清單片機內部功能、存
2、儲空間分配及I/O接口外,還應掌握其指令系統。MCS51共有111條指令,現介紹我們總結出的快速記憶MCS51指令的方法,供大家參考。 大家都知道,匯編語言指令由操作碼、操作數兩部分組成。MCS51使用匯編語言指令,它共有44個操作碼助記符,33種功能,其操作數有data、direct、Rn、Ri等。這里先介紹指令助記符及其相關符號的記憶方法。 一、助記符號的記憶方法 1表格列舉法 把44個指令助記符按功能分為五類,每類列表記憶。此處從略,請讀者自己總結。 2英文還原法 單片機的操作碼助記符是該指令功能的英文縮寫,將縮寫還原成英語原文,再對照漢語有助于理解其助記符含義,從而加強記憶。例如: 增
3、量 INCIncremect 減量 DNCDecrement 短轉移 SJMPShort jump 長轉移 LJMPLong jump 比較轉移 CJNECompare jump not equality 絕對轉移 AJMPAbsolute jump空操作 NOPNo operation 交換 XCHExchange 加法ADDAddition 乘法 MULMultiplication 除法 DIVDivision 左環(huán)移 RLRotate left 進位左環(huán)移 RLCRotate left carry 右環(huán)移 RRRotate right 進位右環(huán)移RRCRotateright carry
4、3功能模塊記憶法 單片機的44個指令助記符,按所屬指令功能可分為五大類,每類又可以按功能相似原 則為23組。這樣,化整為零,各個擊破,實現快速記憶。 1)數據傳送組 2)加減運算組:MOV 內部數據傳送 ADD 加法 MOVC 程序存儲器傳送 ADDC 帶進位加法 MOVX 外部數據傳送 SUBB 帶進位減法 3)邏輯運算組 4)子程序調用組:ANL 邏輯與 LCALL 長調用 ORL 邏輯或 ALALL 絕對調用 XRL 邏輯異或 RET 子程序返回 二、指令的記憶方法 1指令操作數的有關符號 MCS51的尋址方式共有六種:立即數尋址、直接尋址、 寄存器尋址、寄存器間址、變 址尋址、相對尋址
5、。我們必須掌握其表示的方法。 1)立即數與直接地址。ata表示八位立即數,data16表示是十六位立即數,data或 direct表示直接地址。 2)Rn(n=07、A、B、CY、DPTR寄存器尋址變量。 3)R0、R1、DPTR、SP表示寄存器間址變量。 4)DPTRA、PCA表示變址尋址的變量。 5)PCrel(相對量)表示相對尋址變量。 記住指令的助記符,掌握不同尋址方式的指令操作數的表示方法,為我們記憶匯編指 令打下了基礎。MCS51指令雖多,但按功能可分為五類, 其中數據傳送類28條,算術運算類24條,邏輯操作類25條,控制轉移類17條,布爾位操作 類17條。在每類指令里,根據其功能
6、,抓住其源、 目的操作數的不同組合,再輔之以下方法,是完全能記住的。 我們約定,可能的目的操作數按(data/direct/A/Rn/Ri)順序表示。 對于MOV指令,其目的操作數按A、Rn、direct、Ri的順序書寫,則可以記住MOV的15 條指令。例如以累加器A為目的操作數,可寫出如下4條指令。 MOV A,data/direct/A/Rn/Ri 以此類推,寫出其它指令。 MOV Rn,data/direct/A MOV direct,data/direct/A/Rn/Ri MOV Ri,data/direct/A 2指令圖示記憶法 圖示記憶法是把操作功能相同或相似、但其操作數不同的指令
7、,用圖形和箭頭將目 的、源操作數的關系表示出來的一種記憶方法。 例如:由助記符MOV、MOVX、MOVC組成的送數組指令,可以用圖1、2幫助記憶。 由助記符CJNE形成的四條指令,也可以用圖示法表示,如圖3。 CJNE A,data,rel CJNE A,direct,rel CJNE Rn,data,relCJNE Ri,data,rel 另外,對于由(ANL、ORL、ARL)形成的18條邏輯操作指令,有關A的四條環(huán)移指令, 也可以用圖示法表示,請讀者自行畫出記憶。 3相似功能歸類法 在MCS51指令中,我們發(fā)現部分指令其操作碼不同,但功能相似,而操作數則完全一 樣。相似功能歸類法就是把具有
8、這樣特點的指令放在一起記憶, 只要記住其中的一條,其余的也就記住了。如加、減法的十二條指令,與、或、非的十八 條指令,現列舉如下。 ADD/ADDC/SUBB A,data/direct/Rn/Ri ANL/ORL/XRL A,data/direct/Rn/Ri ANL/ORL/XRL direct,data/a 上述每一排指令,功能相似,其操作數都相同。其它的如加1(INC、減1(DEC指令也 可照此辦理。 4口訣記憶法 對于有些指令,我們可以把相關的功能用精練的語言編成一句話來記憶。如PUSH direct和POP direct這兩條 指令。 初學者常常分不清堆棧SP的變化情況,為此編成這
9、樣一句話:(SP的內容加1(direct的內 容再入棧,(SP的內容彈出(到direct單元SP才減1。 又如乘法指令中積的存放,除法指令中被除數和除數以及商的存放,都可以編成口訣記憶如下: MUL AB 高位積(存于B,低位積(存于A。 DIV AB A除以B,商(存于A余(下B。 上面介紹了幾種快速記憶單片機指令的方法,希望能起到拋磚引玉的作用,相信讀者在學習單片機的過程中能找到適合自己的方法來記憶。但是,有了好的方法還不夠,還需要實踐,即多讀書上的例題和別人編寫的程序,自己再結合實際編寫一些程序。只有這樣, 才能更好更快地掌握單片機指令系統。 專家建議 學單片機之初,你必須懂一些數字電路
10、,若對數字電路中的一般概念都很模糊,最好還是再補習一下再來學單片機。接下來你最好先選一種單片機機種進行學習,因為目前單片機機種較多,其結構和指令均不相同,若這種學兩天,那種學兩天往往會灘多嚼不爛。這里建議你最好先學8051單片機,因為8051方面的書籍、資料、器材都較多。PIC和AVR以及其它類型的單片機雖有其長處,但現在的書籍、資料以及器件供應并不理想,不太適合初學者選擇。若你對這些并不在意的話那選擇后者進行學習也未尚不可。 我們建議你選擇8051單片機開始學習的原因還在于8051家族的派生品很多,例如ATMEL公司的AT89C51系列單片機就是完全兼容MSC-51 8051系列的(也就是說
11、,AT89C51的指令、管腳、內部主要結構,以及用法與MSC-51相同),他不但兼容,而且還有不少創(chuàng)新,比如他的程序存儲器可以電擦、寫,一片IC就擁有了過去單片機的最小系統,不需要以前所謂的373和EPROM元件;所以,實驗時的電路連接、電路板自制都比較容易,加上目前其價格較底,你學習的片子也可以做產品,做產品的片子也可以做實驗,當然AVR系列也有這些特點;而PIC及其它系列在這一點上則顯得不太理想。 購買單片機的書籍最好是書的前面你能看懂,而書的后面你不懂,若前后都看不懂的書最好先別買,因為這本書短時間內不會對你起多大作用。當然若不是把書當資料查也不必買前后你都懂的書,因為它對你來說有點淺。
12、應以原理書籍為主。其次可以購買一些應用方面的書籍以便參考。 電子技術本身與實驗離不開,若光靠看書是很難理解其原理和學會單片機開發(fā)的。你應該購置相關單片機的芯片、編程器、實驗板,以及開發(fā)他的相關軟件。并以邊看書邊實驗的方式進行學習其效果將明顯好的多!由于初學 ,不可能購置很多昂貴的設備,建議學習用的單片機芯片其程序儲存器是可以反復可擦寫的,如AT89C系列或AVR系列。這樣,在學習燒寫時是無后顧之憂的。 現在來談談單片機開發(fā)的步驟。想讓單片機按你的意思(想法)完成一項任務,必須先編寫供其使用的程序,編寫單片機的程序應使用該單片機可以識別的“語言”,否則你將是對“石”彈琴。目前較流行的有匯編和C語
13、言;匯編語言可以精確的控制單片機工作的每一步,而C語言則注重結果,不必關心單片機具體的每一步。習慣上宜先學匯編語言后學C語言,這樣可以對單片機有一個更深的了解,再說,就是用C語言編程,在需要精確控制時還需要嵌入匯編語句。當然,也有一開始就用C語言的,后來再學匯編;若你學過計算機的 Turbo C ,開始就學單片機的C也許會更快一些。 單片機程序是用文本編輯器編寫的純文本文件,象我們平常在windows計事本中用漢語寫計劃一樣,先這件事后那件事的去寫,以所使用單片機語言的語法,按我們的想法把單片機要做的事“一件一件”的依次寫下來,遇到“有些事”是重復的,就指明在什么什么地方已有說明(跳轉),在正
14、常安排中若有其它突發(fā)事件出現,必須寫一段突發(fā)事件處理計劃(中斷). .。最后保存文件的擴展名應與所使用的語言要求的名字一致;我們漢語的文章一般保存為*.txt擴展名,而匯編語言的文件擴展名一般應為*.asm;有的開發(fā)系統則有自己的規(guī)定,如用 Keil C51開發(fā)系統,編寫的匯編程序擴展名為*.a51;當然Keil C51開發(fā)系統也有自己的編輯器,不必用Windows中的計事本。 無論我們使用匯編語言,還是C語言編寫的程序,只是給我們看的,這個程序還必須經過與該語言對應的軟件將我們能看懂的匯編或C“翻譯”(編譯)成所用單片機可以識別的代碼。將單片機可以識別的代碼燒寫(編程)到單片機程序存儲器中,
15、單片機裝的實際電路中才能依你的“計劃”去工作。 對于8051系列單片機來說,Keil C開發(fā)系統具有編輯、編譯、模擬單片機C語言程序的功能,也能編輯、編譯、模擬匯編語言程序;對于初學者,開始編寫的程序難免出現語法錯誤或其它不規(guī)范的語句,由于Keil C編譯時對錯誤語句提示的是英文,不太好理解,若用匯編的話,可使用DOS下的宏匯編編譯器ASM51;他可以對出錯語句進行中文提示;你源程序的注釋部分還可以使用中文,這更便于你今后對程序的維護。 編譯出的代碼一般擴展名為*.hex或*.bin;這個代碼文件必須送到單片機中單片機在電路中才能按你的“計劃”去工作。將這個代碼文件 送到單片機中的工具就是編程
16、器,與電腦連接的編程器一般都通過并口或者串口與編程器的硬件連接,也有相應的服務程序;在連接好電腦與編程后運行其服務程序,在服務程序中先選擇所要編程的單片機型號,再調入前面所得到的代碼文件,接下來就用編程器將這個代碼文件燒寫到單片機中。到此,單片機開發(fā)的一個過程就大致完成。 當然,你不可能一次就把你的“計劃”用單片機的語言完美正確的將源程序寫好(就是我們平常制訂的計劃在實際中也有修改的),這就需要反復修改源程序,反復編譯、燒寫到單片機中、反復將單片機裝到電路中去實驗。由于單片機執(zhí)行每一條語句所用的時間很短,有時你無法得到其中間的結果,也無法判斷程序出錯的位置,這時你可以使用軟件模擬的方法,讓程序
17、一步一步的執(zhí)行,每執(zhí)行一步,通過查看單片機中各關鍵數據的變化情況,來找到錯誤或沒按你“計劃”執(zhí)行的語句,從而達到排錯的目的。若你資金不成問題的話,也可以購買單片機仿真器,他可以取代實際電路中的單片機,在電腦的控制下一步一步的去排錯。實際上無論軟件模擬(仿真)還是硬件仿真,其功能遠不止這里講的這一點點。 初學單片機幾個不易掌握的概念 隨著電子技術的迅速發(fā)展,計算機已深入地滲透到我們的生活中,許多電子愛好者開始學習 單片機知識,但單片機的內容比較抽象,相對電子愛好者已熟悉的模擬電路、數字電路,單片機中有一些新的概念,這些概念非常基本以至于一般作者不屑去談,教材自然也不會很深入地講解這些概念,但這些
18、內容又是學習中必須要理解的,本文將就這些最基本概念作一說 明,希望對自學者有所幫助。 一、總線: 我們知道,一個電路總是由元器件通過電線連接而成的,在模擬電路中,連 線并不成為一個問題,因為各器件間一般是串行關系,各器件之間的連線并不很多,但計算 機電路卻不一樣,它是以微處理器為核心,各器件都要與微處理器相連,各器件之間的工作 必須相互協調,所以就需要的連線就很多了,如果仍如同模擬電路一樣,在各微處理器和各 器件間單獨連線,則線的數量將多得驚人,所以在微處理機中引入了總線的概念,各個器件 共同享用連線,所有器件的8根數據線全部接到8根公用的線上,即相當于各個器件并聯起 來,但僅這樣還不行,如果有兩個器件同時送出數據,一個為0,一個為1,那么,接收方接 收到的究竟是什么呢?這種情況是不允許的,所以要通過控制線進行控制,使器件分時工 作,任何時候只能 有一個器件發(fā)送數據(可以有多個器件同時接收)。器件的數據線也就被 稱為數據總線,器件所有的控制線被稱為控制總線。在單片機內部或者外部存儲器及其它器 件中有存儲單元,這些存儲單元要被分配地址,才能使用,分配地址當然也是以電信號的形 式給出的,由于存儲單元比較多,所以,用于地址分配的線也較多,這些線被稱為地址總 線。 二、數據、地址、指令: 之所以將這三者放在一起,是因為這三者的本質都是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第5單元 走向近代【考題猜想】(純試題)-2023-2024學年九年級歷史上學期期中考點大串講(部編版)
- 課題申報參考:面向最后一公里配送的無人機集貨中心選址及任務分配研究
- 二零二五年度米廠水稻種植與農村電商合作項目合同4篇
- 2025年度餐飲店承包經營與食品安全責任合同
- 2025年度個人虛擬形象設計制作合同樣本4篇
- 2025年度二零二五年度木材加工廢棄物處理合同規(guī)范4篇
- 二零二五版木制托盤庫存管理與采購合同4篇
- 2025年度個人貨運車輛保險合同范本大全3篇
- 二零二五年度玻璃瓶罐生產與銷售采購合同3篇
- 2025年度文化旅游項目承包商擔保合同范本4篇
- 《心態(tài)與思維模式》課件
- 物流服務項目的投標書
- C語言程序設計(慕課版 第2版)PPT完整全套教學課件
- 行業(yè)會計比較(第三版)PPT完整全套教學課件
- 值機業(yè)務與行李運輸實務(第3版)高職PPT完整全套教學課件
- 高考英語語法填空專項訓練(含解析)
- 危險化學品企業(yè)安全生產標準化課件
- 巨鹿二中骨干教師個人工作業(yè)績材料
- 《美的歷程》導讀課件
- 心電圖 (史上最完美)課件
- HGT 20525-2006 化學工業(yè)管式爐傳熱計算設計規(guī)定
評論
0/150
提交評論