單片機菜鳥:快速記憶51單片機指令有絕招
發布時間:2015-01-22 責任編輯:sherryyu
【導讀】學xue單dan片pian機ji之zhi初chu,你ni必bi須xu懂dong一yi些xie數shu字zi電dian路lu,若ruo對dui數shu字zi電dian路lu中zhong的de一yi般ban概gai念nian都dou很hen模mo糊hu,最zui好hao還hai是shi再zai補bu習xi一yi下xia再zai來lai學xue單dan片pian機ji。學xue習xi單dan片pian機ji,除chu了le搞gao清qing單dan片pian機ji內nei部bu功gong能neng、存儲空間分配及I/O接口外,還應掌握其指令係統。MCS-51共有111條指令,現介紹我們總結出的快速記憶MCS-51指令的方法,供大家參考。
單片機是一種集成在電路芯片,是采用超大規模集成電路技術把具有數據處理能力的中央處理器CPU隨機存儲器RAM、隻讀存儲器ROM、多種I/O口和中斷係統、定時器/計時器等功能(可能還包括顯示驅動電路、脈寬調製電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊矽片上構成的一個小而完善的計算機係統。
MCS-51是指由美國INTEL公司生產的一係列單片機的總稱,這一係列單片機包括了好些品種,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的產品。
學習單片機,除了搞清單片機內部功能、存儲空間分配及I/O接口外,還應掌握其指令係統。MCS-51共有111條指令,現介紹我們總結出的快速記憶MCS-51指令的方法,供大家參考。
大家都知道,彙編語言指令由操作碼、操作數兩部分組成。MCS-51使用彙編語言指令,它共有44個操作碼助記符,33種功能,其操作數有#data、direct、Rn、@Ri等。這裏先介紹指令助記符及其相關符號的記憶方法。
一、助記符號的記憶方法
1 表格列舉法
把44個指令助記符按功能分為五類,每類列表記憶。此處從略,請讀者自己總結。
2 英文還原法
單片機的操作碼助記符是該指令功能的英文縮寫,將縮寫還原成英語原文,再對照漢語有助於理解其助記符含義,從而加強記憶。例如:
增量 INC-Incremect
減量 DNC-Decrement
短轉移 SJMP-Short jump
長轉移 LJMP-Long jump
比較轉移 CJNE-Compare jump not equality
絕對轉移 AJMP-Absolute jump
空操作 NOP-No operation
交換 XCH-Exchange
加法 ADD-Addition
乘法 MUL-Multiplication
除法 DIV-Division
左環移 RL-Rotate left
進位左環移 RLC-Rotate left carry
右環移 RR-Rotate right
進位右環移RRC-Rotate right carry
3 功能模塊記憶法
單片機的44個指令助記符,按所屬指令功能可分為五大類,每類又可以按功能相似原 則為2~3組。這樣,化整為零,各個擊破,實現快速記憶。
1)數據傳送組
2)加減運算組:
MOV 內部數據傳送
ADD 加法
MOVC 程序存儲器傳送
ADDC 帶進位加法
MOVX 外部數據傳送
SUBB 帶進位減法
3)邏輯運算組
4)子程序調用組:
ANL 邏輯與
LCALL 長調用
ORL 邏輯或
ALALL 絕對調用
XRL 邏輯異或
RET 子程序返回
[page]
二、指令的記憶方法
1 指令操作數的有關符號
MCS-51的尋址方式共有六種:立即數尋址、直接尋址、寄存器尋址、寄存器間址、變 址尋址、相對尋址。我們必須掌握其表示的方法。
1)立即數與直接地址。ata表示八位立即數,#data16表示是十六位立即數,data或 direct表示直接地址。
2)Rn(n=0-7)、A、B、CY、DPTR寄存器尋址變量。
3)@R0、@R1、@DPTR、SP表示寄存器間址變量。
4)DPTR+A、PC+A表示變址尋址的變量。
5)PC+rel(相對量)表示相對尋址變量。
記住指令的助記符,掌握不同尋址方式的指令操作數的表示方法,為我們記憶彙編指 令打下了基礎。MCS-51指令雖多,但按功能可分為五類, 其中數據傳送類28條,算術運算類24條,邏輯操作類25條,控製轉移類17條,布爾位操作 類17條。在每類指令裏,根據其功能,抓住其源、 目的操作數的不同組合,再輔之以下方法,是完全能記住的。 我們約定,可能的目的操作數按(# 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 指令圖示記憶法
圖示記憶法是把操作功能相同或相似、但其操作數不同的指令,用圖形和箭頭將目 的、源操作數的關係表示出來的一種記憶方法。 例如:由助記符MOV、MOVX、MOVC組成的送數組指令,可以用圖1、2幫助記憶。
由助記符CJNE形成的四條指令,也可以用圖示法表示,如圖3。 CJNE A,#data,rel CJNE A,direct,rel CJNE @Rn,#data,rel CJNE @Ri,#data,rel
另外,對於由(ANL、ORL、ARL)形成的18條邏輯操作指令,有關A的四條環移指令, 也可以用圖示法表示,請讀者自行畫出記憶。
3 相似功能歸類法
在MCS-51指令中,我們發現部分指令其操作碼不同,但功能相似,而操作數則完全一 樣。相似功能歸類法就是把具有這樣特點的指令放在一起記憶, 隻要記住其中的一條,其餘的也就記住了。如加、減法的十二條指令,與、或、非的十八 條指令,現列舉如下。
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的變化情況,為此編成這樣一句話:(SP的內容)加1(direct的內 容)再入棧,(SP的內容)彈出(到direct單元)SP才減1。 又如乘法指令中積的存放,除法指令中被除數和除數以及商的存放,都可以編成口訣記憶如下:
MUL AB
高位積(存於)B,低位積(存於)A。
DIV AB
A除以B,商(存於)A餘(下)B。
上(shang)麵(mian)介(jie)紹(shao)了(le)幾(ji)種(zhong)快(kuai)速(su)記(ji)憶(yi)單(dan)片(pian)機(ji)指(zhi)令(ling)的(de)方(fang)法(fa),希(xi)望(wang)能(neng)起(qi)到(dao)拋(pao)磚(zhuan)引(yin)玉(yu)的(de)作(zuo)用(yong),相(xiang)信(xin)讀(du)者(zhe)在(zai)學(xue)習(xi)單(dan)片(pian)機(ji)的(de)過(guo)程(cheng)中(zhong)能(neng)找(zhao)到(dao)適(shi)合(he)自(zi)己(ji)的(de)方(fang)法(fa)來(lai)記(ji)憶(yi)。但(dan)是(shi),有(you)了(le)好(hao)的(de)方(fang)法(fa)還(hai)不(bu)夠(gou),還(hai)需(xu)要(yao)實(shi)踐(jian),即(ji)多(duo)讀(du)書(shu)上(shang)的(de)例(li)題(ti)和(he)別(bie)人(ren)編(bian)寫(xie)的(de)程(cheng)序(xu),自(zi)己(ji)再(zai)結(jie)合(he)實(shi)際(ji)編(bian)寫(xie)一(yi)些(xie)程(cheng)序(xu)。隻(zhi)有(you)這(zhe)樣(yang), 才能更好更快地掌握單片機指令係統。
[page]
建議
學xue單dan片pian機ji之zhi初chu,你ni必bi須xu懂dong一yi些xie數shu字zi電dian路lu,若ruo對dui數shu字zi電dian路lu中zhong的de一yi般ban概gai念nian都dou很hen模mo糊hu,最zui好hao還hai是shi再zai補bu習xi一yi下xia再zai來lai學xue單dan片pian機ji。接jie下xia來lai你ni最zui好hao先xian選xuan一yi種zhong單dan片pian機ji機ji種zhong進jin行xing學xue習xi,因yin為wei目mu前qian單dan片pian機ji機ji種zhong較jiao多duo,其qi結jie構gou和he指zhi令ling均jun不bu相xiang同tong,若ruo這zhe種zhong學xue兩liang天tian,那na種zhong學xue兩liang天tian往wang往wang會hui灘tan多duo嚼jiao不bu爛lan。這zhe裏li建jian議yi你ni最zui好hao先xian學xue8051單片機,因為8051方麵的書籍、資料、器材都較多。PIC和AVR以及其它類型的單片機雖有其長處,但現在的書籍、資料以及器件供應並不理想,不太適合初學者選擇。若你對這些並不在意的話那選擇後者進行學習也未尚不可。
我們建議你選擇8051單片機開始學習的原因還在於8051家族的派生品很多,例如ATMEL公司的AT89C51係列單片機就是完全兼容MSC-51 8051係列的(也就是說,AT89C51的指令、管腳、內部主要結構,以及用法與MSC-51相同),他不但兼容,而且還有不少創新,比如他的程序存儲器可以電擦、寫,一片IC就擁有了過去單片機的最小係統,不需要以前所謂的373和EPROM元件;所以,實驗時的電路連接、電路板自製都比較容易,加上目前其價格較底,你學習的片子也可以做產品,做產品的片子也可以做實驗,當然AVR係列也有這些特點;而PIC及其它係列在這一點上則顯得不太理想。
購gou買mai單dan片pian機ji的de書shu籍ji最zui好hao是shi書shu的de前qian麵mian你ni能neng看kan懂dong,而er書shu的de後hou麵mian你ni不bu懂dong,若ruo前qian後hou都dou看kan不bu懂dong的de書shu最zui好hao先xian別bie買mai,因yin為wei這zhe本ben書shu短duan時shi間jian內nei不bu會hui對dui你ni起qi多duo大da作zuo用yong。當dang然ran若ruo不bu是shi把ba書shu當dang資zi料liao查zha也ye不bu必bi買mai前qian後hou你ni都dou懂dong的de書shu,因yin為wei它ta對dui你ni來lai說shuo有you點dian淺qian。應ying以yi原yuan理li書shu籍ji為wei主zhu。其qi次ci可ke以yi購gou買mai一yi些xie應ying用yong方fang麵mian的de書shu籍ji以yi便bian參can考kao。
電子技術本身與實驗離不開,若光靠看書是很難理解其原理和學會單片機開發的。你應該購置相關單片機的芯片、編程器、實驗板,以及開發他的相關軟件。並以邊看書邊實驗的方式進行學習其效果將明顯好的多!由於初學,不可能購置很多昂貴的設備,建議學習用的單片機芯片其程序儲存器是可以反複可擦寫的,如AT89C係列或AVR係列。這樣,在學習燒寫時是無後顧之憂的。
現在來談談單片機開發的步驟。想讓單片機按你的意思(想法)完成一項任務,必須先編寫供其使用的程序,編寫單片機的程序應使用該單片機可以識別的“語言”,否則你將是對“石”彈琴。目前較流行的有彙編和C語言;彙編語言可以精確的控製單片機工作的每一步,而C語言則注重結果,不必關心單片機具體的每一步。習慣上宜先學彙編語言後學C語言,這樣可以對單片機有一個更深的了解,再說,就是用C語言編程,在需要精確控製時還需要嵌入彙編語句。當然,也有一開始就用C語言的,後來再學彙編;若你學過計算機的 Turbo C ,開始就學單片機的C也許會更快一些。
單片機程序是用文本編輯器編寫的純文本文件,象我們平常在windows計事本中用漢語寫計劃一樣,先這件事後那件事的去寫,以所使用單片機語言的語法,按我們的想法把單片機要做的事“一件一件”的依次寫下來,遇到“有些事”是重複的,就指明在什麼什麼地方已有說明(跳轉),在正常安排中若有其它突發事件出現,必須寫一段突發事件處理計劃(中斷)... ...。最後保存文件的擴展名應與所使用的語言要求的名字一致;我們漢語的文章一般保存為*.txt擴展名,而彙編語言的文件擴展名一般應為*.asm;有的開發係統則有自己的規定,如用 Keil C51開發係統,編寫的彙編程序擴展名為*.a51;當然Keil C51開發係統也有自己的編輯器,不必用Windows中的記事本。
無論我們使用彙編語言,還是C語言編寫的程序,隻是給我們看的,這個程序還必須經過與該語言對應的軟件將我們能看懂的彙編或C“翻譯”(編譯)成所用單片機可以識別的代碼。將單片機可以識別的代碼燒寫(編程)到單片機程序存儲器中,單片機裝的實際電路中才能依你的“計劃”去工作。
對於8051係列單片機來說,Keil C開發係統具有編輯、編譯、模擬單片機C語言程序的功能,也能編輯、編譯、模擬彙編語言程序;對於初學者,開始編寫的程序難免出現語法錯誤或其它不規範的語句,由於Keil C編譯時對錯誤語句提示的是英文,不太好理解,若用彙編的話,可使用DOS下的宏彙編編譯器ASM51;他可以對出錯語句進行中文提示;你源程序的注釋部分還可以使用中文,這更便於你今後對程序的維護。
編譯出的代碼一般擴展名為*.hex或*.bin;這個代碼文件必須送到單片機中單片機在電路中才能按你的“計劃”去qu工gong作zuo。將jiang這zhe個ge代dai碼ma文wen件jian送song到dao單dan片pian機ji中zhong的de工gong具ju就jiu是shi編bian程cheng器qi,與yu電dian腦nao連lian接jie的de編bian程cheng器qi一yi般ban都dou通tong過guo並bing口kou或huo者zhe串chuan口kou與yu編bian程cheng器qi的de硬ying件jian連lian接jie,也ye有you相xiang應ying的de服fu務wu程cheng序xu;在zai連lian接jie好hao電dian腦nao與yu編bian程cheng後hou運yun行xing其qi服fu務wu程cheng序xu,在zai服fu務wu程cheng序xu中zhong先xian選xuan擇ze所suo要yao編bian程cheng的de單dan片pian機ji型xing號hao,再zai調tiao入ru前qian麵mian所suo得de到dao的de代dai碼ma文wen件jian,接jie下xia來lai就jiu用yong編bian程cheng器qi將jiang這zhe個ge代dai碼ma文wen件jian燒shao寫xie到dao單dan片pian機ji中zhong。到dao此ci,單dan片pian機ji開kai發fa的de一yi個ge過guo程cheng就jiu大da致zhi完wan成cheng。
當然,你不可能一次就把你的“計劃”用單片機的語言完美正確的將源程序寫好(就是我們平常製訂的計劃在實際中也有修改的),這就需要反複修改源程序,反複編譯、燒寫到單片機中、反fan複fu將jiang單dan片pian機ji裝zhuang到dao電dian路lu中zhong去qu實shi驗yan。由you於yu單dan片pian機ji執zhi行xing每mei一yi條tiao語yu句ju所suo用yong的de時shi間jian很hen短duan,有you時shi你ni無wu法fa得de到dao其qi中zhong間jian的de結jie果guo,也ye無wu法fa判pan斷duan程cheng序xu出chu錯cuo的de位wei置zhi,這zhe時shi你ni可ke以yi使shi用yong軟ruan件jian模mo擬ni的de方fang法fa,讓rang程cheng序xu一yi步bu一yi步bu的de執zhi行xing,每mei執zhi行xing一yi步bu,通tong過guo查zha看kan單dan片pian機ji中zhong各ge關guan鍵jian數shu據ju的de變bian化hua情qing況kuang,來lai找zhao到dao錯cuo誤wu或huo沒mei按an你ni“計劃”執(zhi)行(xing)的(de)語(yu)句(ju),從(cong)而(er)達(da)到(dao)排(pai)錯(cuo)的(de)目(mu)的(de)。若(ruo)你(ni)資(zi)金(jin)不(bu)成(cheng)問(wen)題(ti)的(de)話(hua),也(ye)可(ke)以(yi)購(gou)買(mai)單(dan)片(pian)機(ji)仿(fang)真(zhen)器(qi),他(ta)可(ke)以(yi)取(qu)代(dai)實(shi)際(ji)電(dian)路(lu)中(zhong)的(de)單(dan)片(pian)機(ji),在(zai)電(dian)腦(nao)的(de)控(kong)製(zhi)下(xia)一(yi)步(bu)一(yi)步(bu)的(de)去(qu)排(pai)錯(cuo)。實(shi)際(ji)上(shang)無(wu)論(lun)軟(ruan)件(jian)模(mo)擬(ni)(仿真)還是硬件仿真,其功能遠不止這裏講的這一點點。
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 築基AI4S:摩爾線程全功能GPU加速中國生命科學自主生態
- 一秒檢測,成本降至萬分之一,光引科技把幾十萬的台式光譜儀“搬”到了手腕上
- AI服務器電源機櫃Power Rack HVDC MW級測試方案
- 突破工藝邊界,奎芯科技LPDDR5X IP矽驗證通過,速率達9600Mbps
- 通過直接、準確、自動測量超低範圍的氯殘留來推動反滲透膜保護
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
微波功率管
微波開關
微波連接器
微波器件
微波三極管
微波振蕩器
微電機
微調電容
微動開關
微蜂窩
位置傳感器
溫度保險絲
溫度傳感器
溫控開關
溫控可控矽
聞泰
穩壓電源
穩壓二極管
穩壓管
無焊端子
無線充電
無線監控
無源濾波器
五金工具
物聯網
顯示模塊
顯微鏡結構
線圈
線繞電位器
線繞電阻



