單片機(jī)(全套220張課件)_第1頁(yè)
單片機(jī)(全套220張課件)_第2頁(yè)
單片機(jī)(全套220張課件)_第3頁(yè)
單片機(jī)(全套220張課件)_第4頁(yè)
單片機(jī)(全套220張課件)_第5頁(yè)
已閱讀5頁(yè),還剩215頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 單片機(jī)概述1.1 單片機(jī)的概念控制器運(yùn)算器存儲(chǔ)器輸入/輸出設(shè)備CPU單片機(jī)電子管晶體管集成電路大規(guī)模、超大規(guī)模集成電路甚大規(guī)模集成電路發(fā)展方向:1.高速度、大容量、高性能2.體積小、價(jià)格廉、穩(wěn)定可靠 單片機(jī)概述1.1 單片機(jī)的概念控制器運(yùn)算器存儲(chǔ)器輸入 單片機(jī)概述1.1 單片機(jī)的概念1.1.1 單片機(jī)的名稱一片芯片相當(dāng)于一個(gè)計(jì)算機(jī)系統(tǒng)單片機(jī)Single Chip MicroComputer微控制器Micro Control Unit國(guó)內(nèi)通稱國(guó)際通稱嵌入式微控制器Embed 單片機(jī)概述1.1 單片機(jī)的概念1.1.1 單片機(jī)的 單片機(jī)概述1.1 單片機(jī)的概念1.1.1 單片機(jī)的名稱1.1.2 通

2、用單片機(jī)和專用單片機(jī)ASIC1.1.3 單片機(jī)和單片機(jī)系統(tǒng)(1)單片機(jī):芯片本身(2)單片機(jī)系統(tǒng):以單片機(jī)為中心組成的一定功能的 計(jì)算機(jī)系統(tǒng)。1.1.5 單片機(jī)的程序設(shè)計(jì)語(yǔ)言和軟件(1)單片機(jī)的程序設(shè)計(jì)語(yǔ)言:機(jī)器語(yǔ)言、匯編語(yǔ)言、C語(yǔ)言(2)單片機(jī)的軟件:編程軟件、仿真軟件、編譯軟件、寫入軟件、監(jiān)控軟件。1.1.4 單片機(jī)的應(yīng)用系統(tǒng)和開發(fā)系統(tǒng)(1)應(yīng)用系統(tǒng)(2)開發(fā)系統(tǒng):仿真器 單片機(jī)概述1.1 單片機(jī)的概念1.1.1 單片機(jī)的 單片機(jī)概述1.1 單片機(jī)的概念1.2 單片機(jī)的發(fā)展1.2.1 單片機(jī)的發(fā)展概述1946 第一臺(tái)計(jì)算機(jī)誕生1971 第一個(gè)微處理器誕生1976 MCS-48(8位)198

3、0 MCS-51(8位)80年代末 Motorola 680X Zilog Z-8 Rockwell 650X1983 MCS-96(16位)當(dāng)前:(1) MCS-51、MCS-96系列發(fā)展。(2) PIC (Microchip公司)(3) DSP (公司) 單片機(jī)概述1.1 單片機(jī)的概念1.2 單片機(jī)的發(fā)展 單片機(jī)概述1.2 單片機(jī)的發(fā)展1.2.1 單片機(jī)的發(fā)展概述1.2.2 MCS-51單片機(jī)系列1.2.3 80C51單片機(jī)系列80C51是MCS-51系列單片機(jī)的發(fā)展:性能、功耗 單片機(jī)概述1.2 單片機(jī)的發(fā)展1.2.1 單片機(jī)的 單片機(jī)概述1.1 單片機(jī)的概念1.2 單片機(jī)的發(fā)展1.3

4、單片機(jī)的應(yīng)用1.3.1 單片機(jī)應(yīng)用的特點(diǎn)1. 控制系統(tǒng)的在線應(yīng)用(1) 控制系統(tǒng)中的離線應(yīng)用。(2) 控制系統(tǒng)中的在線應(yīng)用。2. 軟硬件結(jié)合3. 應(yīng)用現(xiàn)場(chǎng)環(huán)境惡劣4. 應(yīng)用的廣泛性極其重要意義民用級(jí) 0+70 工業(yè)級(jí) -40 +85 軍用級(jí) -65 +125 單片機(jī)概述1.1 單片機(jī)的概念1.2 單片機(jī)的發(fā)展1.3 單片機(jī)的應(yīng)用1.3.1 單片機(jī)應(yīng)用的特點(diǎn)1.3.2 單片機(jī)的應(yīng)用領(lǐng)域1. 工業(yè)自動(dòng)化方面2. 儀器儀表方面3. 家用電器方面4. 信息和通信產(chǎn)品方面5. 軍事裝備方面1.3 單片機(jī)的應(yīng)用1.3.1 單片機(jī)應(yīng)用的特點(diǎn)1.3.單片機(jī)芯片的硬件結(jié)構(gòu)2.1 MCS-51單片機(jī)的邏輯結(jié)構(gòu)及信

5、號(hào)引腳2.1.1 MCS-51單片機(jī)結(jié)構(gòu)框圖2.1.2 MCS-51單片機(jī)芯片內(nèi)部邏輯結(jié)構(gòu)中央處理器(CPU)運(yùn)算器控制器:ALU(算術(shù)邏輯單元)、ACC(累加器)、B寄存器、程序狀態(tài)字、暫存寄存器:PC(程序計(jì)數(shù)器)、PC加1寄存器、指令寄存器、指令譯碼器、定時(shí)與控制電路單片機(jī)芯片的硬件結(jié)構(gòu)2.1 MCS-51單片機(jī)的邏輯結(jié)構(gòu)及信2.1.2 MCS-51單片機(jī)芯片內(nèi)部邏輯結(jié)構(gòu)中央處理器(CPU)2. 內(nèi)部數(shù)據(jù)寄存器RAM(128*8)、RAM地址寄存器3. 內(nèi)部程序寄存器ROM(4K*8)、程序地址寄存器4. 定時(shí)器/計(jì)數(shù)器2個(gè)16位的定時(shí)器/計(jì)數(shù)器5. 并行I/O口4個(gè)8位的I/O口(P0

6、、P1、P2、P3)2.1.2 MCS-51單片機(jī)芯片內(nèi)部邏輯結(jié)構(gòu)中央處理器(C2.1.2 MCS-51單片機(jī)芯片內(nèi)部邏輯結(jié)構(gòu)6. 串行口7. 中斷控制系統(tǒng)5個(gè)中斷源:外中斷2個(gè)、定時(shí)/計(jì)數(shù)中斷2個(gè)、串行中斷1個(gè)。8. 時(shí)鐘電路9. 位處理器10. 總線2.1.2 MCS-51單片機(jī)芯片內(nèi)部邏輯結(jié)構(gòu)6. 串行口2.1 MCS-51單片機(jī)的邏輯結(jié)構(gòu)及信號(hào)引腳2.1.1 MCS-51單片機(jī)結(jié)構(gòu)框圖2.1.2 MCS-51單片機(jī)芯片內(nèi)部邏輯結(jié)構(gòu)2.1.3 MCS-51的信號(hào)引腳40引腳雙列直插式2.1 MCS-51單片機(jī)的邏輯結(jié)構(gòu)及信號(hào)引腳2.1.1 M2.1 MCS-51單片機(jī)的邏輯結(jié)構(gòu)及信號(hào)引腳

7、2.1.1 MCS-51單片機(jī)結(jié)構(gòu)框圖2.1.2 MCS-51單片機(jī)芯片內(nèi)部邏輯結(jié)構(gòu)2.1.3 MCS-51的信號(hào)引腳40引腳雙列直插式1. 信號(hào)引腳介紹 輸入/輸出口線P0.0P0.7 P0口8位雙向口線P1.0P1.7 P1口8位雙向口線P2.0P2.7 P2口8位雙向口線P3.0P3.7 P3口8位雙向口線 ALE 地址鎖存控制信號(hào)(1) P0口輸出的低8位地址鎖存控制信號(hào)(2) 作為外部時(shí)鐘或外部定時(shí)脈沖2.1 MCS-51單片機(jī)的邏輯結(jié)構(gòu)及信號(hào)引腳2.1.1 M2.1.3 MCS-51的信號(hào)引腳1. 信號(hào)引腳介紹 PSEN 外部程序存儲(chǔ)器讀選通信號(hào) EA 訪問程序存儲(chǔ)器控制信號(hào)0:僅

8、訪問外部程序存儲(chǔ)器1:從內(nèi)部程序存儲(chǔ)器開始訪問,并可延續(xù)至外部程序存儲(chǔ)器。 RST 復(fù)位信號(hào):連續(xù)2個(gè)周期以上的高電平。 XTAL1、XTAL2 外接晶體引線端 VSS 地線 VCC +5V電源2.1.3 MCS-51的信號(hào)引腳1. 信號(hào)引腳介紹 PSE2.1.3 MCS-51的信號(hào)引腳1. 信號(hào)引腳介紹2. 信號(hào)引腳的第二功能 P3口線的第二功能外部RAM讀選通RDP3.7外部RAM寫選通WRP3.6定時(shí)器/計(jì)數(shù)器1計(jì)數(shù)輸入T1P3.5定時(shí)器/計(jì)數(shù)器0計(jì)數(shù)輸入T0P3.4外部中斷1申請(qǐng)INT1P3.3外部中斷0申請(qǐng)INT0P3.2串行數(shù)據(jù)發(fā)送TXDP3.1串行數(shù)據(jù)接受RXDP3.0信號(hào)名稱第

9、二功能口線2.1.3 MCS-51的信號(hào)引腳1. 信號(hào)引腳介紹2. 信2.1.3 MCS-51的信號(hào)引腳1. 信號(hào)引腳介紹2. 信號(hào)引腳的第二功能 P3口線的第二功能 EPROM存儲(chǔ)器程序固化所需要的信號(hào)(1) 編程脈沖:30引腳(ALE/PROG)(2) 編程電壓:31引腳(EA/VPP) 備用電源引入9 引腳(RST/VPD)2.1.3 MCS-51的信號(hào)引腳1. 信號(hào)引腳介紹2. 信2 單片機(jī)芯片的硬件結(jié)構(gòu)2.1 MCS-51單片機(jī)的邏輯結(jié)構(gòu)及信號(hào)引腳2.2 MCS-51單片機(jī)的內(nèi)部存儲(chǔ)器2.2.1 內(nèi)部數(shù)據(jù)存儲(chǔ)器低128單元以80C51為例數(shù)據(jù)存儲(chǔ)器程序存儲(chǔ)器低128單元(單元地址00

10、H-7FH)高128單元(單元地址80H-FFH)1. 通用寄存器區(qū) (00H-1FH)(1) 分成四組0,1,2,3,每組8個(gè)寄存器(R7-R0),每個(gè)寄存器為8位。(2) 任意時(shí)刻,CPU只能使用其中的一組寄存器。(3) 運(yùn)用通用寄存器,可以簡(jiǎn)化程序設(shè)計(jì),提高運(yùn)行速度。2 單片機(jī)芯片的硬件結(jié)構(gòu)2.1 MCS-51單片機(jī)的邏輯結(jié)2.2.1 內(nèi)部數(shù)據(jù)存儲(chǔ)器低128單元1. 通用寄存器區(qū) (00H-1FH)2.2 MCS-51單片機(jī)的內(nèi)部存儲(chǔ)器2. 位尋址區(qū) (20H-2FH)3. 用戶RAM區(qū) (30H-7FH)2.2.2 內(nèi)部數(shù)據(jù)存儲(chǔ)器高128單元專用寄存器(SFR)、特殊功能寄存器1. 專

11、用寄存器簡(jiǎn)介:22個(gè),可尋址21個(gè)。(1) 程序計(jì)數(shù)器(PC):16位,不可尋址。(2) 累加器A(或ACC):8位,尋址地址0E0H。(3) B寄存器:8位,尋址地址0F0H。(4) 程序狀態(tài)字(PSW):8位,尋址地址0D0H。2.2.1 內(nèi)部數(shù)據(jù)存儲(chǔ)器低128單元1. 通用寄存器區(qū) (2.2.2 內(nèi)部數(shù)據(jù)存儲(chǔ)器高128單元1. 專用寄存器簡(jiǎn)介(4) 程序狀態(tài)字(PSW):8位,尋址地址0D0H。位序PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位標(biāo)志CYACF0RS1RS0OV/PCY: 進(jìn)位標(biāo)志位。AC: 輔助進(jìn)位標(biāo)志位。F0: 用戶標(biāo)志位。RS1和R

12、S0 : 寄存器組選擇位。OV: 溢出標(biāo)志位。P: 奇偶標(biāo)志位。(5) 數(shù)據(jù)指針(DPTR):16位,尋址地址82H(DPL), 83H(DPH)。2.2.2 內(nèi)部數(shù)據(jù)存儲(chǔ)器高128單元1. 專用寄存器簡(jiǎn)介(2.2.2 內(nèi)部數(shù)據(jù)存儲(chǔ)器高128單元1. 專用寄存器簡(jiǎn)介2. 專用寄存器的字節(jié)尋址(21個(gè))3. 專用寄存器的位尋址(1) 21個(gè)專用寄存器不連續(xù)分布在內(nèi)部RAM的高128個(gè)單元,空余單元不能使用。(2) 程序計(jì)數(shù)器(PC)不可尋址。(3) 對(duì)專用寄存器采用直接尋址方式,指令中使用寄存器符號(hào)或寄存器地址。(1) 11個(gè)專用寄存器可位尋址(83個(gè)尋址位)。(2) 與內(nèi)部數(shù)據(jù)存儲(chǔ)器低128單

13、元中的位尋址區(qū)(20H-2FH),共同組成數(shù)據(jù)位存儲(chǔ)區(qū)。2.2.2 內(nèi)部數(shù)據(jù)存儲(chǔ)器高128單元1. 專用寄存器簡(jiǎn)介22.2 MCS-51單片機(jī)的內(nèi)部存儲(chǔ)器2.2.1 內(nèi)部數(shù)據(jù)存儲(chǔ)器低128單元2.2.2 內(nèi)部數(shù)據(jù)存儲(chǔ)器高128單元2.2.3 MCS-51的堆棧操作術(shù)語(yǔ):出棧、入棧、棧底、棧頂、后入先出1、堆棧的功能:保護(hù)斷點(diǎn)、保護(hù)現(xiàn)場(chǎng)2、堆棧的開辟:內(nèi)部數(shù)據(jù)存儲(chǔ)器3、堆棧指示器:SP(復(fù)位后為07H, 初始化為30H)4、堆棧類型:向上生長(zhǎng)型入棧SP30H或4AH或78H(1) SPSP+12.2 MCS-51單片機(jī)的內(nèi)部存儲(chǔ)器2.2.1 內(nèi)部數(shù)據(jù)存2.2 MCS-51單片機(jī)的內(nèi)部存儲(chǔ)器2.2

14、.1 內(nèi)部數(shù)據(jù)存儲(chǔ)器低128單元2.2.2 內(nèi)部數(shù)據(jù)存儲(chǔ)器高128單元2.2.3 MCS-51的堆棧操作術(shù)語(yǔ):出棧、入棧、棧底、棧頂、后入先出1、堆棧的功能:保護(hù)斷點(diǎn)、保護(hù)現(xiàn)場(chǎng)2、堆棧的開辟:內(nèi)部數(shù)據(jù)存儲(chǔ)器3、堆棧指示器:SP(復(fù)位后為07H, 初始化為30H)4、堆棧類型:向上生長(zhǎng)型入棧30H或4AH或78H(1) SPSP+1SP(2) 寫入數(shù)據(jù)出棧(1) 讀出數(shù)據(jù)(2) SPSP-12.2 MCS-51單片機(jī)的內(nèi)部存儲(chǔ)器2.2.1 內(nèi)部數(shù)據(jù)存2.2 MCS-51單片機(jī)的內(nèi)部存儲(chǔ)器2.2.1 內(nèi)部數(shù)據(jù)存儲(chǔ)器低128單元2.2.2 內(nèi)部數(shù)據(jù)存儲(chǔ)器高128單元2.2.3 MCS-51的堆棧操作

15、術(shù)語(yǔ):出棧、入棧、棧底、棧頂、后入先出1、堆棧的功能:保護(hù)斷點(diǎn)、保護(hù)現(xiàn)場(chǎng)2、堆棧的開辟:內(nèi)部數(shù)據(jù)存儲(chǔ)器3、堆棧指示器:SP(復(fù)位后為07H, 初始化為30H)4、堆棧類型:向上生長(zhǎng)型入棧30H或4AH或78H(1) SPSP+1SP(2) 寫入數(shù)據(jù)出棧(1) 讀出數(shù)據(jù)(2) SPSP-1、向下生長(zhǎng)型(8086)2.2 MCS-51單片機(jī)的內(nèi)部存儲(chǔ)器2.2.1 內(nèi)部數(shù)據(jù)存2.2 MCS-51單片機(jī)的內(nèi)部存儲(chǔ)器2.2.1 內(nèi)部數(shù)據(jù)存儲(chǔ)器低128單元2.2.2 內(nèi)部數(shù)據(jù)存儲(chǔ)器高128單元2.2.3 MCS-51的堆棧操作術(shù)語(yǔ):出棧、入棧、棧底、棧頂、后入先出1、堆棧的功能:保護(hù)斷點(diǎn)、保護(hù)現(xiàn)場(chǎng)2、堆棧

16、的開辟:內(nèi)部數(shù)據(jù)存儲(chǔ)器3、堆棧指示器:SP(復(fù)位后為07H, 初始化為30H)4、堆棧類型:向上生長(zhǎng)型、向下生長(zhǎng)型(8086)5、堆棧使用方式:自動(dòng)方式指令方式2.2 MCS-51單片機(jī)的內(nèi)部存儲(chǔ)器2.2.1 內(nèi)部數(shù)據(jù)存2.2 MCS-51單片機(jī)的內(nèi)部存儲(chǔ)器2.2.4 內(nèi)部程序存儲(chǔ)器80C51:4K ROM程序存儲(chǔ)器,地址0000H-0FFFH80C52:8K ROM程序存儲(chǔ)器,地址0000H-1FFFH啟動(dòng)單元: 0000H-0002H中斷地址區(qū):0003H-002AH2.2.5 MCS-51單片機(jī)系統(tǒng)的存儲(chǔ)器結(jié)構(gòu)特點(diǎn)1. 數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器分開3. 存儲(chǔ)器擴(kuò)展16位地址線-尋址范圍64

17、KB地址 0000H-FFFFH2. 內(nèi)部存儲(chǔ)器和外部存儲(chǔ)器分開2.2 MCS-51單片機(jī)的內(nèi)部存儲(chǔ)器2.2.4 內(nèi)部程序單片機(jī)(全套220張課件)2 單片機(jī)芯片的硬件結(jié)構(gòu)2.1 MCS-51單片機(jī)的邏輯結(jié)構(gòu)及信號(hào)引腳2.2 MCS-51單片機(jī)的內(nèi)部存儲(chǔ)器2.3 MCS-51單片機(jī)并行輸入/輸出口電路P0.0P0.7 P0口8位雙向口線P1.0P1.7 P1口8位雙向口線P2.0P2.7 P2口8位雙向口線P3.0P3.7 P3口8位雙向口線2.3.1 P0口字節(jié)地址:80H; 位地址:80H-87H.1. 雙向I/0接口輸出(寫):加上拉電阻輸入(讀)低8位地址接口 雙向數(shù)據(jù)接口2 單片機(jī)芯

18、片的硬件結(jié)構(gòu)2.1 MCS-51單片機(jī)的邏輯結(jié)2.3 MCS-51單片機(jī)并行輸入/輸出口電路2.3.1 P0口MUX選擇端V1V2地址/數(shù)據(jù)推拉式輸出I/O輸出,控制端為0,與門封鎖,V2截止。外接上拉電阻傳送指令都是讀引腳2.3 MCS-51單片機(jī)并行輸入/輸出口電路2.3.1 2.3 MCS-51單片機(jī)并行輸入/輸出口電路2.3.1 P0口2.3.2 P1口字節(jié)地址:90H; 位地址:90H-97H.1. 準(zhǔn)雙向I/0接口(無(wú)三態(tài))2. 輸出時(shí)不需上拉電阻2.3.3 P2口字節(jié)地址:0A0H; 位地址:0A0H-0A7H.1. 高8位地址接口2. 準(zhǔn)雙向I/O接口3. 輸入時(shí)先寫“1”2.

19、3 MCS-51單片機(jī)并行輸入/輸出口電路2.3.1 2.3 MCS-51單片機(jī)并行輸入/輸出口電路2.3.1 P0口2.3.2 P1口2.3.3 P2口2.3.4 P3口字節(jié)地址:0B0H; 位地址:0B0H-0B7H.1. 準(zhǔn)雙向I/0接口2. 第二功能信號(hào)2.3.5 MCS-51口電路小結(jié)1. 都是雙向I/0接口P0口可同時(shí)用為地址和數(shù)據(jù)總線P2口可用為地址總線2. P0口三態(tài)門, P1、P2、P3口準(zhǔn)雙向口。3. P3口具有第二功能2.3 MCS-51單片機(jī)并行輸入/輸出口電路2.3.1 2 單片機(jī)芯片的硬件結(jié)構(gòu)2.1 MCS-51單片機(jī)的邏輯結(jié)構(gòu)及信號(hào)引腳2.2 MCS-51單片機(jī)的

20、內(nèi)部存儲(chǔ)器2.3 MCS-51單片機(jī)并行輸入/輸出口電路2.4 MCS-51單片機(jī)時(shí)鐘電路與時(shí)序1. 時(shí)鐘信號(hào)的產(chǎn)生XTAL2XTAL1C2C1組成:晶體振蕩器、電容(2個(gè))1.2MHz-12MHz取6M取30pF內(nèi)部時(shí)鐘電路2. 引入外部脈沖信號(hào)2.4.1 時(shí)鐘信號(hào)2 單片機(jī)芯片的硬件結(jié)構(gòu)2.1 MCS-51單片機(jī)的邏輯結(jié)2.4 MCS-51單片機(jī)時(shí)鐘電路與時(shí)序2.4.1 時(shí)鐘信號(hào)2.4.2 時(shí)序定時(shí)單位振蕩脈沖例:12M、6M2分頻時(shí)鐘脈沖6M、3M3分頻ALE6分頻機(jī)器周期1M、0.5M1. 拍節(jié)與狀態(tài)一個(gè)時(shí)鐘脈沖一個(gè)拍節(jié)(S)一個(gè)拍節(jié)(S) 兩個(gè)狀態(tài)(P)2. 機(jī)器周期1M-1us0.

21、5M -2us3. 指令周期一個(gè)指令周期包含若干個(gè)機(jī)器周期2.4.3 典型指令周期2.4 MCS-51單片機(jī)時(shí)鐘電路與時(shí)序2.4.1 時(shí)鐘信2 單片機(jī)芯片的硬件結(jié)構(gòu)2.5 MCS-51單片機(jī)工作方式2.5.1 復(fù)位方式和復(fù)位電路2. 復(fù)位狀態(tài)1. 復(fù)位信號(hào)及其產(chǎn)生(1) 復(fù)位信號(hào) :RST(2) 復(fù)位信號(hào)產(chǎn)生:上電復(fù)位、按鍵電平復(fù)位、按鍵脈沖復(fù)位2.5.2 程序執(zhí)行方式PC(0000H)-程序從0000H開始執(zhí)行2.5.3 掉電保護(hù)方式2.5.4 低功耗方式2 單片機(jī)芯片的硬件結(jié)構(gòu)2.5 MCS-51單片機(jī)工作方MCS-51單片機(jī)指令系統(tǒng)3.1 MCS-51單片機(jī)指令格式和尋址方式3.1.1

22、指令系統(tǒng)概述3.1.2 MCS-51單片機(jī)指令格式3.1.3 MCS-51單片機(jī)尋址方式操作碼:規(guī)定指令進(jìn)行什么操作。操作數(shù):規(guī)定指令操作的對(duì)象。尋址方式:指定操作數(shù)所在單元的方式。(共七種)3。寄存器尋址方式MOV A,R02。直接尋址方式MOV A,3AH4。寄存器間接尋址方式MOV A,R01。立即尋址方式MOV A,#3AHMOV DPTR,#123AHMOV A,R1MCS-51單片機(jī)指令系統(tǒng)3.1 MCS-51單片機(jī)指令3.1.3 MCS-51單片機(jī)尋址方式3.1 MCS-51單片機(jī)指令格式和尋址方式5。變址尋址方式MOVC A,A+DPTRMOVC A,A+PCJMP A,A+D

23、PTR6。位尋址方式MOV C,3AHMOV C,0F0HMOV C,PSW.57。相對(duì)尋址方式目的地址=轉(zhuǎn)移指令地址+轉(zhuǎn)移指令字節(jié)書+rel用于轉(zhuǎn)移指令3.1.3 MCS-51單片機(jī)尋址方式3.1 MCS-53 MCS-51單片機(jī)指令系統(tǒng)3.1 MCS-51單片機(jī)指令格式和尋址方式3.2 MCS-51單片機(jī)指令分類介紹數(shù)據(jù)傳送類指令(29條)算術(shù)運(yùn)算類指令(24條)邏輯運(yùn)算及移位類指令(24條)控制轉(zhuǎn)移類指令(17條)位操作類指令(17條)3 MCS-51單片機(jī)指令系統(tǒng)3.1 MCS-51單片3.2 MCS-51單片機(jī)指令分類介紹3.2.1 指令格式中符號(hào)意義說明direct:8位直接地址。

24、#data :8位立即數(shù)。#data16:16位立即數(shù)。DPTR:數(shù)據(jù)指針。bit:內(nèi)部RAM中的直接尋址位。:間址寄存器的前綴標(biāo)志。/:位地址前表示對(duì)該位取反。Rn:通用寄存器R0-R7。Ri:間接尋址寄存器R0、R1。3.2 MCS-51單片機(jī)指令分類介紹3.2.1 指令格3.2 MCS-51單片機(jī)指令分類介紹3.2.1 指令格式中符號(hào)意義說明3.2.2 數(shù)據(jù)傳送類指令1. 概述MOV 目的操作數(shù),源操作數(shù)目的操作數(shù):累加器A、通用寄存器Rn、直接地址direct、 間址寄存器源操作數(shù):累加器A、通用寄存器Rn、直接地址direct、 間址寄存器、立即數(shù)3.2 MCS-51單片機(jī)指令分類介

25、紹3.2.1 指令格3.2 MCS-51單片機(jī)指令分類介紹3.2.2 數(shù)據(jù)傳送類指令1. 概述2. 內(nèi)部RAM數(shù)據(jù)傳送指令組(1) 立即數(shù)傳送指令MOV A,#dataMOV direct,#dataMOV Rn,#dataMOV Ri,#data8位立即數(shù)傳送指令MOV DPTR,#data1616位立即數(shù)傳送指令例:MOV DPTR,#1234HDPH: 12HDPL: 34H3.2 MCS-51單片機(jī)指令分類介紹3.2.2 數(shù)據(jù)傳3.2 MCS-51單片機(jī)指令分類介紹3.2.2 數(shù)據(jù)傳送類指令2. 內(nèi)部RAM數(shù)據(jù)傳送指令組(1) 立即數(shù)傳送指令(2) 內(nèi)部RAM單元之間的數(shù)據(jù)傳送指令MO

26、V direct2,direct1MOV direct,RnMOV Rn , directMOV direct,RiMOV Ri , direct例:MOV P2,R2MOV 0A0h,R2MOV 0D0h,R1MOV R5,70h3.2 MCS-51單片機(jī)指令分類介紹3.2.2 數(shù)據(jù)傳MOV 0D0h,R1位序PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位標(biāo)志CYACF0RS1RS0OV/PMOV 0D0h,R1位序PSW.7PSW.6PSW.5位序PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位標(biāo)志CYACF0RS1RS

27、0OV/PMOV 0D0h,R1位序PSW.7PSW.6PSW.5PSW.4PSW.3PSWMOV 0D0h,R1MOV 0D0h,R13.2 MCS-51單片機(jī)指令分類介紹3.2.2 數(shù)據(jù)傳送類指令2. 內(nèi)部RAM數(shù)據(jù)傳送指令組(1) 立即數(shù)傳送指令(2) 內(nèi)部RAM單元之間的數(shù)據(jù)傳送指令(3) 通過累加器的數(shù)據(jù)傳送指令MOV A,RnMOV Rn ,AMOV A,directMOV direct, AMOV A,RiMOV Ri , A3.2 MCS-51單片機(jī)指令分類介紹3.2.2 數(shù)據(jù)傳3.2.2 數(shù)據(jù)傳送類指令2. 內(nèi)部RAM數(shù)據(jù)傳送指令組3. 外部RAM數(shù)據(jù)傳送指令組對(duì)外部RAM單

28、元只能使用間接尋址(1) 使用DPTR進(jìn)行間接尋址MOVX A,DPTRMOVX DPTR , A(2) 使用Ri進(jìn)行間接尋址MOVX A,RiMOVX Ri ,A4. 程序存儲(chǔ)器數(shù)據(jù)傳送指令組MOVC A,A+DPTRMOVC A,A+PC單向變址尋址3.2.2 數(shù)據(jù)傳送類指令2. 內(nèi)部RAM數(shù)據(jù)傳送指令組3.3.2.2 數(shù)據(jù)傳送類指令5. 數(shù)據(jù)交換指令組(1) 整字節(jié)交換指令XCH A,RnXCH A,directXCH A,Ri(2) 半字節(jié)交換指令XCHD A,Ri低四位數(shù)據(jù)交換(3) 累加器高低半字節(jié)交換指令SWAP A6. 堆棧操作指令組PUSH directPOP directS

29、P:(SP)+1,(SP):(direct)direct :(SP),SP:(SP)-13.2.2 數(shù)據(jù)傳送類指令5. 數(shù)據(jù)交換指令組(1) 整字節(jié)說明: 只有指令表中的指令才有對(duì)應(yīng)指令代碼,計(jì)算機(jī)才能執(zhí)行。編程時(shí),不能隨意創(chuàng)造發(fā)明指令。1. 一條指令中不能同時(shí)出現(xiàn)兩個(gè)工作寄存器:2. 間址寄存器只能使用 R0、R1。3. SFR區(qū)只能直接尋址,不能用寄存器間接尋址。4. 指令表:非法指令:MOV R0,#80H MOV A,R0非法指令:MOV A,R2非法指令:MOV R1,R2MOV R2,R0說明: 只有指令表中的指令才有對(duì)應(yīng)指令代碼,計(jì)算機(jī)才能執(zhí)行將片內(nèi)RAM60H單元與61H單元的

30、數(shù)據(jù)交換。XCH 60H,61H查表法求Y=X2。設(shè)X(0X15)在片內(nèi)RAM的20H單元中,要求將查表求Y,存入片內(nèi)RAM21H單元。 ORG 1000HSQU:MOV DPTR,#TAB ;確定表首地址(基地址)MOV A,20H;取X(偏移量)MOVC A,A+DPTR;查表求Y=X2MOV 21H,A;保存YRET;子程序結(jié)束;其它程序段ORG 3000H;常數(shù)表格首地址TAB:DB 00,01,04,09,225;平方表將片內(nèi)RAM60H單元與61H單元的數(shù)據(jù)交換。XCH 603.2 MCS-51單片機(jī)指令分類介紹3.2.1 指令格式中符號(hào)意義說明3.2.2 數(shù)據(jù)傳送類指令3.2.3

31、 算術(shù)運(yùn)算類指令1. 加法指令組(不帶進(jìn)位)ADD A,源操作數(shù)ADD A,#dataADD A,RnADD A,directADD A,Ri位序PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位標(biāo)志CYACF0RS1RS0OV/P3.2 MCS-51單片機(jī)指令分類介紹3.2.1 指令格ADD A,R2A=? PSW=?02H位序PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位標(biāo)志CYACF0RS1RS0OV/P0000010181HADD A,R2A=? PSW=3.2 MCS-51單片機(jī)指令分類介紹3.2.3 算術(shù)運(yùn)算類指令

32、1. 加法指令組(不帶進(jìn)位)2. 加法指令組(帶進(jìn)位)ADDC A,源操作數(shù)ADDC A,#dataADDC A,RnADDC A,directADDC A,Ri3. 帶借位減法指令組SUBB A,源操作數(shù)SUBB A,#dataSUBB A,RnSUBB A,directSUBB A,Ri3.2 MCS-51單片機(jī)指令分類介紹3.2.3 算術(shù)運(yùn)3.2.3 算術(shù)運(yùn)算類指令4. 加1指令組INC AINC RnINC directINC RiINC DPTR不影響程序狀態(tài)字PSW5. 減1指令組DEC ADEC RnDEC directDEC Ri3.2.3 算術(shù)運(yùn)算類指令4. 加1指令組INC

33、 A3.2.3 算術(shù)運(yùn)算類指令6. 乘除指令組(1) 乘法指令MUL AB位序PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位標(biāo)志CYACF0RS1RS0OV/P000:結(jié)果255奇偶位MOV A,0FHMOV B,0FHMUL ABA=? PSW=?0E1H00H3.2.3 算術(shù)運(yùn)算類指令6. 乘除指令組(1) 乘法指令M3.2.3 算術(shù)運(yùn)算類指令6. 乘除指令組(1) 乘法指令(2) 除法指令DIV AB位序PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位標(biāo)志CYACF0RS1RS0OV/P001:除數(shù)為0(B=0)0:其

34、它奇偶位A商;B 余數(shù)3.2.3 算術(shù)運(yùn)算類指令6. 乘除指令組(1) 乘法指令(3.2.3 算術(shù)運(yùn)算類指令1. 加法指令組(不帶進(jìn)位)2. 加法指令組(帶進(jìn)位)3. 帶借位減法指令組4. 加1指令組5. 減1指令組6. 乘除指令組7. 十進(jìn)制調(diào)整指令DA A十進(jìn)制調(diào)整指令原理:略MOV A,#56HMOV R5,#67HADD A,R5DAA 23HCY 13.2.3 算術(shù)運(yùn)算類指令1. 加法指令組(不帶進(jìn)位)2. 帶進(jìn)位加法指令A(yù)DDC用于多字節(jié)運(yùn)算 設(shè)雙字節(jié)數(shù) X 存在片內(nèi)RAM 41H、40H單元,Y存在42H、43H單元,編程求 Z=X+Y,并存入片內(nèi)RAM單元44H、45H、46H

35、。ADDS:MOV A,40HADD A,42HMOV 44H,AMOV A,41HADDC A,43HMOV 45H,AMOV A,#0ADDC A,#0MOV 46H,ARET;取被加數(shù)低字節(jié);加上加數(shù)低字節(jié);保存和的低字節(jié);取被加數(shù)高字節(jié);加上加數(shù)高字節(jié);保存和的高字節(jié);求高字節(jié)進(jìn)位;子程序結(jié)束;低字節(jié)相加;高字節(jié)相加;計(jì)算高字節(jié)進(jìn)位;子程序結(jié)束帶進(jìn)位加法指令A(yù)DDC用于多字節(jié)運(yùn)算 設(shè)雙字節(jié)數(shù) X 3.2 MCS-51單片機(jī)指令分類介紹3.2.1 指令格式中符號(hào)意義說明3.2.2 數(shù)據(jù)傳送類指令3.2.3 算術(shù)運(yùn)算類指令3.2.4 邏輯運(yùn)算及移位類指令邏輯運(yùn)算:ANL(與)、ORL(或)

36、、XRL(異或)1. 邏輯與運(yùn)算指令組ANL A,RnANL A,directANL A,RiANL A,#dataANL direct,AANL direct,#dataMOV C,P1.0ANL C,P1.1ANL C,/P1.2MOV P3.0,CP3.0=(P1.0)&(P1.1)&(P1.2)3.2 MCS-51單片機(jī)指令分類介紹3.2.1 指令格3.2.4 邏輯運(yùn)算及移位類指令邏輯運(yùn)算:ANL(與)、ORL(或)、XRL(異或)1. 邏輯與運(yùn)算指令組2. 邏輯或運(yùn)算指令組ORL A,RnORL A,directORL A,RiORL A,#dataORL direct,AORL d

37、irect,#data3.2.4 邏輯運(yùn)算及移位類指令邏輯運(yùn)算:ANL(與)、OR3.2.4 邏輯運(yùn)算及移位類指令邏輯運(yùn)算:ANL(與)、ORL(或)、XRL(異或)1. 邏輯與運(yùn)算指令組2. 邏輯或運(yùn)算指令組XRL A,RnXRL A,directXRL A,RiXRL A,#dataXRL direct,AXRL direct,#data3. 邏輯異或運(yùn)算指令組3.2.4 邏輯運(yùn)算及移位類指令邏輯運(yùn)算:ANL(與)、OR3.2.4 邏輯運(yùn)算及移位類指令邏輯運(yùn)算:ANL(與)、ORL(或)、XRL(異或)4. 累加器清“0”和取反指令組CLR A ; A 0(1)累加器清“0”指令(2)累加

38、器取反指令CPL A ; A A例:P1.0-3 A的低四位MOVR0,A;保護(hù)AANLA,#0FH;保留A的低四位ANLP1,#0F0H;保留P1的高四位ORLP1,A;MOVA,R0;恢復(fù)A P1.0-3 A的低四位3.2.4 邏輯運(yùn)算及移位類指令邏輯運(yùn)算:ANL(與)、ORA7 A03.2.4 邏輯運(yùn)算及移位類指令邏輯運(yùn)算:ANL(與)、ORL(或)、XRL(異或)4. 累加器清“0”和取反指令組(CLR、CPL)5. 移位指令組( 累加器A )(1)循環(huán)左移指令RL A ;(2)循環(huán)右移指令RR A ;A7 A0A7 A03.2.4 邏3.2.4 邏輯運(yùn)算及移位類指令邏輯運(yùn)算:ANL(

39、與)、ORL(或)、XRL(異或)4. 累加器清“0”和取反指令組(CLR、CPL)5. 移位指令組( 累加器A )(1)循環(huán)左移指令RL A ;(2)循環(huán)右移指令RR A ;(3)帶進(jìn)位循環(huán)左移指令RLC A ;A7 A0CY(4)帶進(jìn)位循環(huán)右移指令RRC A ;A7 A0CY3.2.4 邏輯運(yùn)算及移位類指令邏輯運(yùn)算:ANL(與)、OR3.2 MCS-51單片機(jī)指令分類介紹3.2.5 控制轉(zhuǎn)移類指令1. 無(wú)條件轉(zhuǎn)移指令組(1)長(zhǎng)轉(zhuǎn)移指令LJMP addr16 ; PC addr16 指令機(jī)器碼: 02 nnH nnL指令轉(zhuǎn)移范圍:64KB(2)絕對(duì)轉(zhuǎn)移指令A(yù)JMP addr11 ;指令機(jī)器碼

40、:A10A9A8 00001 A70指令轉(zhuǎn)移范圍:2KB推 薦 使 用3.2 MCS-51單片機(jī)指令分類介紹3.2.5 3.2 MCS-51單片機(jī)指令分類介紹3.2.5 控制轉(zhuǎn)移類指令1. 無(wú)條件轉(zhuǎn)移指令組(3)短轉(zhuǎn)移指令SJMP rel ;PC PC+2+rel指令機(jī)器碼: 80H rel相對(duì)偏移量 rel為8位補(bǔ)碼rel= 目的地址-(源地址+2)= 地址差-2增地址轉(zhuǎn)移:指令地址 源程序 2130H SJMP 2132H 2150H NEXT:MOV A,R21EHNEXT3.2 MCS-51單片機(jī)指令分類介紹3.2.5 指令轉(zhuǎn)移范圍:前128后127字節(jié)rel= (目的地址-(源地址+

41、2)補(bǔ) = 0FFH-(目的地址-(源地址+2)+1 = 0FEH-地址差3.2.5 控制轉(zhuǎn)移類指令1. 無(wú)條件轉(zhuǎn)移指令組(3)短轉(zhuǎn)移指令SJMP rel ;PC PC+2+rel減地址轉(zhuǎn)移:取 反指令地址 源程序 2130H NEXT:MOV A,R2 2150H SJMP0DEHNEXT指令轉(zhuǎn)移范圍:前128后127字節(jié)rel= (目的地址-(3.2 MCS-51單片機(jī)指令分類介紹3.2.5 控制轉(zhuǎn)移類指令1. 無(wú)條件轉(zhuǎn)移指令組(4)變址尋址轉(zhuǎn)移指令JMP A+DPTR. ;PC A+DPTR指令機(jī)器碼 73H,指令轉(zhuǎn)移范圍64KB。(1)長(zhǎng)轉(zhuǎn)移指令LJMP(2)絕對(duì)轉(zhuǎn)移指令A(yù)JMP(3)

42、短轉(zhuǎn)移指令SJMPMOVA,#02HMOVDPTR,#0006JMPA+DPTR3.2 MCS-51單片機(jī)指令分類介紹3.2.5 單片機(jī)(全套220張課件)P.77 10.MOVP2,#20HMOV R0,#00HMOV A,R0P.77 10.MOVP2,#20H3.2 MCS-51單片機(jī)指令分類介紹3.2.5 控制轉(zhuǎn)移類指令1. 無(wú)條件轉(zhuǎn)移指令組(4)變址尋址轉(zhuǎn)移指令 JMP(1)長(zhǎng)轉(zhuǎn)移指令 LJMP(2)絕對(duì)轉(zhuǎn)移指令 AJMP(3)短轉(zhuǎn)移指令 SJMP2. 條件轉(zhuǎn)移指令組(1)累加器判零轉(zhuǎn)移指令JZ rel ;若A=00H,PCPC+e(轉(zhuǎn)移), ;若A00H,PCPC+2 (不轉(zhuǎn)移)J

43、NZ rel ;若A00H,PCPC+e(轉(zhuǎn)移), ;若A=00H, PCPC+2(不轉(zhuǎn)移)3.2 MCS-51單片機(jī)指令分類介紹3.2.5 2. 條件轉(zhuǎn)移指令組(1)累加器判零轉(zhuǎn)移指令(2)數(shù)值比較轉(zhuǎn)移指令CJNE 操作數(shù)1,操作數(shù)2,relCJNEA,#data,relCJNEA,direct,relCJNERn,#data,relCJNERi,#data,rel操作數(shù)1操作數(shù)2,轉(zhuǎn)移PC PC+3+rel對(duì)CY的影響操作數(shù)1=操作數(shù)2,CY=0;操作數(shù)1操作數(shù)2,CY=0;操作數(shù)1操作數(shù)2,CY=1;2. 條件轉(zhuǎn)移指令組(1)累加器判零轉(zhuǎn)移指令(2)數(shù)值比較轉(zhuǎn)DJNZ 操作數(shù),rel2.

44、 條件轉(zhuǎn)移指令組(1)累加器判零轉(zhuǎn)移指令(2)數(shù)值比較轉(zhuǎn)移指令(3)減1條件轉(zhuǎn)移指令若(操作數(shù)-1)=0,則轉(zhuǎn)移PCPC+2 ,順序執(zhí)行; 若(操作數(shù)-1)0 ,則PCPC+2+rel 。指令機(jī)器碼: D8-DFH rel (兩個(gè)字節(jié))DJNZ Rn,rel指令1DJNZ direct ,rel指令2指令機(jī)器碼: D5 direct rel (三個(gè)字節(jié))若(操作數(shù)-1)=0,則轉(zhuǎn)移PCPC+3,順序執(zhí)行; 若(操作數(shù)-1)0,則PCPC+3+rel 。DJNZ 操作數(shù),rel2. 條件轉(zhuǎn)移指令組(1)累加器判查表法求Y=X2。設(shè)在片內(nèi)RAM的20H開始連續(xù)5個(gè)單元存放5個(gè)數(shù)X(0X15) ,要

45、求將查表求Y,存入片內(nèi)RAM30H開始的五個(gè)單元。ORG 0000HAJMP 0020HORG 0020HSQU:MOV DPTR,#TABMOV R0,#20HMOV R1,#30H MOV 78H,#5LOOP: MOV A,R0MOVC A,A+DPTRMOV R1,AINC R0 INC R1DJNZ 78H,LOOPORG 0040HTAB: DB 00,01,04,09,16,25,36,49,64,81,100,121,144,169,196,225END查表法求Y=X2。設(shè)在片內(nèi)RAM的20H開始連續(xù)5個(gè)單元存放3. 子程序調(diào)用與返回指令組ACALL addr11 指令機(jī)器碼:

46、A10A9A8 10001 A70(1)絕對(duì)調(diào)用指令3.2.5 控制轉(zhuǎn)移類指令1. 無(wú)條件轉(zhuǎn)移指令組2. 條件轉(zhuǎn)移指令組操作內(nèi)容: PC PC+2 SP SP+1,(SP) PC7-0 SP SP+1,(SP) PC15-8 PC10-0 addr11例: 8100H ACALL label 問: label 的地址范圍?8000H87FFH3. 子程序調(diào)用與返回指令組ACALL addr13. 子程序調(diào)用與返回指令組(1)絕對(duì)調(diào)用指令(2)長(zhǎng)調(diào)用指令LCALL addr16 (3)返回指令RET :子程序返回指令RETI:中斷服務(wù)子程序返回指令操作內(nèi)容: PC PC+3 SP SP+1,(S

47、P) PC7-0 SP SP+1,(SP) PC15-8 PC addr16PC15-8 SP,SP SP-1PC7-0 SP,SP SP-14. 空操作指令NOP ;PC PC+13. 子程序調(diào)用與返回指令組(1)絕對(duì)調(diào)用指令(2)長(zhǎng)調(diào)用指3.2.6 位操作類指令1. 位傳送指令組MOV C,bitMOV bit ,C例:MOV 10H,C MOV C,20H MOV 54H,C MOV C,10H3.2.6 位操作類指令1. 位傳送指令組MOV 3.2.6 位操作類指令1. 位傳送指令組2. 位(CY)置位、復(fù)位指令組SETB C ;CY 1SETB bit ;bit 1CLR C ;CY

48、 0CLR bit ;bit 03. 位運(yùn)算指令組ANL C,bit(/bit)ORL C,bit(/bit)CPL CCPL bit3.2.6 位操作類指令1. 位傳送指令組2. 位(C例:MOVC,BANL C,/E ;CYMOV D,CMOV C,EANLC,/B ;CYORLC,D ;CYMOVD,C ;異或結(jié)果送D例:MOVC,B3.2.6 位操作類指令1. 位傳送指令組2. 位(CY)置位、復(fù)位指令組3. 位運(yùn)算指令組4. 位控制轉(zhuǎn)移指令組(1)以C狀態(tài)為條件的轉(zhuǎn)移指令JCrel JNCrel (2)以位狀態(tài)為條件的轉(zhuǎn)移指令JBbit,rel JNBbit,rel JBCbit,r

49、el ;若(b)=1轉(zhuǎn)移,且(b)=0; 否則不轉(zhuǎn)移3.2.6 位操作類指令1. 位傳送指令組2. 位(C3.2.7 I/O口訪問指令使用說明1. 口操作指令MOVPm,A MOVPm,#dataMOVPm,direct 口輸出指令MOV A ,PmMOV direct ,Pm口輸入指令2. 口線操作指令(位)MOV Pm.n ,CMOV C,Pm.nSETB Pm.nCLR Pm.nANL C,Pm.nORL C,Pm.nJB Pm.n ,relJBC Pm.n ,rel3.2.7 I/O口訪問指令使用說明1. 口操作指令M3.2.7 I/O口訪問指令使用說明3. 讀引腳數(shù)據(jù)01?注:讀口前

50、先寫入1例:ORLP1,#03H MOVA,P1.0 MOVB,P1.13.2.7 I/O口訪問指令使用說明3. 讀引腳數(shù)據(jù)0MCS-51匯編語(yǔ)言程序設(shè)計(jì)4.1 匯編語(yǔ)言程序設(shè)計(jì)概述匯編語(yǔ)言程序:用匯編語(yǔ)言編寫的、完成特定功能的指令序列。匯編程序: 能將匯編語(yǔ)言源程序轉(zhuǎn)換成機(jī)器語(yǔ)言目標(biāo)程序的系統(tǒng)軟件。匯編: 匯編語(yǔ)言程序到機(jī)器語(yǔ)言程序的轉(zhuǎn)換過程稱為匯編。匯編方式: 1.手工匯編:人工查指令表匯編。用于設(shè)計(jì)短小程序或調(diào)試程序的場(chǎng)合。早期行為。2.機(jī)器匯編:用匯編程序進(jìn)行匯編。 PC機(jī)普及后。MCS-51匯編語(yǔ)言程序設(shè)計(jì)4.1 匯編語(yǔ)言程序設(shè)計(jì)概述4 MCS-51匯編語(yǔ)言程序設(shè)計(jì)4.1 匯編語(yǔ)言程

51、序設(shè)計(jì)概述匯編的主要任務(wù):1)確定程序中每條匯編語(yǔ)言指令的指令機(jī)器碼。2)確定每條指令在存儲(chǔ)器中的存放地址。3)提供錯(cuò)誤信息。4)提供目標(biāo)執(zhí)行文件(*.OBJ/*.HEX)和列表文件(*.LST)。匯編語(yǔ)言的語(yǔ)句格式:: ;4 MCS-51匯編語(yǔ)言程序設(shè)計(jì)4.1 匯編語(yǔ)言程序設(shè)4 MCS-51匯編語(yǔ)言程序設(shè)計(jì)4.1 匯編語(yǔ)言程序設(shè)計(jì)概述匯編語(yǔ)言的語(yǔ)句格式:: ; 標(biāo)號(hào):以字母開頭的1-8個(gè)字符(字母、數(shù)字等)和“:” 組成。不能使用本匯編語(yǔ)言已定義的符號(hào)。1BT:BEGINTA+TB:ADD: 操作碼:語(yǔ)句執(zhí)行的操作內(nèi)容,不能空缺。 操作數(shù):為指令的操作提供數(shù)據(jù)或地址;可缺省,也可包括二項(xiàng)、三

52、項(xiàng);各操作數(shù)之間以逗號(hào)分隔。 注釋:以“;”開頭,如換行還應(yīng)加“;”。BEGIN:BT1:TATB:ADD1:4 MCS-51匯編語(yǔ)言程序設(shè)計(jì)4.1 匯編語(yǔ)言程序設(shè)4 MCS-51匯編語(yǔ)言程序設(shè)計(jì)4.1 匯編語(yǔ)言程序設(shè)計(jì)概述4.4 MCS-51匯編語(yǔ)言的偽指令源程序使用機(jī)器匯編要考慮匯編程序的約定1)按指令格式和語(yǔ)法規(guī)則編寫程序。常數(shù)的表示:十進(jìn)制數(shù): 20十六進(jìn)制數(shù):87H,0F0H二進(jìn)制數(shù): 01011001B字符:H字符串:“Hello”。2)使用偽指令提供匯編信息。偽指令是匯編程序的命令,有作用,無(wú)相對(duì)應(yīng)的機(jī)器碼。4 MCS-51匯編語(yǔ)言程序設(shè)計(jì)4.1 匯編語(yǔ)言程序設(shè)匯編語(yǔ)言指令類型4

53、 MCS-51匯編語(yǔ)言程序設(shè)計(jì)4.1 匯編語(yǔ)言程序設(shè)計(jì)概述4.4 MCS-51匯編語(yǔ)言的偽指令1.機(jī)器指令:指令系統(tǒng)中的全部指令,每條指令有對(duì)應(yīng)的機(jī)器代碼。2.偽指令:匯編控制指令,僅提供匯編信息,沒有指令代碼。3.宏指令:宏匯編功能:將需要多次反復(fù)執(zhí)行的程序段定義成一個(gè)宏 指令名(宏定義),編程時(shí),可在程序中使 用宏指令名來(lái)替代一段程序(宏調(diào)用)。匯編語(yǔ)言指令類型4 MCS-51匯編語(yǔ)言程序設(shè)計(jì)4.1 4.4 MCS-51匯編語(yǔ)言的偽指令匯編語(yǔ)言偽指令起始地址指令:指明程序和數(shù)據(jù)塊起始地址。1. ORG指令地址 機(jī)器碼源程序ORG 2000H 2000H 78 30MAIN:MOV R0,#

54、30H 2002H E6MOV A,R0 ORG 3000H 3000H 23DB 23H,100,A 3001H 64 3002H 414.4 MCS-51匯編語(yǔ)言的偽指令匯編語(yǔ)言偽指令起始4.4 MCS-51匯編語(yǔ)言的偽指令匯編語(yǔ)言偽指令1. ORG2. END結(jié)束匯編指令。(1)整個(gè)源程序只有一條“END”指令。(2)如“END”指令在中間,其后的源程序匯編程序?qū)⒉挥杼幚怼?. EQU等值。為標(biāo)號(hào)或標(biāo)識(shí)符賦值。X1 EQU 2000HX2 EQU 0FH MAIN:MOV DPTR,#X1ADD A,#X24.4 MCS-51匯編語(yǔ)言的偽指令匯編語(yǔ)言偽指令1. 4.4 MCS-51匯編語(yǔ)

55、言的偽指令匯編語(yǔ)言偽指令1. ORG2. END3. EQU4. DB定義字節(jié)型常數(shù)指令。例: DB 12H,100,A5. DW定義字型常數(shù)指令。4.4 MCS-51匯編語(yǔ)言的偽指令匯編語(yǔ)言偽指令1. 4.4 MCS-51匯編語(yǔ)言的偽指令匯編語(yǔ)言偽指令1. ORG2. END3. EQU4. DB5. DW6. DS定義存儲(chǔ)區(qū)命令。 DS 例:ADDRTABL:DS20ORG 8100HDS 08H7. BIT位定義命令。 BIT 例:AQ BIT P1.0;保留20個(gè)地址單元;從8100H開始保留8個(gè)地址單元;將P1.0位地址賦予AQ4.4 MCS-51匯編語(yǔ)言的偽指令匯編語(yǔ)言偽指令1.

56、壓縮式BCD碼分解成為單字節(jié)BCD碼片內(nèi)RAM42H0 十41H0 個(gè)40H 十 個(gè)MOV R0,#40H;設(shè)指針MOV A,R0;取一個(gè)字節(jié)MOV R2,A;暫存ANL A,#0FH;清0高半字節(jié)INC R0MOV R0,A ;保存數(shù)據(jù)個(gè)位MOV A,R2SWAP A ;十位換到低半字節(jié)ANL A,#0FHINC R0MOV R0,A;保存數(shù)據(jù)十位壓縮式BCD碼分解成為單字節(jié)BCD碼片內(nèi)RAM42H0 十求R2中補(bǔ)碼絕對(duì)值,正數(shù)不變,負(fù)數(shù)變補(bǔ)。 MOV A,R2 JNB ACC.7,NEXT ;判斷,轉(zhuǎn)移 DEC A ;減一 CPL A ;取反 MOV R2,ANEXT:SJMP NEXT

57、;結(jié)束求R2中補(bǔ)碼絕對(duì)值,正數(shù)不變,負(fù)數(shù)變補(bǔ)。 MOV A 為一串7位ASCII碼數(shù)據(jù)的D7位加上奇校驗(yàn),設(shè)數(shù)據(jù)存放在片外RAM的2101H起始單元,數(shù)據(jù)長(zhǎng)度在2100H單元。MOV DPTR,#2100HMOVX A,DPTR ;取數(shù)據(jù)長(zhǎng)度MOV R2,A ;循環(huán)次數(shù)NEXT:INC DPTRMOVX A,DPTR ;開始取數(shù)ORL A,#80H ;高位置1,同 ;時(shí)影響奇偶位JNB P,PASS ;奇偶位為0不保存MOVX DPTR,A ;保存新數(shù)PASS:DJNZ R2,NEXT ;判斷是否循環(huán)DONE:SJMP DONE ;結(jié)束 為一串7位ASCII碼數(shù)據(jù)的D7位加上奇校驗(yàn),設(shè)數(shù)據(jù)單片

58、機(jī)存儲(chǔ)器擴(kuò)展 存儲(chǔ)器是用來(lái)存儲(chǔ)二值數(shù)字信息的大規(guī)模集成電路,是進(jìn)一步完善數(shù)字系統(tǒng)功能的重要部件。它實(shí)際上是將大量存儲(chǔ)器按一定規(guī)律結(jié)合起來(lái)的整體。單片機(jī)存儲(chǔ)器擴(kuò)展 存儲(chǔ)器是用來(lái)存儲(chǔ)二值數(shù)字信息的大規(guī)模 讀寫存儲(chǔ)器又稱隨機(jī)存儲(chǔ)器。 讀寫存儲(chǔ)器的特點(diǎn)是:在工作過程中,既可從存儲(chǔ)器的任意單元讀出信息,又可以把外界信息寫入任意單元,因此它被稱為隨機(jī)存儲(chǔ)器,簡(jiǎn)稱 RAM 。Random Access Memory.5.1 隨機(jī)存取存儲(chǔ)器(RAM) 單片機(jī)存儲(chǔ)器擴(kuò)展 讀寫存儲(chǔ)器又稱隨機(jī)存儲(chǔ)器。 讀寫存儲(chǔ)器的特點(diǎn)是:在5.1 隨機(jī)存取存儲(chǔ)器(RAM) RAM 按功能可分為 靜態(tài)、動(dòng)態(tài)兩類 RAM 按所用器件又

59、可分為雙極型和 MOS型兩種1.雙極型:由TTL電路組成基本存儲(chǔ)單元,存取速度快。2.MOS型:由CMOS電路組成基本存儲(chǔ)單元,集成度高、功耗低。1.SRAM:靜態(tài)RAM。存儲(chǔ)單元使用雙穩(wěn)態(tài)觸發(fā)器,可帶電信息可長(zhǎng)期保存。2.DRAM: 動(dòng)態(tài)RAM。使用電容作存儲(chǔ)元件,需要刷新電路。集成度高,反應(yīng)快,功耗低,但需要刷新電路。 單片機(jī)存儲(chǔ)器擴(kuò)展5.1 隨機(jī)存取存儲(chǔ)器(RAM) RAM 按功能可分為 5.1.1 RAM的電路結(jié)構(gòu)與工作原理WiDD符號(hào)1. RAM存儲(chǔ)單元(1) 靜態(tài)RAM存儲(chǔ)單元(位)X:行選擇線Y:列選擇線5.1 隨機(jī)存取存儲(chǔ)器(RAM) 5.1.1 RAM的電路結(jié)構(gòu)與工作原理Wi

60、DD符號(hào)1. R5.1.1 RAM的電路結(jié)構(gòu)與工作原理1. RAM存儲(chǔ)單元(1) 靜態(tài)RAM存儲(chǔ)單元(位)(2) 動(dòng)態(tài)RAM存儲(chǔ)單元(位)四管MOS動(dòng)態(tài)存儲(chǔ)單元 電容作存儲(chǔ)元件設(shè):C1上充有電荷,且C1上的電壓達(dá)到T1的開啟電壓,則T1導(dǎo)通,Q為低電平0,它使C2放電,使C2上的電壓為0,因此T2截止,為高電平1,這是存儲(chǔ)單元的一個(gè)穩(wěn)定狀態(tài),表示存儲(chǔ)單元存儲(chǔ)了數(shù)據(jù)0。 電容有漏電流,需定時(shí)刷新。5.1.1 RAM的電路結(jié)構(gòu)與工作原理1. RAM存儲(chǔ)單元5.1.1 RAM的電路結(jié)構(gòu)與工作原理1. RAM存儲(chǔ)單元2. RAM的基本結(jié)構(gòu)存儲(chǔ)器容量表示方法:mkXn5.1.1 RAM的電路結(jié)構(gòu)與工作原

溫馨提示

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

評(píng)論

0/150

提交評(píng)論