MCS51單片機(jī)原理及應(yīng)用課件_第1頁(yè)
MCS51單片機(jī)原理及應(yīng)用課件_第2頁(yè)
MCS51單片機(jī)原理及應(yīng)用課件_第3頁(yè)
MCS51單片機(jī)原理及應(yīng)用課件_第4頁(yè)
MCS51單片機(jī)原理及應(yīng)用課件_第5頁(yè)
已閱讀5頁(yè),還剩641頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、單片機(jī)原理及應(yīng)用,考核方式:筆試+實(shí)驗(yàn)+作業(yè),期末成績(jī)占 70%,期中成績(jī)占20%,實(shí)驗(yàn)成 績(jī)占5%,平時(shí)作業(yè)成績(jī)占5%。,答疑時(shí)間:周三下午 16:0017:30,答疑地點(diǎn):機(jī)械學(xué)院 508室,本課程教學(xué)安排,祝愛(ài)萍:機(jī)械學(xué)院 508室,第一章概述 第二章mcs-51單片機(jī)結(jié)構(gòu)及原理 第三章 MCS-51單片機(jī)指令系統(tǒng)及編程舉例 第四章單片機(jī)定時(shí)功能及應(yīng)用 第五章單片機(jī)的中斷系統(tǒng) 第六章單片機(jī)串行口及應(yīng)用 第七章單片機(jī)系統(tǒng)擴(kuò)展及顯示接口技術(shù) 第八章 D/A、A/D轉(zhuǎn)換器接口及應(yīng)用 第九章 鍵盤接口技術(shù),目 錄,第一章 概述,【學(xué)習(xí)目標(biāo)】通過(guò)本章的學(xué)習(xí),學(xué)生應(yīng)該能 夠

2、:熟悉單片機(jī)的主要特點(diǎn)、 典型產(chǎn)品、應(yīng)用領(lǐng)域,掌握數(shù) 制以的概念及不同數(shù)制間的轉(zhuǎn) 換方法,明確數(shù)在計(jì)算機(jī)中的 表示方法。,重點(diǎn)和難點(diǎn)內(nèi)容:數(shù)制以及不同數(shù)制間的轉(zhuǎn) 換和數(shù)在計(jì)算機(jī)中的表示 方法。,解決方法:多練習(xí)。,課外指導(dǎo):答疑。,教學(xué)效果檢測(cè)方法:批閱作業(yè)。,本章作業(yè):教材P14 習(xí)題與思考題 1,2,3,4,5,6,7,8,1定義: 單片機(jī)全稱為單片微型計(jì)算機(jī)(single-chip Microcomputer),它在一塊芯片上集成了 CPU、RAM、ROM、PROM,E2PROM) CTC和多個(gè)I/O口,此外,有的單片機(jī)如8096 單片機(jī)上還集成了ADC 和DAC轉(zhuǎn)換芯片。,本章主要內(nèi)容

3、,一單片機(jī)的定義及特點(diǎn), 測(cè)量與顯示:如各種智能儀表,用于提高測(cè) 量與顯示的自動(dòng)化程度和準(zhǔn)確 度。,3. 應(yīng)用領(lǐng)域:主要應(yīng)用于以下幾方面,2特點(diǎn):?jiǎn)纹瑱C(jī)的體積小,可靠性高,價(jià)格便 宜,功耗低,它是目前應(yīng)用最廣泛的 工業(yè)控制微機(jī)。,輔助設(shè)計(jì)和制造 :如加工中心,用于提高 加工的自動(dòng)化程度和精度。,日常生活:如各種家電中,用于提高家電的 自動(dòng)化程度,增強(qiáng)其功能。,科學(xué)計(jì)算:人造衛(wèi)星軌跡, 天氣預(yù)報(bào)等,數(shù)據(jù)處理 :企業(yè)管理、情報(bào)檢索等,其他方面:系統(tǒng)仿真 、智能模擬 、計(jì)算機(jī) 網(wǎng)絡(luò)與信息及高速公路管理等。,1946-1958: 第一代電子管計(jì)算機(jī)。磁鼓存儲(chǔ) 器,機(jī)器語(yǔ)言及匯編語(yǔ)言編程。 1958-1

4、964: 第二代晶體管計(jì)算機(jī)。磁芯作主 存儲(chǔ)器, 磁盤作外存儲(chǔ)器,開(kāi)始 使用高級(jí)語(yǔ)言編程。,二、 單片機(jī)的發(fā)展概況,1964-1971: 第三代集成電路計(jì)算機(jī)。使用半 導(dǎo)體存儲(chǔ)器,出現(xiàn)多終端計(jì)算機(jī) 和計(jì)算機(jī)網(wǎng)絡(luò)。 1971- : 第四代大規(guī)模集成電路計(jì)算機(jī)。 出現(xiàn)微型計(jì)算機(jī)、單片微型計(jì)算 機(jī),外部設(shè)備多樣化。 1981- : 第五代人工智能計(jì)算機(jī)。模擬人 的智能和交流方式。,二、 單片機(jī)的發(fā)展概況,三、 計(jì)算機(jī)發(fā)展趨勢(shì),微型化 便攜式、低功耗 巨型化 尖端科技領(lǐng)域的信息處理,滿足 超大容量、高速度的要求 智能化 模擬人類大腦思維和交流方式, 具有多種處理能力 系列化、標(biāo)準(zhǔn)化 便于各種計(jì)算機(jī)硬、

5、軟 件兼容和升級(jí) 多機(jī)系統(tǒng) 大型設(shè)備、生產(chǎn)流水線集中管理 (獨(dú)立控制、故障分散、資源共享),典型產(chǎn)品有8051,8751和8031。其三種 芯片的主要區(qū)別在于:ROM,EPROM和外接 EPROM。8051內(nèi)部程序要由生產(chǎn)芯片的廠 家寫入,適用于低成本大批量生產(chǎn);8751片 內(nèi)程序可由用戶固化或清除,價(jià)格相對(duì)較貴, 適用于開(kāi)發(fā)樣機(jī);8031芯片必須外接ROM, 適用于較方便進(jìn)行修改和更新程序記憶的場(chǎng) 合。,1. MCS-51系列簡(jiǎn)介:看P18表2.1,四、 常用單片機(jī)系列介紹,2. 存儲(chǔ)器簡(jiǎn)介:memory是單片機(jī)的主要組成 部分之一,主要用于存儲(chǔ)信 息,它的分類如下:,內(nèi)存:包含有,RAM:

6、隨機(jī)存儲(chǔ)器,其中信息可讀可寫,斷 電丟失全部?jī)?nèi)容。,ROM:只讀存儲(chǔ)器,用戶不可更改其內(nèi)容, 與EPROM同樣,斷電仍可保存信息。,外存:包含有,硬盤:可隨時(shí)讀寫并永久保存信息 但硬盤存儲(chǔ) 容量有限,隨身攜帶不方便。,EPROM:可擦除可編程的只讀ROM,用紫外 線可擦除其內(nèi)容,用專用設(shè)備用戶 可固化信息。,軟盤:軟盤可隨時(shí)讀寫并永久保存信息,其 容量小但可無(wú)限擴(kuò)充,隨身攜帶方便。,光盤:可隨時(shí)讀取信息,容量大,隨身攜帶 方便,也可對(duì)其進(jìn)行寫操作并永久保 存信息,但必須配備專門的刻盤機(jī)。,五、數(shù)制及其間的轉(zhuǎn)換,1數(shù)制:常用的計(jì)數(shù)方法,有二( Binary )、 十( Decimal )、十六(

7、Hexadecimal)、 八(Q,Octal)、十二及六十進(jìn)制等。,優(yōu)盤:特點(diǎn)同軟盤,但容量較軟盤大很多, 比硬盤小。,位權(quán):某個(gè)數(shù)位的值是由這一位的數(shù)碼值乘以 處在這一位的固定常數(shù)決定的,通常把 這一固定常數(shù)稱之為位權(quán)值,簡(jiǎn)稱位 權(quán)。簡(jiǎn)而言之權(quán)是以基為底的冪。,例:1010.11B的基為2, 各位的權(quán)分別為:23、22、21、20。2-1和2-2,基數(shù):指數(shù)制所使用數(shù)碼的個(gè)數(shù)。 如: B(2),Q(8),D(10)、H(16)。,例1FFFFH =15163+15162+15161+15160 =65535 例210111100101B =27+25+24+23+22+2-1+2-3=18

8、8625,二,八,十六進(jìn)制轉(zhuǎn)換為十進(jìn)制時(shí),原則 為:按位權(quán)展開(kāi)相加。,2數(shù)制之間相互轉(zhuǎn)換的原則:,十進(jìn)制轉(zhuǎn)換為二,八,十六進(jìn)制時(shí),原則 為: 整數(shù)部分除基取余,先出低位, 小數(shù)部分乘基取整,先出高位。,例1 432D=1000101B (取四位小數(shù),并非精確轉(zhuǎn)換) 例2 25473D=37656Q=FEBAH, 機(jī)器數(shù):數(shù)字在機(jī)器中的表示方式稱為機(jī) 器數(shù),即將符號(hào)(+,)也作為 數(shù)字的一部分。具體地說(shuō),在存 儲(chǔ)數(shù)據(jù)時(shí),最高一位用來(lái)表示數(shù) 字的符號(hào),當(dāng)數(shù)字為正時(shí),最高 一位的值為0,當(dāng)數(shù)字為負(fù)時(shí),最 高一位的值為1。機(jī)器數(shù)有原碼、 反碼和補(bǔ)碼三種形式。,3數(shù)在計(jì)算機(jī)中的表示方法,真值:一個(gè)數(shù)的實(shí)

9、際大小稱為這個(gè)數(shù)的真 值。, 原碼:正數(shù)的符號(hào)位用0表示,負(fù)數(shù)的符號(hào) 位用1表示,符號(hào)位之后是數(shù)字的真 值,此法表示的數(shù)字稱為數(shù)的原碼。 正數(shù)的原碼與其真值相同。,例: 對(duì)于8位數(shù)據(jù): +35H表示為 +35H原碼=00110101 , -35H表示為 -35H原碼 =10110101 , +0原碼=00000000 , -0原碼=10000000, 反碼:正數(shù)的反碼與其原碼相同,負(fù)數(shù) 的反碼則為其對(duì)應(yīng)的原碼按位取 反(符號(hào)位除外)。,例: 對(duì)于8位數(shù)據(jù): +35H表示為 +35H反碼=00110101 , -35H表示為 -35H反碼=11001010 , +0反碼=00000000 , -

10、0反碼=11111111, 補(bǔ)碼:正數(shù)的補(bǔ)碼與其原碼相同,負(fù)數(shù) 的補(bǔ)碼則為其對(duì)應(yīng)的原碼按位取 反(符號(hào)位除外)加1。, 注意: 計(jì)算機(jī)中所有的符號(hào)數(shù)都是默認(rèn)用補(bǔ)碼 表示的。,例:對(duì)于8位數(shù)據(jù): +35H表示為: +35補(bǔ)碼=00110101 , -35H表示為: -35補(bǔ)碼=11001011, +0補(bǔ)碼=-0補(bǔ)碼=00000000。, 計(jì)算機(jī)中所能表示的符號(hào)數(shù)的范圍為: -2n-12n-11, n為數(shù)據(jù)的位數(shù)。,當(dāng)n=8時(shí),所能表示的符號(hào)數(shù)的范圍為: -128127, 即 -2727-1 當(dāng)n=16時(shí),所能表示的符號(hào)數(shù)的范圍為: -3276832767 即 -215215-1 。, 已知一個(gè)數(shù)

11、的補(bǔ)碼時(shí),其真值為: 正數(shù)真值=正數(shù)補(bǔ)碼 負(fù)數(shù)真值=負(fù)數(shù)補(bǔ)碼取反(符號(hào)位除外)1,例:x=01001101, 則x真值=01001101=77D x=10110101, 則x真值=11001010+1=11001011=75D,例:Y=11710=117補(bǔ)+10補(bǔ) =10001011+1110110 =110000001=-127, 利用補(bǔ)碼可將減法轉(zhuǎn)換為加法以簡(jiǎn)化硬 件電路,具體原理為:將減數(shù)與減號(hào)一 起變?yōu)檠a(bǔ)碼后再與被減數(shù)的補(bǔ)碼相加, 其和(如有進(jìn)位則舍棄進(jìn)位)就是兩數(shù) 之差。(了解),4ASCII碼:(又稱字符編碼), 英文字母AZ及az; 數(shù)字字符09: 專用字符:+,/,空格和各種標(biāo)

12、 點(diǎn)符號(hào); 各種非打印字符如:CR(回車),LF (換行), BELL(響鈴)等。,計(jì)算機(jī)處理的信息并不全是數(shù)字,有時(shí)還 要處理字符和字符串,常見(jiàn)的字符有:,5 BCD碼(Binary Coded Decimal) 用四位二進(jìn)制代碼表示一位十進(jìn)制正整數(shù) 的編碼稱為BCD碼。,以上這些字符在計(jì)算機(jī)中都用固定的二進(jìn) 制數(shù)表示,國(guó)際上目前采用最常用的美國(guó)標(biāo)準(zhǔn) 信息交換碼也稱ASCII碼來(lái)表示。要求大家記 住前兩類字符的ASCII碼值。(P10表1.3,列高行低),例:129=(0001 0010 1001)BCD,第二章 mcs-51單片機(jī)結(jié)構(gòu)及原理,【學(xué)習(xí)目標(biāo)】通過(guò)本章的學(xué)習(xí),學(xué)生應(yīng)該能 夠:掌握

13、有關(guān)單片機(jī)的基本結(jié) 構(gòu)及其功能,尤其是mcs-51系 列單片機(jī)CPU和存儲(chǔ)器的結(jié)構(gòu) 及功能,這一部分是全新的概 念,需要認(rèn)真掌握。,重點(diǎn)和難點(diǎn)內(nèi)容: mcs-51系列單片 機(jī)CPU和 存儲(chǔ)器的結(jié)構(gòu)及功能。,解決方法:細(xì)講、慢講。,課外指導(dǎo):答疑、質(zhì)疑。,教學(xué)效果檢測(cè)方法:課堂提問(wèn)、批閱作業(yè)。,本章作業(yè):教材P36 習(xí)題與思考題 1,3,5,6,7,本章主要內(nèi)容,2.1 mcs-51單片機(jī)結(jié)構(gòu) 2.2 mcs-51的存儲(chǔ)器結(jié)構(gòu) 2.3 單片機(jī)的時(shí)序,第一節(jié) mcs-51單片機(jī)結(jié)構(gòu),一、mcs-51單片機(jī)內(nèi)部結(jié)構(gòu)簡(jiǎn)介 二8051 CPU的組成及其功能 三計(jì)算機(jī)指令執(zhí)行過(guò)程 四. MCS-51引腳及

14、功能,單片機(jī)內(nèi)部最核心的部分是CPU,CPU 的主要功能是產(chǎn)生各種控制信號(hào),控制存儲(chǔ)器 及輸入/輸出端口的數(shù)據(jù)傳送,實(shí)現(xiàn)數(shù)據(jù)的算 術(shù)運(yùn)算、邏輯運(yùn)算以及位操作處理等功能。,8051 CPU 的組成及其功能,PC程序計(jì)數(shù)器:16位專用RS,用于存放下 一條將要執(zhí)行的指令地址, 其內(nèi)容有自加功能,它可 保證程序按一定順序執(zhí)行。,8051 CPU由控制器與運(yùn)算器兩部分組成 1控制器:,指令譯碼器:將指令RS的指令轉(zhuǎn)換成電信 號(hào),再經(jīng)邏輯控制電路產(chǎn)生各 種控制信號(hào)。(譯碼前指令為 0、1代碼,譯碼后指令為脈沖 信號(hào)),指令Register(RS):8位,用于暫存待執(zhí)行的 指令,等待譯碼。,8051 CP

15、U 的組成及其功能,數(shù)據(jù)指針DPTR:16位專用地址指針RS, 主要用于存放16位地址, 作間址RS使用,也可拆 成兩個(gè)8位RS,DPH和 DPL,它們片內(nèi)RAM中 占據(jù)的地址分為83H和 82H。,8051 CPU 的組成及其功能,定時(shí)控制與條件轉(zhuǎn)移邏輯電路:不介紹。,2運(yùn)算器:,累加器ACC:8位專用RS,用于存放操作數(shù) 或中間結(jié)果,是CPU中使用最 頻繁的一個(gè)RS,也是20個(gè)SFR 中的一個(gè)。,8051 CPU 的組成及其功能,程序狀態(tài)字RS(PSW):8位專用RS,用于 存放程序運(yùn)行中的各種狀態(tài)信 息,它可以進(jìn)行位操作,PSW 的字節(jié)地址為D0H,位地址為 D0D7H。各位的含義如下:

16、, 算邏運(yùn)算部件:此部件實(shí)現(xiàn)算數(shù)運(yùn)算與邏輯 運(yùn)算的功能,其運(yùn)算結(jié)果的 狀態(tài)送PSW中。,8051 CPU 的組成及其功能, CY(PSW.7):進(jìn)位標(biāo)志,表示在進(jìn)行無(wú) 符號(hào)加減時(shí),最高位有無(wú)向更高位進(jìn) (借)位,當(dāng)有進(jìn)位CY=1,無(wú)進(jìn)位則 CY=0。,程序狀態(tài)字RS(PSW)各位的含義,AC(PSW.6):半進(jìn)位標(biāo)志,表示在進(jìn)行 無(wú)符號(hào)加減時(shí),D3位有無(wú)向D4位進(jìn) (借)位,當(dāng)有AC=1,無(wú)則AC=0,主 要用于BCD 碼的判斷位。,程序狀態(tài)字RS(PSW)各位的含義, RS1,RS0(PSW.4,PSW.3):工作RS組 選擇標(biāo)志,用于選擇內(nèi)部RAM 中4 個(gè)RS中的一組它們的關(guān)系 如下:,

17、 F0(PSW.5):用戶標(biāo)志位,由用戶通過(guò)程 序設(shè)置1或0,表示程序處于某種狀態(tài), 為后續(xù)程序執(zhí)行提供條件。,程序狀態(tài)字RS(PSW), OV(PSW.2):溢出標(biāo)志,當(dāng)進(jìn)行符號(hào)數(shù) 運(yùn)算時(shí)可表示是否有溢出,則OV=1, 無(wú)則OV=0,溢出的邏輯表達(dá)式為 OV=C6YC7Y。, F1(PSW.1):保留位,無(wú)定義。,程序狀態(tài)字RS(PSW)各位的含義, P(PSW.0):奇偶標(biāo)志位,表示累加器A 中含“1”個(gè)數(shù)的奇偶性,當(dāng)A中有奇數(shù)個(gè)1,, B寄存器:用于乘除法操作,8位RS,是20 個(gè)SFR中之一,B用來(lái)存放第二操 作數(shù),即用于存放乘法的高位字 節(jié)或除法的余數(shù)部分。, 暫存器:暫存數(shù)據(jù)信息。

18、,P=1,否則P=0。 注意:P的值與A內(nèi)容的奇偶無(wú)關(guān)。,程序狀態(tài)字RS(PSW)各位的含義,三、計(jì)算機(jī)指令執(zhí)行過(guò)程,MCS-51采用40引腳雙列直插式封裝(DIP) 形式,(看P28圖2-6)。 主電源引腳:Vss(地)和Vcc(+5v)。 外接晶振引腳:有兩個(gè),四 MCS-51引腳及功能, XTAL2:片內(nèi)晶振器反向放大器輸出端,當(dāng) 使用外部晶振器,作為晶振信號(hào)的輸入端。, XTAL1:片內(nèi)晶振器反向放大器輸入端, 當(dāng)使用外部晶振器,此端接地。,四 MCS-51引腳及功能,3控制信號(hào)引腳:, RST/VPD:系統(tǒng)復(fù)位/備用電源輸入引腳, 輸入信號(hào),有兩個(gè)作用:,RST端維持兩個(gè)機(jī)器周期以上

19、的高電平時(shí) 將使單片機(jī)復(fù)位。復(fù)位后CPU各寄存器的 特點(diǎn)為:,A)四個(gè)I/O口P0P3鎖存器均被初始化 為0FFH; B)堆棧指針寄存器SP=07H; C)串行口數(shù)據(jù)緩沖器寄存器SBUF的內(nèi)容 不確定;其它各專用RS 均被寫成00H; D)內(nèi)部RAM不受復(fù)位影響,上電后RAM 內(nèi)容為隨機(jī)。,MCS-51引腳及功能,MCS-51引腳及功能, 當(dāng)電源電壓下降時(shí),此引腳可為備用電源 輸入線,為片內(nèi)RAM 提供備用電源。, 當(dāng)CPU訪問(wèn)外部memory初時(shí),產(chǎn)生正脈沖 ALE信號(hào)輸出,在其后沿將P0口輸出的低 8位地址鎖存于外部地址鎖存器中;,MCS-51引腳及功能,當(dāng)片內(nèi)有EPROM時(shí),可作為編程脈

20、沖輸入 端使用。, 訪問(wèn)外部memory的過(guò)程中,ALE端仍以 不變的頻率周期性的輸出正脈沖信號(hào),且 fALE=1/6fosc ,所以可用作對(duì)外輸出的時(shí)鐘 信號(hào)和定時(shí)作用;,MCS-51引腳及功能,MCS-51引腳及功能, 對(duì)于片內(nèi)有EPROM,編程時(shí),此引腳接 21v編程電源VPP ;,MCS-51引腳及功能,準(zhǔn)雙向端口工作特點(diǎn):只有使端口鎖存 器事先置“1”,才能使對(duì)應(yīng)口的I/O引腳作為 輸入線使用,而CPU執(zhí)行輸出操作時(shí),不管 端口的狀態(tài)如何都能直接輸出信號(hào)。,4輸入輸出引腳:P0、P1、P2、P3均為準(zhǔn)雙 向信息傳輸端口。,注意:P0P3除作為一般的I/O線使 用外,還 兼有以下功能:

21、,MCS-51引腳及功能, P1口:在EPROM編程驗(yàn)證程序時(shí)輸入低8 位地址。, P0口:當(dāng)CPU訪問(wèn)外部memory時(shí),P0口 可分時(shí)作為低8位地址線和8位雙 向數(shù)據(jù)線用。,MCS-51引腳及功能, P3口:第二功能見(jiàn)P27表27。復(fù)位后P3口 的第二功能可直接使用,但復(fù)位前必 須先置口內(nèi)鎖存器FFH才能用。,P2口;當(dāng)CPU訪問(wèn)外部memory時(shí),P2口 可作為外部高8位地址的輸出線。,第二節(jié) MCS-51的存儲(chǔ)器結(jié)構(gòu),MCS-51單片機(jī)物理上有4個(gè)存儲(chǔ)空間: 片內(nèi)程序存儲(chǔ)器ROM(4KB) 片外程序存儲(chǔ)器EPROM(64KB) 片內(nèi)數(shù)據(jù)存儲(chǔ)器RAM(256B) 片外數(shù)據(jù)存儲(chǔ)器RAM(6

22、4KB),這些存儲(chǔ)器結(jié)構(gòu)的物理特點(diǎn)是:程序存 儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器空間是相互獨(dú)立的,片內(nèi) 數(shù)據(jù)存儲(chǔ)器和片外數(shù)據(jù)存儲(chǔ)器空間在也是相 互獨(dú)立的。,從邏輯上MCS-51單片機(jī)又可分為3個(gè)存儲(chǔ)空間: 片內(nèi)、外統(tǒng)一編址的程序存儲(chǔ)器(共68KB) 片內(nèi)數(shù)據(jù)存儲(chǔ)器(共256B) 片外數(shù)據(jù)存儲(chǔ)器(共64KB) 。,MCS-51存儲(chǔ)器配置,0FFFH,256B,4KB,64KB,64KB,68KB, CPU通過(guò)P0,P2口送出要訪問(wèn)存儲(chǔ)單元的 地址A0A15 。 CPU發(fā)出ALE信號(hào)把P0口地址信號(hào)A0A7 鎖入鎖存器。 存儲(chǔ)器按A0A15地址進(jìn)行譯碼,找到要訪 問(wèn)的單元。,如下頁(yè)圖,MCS-51訪問(wèn)外部存儲(chǔ)器,粗

23、 略的講可分為以下四步:,一、 MCS-51單片機(jī)片內(nèi)外存儲(chǔ)器系統(tǒng)簡(jiǎn)介,二、MCS-51各存儲(chǔ)器具體說(shuō)明:, 外部程序存儲(chǔ)器用于存放程序、程序執(zhí)行 時(shí)必要的常數(shù)和表格。, 外部程序存儲(chǔ)器EPROM: MCS-51可以擴(kuò)展64K字節(jié)的EPROM,其中:, 外部程序存儲(chǔ)器受PC管理,PC的內(nèi)容始 終指向下一條將要執(zhí)行的指令所在的地 址,PC具有自動(dòng)加1的功能,保證程序按 規(guī)定順序執(zhí)行。,二、MCS-51各存儲(chǔ)器具體說(shuō)明:, 外部程序存儲(chǔ)器的容量為64K字節(jié),地址范 圍為:0000H0FFFFH,且有, 內(nèi)部程序存儲(chǔ)器EPROM:, 外部數(shù)據(jù)存儲(chǔ)器主要存放運(yùn)行程序的過(guò) 程中所需的數(shù)據(jù),中間結(jié)果和最終

24、結(jié)果。, 外部數(shù)據(jù)存儲(chǔ)器受data point(數(shù)據(jù)指針) 寄存器DPTR和工作寄存器R0及R1的管 理。, 外部數(shù)據(jù)存儲(chǔ)器RAM:, 外部數(shù)據(jù)存儲(chǔ)器在軟件上由MOVX類指令 訪問(wèn)。, 外部數(shù)據(jù)存儲(chǔ)器的最大容量為64K字節(jié), 地址范圍為: 0000H0FFFFH。, 外部數(shù)據(jù)存儲(chǔ)器RAM:,MCS-51芯片內(nèi)部有128個(gè)字節(jié)(BYTE) 的內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM(稱片內(nèi)RAM), 地址為00H7FH,有128B的特殊功能寄存 器(SFR)區(qū),地址為80H0FFH,也稱高 地址區(qū),共256個(gè)字節(jié)的存儲(chǔ)空間。從使用 性能上可分為以下幾部分:,4. MCS-51片內(nèi)數(shù)據(jù)存儲(chǔ)器,SFR,FFH, 位尋址

25、空間:內(nèi)部RAM中,地址20H2FH 16個(gè)字節(jié)單元(共128個(gè)位)具有位尋址的 功能,即CPU可對(duì)這16個(gè)字節(jié)中的每一位, 工作寄存器R:內(nèi)部RAM中00H1FH單元 (共32B)為通用工作Register區(qū),分為4組, 每組8個(gè)字節(jié),均可用作R0R7,用戶可根 據(jù)PSW中的RS1和RS0的值選擇相應(yīng)的工作 寄存器組。,MCS-51內(nèi)部RAM,這128個(gè)位的地址規(guī)定為00H7FH(RAM的 低區(qū)地址也是00H7FH),在使用中由軟件 指令加以區(qū)分。如:,MCS-51內(nèi)部RAM,單獨(dú)進(jìn)行操作,所以 20H2FH區(qū)域是MCS-51 單片機(jī)布爾處理機(jī)的一個(gè)存儲(chǔ)空間,其中:,20H2FH對(duì)應(yīng)此存儲(chǔ)區(qū)

26、中16個(gè)字節(jié)的每一 個(gè)字節(jié)的地址。,因?yàn)槊總€(gè)字節(jié)有8位,所以此存儲(chǔ)區(qū)共有 168=128位供用戶單獨(dú)操作。,MCS-51內(nèi)部RAM,且有: 對(duì)應(yīng)的字節(jié)地址=20H+位地址/8, 其中位地址/8的余數(shù)為該位在該字 節(jié)中所處的具體位置)。,MOV 20H, A (字節(jié)操作) ;20H單元 A的內(nèi)容 MOV 20H, C (位操作) ;布爾處理機(jī)存儲(chǔ)空間第20H位(即24H單元 中的第0位)中 PSW中進(jìn)位位CY內(nèi)容 。,例:位地址7AH對(duì)應(yīng)的字節(jié)地址的計(jì)算方法是: 7AH/8,商為F,余數(shù)為2,表示該位處于片 內(nèi)RAM 2FH(20H+F)字節(jié)的第二位。, 位地址=(字節(jié)地址-20H)8+N; 其

27、中:N=07,為該位在此字節(jié)中的位置, 例:2EH中的第6位對(duì)應(yīng)的位地址 =(2EH-20H)8+6=76H。, 30H7FH空間:用戶RAM區(qū),共80個(gè)字 節(jié),此部分空間可以作為buffer、堆棧區(qū) 等存儲(chǔ)單元用,但不能作為工作寄存器用, 不能進(jìn)行位尋址。, 對(duì)于工作Register區(qū)(00H1FH)單元, 沒(méi)有被選中的工作Register單元與30H 7FH單元具有同樣功能。, MCS-51特殊功能Register(SFR):, 在80H0FFH這128個(gè)字節(jié)中除去SFR占用 的21個(gè)字節(jié)外其余字節(jié)均無(wú)定義,注意訪 問(wèn)無(wú)定義的單元得到的是一個(gè)隨即數(shù)。, SFR的分布:MCS-51單片機(jī)除P

28、C外共有20 個(gè)SFR,占21個(gè)字節(jié)(因?yàn)镈PTR占兩個(gè)字 節(jié)),它們分布在內(nèi)部RAM的80H0FFH。,MCS-51特殊功能Register(SFR), 位尋址空間:在SFR中凡是字節(jié)地址能 被8整除的SFR均有位尋址功能(即末位 地址為8或0的SFR有位尋址功能),共 11個(gè)SFR有85位可進(jìn)行位尋址。, SFR與RAM(007FH)的區(qū)別:SFR作為 源操作數(shù)時(shí)只能采用直接尋址,寄存器間接 尋址對(duì)其無(wú)效,但對(duì)低128B的RAM區(qū)有效。, SP:堆棧指針RS,是個(gè)8位SFR,在RAM 中的地址值為81H,其內(nèi)容用于指示堆 棧棧頂(已存有數(shù)據(jù)的堆棧存儲(chǔ)單元) 的地址值。每當(dāng)有數(shù)據(jù)進(jìn)棧時(shí)SP值

29、自 動(dòng)加1,出棧時(shí)SP值自動(dòng)減1,當(dāng)系統(tǒng) 復(fù)位后,SP=07H,即堆棧實(shí)際上是 由08H單元開(kāi)始。, 幾個(gè)常用SFR的基本功能, 串行數(shù)據(jù)緩沖器SBUF:是個(gè)8位的SFR, 地址為99H,用于存放串行通訊時(shí)待發(fā)送 或已接受到的數(shù)據(jù),它由兩個(gè)獨(dú)立的寄存 器(Rbuf和Tbuf)組成,但它們共用一 個(gè)地址值),復(fù)位后SBUF的內(nèi)容不確定。,堆棧:是個(gè)具有先入后出特點(diǎn)的一片存儲(chǔ)區(qū), 堆棧的真正工作區(qū)一般選在片內(nèi)RAM 的30H7FH內(nèi)。, 幾個(gè)常用SFR的基本功能,定時(shí)器/計(jì)數(shù)器T0/T1:8051系列單片機(jī)有 兩個(gè)16位的定時(shí)器 /計(jì)數(shù)器 T0和T1,它們 分別由TL0,TH0和TL1,TH1兩個(gè)

30、 8位的 獨(dú)立的SFR組成,分布在片內(nèi)RAM的地址 為8AH8DH。,注意:T0與T1在使用時(shí)不能作為2個(gè)16位的 RS來(lái)對(duì)待。,第三節(jié) 單片機(jī)的時(shí)序,一、MCS-51單片機(jī)的復(fù)位方法及復(fù)位 后內(nèi)部各SFR狀態(tài),復(fù)位后內(nèi)部各SFR的狀態(tài):看P25表2.5。,一條指令可分解為若干個(gè)基本的微操作, 而這些操作所對(duì)應(yīng)的脈沖信號(hào)在時(shí)間上有嚴(yán)格 的先后次序,這種次序就稱為計(jì)算機(jī)的時(shí)序。 要求掌握以下幾個(gè)概念:,二、 CPU的時(shí)序,振蕩周期T振:也稱時(shí)鐘周期,指為單片機(jī)提供 時(shí)鐘信號(hào)的振蕩源的周期,當(dāng)晶 振頻率為12MHz 時(shí)T振=1/12us 。,CPU的時(shí)序,機(jī)器周期T機(jī):指CPU完成某些基本操作的所

31、 需要的時(shí)間,1個(gè)機(jī)器周期包含 6個(gè)狀態(tài)周期。 T機(jī)=6T狀=12T振=1us 。,2.狀態(tài)周期T狀:也稱S周期,由兩個(gè)振蕩周期組 成一個(gè)狀態(tài)周期。如上例中: T狀=Ts=21/12=1/6us。,CPU的時(shí)序, 指令周期T指:指令周期是指執(zhí)行一條指令 所需要的時(shí)間,一般情況下, T指=(14)T機(jī) ,MCS51 系列單片機(jī)執(zhí)行一條最長(zhǎng)的 指令(如乘、除法指令)需要 4個(gè)機(jī)器周期,即4 us時(shí)間。,第二章補(bǔ)充練習(xí),MCS-51單片機(jī)內(nèi)256B的數(shù)據(jù)存儲(chǔ)器可分為 哪幾個(gè)區(qū)?分別作什么用? 開(kāi)機(jī)復(fù)位后,CPU使用的是哪組工作寄存 器?它們的地址是什么?CPU如何確定和 改變當(dāng)前工作寄存器組? MC

32、S-51單片機(jī)的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器共 處同一地址空間為什么不會(huì)發(fā)生總線沖突? 位地址7CH與字節(jié)地址7CH如何區(qū)別?位地 址7CH具體在片內(nèi)RAM中什么位置?,第三章 MCS-51單片機(jī) 指令系統(tǒng)及編程舉例,【學(xué)習(xí)目標(biāo)】通過(guò)本章的學(xué)習(xí),學(xué)生應(yīng)該能 夠:熟練地掌握符號(hào)指令及尋址方式,掌 握常用偽指令的使用方法以及匯編語(yǔ)言指 令的完整格式,會(huì)讀常見(jiàn)典型程序,學(xué)會(huì) 編寫基本的匯編語(yǔ)言程序。,重點(diǎn)和難點(diǎn)內(nèi)容:MCS-51尋址方式 、指令 系統(tǒng)及匯編語(yǔ)言程序的編 寫方法。,解決方法:詳細(xì)講解,多舉實(shí)例,不斷重復(fù) 要點(diǎn),增加練習(xí)。,課外指導(dǎo):答疑。,教學(xué)效果檢測(cè)方法:質(zhì)疑,批閱作業(yè)并結(jié)合 期中考試。,

33、指令:是控制計(jì)算機(jī)進(jìn)行各種操作的運(yùn)算代 碼形式的命令(MCS-51有42種助記 符33個(gè)指令功能共111條指令)。,指令系統(tǒng):計(jì)算機(jī)所能識(shí)別執(zhí)行的全部指令的 集合稱作這種計(jì)算機(jī)的指令系統(tǒng)。 各種計(jì)算機(jī)的指令系統(tǒng)各不相同。,本章常用術(shù)語(yǔ)簡(jiǎn)介:,機(jī)器碼:計(jì)算機(jī)所能辨認(rèn)的命令是二進(jìn)制代 碼,又稱操作碼或指令代碼稱。一 種計(jì)算機(jī)有幾十種甚至幾百中指令, 如果都用二進(jìn)制代碼,記憶、書寫, 編程都很不方便,且易出錯(cuò)。,程序:是人們?yōu)榱送瓿赡持蓄A(yù)定的任務(wù),將 一系列指令、數(shù)據(jù),地址按一定順序 排列而得到的一組指令。,匯編語(yǔ)言源程序:用助記符(操作碼)、符號(hào) 地址和標(biāo)識(shí)符等書寫的程序 稱之為匯編語(yǔ)言源程序。,

34、助記符:為解決上述問(wèn)題,制造廠家對(duì)指令 系統(tǒng)中的每一條指令規(guī)定了特定的 英文縮寫符號(hào)稱為助記符。,MOV A,R0;AR0內(nèi)容,MOV稱指令助記符 對(duì)應(yīng)的機(jī)器碼為:11111000,匯編:匯編語(yǔ)言源程序在機(jī)器執(zhí)行前必須先 轉(zhuǎn)換為相應(yīng)的機(jī)器碼方可被機(jī)器識(shí)別 執(zhí)行,這個(gè)過(guò)程稱為翻譯(匯編)。 翻譯匯編語(yǔ)言源程序的方法有兩種: 人工翻譯和匯編軟件自動(dòng)翻譯。,本章第一次作業(yè): 教材P55 習(xí)題與思考題 2,4,7 ,8(4),10,補(bǔ)充作業(yè): 請(qǐng)用位操作指令編寫實(shí)現(xiàn)下面邏輯表達(dá)式的程序。 PSW.5=P1.3Acc.2+B.5P1.1,3.1 指令格式簡(jiǎn)介 3.2 MCS-51的尋址方式 3.3 指令

35、系統(tǒng) 3.4 偽指令 3.5匯編程序設(shè)計(jì)及應(yīng)用舉例,本章主要內(nèi)容,第一節(jié) 指令格式簡(jiǎn)介,匯編語(yǔ)言的標(biāo)準(zhǔn)格式為: 標(biāo)號(hào): 指令助記符 操作數(shù)1,操作數(shù)2,操作數(shù)3 ;注釋, 標(biāo)號(hào):是用戶定義的符號(hào),它代表該條指令 的符號(hào)地址,標(biāo)號(hào)也稱標(biāo)識(shí)符。,標(biāo)號(hào)組成:以英文字母開(kāi)始,由18個(gè)字符 (字母、數(shù)字和下劃線“-”)組成, 以“:”結(jié)尾。, 操作碼助記符:是匯編語(yǔ)言中每一行不可缺 少的部分,它規(guī)定了指令的 操作功能,操作碼助記符是 由25個(gè)字母組成的字符串, 也是機(jī)器的保留字,操作碼 與操作數(shù)之間要用若干空格 分開(kāi)。,注意:標(biāo)號(hào)不能使用機(jī)器的保留字。 一個(gè)程序中不允許重復(fù)定義標(biāo)號(hào)。, 操作數(shù):可以是具

36、體的數(shù)字,也可以是符號(hào) 或RS名,操作數(shù)可分為源操作數(shù) SRC(source)和目的操作數(shù)DST (destination),二者用逗號(hào)分開(kāi), 有些指令無(wú)操作數(shù)。, 帶 的內(nèi)容可省。, 注釋:注釋必須以“;”開(kāi)頭,可有可無(wú), 可由任何可打印的ASCII碼字符組 成,用于解釋說(shuō)明程序。,第二節(jié) MCS-51的尋址方式,例:mov A, #data ; A將數(shù)字data 特點(diǎn):, 指令操作碼后面的一個(gè)字節(jié)就是操 作數(shù)本身,立即數(shù)是放在程序存儲(chǔ) 器中的一個(gè)常數(shù)。,1. 立即尋址:,所要找的操作數(shù)是一二進(jìn)制數(shù)或十進(jìn)制 數(shù),出現(xiàn)在指令中,用“#”作前綴。, #為立即數(shù)的前綴符號(hào),data可為 16位,也

37、可為8位。, MCS-51系列只有一條指令,其立即數(shù)為 16位,這就是: MOV DPTR,# data16 ; DPH data高8位 ; DPL data低8位,2. 直接尋址:,例:MOV A, 70H;ARAM 區(qū)70H單元的內(nèi)容。 特點(diǎn)為:,指令中直接給出操作數(shù)的地址。, 指令操作碼后面的一個(gè)字節(jié)就是實(shí)際操作 數(shù)的地址(8位)。, 因?yàn)閐irect是8位二進(jìn)制數(shù),所以直接尋 址的范圍主要有以下三個(gè)地址空間:, 指令中的直接地址可用direct表示 。 例:PUSH direct;功能為將direct所指 ;示的片內(nèi)RAM中單元 ;的內(nèi)容堆棧中。,內(nèi)部RAM及SFR中,可進(jìn)行位尋址的位

38、地 址空間共213位(內(nèi)部 RAM中有20H2FH 中有128個(gè)位,SFR中有85位)。, 內(nèi)部RAM 00H7FH地址空間共128個(gè)字節(jié); 特殊功能R,即SFR (直接尋址是訪問(wèn) SFR的唯一尋址方式) ;,3. 寄存器尋址: 操作數(shù)存放在工作寄存器R0 R7中, 或寄存器A、B、DPTR和C中。 例:MOV A, Rn ; A (Rn),n=07 特點(diǎn): Rn的內(nèi)容就是操作數(shù)本身;, 尋址范圍是:被選中的工作RS組 中的8個(gè)work RS,R0R7及A,B, DPTR和進(jìn)位標(biāo)志CY(C)。, R中的內(nèi)容不是操作數(shù)本身而 是其所在存儲(chǔ)單元的地址值, 即R0指示了操作數(shù)所在存儲(chǔ)單 元的地址值。

39、,4. 寄存器間接尋址:(間址尋址),指令中寄存器的內(nèi)容作為操作數(shù)存 放的地址,在指令中間接尋址寄存器前 用“”表示前綴。,例:MOV A, R0 ;A(R0) ;將R0所指向存儲(chǔ)單元的內(nèi)容A 中 特點(diǎn):, 可用作間址RS的register有work RS (R0 , R1)、數(shù)據(jù)指針DPTR。,例如: “一本書放在甲抽屜中,上了鎖; 其開(kāi)鎖的鑰匙放在乙抽屜中,乙 抽屜也上了鎖。問(wèn)如何才能取到 那本書?” 答:這就是一個(gè)間接尋址的問(wèn)題,要經(jīng) 過(guò)兩次尋址才能找到那本書。而寄 存器間接尋址也是同樣。, 間址尋址的范圍: R0、R1、SP作為間址RS可以訪問(wèn)內(nèi)部 RAM的128個(gè)字節(jié)。, DPTR作

40、為間址RS可訪問(wèn)外部RAM全部 的64KB空間。,R0、R1作為間址RS可以訪問(wèn)外部數(shù)據(jù)存儲(chǔ) 器RAM頁(yè)內(nèi)256個(gè)字節(jié)(可用P2口選中頁(yè) 面,64KB的RAM可分為256個(gè)頁(yè)面)。, 間址尋址方式有: ADD A,Ri ;i=0或1 MOV Ri ,direct ;i=0或1 MOVX A , DPTR,又稱變址尋址,有兩種方式: MOVC A, A+PC ;A(A+PC) MOVC A, A+DPTR ;A(A+DPTR) 特點(diǎn):,5.基址寄存器加變址RS間接尋址:,操作數(shù)地址 = 變地址 + 基地址 基地址寄存器 DPTR 或 PC 變址寄存器 A, 是MCS-51單片機(jī)特有的一種尋址方

41、式,它以地址指針DPTR或程序計(jì)數(shù) 器PC(當(dāng)前值)為基地址R,以累 加器A作為變址R,這二者內(nèi)容之和 才是實(shí)際操作數(shù)地址。, A是無(wú)符號(hào)8位數(shù)(00HFFH)。 尋址的范圍是68K字節(jié)的程序存儲(chǔ) 器EPROM。,該尋址方式常用于訪問(wèn)程序存儲(chǔ)器 和查表。兩條指令的區(qū)別為: 前者查表的范圍是相對(duì)PC當(dāng)前值 以后的255字節(jié)地址空間,而后者查表 范圍可達(dá)整個(gè)程序存儲(chǔ)器64K字節(jié)的地 址空間。,6 相對(duì)尋址:,把指令中給定的地址偏移量與下一 條將要執(zhí)行的指令所在單元地址(PC內(nèi) 容)相加,得到真正有效的操作數(shù)所存 放的地址值。,例:JC rel;若PSW中CY=1,則轉(zhuǎn)移至 PC=PC當(dāng)前值 +re

42、l處,若PSW 中CY=0,PC不變。 特點(diǎn):, 以程序計(jì)數(shù)器PC當(dāng)前值內(nèi)容為基 地址,加上指令中給定的偏移量 作為操作數(shù)的存儲(chǔ)地址。,位移量rel為帶符號(hào)的8位二進(jìn)制數(shù),必須 以補(bǔ)碼形式出現(xiàn),所以rel的范圍為+127 -128,即該種尋址方式的尋址范圍為:以 當(dāng)前PC內(nèi)容為起點(diǎn)向下可偏移128字節(jié), 向上可轉(zhuǎn)移127個(gè)字節(jié)。,7. 位尋址: 專門用于位操作指令,可對(duì)MCS- 51中213個(gè)位進(jìn)行運(yùn)算和傳送的操作, 且本尋址方式只能使用專用累加器C。,例:MOVC,20H,第三節(jié) 指令系統(tǒng)及應(yīng)用舉例,MCS-51單片機(jī)共有111條指令,用42 個(gè)助記符表示了33種指令功能,同一種指 令所對(duì)應(yīng)

43、的操作碼可多達(dá)8種,指令按其 功能可分為5大類:數(shù)據(jù)傳送類,算術(shù)運(yùn) 算類,邏輯運(yùn)算類,控制轉(zhuǎn)移類,位操 作指令。,指令中操作數(shù)的描述符號(hào): Rn 工作寄存器R0 R7 Ri 間接尋址寄存器R0、R1 Direct 直接地址,包括內(nèi)部128B RAM單元地址、 21個(gè)SFR地址。 #data 8位常數(shù) #data 16 16位常數(shù) addr 16 16位目的地址 addr 11 11位目的地址 rel 8位帶符號(hào)的偏移地址 DPTR 16位外部數(shù)據(jù)指針寄存器 bit 可直接位尋址的位, direct可表示片內(nèi)RAM 00H7FH(128B) 的內(nèi)存空間和SFR的地址,但不包括A、 DPTR、Rn

44、寄存器。, 除以direct為DST外,其它指令都不影響 PSW中除P以外的其它位,以A為DST的指 令會(huì)影響PSW中的P位。,一、數(shù)據(jù)傳送類指令: 分為五部分共29條,看P41表3.1。特點(diǎn)如下:,訪問(wèn)ROM和片外RAM的指令所使用的寄存器 只能是專用寄存器A。 通常SRC可以是:A,Rn,direct, Ri 和 #data 5種,而DST只能有4種(不能 是#data)。 訪問(wèn)SFR的唯一尋址方式是直接尋址,SFR 的名稱代表直接地址(A寄存器除外) 。,數(shù)據(jù)傳送類指令總結(jié),注意:以下指令均為非法指令。 MOV Rn,Rn MOV Ri, Ri MOV Rn, Ri MOV #data,

45、 A MOVX 30H,DPTR MOVC B,A+DPTR,哇!好容易出錯(cuò)啊!,例1 設(shè)內(nèi)部RAM 30H單元內(nèi)容為52H,給出 以下程序執(zhí)行后(R0)=?(A)? (30H)?及30H在不同指令中的作用。,MOV A, #30H MOV A, 30H MOV R0,#30H MOV A, R0 MOV 30H, #30H,;A30H ;A (30H),即(A)=52H ;R030H ;A(R0),即(A)=52H ;(30H)30H,解: (R0)=30H, (A)=52H, (30H)=30H 其中: 第一,三,五句中#30H為立即數(shù), 第二,五條指令中30H為直接地址, 第四條指令R0

46、中的30H為隱含的間接地址。,例2.已知P1口內(nèi)容為0AAH,給出下列程序執(zhí) 行的結(jié)果及相應(yīng)的機(jī)器碼(P214表A.1)。, , , , , ,,;78 30H ;85 10 90H ;E5 10H ;F6H ; 86 40H,例3. 設(shè)片內(nèi)RAM30H單元內(nèi)容為40H,40H 單元中的內(nèi)容為10H,P1口上的內(nèi)容為 0CAH,給出執(zhí)行以下程序的結(jié)果。,, , , , , ,,;() ;()() ;() ;()() ;(40H)(P1) ;()(),例4.設(shè)片外(), (0),分析下面程序 執(zhí)行的結(jié)果。, , , , ,,;() ;() ;() ;(),, , , , ,,;() ;(H) ;

47、 ()=44H ;()(2030H) ; ;() ;(),例5設(shè)堆棧指針(SP)=11H,(PSW)=00H, 給出下面程序執(zhí)行的結(jié)果。,MOV 20H,#53H PUSH 20H POP PSW,;(20H)53H ; (SP)=(SP)+1,(SP)=12H ; 53H (SP)(12H) ;PSW(SP)=53H, ;(SP)=(SP)-1 ,(SP)=11H,例3、試編寫一程序段,實(shí)現(xiàn)將外RAM 0FAH單元中的內(nèi)容傳送到外RAM 04FFH單元中。,解: MOV P2,#00H MOV DPTR,#04FFH MOV R0,#0FAH MOVX A,R0 MOVX DPTR, A,小

48、結(jié): 數(shù)據(jù)傳送類指令有幾種類型? 哪些影響哪個(gè)標(biāo)志位?,二、算術(shù)運(yùn)算類指令:(看P45表3.2),此類指令具有加,減,乘,除指令,它 們一般對(duì)PSW的CY、AC、OV和P各位均有影 響,對(duì)其余四位不影響,但I(xiàn)NC與DEC指令不 影響PSW的內(nèi)容。,具體特點(diǎn)如下:, 加減法指令的DST只能是A,SRC可為 其它四種方式,減法指令只有帶進(jìn)位減 助記符。,除法中,OV=1表示除數(shù)為0,A、B中的內(nèi) 容均不定,其它情況OV=0。, 乘法中,OV=1表示乘積大于255,OV=0 表示乘積小于255。, 加1減1指令不影響PSW除P位以外的其 它位 。 乘、除法中CY=0。,程序中DA A指令必須緊跟在加

49、法指令之后。,再判斷當(dāng)PSW中的CY=1或A寄存器 中高4位值大于9,則對(duì)A寄存器中高 4位內(nèi)容進(jìn)行加6處理;,先判斷當(dāng)PSW中的AC=1或A寄存器 中低4位值大于9,則對(duì)A寄存器中低 4位內(nèi)容進(jìn)行加6處理;,十進(jìn)制加法調(diào)整指令DA A的調(diào)整原理為, 在操作數(shù)為十進(jìn)制時(shí),加法指令執(zhí)行后:,類型,助記符,功能,對(duì)PSW的影響,字節(jié)數(shù),振蕩周期,算術(shù)運(yùn)算類指令,例1: 給出以下程序執(zhí)行結(jié)果及對(duì)程序狀態(tài) 字PSW的影響。,;(30H)=43H ;(A)=7AH ;(R0)=30H ;(A)=(30H)+7AH =0BDH,MOV 30H,#43H MOV A,#7AH MOV R0,#30H ADD

50、 A,R0,上述結(jié)果對(duì)于無(wú)符號(hào)數(shù)而言為正確,但 對(duì)有符號(hào)數(shù)而言不正確。(因?yàn)?個(gè)正數(shù)相 加得到一個(gè)負(fù)數(shù),所以一定是發(fā)生了溢出, 結(jié)果不正確。),執(zhí)行程序以后,據(jù)以上結(jié)果知PSW中:,CY=D7CY=0, AC=D3CY=0,奇偶位P=0, OV=D7CYD6CY=01=1,MOV R0,#7EH MOV 7EH,#0FFH MOV 7FH,#38H MOV DPL,#0FEH MOV DPH,#10H INC R0 INC R0 INC R0 INC DPTR INC DPTR,;(R0)=7EH ;(7EH)=0FFH ;(7FH)=38H ;(DPL)=0FEH ;(DPH)=10H ;(

51、7EH)+1=0FFH+1=00H(7EH) ;(R0)=7FH ;(7FH)+1=38H+1=39H(7FH) ;(DPTR)=10FEH+1=10FFH ;(DPTR)=10FFH+1=1100H,例2 分析執(zhí)行以下程序段的結(jié)果。,MOV A,#0C4H SUBB A,#55H,例3設(shè)進(jìn)位位C=1,給出執(zhí)行以下程序片斷后 A寄存器的結(jié)果及對(duì)PSW的影響。,;(A)=0C4H ;A(A)- 55H-(C),以上結(jié)果對(duì)于無(wú)符號(hào)數(shù)而言為正確, (OV)=1無(wú)意義,對(duì)于符號(hào)數(shù)則(OV)=1 表示結(jié)果為錯(cuò)誤,負(fù)數(shù)減正數(shù)結(jié)果應(yīng)為負(fù)數(shù), 而6EH為正數(shù),原因是因?yàn)榉?hào)數(shù)C4H真值 為-3CH,所以C4H

52、-55H-1=(-3CH)-56H =-92H,而-92H=-146已超出8位二進(jìn)制數(shù)所 能表示的最大負(fù)數(shù)。(-128)。,其中:(A)=6EH,(CY)=D7CY=0, (AC)=D3CY=1,(P)=1 (OV)= D7CYD6CY=01=1,,例4設(shè)累加器A中內(nèi)容為89的BCD碼,即 10001001,R0中的內(nèi)容為28的BCD碼, 即00101000,求執(zhí)行下面程序后,A中 結(jié)果及正確的BCD碼值應(yīng)為多少?,ADD A,R0 DA A,;(A)+(R0)A,即(A)=B1H,即非 十進(jìn)制正確結(jié)果,也非十六進(jìn)制正確結(jié)果 ;(A)=17H , 這里,因?yàn)椋–)=1,所以 正確答案為117。

53、,因?yàn)樵趫?zhí)行DA A指令時(shí),首先由于 (AC)=D3CY=1,所以對(duì)A 中低4位內(nèi)容加 6調(diào)節(jié),使A的低4位變?yōu)?111,然后又由于 A中高4位內(nèi)容大于9,所以對(duì)A中高4位內(nèi)容 再加6進(jìn)行調(diào)整,使其變?yōu)?001,同時(shí)使進(jìn) 位位(CY)=1,則最終得到結(jié)果為117。,以累加器A作為DST,SRC可以是#data, Rn,direct(內(nèi)部RAM低128B或SFR)和 Ri四種方式。,三、 邏輯運(yùn)算類指令:看P49表3.4。,邏輯運(yùn)算類指令主要用于邏輯運(yùn)算中,主 要可以分為兩大類:,2. 以direct為DST,而以A或 #data為SRC的 操作指令。,三、 邏輯運(yùn)算類指令:看P45表3.4。,

54、 邏輯與(ANL):按位相與,特點(diǎn)是清0或 屏蔽,操作數(shù)和0相與結(jié)果為0,和1相與原 內(nèi)容保持不變。,3單操作數(shù)的指令,操作數(shù)必須放在A中。 4各類指令的特點(diǎn)為:,特點(diǎn):此類指令除RLC和RRC指令外,均不 影響PSW中除P以外的其他位,而RLC 和RRC也只影響P與C位。,邏輯運(yùn)算類指令, 邏輯異或指令(XRL)對(duì)操作數(shù)中的某 一位或某幾位進(jìn)行取反(兩個(gè)操作數(shù)不 同出1,相同出0),具體方法為:操作 數(shù)和1相異或內(nèi)容被取反,和0相異或原 內(nèi)容保持不變。看例3。, 邏輯或(ORL):按位相或,特點(diǎn)是置 1,操作數(shù)和1相或結(jié)果為1,和0相或原 內(nèi)容保持不變??蠢?及例2。,邏輯循環(huán)右移(RL):

55、,特點(diǎn)是在操作數(shù) 最高低為0的條件下,操作數(shù)每被左循環(huán)移 位一次,其內(nèi)容相當(dāng)于被除2??蠢?。,邏輯循環(huán)左移(RL):,特點(diǎn)是在操作數(shù) 最高位為0的條件下,操作數(shù)每被左循環(huán)移 位一次,其內(nèi)容相當(dāng)于被乘2。,MOV A,#0F0H ANL P1,#00H ORL P1,#55H ORL P1,A ANL P1,A,;(A)=0F0H ;P1=00H ;P1=55H ;P1=0F5H ;P1=0F0H,例1:給出下列兩段程序執(zhí)行的結(jié)果。,; 屏蔽A中高5位 ;去掉P1中的低3位 ; P120A20,例2: 要求編程把累加器中的低3位傳送到 P1口,傳送時(shí)不影響P1口的高5位。,ANL A,#07H ANL P1,#0F8H ORL P1,A,例3 : MOV A,#42H XRL A,#52H,例4:分析以下程序執(zhí)行的結(jié)果,MOV A,#08H RL A RL A RL A RR A RR A,;(A)=08H ;左移一位,(A)=10H ;左移一位,(A)=20H ;左移一位,(A)=40H ;右移一位,(A)=20H ;右移一位,(A)=10H,例5:分析以下程序執(zhí)行的結(jié)果,CLR C MOV A,#99H RL A MOV A,#99H RRC A,;(C)=0 ;(A)=99H ;左移一位,(A

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論