(完整版)快速入門(mén)單片機(jī)匯編語(yǔ)言_第1頁(yè)
(完整版)快速入門(mén)單片機(jī)匯編語(yǔ)言_第2頁(yè)
(完整版)快速入門(mén)單片機(jī)匯編語(yǔ)言_第3頁(yè)
(完整版)快速入門(mén)單片機(jī)匯編語(yǔ)言_第4頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

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

2、。但在實(shí)際應(yīng)用中通常作為地址信號(hào)的負(fù)跳變鎖存到外部地址鎖存器中,/ 數(shù)據(jù)總線(xiàn)口,而高 8位地P1 口( p1.0 p1.7):其每一位都能作為可編程的輸入或輸出線(xiàn)。P2 口( p2.0 p2.7):每一位也都可作為輸入或輸出線(xiàn)用,當(dāng)擴(kuò)展系統(tǒng)外設(shè)時(shí),可作為擴(kuò)展系統(tǒng)的地址總線(xiàn)高 8 位,與P0 口一起組成 16 位地址總線(xiàn)。對(duì)89c51 單片機(jī)來(lái)說(shuō), P2 口一般只作為地址總線(xiàn)使用,而不作為 I/O 線(xiàn)直接與外設(shè)相連。P3 口( p3.0 p3.7):其為雙功能口,作為第一功能使用時(shí),其功能與P1 口相同。當(dāng)作為第二功能使用時(shí),每一位功能如下表所示。P3 口第二功能引腳第二功能引腳第二功能P3.0

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

4、出范圍則自動(dòng)訪問(wèn)外部程序存儲(chǔ)器。當(dāng)EA 為低電平時(shí)只訪問(wèn)外部程序存儲(chǔ)器。二、常用指令及其格式介紹:1、指令格式: 標(biāo)號(hào): 操作碼目的操作數(shù) ,操作源 ;注釋 例如: LOOP:ADDA,#0FFH;( A) (A)+FFH2 、常用符號(hào):Ri 和 Rn : R 表示工作寄存器,i 表示 1 和 0, n 表示 07 。rel :相對(duì)地址、地址偏移量,主要用于無(wú)條件相對(duì)短轉(zhuǎn)移指令和條件轉(zhuǎn)移指令。#data :包含于指令中的8 位立即數(shù)。#data16 :包含于指令中的16 位立即數(shù)。addr16 :16 位目的地址。direct :直接尋址的地址。bit :內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM 和特殊功能寄存器

5、SFR 中的可直接尋址位地址。 :間接尋址寄存器或基地址寄存器的前綴。( X ):表示 X 中的內(nèi)容。( X ):表示由X 尋址的單元中的內(nèi)容,也就是(X)作地址,該地址的內(nèi)容用( X)表示。3、常用偽指令:ORG :規(guī)定目標(biāo)程序段或數(shù)據(jù)塊的起始地址。格式: ORG+ 空格 +地址例如: ORG0000HEND :結(jié)束指令,放在程序的末尾,單獨(dú)使用,一段程序只用一次。DB (定義字節(jié)):從指定地址單元開(kāi)始,定義若干字節(jié)存儲(chǔ)單元并賦初始值。4、常用尋址方式:直接尋址:MOVA ,30H立即數(shù)尋址: MOVA ,#20H寄存器間接尋址:MOVA , Ri ( i=1 , 2)基址加變址寄存器尋址:

6、MOVA, A+DPTR寄存器尋址: MOVA ,Rn ( n=0 7)5、指令大集合:傳送類(lèi)指令:助記符MOV A ,#data MOV Rn,#data MOV Ri ,#data MOV direct , #data MOV DPTR , #data16MOV Rn,direct MOV A ,direct MOV Ri ,direct MOV direct2 , direct1操作功能助記符操作功能立即數(shù)送累加器MOVdirect,Rn寄存器內(nèi)容送直接尋址字節(jié)立即數(shù)送寄存器MOVA, Rn寄存器內(nèi)容送累加器立即數(shù)送片內(nèi) RAMMOVRn, A累加器內(nèi)容送寄存器立即數(shù)送直接尋址字節(jié)MOV

7、direct,A累加器內(nèi)容送直接尋址字節(jié)16 位立即數(shù)送數(shù)據(jù)指針寄存器MOVRi , A累加器內(nèi)容送片內(nèi) RAM直接尋址字節(jié)內(nèi)容送寄存器MOVdirect,Ri片內(nèi) RAM 內(nèi)容送直接尋址字節(jié)直接尋址字節(jié)送累加器MOVA, Ri片內(nèi) RAM 內(nèi)容送累加器直接尋址內(nèi)容送片內(nèi) RAM直接尋址字節(jié)內(nèi)容送另一直接尋址字節(jié)MOVXA , RiMOVXRi , AMOVC A,A+DPTR MOVC A,A+PC XCH A,Rn XCH A,Ri XCH A,direct XCHD A,Ri片外 RAM 內(nèi)容送累加器累加器內(nèi)容送片外 RAM 相對(duì)數(shù)據(jù)指針內(nèi)容送累加器相對(duì)程序計(jì)數(shù)器內(nèi)容送累加器累加器內(nèi)容與

8、寄存器內(nèi)容交換累加器與片內(nèi) RAM 交換內(nèi)容累加器與直接尋址字節(jié)交換內(nèi)容累加器與片內(nèi)RAM 交換低半字節(jié)內(nèi)容MOVX A,DPTR MOVX DPTR,A PUSH direct POP directSWAPA片外 RAM 內(nèi)容送累加器累加器內(nèi)容送片外 RAM 直接尋址字節(jié)內(nèi)容壓入棧頂棧頂內(nèi)容彈出到直接尋址字節(jié)累加器交換高半字節(jié)和低半字節(jié)傳送類(lèi)指令:助記符ADD A,Rn ADD A,Ri ADD A,directADDA,#dataADDCA,RnADDCA,RiADDCA,directADDCA,#dataINCAINCR0INC Ri INC directINC DPTR DA A MU

9、L AB DIV AB操作功能寄存器內(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)位位相加累加器內(nèi)容加1寄存器內(nèi)容加1片內(nèi) RAM 內(nèi)容加 1直接尋址字節(jié)內(nèi)容加1數(shù)據(jù)指針寄存器內(nèi)容加1累加器內(nèi)容十進(jìn)制調(diào)整累加器內(nèi)容乘寄存器B 內(nèi)容累加器內(nèi)容除寄存器B 內(nèi)容助記符操作功能SUBBA,Rn累加器內(nèi)容減寄存器與進(jìn)位位內(nèi)容SUBBA,Ri累加器內(nèi)容減片內(nèi) RAM 與進(jìn)位位內(nèi)容SUBB累加器內(nèi)容減直接尋址字節(jié)與進(jìn)位位內(nèi)容A,direct累

10、加器內(nèi)容減立即數(shù)與進(jìn)位位內(nèi)容SUBBA,#dataDECA累加器內(nèi)容減1DECRn寄存器內(nèi)容減1DECRi片內(nèi) RAM 內(nèi)容減 1DECdirect直接尋址字節(jié)內(nèi)容減 1邏輯操作類(lèi)指令:助記符ANL A,Rn ANL A,Ri ANL A,directANLdirect ,AANLA,#dataANLdirect ,#dataXRLA,RnXRLA,RiXRLA,directXRLdirect , AXRLA,#dataXRLdirevt ,#dataRLARR ARLC ARRCA控制轉(zhuǎn)移類(lèi)指令:操作功能寄存器內(nèi)容與累加器內(nèi)容片內(nèi) RAM 內(nèi)容與累加器內(nèi)容直接尋址字節(jié)內(nèi)容與累加器內(nèi)容累加器內(nèi)

11、容與直接尋址字節(jié)內(nèi)容立即數(shù)與累加器內(nèi)容立即數(shù)與直接尋址字節(jié)內(nèi)容寄存器內(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)容累加器內(nèi)容向左環(huán)移1 位累加器內(nèi)容向右環(huán)移1 位累加器內(nèi)容帶進(jìn)位位向左環(huán)移1 位累加器內(nèi)容帶進(jìn)位位向右環(huán)移1 位助記符操作功能ORLA,Rn寄存器內(nèi)容或累加器內(nèi)容ORLA,Ri片內(nèi) RAM 內(nèi)容或累加器內(nèi)容ORLA,direct直接尋址字節(jié)內(nèi)容或累加器內(nèi)容ORLdirect,A累加器內(nèi)容或直接尋址字節(jié)內(nèi)容ORLA,#data立即數(shù)或累加器內(nèi)容ORLdirect , #dat

12、a立即數(shù)或直接尋址字節(jié)內(nèi)容CPLA累加器內(nèi)容取反CLRA累加器內(nèi)容清空助記符AJMPaddr11LJMPaddr16SJMPrelJMPA+DPTR操作功能助記符操作功能絕對(duì)轉(zhuǎn)移JZ rel累加器內(nèi)容為零轉(zhuǎn)移長(zhǎng)轉(zhuǎn)移JNZrel累加器內(nèi)容不為零轉(zhuǎn)移相對(duì)短轉(zhuǎn)移CJNEA,direct , rel累加器內(nèi)容與直接尋址字節(jié)內(nèi)容不等轉(zhuǎn)移相對(duì)長(zhǎng)轉(zhuǎn)移CJNEA,#data , rel累加器內(nèi)容與立即數(shù)不等轉(zhuǎn)移CJNERn ,#data, rel寄存器內(nèi)容與立即數(shù)不等轉(zhuǎn)移CJNERi ,#data,rel片內(nèi) RAM 內(nèi)容與立即數(shù)不等轉(zhuǎn)移ACALLaddr11DJNZRn, rel寄存器內(nèi)容減 1 不為零轉(zhuǎn)移

13、LCALLaddr16DJNZdirect , relDirect 內(nèi)容減 1 不為零轉(zhuǎn)移RET返回主程序NOPRETI中斷返回主程序位操作類(lèi)指令:助記符操作功能助記符MOVC,bit直接尋址位內(nèi)容送進(jìn)位位CPLCMOVbit ,C進(jìn)位位內(nèi)容送直接尋址位CLRCSETBCCPLbitCLRbitSETBbitANLC,bitORLC,bitANLC,/bitORLC,/bitJCrel進(jìn)位位為 1 轉(zhuǎn)移JNCrel進(jìn)位位不為 1 轉(zhuǎn)移JBbit , rel直接尋址位為1轉(zhuǎn)移JNBbit,rel直接尋址位不為1 轉(zhuǎn)移JBCbit, rel直接尋址位為1轉(zhuǎn)移且該為清零絕對(duì)調(diào)子長(zhǎng)調(diào)子空操作操作功能進(jìn)

14、位位取反進(jìn)位位清零進(jìn)位位置位直接尋址位取反直接尋址位清零直接尋址位置位直接尋址位內(nèi)容與進(jìn)位位內(nèi)容直接尋址位內(nèi)容或進(jìn)位位內(nèi)容直接尋址位的反與進(jìn)位位內(nèi)容直接尋址位的反或進(jìn)位位內(nèi)容三、一般常用程序模式:1、開(kāi)始程序:ORG0000HJMP0030HORG0030H2、軟件延時(shí)子程序:YANSHI:MOVR7,#25D1:MOVR6,#50D2:MOVR5,#200DJNZR5,$DJNZR6,D2DJNZR7,D1RET若 12M 晶振則延時(shí)時(shí)長(zhǎng)約為:25×50×200×2×10 -6 s,若為 6M 晶振則延時(shí)時(shí)長(zhǎng)為:25×50×200×2×2×10 -6s3 、硬件延時(shí)子程序: ( 1)查詢(xún)方式:YANSHI:MOVTMOD,#01HMOVR0,#20UP:MOVTH0,#3CHMOVTL0,#0B0HSETBTR0JNBTF0,$CLRTF0DJNZR0,UPRET此延時(shí)程序?yàn)?0( R0 ) 

溫馨提示

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

評(píng)論

0/150

提交評(píng)論