快速入門單片機(jī)匯編語言_第1頁
快速入門單片機(jī)匯編語言_第2頁
快速入門單片機(jī)匯編語言_第3頁
快速入門單片機(jī)匯編語言_第4頁
快速入門單片機(jī)匯編語言_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

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

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

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

4、:1、 指令格式: 標(biāo)號:操作碼 目的操作數(shù),操作源;注釋 例如:LOOP:ADD A,#0FFH ;(A)(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尋址的單元中的內(nèi)容,

5、也就是(X)作地址,該地址的內(nèi)容用(X)表示。31、常用偽指令:ORG:規(guī)定目標(biāo)程序段或數(shù)據(jù)塊的起始地址。首地址指令,用于程序的最前面。 格式:ORG+空格+地址 例如:ORG 0000H END:結(jié)束指令,放在程序的末尾,單獨(dú)使用,一段程序只用一次。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、指令大集合: 傳送類指令: 助記符操作功能助記符操作

6、功能MOV A,#dataMOV Rn,#dataMOV Ri,#dataMOV direct,#dataMOV DPTR,#data16立即數(shù)送累加器立即數(shù)送寄存器立即數(shù)送片內(nèi)RAM立即數(shù)送直接尋址字節(jié)16位立即數(shù)送數(shù)據(jù)指針寄存器MOV direct,RnMOV A,RnMOV Rn,AMOV direct,AMOV Ri,A寄存器內(nèi)容送直接尋址字節(jié)寄存器內(nèi)容送累加器累加器內(nèi)容送寄存器累加器內(nèi)容送直接尋址字節(jié)累加器內(nèi)容送片內(nèi)RAMMOV Rn,directMOV A,directMOV Ri,directMOV direct2,direct1直接尋址字節(jié)內(nèi)容送寄存器直接尋址字節(jié)送累加器直接尋

7、址內(nèi)容送片內(nèi)RAM直接尋址字節(jié)內(nèi)容送另一直接尋址字節(jié)MOV direct,RiMOV A,Ri片內(nèi)RAM內(nèi)容送直接尋址字節(jié)片內(nèi)RAM內(nèi)容送累加器MOVX A,RiMOVX Ri,A片外RAM內(nèi)容送累加器累加器內(nèi)容送片外RAMMOVX A,DPTRMOVX DPTR,A片外RAM內(nèi)容送累加器累加器內(nèi)容送片外RAMMOVC A,A+DPTRMOVC A,A+PCXCH A,RnXCH A,RiXCH A,directXCHD A,Ri 相對數(shù)據(jù)指針內(nèi)容送累加器相對程序計數(shù)器內(nèi)容送累加器累加器內(nèi)容與寄存器內(nèi)容交換累加器與片內(nèi)RAM交換內(nèi)容累加器與直接尋址字節(jié)交換內(nèi)容累加器與片內(nèi)RAM交換低半字節(jié)內(nèi)容

8、PUSH directPOP directSWAP A直接尋址字節(jié)內(nèi)容壓入棧頂棧頂內(nèi)容彈出到直接尋址字節(jié)累加器交換高半字節(jié)和低半字節(jié)傳送類指令:助記符操作功能助記符操作功能ADD A,RnADD A,RiADD A,directADD A,#dataADDC A,RnADDC A,RiADDC A,directADDC A,#data寄存器內(nèi)容與累加器內(nèi)容相加片內(nèi)RAM與累加器內(nèi)容相加直接尋址字節(jié)與累加器內(nèi)容相加立即數(shù)與累加器內(nèi)容相加寄存器與累加器與進(jìn)位位內(nèi)容相加片內(nèi)RAM與累加器與進(jìn)位位相加直接尋址字節(jié)與累加器與進(jìn)位位相加立即數(shù)與累加器與進(jìn)位位相加SUBB A,RnSUBB A,RiSUBB

9、 A,directSUBB A,#data累加器內(nèi)容減寄存器與進(jìn)位位內(nèi)容累加器內(nèi)容減片內(nèi)RAM與進(jìn)位位內(nèi)容累加器內(nèi)容減直接尋址字節(jié)與進(jìn)位位內(nèi)容累加器內(nèi)容減立即數(shù)與進(jìn)位位內(nèi)容INC AINC R0INC RiINC directINC DPTR累加器內(nèi)容加1寄存器內(nèi)容加1片內(nèi)RAM內(nèi)容加1直接尋址字節(jié)內(nèi)容加1數(shù)據(jù)指針寄存器內(nèi)容加1DEC ADEC RnDEC RiDEC direct累加器內(nèi)容減1寄存器內(nèi)容減1片內(nèi)RAM內(nèi)容減1直接尋址字節(jié)內(nèi)容減1DA AMUL ABDIV AB累加器內(nèi)容十進(jìn)制調(diào)整累加器內(nèi)容乘寄存器B內(nèi)容累加器內(nèi)容除寄存器B內(nèi)容邏輯操作類指令:助記符操作功能助記符操作功能ANL

10、 A,RnANL A,RiANL A,directANL direct,AANL A,#dataANL direct,#data寄存器內(nèi)容與累加器內(nèi)容片內(nèi)RAM內(nèi)容與累加器內(nèi)容直接尋址字節(jié)內(nèi)容與累加器內(nèi)容累加器內(nèi)容與直接尋址字節(jié)內(nèi)容立即數(shù)與累加器內(nèi)容立即數(shù)與直接尋址字節(jié)內(nèi)容ORL A,RnORL A,RiORL A,directORL direct,AORL A,#dataORL direct,#data寄存器內(nèi)容或累加器內(nèi)容片內(nèi)RAM內(nèi)容或累加器內(nèi)容直接尋址字節(jié)內(nèi)容或累加器內(nèi)容累加器內(nèi)容或直接尋址字節(jié)內(nèi)容立即數(shù)或累加器內(nèi)容立即數(shù)或直接尋址字節(jié)內(nèi)容XRL A,RnXRL A,RiXRL A,d

11、irectXRL direct,AXRL A,#dataXRL direvt,#data寄存器內(nèi)容異或累加器內(nèi)容片內(nèi)RAM內(nèi)容異或累加器內(nèi)容直接尋址字節(jié)內(nèi)容異或累加器內(nèi)容累加器內(nèi)容異或直接尋址字節(jié)內(nèi)容立即數(shù)異或累加器內(nèi)容立即數(shù)異或直接尋址字節(jié)內(nèi)容CPL ACLR A累加器內(nèi)容取反累加器內(nèi)容清空RL ARR ARLC ARRC A累加器內(nèi)容向左環(huán)移1位累加器內(nèi)容向右環(huán)移1位累加器內(nèi)容帶進(jìn)位位向左環(huán)移1位累加器內(nèi)容帶進(jìn)位位向右環(huán)移1位控制轉(zhuǎn)移類指令:助記符操作功能助記符操作功能AJMP addr11LJMP addr16SJMP relJMP A+DPTR絕對轉(zhuǎn)移長轉(zhuǎn)移相對短轉(zhuǎn)移相對長轉(zhuǎn)移JZ r

12、elJNZ relCJNE A,direct,relCJNE A,#data,relCJNE Rn,#data,rel累加器內(nèi)容為零轉(zhuǎn)移累加器內(nèi)容不為零轉(zhuǎn)移累加器內(nèi)容與直接尋址字節(jié)內(nèi)容不等轉(zhuǎn)移累加器內(nèi)容與立即數(shù)不等轉(zhuǎn)移寄存器內(nèi)容與立即數(shù)不等轉(zhuǎn)移CJNE Ri,#data,relDJNZ Rn,relDJNZ direct,rel片內(nèi)RAM內(nèi)容與立即數(shù)不等轉(zhuǎn)移寄存器內(nèi)容減1不為零轉(zhuǎn)移Direct內(nèi)容減1不為零轉(zhuǎn)移ACALL addr11LCALL addr16絕對調(diào)子長調(diào)子RET RETI返回主程序中斷返回主程序NOP空操作位操作類指令:助記符操作功能助記符操作功能MOV C,bitMOV bi

13、t,C直接尋址位內(nèi)容送進(jìn)位位進(jìn)位位內(nèi)容送直接尋址位CPL CCLR CSETB CCPL bitCLR bitSETB bitANL C,bitORL C,bitANL C,/bitORL C,/bit進(jìn)位位取反進(jìn)位位清零進(jìn)位位置位直接尋址位取反直接尋址位清零直接尋址位置位直接尋址位內(nèi)容與進(jìn)位位內(nèi)容直接尋址位內(nèi)容或進(jìn)位位內(nèi)容直接尋址位的反與進(jìn)位位內(nèi)容直接尋址位的反或進(jìn)位位內(nèi)容JC relJNC relJB bit,relJNB bit,relJBC bit,rel進(jìn)位位為1轉(zhuǎn)移進(jìn)位位不為1轉(zhuǎn)移直接尋址位為1轉(zhuǎn)移直接尋址位不為1轉(zhuǎn)移直接尋址位為1轉(zhuǎn)移且該為清零3、 一般常用程序模式:1、開始程序

14、:ORG 0000H JMP 0030H ORG 0030H 2、軟件延時子程序:YANSHI: MOV R7,#25 D1: MOV R6,#50 D2: MOV R5,#200 DJNZ R5,$ DJNZ R6,D2 DJNZ R7,D1 RET若12M晶振則延時時長約為:25×50×200×2×10-6s,若為6M晶振則延時時長為:25×50×200×2×2×10-6s 3、硬件延時子程序:(1)查詢方式: YANSHI: MOV TMOD,#01H MOV R0,#20 UP: MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 JNB TF0,$ CLR TF0 DJNZ R0,UP RET此延時程序?yàn)?0(R0)×50ms,即為一秒,若需要更長的延時只需要改變R

溫馨提示

  • 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

提交評論