51單片機(jī)發(fā)展,指令代碼與中斷定時(shí)器計(jì)數(shù)器綜述_第1頁(yè)
51單片機(jī)發(fā)展,指令代碼與中斷定時(shí)器計(jì)數(shù)器綜述_第2頁(yè)
51單片機(jī)發(fā)展,指令代碼與中斷定時(shí)器計(jì)數(shù)器綜述_第3頁(yè)
51單片機(jī)發(fā)展,指令代碼與中斷定時(shí)器計(jì)數(shù)器綜述_第4頁(yè)
51單片機(jī)發(fā)展,指令代碼與中斷定時(shí)器計(jì)數(shù)器綜述_第5頁(yè)
已閱讀5頁(yè),還剩112頁(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、3.1 單片機(jī)的定義 把組成微型計(jì)算機(jī)的各功能部件:中央處理器CPU、隨機(jī)存取存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、I/O接口電路、定時(shí)器/計(jì)數(shù)器以及串行通信接口等制作在一塊集成芯片中,構(gòu)成一個(gè)完整的微型計(jì)算機(jī)。 微控制器(Micro Controller Unit) 嵌入式微控制器3.1.1 基于單片機(jī)的醫(yī)學(xué)儀器3-53.1.2 醫(yī)學(xué)儀器的軟件系統(tǒng)3-6外界應(yīng)用軟件編輯 編譯 連接 轉(zhuǎn)載操作系統(tǒng)微型計(jì)算機(jī)硬件匯編 測(cè)試軟件 翻譯器圖3.3 微機(jī)硬件系統(tǒng)與客觀世界之間存在三種層次的軟件3.2 單片機(jī)的發(fā)展第一階段(19711974年): 1971年 Intel 4004 1972年 Intel 80

2、08 第二階段(19741978年): 初級(jí)階段。以Intel公司的MCS-48為代表。 特點(diǎn):集成有8位CPU、并行I/O接口、8位定時(shí) 器/計(jì)數(shù)器,尋址范圍不大于4K,無(wú)串行口。 產(chǎn)品系列:8048,8748;8035和8039 第三階段(19781983年): 單片機(jī)普遍帶有串行口,有多級(jí)中斷處理系統(tǒng)、16位定時(shí)器/計(jì)數(shù)器。片內(nèi)RAM、ROM容量加大,且尋址范圍可達(dá)64KB,有的片內(nèi)還帶有A/D轉(zhuǎn)換器接口。 代表: MCS-51系列單片機(jī) 第四階段(1983年1990): 16 位單片機(jī)和8 位高性能單片機(jī)并行發(fā)展階段。 特點(diǎn):實(shí)時(shí)處理能力強(qiáng)生產(chǎn)工藝先進(jìn),集成度高,內(nèi)部功能強(qiáng)允許用戶采用

3、工業(yè)控制的專用語(yǔ)言編 程,如 PL/M、C 語(yǔ)言、BASIC 語(yǔ)言等 第五階段(1990現(xiàn)在): i80860 超級(jí)單片機(jī)特點(diǎn):運(yùn)算速度快(1.2 億次/秒)運(yùn)算功能強(qiáng) 可進(jìn)行32 位整數(shù)運(yùn)算和64 位浮點(diǎn)運(yùn)算具有一個(gè)三維圖形處理器,可構(gòu)成超級(jí) 圖形工作站。3.3 單片機(jī)的應(yīng)用特性(1)集成度高 MCS-51系列單片機(jī)代表產(chǎn)品為8051,8051內(nèi)部包含4KB的ROM、128B的RAM、四個(gè)8位并行口、一個(gè)全雙工串行口、兩個(gè)16位定時(shí)器/計(jì)數(shù)器以及一個(gè)處理功能強(qiáng)大的中央處理器。(2)系統(tǒng)結(jié)構(gòu)簡(jiǎn)單 MCS-51系列單片機(jī)芯片內(nèi)部采用模塊化結(jié)構(gòu)。MCS-51系列單片機(jī)具有64KB的外部程序存儲(chǔ)器尋

4、址能力和64KB的外部RAM和I/O口尋址能力。(3)可靠性高 單片機(jī)屬于工業(yè)品,能在常溫下工作,不需要在溫度恒定的機(jī)房?jī)?nèi)工作。由于單片機(jī)總線大多在芯片內(nèi)部不易受干擾,而且單片機(jī)應(yīng)用系統(tǒng)體積小,易于屏蔽,所以單片機(jī)的可靠性較高。(4)處理功能強(qiáng),速度快 MCS-51系列單片機(jī)指令系統(tǒng)中具有加、減、乘、除指令,各種邏輯運(yùn)算和轉(zhuǎn)移指令,還具有位操作功能。CPU時(shí)鐘頻率高達(dá)12MHz,單字節(jié)乘法和除法僅需要4s,而且具有特殊的多機(jī)通信功能。 3.4 單片機(jī)的制造工藝 制造單片機(jī)的工藝只有兩種:HMOS工藝和CHMOS工藝。 早期的MCS-51系列芯片都采用HMOS工藝,即( )MOS工藝。8051、

5、8751、8031、8951等產(chǎn)品均屬于HMOS工藝制造的產(chǎn)品。 CHMOS工藝是CMOS和HMOS的結(jié)合,除保持了HMOS工藝的高密度、高速度之外,還具有CMOS工藝低功耗的特點(diǎn)。3.5 MCS-51單片機(jī)系列產(chǎn)品 表表1 MCS-51系列單片機(jī)系列單片機(jī) 8052資源配置 片內(nèi)ROM形式片內(nèi)ROM片內(nèi)RAM定時(shí)/計(jì)數(shù)器無(wú)ROMEPROME2PROMMCS-5189514KB128B216MCS-52803289528KB256B3168752 (1) 8位中央處理器(CPU) 運(yùn)算器電路 運(yùn)算器電路是單片機(jī)的運(yùn)算部件,用于實(shí)現(xiàn)算術(shù)和邏輯運(yùn)算。ALU(算術(shù)邏輯單元)、ACC(累加器)、B寄存

6、器、程序狀態(tài)字和兩個(gè)暫存寄存器等屬于運(yùn)算器電路。它以ALU為核心,包括加、減、乘、除等算術(shù)運(yùn)算,與、或、非等邏輯運(yùn)算,左右移位和半字節(jié)交換等操作。 控制電路 包括:PC、PC加1寄存器、指令寄存器、指令譯碼器、定時(shí)和控制電路等。 (3)內(nèi)部數(shù)據(jù)存儲(chǔ)器 包括128B/256B的RAM和RAM地址鎖存器等。實(shí)際上8051或80C51內(nèi)部共有256個(gè)RAM單元,但后128單元被特殊功能寄存器SFR占用,供用戶使用的只是前128個(gè)單元。(2) 內(nèi)部程序存儲(chǔ)器 4KB/8KB的存儲(chǔ)器(ROM或EPROM)。對(duì)于8051、80C51內(nèi)部共有4KB的掩膜ROM,用于存放程序和原始數(shù)據(jù)。 圖3.2 MCS-5

7、1系列單片機(jī)存儲(chǔ)空間配置示意圖3-11l 程序存儲(chǔ)器 MCS-51片內(nèi)、片外一共可以尋址64K的程序存儲(chǔ)器地址空間。l 內(nèi)部數(shù)據(jù)存儲(chǔ)器 MCS-51有128字節(jié)的片內(nèi)存儲(chǔ)器RAM,同時(shí)具有64K的外存尋址能力。圖3.3 片內(nèi)RAM地址空間3-12(5) 定時(shí)器/計(jì)數(shù)器 MCS-51有2個(gè)或3個(gè)16位定時(shí)器/計(jì)數(shù)器,以實(shí)現(xiàn)定時(shí)或計(jì)數(shù)功能,并以定時(shí)或計(jì)數(shù)的結(jié)果對(duì)單片機(jī)進(jìn)行控制。(6) 串行口 全雙工UART的串行口,以實(shí)現(xiàn)單片機(jī)和其他數(shù)據(jù) 設(shè)備之間的串行數(shù)據(jù)傳送??勺鳛槿p工UART異步通信收發(fā)器使用,又可作為同步移位器使用。(4) 并行的I/O口 MCS-51中共有4個(gè)8位的I/O口(P0、P1

8、、 P2、 P3)以實(shí)現(xiàn)并行的輸入輸出。(7)時(shí)鐘電路 MCS-51單片機(jī)芯片內(nèi)部有時(shí)鐘電路,但石英晶體振蕩器和微調(diào)電容需外接。時(shí)鐘電路為單片機(jī)產(chǎn)生時(shí)鐘脈沖序列,典型的晶振頻率為6MHz或12MHz。(8) 位處理器 位處理器又稱布爾處理器。位處理器以狀態(tài)寄存器中的進(jìn)位標(biāo)志C為累加位,可進(jìn)行置位、復(fù)位、取反、等于“0”轉(zhuǎn)移、等于“1”轉(zhuǎn)移以及C與可尋址位之間的傳送、邏輯與、邏輯或等位操作。(9) 總線 上述8個(gè)部件都通過片內(nèi)單一總線連接。系統(tǒng)的地址信號(hào)、數(shù)據(jù)信號(hào)、控制信號(hào)都是通過總線傳送的??偩€結(jié)構(gòu)減少了單片機(jī)的連線和引腳,提高了集成度和可靠性。 問題:?jiǎn)纹瑱C(jī)包括哪三類? HMOS制造工藝的M

9、CS-51單片機(jī)都采用40引腳的DIP方式 CHMOS制造工藝的80C51/80C31芯片除采用DIP方式外,還采用方形封裝工藝 (1)主電源引腳Vcc和Vss Vcc:接+5V電壓 Vss:接地(2) 外接晶體引腳XTAL:接外部晶體的一個(gè)引腳。在單片機(jī)內(nèi)部,它是一個(gè)反相放大器的輸入端,這個(gè)放大器構(gòu)成了片內(nèi)振蕩器。 (3) 控制引腳RST/VPD、ALE/PROG、PSEN、EA/VPP RST/VPD(9腳):振蕩器運(yùn)行時(shí),在此引腳上出現(xiàn)兩個(gè)機(jī)器周期的高電平使單片機(jī)復(fù)位。對(duì)于EPROM型的單片機(jī),在EPROM編程期間,此引腳用于輸入編程脈沖。 ALE/ PROG: 當(dāng)訪問外部存儲(chǔ)器時(shí),AL

10、E(允許地址鎖存)的輸出用于鎖存地址的低位字節(jié)。即使不訪問外部存儲(chǔ)器,ALE端仍然以不變的頻率周期性地出現(xiàn)正脈沖信號(hào),此頻率為振蕩器的1/6。因此,它可以用作對(duì)外輸出的時(shí)鐘,或用于定時(shí)。問題:PSEN、EA/VPP各有什么功能?PSEN 外部程序存儲(chǔ)器讀選通信號(hào)外部程序存儲(chǔ)器讀選通信號(hào):在讀外部ROM時(shí)PSEN低電平有效,以實(shí)現(xiàn)外部ROM單元的讀操作。1、內(nèi)部ROM讀取時(shí),PSEN不動(dòng)作;2、外部ROM讀取時(shí),在每個(gè)機(jī)器周期會(huì)動(dòng)作兩次;3、外部RAM讀取時(shí),兩個(gè)PSEN脈沖被跳過不會(huì)輸出;4、外接ROM時(shí),與ROM的OE腳相接。EA/VPP訪問和序存儲(chǔ)器控制信號(hào)1、接高電平時(shí):CPU讀取內(nèi)部程

11、序存儲(chǔ)器(ROM)擴(kuò)展外部ROM:當(dāng)讀取內(nèi)部程序存儲(chǔ)器超過0FFFH(8051)1FFFH(8052)時(shí)自動(dòng)讀取外部ROM。2、接低電平時(shí):CPU讀取外部程序存儲(chǔ)器(ROM)。在前面的學(xué)習(xí)中我們已知道,8031單片機(jī)內(nèi)部是沒有ROM的,那么在應(yīng)用8031單片機(jī)時(shí),這個(gè)腳是一直接低電平的。3、8751燒寫內(nèi)部EPROM時(shí),利用此腳輸入21V的燒寫電壓。(4) 輸入/輸出(I/O)引腳P0、P1、P2、P3 P0口:雙向8位三態(tài)I/O口。P0用于分時(shí)地址/數(shù)據(jù)總線(低8位地址),P2也用于外部地址總線(高8位地址),與P0一起形成16位地址。 P1口(1腳8腳):是準(zhǔn)雙向8位I/O口。P1口可以驅(qū)

12、動(dòng)(吸收或輸出電流)4個(gè)LS型的TTL負(fù)載。 對(duì)于8052、8032,P1.0引腳的第二功能為T2定時(shí)器/計(jì)數(shù)器的外部輸入,P1.1引腳的第二功能為T2的外部控制端。3.8.1 中斷的定義及優(yōu)點(diǎn)中斷的定義及優(yōu)點(diǎn)(1)中斷的定義)中斷的定義 CPU 在處理某事件在處理某事件 A時(shí),發(fā)生了另一事時(shí),發(fā)生了另一事 件件B請(qǐng)求(請(qǐng)求(中斷發(fā)生中斷發(fā)生)CPU暫時(shí)中斷當(dāng)前的工作,轉(zhuǎn)去處理事件暫時(shí)中斷當(dāng)前的工作,轉(zhuǎn)去處理事件B(中斷中斷 響應(yīng)和中斷服務(wù)響應(yīng)和中斷服務(wù))待待CPU將事件將事件B處理完畢后,再回到原來事件處理完畢后,再回到原來事件A被被 中斷的地方繼續(xù)處理事件中斷的地方繼續(xù)處理事件A(中斷返回

13、中斷返回) (2) 中斷的優(yōu)點(diǎn)中斷的優(yōu)點(diǎn) 中斷技術(shù)不僅解決了快速主機(jī)與慢速中斷技術(shù)不僅解決了快速主機(jī)與慢速I/O設(shè)設(shè)備的數(shù)據(jù)傳送問題,而且還具有如下優(yōu)點(diǎn):備的數(shù)據(jù)傳送問題,而且還具有如下優(yōu)點(diǎn):l 分時(shí)操作分時(shí)操作 CPU可以分時(shí)為多個(gè)可以分時(shí)為多個(gè)I/O設(shè)備服務(wù),提高了設(shè)備服務(wù),提高了計(jì)算機(jī)的利用率;計(jì)算機(jī)的利用率;l 實(shí)時(shí)響應(yīng)實(shí)時(shí)響應(yīng) CPU能及時(shí)處理應(yīng)用系統(tǒng)的隨機(jī)事件,系統(tǒng)能及時(shí)處理應(yīng)用系統(tǒng)的隨機(jī)事件,系統(tǒng)的實(shí)時(shí)性大大增強(qiáng);的實(shí)時(shí)性大大增強(qiáng);l 可靠性高可靠性高 CPU具有處理設(shè)備故障及掉電等突發(fā)性事件具有處理設(shè)備故障及掉電等突發(fā)性事件的能力,從而使系統(tǒng)可靠性提高。的能力,從而使系統(tǒng)可靠性

14、提高。3.8.2 MCS-51中斷系統(tǒng)的結(jié)構(gòu)中斷系統(tǒng)的結(jié)構(gòu) 主程序主程序繼續(xù)執(zhí)行主程序繼續(xù)執(zhí)行主程序響應(yīng)中斷響應(yīng)中斷中斷返回中斷返回中斷服務(wù)程序中斷服務(wù)程序中斷結(jié)構(gòu)示意圖中斷結(jié)構(gòu)示意圖主程序主程序響應(yīng)中斷響應(yīng)中斷中斷返回中斷返回高級(jí)中斷高級(jí)中斷繼續(xù)執(zhí)行主程序繼續(xù)執(zhí)行主程序響應(yīng)中斷響應(yīng)中斷中斷返回中斷返回低級(jí)中斷低級(jí)中斷中斷嵌套示意圖中斷嵌套示意圖中斷系統(tǒng)示意圖中斷系統(tǒng)示意圖中斷系統(tǒng)示意圖中斷系統(tǒng)示意圖中斷系統(tǒng)示意圖中斷系統(tǒng)示意圖中斷系統(tǒng)示意圖中斷系統(tǒng)示意圖3.8.3 MCS-51的中斷源的中斷源 (1) 中斷分類中斷分類1 (P3.2)P3.2引腳上出現(xiàn)有效的中斷信號(hào)時(shí),中斷標(biāo)志引腳上出現(xiàn)有效

15、的中斷信號(hào)時(shí),中斷標(biāo)志IE0置置12 (P3.3)P3.3引腳上出現(xiàn)有效的中斷信號(hào)時(shí),中斷標(biāo)志引腳上出現(xiàn)有效的中斷信號(hào)時(shí),中斷標(biāo)志IE1置置13 TF0(TCON.5)定時(shí)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T0發(fā)生溢出,置位發(fā)生溢出,置位TF0,向,向CPU申請(qǐng)中斷申請(qǐng)中斷4 TF1(TCON.7)定時(shí)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T1發(fā)生溢出,置位發(fā)生溢出,置位TF1,向,向CPU申請(qǐng)中斷申請(qǐng)中斷5 RI(SCON.0)或)或TI(SCON.1)串行口接收或發(fā)送一幀串行數(shù)據(jù),向串行口接收或發(fā)送一幀串行數(shù)據(jù),向CPU申請(qǐng)申請(qǐng)中斷中斷INT0INT1(2) 中斷優(yōu)先級(jí)排隊(duì)中斷優(yōu)先級(jí)排隊(duì)(3)中斷請(qǐng)求標(biāo)志)中斷請(qǐng)求標(biāo)志 TC

16、ON的中斷標(biāo)志的中斷標(biāo)志IT0(TCON.0)外部中斷)外部中斷0觸發(fā)方式控制位觸發(fā)方式控制位IE0(TCON.1)外部中斷)外部中斷0中斷請(qǐng)求標(biāo)志位中斷請(qǐng)求標(biāo)志位IT1(TCON.2)外部中斷)外部中斷1觸發(fā)方式控制位觸發(fā)方式控制位IE1(TCON.3)外部中斷)外部中斷1中斷請(qǐng)求標(biāo)志位中斷請(qǐng)求標(biāo)志位TF0(TCON.5)定時(shí))定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T0溢出中斷請(qǐng)求標(biāo)志溢出中斷請(qǐng)求標(biāo)志TF1(TCON.7)定時(shí))定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T1溢出中斷請(qǐng)求標(biāo)志溢出中斷請(qǐng)求標(biāo)志SCON的中斷標(biāo)志的中斷標(biāo)志lTI(SCON.1),串行口發(fā)送中斷標(biāo)志位發(fā)送),串行口發(fā)送中斷標(biāo)志位發(fā)送完一個(gè)串行幀時(shí),由硬件置位完

17、一個(gè)串行幀時(shí),由硬件置位TI。CPU響應(yīng)響應(yīng)中斷時(shí),不能自動(dòng)清除中斷時(shí),不能自動(dòng)清除TI,TI必須由軟件清必須由軟件清除。除。 l RI(SCON.0),串行口接收中斷標(biāo)志位。),串行口接收中斷標(biāo)志位。當(dāng)允許串行口接收數(shù)據(jù)時(shí),每接收完一個(gè)串當(dāng)允許串行口接收數(shù)據(jù)時(shí),每接收完一個(gè)串行幀,由硬件置位行幀,由硬件置位RI。同樣。同樣RI必須由軟件清必須由軟件清除。除。 (1) 中斷允許控制中斷允許控制 3.8.4 MCS-51中斷的控制中斷的控制 lEX0(IE.0) :外部中斷:外部中斷0允許位允許位lET0(IE.1) :定時(shí):定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T0中斷允許位中斷允許位lEX1(IE.2) :外部

18、中斷:外部中斷1允許位允許位lET1(IE.3) :定時(shí):定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T1中斷允許位中斷允許位lES(IE.4) :串行口中斷允許位:串行口中斷允許位lEA (IE.7) : CPU中斷允許(總允許)位中斷允許(總允許)位“1”為允許中斷為允許中斷“0”為禁止中斷為禁止中斷(2) 中斷優(yōu)先級(jí)控制中斷優(yōu)先級(jí)控制 lPX0(IP.0):外部中斷):外部中斷0優(yōu)先級(jí)設(shè)定位;優(yōu)先級(jí)設(shè)定位;lPT0(IP.1):定時(shí)):定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T0優(yōu)先級(jí)設(shè)定位;優(yōu)先級(jí)設(shè)定位;lPX1(IP.2):外部中斷):外部中斷1優(yōu)先級(jí)設(shè)定位;優(yōu)先級(jí)設(shè)定位;lPT1(IP.3):定時(shí)):定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T1優(yōu)先級(jí)

19、設(shè)定位;優(yōu)先級(jí)設(shè)定位;lPS (IP.4) :串行口優(yōu)先級(jí)設(shè)定位。:串行口優(yōu)先級(jí)設(shè)定位。 “1”為高優(yōu)先級(jí),為高優(yōu)先級(jí),“0”為低優(yōu)先級(jí)。為低優(yōu)先級(jí)。(4)中斷優(yōu)先級(jí)原則)中斷優(yōu)先級(jí)原則l CPU同時(shí)接收到幾個(gè)中斷時(shí),首先響應(yīng)優(yōu)先級(jí)別同時(shí)接收到幾個(gè)中斷時(shí),首先響應(yīng)優(yōu)先級(jí)別 最高的中斷請(qǐng)求。最高的中斷請(qǐng)求。l 正在進(jìn)行的中斷過程不能被新的同級(jí)或低優(yōu)先級(jí)正在進(jìn)行的中斷過程不能被新的同級(jí)或低優(yōu)先級(jí) 的中斷請(qǐng)求所中斷。的中斷請(qǐng)求所中斷。l 正在進(jìn)行的低優(yōu)先級(jí)中斷服務(wù),能被高優(yōu)先級(jí)中正在進(jìn)行的低優(yōu)先級(jí)中斷服務(wù),能被高優(yōu)先級(jí)中 斷請(qǐng)求所中斷。斷請(qǐng)求所中斷。 為實(shí)現(xiàn)后兩條原則,為實(shí)現(xiàn)后兩條原則,中斷系統(tǒng)內(nèi)部

20、設(shè)有兩個(gè)用戶中斷系統(tǒng)內(nèi)部設(shè)有兩個(gè)用戶不能尋址的優(yōu)先級(jí)狀態(tài)觸發(fā)器。不能尋址的優(yōu)先級(jí)狀態(tài)觸發(fā)器。 一個(gè)表示正在響應(yīng)高優(yōu)先級(jí)的中斷,它將阻斷一個(gè)表示正在響應(yīng)高優(yōu)先級(jí)的中斷,它將阻斷 后來所有的中斷請(qǐng)求;后來所有的中斷請(qǐng)求; 另一個(gè)表示正在響應(yīng)低優(yōu)先級(jí)中斷,它將阻斷另一個(gè)表示正在響應(yīng)低優(yōu)先級(jí)中斷,它將阻斷 后來所有的低優(yōu)先級(jí)中斷請(qǐng)求。后來所有的低優(yōu)先級(jí)中斷請(qǐng)求。(1)中斷響應(yīng))中斷響應(yīng)中斷響應(yīng)定義中斷響應(yīng)定義 中斷響應(yīng)是中斷響應(yīng)是 CPU 對(duì)中斷源中斷請(qǐng)求的響應(yīng),包對(duì)中斷源中斷請(qǐng)求的響應(yīng),包括保護(hù)斷點(diǎn)和將程序轉(zhuǎn)向中斷服務(wù)程序入口地址括保護(hù)斷點(diǎn)和將程序轉(zhuǎn)向中斷服務(wù)程序入口地址 中斷響應(yīng)條件中斷響應(yīng)條件l

21、 中斷源有中斷請(qǐng)求中斷源有中斷請(qǐng)求l 此中斷源的中斷允許位為此中斷源的中斷允許位為1l CPU開中斷(即開中斷(即EA=1) 以下情況中斷響應(yīng)會(huì)受阻以下情況中斷響應(yīng)會(huì)受阻lCPU正在處理同級(jí)或高優(yōu)先級(jí)中斷正在處理同級(jí)或高優(yōu)先級(jí)中斷l(xiāng)當(dāng)前查詢的機(jī)器周期非執(zhí)行指令的最后一個(gè)機(jī)器周期當(dāng)前查詢的機(jī)器周期非執(zhí)行指令的最后一個(gè)機(jī)器周期l正在執(zhí)行的指令為正在執(zhí)行的指令為RETI或訪問或訪問IE或或IP寄存器的指令寄存器的指令 中斷響應(yīng)時(shí)間中斷響應(yīng)時(shí)間l中斷響應(yīng)時(shí)間:中斷響應(yīng)時(shí)間:指從查詢中斷請(qǐng)求標(biāo)志位到轉(zhuǎn)指從查詢中斷請(qǐng)求標(biāo)志位到轉(zhuǎn)向中斷服務(wù)入口地址所需的機(jī)器周期數(shù)。向中斷服務(wù)入口地址所需的機(jī)器周期數(shù)。 l若

22、若M1周期的周期的S5P2前某中斷生效,在前某中斷生效,在S5P2期間其期間其中斷請(qǐng)求被鎖存到相應(yīng)的標(biāo)志位中;中斷請(qǐng)求被鎖存到相應(yīng)的標(biāo)志位中;M2周期查詢周期查詢中斷標(biāo)志;中斷標(biāo)志;M3和和M4執(zhí)行硬件執(zhí)行硬件LCALL指令;指令;M5周周期將進(jìn)入中斷服務(wù)程序期將進(jìn)入中斷服務(wù)程序中斷響應(yīng)時(shí)間范圍中斷響應(yīng)時(shí)間范圍最快響應(yīng)時(shí)間最快響應(yīng)時(shí)間 以外部中斷的電平觸發(fā)為最快。以外部中斷的電平觸發(fā)為最快。 從查詢中斷請(qǐng)求信號(hào)到中斷服務(wù)程序需從查詢中斷請(qǐng)求信號(hào)到中斷服務(wù)程序需 三個(gè)機(jī)器周期:三個(gè)機(jī)器周期: 1個(gè)周期(查詢)個(gè)周期(查詢)2個(gè)周期(長(zhǎng)調(diào)用個(gè)周期(長(zhǎng)調(diào)用LCALL)最長(zhǎng)時(shí)間最長(zhǎng)時(shí)間問題:若當(dāng)前指令

23、是RET、RETI和IP、IE指令,下一條發(fā)生乘除指令,則最長(zhǎng)為多少個(gè)周期?2個(gè)周期執(zhí)行當(dāng)前指令(其中含有個(gè)周期執(zhí)行當(dāng)前指令(其中含有1個(gè)周期查詢)個(gè)周期查詢)4個(gè)周期乘除指令個(gè)周期乘除指令2個(gè)周期長(zhǎng)調(diào)用個(gè)周期長(zhǎng)調(diào)用(2)中斷處理)中斷處理 中斷處理就是執(zhí)行中斷服務(wù)程序。中斷處理就是執(zhí)行中斷服務(wù)程序。 中斷服務(wù)程序從中斷入口地址開始執(zhí)行,到返中斷服務(wù)程序從中斷入口地址開始執(zhí)行,到返回指令回指令RETIRETI為止。為止。 執(zhí)行硬件執(zhí)行硬件LCALL指令,指令,進(jìn)入中斷服務(wù)程序后,進(jìn)入中斷服務(wù)程序后,先保護(hù)現(xiàn)場(chǎng),后執(zhí)行中斷處理程序,在中斷返先保護(hù)現(xiàn)場(chǎng),后執(zhí)行中斷處理程序,在中斷返回前再恢復(fù)現(xiàn)場(chǎng)。

24、回前再恢復(fù)現(xiàn)場(chǎng)。 (3 3)中斷返回)中斷返回 中斷返回是指中斷服務(wù)完后,計(jì)算機(jī)返回原中斷返回是指中斷服務(wù)完后,計(jì)算機(jī)返回原來斷開的位置(即斷點(diǎn)),繼續(xù)執(zhí)行原來的程來斷開的位置(即斷點(diǎn)),繼續(xù)執(zhí)行原來的程序。中斷返回由中斷返回指令序。中斷返回由中斷返回指令 RETI 來實(shí)現(xiàn)。來實(shí)現(xiàn)。 RETI指令的具體功能:指令的具體功能:l 將中斷響應(yīng)時(shí)壓入堆棧保存的斷點(diǎn)地址從棧將中斷響應(yīng)時(shí)壓入堆棧保存的斷點(diǎn)地址從棧 頂彈出送回頂彈出送回PC,CPU從原來中斷的地方繼續(xù)從原來中斷的地方繼續(xù) 執(zhí)行程序;執(zhí)行程序;l 將相應(yīng)中斷優(yōu)先級(jí)狀態(tài)觸發(fā)器清零。將相應(yīng)中斷優(yōu)先級(jí)狀態(tài)觸發(fā)器清零。0,通知,通知中斷系統(tǒng),中斷服

25、務(wù)程序已執(zhí)行完畢。中斷系統(tǒng),中斷服務(wù)程序已執(zhí)行完畢。 (4) 中斷請(qǐng)求的撤除中斷請(qǐng)求的撤除8051 各中斷源中斷請(qǐng)求撤消方法:各中斷源中斷請(qǐng)求撤消方法: 對(duì)串口、對(duì)串口、T2中斷中斷:CPU 在響應(yīng)中斷后,硬在響應(yīng)中斷后,硬 件不能自動(dòng)清除中斷請(qǐng)求標(biāo)志位件不能自動(dòng)清除中斷請(qǐng)求標(biāo)志位 TI、RI,須,須 在中斷服務(wù)程序中用軟件將其清除;在中斷服務(wù)程序中用軟件將其清除; 對(duì)對(duì)INT0、INT1:若設(shè)置為電平中斷,:若設(shè)置為電平中斷,CPU響應(yīng)中斷后,應(yīng)使外部引腳置高,以避免重復(fù)響應(yīng)中斷后,應(yīng)使外部引腳置高,以避免重復(fù)中斷中斷 。例例 多外部中斷源的系統(tǒng)示例多外部中斷源的系統(tǒng)示例 設(shè)有設(shè)有5個(gè)外部中

26、斷源,中斷優(yōu)先級(jí)排隊(duì)順序?yàn)椋簜€(gè)外部中斷源,中斷優(yōu)先級(jí)排隊(duì)順序?yàn)椋篨I0、XI1、XI2、XI3、XI4。試設(shè)計(jì)它們與。試設(shè)計(jì)它們與80C51單片機(jī)的接口。單片機(jī)的接口。 ORG 0003H LJMP INSE0 轉(zhuǎn)外部中斷轉(zhuǎn)外部中斷0服務(wù)程序入口服務(wù)程序入口 ORG 0013H LJMP INSE1 轉(zhuǎn)外部中斷轉(zhuǎn)外部中斷1服務(wù)程序入口服務(wù)程序入口 INSE0: PUSH PSW XI0中斷服務(wù)程序中斷服務(wù)程序 PUSH ACC POP ACC POP PSW RETI INSE1: PUSH PSW 中斷服務(wù)程序中斷服務(wù)程序 PUSH ACC JB P1.0,DV1; JB P1.1,DV2

27、; INRET: POP ACC POP PSW RETI DV1: XI1中斷服務(wù)程序中斷服務(wù)程序 AJMP INRET DV2: XI2中斷服務(wù)程序中斷服務(wù)程序 AJMP INRET 3.9.1 三種定時(shí)方式三種定時(shí)方式l 軟件定時(shí)軟件定時(shí) 不占用硬件資源,但占用不占用硬件資源,但占用 了了CPU時(shí)間時(shí)間l 基電路定時(shí)基電路定時(shí) 如采用如采用555電路,外接必要的元器件電路,外接必要的元器件 缺點(diǎn):在硬件連接好以后,定時(shí)值與定時(shí)范圍缺點(diǎn):在硬件連接好以后,定時(shí)值與定時(shí)范圍 不能由軟件進(jìn)行控制和修改不能由軟件進(jìn)行控制和修改l可編程芯片定時(shí)可編程芯片定時(shí) 定時(shí)值及定時(shí)范圍很容易用軟件來確定和修

28、定時(shí)值及定時(shí)范圍很容易用軟件來確定和修 改,此種芯片定時(shí)功能強(qiáng),使用靈活改,此種芯片定時(shí)功能強(qiáng),使用靈活3.9.2 3.9.2 定時(shí)定時(shí)/ /計(jì)數(shù)器的結(jié)構(gòu)計(jì)數(shù)器的結(jié)構(gòu)3.9.3 定時(shí)定時(shí)/計(jì)數(shù)器的工作原理計(jì)數(shù)器的工作原理 脈沖來源:脈沖來源: 一個(gè)由系統(tǒng)時(shí)鐘振蕩器輸出脈沖經(jīng)一個(gè)由系統(tǒng)時(shí)鐘振蕩器輸出脈沖經(jīng)12分頻后分頻后送來;一個(gè)是送來;一個(gè)是T0或或T1引腳輸入的外部脈沖源。引腳輸入的外部脈沖源。 定時(shí)器模式定時(shí)器模式 加加1計(jì)數(shù)器是對(duì)內(nèi)部機(jī)器周期計(jì)數(shù),每過一計(jì)數(shù)器是對(duì)內(nèi)部機(jī)器周期計(jì)數(shù),每過一個(gè)機(jī)器周期,計(jì)數(shù)器加個(gè)機(jī)器周期,計(jì)數(shù)器加1,直,直 至計(jì)滿溢出為止。至計(jì)滿溢出為止。 定時(shí)時(shí)間定時(shí)時(shí)間

29、 t = 計(jì)數(shù)值計(jì)數(shù)值N 機(jī)器周期機(jī)器周期Tcy 計(jì)數(shù)器模式計(jì)數(shù)器模式 3.9.4 定時(shí)定時(shí)/計(jì)數(shù)器的控制計(jì)數(shù)器的控制 工作方式寄存器工作方式寄存器TMOD定時(shí)器定時(shí)器T1定時(shí)器定時(shí)器T0GATE:門控位:門控位lGATE0時(shí),用軟件使時(shí),用軟件使TCON中的中的TR0或或TR1為為1,就可啟動(dòng)定時(shí),就可啟動(dòng)定時(shí)/計(jì)數(shù)器工作;計(jì)數(shù)器工作;lGATE1時(shí),要用軟件使時(shí),要用軟件使TR0或或TR1為為1,同時(shí)外部中斷引腳為高電平時(shí),才能啟動(dòng)定同時(shí)外部中斷引腳為高電平時(shí),才能啟動(dòng)定時(shí)時(shí)/計(jì)數(shù)器工作。計(jì)數(shù)器工作。問題:若定時(shí)/計(jì)數(shù)器以計(jì)數(shù)方式工作,工作方式為2,那么TMOD 的值應(yīng)為多少?定時(shí)器定時(shí)器

30、T1定時(shí)器定時(shí)器T0MIMO 工作方式工作方式說明說明00 方式013位定時(shí)/計(jì)數(shù)器01方式116位定時(shí)/計(jì)數(shù)器10方式28位自動(dòng)重裝定時(shí)/計(jì)數(shù)器11方式3T0分為兩個(gè)獨(dú)立的8位定時(shí)/計(jì)數(shù)器,T1此方式停止計(jì)數(shù) 控制寄存器控制寄存器TCON l TF1(TCON.7):):T1溢出中斷請(qǐng)求標(biāo)志位溢出中斷請(qǐng)求標(biāo)志位 T1計(jì)數(shù)溢出時(shí)由硬件自動(dòng)置計(jì)數(shù)溢出時(shí)由硬件自動(dòng)置TF1為為1。CPU響應(yīng)響應(yīng) 中斷后中斷后TF1由硬件自動(dòng)清由硬件自動(dòng)清0。l TR1(TCON.6):):T1運(yùn)行控制位。運(yùn)行控制位。 TR1置置1時(shí),時(shí),T1開始工作;開始工作;TR1置置0時(shí),時(shí),T1停止工停止工 作。作。TR1由

31、軟件置由軟件置1或清或清0。3.9.5 定時(shí)定時(shí)/計(jì)數(shù)器的工作方式計(jì)數(shù)器的工作方式 (1) 方式方式0 13位計(jì)數(shù)時(shí),位計(jì)數(shù)時(shí),由由TL0的低的低5位和位和TH0的的8位組成。位組成。 16X=2 -N(2)方式)方式1 方式方式1的計(jì)數(shù)位數(shù)是的計(jì)數(shù)位數(shù)是16位,由位,由TL0作為低作為低8位而位而 TH0 作為高作為高8位,組成了位,組成了16位加位加1計(jì)數(shù)器。計(jì)數(shù)器。 計(jì)數(shù)個(gè)數(shù)與計(jì)數(shù)初值的關(guān)系為:計(jì)數(shù)個(gè)數(shù)與計(jì)數(shù)初值的關(guān)系為: 8X=2 -N(3)方式)方式2 方式方式2為自動(dòng)重裝初值的為自動(dòng)重裝初值的8位計(jì)數(shù)方式位計(jì)數(shù)方式計(jì)數(shù)個(gè)數(shù)與計(jì)數(shù)初值的關(guān)系為計(jì)數(shù)個(gè)數(shù)與計(jì)數(shù)初值的關(guān)系為: (4)方式)

32、方式3 方式方式3只適用于定時(shí)只適用于定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T0,定時(shí)器,定時(shí)器T1處于處于方式方式3時(shí)相當(dāng)于時(shí)相當(dāng)于TR1=0,停止計(jì)數(shù),停止計(jì)數(shù) 3.9.5 定時(shí)定時(shí)/計(jì)數(shù)器用于外部中斷擴(kuò)展計(jì)數(shù)器用于外部中斷擴(kuò)展 方法:方法:定時(shí)定時(shí)/計(jì)數(shù)器設(shè)置為計(jì)數(shù)器方式計(jì)數(shù)器設(shè)置為計(jì)數(shù)器方式 初值設(shè)為滿程初值設(shè)為滿程 待擴(kuò)展外部中斷源接至外部計(jì)數(shù)引腳待擴(kuò)展外部中斷源接至外部計(jì)數(shù)引腳 3.9.5 定時(shí)定時(shí)/計(jì)數(shù)器用于外部中斷擴(kuò)展計(jì)數(shù)器用于外部中斷擴(kuò)展 初始化工作:初始化工作:定時(shí)器定時(shí)器T1定時(shí)器定時(shí)器T0l對(duì)對(duì)TMOD賦值,以確定賦值,以確定T0和和T1的工作方式的工作方式l 計(jì)算初值,并將其寫入計(jì)算初值

33、,并將其寫入TH0、TL0或或TH1、 TL1 3.9.5 定時(shí)定時(shí)/計(jì)數(shù)器用于外部中斷擴(kuò)展計(jì)數(shù)器用于外部中斷擴(kuò)展 初始化工作:初始化工作:l中斷方式時(shí),則對(duì)中斷方式時(shí),則對(duì)IE賦值,開放中斷賦值,開放中斷l(xiāng)使使TR0或或TR1置位,啟動(dòng)定時(shí)置位,啟動(dòng)定時(shí)/計(jì)數(shù)器定計(jì)數(shù)器定 時(shí)或計(jì)數(shù)時(shí)或計(jì)數(shù) 例例1 :利用:利用T0擴(kuò)展一個(gè)外部中斷源。擴(kuò)展一個(gè)外部中斷源。 T0以計(jì)數(shù)器以計(jì)數(shù)器方式工作,工作方式為方式工作,工作方式為2 。 Program: MOV TMOD,#06H ;置;置T0為計(jì)數(shù)器方式為計(jì)數(shù)器方式2 MOV TL0,#0FFH ; 置計(jì)數(shù)初值置計(jì)數(shù)初值 MOV TH0,#0FFH SE

34、TB TR0 ;啟動(dòng);啟動(dòng)T0工作工作 SETB EA ; CPU開中斷開中斷 SETB ET0 ;允許;允許T0中斷中斷 例例 2 利用定時(shí)利用定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T0的方式的方式1,產(chǎn)生,產(chǎn)生10ms的定的定時(shí),并使時(shí),并使P1.0引腳上輸出周期為引腳上輸出周期為20ms的方波,采用的方波,采用中斷方式,設(shè)系統(tǒng)時(shí)鐘頻率為中斷方式,設(shè)系統(tǒng)時(shí)鐘頻率為12 MHz。 關(guān)鍵點(diǎn):計(jì)算計(jì)數(shù)初值關(guān)鍵點(diǎn):計(jì)算計(jì)數(shù)初值X 晶振為晶振為12 MHz,機(jī)器周期,機(jī)器周期Tcy為?為?S 機(jī)器周期=6個(gè)狀態(tài)周期=12個(gè)時(shí)鐘周期 Nt/ Tcy 10103/110610000 X655361000055536D8F0

35、H LJMP DVT0 ;轉(zhuǎn)向中斷服務(wù)程序;轉(zhuǎn)向中斷服務(wù)程序MAIN:MOV TMOD,#01H ;置置T0工作于方式工作于方式1 MOV TH0,#0D8H ;裝入計(jì)數(shù)初值裝入計(jì)數(shù)初值 MOV TL0,#0F0H SETB ET0 ;T0開中斷開中斷 SETB EA ;CPU開中斷開中斷 SETB TR0 ;啟動(dòng)啟動(dòng)T0 SJMP $ ;等待中斷等待中斷DVT0:CPL P1.0 ; P1.0取反輸出取反輸出 MOV TH0,#0D8H ; 重新裝入計(jì)數(shù)值重新裝入計(jì)數(shù)值 MOV TL0,#0F0H RETI ; 中斷返回中斷返回 ENDl 4.1 指令分類 按指令功能,MCS-51指令系統(tǒng)分

36、為: 數(shù)據(jù)傳遞與交換、算術(shù)運(yùn)算、邏輯運(yùn)算、程序轉(zhuǎn)移、布爾處理操作、CPU控制等6類。l4.2 指令格式 在MCS-51指令中,一般指令主要由操作碼、操作數(shù)組成。 指令格式為:操作碼 目的操作數(shù),源 操作數(shù) 尋址方式:就是尋找指令中操作數(shù)或操作數(shù)所在地址的方法。8051共有七中尋址方式。立即尋址 直接尋址寄存器尋址 寄存器間接尋址變址尋址 相對(duì)尋址位尋址lRn當(dāng)前選中的寄存器區(qū)中的8個(gè)工作寄存 器R0R7(n=07)lRi當(dāng)前選中的寄存器區(qū)中的2個(gè)工作寄存 器(間接尋址寄存器)R0、R1ldirect 8位的內(nèi)部數(shù)據(jù)存儲(chǔ)器單元中的地址l#data包含在指令中的8位常數(shù)l#data16包含在指令中

37、的16位常數(shù)laddr1616位目的地址laddr1111位目的地址rel8位帶符號(hào)的偏移字節(jié),簡(jiǎn)稱偏移量DPTR數(shù)據(jù)指針,可用作16位地址寄存器bit內(nèi)部RAM或?qū)S眉拇嫫髦械闹苯訉ぶ肺籄 累加器B 專用寄存器,用于乘法和除法指令中C進(jìn)位標(biāo)志或進(jìn)位位,或布爾處理機(jī)中的累 加器$ 表示程序計(jì)數(shù)器的當(dāng)前值。常出現(xiàn)在轉(zhuǎn)移 指令中,如:SJMP $ 表示循環(huán)等待l指令中直接給出操作數(shù)的尋址方式。 立即操作數(shù)用加有#號(hào)的8位或16位數(shù)表示 例如:MOV A,# 60H;A60H MOV DPTR,# 3400H;DPTR3400H MOV30H,# 40H;30H單元40H l上述三條指令執(zhí)行完后,累

38、加器A中數(shù)據(jù)為立即數(shù)據(jù)60H,DPTR寄存器中數(shù)據(jù)為3400H,30H單元中數(shù)據(jù)為立即數(shù)40H。l指令中直接給出操作數(shù)地址的尋址方式,能進(jìn)行直接尋址的存儲(chǔ)空間有SFR寄存器和片內(nèi)RAM的128個(gè)單元。 例如:MOV A,P1; A(P1) 把SFR中P1口的內(nèi)容送A。 MOV A,30H; A(30H) 30H為直接給出的內(nèi)部RAM的地址l以通用寄存器的內(nèi)容為操作數(shù)的尋址方式。通用寄存器指A、B 、DPTR以及R0R7 。 例如:MOV A,R0;A (R0) CLR A;A0 INC DPTR;DPTRDPTR+1 ADDA,R5;A(A)+(R5)l以寄存器中內(nèi)容為地址,以該地址中內(nèi)容為操

39、作數(shù)的尋址方式。間接尋址的存儲(chǔ)器空間包括內(nèi)部數(shù)據(jù)RAM和外部數(shù)據(jù)RAM。l能用于寄存器間接尋址的寄存器有R0,R1,DPTR,SP。其中R0、R1必須是工作寄存器組中的寄存器。SP僅用于堆棧操作。例:MOV R0,A ;內(nèi)部RAM(R0)A 其指令操作過程示意圖如圖4.1所示。 又如:MOVX DPTR,A; 外部RAM (DPTR)A 其指令操作過程示意圖如圖4.所示。片內(nèi)RAM30HR034HA30H34H圖4-1 MOV R0,A間接尋址示意圖片外RAM2000HDPTR30HA2000H30H圖圖4-2 MOVX DPTR,A間接尋址間接尋址 基址寄存器(A)+變址寄存器(PC或DPT

40、R)的間接尋址。 變址尋址只能對(duì)程序存儲(chǔ)器中數(shù)據(jù)進(jìn)行操作。由于程序存儲(chǔ)器是只讀的,因此變址尋址只有讀操作而無(wú)寫操作,在指令符號(hào)上采用MOVC的形式(如圖4-3所示)。 例:MOVC A, A+DPTR; A(A+DPTR) 又 如:MOVC A, A+PC ; A(A+PC) 圖4-3 變址尋址示意圖程序存儲(chǔ)器2000HDPTR64H(10H)A2010H64H10H2000Hl以當(dāng)前程序計(jì)數(shù)器PC的內(nèi)容為基礎(chǔ),加上指令給出的一字節(jié)補(bǔ)碼數(shù)(偏移量)形成新的PC值的尋址方式。l相對(duì)尋址用于修改PC值,主要用于實(shí)現(xiàn)程序的分支轉(zhuǎn)移。 例:SJMP 08H ;PCPC+2+08H 指令操作示意圖如圖4

41、-4所示。程序存儲(chǔ)器(2000H)200AHSJMP200AH08H2000H+208HPC2000H圖4-4 相對(duì)尋址示意圖l只能對(duì)有位地址的單元作位尋址操作。l是一種直接尋址方式,但其地址是位地址。 例:SETB 10H;將10H位置1。 若22H單元中存放著數(shù)據(jù)40H,22H單元的 D0位的位地址為10H,執(zhí)行上述指令后 (22H)=41H 又如:MOV 32H,C ;32H進(jìn)位位C ORL C ,32H ;CC32H尋址方式源操作數(shù)尋址空間立即數(shù)尋址程序存儲(chǔ)器ROM直接尋址片內(nèi)RAM低128B、SFR寄存器尋址工作寄存器R0-R7、A、B、C、DPTR寄存器間接尋址片內(nèi)RAM低128B

42、R0、R1片外RAM R0、R1、 DPTR變址尋址程序存儲(chǔ)器A+PC、 A+DPTR相對(duì)尋址程序存儲(chǔ)器256B范圍(PC+偏移量)位尋址片內(nèi)RAM的20H2FH字節(jié)地址l4.2.1 數(shù)據(jù)傳送類指令l4.2.2 算術(shù)運(yùn)算類指令l4.2.3 邏輯運(yùn)算類指令l4.2.4 控制程序轉(zhuǎn)移類指令l4.2.5 調(diào)用子程序及返回指令l4.2.6 位操作指令l4.2.7 空操作指令l數(shù)據(jù)傳送類指令共28條,是將源操作數(shù)送到目的操作數(shù)。l指令執(zhí)行后,源操作數(shù)不變,目的操作數(shù)被源操作數(shù)取代。l數(shù)據(jù)傳送類指令用到的助記符有MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH、POP8種。l源操作數(shù)可采用

43、寄存器、寄存器間接、直接、立即、變址5種尋址方式尋址;l目的操作數(shù)可以采用寄存器、寄存器間接、直接尋址3種尋址方式。l數(shù)據(jù)傳送指令是一種最基本最常用的操作,在通常的程序中占有極大的比例。MOV A,Rn;A RnMOV A,direct;A(direct)MOV A,Ri ;A(Ri)MOV A,#data;A #data上述指令是將源操作數(shù)指定的內(nèi)容送到累加器A中。上述操作只影響PSW的P標(biāo)志位。在8051指令系統(tǒng)中,訪問片外RAM只能用寄存器間接尋址,與累加器A配合,共四條指令。 MOVX A,Ri;A (Ri) MOVX Ri,A;(Ri) A 尋址范圍是片外256BRAM。 MOVX

44、A,DPTR;A (DPTR) MOVX DPTR,A;(DPTR) A 尋址范圍是片外64KBRAM。注:數(shù)據(jù)表格放在程序存儲(chǔ)器中 近程查表指令(256B) MOVC A,A+PC ;A(A)+(PC) 只能查找指令所在地址以后256B范圍內(nèi)的常數(shù)或代碼。遠(yuǎn)程查表指令(64KB)MOVC A,A+DPTR;A (A)+(DPTR)查表范圍可達(dá)ROM的64KB空間。例如:在程序存儲(chǔ)器中,數(shù)據(jù)表格為 1010H:02H 1011H:04H 1012H:06H 1013H:08H執(zhí)行程序1000H:MOV A,#0DH;A 0DH, 偏移量1002H:MOVC A,A+PC;1003H:MOV R

45、0,A ; R0 A 問題:(A)= ? (R0)=? (PC)=? 如:在程序存儲(chǔ)器中,數(shù)據(jù)表格為: 7010H:02H 7011H:04H 7012H:06H 7013H:08H 執(zhí)行程序 1000H:MOV A,#10H; A 10H ,偏移量 1002H:MOV DPTR,#7000H; 1003H: MOVC A, A+DPTR; 問題(A)=?l 字節(jié)交換XCH A,Rn;A RnXCH A ,direct ;A(direct)XCH A,Ri;A(Ri)l 半字節(jié)交換XCHD A,Ri ;A03(Ri)03 低4位互換,高4位不變。SWAP A;A03A47(高低兩半字節(jié)交換)

46、堆棧是在片內(nèi)RAM中按“先進(jìn)后出,后進(jìn)先出”原則設(shè)置的專用存儲(chǔ)區(qū)。數(shù)據(jù)的進(jìn)棧出棧由指針SP統(tǒng)一管理。 堆棧的操作有如下兩條專用指令: PUSH direct; SP(SP+1),(SP)(direct) POP direct; (direct)(SP),SP SP-1 MOV R5,R7MOV A,55HMOV A,55HJMP A+DPTR MOV 30H,CMOV A,R0MOVX A, R0習(xí)題:分別說出下列指令的尋址方式方法1: MOV31H,30H MOV30H,40H MOV40H,31H SJMP$方法2: MOVR0,#40H MOVR1,#30H MOVA,R0 MOVB,R

47、1 MOVR1,A MOVR0,B SJMP$ 方法3: MOVA,30H XCHA,40H MOV30H,A SJMP$ 方法4: PUSH30H PUSH40H POP30H POP40H SJMP$l8051算術(shù)運(yùn)算指令包括加、減、乘、除基本四則運(yùn)算l算術(shù)運(yùn)算結(jié)果將使進(jìn)位CY、半進(jìn)位AC、溢出位OV三個(gè)標(biāo)志位置位或復(fù)位,只有加1和減1指令不影響這些標(biāo)志位l加、減、乘、除及十進(jìn)制調(diào)整指令,目的操作數(shù)均為累加器A。(1) 加法指令(四條)ADD A,Rn;A A + RnADD A,direct;A A +(direct)ADD A,Ri ;A A +(Ri)ADD A,#data ;A A

48、 + #data(2)帶進(jìn)位加指令(四條) ADDC A,Rn;A A + Rn + C ADDC A,direct;A A +(direct)+ C ADDC A,Ri;A A +(Ri)+ C ADDC A,#data;A A + #data + C C為來自PSW狀態(tài)寄存器中的進(jìn)位位C 功能:把源操作數(shù)指出的內(nèi)容和進(jìn)位標(biāo)志位 CY都加到累加器A中,結(jié)果存在A中 例:設(shè)(A)=03CH,(R0)=0AAH,CY=1, 執(zhí)行指令 ADDC ,R0 后,A=6EH (A):1100 0011 +(CY):0000 0001 1100 0100 +(R0):1010 1010 0110 1110

49、 標(biāo)志位CY=1,AC=0(3) 帶借位減指令 SUBB A,Rn;A A - Rn - C SUBB A,direct;A A -(direct)- C SUBB A,Ri;A A -(Ri)- C SUBB A,#data;A A - #data C 功能:從累加器A中減去源操作數(shù)指出的內(nèi)容和進(jìn)位標(biāo)志位CY的值,差存放在累加器A中 例:設(shè)(A)=0C9H,(R2)=20H, (20H)=54H,CY=1 執(zhí)行指令 SUBB,R2后, A=74H (A):1100 1001 (CY):0000 0001 1100 1000 (R2):0101 0100 0111 0100 標(biāo)志位CY=0,A

50、C=0(4) 乘法指令 MUL AB;BA AB A和B中各存放一個(gè)8位無(wú)符號(hào)數(shù),指令執(zhí)行后,16位乘積的高8位在B中,低8位存A中。 例: (A)=30H, (B)=60H; 執(zhí)行 MUL AB 后,A=00H,B=12H (5) 除法指令 DIV AB;AB商在A中,余數(shù)在 B中 A和B中各存放一個(gè)8位無(wú)符號(hào)數(shù),A放被除數(shù),B放除數(shù)。指令執(zhí)行后,A中存放商,B中存入余數(shù)。若B=00H,則指令執(zhí)行后OV=1,A與B不變。 例: (A)=30H,(B)=07H; 執(zhí)行 DIV AB 后,A=06H,B=06H(6) 加1指令 (5條) INC A; A A + 1 INC Rn ; Rn Rn + 1 INC direct; (direct) (direct)+ 1 INC Ri; (Ri)(Ri)+ 1 INC DPTR; DPTR DPTR + 1功能:將操作數(shù)所指定的單元加,其操作不影響PSW;若原單元內(nèi)容為FFH,加1后溢出為00H,也不影響PSW。例:(30H)=22H,執(zhí)行 INC 30H 后, (30H)=23H (7) 減1指令DEC A;A A - 1DEC Rn

溫馨提示

  • 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)論