快速入門單片機匯編語言_第1頁
快速入門單片機匯編語言_第2頁
快速入門單片機匯編語言_第3頁
快速入門單片機匯編語言_第4頁
快速入門單片機匯編語言_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、快速入門單片機匯編語言簡要:單片機有通用型和專用型之分。專用型是廠家為固定程序的執(zhí)行專門開發(fā)研制的一種 單片機,其程序不可更改。通用型單片機是常用的一種供學(xué)習(xí)或自主編制程序的單片機, 其程序需要自己寫入,可更改。單片機根據(jù)其基本操作處理位數(shù)不同可以分為:1位、4位、 8位、16、32位單片機。正文:在此我們主要講解美國ATMEL公司的89C51單片機。一、89C51單片機PDIP (雙列直插式)封裝引腳圖:其引腳功能如下:P0 口( pO.0-p0.7):為雙向三態(tài)口,可以作為輸入/輸出口。但在實際應(yīng)用中通常作為 地址/數(shù)據(jù)總線口,即為低8位地址/數(shù)據(jù)總線分時復(fù)用。低8位地址在ALE信號的負(fù)跳

2、變 鎖存到外部地址鎖存器中,而高 8位地址由P2 口輸出。P1 口( pl.O-p1.7):其每一位都能作為可編程的輸入或輸出線。P2 口( p2.0- p2.7):每一位也都可作為輸入或輸出線用,當(dāng)擴展系統(tǒng)外設(shè)時,可作為 擴展系統(tǒng)的地址總線高 8位,與P0 口一起組成16位地址總線。對89c51單片機來說,P2口一般只作為地址總線使用,而不作為I/O線直接與外設(shè)相連P3 口( p3.0- p3.7):其為雙功能口,作為第一功能使用時,其功能與P1 口相同。當(dāng)作 為第二功能使用時,每一位功能如下表所示P3 口第二功能引腳第二功能引腳第二功能P3.0RXD 串行口數(shù)P3.4INTO 定時器T0的

3、據(jù)輸入端外部輸入P3.1TXD 串行口數(shù)P3.5INT1 定時器T1的據(jù)輸出端外部輸入P3.2T0 外部中斷 0P3.6WR 外部存儲器數(shù)請求據(jù)寫選通信號P3.3T1 外部中斷 1P3.7RD 外部存儲器數(shù)據(jù)請求讀選通信號RstVpd :上電復(fù)位端和掉電保護(hù)端XTAL1(xtal2):外接晶振一腳,分別接晶振的一端Gnd:電源地。Vcc:電源正級,接+5VPROGALE :地址鎖存控制端PSEN:片外程序存儲器讀選通信號輸出端,低電平有效。EAvpp :訪問外部程序儲存器控制信號,低電平有效。當(dāng) EA為高電平時訪問片內(nèi)存 儲器,若超出范圍則自動訪問外部程序存儲器。當(dāng) EA為低電平時只訪問外部程

4、序存儲器。二、常用指令及其格式介紹:1、指令格式:標(biāo)號:操作碼目的操作數(shù),操作源;注釋例如:LOOP:ADD A,#OFFH ; (A) J(A)+FFH2、常用符號:Ri和Rn: R表示工作寄存器,i表示1和0, n表示07。rel:相對地址、地址偏移量,主要用于無條件相對短轉(zhuǎn)移指令和條件轉(zhuǎn)移指 令。#data:包含于指令中的8位立即數(shù)。#data16:包含于指令中的16位立即數(shù)。addr16 16位目的地址。direct:直接尋址的地址。bit :內(nèi)部數(shù)據(jù)存儲器RAM和特殊功能寄存器SFR中的可直接尋址位地址:間接尋址寄存器或基地址寄存器的前綴。(X):表示X中的內(nèi)容。(X):表示由X尋址

5、的單元中的內(nèi)容,也就是(X)作地址,該地址的內(nèi)容用(X)表示。3、常用偽指令:ORG :規(guī)定目標(biāo)程序段或數(shù)據(jù)塊的起始地址。格式:ORG+空格+地址例如:ORG 0000HEND :結(jié)束指令,放在程序的末尾,單獨使用,一段程序只用一次。DB (定義字節(jié)):從指定地址單元開始,定義若干字節(jié)存儲單元并賦初始值。4、常用尋址方式:直接尋址:MOV A,30H立即數(shù)尋址:MOV A,#20H寄存器間接尋址:MOV A,Ri (i=1,2)基址加變址寄存器尋址:MOV A,A+DPTR寄存器尋址:MOV A,Rn(n=07)5、指令大集合:傳送類指令:助記符操作功能助記符操作功能MOVA, #data立即

6、數(shù)送累加器MOVdirect, Rn寄存器內(nèi)容送直接尋址字節(jié)MOVRn, #data立即數(shù)送寄存器MOVA, Rn寄存器內(nèi)容送累加器MOVRi, #data立即數(shù)送片內(nèi)RAMMOVRn, A累加器內(nèi)容送奇存器MOVdirect, #data立即數(shù)送直接尋址子節(jié)MOVdirect, A累加器內(nèi)容送直接尋址字節(jié)MOVDPTR ,16位立即數(shù)送數(shù)據(jù)指針寄存器MOVRi, A累加器內(nèi)容送片內(nèi)RAM#data16MOVRn, direct直接尋址字節(jié)內(nèi)容送寄存器MOVdirect ,片內(nèi)RAM內(nèi)容送直接尋址MOVA, direct直接尋址字節(jié)送累加器Ri字節(jié)MOVRi, direct直接尋址內(nèi)容送片內(nèi)R

7、AMMOVA , Ri片內(nèi)RAM內(nèi)容送累加器MOVdirect2 ,直接尋址字節(jié)內(nèi)容送另一直接尋directi址字節(jié)MOVXA, Ri片外RAM內(nèi)容送累加器MOVX片外RAM內(nèi)容送累加器MOVXRi, A累加器內(nèi)容送片外RAMA,DPTR累加器內(nèi)容送片外RAMMOVXMOVC相對數(shù)據(jù)指針內(nèi)容送累加器A,A+DPTR相對程序計數(shù)器內(nèi)容送累加器MOVCA,A+PC累加器內(nèi)容與寄存器內(nèi)容交換XCHA,R n累加器與片內(nèi)RAM交換內(nèi)容XCHA,Ri累加器與直接尋址字節(jié)交換內(nèi)容XCHA,direct累加器與片內(nèi)RAM交換低半字節(jié)XCHDA,Ri內(nèi)容傳送類指令:DPTR,APUSH direct直接尋址字

8、節(jié)內(nèi)容壓入棧頂POP direct棧頂內(nèi)容彈出到直接尋址字節(jié)SWAP A累加器交換高半字節(jié)和低半字節(jié)助記符操作功能助記符操作功能ADDA,R n寄存器內(nèi)容與累加器內(nèi)容相加SUBB A,Rn累加器內(nèi)容減寄存器與進(jìn)位位內(nèi)容ADDA,Ri片內(nèi)RAM與累加器內(nèi)容相加SUBB累加器內(nèi)容減片內(nèi) RAM與進(jìn)位位內(nèi)ADDA,direct直接尋址字節(jié)與累加器內(nèi)容相加A,Ri容ADDA,#data立即數(shù)與累加器內(nèi)容相加SUBB累加器內(nèi)容減直接尋址字節(jié)與進(jìn)位位A,direct內(nèi)容ADDCA,R n寄存器與累加器與進(jìn)位位內(nèi)容相ADDCADDCADDCA,RiA,directA,#data加片內(nèi)RAM與累加器與進(jìn)位位相

9、加直接尋址字節(jié)與累加器與進(jìn)位位相加立即數(shù)與累加器與進(jìn)位位相加SUBBA,#data累加器內(nèi)容減立即數(shù)與進(jìn)位位內(nèi)容INCA累加器內(nèi)容加1DEC A累加器內(nèi)容減1INCR0寄存器內(nèi)容加1DEC Rn寄存器內(nèi)容減1INCRi片內(nèi)RAM內(nèi)容加1DEC Ri片內(nèi)RAM內(nèi)容減1INCdirect直接尋址字節(jié)內(nèi)容加1DEC direct直接尋址字節(jié)內(nèi)容減1INCDPTR數(shù)據(jù)指針寄存器內(nèi)容加1DAA累加器內(nèi)容十進(jìn)制調(diào)整MULAB累加器內(nèi)容乘寄存器B內(nèi)容DIVAB累加器內(nèi)容除寄存器B內(nèi)容助記符操作功能助記符操作功能邏輯操作類指令:ANLA,R n寄存器內(nèi)容與累加器內(nèi)容ORLA,R n寄存器內(nèi)容或累加器內(nèi)容ANL

10、A,Ri片內(nèi)RAM內(nèi)容與累加器內(nèi)容ORLA,Ri片內(nèi)RAM內(nèi)容或累加器內(nèi)容ANLA,direct直接尋址字節(jié)內(nèi)容與累加器內(nèi)ORLA,direct直接尋址字節(jié)內(nèi)容或累加器內(nèi)容ANLdirect, A容ORLdirect,A累加器內(nèi)容或直接尋址字節(jié)內(nèi)容ANLA,#data累加器內(nèi)容與直接尋址字節(jié)內(nèi)ORLA,#data立即數(shù)或累加器內(nèi)容容ANLdirect ,ORLdirect ,立即數(shù)或直接尋址字節(jié)內(nèi)容#data立即數(shù)與累加器內(nèi)容#data立即數(shù)與直接尋址字節(jié)內(nèi)容XRLA,R n寄存器內(nèi)容異或累加器內(nèi)容CPLA累加器內(nèi)容取反XRLA,Ri片內(nèi)RAM內(nèi)容異或累加器內(nèi)容CLRA累加器內(nèi)容清空XRLA,

11、direct直接尋址字節(jié)內(nèi)容異或累加器XRLdirect, A內(nèi)容XRLA,#data累加器內(nèi)容異或直接尋址字節(jié)內(nèi)容XRLdirevt ,#data立即數(shù)異或累加器內(nèi)容立即數(shù)異或直接尋址字節(jié)內(nèi)容RL A累加器內(nèi)容向左環(huán)移1位RR A累加器內(nèi)容向右環(huán)移1位RLC A累加器內(nèi)容帶進(jìn)位位向左環(huán)移1RRC A位累加器內(nèi)容帶進(jìn)位位向右環(huán)移 1位控制轉(zhuǎn)移類指令:助記符操作功能助記符操作功能AJMPaddr11絕對轉(zhuǎn)移JZ rel累加器內(nèi)容為零轉(zhuǎn)移LJMPaddr16長轉(zhuǎn)移JNZ rel累加器內(nèi)容不為零轉(zhuǎn)移SJMPrel相對短轉(zhuǎn)移CJNEA,direct,rel累加器內(nèi)容與直接尋址字節(jié)內(nèi)容不JMPA+DPT

12、R相對長轉(zhuǎn)移CJNEA,#data,rel等轉(zhuǎn)移CJNERn,#data,累加器內(nèi)容與立即數(shù)不等轉(zhuǎn)移rel寄存器內(nèi)容與立即數(shù)不等轉(zhuǎn)移CJNERi, #data.寄存器內(nèi)容減1不為零轉(zhuǎn)ACALLaddr11絕對調(diào)子rel移LCALLaddr16長調(diào)子DJNZDJNZRn, reldirect, relDirect內(nèi)容減1不為零轉(zhuǎn)移RET返回主程序NOP空操作RETI中斷返回主程序位操作類指令:助記符操作功能助記符操作功能MOVC,bit直接尋址位內(nèi)容送進(jìn)位位CPL C進(jìn)位位取反MOVbit, C進(jìn)位位內(nèi)容送直接尋址位CLR C進(jìn)位位清零SETB C進(jìn)位位置位CPL bit直接尋址位取反CLR b

13、it直接尋址位清零SETB bit直接尋址位置位ANL C,bit直接尋址位內(nèi)容與進(jìn)位位內(nèi)容ORL C,bit直接尋址位內(nèi)容或進(jìn)位位內(nèi)容ANL C,/bit直接尋址位的反與進(jìn)位位內(nèi)容ORL C,/bit直接尋址位的反或進(jìn)位位內(nèi)容JC rel進(jìn)位位為1轉(zhuǎn)移JNC rel進(jìn)位位不為1轉(zhuǎn)移JB bit, rel直接尋址位為1轉(zhuǎn)移JNB bit,rel直接尋址位不為1轉(zhuǎn)移JBC bit, rel直接尋址位為1轉(zhuǎn)移且該為清零一般常用程序模式:1、開始程序:ORG0000HJMP0030HORG0030H2、軟件延時子程序:YANSHI:MOVR7,#25D1:MOVR6,#50D2: MOV R5,#200DJNZR5,$DJNZR6,D2DJNZR7,D1RET若12M晶振則延時時長約為:25X 50X 200X 2X 106s,若為 6M晶振則延時時長為:25X 50X 200X 2X 2X 10-6s3、硬件延時子程序:(1)查詢方式:YANSHI: MOVTMOD,#01HMOVR0,#20UP:MOVTH0,#3CHMOVTLO,#OBOHSETBTR0JNBTF0,$CLRTF0DJNZR0,UPRET此延時程序為20 (RO)X 50ms,即為一秒,若需要更長的延

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論