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

下載本文檔

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

文檔簡(jiǎn)介

單片機(jī)原理及應(yīng)用2023/4/211考核方式:筆試+實(shí)驗(yàn)+作業(yè),期末成績(jī)占

70%,期中成績(jī)占20%,實(shí)驗(yàn)成績(jī)占5%,平時(shí)作業(yè)成績(jī)占5%。

答疑時(shí)間:周三下午16:00—17:30答疑地點(diǎn):機(jī)械學(xué)院508室本課程教學(xué)安排祝愛萍:機(jī)械學(xué)院508室,。2第一章…………概述第二章…………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ù)目錄2023/4/213第一章

概述【學(xué)習(xí)目標(biāo)】通過本章的學(xué)習(xí),學(xué)生應(yīng)該能夠:熟悉單片機(jī)的主要特點(diǎn)、典型產(chǎn)品、應(yīng)用領(lǐng)域,掌握數(shù)制以的概念及不同數(shù)制間的轉(zhuǎn)換方法,明確數(shù)在計(jì)算機(jī)中的表示方法。

2023/4/214重點(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,851.定義:?jiǎn)纹瑱C(jī)全稱為單片微型計(jì)算機(jī)(single-chipMicrocomputer),它在一塊芯片上集成了CPU、RAM、ROM、PROM,E2PROM)CTC和多個(gè)I/O口,此外,有的單片機(jī)如8096單片機(jī)上還集成了ADC和DAC轉(zhuǎn)換芯片。本章主要內(nèi)容一.單片機(jī)的定義及特點(diǎn)2023/4/216①測(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ī)。2023/4/217②輔助設(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ò)與信息及高速公路管理等。81946-1958:

第一代電子管計(jì)算機(jī)。磁鼓存儲(chǔ)器,機(jī)器語言及匯編語言編程。1958-1964:第二代晶體管計(jì)算機(jī)。磁芯作主存儲(chǔ)器,磁盤作外存儲(chǔ)器,開始使用高級(jí)語言編程。二、

單片機(jī)的發(fā)展概況91964-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ā)展概況10三、

計(jì)算機(jī)發(fā)展趨勢(shì)微型化─便攜式、低功耗巨型化─尖端科技領(lǐng)域的信息處理,滿足超大容量、高速度的要求智能化─模擬人類大腦思維和交流方式,具有多種處理能力系列化、標(biāo)準(zhǔn)化─便于各種計(jì)算機(jī)硬、軟件兼容和升級(jí)多機(jī)系統(tǒng)─大型設(shè)備、生產(chǎn)流水線集中管理(獨(dú)立控制、故障分散、資源共享)11典型產(chǎn)品有8051,8751和8031。其三種芯片的主要區(qū)別在于:ROM,EPROM和外接EPROM。8051內(nèi)部程序要由生產(chǎn)芯片的廠家寫入,適用于低成本大批量生產(chǎn);8751片內(nèi)程序可由用戶固化或清除,價(jià)格相對(duì)較貴,適用于開發(fā)樣機(jī);8031芯片必須外接ROM,適用于較方便進(jìn)行修改和更新程序記憶的場(chǎng)合。1.MCS-51系列簡(jiǎn)介:看P18表2.1四、

常用單片機(jī)系列介紹122.

存儲(chǔ)器簡(jiǎn)介:memory是單片機(jī)的主要組成部分之一,主要用于存儲(chǔ)信息,它的分類如下:①內(nèi)存:包含有RAM:隨機(jī)存儲(chǔ)器,其中信息可讀可寫,斷電丟失全部?jī)?nèi)容。ROM:只讀存儲(chǔ)器,用戶不可更改其內(nèi)容,與EPROM同樣,斷電仍可保存信息。13②外存:包含有硬盤:可隨時(shí)讀寫并永久保存信息但硬盤存儲(chǔ)容量有限,隨身攜帶不方便。EPROM:可擦除可編程的只讀ROM,用紫外線可擦除其內(nèi)容,用專用設(shè)備用戶可固化信息。軟盤:軟盤可隨時(shí)讀寫并永久保存信息,其容量小但可無限擴(kuò)充,隨身攜帶方便。14光盤:可隨時(shí)讀取信息,容量大,隨身攜帶方便,也可對(duì)其進(jìn)行寫操作并永久保存信息,但必須配備專門的刻盤機(jī)。五、數(shù)制及其間的轉(zhuǎn)換1.?dāng)?shù)制:常用的計(jì)數(shù)方法,有二(Binary)、十(Decimal

)、十六(Hexadecimal)、八(Q,Octal)、十二及六十進(jìn)制等。優(yōu)盤:特點(diǎn)同軟盤,但容量較軟盤大很多,比硬盤小。15位權(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)。16例1.FFFFH=15×163+15×162+15×161+15×160

=65535例2.10111100.101B=27+25+24+23+22+2-1+2-3=188.625①二,八,十六進(jìn)制轉(zhuǎn)換為十進(jìn)制時(shí),原則為:按位權(quán)展開相加。2.?dāng)?shù)制之間相互轉(zhuǎn)換的原則:17

②十進(jìn)制轉(zhuǎn)換為二,八,十六進(jìn)制時(shí),原則為:整數(shù)部分除基取余,先出低位,

小數(shù)部分乘基取整,先出高位。例1.4.32D=100.0101B(取四位小數(shù),并非精確轉(zhuǎn)換)例2.254.73D=376.56Q=FE.BAH18①機(jī)器數(shù):數(shù)字在機(jī)器中的表示方式稱為機(jī)器數(shù),即將符號(hào)(+,-)也作為數(shù)字的一部分。具體地說,在存儲(chǔ)數(shù)據(jù)時(shí),最高一位用來表示數(shù)字的符號(hào),當(dāng)數(shù)字為正時(shí),最高一位的值為0,當(dāng)數(shù)字為負(fù)時(shí),最高一位的值為1。機(jī)器數(shù)有原碼、反碼和補(bǔ)碼三種形式。3.?dāng)?shù)在計(jì)算機(jī)中的表示方法19②

真值:一個(gè)數(shù)的實(shí)際大小稱為這個(gè)數(shù)的真值。③原碼:正數(shù)的符號(hào)位用0表示,負(fù)數(shù)的符號(hào)位用1表示,符號(hào)位之后是數(shù)字的真值,此法表示的數(shù)字稱為數(shù)的原碼。正數(shù)的原碼與其真值相同。20例:對(duì)于8位數(shù)據(jù):+35H表示為[+35H]原碼=00110101,-35H表示為[-35H]原碼=10110101,[+0]原碼=00000000,[-0]原碼=10000000

④反碼:正數(shù)的反碼與其原碼相同,負(fù)數(shù)的反碼則為其對(duì)應(yīng)的原碼按位取反(符號(hào)位除外)。21例:對(duì)于8位數(shù)據(jù):+35H表示為[+35H]反碼=00110101,-35H表示為[-35H]反碼=11001010,[+0]反碼=00000000,[-0]反碼=11111111⑤補(bǔ)碼:正數(shù)的補(bǔ)碼與其原碼相同,負(fù)數(shù)的補(bǔ)碼則為其對(duì)應(yīng)的原碼按位取反(符號(hào)位除外)加1。22⑥

注意:

⑴計(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。23⑵計(jì)算機(jī)中所能表示的符號(hào)數(shù)的范圍為:-2n-1~+2n-1-1,n為數(shù)據(jù)的位數(shù)。當(dāng)n=8時(shí),所能表示的符號(hào)數(shù)的范圍為:-128~127,即-27~27-1當(dāng)n=16時(shí),所能表示的符號(hào)數(shù)的范圍為:-32768~32767即-215~215-1。24⑶已知一個(gè)數(shù)的補(bǔ)碼時(shí),其真值為:

[正數(shù)]真值=[正數(shù)]補(bǔ)碼

[負(fù)數(shù)]真值=[負(fù)數(shù)]補(bǔ)碼取反(符號(hào)位除外)+1例:x=01001101,則[x]真值=01001101=77Dx=10110101,則[x]真值=11001010+1=11001011=-75D25例:Y=-117-10=[-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ù)之差。(了解)264.ASCII碼:(又稱字符編碼)①英文字母A~Z及a~z;②數(shù)字字符0~9:③專用字符:+,-,×,/,空格和各種標(biāo)點(diǎn)符號(hào);④各種非打印字符如:CR(回車),LF(換行),BELL(響鈴)等。計(jì)算機(jī)處理的信息并不全是數(shù)字,有時(shí)還要處理字符和字符串,常見的字符有:275.

BCD碼(BinaryCodedDecimal)用四位二進(jìn)制代碼表示一位十進(jìn)制正整數(shù)的編碼稱為BCD碼。以上這些字符在計(jì)算機(jī)中都用固定的二進(jìn)制數(shù)表示,國(guó)際上目前采用最常用的美國(guó)標(biāo)準(zhǔn)信息交換碼也稱ASCII碼來表示。要求大家記住前兩類字符的ASCII碼值。(P10表1.3,列高行低)例:129=(000100101001)BCD28第二章

mcs-51單片機(jī)結(jié)構(gòu)及原理【學(xué)習(xí)目標(biāo)】通過本章的學(xué)習(xí),學(xué)生應(yīng)該能夠:掌握有關(guān)單片機(jī)的基本結(jié)構(gòu)及其功能,尤其是mcs-51系列單片機(jī)CPU和存儲(chǔ)器的結(jié)構(gòu)及功能,這一部分是全新的概念,需要認(rèn)真掌握。

29重點(diǎn)和難點(diǎn)內(nèi)容:mcs-51系列單片機(jī)CPU和存儲(chǔ)器的結(jié)構(gòu)及功能。解決方法:細(xì)講、慢講。課外指導(dǎo):答疑、質(zhì)疑。教學(xué)效果檢測(cè)方法:課堂提問、批閱作業(yè)。本章作業(yè):教材P36

習(xí)題與思考題

1,3,5,6,730本章主要內(nèi)容§2.1

mcs-51單片機(jī)結(jié)構(gòu)

§2.2

mcs-51的存儲(chǔ)器結(jié)構(gòu)§2.3單片機(jī)的時(shí)序31第一節(jié)

mcs-51單片機(jī)結(jié)構(gòu)

一、mcs-51單片機(jī)內(nèi)部結(jié)構(gòu)簡(jiǎn)介二.8051CPU的組成及其功能三.計(jì)算機(jī)指令執(zhí)行過程四.MCS-51引腳及功能32外時(shí)鐘源振蕩器和時(shí)序

OSC程序存儲(chǔ)器4KBROM

數(shù)據(jù)存儲(chǔ)器256BRAM/SFR外部事件計(jì)數(shù)器

2×16位定時(shí)器/計(jì)數(shù)器8051CPU內(nèi)中斷外中斷

64KB總線擴(kuò)展控制器可編程I/OP0~P3

可編程全雙工串行口控制并行口串行通信33單片機(jī)內(nèi)部最核心的部分是CPU, CPU的主要功能是產(chǎn)生各種控制信號(hào),控制存儲(chǔ)器及輸入/輸出端口的數(shù)據(jù)傳送,實(shí)現(xiàn)數(shù)據(jù)的算術(shù)運(yùn)算、邏輯運(yùn)算以及位操作處理等功能。348051CPU的組成及其功能

⑴PC程序計(jì)數(shù)器:16位專用RS,用于存放下一條將要執(zhí)行的指令地址,其內(nèi)容有自加功能,它可保證程序按一定順序執(zhí)行。8051CPU由控制器與運(yùn)算器兩部分組成

1.控制器:35⑶指令譯碼器:將指令RS的指令轉(zhuǎn)換成電信號(hào),再經(jīng)邏輯控制電路產(chǎn)生各種控制信號(hào)。(譯碼前指令為0、1代碼,譯碼后指令為脈沖信號(hào))⑵指令Register(RS):8位,用于暫存待執(zhí)行的指令,等待譯碼。8051CPU的組成及其功能

36⑷數(shù)據(jù)指針DPTR:16位專用地址指針RS,主要用于存放16位地址,作間址RS使用,也可拆成兩個(gè)8位RS,DPH和DPL,它們片內(nèi)RAM中占據(jù)的地址分為83H和82H。8051CPU的組成及其功能

37⑸定時(shí)控制與條件轉(zhuǎn)移邏輯電路:不介紹。2.運(yùn)算器:⑴累加器ACC:8位專用RS,用于存放操作數(shù)或中間結(jié)果,是CPU中使用最頻繁的一個(gè)RS,也是20個(gè)SFR中的一個(gè)。8051CPU的組成及其功能

38⑶程序狀態(tài)字RS(PSW):8位專用RS,用于存放程序運(yùn)行中的各種狀態(tài)信息,它可以進(jìn)行位操作,PSW的字節(jié)地址為D0H,位地址為D0~D7H。各位的含義如下:⑵算邏運(yùn)算部件:此部件實(shí)現(xiàn)算數(shù)運(yùn)算與邏輯運(yùn)算的功能,其運(yùn)算結(jié)果的狀態(tài)送PSW中。8051CPU的組成及其功能

39

①CY(PSW.7):進(jìn)位標(biāo)志,表示在進(jìn)行無符號(hào)加減時(shí),最高位有無向更高位進(jìn)(借)位,當(dāng)有進(jìn)位CY=1,無進(jìn)位則CY=0。程序狀態(tài)字RS(PSW)各位的含義②

AC(PSW.6):半進(jìn)位標(biāo)志,表示在進(jìn)行無符號(hào)加減時(shí),D3位有無向D4位進(jìn)(借)位,當(dāng)有AC=1,無則AC=0,主要用于BCD碼的判斷位。40程序狀態(tài)字RS(PSW)各位的含義④RS1,RS0(PSW.4,PSW.3):工作RS組選擇標(biāo)志,用于選擇內(nèi)部RAM中4個(gè)RS中的一組它們的關(guān)系如下:③F0(PSW.5):用戶標(biāo)志位,由用戶通過程序設(shè)置1或0,表示程序處于某種狀態(tài),為后續(xù)程序執(zhí)行提供條件。41

RS1RS0寄存器組片內(nèi)RAM地址00第0組00H~07H01第1組08H~0FH10第2組10H~17H11第3組18H~1FH

程序狀態(tài)字RS(PSW)BACK42⑤

OV(PSW.2):溢出標(biāo)志,當(dāng)進(jìn)行符號(hào)數(shù)運(yùn)算時(shí)可表示是否有溢出,則OV=1,無則OV=0,溢出的邏輯表達(dá)式為

OV=C6Y⊕C7Y。⑥F1(PSW.1):保留位,無定義。程序狀態(tài)字RS(PSW)各位的含義⑦

P(PSW.0):奇偶標(biāo)志位,表示累加器A中含“1”個(gè)數(shù)的奇偶性,當(dāng)A中有奇數(shù)個(gè)1,43⑷

B寄存器:用于乘除法操作,8位RS,是20個(gè)SFR中之一,B用來存放第二操作數(shù),即用于存放乘法的高位字節(jié)或除法的余數(shù)部分。⑸

暫存器:暫存數(shù)據(jù)信息。

P=1,否則P=0。

注意:P的值與A內(nèi)容的奇偶無關(guān)。程序狀態(tài)字RS(PSW)各位的含義44三、計(jì)算機(jī)指令執(zhí)行過程

開始取指令PC+1執(zhí)行指令取指令、執(zhí)行指令序列圖45MCS-51采用40引腳雙列直插式封裝(DIP)形式,(看P28圖2-6)。主電源引腳:Vss(地)和Vcc(+5v)。外接晶振引腳:有兩個(gè)四.

MCS-51引腳及功能⑵XTAL2:片內(nèi)晶振器反向放大器輸出端,當(dāng)使用外部晶振器,作為晶振信號(hào)的輸入端。⑴XTAL1:片內(nèi)晶振器反向放大器輸入端,當(dāng)使用外部晶振器,此端接地。464748四.

MCS-51引腳及功能3.控制信號(hào)引腳:

⑴RST/VPD:系統(tǒng)復(fù)位/備用電源輸入引腳,輸入信號(hào),有兩個(gè)作用:①

RST端維持兩個(gè)機(jī)器周期以上的高電平時(shí)將使單片機(jī)復(fù)位。復(fù)位后CPU各寄存器的特點(diǎn)為:49

A)四個(gè)I/O口P0~P3鎖存器均被初始化為0FFH;B)堆棧指針寄存器SP=07H;

C)串行口數(shù)據(jù)緩沖器寄存器SBUF的內(nèi)容不確定;其它各專用RS均被寫成00H;

D)內(nèi)部RAM不受復(fù)位影響,上電后RAM內(nèi)容為隨機(jī)。

MCS-51引腳及功能BACK50MCS-51引腳及功能②當(dāng)電源電壓下降時(shí),此引腳可為備用電源輸入線,為片內(nèi)RAM提供備用電源。①當(dāng)CPU訪問外部memory初時(shí),產(chǎn)生正脈沖ALE信號(hào)輸出,在其后沿將P0口輸出的低8位地址鎖存于外部地址鎖存器中;⑵ALE/PROG:外部擴(kuò)展電路的地址鎖存信號(hào)/編程脈沖輸入端,有三個(gè)作用。51MCS-51引腳及功能③當(dāng)片內(nèi)有EPROM時(shí),可作為編程脈沖輸入端使用。②訪問外部memory的過程中,ALE端仍以不變的頻率周期性的輸出正脈沖信號(hào),且fALE=1/6fosc

,所以可用作對(duì)外輸出的時(shí)鐘信號(hào)和定時(shí)作用;52MCS-51引腳及功能⑶PSEN:外部程序memory(EPROM)選通信號(hào)線,當(dāng)CPU讀取外部程序時(shí),PSEN每個(gè)機(jī)器周期兩次有效。⑷EA/VPP:程序memory選擇線/編程時(shí)電源輸入線,作用如下:53MCS-51引腳及功能①對(duì)于片內(nèi)有EPROM,編程時(shí),此引腳接21v編程電源VPP;

②當(dāng)EA=0時(shí)CPU只能訪問片外memory;

③當(dāng)EA=1時(shí),如果PC﹤﹦0FFFH時(shí),則CPU訪問片內(nèi)ROM,否則CPU自動(dòng)轉(zhuǎn)向外部EPROM。54MCS-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)雙向信息傳輸端口。55

注意:P0~P3除作為一般的I/O線使用外,還兼有以下功能:MCS-51引腳及功能②

P1口:在EPROM編程驗(yàn)證程序時(shí)輸入低8位地址。①

P0口:當(dāng)CPU訪問外部memory時(shí),P0口可分時(shí)作為低8位地址線和8位雙向數(shù)據(jù)線用。56MCS-51引腳及功能④P3口:第二功能見P27表2—7。復(fù)位后P3口的第二功能可直接使用,但復(fù)位前必須先置口內(nèi)鎖存器FFH才能用。③

P2口;當(dāng)CPU訪問外部memory時(shí),P2口可作為外部高8位地址的輸出線。57

P3口線第二功能

P3.0RXD(串行口輸入)

P3.1TXD

(串行口輸出)

P3.2INT0(外部中斷0輸入)

P3.3INT1(外部中斷1輸入)

P3.4T0(定時(shí)器0的外部輸入)

P3.5T1(定時(shí)器1的外部輸入)

P3.6WR(片外數(shù)據(jù)存儲(chǔ)器寫選通輸出)

P3.7RD(片外數(shù)據(jù)存儲(chǔ)器讀選通輸出)

58第二節(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(64KB)59這些存儲(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)。600000HFFFFH0000HFFFFHROM內(nèi)RAM外RAM00HFFH寄存器區(qū)位尋址區(qū)數(shù)據(jù)緩沖區(qū)SFR20H30H80HE0HAMCS-51存儲(chǔ)器配置0FFFH256B4KB64KB64KB68KB61①CPU通過P0,P2口送出要訪問存儲(chǔ)單元的地址A0~A15。②CPU發(fā)出ALE信號(hào)把P0口地址信號(hào)A0~A7

鎖入鎖存器。③存儲(chǔ)器按A0~A15地址進(jìn)行譯碼,找到要訪問的單元。

如下頁圖,MCS-51訪問外部存儲(chǔ)器,粗略的講可分為以下四步:一、

MCS-51單片機(jī)片內(nèi)外存儲(chǔ)器系統(tǒng)簡(jiǎn)介62ROM4KBRAM(21個(gè))SFRRDWRPSENRDWROE

地址鎖存器

EPROM64KB

RAM64KBALEP0口P2口MCS—51+5VREASBACK63④CPU發(fā)出PSEN信號(hào),把外部EPROM中A0~A15指向單元中的數(shù)據(jù)信息經(jīng)P0口送入CPU;或CPU發(fā)出RD信號(hào)將外部RAM中A0~A15所指向單元的data經(jīng)P0口讀入;或CPU發(fā)出WR信號(hào)將data經(jīng)P0口寫入外部RAMA0~A15

所指向單元。64二、MCS-51各存儲(chǔ)器具體說明:

⑴外部程序存儲(chǔ)器用于存放程序、程序執(zhí)行時(shí)必要的常數(shù)和表格。⒈外部程序存儲(chǔ)器EPROM:

MCS-51可以擴(kuò)展64K字節(jié)的EPROM,其中:⑵外部程序存儲(chǔ)器受PC管理,PC的內(nèi)容始終指向下一條將要執(zhí)行的指令所在的地址,PC具有自動(dòng)加1的功能,保證程序按規(guī)定順序執(zhí)行。65二、MCS-51各存儲(chǔ)器具體說明:

⑶外部程序存儲(chǔ)器的容量為64K字節(jié),地址范圍為:0000H~0FFFFH,且有當(dāng)EA=0時(shí):CPU可訪問0000H~0FFFFH全部64KB的片外程序存儲(chǔ)器。當(dāng)EA=1時(shí):CPU可以訪問內(nèi)部程序存儲(chǔ)器0000H~0FFFH單元和外部程序存儲(chǔ)器1000H~0FFFFH之間的各存儲(chǔ)器單元;66⑸程序存儲(chǔ)器在軟件上均由MOVC類指令訪問,CPU在執(zhí)行這類指令時(shí),可以使

PSEN信號(hào)有效,從而選中EPROM。⑷外部程序存儲(chǔ)器在硬件上由PSEN信號(hào)選通,正常運(yùn)行時(shí)其內(nèi)容只能讀出,不能寫入,掉電時(shí)其內(nèi)容不丟失。67MCS-51單片機(jī)內(nèi)部EPROM容量為4K字節(jié),地址范圍為0000H~0FFFH,在EA=1時(shí),且PC的值小于等于0FFFH時(shí),CPU才可訪問片內(nèi)EPROM,而片內(nèi)EPROM與片外EPROM同樣受PC管理,軟件上也用MOVC類指令訪問。⒉內(nèi)部程序存儲(chǔ)器EPROM:68⑴外部數(shù)據(jù)存儲(chǔ)器主要存放運(yùn)行程序的過程中所需的數(shù)據(jù),中間結(jié)果和最終結(jié)果。⑵外部數(shù)據(jù)存儲(chǔ)器受datapoint(數(shù)據(jù)指針)

寄存器DPTR和工作寄存器R0及R1的管理。⒊外部數(shù)據(jù)存儲(chǔ)器RAM:69⑸外部數(shù)據(jù)存儲(chǔ)器在軟件上由MOVX類指令訪問。⑶外部數(shù)據(jù)存儲(chǔ)器的最大容量為64K字節(jié),地址范圍為:0000H~0FFFFH。⒊外部數(shù)據(jù)存儲(chǔ)器RAM:⑷外部數(shù)據(jù)存儲(chǔ)器在硬件上由WR或RD信號(hào)選通,可以寫入,也可以讀出,掉電時(shí)內(nèi)容消失。70注:EPROM與RAM的地址都是0000H~0FFFFH,但CPU對(duì)它們的訪問是相互獨(dú)立的,不會(huì)產(chǎn)生二意性,即CPU給出一個(gè)地址,不會(huì)同時(shí)選中2個(gè)地址,因?yàn)镽AM在硬件上由RD或WR信號(hào)選通,軟件上由MOVX類指令訪問,而EPROM在硬件上由PSEN信號(hào)選通,軟件上由MOVC類指令訪問。71MCS-51芯片內(nèi)部有128個(gè)字節(jié)(BYTE)的內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM(稱片內(nèi)RAM),地址為00H~7FH,有128B的特殊功能寄存器(SFR)區(qū),地址為80H~0FFH,也稱高地址區(qū),共256個(gè)字節(jié)的存儲(chǔ)空間。從使用性能上可分為以下幾部分:4.MCS-51片內(nèi)數(shù)據(jù)存儲(chǔ)器72SFRFFHBACK73⑵位尋址空間:內(nèi)部RAM中,地址20H~2FH16個(gè)字節(jié)單元(共128個(gè)位)具有位尋址的功能,即CPU可對(duì)這16個(gè)字節(jié)中的每一位⑴工作寄存器R:內(nèi)部RAM中00H~1FH單元(共32B)為通用工作Register區(qū),分為4組,每組8個(gè)字節(jié),均可用作R0~R7,用戶可根據(jù)PSW中的RS1和RS0的值選擇相應(yīng)的工作寄存器組。MCS-51內(nèi)部RAM74⑶這128個(gè)位的地址規(guī)定為00H~7FH(RAM的低區(qū)地址也是00H~7FH),在使用中由軟件指令加以區(qū)分。如:MCS-51內(nèi)部RAM單獨(dú)進(jìn)行操作,所以20H~2FH區(qū)域是MCS-51單片機(jī)布爾處理機(jī)的一個(gè)存儲(chǔ)空間,其中:⑴20H~2FH對(duì)應(yīng)此存儲(chǔ)區(qū)中16個(gè)字節(jié)的每一個(gè)字節(jié)的地址。⑵因?yàn)槊總€(gè)字節(jié)有8位,所以此存儲(chǔ)區(qū)共有16×8=128位供用戶單獨(dú)操作。75MCS-51內(nèi)部RAM且有:①對(duì)應(yīng)的字節(jié)地址=20H+位地址/8,其中位地址/8的余數(shù)為該位在該字節(jié)中所處的具體位置)。MOV20H,A(字節(jié)操作);20H單元

A的內(nèi)容MOV20H,C(位操作);布爾處理機(jī)存儲(chǔ)空間第20H位(即24H單元中的第0位)中←

PSW中進(jìn)位位CY內(nèi)容。76例:位地址7AH對(duì)應(yīng)的字節(jié)地址的計(jì)算方法是:7AH/8,商為F,余數(shù)為2,表示該位處于片內(nèi)RAM2FH(20H+F)字節(jié)的第二位。②位地址=(字節(jié)地址-20H)×8+N;

其中:N=0~7,為該位在此字節(jié)中的位置,例:2EH中的第6位對(duì)應(yīng)的位地址=(2EH-20H)×8+6=76H。77⑶

30H~7FH空間:用戶RAM區(qū),共80個(gè)字節(jié),此部分空間可以作為buffer、堆棧區(qū)等存儲(chǔ)單元用,但不能作為工作寄存器用,不能進(jìn)行位尋址。⑷對(duì)于工作Register區(qū)(00H~1FH)單元,沒有被選中的工作Register單元與30H~7FH單元具有同樣功能。78⒌MCS-51特殊功能Register(SFR):⑵在80H~0FFH這128個(gè)字節(jié)中除去SFR占用的21個(gè)字節(jié)外其余字節(jié)均無定義,注意訪問無定義的單元得到的是一個(gè)隨即數(shù)。⑴SFR的分布:MCS-51單片機(jī)除PC外共有20個(gè)SFR,占21個(gè)字節(jié)(因?yàn)镈PTR占兩個(gè)字節(jié)),它們分布在內(nèi)部RAM的80H~0FFH。79MCS-51特殊功能Register(SFR)⑶位尋址空間:在SFR中凡是字節(jié)地址能

被8整除的SFR均有位尋址功能(即末位地址為8或0的SFR有位尋址功能),共

11個(gè)SFR有85位可進(jìn)行位尋址。⑷SFR與RAM(00~7FH)的區(qū)別:SFR作為源操作數(shù)時(shí)只能采用直接尋址,寄存器間接尋址對(duì)其無效,但對(duì)低128B的RAM區(qū)有效。80①

SP:堆棧指針RS,是個(gè)8位SFR,在RAM中的地址值為81H,其內(nèi)容用于指示堆棧棧頂(已存有數(shù)據(jù)的堆棧存儲(chǔ)單元)的地址值。每當(dāng)有數(shù)據(jù)進(jìn)棧時(shí)SP值自動(dòng)加1,出棧時(shí)SP值自動(dòng)減1,當(dāng)系統(tǒng)復(fù)位后,SP=07H,即堆棧實(shí)際上是由08H單元開始。⑸幾個(gè)常用SFR的基本功能81②串行數(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的30H~7FH內(nèi)。⑸幾個(gè)常用SFR的基本功能82

③定時(shí)器/計(jì)數(shù)器T0/T1:8051系列單片機(jī)有兩個(gè)16位的定時(shí)器/計(jì)數(shù)器T0和T1,它們分別由TL0,TH0和TL1,TH1兩個(gè)8位的獨(dú)立的SFR組成,分布在片內(nèi)RAM的地址為8AH~8DH。注意:T0與T1在使用時(shí)不能作為2個(gè)16位的RS來對(duì)待。83第三節(jié)單片機(jī)的時(shí)序

一、MCS-51單片機(jī)的復(fù)位方法及復(fù)位后內(nèi)部各SFR狀態(tài)⒉復(fù)位后內(nèi)部各SFR的狀態(tài):看P25表2.5。⒈MCS-51單片機(jī)的復(fù)位方法:上電自動(dòng)復(fù)位按鈕手動(dòng)復(fù)位84一條指令可分解為若干個(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。

85CPU的時(shí)序⒊機(jī)器周期T機(jī):指CPU完成某些基本操作的所需要的時(shí)間,1個(gè)機(jī)器周期包含6個(gè)狀態(tài)周期。T機(jī)=6T狀=12T振=1us。2.狀態(tài)周期T狀:也稱S周期,由兩個(gè)振蕩周期組成一個(gè)狀態(tài)周期。如上例中:T狀=Ts=2×1/12=1/6us。86CPU的時(shí)序⒋

指令周期T指:指令周期是指執(zhí)行一條指令所需要的時(shí)間,一般情況下,T指=(1~4)T機(jī),MCS-51系列單片機(jī)執(zhí)行一條最長(zhǎng)的指令(如乘、除法指令)需要4個(gè)機(jī)器周期,即4us時(shí)間。87第二章補(bǔ)充練習(xí)⑴MCS-51單片機(jī)內(nèi)256B的數(shù)據(jù)存儲(chǔ)器可分為哪幾個(gè)區(qū)?分別作什么用?⑵開機(jī)復(fù)位后,CPU使用的是哪組工作寄存器?它們的地址是什么?CPU如何確定和改變當(dāng)前工作寄存器組?⑶MCS-51單片機(jī)的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器共處同一地址空間為什么不會(huì)發(fā)生總線沖突?⑷位地址7CH與字節(jié)地址7CH如何區(qū)別?位地址7CH具體在片內(nèi)RAM中什么位置?88第三章

MCS-51單片機(jī)指令系統(tǒng)及編程舉例

【學(xué)習(xí)目標(biāo)】通過本章的學(xué)習(xí),學(xué)生應(yīng)該能夠:熟練地掌握符號(hào)指令及尋址方式,掌握常用偽指令的使用方法以及匯編語言指令的完整格式,會(huì)讀常見典型程序,學(xué)會(huì)編寫基本的匯編語言程序。89重點(diǎn)和難點(diǎn)內(nèi)容:MCS-51尋址方式、指令系統(tǒng)及匯編語言程序的編寫方法。解決方法:詳細(xì)講解,多舉實(shí)例,不斷重復(fù)要點(diǎn),增加練習(xí)。課外指導(dǎo):答疑。教學(xué)效果檢測(cè)方法:質(zhì)疑,批閱作業(yè)并結(jié)合期中考試。90指令:是控制計(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ù)語簡(jiǎn)介:91機(jī)器碼:計(jì)算機(jī)所能辨認(rèn)的命令是二進(jìn)制代碼,又稱操作碼或指令代碼稱。一種計(jì)算機(jī)有幾十種甚至幾百中指令,如果都用二進(jìn)制代碼,記憶、書寫,編程都很不方便,且易出錯(cuò)。程序:是人們?yōu)榱送瓿赡持蓄A(yù)定的任務(wù),將一系列指令、數(shù)據(jù),地址按一定順序排列而得到的一組指令。92匯編語言源程序:用助記符(操作碼)、符號(hào)地址和標(biāo)識(shí)符等書寫的程序稱之為匯編語言源程序。助記符:為解決上述問題,制造廠家對(duì)指令系統(tǒng)中的每一條指令規(guī)定了特定的英文縮寫符號(hào)稱為助記符。MOVA,R0;A←R0內(nèi)容,MOV稱指令助記符對(duì)應(yīng)的機(jī)器碼為:1111100093匯編:匯編語言源程序在機(jī)器執(zhí)行前必須先轉(zhuǎn)換為相應(yīng)的機(jī)器碼方可被機(jī)器識(shí)別執(zhí)行,這個(gè)過程稱為翻譯(匯編)。翻譯匯編語言源程序的方法有兩種:人工翻譯和匯編軟件自動(dòng)翻譯。本章第一次作業(yè):教材P55

習(xí)題與思考題2,4,7,8(4),10,補(bǔ)充作業(yè):請(qǐng)用位操作指令編寫實(shí)現(xiàn)下面邏輯表達(dá)式的程序。

PSW.5=P1.3×Acc.2+B.5×P1.194§3.1指令格式簡(jiǎn)介§3.2MCS-51的尋址方式§3.3指令系統(tǒng)§3.4偽指令§3.5匯編程序設(shè)計(jì)及應(yīng)用舉例本章主要內(nèi)容95第一節(jié)指令格式簡(jiǎn)介匯編語言的標(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)組成:以英文字母開始,由1~8個(gè)字符(字母、數(shù)字和下劃線“-”)組成,以“:”結(jié)尾。96⑵操作碼助記符:是匯編語言中每一行不可缺少的部分,它規(guī)定了指令的操作功能,操作碼助記符是由2~5個(gè)字母組成的字符串,也是機(jī)器的保留字,操作碼與操作數(shù)之間要用若干空格分開。注意:①標(biāo)號(hào)不能使用機(jī)器的保留字。②一個(gè)程序中不允許重復(fù)定義標(biāo)號(hào)。97⑶操作數(shù):可以是具體的數(shù)字,也可以是符號(hào)或RS名,操作數(shù)可分為源操作數(shù)SRC(source)和目的操作數(shù)DST(destination),二者用逗號(hào)分開,有些指令無操作數(shù)。⑸帶[]的內(nèi)容可省。⑷

注釋:注釋必須以“;”開頭,可有可無,可由任何可打印的ASCII碼字符組成,用于解釋說明程序。98第二節(jié)

MCS-51的尋址方式例:movA,#data

;

A←將數(shù)字data特點(diǎn):①指令操作碼后面的一個(gè)字節(jié)就是操作數(shù)本身,立即數(shù)是放在程序存儲(chǔ)器中的一個(gè)常數(shù)。1.立即尋址:所要找的操作數(shù)是一二進(jìn)制數(shù)或十進(jìn)制數(shù),出現(xiàn)在指令中,用“#”作前綴。99②#為立即數(shù)的前綴符號(hào),data可為16位,也可為8位。③MCS-51系列只有一條指令,其立即數(shù)為16位,這就是:

MOVDPTR,#data16;DPH←data高8位

;DPL←data低8位1002.直接尋址:例:MOVA,70H;A←RAM區(qū)70H單元的內(nèi)容。特點(diǎn)為:指令中直接給出操作數(shù)的地址。①指令操作碼后面的一個(gè)字節(jié)就是實(shí)際操作數(shù)的地址(8位)。101③因?yàn)閐irect是8位二進(jìn)制數(shù),所以直接尋址的范圍主要有以下三個(gè)地址空間:②指令中的直接地址可用direct表示。例:PUSHdirect;功能為將direct所指;示的片內(nèi)RAM中單元;的內(nèi)容→堆棧中。102⑶內(nèi)部RAM及SFR中,可進(jìn)行位尋址的位地址空間共213位(內(nèi)部RAM中有20H~2FH中有128個(gè)位,SFR中有85位)。⑴內(nèi)部RAM00H~7FH地址空間共128個(gè)字節(jié);⑵特殊功能R,即SFR(直接尋址是訪問

SFR的唯一尋址方式);1033.寄存器尋址:操作數(shù)存放在工作寄存器R0~R7中,或寄存器A、B、DPTR和C中。例:MOVA,Rn;A←

(Rn),n=0~7特點(diǎn):①Rn的內(nèi)容就是操作數(shù)本身;

②尋址范圍是:被選中的工作RS組中的8個(gè)workRS,R0~R7及A,B,

DPTR和進(jìn)位標(biāo)志CY(C)。104⑴R中的內(nèi)容不是操作數(shù)本身而是其所在存儲(chǔ)單元的地址值,即R0指示了操作數(shù)所在存儲(chǔ)單元的地址值。4.寄存器間接尋址:(間址尋址)指令中寄存器的內(nèi)容作為操作數(shù)存放的地址,在指令中間接尋址寄存器前用“@”表示前綴。例:MOVA,@R0

;A←((R0))

;將R0所指向存儲(chǔ)單元的內(nèi)容→A

中特點(diǎn):105⑵可用作間址RS的register有workRS(R0,R1)、數(shù)據(jù)指針DPTR。例如:“一本書放在甲抽屜中,上了鎖;其開鎖的鑰匙放在乙抽屜中,乙

抽屜也上了鎖。問如何才能取到那本書?”答:這就是一個(gè)間接尋址的問題,要經(jīng)過兩次尋址才能找到那本書。而寄存器間接尋址也是同樣。106⑶間址尋址的范圍:

①R0、R1、SP作為間址RS可以訪問內(nèi)部

RAM的128個(gè)字節(jié)。③DPTR作為間址RS可訪問外部RAM全部的64KB空間。②R0、R1作為間址RS可以訪問外部數(shù)據(jù)存儲(chǔ)器RAM頁內(nèi)256個(gè)字節(jié)(可用P2口選中頁面,64KB的RAM可分為256個(gè)頁面)。107⑷間址尋址方式有:

①ADDA,@Ri

;i=0或1②MOV@Ri,direct;i=0或1③MOVXA,@DPTR108又稱變址尋址,有兩種方式:

MOVCA,@A+PC;A←(A+PC)MOVCA,@A+DPTR;A←(A+DPTR)特點(diǎn):5.基址寄存器加變址RS間接尋址:操作數(shù)地址=變地址+基地址基地址寄存器DPTR或PC

變址寄存器@A109⑴是MCS-51單片機(jī)特有的一種尋址方式,它以地址指針DPTR或程序計(jì)數(shù)器PC(當(dāng)前值)為基地址R,以累加器A作為變址R,這二者內(nèi)容之和才是實(shí)際操作數(shù)地址。⑵

A是無符號(hào)8位數(shù)(00H~FFH)。⑶尋址的范圍是68K字節(jié)的程序存儲(chǔ)器EPROM。110該尋址方式常用于訪問程序存儲(chǔ)器和查表。兩條指令的區(qū)別為:前者查表的范圍是相對(duì)PC當(dāng)前值以后的255字節(jié)地址空間,而后者查表范圍可達(dá)整個(gè)程序存儲(chǔ)器64K字節(jié)的地址空間。1116相對(duì)尋址:把指令中給定的地址偏移量與下一條將要執(zhí)行的指令所在單元地址(PC內(nèi)容)相加,得到真正有效的操作數(shù)所存放的地址值。例:JCrel;若PSW中CY=1,則轉(zhuǎn)移至

PC=PC當(dāng)前值+rel處,若PSW

中CY=0,PC不變。特點(diǎn):112⑴以程序計(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é)。1137.位尋址:專門用于位操作指令,可對(duì)MCS-51中213個(gè)位進(jìn)行運(yùn)算和傳送的操作,且本尋址方式只能使用專用累加器C。例:MOVC,20H114

鞏固內(nèi)容:1、匯編語言有何種特點(diǎn)?指令格式如何?2、MCS—51系列機(jī)共有多少條指令?分幾類?3、MCS—51系列匯編語言指令有幾種尋址方式?

115第三節(jié)

指令系統(tǒng)及應(yīng)用舉例

MCS-51單片機(jī)共有111條指令,用42個(gè)助記符表示了33種指令功能,同一種指令所對(duì)應(yīng)的操作碼可多達(dá)8種,指令按其功能可分為5大類:數(shù)據(jù)傳送類,算術(shù)運(yùn)算類,邏輯運(yùn)算類,控制轉(zhuǎn)移類,位操作指令。116指令中操作數(shù)的描述符號(hào):

Rn——工作寄存器R0~R7Ri——間接尋址寄存器R0、R1

Direct——直接地址,包括內(nèi)部128BRAM單元地址、21個(gè)SFR地址。#data——8位常數(shù)#data16——16位常數(shù)

addr16——16位目的地址addr11——11位目的地址

rel——8位帶符號(hào)的偏移地址

DPTR——16位外部數(shù)據(jù)指針寄存器

bit

——

可直接位尋址的位

117②direct可表示片內(nèi)RAM00H~7FH(128B)的內(nèi)存空間和SFR的地址,但不包括A、DPTR、Rn寄存器。①除以direct為DST外,其它指令都不影響

PSW中除P以外的其它位,以A為DST的指令會(huì)影響PSW中的P位。一、數(shù)據(jù)傳送類指令:分為五部分共29條,看P41表3.1。特點(diǎn)如下:118類型DST助記符功能片

內(nèi)

RAM

AMOVA,RnMOVA,@RiMOVA,#dataMOVA,directA←(Rn)A←((Ri))A←dataA←(direct)

RnMOVRn,AMOVRn,directMOVRn,#data

Rn←(A)Rn←(direct)Rn←#data

directMOVdirect,AMOVdirect,RnMOVdirect,directMOVdirect,@RiMOVdirect,#datadirect←(A)direct←(Rn)direct←(direct)direct←((Ri))direct←#data

@RiMOV@Ri,AMOV@Ri,directMOV@Ri,#data@Ri←(A)@Ri←(direct)@Ri←#data119類型目的操作數(shù)指令助記符功能片外RAM傳送指令DPTRMOVDPTR,#data16DPTR←data16AMOVXA,@RiMOVXA,@DPTRA←((Ri)),i=1,0A←((DPTR))@RiMOVX@Ri,A((Ri))←(A),i=1,0@DPTRMOVX@DPTR,A((DPTR))←(A)ROM傳送指令A(yù)MOVCA,@A+PCMOVCA,@A+DPTRA←((A)+()PC)A←((A)+(DPTR))

交換指令XCHA,RnXCHA,@RiXCHA,directXCHDA,@RiSWAPA(A)←→(Rn)(A)←→((Ri)),i=1,0(A)←→(direct)(A0~3)←→((Ri))0~3A4~7←→A0~3堆棧指令PUSHdirectPOPdirectSP←(SP)+1,((SP))←(direct)(direct)←((SP)),SP←(SP)-1120

③訪問ROM和片外RAM的指令所使用的寄存器只能是專用寄存器A。④通常SRC可以是:A,Rn,direct,@Ri和#data5種,而DST只能有4種(不能是#data)。

⑤訪問SFR的唯一尋址方式是直接尋址,SFR

的名稱代表直接地址(A寄存器除外)。121數(shù)據(jù)傳送類指令總結(jié)片內(nèi)外程序存儲(chǔ)器ROMEPROM特殊功能寄存器SFR片內(nèi)RAM128字節(jié)片外數(shù)據(jù)存儲(chǔ)器RAMMOVCMOVXMOVPUSHPOPXCHXCHD122注意:以下指令均為非法指令。

MOVRn,RnMOV@Ri,@RiMOVRn,@RiMOV#data,A

MOVX30H,@DPTRMOVCB,@A+DPTR哇!好容易出錯(cuò)?。?23例1設(shè)內(nèi)部RAM30H單元內(nèi)容為52H,給出以下程序執(zhí)行后(R0)=?(A)=?

(30H)=?及30H在不同指令中的作用。MOVA,#30HMOVA,30HMOVR0,#30HMOVA,@R0MOV30H,#30H;A←30H;A←(30H),即(A)=52H;R0←30H;A←((R0)),即(A)=52H;(30H)←30H

124解:(R0)=30H,(A)=52H,(30H)=30H其中:第一,三,五句中#30H為立即數(shù),第二,五條指令中30H為直接地址,第四條指令R0中的30H為隱含的間接地址。125例2.已知P1口內(nèi)容為0AAH,給出下列程序執(zhí)行的結(jié)果及相應(yīng)的機(jī)器碼(P214表A.1)。MOVR0,#30HMOV10H,P1MOVA,10HMOV@R0,AMOV40H,@R0

;7830H;851090H;E510H;F6H;8640H126例3.設(shè)片內(nèi)RAM30H單元內(nèi)容為40H,40H單元中的內(nèi)容為10H,P1口上的內(nèi)容為0CAH,給出執(zhí)行以下程序的結(jié)果。MOVR0,#30HMOVA,@R0MOVR1,AMOVB,@R1MOV@R1,P1MOVP2,P1;(R0)=30H;(A)=(30H)=40H;(R1)=40H;(B)=(40H)=10H;(40H)=(P1)=0CAH;(P2)=(P1)=0CAH127

例4.設(shè)片外RAM(2020H)=44H,(2030H)=55H,分析下面程序執(zhí)行的結(jié)果。MOVP2,#20HMOVR0,#20HMOVR1,#30HMOVXA,@R0;(P2)=20H;(R0)=20H;(R1)=30H;(A)=44H128MOVR0,#40HMOVX@R0,AMOVXA,@R1MOVR1,#60HMOV@R1,A;(R0)=40H;(2040H);=(A)=44H;(A)=(2030H);=55H;(R1)=60H;(60H)=55H129例5.設(shè)堆棧指針(SP)=11H,(PSW)=00H,給出下面程序執(zhí)行的結(jié)果。

MOV20H,#53HPUSH20H

POPPSW;(20H)←53H;(SP)=(SP)+1,(SP)=12H

;53H→((SP))→(12H);PSW←((SP))=53H,;(SP)=(SP)-1,(SP)=11H130例3、試編寫一程序段,實(shí)現(xiàn)將外RAM0FAH單元中的內(nèi)容傳送到外RAM04FFH單元中。解:MOVP2,#00HMOVDPTR,#04FFHMOVR0,#0FAHMOVXA,@R0MOVX@DPTR,A131小結(jié):數(shù)據(jù)傳送類指令有幾種類型?哪些影響哪個(gè)標(biāo)志位?132二、算術(shù)運(yùn)算類指令:(看P45表3.2)

此類指令具有加,減,乘,除指令,它們一般對(duì)PSW的CY、AC、OV和P各位均有影響,對(duì)其余四位不影響,但I(xiàn)NC與DEC指令不影響PSW的內(nèi)容。具體特點(diǎn)如下:133①加減法指令的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。134⑥程序中DAA指令必須緊跟在加法指令之后。再判斷當(dāng)PSW中的CY=1或A寄存器中高4位值大于9,則對(duì)A寄存器中高4位內(nèi)容進(jìn)行加6處理;先判斷當(dāng)PSW

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論