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

下載本文檔

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

文檔簡介

快速入門單片機(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.0—p0.7):為雙向三態(tài)口,可以作為輸入/輸出口。但在實(shí)際應(yīng)用中通常作為地址/數(shù)據(jù)總線口,即為低8位地址/數(shù)據(jù)總線分時(shí)復(fù)用。低8位地址在ALE信號(hào)的負(fù)跳變鎖存到外部地址鎖存器中,而高8位地址由P2口輸出。P1口(p1.0—p1.7):其每一位都能作為可編程的輸入或輸出線。P2口(p2.0—p2.7):每一位也都可作為輸入或輸出線用,當(dāng)擴(kuò)展系統(tǒng)外設(shè)時(shí),可作為擴(kuò)展系統(tǒng)的地址總線高8位,與P0口一起組成16位地址總線。對(duì)89c51單片機(jī)來說,P2口一般只作為地址總線使用,而不作為I/O線直接與外設(shè)相連。P3口(p3.0—p3.7):其為雙功能口,作為第一功能使用時(shí),其功能與P1口相同。當(dāng)作為第二功能使用時(shí),每一位功能如下表所示。P3口第二功能引腳第二功能引腳第二功能P3.0RXD—串行口數(shù)據(jù)輸入端P3.4INT0—定時(shí)器T0的外部輸入P3.1TXD—串行口數(shù)據(jù)輸出端P3.5INT1—定時(shí)器T1的外部輸入P3.2T0—外部中斷0請求P3.6WR—外部存儲(chǔ)器數(shù)據(jù)寫選通信號(hào)P3.3T1—外部中斷1請求P3.7RD—外部存儲(chǔ)器數(shù)據(jù)讀選通信號(hào)Rst\Vpd:上電復(fù)位端和掉電保護(hù)端。XTAL1tal1(xtal2):外接晶振一腳,分別接晶振的一端。Gnd:電源地。Vcc:電源正級(jí),接+5V。PALE\PROG\:ALE:地址鎖存控制端PSEN:片外程序存儲(chǔ)器讀選通信號(hào)輸出端,低電平有效。EA\vpp:訪問外部程序儲(chǔ)存器控制信號(hào),低電平有效。當(dāng)EA為高電平時(shí)訪問片內(nèi)存儲(chǔ)器,若超出范圍則自動(dòng)訪問外部程序存儲(chǔ)器。當(dāng)EA為低電平時(shí)只訪問外部程序存儲(chǔ)器。二、常用指令及其格式介紹:指令格式:[標(biāo)號(hào):]操作碼[目的操作數(shù)][,操作源][;注釋]例如:LOOP:ADDA,#0FFH;(A)←(A)+FFH常用符號(hào):Ri和Rn:R表示工作寄存器,i表示1和0,n表示0~7。rel:相對(duì)地址、地址偏移量,主要用于無條件相對(duì)短轉(zhuǎn)移指令和條件轉(zhuǎn)移指令。#data:包含于指令中的8位立即數(shù)。#data16:包含于指令中的16位立即數(shù)。addr16:16位目的地址。direct:直接尋址的地址。bit:內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM和特殊功能寄存器SFR中的可直接尋址位地址。@:間接尋址寄存器或基地址寄存器的前綴。(X):表示X中的內(nèi)容。((X)):表示由X尋址的單元中的內(nèi)容,也就是(X)作地址,該地址的內(nèi)容用((X))表示。31、常用偽指令:ORG:規(guī)定目標(biāo)程序段或數(shù)據(jù)塊的起始地址。首地址指令,用于程序的最前面。格式:ORG+空格+地址例如:ORG0000HEND:結(jié)束指令,放在程序的末尾,單獨(dú)使用,一段程序只用一次。DB(定義字節(jié)):從指定地址單元開始,定義若干字節(jié)存儲(chǔ)單元并賦初始值。4、常用尋址方式:直接尋址:MOVA,30H立即數(shù)尋址:MOVA,#20H寄存器間接尋址:MOVA,@Ri(i=1,2)基址加變址寄存器尋址:MOVA,@A+DPTR寄存器尋址:MOVA,Rn(n=0—7)5、指令大集合:傳送類指令:助記符操作功能助記符操作功能MOVA,#dataMOVRn,#dataMOV@Ri,#dataMOVdirect,#dataMOVDPTR,#data16立即數(shù)送累加器立即數(shù)送寄存器立即數(shù)送片內(nèi)RAM立即數(shù)送直接尋址字節(jié)16位立即數(shù)送數(shù)據(jù)指針寄存器MOVdirect,RnMOVA,RnMOVRn,AMOVdirect,AMOV@Ri,A寄存器內(nèi)容送直接尋址字節(jié)寄存器內(nèi)容送累加器累加器內(nèi)容送寄存器累加器內(nèi)容送直接尋址字節(jié)累加器內(nèi)容送片內(nèi)RAMMOVRn,directMOVA,directMOV@Ri,directMOVdirect2,direct1直接尋址字節(jié)內(nèi)容送寄存器直接尋址字節(jié)送累加器直接尋址內(nèi)容送片內(nèi)RAM直接尋址字節(jié)內(nèi)容送另一直接尋址字節(jié)MOVdirect,@RiMOVA,@Ri片內(nèi)RAM內(nèi)容送直接尋址字節(jié)片內(nèi)RAM內(nèi)容送累加器MOVXA,@RiMOVX@Ri,A片外RAM內(nèi)容送累加器累加器內(nèi)容送片外RAMMOVXA,@DPTRMOVX@DPTR,A片外RAM內(nèi)容送累加器累加器內(nèi)容送片外RAMMOVCA,@A+DPTRMOVCA,@A+PCXCHA,RnXCHA,@RiXCHA,directXCHDA,@Ri相對(duì)數(shù)據(jù)指針內(nèi)容送累加器相對(duì)程序計(jì)數(shù)器內(nèi)容送累加器累加器內(nèi)容與寄存器內(nèi)容交換累加器與片內(nèi)RAM交換內(nèi)容累加器與直接尋址字節(jié)交換內(nèi)容累加器與片內(nèi)RAM交換低半字節(jié)內(nèi)容PUSHdirectPOPdirectSWAPA直接尋址字節(jié)內(nèi)容壓入棧頂棧頂內(nèi)容彈出到直接尋址字節(jié)累加器交換高半字節(jié)和低半字節(jié)傳送類指令:助記符操作功能助記符操作功能ADDA,RnADDA,@RiADDA,directADDA,#dataADDCA,RnADDCA,@RiADDCA,directADDCA,#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)位位相加SUBBA,RnSUBBA,@RiSUBBA,directSUBBA,#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)容INCAINCR0INC@RiINCdirectINCDPTR累加器內(nèi)容加1寄存器內(nèi)容加1片內(nèi)RAM內(nèi)容加1直接尋址字節(jié)內(nèi)容加1數(shù)據(jù)指針寄存器內(nèi)容加1DECADECRnDEC@RiDECdirect累加器內(nèi)容減1寄存器內(nèi)容減1片內(nèi)RAM內(nèi)容減1直接尋址字節(jié)內(nèi)容減1DAAMULABDIVAB累加器內(nèi)容十進(jìn)制調(diào)整累加器內(nèi)容乘寄存器B內(nèi)容累加器內(nèi)容除寄存器B內(nèi)容邏輯操作類指令:助記符操作功能助記符操作功能ANLA,RnANLA,@RiANLA,directANLdirect,AANLA,#dataANLdirect,#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)容ORLA,RnORLA,@RiORLA,directORLdirect,AORLA,#dataORLdirect,#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)容XRLA,RnXRLA,@RiXRLA,directXRLdirect,AXRLA,#dataXRLdirevt,#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)容CPLACLRA累加器內(nèi)容取反累加器內(nèi)容清空RLARRARLCARRCA累加器內(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)移類指令:助記符操作功能助記符操作功能AJMPaddr11LJMPaddr16SJMPrelJMP@A+DPTR絕對(duì)轉(zhuǎn)移長轉(zhuǎn)移相對(duì)短轉(zhuǎn)移相對(duì)長轉(zhuǎn)移JZrelJNZrelCJNEA,direct,relCJNEA,#data,relCJNERn,#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,relDJNZRn,relDJNZdirect,rel寄存器內(nèi)容減1不為零轉(zhuǎn)移Direct內(nèi)容減1不為零轉(zhuǎn)移ACALLaddr11LCALLaddr16絕對(duì)調(diào)子長調(diào)子RETRETI返回主程序中斷返回主程序NOP空操作位操作類指令:助記符操作功能助記符操作功能MOVC,bitMOVbit,C直接尋址位內(nèi)容送進(jìn)位位進(jìn)位位內(nèi)容送直接尋址位CPLCCLRCSETBCCPLbitCLRbitSETBbitANLC,bitORLC,bitANLC,/bitORLC,/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)容JCrelJNCrelJBbit,relJNBbit,relJBCbit,rel進(jìn)位位為1轉(zhuǎn)移進(jìn)位位不為1轉(zhuǎn)移直接尋址位為1轉(zhuǎn)移直接尋址位不為1轉(zhuǎn)移直接尋址位為1轉(zhuǎn)移且該為清零一般常用程序模式:1、開始程序:ORG0000HJMP0030HORG0030H……2、軟件延時(shí)子程序:YANSHI:MOVR7,#25D1:MOVR6,#50D2:MOVR5,#200DJNZR5,$DJNZR6,D2DJNZR7,D1RET若12M晶振則延時(shí)時(shí)長約為:25×50×200×2×10-6s,若為6M晶振則延時(shí)時(shí)長為:25×50×200×2×2×10-6s3、硬件延時(shí)子程序:(1)查詢方式:YANSHI:MOVTMOD,#01HMOVR0,#20UP:MOVTH0,#3CHMOVTL0,#0B0HSETBTR0JNBTF0,$CLRTF0DJNZR0,UPRET此延時(shí)程序?yàn)?0(R0)×50ms,即為一秒,若需要更長的延時(shí)只需要改變R0的值。4、一級(jí)中斷程序:外部定時(shí)器0中斷ORG0000HJMP002CHORG0003HJMPZHONGDUANORG002CHMAIN:MOV

溫馨提示

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

評(píng)論

0/150

提交評(píng)論