全書配套課件:單片機原理與應(yīng)用_第1頁
全書配套課件:單片機原理與應(yīng)用_第2頁
全書配套課件:單片機原理與應(yīng)用_第3頁
全書配套課件:單片機原理與應(yīng)用_第4頁
全書配套課件:單片機原理與應(yīng)用_第5頁
已閱讀5頁,還剩711頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機原理及應(yīng)用目錄

第1章緒論

第2章MCS-51單片機的結(jié)構(gòu)和原理

第3章MCS-51單片機的指令系統(tǒng)

第4章MCS-51單片機的程序設(shè)計

第5章中斷系統(tǒng)及定時計數(shù)器

第6章單片機串行通信及接口

第7章單片機系統(tǒng)擴展

第8章A/D和D/A轉(zhuǎn)換的接口技術(shù)

第9章單片機系統(tǒng)的工程設(shè)計

第10章基于C語言的單片機的程序設(shè)計*第一章緒論二進(jìn)制數(shù)、十進(jìn)制數(shù)和十六進(jìn)制數(shù)之間的換算關(guān)系。二進(jìn)制數(shù)原碼、反碼和補碼的表示方法;BCD碼和ASCII碼的基本概念。計算機的產(chǎn)生、發(fā)展及基本結(jié)構(gòu)。單片機的發(fā)展過程及其應(yīng)用領(lǐng)域。*本章主要內(nèi)容

1.1

數(shù)制與編碼

1.2

計算機概述

1.3單片機的發(fā)展過程與應(yīng)用領(lǐng)域

*

數(shù)制:是進(jìn)位計數(shù)制的簡稱。

十進(jìn)制:生活中最熟悉的進(jìn)位計數(shù)制。特點:

每一位是0~9十個數(shù)碼中的一個數(shù)碼,基數(shù)是10

運算規(guī)則:逢十進(jìn)一,借一當(dāng)十例如,十進(jìn)制數(shù)47.25按權(quán)展開為:1.1.1

數(shù)制及其轉(zhuǎn)換

47.25=4×101+7×100+2×10-1+5×10-2*1.1.1

數(shù)制及其轉(zhuǎn)換

1.二進(jìn)制數(shù)及其轉(zhuǎn)換(1)二進(jìn)制數(shù)的特點

每一位是0、1兩個數(shù)碼中的一個數(shù)碼,基數(shù)是2

運算規(guī)則:逢二進(jìn)一,借一當(dāng)二(2)二進(jìn)制數(shù)和十進(jìn)制數(shù)的轉(zhuǎn)換

二進(jìn)制數(shù)十進(jìn)制數(shù):乘權(quán)求和法。十進(jìn)制數(shù)整數(shù)二進(jìn)制數(shù):除2取余逆排法。十進(jìn)制數(shù)小數(shù)二進(jìn)制數(shù):乘2取整順排法。*1.1.1

數(shù)制及其轉(zhuǎn)換

2.十六進(jìn)制數(shù)及其轉(zhuǎn)換(1)十六進(jìn)制數(shù)的特點

每一位是0~9、A~F中的一個數(shù)碼,基數(shù)是16

運算規(guī)則:逢十六進(jìn)一,借一當(dāng)十六(2)十六進(jìn)制數(shù)的轉(zhuǎn)換

十六進(jìn)制數(shù)二進(jìn)制數(shù):一拉四法。二進(jìn)制數(shù)十六進(jìn)制數(shù):四合一法。十六進(jìn)制數(shù)與十進(jìn)制數(shù)間的轉(zhuǎn)換類似于二進(jìn)制數(shù)和十進(jìn)制數(shù)之間的轉(zhuǎn)換*1.1.1

數(shù)制及其轉(zhuǎn)換

其一是(N)R,R代表2、10、16等;其二是在數(shù)的結(jié)尾以一字母標(biāo)示

D(Decimal)代表十進(jìn)制(也可省略)

B(Binary)代表二進(jìn)制

O(Octal)代表八進(jìn)制

H(Hexadecimal)代表十六進(jìn)制。如:(1010)2

(100)10

101B101DEFH為了區(qū)分?jǐn)?shù)的不同進(jìn)制,有兩種不同的區(qū)分法:*

機器數(shù):機器中以編碼形式表示的數(shù);真值:原來一般書寫形式表示的數(shù)。1.1.2

機器數(shù)與真值

有符號的數(shù)在數(shù)學(xué)中用“十”和“-”表示,在計算機中規(guī)定用最高位作為符號位,用“0”表示“+”,用“1”表示“-”。例:負(fù)數(shù)

-1011011B(-5BH)1011011B1

(DBH)機器數(shù)真值*1.1.3

原碼、反碼、補碼

在計算機中機器數(shù)可以用三種方法表示,即原碼、反碼和補碼。

原碼:最高位為符號位,其余位為數(shù)值位。

反碼:是有符號二進(jìn)制數(shù)的一種表示方法。正數(shù)的反碼與原碼相同;負(fù)數(shù)的反碼符號位為1,數(shù)值位是原碼的數(shù)值位按位取反。注:采用原碼和反碼表示時,符號位不能同數(shù)值一道參加運算。*1.1.3

原碼、反碼、補碼

例如:*1.1.3

原碼、反碼、補碼

補碼:計算機中有符號數(shù)的常用表示方法。

正數(shù)的補碼與原碼相同;負(fù)數(shù)的補碼是反碼加1。例如:*反碼:范圍是:+127~-127;“0”有2種表示補碼:范圍是:+127~-128;“0”有1種表示1.1.3

原碼、反碼、補碼

*1.1.3

原碼、反碼、補碼

三種編碼的最高位為符號位,“0”表示正,“1”

表示負(fù)。對于正數(shù),三種編碼的表示方法相同。對于負(fù)數(shù),三種編碼的符號位均為1,數(shù)值部分不同。8位二進(jìn)制數(shù)的原碼、反碼和補碼所能表示的數(shù)值范圍是不完全相同的。

結(jié)論1*1.1.3

原碼、反碼、補碼

補碼的加減運算補碼運算的幾個公式:

其中,為的每一位(包括符號位)都按位取反,再加1。上面式子中,x1、x2、(x1+x2)、(x1-x2)必須在-2n-1~2n-1范圍內(nèi),否則機器會產(chǎn)生溢出錯誤。*1.1.3

原碼、反碼、補碼

例1-9用補碼進(jìn)行運算,求x1+x2x1=+0011101B=+29,x

2=-0000110B=-600011101+1111101000010111

真值為:+0010111B=+23由此可見,符號在參加運算后結(jié)果是正確的。則[x1]補+[x2]補為:自然丟失1解:*1.1.3

原碼、反碼、補碼

例1-10用補碼進(jìn)行運算,求x1-x2

x1=+0001000B=+8,x

2=+0001111B=+1500001000+1111000111111001

真值為:-0000111B=-7則[x1]補+[-x2]補為:解:*

求出參加運算的兩個數(shù)的補碼。用補碼相加進(jìn)行加法運算,用減數(shù)變補相加完成減法運算。運算時符號位應(yīng)當(dāng)作為數(shù)的一部分參與運算,符號位有進(jìn)位則丟棄。運算結(jié)果仍為補碼,要得到真值須再轉(zhuǎn)換。負(fù)數(shù)的補碼求原碼時,符號位不變,數(shù)值位按位取反后再加“1”。補碼運算結(jié)果超出機器允許范圍,會產(chǎn)生“溢出”而出錯。

結(jié)論2*1.1.4BCD碼和字符的ASCII碼

計算機只能識別“0”和“1”兩個符號,而計算機處理的信息卻有多種形式,例如數(shù)字、標(biāo)點符號、運算符號、各種命令、文字和圖形等。要表示這么多的信息并識別它們,必須對這些信息進(jìn)行編碼。計算機中根據(jù)信息對象不同,編碼的方式也不同。常見的碼制有BCD碼和ASCII碼等。

*1.BCD碼(十進(jìn)制數(shù)的二進(jìn)制編碼)1.1.4BCD碼和字符的ASCII碼

BCD(BinaryCodedDecimal)碼也叫二—十進(jìn)制編碼,是指將十進(jìn)制數(shù)的0~9十個數(shù)字用二進(jìn)制數(shù)表示的編碼。由于十進(jìn)制數(shù)有十個不同的數(shù)碼,因此需用4位二進(jìn)制數(shù)來表示。而4位二進(jìn)制編碼有16種不同的組合,從中取出10種組合來表示0~9十個數(shù)有多種方案,所以BCD碼也有多種方案。最常用的編碼是8421碼,它是一種恒權(quán)碼,8(23)、4(22)、2(21)、1(20)分別是4位二進(jìn)制數(shù)的權(quán)值。*1.1.4BCD碼和字符的ASCII碼

表1-2BCD(8421)碼與十進(jìn)制數(shù)對應(yīng)關(guān)系十進(jìn)制數(shù)8421BCD碼十進(jìn)制數(shù)8421BCD碼00000501011000160110200107011130011810004010091001*2.ASCII碼(字符編碼)1.1.4BCD碼和字符的ASCII碼

在計算機內(nèi),任何信息都是用代碼表示的,字母、數(shù)字和符號也是用二進(jìn)制代碼表示的。國際上通用的是美國國家信息交換標(biāo)準(zhǔn)字符碼,即ASCII碼(AmericanStandardCodeforInformationInterchange)。ASCII碼是一種8位代碼,最高位一般用于奇偶校驗,用7位代碼對128字符進(jìn)行編碼。其中32個是控制字符,96個是圖形字符,如下圖所示。7位ASCII碼字符表,最高位未列出,一般表示時以0來代替。列為高三位二進(jìn)制碼,行為低4位二進(jìn)制碼。附錄CASCII碼表*

1946年2月15日,第一臺電子數(shù)字計算機問世,標(biāo)志著計算機時代的到來。1.2.1

電子計算機的產(chǎn)生及發(fā)展

1.2計算機概述ENIAC奠定了電子計算機的發(fā)展基礎(chǔ),在計算機史上具有劃時代的意義,標(biāo)志著電子計算機時代的到來。*

計算機的發(fā)展1.2.1

電子計算機的產(chǎn)生及發(fā)展采用不同物理器件的發(fā)展歷程電子管計算機晶體管計算機中小規(guī)模集成電路計算機大、超大規(guī)模集成電路計算機機器語言匯編語言高級語言軟件(編程語言)發(fā)展*馮·諾依曼提出的“二進(jìn)制運算”和“程序存儲”的思想,構(gòu)建了計算機經(jīng)典結(jié)構(gòu)。1.2.2

計算機的基本結(jié)構(gòu)圖1-1計算機的基本結(jié)構(gòu)框圖

*單片機定義:把CPU和一定容量的存儲器、中斷系統(tǒng)、一些并/串接口電路及定時/計數(shù)器電路集成在一塊芯片上。1.2.3

單片微型計算機圖1-2單片機內(nèi)部結(jié)構(gòu)示意圖*單芯片微機形成階段1.3

單片機的發(fā)展過程與應(yīng)用領(lǐng)域1.3.1單片機的發(fā)展過程特點:體積小,價格低,存儲器容量小,尋址范圍?。ú淮笥?K),無串行接口,指令系統(tǒng)功能不強。

1976年,Intel公司推出了MCS-48系列單片機。8位CPU、1K字節(jié)ROM、64字節(jié)RAM、27根I/O線和1個8位定時/計數(shù)器。*性能完善提高階段1.3.1單片機的發(fā)展過程特點:雖然仍是8位機,但其結(jié)構(gòu)體系完善,性能已大大提高,品種全、兼容性強、軟硬件資源豐富、面向控制的特點進(jìn)一步突出、性能價格比高?,F(xiàn)在,MCS-51已成為公認(rèn)的單片機經(jīng)典機種。1980年,Intel公司推出了MCS-51系列單片機:8位CPU、4K字節(jié)ROM、128字節(jié)RAM、4個8位并口、1個全雙工串行口、2個16位定時/計數(shù)器。尋址范圍64K,并有控制功能較強的布爾處理器。*微控制器化階段1.3.1單片機的發(fā)展過程特點:片內(nèi)面向測控系統(tǒng)電路增強,使之可以方便靈活地用于復(fù)雜的自動測控系統(tǒng)及設(shè)備?!拔⒖刂破鳌钡姆Q謂更能反應(yīng)單片機的本質(zhì)。1983年,Intel推出MCS-96系列單片機。芯片內(nèi)集成:16位CPU、8K字節(jié)ROM、232字節(jié)RAM、5個8位并口、1個全雙工串行口、2個16位定時/計數(shù)器。尋址范圍64K。片上還有4路或8路10位ADC、1路PWM輸出及高速I/O部件等。*1.3.1單片機的發(fā)展過程微控制器的CPU核仍以CISC為主,但向RISC

演化。單片機發(fā)展趨勢提升指令執(zhí)行速度。集成大容量片上FLASH存儲器,實現(xiàn)ISP、IAP。普遍使用混合信號(數(shù)字、模擬相混合)集成技術(shù)。增加可聯(lián)網(wǎng)的外設(shè)接口。追求低電壓、低功耗、低價位、LPG。*1.3.2單片機的特點和應(yīng)用領(lǐng)域體積小,價格低,應(yīng)用廣。1.單片機的特點通用性、靈活性強,易擴展

??煽啃愿?、抗干擾能力強

。實時控制能力強

。微型計算機具有運算速度快、精度高、方便靈活、適應(yīng)范圍廣和可靠性高等特點。作為其分支的單片機,由于特殊的硬件結(jié)構(gòu)和指令系統(tǒng),還具有以下突出特點。*1.3.2

單片機的特點和應(yīng)用領(lǐng)域工業(yè)方面:各種測控系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、工業(yè)機器人、機電一體化產(chǎn)品等。2.單片機的應(yīng)用領(lǐng)域智能儀器儀表方面:如齒輪精度檢驗儀類的各種工業(yè)檢驗、測量儀器、醫(yī)療器械等。

通信方面:調(diào)制解調(diào)器、程控交換技術(shù)。

民用方面:全自動洗衣機、智能電飯鍋、電話機、錄像機、空調(diào)機和電子玩具等。

導(dǎo)彈與控制方面:導(dǎo)彈控制、魚雷制導(dǎo)控制、智能武器裝備、航天飛機導(dǎo)航系統(tǒng)等。

*1.3.3

MCS-51系列單片機簡介MCS-51系列單片機采用HMOS(如8051)和CHMOS(如80C51)工藝。這兩種單片機完全兼容。1.Intel公司的MCS-51系列單片機MCS-51系列單片機按片內(nèi)有無程序存儲器及程序存儲器的形式分為三種基本產(chǎn)品:8031、8051和8751。它們的引腳與指令系統(tǒng)完全兼容,但在內(nèi)部結(jié)構(gòu)及應(yīng)用特性方面存在一些差異。8031內(nèi)部包括一個8位的CPU、128KB的RAM、21個特殊功能寄存器、4個8位并行I/O口、1個全雙工的串行口、2個16位的定時/計數(shù)器。但無程序存儲器,使用時需外擴EPROM芯片。*1.3.3

MCS-51系列單片機簡介8051是在8031的基礎(chǔ)上,片內(nèi)集成有4KB的ROM,ROM中的程序是由單片機芯片廠固化的,適合大批量的生產(chǎn)。8751片內(nèi)含有4KB的EPROM,單片機應(yīng)用開發(fā)人員可以把編寫好的程序用開發(fā)機或編程器寫入其中,也可以反復(fù)修改程序。但其價格相對于8031較貴。

高檔單片機主要包括:將原來的8031/8051/8751進(jìn)行擴展為8032/8052/8752;低功耗CHMOS工藝芯片80C31H/87C51/80C51BH;具有高級語言編程的芯片8052H-BASIC;高性能的8XCX52系列。*1.3.3

MCS-51系列單片機簡介Atmel公司生產(chǎn)的MCS-51系列單片機提供了豐富的外圍接口和專用的控制器,可用于特殊用途。例如電壓比較、USB控制、MP3解碼及CAN控制等。此外,Atmel公司還把ISP技術(shù)集成在MCS-51系列單片機中,使用戶能夠方便地改變程序代碼,從而方便地進(jìn)行系統(tǒng)調(diào)試。Atmel公司還提供了各種產(chǎn)品的不同封裝,以方便用戶進(jìn)行選擇。

2.Atmel公司的MCS-51系列單片機*1.3.3

MCS-51系列單片機簡介2.Atmel公司的MCS-51系列單片機表1-3AT89系列單片機常用產(chǎn)品特性一覽表型號片內(nèi)存儲器I/O口線定時/計數(shù)器模擬比較器中斷源串行口程序存儲器數(shù)據(jù)存儲器89C10511KBFPEROM64B151個16位1個3個無89C20512KBFPEROM128B152個16位1個5個2級UART89C514KBFPEROM128B322個16位無5個2級UART89C528KBFPEROM256B323個16位無6個2級UART*本課小結(jié)

計算機中所有信息都采用二進(jìn)制表示,對于數(shù)值型數(shù)據(jù),常采用幾種進(jìn)位計數(shù)制表示,不同數(shù)制之間可以相互轉(zhuǎn)換。對有符號數(shù)的表示有真值、機器數(shù)、原碼、反碼和補碼。在機器中采用補碼加減運算規(guī)則做加減運算。為了方便書寫程序和數(shù)據(jù),觀察處理結(jié)果,同時又能符合計算機只能識別二進(jìn)制的特點,對十進(jìn)制數(shù)采用BCD編碼,對常用字符編碼采用ASCII碼。單片機是把微處理器、存儲器、輸入輸出接口、定時/計數(shù)器以及串行通信接口等集成在一塊芯片上,它具有體積小、價格和功耗低、可靠性高等特點,其應(yīng)用領(lǐng)域十分廣泛。*思考題及習(xí)題1-1.對下列不同數(shù)制的數(shù)據(jù)進(jìn)行轉(zhuǎn)換。

(1)(10011010)2=()16=()10

(0110.011)2=()16=()10(2)(12.375)10=()2=()16

(127.875)10=()2=()16(3)(0B7)16=()2=()10

(3EF.8)16=()2=()101-2.將下列二進(jìn)制帶符號數(shù)分別用原碼、反碼和補碼表示。(1)+1101110(2)-1111111

(3)+1010111(4)-1000000*思考題及習(xí)題1-3.寫出下列各十進(jìn)制數(shù)的BCD碼。

(1)(47)10

(2)(68)10(3)(1986.7)10(4)

(1969)101-4.計算機中為什么要采用二進(jìn)制數(shù)?十六進(jìn)制數(shù)能被微型計算機直接執(zhí)行嗎?為什么要學(xué)習(xí)十六進(jìn)制數(shù)?

1-5.單片機有哪些方面的應(yīng)用?發(fā)展前景如何?

1-6.什么是單片機?它由哪幾部分組成?1-7.計算機的基本結(jié)構(gòu)有哪幾部分組成?各部分作用如何?*第二章MCS-51單片機的結(jié)構(gòu)和原理MCS-51系列單片機的基本結(jié)構(gòu)、CPU的組成。

MCS-51系列單片機的存儲器結(jié)構(gòu)、功能區(qū)劃分和各自尋址特點。

MCS-51系列單片機4個8位并行I/O端口的各自功能和應(yīng)用特點。

MCS-51系列單片機器件的外部引腳功能、封裝形式及單片機的工作方式。*

2.1MCS-51單片機基本結(jié)構(gòu)

2.2中央處理器CPU

2.3存儲器

2.4并行輸入/輸出接口

2.5單片機的引腳及其功能本章主要內(nèi)容*2.1MCS-51單片機基本結(jié)構(gòu)MCS-51系列單片機都是以8051為核心電路發(fā)展起來的,包括51子系列(基本型)和52子系列(增強型)兩大類,因此它們都具有MCS-51的基本結(jié)構(gòu)與軟件特征,具有很強的兼容性。

*2.1.1MCS-51系列的內(nèi)部結(jié)構(gòu)(1)面向控制的8位中央處理器(CPU)(2)具有布爾處理(即位處理)能力(3)64KB程序存儲器空間(4)64KB數(shù)據(jù)存儲器空間(5)4KB片內(nèi)程序存儲器(ROM)(6)128B內(nèi)部數(shù)據(jù)存儲器(RAM)(7)一組特殊功能寄存器(SFR)(8)32根雙向并可按位尋址的I/O口線(9)2個16位定時器/計數(shù)器(10)5個中斷源,具有兩個優(yōu)先級(11)一個全雙功異步串行口(12)片內(nèi)振蕩器和時鐘電路VCCALERAM地址寄存器RAMP0鎖存器P2鎖存器ROMP0驅(qū)動器P2驅(qū)動器ACC寄存器B暫存2暫存1SP程序地址寄存器緩沖器PC加1PCDPTRPSWP1驅(qū)動器P3驅(qū)動器P1鎖存器P3鎖存器SFR特殊功能寄存器PSENVSSEARESET內(nèi)部時鐘外接晶振P1.0~P1.7P3.0~P3.7P0.0~P0.7P2.0~P2.7中斷、串行口及定時器ALU定時及控制指令寄存器指令譯碼器用EPROM,為8751無ROM為8031*2.1.2MCS-51系列單片機的結(jié)構(gòu)P0P1P2P3并行接口CPU時鐘電路串行接口中斷系統(tǒng)ROMRAM定時/計數(shù)器T0T1TXDRXD*2.2中央處理器CPU

1.

CPU結(jié)構(gòu)

MCS-51內(nèi)部有一個8位CPU(8位是CPU的字長,指CPU對數(shù)據(jù)的處理是按一個字節(jié)進(jìn)行的),它象通常的微處理器一樣,也是由算術(shù)邏輯運算單元ALU、定時控制部件(即控制器)和各種專用寄存器等組成的。2.2.1MCS-51系列單片機CPU的結(jié)構(gòu)和功能部件*ALU

由定時和控制部件構(gòu)成的控制器,包括定時控制邏輯、指令寄存器、指令譯碼器、數(shù)據(jù)指針DPTR、程序計數(shù)器PC、堆棧指針SP、RAM地址寄存器以及16位地址緩沖器等。運算器(ALU、專用寄存器)

1.

CPU結(jié)構(gòu)*2.CPU的專用寄存器組MCS-51的CPU專用寄存器組包括程序計數(shù)器PC、累加器ACC、寄存器B、程序狀態(tài)標(biāo)志寄存器PSW、堆棧指針SP和數(shù)據(jù)指針DPTR等6個寄存器。除PC外,其余5個寄存器均為可編程可訪問寄存器。PC只能用在查表指令MOVC中,不可直接訪問。專用寄存器組中只有PC在物理上是獨立的(即沒有與其他器件共同編碼的物理地址),其余5個寄存器都有相應(yīng)的直接地址編碼(稱字節(jié)地址)。

*是一個獨立的計數(shù)器,用于存放下一條待執(zhí)行指令的地址。PC的基本工作過程可以描述為:PC中的數(shù)作為指令地址輸出給程序存儲器,程序存儲器按此地址輸出指令字節(jié),同時PC本身自動加1,指向下一條指令。在執(zhí)行轉(zhuǎn)移、調(diào)用類指令或響應(yīng)中斷等操作時,PC的工作過程將有所不同。MCS-51的PC是一個16位寄存器,其尋址范圍是64KB(即216Byte)。

(1)程序計數(shù)器PC(ProgramCounter)2.CPU的專用寄存器組*(2)累加器ACC(Accumulator)簡稱A寄存器或累加器A,是一個具有特殊用途的8位寄存器,主要用來存放一個操作數(shù)或存放運算的結(jié)果。累加器ACC是CPU中使用最頻繁的寄存器,MCS-51指令系統(tǒng)中多數(shù)指令的執(zhí)行都通過它進(jìn)行。2.CPU的專用寄存器組*(3)寄存器B寄存器B也是一個8位寄存器,在乘法和除法運算中用作ALU的輸入之一。乘法運算時,ALU的兩個輸入分別為A、B,運算結(jié)果存放在AB寄存器中,其中A存放積的低8位,B則存放積的高8位。除法運算時,被除數(shù)取自A,除數(shù)取自B;運算結(jié)果商存于A,而余數(shù)存于B。其它情況下,B可作為一個工作寄存器使用。2.CPU的專用寄存器組*(4)程序狀態(tài)字PSW(ProgramStateWord)CyACF0RS1RS0OV…PD7D6D5D4D3D2D1D0PSW進(jìn)位標(biāo)志、“位累加器”

輔助進(jìn)位標(biāo)志

用戶通用狀態(tài)標(biāo)志

溢出標(biāo)志

奇偶標(biāo)志位

保留位

工作寄存器組選擇控制位

若A中有奇數(shù)個“1”,則P置位,否則清零

2.CPU的專用寄存器組*

RS1、RS0與片內(nèi)工作寄存器組的對應(yīng)關(guān)系RS1RS0寄存器組片內(nèi)PAM地址通用寄存器名稱000組00H~07HR0~R7011組08H~0FHR0~R7102組10H~17HR0~R7013組18H~1FHR0~R72.CPU的專用寄存器組*

堆棧是指用戶在單片機內(nèi)部RAM中開辟的、遵循“先進(jìn)后出”原則、只能從一端存取數(shù)據(jù)的一個存儲區(qū)。存取數(shù)據(jù)的一端稱為棧頂。(5)堆棧指針SP(StackPointer)2.CPU的專用寄存器組*

堆棧中的數(shù)據(jù)壓入和彈出過程

凡是關(guān)系到堆棧操作的場合,都需要借助MCS-51的CPU中一個專用8位寄存器SP來間接指示堆棧中數(shù)據(jù)存取的位置,該寄存器被稱為堆棧指針SP。

MCS-51的堆棧是向上(即向地址增加的方向)生成的,堆棧指針SP的初始值稱為棧底。在堆棧操作過程中,SP始終指向堆棧的棧頂。單片機復(fù)位后SP的值為07H,因此入棧數(shù)據(jù)將從08H存起。08H~1FH與工作寄存器區(qū)1~3,通常把棧底設(shè)計在片內(nèi)RAM中地址值較高的地方,如60H等。2.CPU的專用寄存器組*

入棧操作時首先將SP的內(nèi)容[記為(SP)]自動增1,將SP間接指示的棧區(qū)片內(nèi)RAM存儲單元地址向上調(diào)整一次,再把數(shù)據(jù)壓入由SP最新指示的片內(nèi)RAM單元中;出棧操作時,首先將當(dāng)前棧頂?shù)膬?nèi)容彈出到相應(yīng)位置,然后把SP的內(nèi)容自動減1??梢?,在堆棧操作過程中,SP的值將自動增1或減1。89H80H70H50H棧底SPSP入棧過程PUSHACC出棧過程POPACCSP89HSP89HAA89H80H70H50H棧底2.CPU的專用寄存器組*6.數(shù)據(jù)指針寄存器DPTR數(shù)據(jù)指針DPTR是一個16位的專用寄存器,其高位字節(jié)寄存器用DPH表示、低位字節(jié)寄存器用DPL表示。既可作為一個16位寄存器DPTR來處理,也可作為兩個獨立的8位寄存器DPH和DPL來處理。DPTR主要用來存放16位地址,可通過它訪問64KB外部數(shù)據(jù)存儲器或外部程序存儲器空間。2.CPU的專用寄存器組*2.2.2MCS-51系列的CPU時序CPU以不同的方式,通過復(fù)雜的時序電路執(zhí)行并完成各種不同指令功能。CPU的控制器按照指令的功能發(fā)出一系列在時間上有一定次序的信號去控制和啟動一部分邏輯電路,完成某種操作。在一定時刻發(fā)出一定的控制信號去啟動一定的邏輯部件動作,這就是CPU的時序。*1.系統(tǒng)時鐘與時鐘周期系統(tǒng)時鐘是一切微處理器、微控制器內(nèi)部電路工作的基礎(chǔ)。單片機內(nèi)部有一個自激振蕩電路,可以通過它或外部提供振蕩源驅(qū)動內(nèi)部時鐘電路產(chǎn)生系統(tǒng)時鐘信號。系統(tǒng)時鐘信號的振蕩周期簡稱時鐘周期。系統(tǒng)時鐘組成了單片機機器周期的狀態(tài)序列。

2.2.2MCS-51系列的CPU時序*2.機器周期與指令周期CPU完成一種基本操作所需要的時間稱為機器周期Tcy?;镜臋C器周期有取指周期、存儲器讀周期和存儲器寫周期等,各種指令功能都是由這幾種基本機器周期實現(xiàn)的。CPU執(zhí)行一條指令所需要的時間稱為指令周期,它以機器周期為單位。MCS-51的指令可以分為單周期指令、雙周期指令和四周期指令三種,它們的執(zhí)行時間依次是1個、2個和4個機器周期。2.2.2MCS-51系列的CPU時序*

機器周期與時鐘周期的關(guān)系

MCS-51系列單片機的的1個機器周期包括12個時鐘周期。為了敘述方便,可將1個機器周期分為6個狀態(tài)S1~S6,每個狀態(tài)又分為兩節(jié)拍P1、P2,則1個機器周期的12個節(jié)拍依次為S1P1、S1P2、S2P1……S6P2。如果系統(tǒng)時鐘的晶振頻率為fosc=12MHz,則

1Tcy

=12Tosc=12/fosc=12/(12×106)=1μs即:1個機器周期的時間為1μs。

2.2.2MCS-51系列的CPU時序單字節(jié)單周期指令例:INCA雙字節(jié)單周期指令例:ADDA,DATA單字節(jié)雙周期指令例:INCDPTRCPU取指/執(zhí)行時序*一個機器周期P1P2P1P2讀操作碼(丟棄)MOVX類指令(單字節(jié)雙周期指令)無取指(無ALE)地址數(shù)據(jù)訪問外部存儲器雙字節(jié)雙周期指令例:MOVRn,direct讀第二字節(jié)操作碼當(dāng)CPU對外部RAM讀寫時,ALE不是周期信號*2.3存儲器普林斯頓(Princeton)結(jié)構(gòu):將程序和數(shù)據(jù)合用一個存儲器空間的結(jié)構(gòu)。哈佛(Harvard)結(jié)構(gòu):為絕大多數(shù)單片機所采用。程序存儲器和數(shù)據(jù)存儲器截然分開,ROM和RAM獨立編址并分別尋址的結(jié)構(gòu),相互間不會沖突。在MCS-51系列單片機中,不僅在片內(nèi)預(yù)留了一定容量的程序存儲器、數(shù)據(jù)存儲器以及眾多的特殊功能寄存器(SFR),而且還具有很強的外部存儲器擴展能力,程序存儲器和數(shù)據(jù)存儲器的尋址能力均可達(dá)64KB,尋址和操作簡單方便。*1

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15EPROM27641

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15EPROM27641

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

31302928272625242422211

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15RAM62641

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15RAM6264

80318751805189C51片內(nèi)RAM片內(nèi)ROM256B(字節(jié))4KB64K64K2.3存儲器*MCS-51存儲器結(jié)構(gòu)

三大邏輯存儲空間內(nèi)部數(shù)據(jù)存儲器

程序存儲器外部ROM0FFFFH1000H外部RAM及輸入輸出端口(64K)0000H0FFFFH0FFFH0000H內(nèi)部ROM

EA=10FFFH0000H外部ROM

EA=00080H00FFH特殊功能寄存器0000H007FH內(nèi)部RAM外部數(shù)據(jù)存儲器2.3存儲器*2.3.1程序存儲器程序存儲器(Programmemory)主要用于存放經(jīng)調(diào)試正確的應(yīng)用程序和常數(shù)表格。由于MCS-51系列單片機采用16位的程序計數(shù)器PC和16位的地址總線,因而程序存儲器可擴展的地址空間為64KB,并且這64KB地址在空間分布范圍上是連續(xù)和統(tǒng)一的。*1.程序存儲器的分類

單片機應(yīng)用系統(tǒng)中的程序存儲器一般用半導(dǎo)體只讀存儲器即ROM(ReadOnlyMemory)。這種存儲器在計算機運行時只能對其執(zhí)行讀操作,即使整機掉電后存于其中的信息也不會丟失,顯然適于存放用戶程序、常數(shù)和表格等。

(1)MaskROM型:掩膜ROM。其編程只能由制造商通過半導(dǎo)體掩膜技術(shù)完成,用戶無法改寫,所以對用戶而言,它是嚴(yán)格意義上的只讀存儲器,適用于有固定程序且大批量生產(chǎn)的產(chǎn)品中。如8051中的4KB程序存儲器就是這一種。2.3.1程序存儲器*(2)OTPROM型

一次可編程ROM(OneTimeProgrammableROM)。用戶可通過專門設(shè)備對其一次性寫入程序,此后便不能改寫。這種程序存儲器可靠性很高,適合于存放已調(diào)試成功的用戶程序,投入規(guī)模生產(chǎn),但調(diào)試階段不宜用。目前,國內(nèi)外有很多單片機制選商提供片內(nèi)集有OTRROM的單片機產(chǎn)品,可供用戶選擇。2.3.1程序存儲器*(3)EPROM型可擦除可編程ROM(ErasableProgrammableRom),其典型外觀標(biāo)志是芯片上有一個紫外線擦除窗口。這種存儲器編程使用一定的直流電源(如+21V電壓),而擦除則用紫外線燈光照射芯片窗口(一般需15~30分鐘),重新編程后用不透明標(biāo)簽將窗口貼覆遮蓋住即可。目前仍有許多用戶在單片機產(chǎn)品開發(fā)中用此類器件,但由于這種器件不是本質(zhì)非易失器件(陽光或日光燈照射時間足夠長也會擦除程序)、編程電壓要求高、編程時間長等原因,應(yīng)用范圍正在萎縮,相信不久即會被新型器件替代。MCS-51系列單片機8751的片內(nèi)ROM以及27系列存儲器芯片都屬于此類產(chǎn)品。2.3.1程序存儲器*(4)E2PROM型電可擦除可編程ROM(ElectricallyErasableProgrammableROM),較新型只讀存儲器,編程速度較快且可在線改寫,擦除、寫入和讀出電壓均為+5V。28系列存儲器屬于此類產(chǎn)品。2.3.1程序存儲器*(5)FlashROM型閃速只讀存儲器,是最新型的半導(dǎo)體只讀存儲器,其集成度、速度和易用性等遠(yuǎn)非傳統(tǒng)ROM可比。在+5V電源下,改寫時無需擦除操作,高端產(chǎn)品擦寫速度可達(dá)ns級,已進(jìn)入推廣階段。如ATMEL公司的AT89系列單片機中均集有容量不等的FlashROM,是產(chǎn)品開發(fā)用的理想機種。其唯一的缺點是可靠性尚需提高,若設(shè)計調(diào)試時用FlashROM型產(chǎn)品,投入生產(chǎn)時改用OTPROM型,在目前應(yīng)是最佳選擇。專門的FlashROM器件,有93系列等。很多大規(guī)??删幊踢壿嬈骷ㄈ鏑PLD)在存儲性質(zhì)上與FlashROM一致。

2.3.1程序存儲器*2.MCS-51系列單片機程序存儲器的應(yīng)用形態(tài)

MCS-51片內(nèi)程序存儲器為固定的只讀存儲器ROM。如8051中含有4KB容量的掩膜ROM,8751中含有4KB容量的EPROM,89C51中含有4KB容量的FlashROM。8031/8032中不設(shè)程序存儲器,這種單片機在供應(yīng)狀態(tài)上稱為ROMLess型器件,使用過程中必須外擴ROM。2.3.1程序存儲器*...程序存儲器(PC)中斷5中斷4中斷3中斷2中斷10000H0001H0002H0003H000BH0013H001BH0023H002BH定時器1中斷外部中斷0定時器0中斷外部中斷1串行口中斷8位0FFFH0FFEH0000HFFFFH(64K)0000H0FFFH(4K)內(nèi)部EA=1程序存儲器資源分布中斷入口地址外部EA=02.3.1程序存儲器引腳接高電平時,CPU可訪問內(nèi)部和外部ROM,且程序自片內(nèi)程序存儲器開始執(zhí)行,PC值超出片內(nèi)ROM容量時,會自動轉(zhuǎn)向片外程序存儲器中的程序。*3.程序存儲器中的特定程序入口ROM地址功能分配ROM地址功能分配0000H系統(tǒng)復(fù)位或非屏蔽中斷0013H外部中斷1中斷服務(wù)程序入口0003H外部中斷0中斷服務(wù)程序入口001BH定時器/計數(shù)器1中斷服務(wù)程序入口000BH定時器/計數(shù)器0中斷服務(wù)程序入口0023H串行口中斷服務(wù)程序入口2.3.1程序存儲器*0000HFFFFH(64K)外部數(shù)據(jù)存儲器00HFFH7FH80H(高128B)(低128B)內(nèi)部RAM專用

寄存器0組R0R7R0R7R0R7R0R71組2組3組工作寄存器區(qū)可位尋址區(qū)20H2FH7F78070030H7FH數(shù)據(jù)緩沖區(qū)/堆棧區(qū)內(nèi)部RAM存儲器18H1FH10H17H08H0FH00H07H2.3.2內(nèi)部數(shù)據(jù)存儲器RS1RS0000組011組102組013組*2.3.2內(nèi)部數(shù)據(jù)存儲器2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F07MSB位地址LSB7E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800單元地址*

堆?;驍?shù)據(jù)緩沖區(qū)(30H‐7FH)此區(qū)間共80個單元,只可按字節(jié)尋址,而不可位尋址。程序運行期間,會產(chǎn)生一些運算結(jié)果等中間數(shù)據(jù),這些數(shù)據(jù)可在此區(qū)間暫時保存。另外,若程序運行過程中遇到調(diào)用子程序或響應(yīng)中斷,往往需要保護(hù)現(xiàn)場,將有關(guān)的數(shù)據(jù)壓入堆棧,待子程序返回或中斷響應(yīng)結(jié)束時再將入棧數(shù)據(jù)彈出,此時,該區(qū)間可作堆棧使用。單片機復(fù)位后,堆棧指針SP的值為07H,即默認(rèn)此區(qū)間的08H為棧底。考慮到00H~2FH通常留作工作寄存器區(qū)和位尋址區(qū),因此一般將棧底設(shè)置在30H或更高地址單元。2.3.2內(nèi)部數(shù)據(jù)存儲器*2.3.3特殊功能寄存器99HSBUFA0HA0HA1HA2HA3HA4HA5HA6HA7HP2EX0ET0EX1ET1ES--EAA8HA8HA9HAAHABHACHADHAEHAFHIEB0HB0HB1HB2HB3HB4HB5HB6HB7HP3PX0PT0PX1PT1PS---B8HB8HB9HBAHBBHBCHBDHBEHBFHIPP-OVRS0RS1F0ACCyD0HD0HD1HD2HD3HD4HD5HD6HD7HPSWE0HE0HE1HE2HE3HE4HE5HE6HE7HACCF0HF0HF1HF2HF3HF4HF5HF6HF7HB地址位地址/位定義SFR助記符9FH9EH9DH9CH9BH9AH99H98HSCONSM0SM1SM2RENTB8RB8TIRI98H

97

96

95

94

93

92

91

90

P1

P1.7

P1.6

P1.5

P1.4

P1.3

P1.2

P1.1

P1.0

90H

TH1

8DH

TH0

8CH

TL1

8BH

TL0

8AH

TMODGATE

C/T

M1

M0

GATE

C/T

M1

M0

89H

8F

8E

8D

8C

8B

8A

89

88

TCON

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

88HPCON

SMOD

/

//GF1

GF0

PD

IDL

87H

DPH

83H

DPL

82HSP

81H

87

86

85

84

83

82

81

80

P0P0.7

P0.6

P0.5

P0.4

P0.3

P0.2

P0.1

P0.0

80H

特殊功能寄存器SFR*說明:1、51子系列離散分布有21個特殊功能寄存器SFR、52子系列為26個。2、凡地址能被8整除的寄存器(共11個)都是可位尋址的寄存器。*3、位尋址形式:直接位地址:如D3H位助記符:RS0寄存器.位:如PSW.3單元地址.位:如D0H.32.3.2內(nèi)部數(shù)據(jù)存儲器*P0口原理圖如下所示:2.4.1P0口作為通用I/O使用,

是一個準(zhǔn)雙向口;作為地址/數(shù)據(jù)總線時,是一個真正的雙向接口。*(1)P0口可作通用I/O口使用,又可作地址/數(shù)據(jù)總線口;(2)P0既可按字節(jié)尋址,又可按位尋址;(3)作通用I/O口輸出時:是開漏輸出,應(yīng)外接上拉電阻;(4)作地址/數(shù)據(jù)總線口時,P0是一真正雙向口,而作通用I/O口時,只是一個準(zhǔn)雙向口。

2.4.1P0口P0口特點總結(jié):*2.4.2P1口(1)只能作I/O口,沒有地址/數(shù)據(jù)復(fù)用功能(2)可按字節(jié)尋址,也可按位尋址(3)是一準(zhǔn)雙向口,輸出驅(qū)動接有上拉電阻,不是開漏輸出。

讀鎖存器讀引腳寫鎖存器內(nèi)部總線DCLQQP1.X鎖存器P1.X引腳Vcc內(nèi)部上拉電阻R**2.4.3P2口(1)當(dāng)P2口作為通用I/O時,是一準(zhǔn)雙向口。(2)從P2口輸入數(shù)據(jù)時,先向鎖存器寫“1”。(3)可位尋址,也可按字節(jié)尋址。(4)可輸出地址高8位。

讀引腳寫鎖存器內(nèi)部總線讀鎖存器DCLQQP2.X鎖存器MUXP2.X引腳地址Vcc控制內(nèi)部上拉電阻R*l*2.4.4P3口讀引腳寫鎖存器內(nèi)部總線讀鎖存器DCLQQP3.X鎖存器P3.X引腳第二功能輸出內(nèi)部上拉電阻R*第二功能輸入Vcc&P3口原理圖如下所示:*2.4.4P3口

當(dāng)P3口作為通用I/O接口時,第2功能輸出線為高電平,使與非門3的輸出取決于口鎖存器的狀態(tài)。在這種情況下,P3口仍是1個準(zhǔn)雙向口,它的工作方式、負(fù)載能力均與P1、P2口相同。

當(dāng)P3口作為第2功能使用時,其鎖存器Q端必須為高電平,否則V1管導(dǎo)通,引腳被箝位在低電平,無法輸入或輸出第2功能信號。當(dāng)Q端為高電平時,P3口的口線狀態(tài)就取決于第2功能輸出線的狀態(tài)。P3口特點總結(jié):*2.4.5并行I/O口的使用特性

MCS-51系列單片機的4個并行I/O口均由內(nèi)部總線控制,端口的功能復(fù)用會自動識別,不用指令選擇。

P0是8位、漏極開路的雙向I/O口,當(dāng)用作片外存儲器或接口擴展時,分時復(fù)用為數(shù)據(jù)總線和低8位地址總線,可驅(qū)動8個LSTTL負(fù)載。

P1是8位、準(zhǔn)雙向I/O口,具有內(nèi)部上拉電阻,驅(qū)動為4個LSTTL負(fù)載。

P2是8位、準(zhǔn)雙向I/O口,具有內(nèi)部上拉電阻,可驅(qū)動4個LSTTL負(fù)載,外部擴展時用作高8位地址總線。

P3是8位、準(zhǔn)雙向I/O口,具有內(nèi)部上拉電阻,可驅(qū)動4個LSTTL負(fù)載。P3口的所有口線都具有第二功能,實現(xiàn)控制總線的作用。*2.5單片機的引腳及功能2、振蕩電路:XTAL1、XTAL23、復(fù)位引腳:RST4、并行口:P0、P1、P2、P37、ALE:地址鎖存控制信號1、電源線:VCC(+5V)、VSS(地)5、EA:訪問片外ROM控制信號6、PSEN:外部ROM讀選通信號VCCVSSXTAL2

XTAL1RST/VPDP0.0

P0.1

P0.2P0.3P0.4P0.5P0.6P0.7P1.0

P1.1

P1.2P1.3P1.4P1.5P1.6P1.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0ALEP3.0

P3.1

P3.2P3.3P3.4P3.5P3.6P3.7EAPSENRXD/

TXD/

INT0/INT1/

T0/

T1/

WR/

RD/1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

313029282726252424222180318051875189C511.主電源引腳Vcc和Vss

VCC(40腳):接+5V電源正端;VSS(20腳):接+5V電源地端。2.外接晶體引腳XTAL1和XTAL2

XTAL1(19腳):接外部石英晶體的一端。在單片機內(nèi)部,它是一個反相放大器的輸入端,這個放大器構(gòu)成了片內(nèi)振蕩器。

XTAL2(18腳):接外部晶體的另一端。在單片機內(nèi)部,接至片內(nèi)振蕩器的反相放大器的輸出端。

(1)RST/VPD(9腳):RST即為RESET,VPD為備用電源,所以該引腳為單片機的上電復(fù)位或掉電保護(hù)端。VPD是備用電源輸入端,當(dāng)單片機掉電或電源發(fā)生波動導(dǎo)致電源電壓下降到一定值時,備用電源通過VPD端給內(nèi)部RAM供電,保持其中的信息,直至單片機工作電壓恢復(fù)正常。(2)(30腳):當(dāng)訪問外部存儲器時,ALE(允許地址鎖存信號)以每機器周期兩次的信號輸出,用于鎖存出現(xiàn)在P0口的低8位地址,的功能是8751等片內(nèi)含有ROM器件的編程脈沖輸入端。(3)(29腳):片外程序存儲器讀選通信號輸出端,低電平有效。(4)/VPP(31腳):為訪問外部程序存儲器控制信號,低電平有效。VPP是編程電源輸入端。3.控制信號或與其它電源復(fù)用引腳*4.輸入/輸出(I/O)(1)P0口(39腳~32腳):P0.0~P0.7統(tǒng)稱為P0口。(2)P1口(1腳~8腳):P1.0~P1.7統(tǒng)稱為P1口,可作為準(zhǔn)雙向I/O接口使用。(3)P2口(21腳~28腳):P2.0~P2.7統(tǒng)稱為P2口,一般可作為準(zhǔn)雙向I/O接口。(4)P3口(10腳~17腳):P3.0~P3.7統(tǒng)稱為P3口。

*P3口的第二功能2.5.1單片機的引腳及功能*2.5.2部分引腳應(yīng)用及MCS-51單片機工作方式

復(fù)位操作就是使單片機內(nèi)部的一些部件恢復(fù)到某種預(yù)先確定的狀態(tài)。復(fù)位狀態(tài):除以下SFR外,其余SFR都被硬件自動寫入0口鎖存器P0~P3:0FFH堆棧指針SP:07HSBUF:不定內(nèi)部RAM不受復(fù)位操作的影響,但在單片機接通電源時,RAM中的內(nèi)容不定。1.復(fù)位工作方式*SFR復(fù)位值SFR復(fù)位值SFR復(fù)位值PCACCBPSWSPDPTRP0~P3IP(51子系列)IP(52子系列)IE(51子系列)IE(52子系列)SBUF0000H00H00H00H07H0000HFFH×××00000B××000000B0××00000B0×000000B不定

TMODTCONTH0TL0TH1TL1TH2(52子系列)TL2(52子系列)RCAP2H(52子系列)RCAP2L(52子系列)SCONPCON(HMOS工藝)PCON(CHMOS工藝)

00H00H00H00H00H00H00H00H00H00H00H0×××××××B0×××0000B

*單片機進(jìn)入復(fù)位狀態(tài)的條件在內(nèi)部振蕩器運行時,使復(fù)位輸入端RESET至少保持兩個機器周期(24個振蕩周期)為高電平,由CPU采樣復(fù)位信號,啟動復(fù)位時序,完成復(fù)位操作。2.5.2部分引腳應(yīng)用及MCS-51單片機工作方式

*復(fù)位電路

上電復(fù)位電路

按鈕復(fù)位電路

當(dāng)VCC接通電源時,即可實現(xiàn)單片機的上電復(fù)位

2.5.2部分引腳應(yīng)用及MCS-51單片機工作方式

*2.程序運行工作方式MCS-51單片機的程序運行方式包括連續(xù)執(zhí)行方式和單步執(zhí)行方式兩種。其中連續(xù)執(zhí)行方式是程序最基本的執(zhí)行方式,即從PC指針開始,連續(xù)不斷地執(zhí)行程序,直到遇到結(jié)束或暫停標(biāo)志。在系統(tǒng)復(fù)位時,PC總是指向0000H地址單元,而實際的程序應(yīng)允許從程序存儲器的任意位置開始,可通過執(zhí)行若干種指令使PC指向程序的實際起始地址。2.5.2部分引腳應(yīng)用及MCS-51單片機工作方式

*3.節(jié)電工作方式MCS-51單片機的CHMOS器件具有兩種降低功耗的工作方式:空閑方式和掉電方式。

HMOS器件不具有這種功能。通過置位特殊功能寄存器PCON(電源控制寄存器)有關(guān)位可使器件進(jìn)入節(jié)電工作狀態(tài)。

2.5.2部分引腳應(yīng)用及MCS-51單片機工作方式

*D7D6D5D4D3D2D1D0SMOD---GF1GF0PDIDL波特率乘2倍。若使用定時器T1產(chǎn)生波特率且該位置1,則在串行口工作于方式1、2、3時波特率乘2通用標(biāo)志位掉電位,該位置1激活CHMOS器件的掉電操作

空閑方式位,該位置1激活CHMOS器件的空閑操作通用標(biāo)志位當(dāng)PD和IDL同時置位,則優(yōu)先執(zhí)行PDPCON的直接字節(jié)地址是87H2.5.2部分引腳應(yīng)用及MCS-51單片機工作方式

*(1)空閑方式:執(zhí)行一條使PCON.0置位的指令便可使器件立即進(jìn)入空閑工作狀態(tài),此時CPU時鐘被切斷,但中斷系統(tǒng)、定時器和串行口的時鐘信號繼續(xù)保持,所有SFR保持進(jìn)入空閑工作方式前的狀態(tài);而ALE和信號保持為邏輯高電平。退出空閑方式有兩種方法——產(chǎn)生中斷或硬件復(fù)位。2.5.2部分引腳應(yīng)用及MCS-51單片機工作方式

*(2)掉電方式

執(zhí)行一條使PCON.1置位的指令便可使器件立即進(jìn)入掉電狀態(tài),此時振蕩器停止工作,芯片的所有功能均停止,但片內(nèi)RAM和SFR內(nèi)容保持,ALE和信號輸出為低電平。退出掉電方式的唯一方法是硬件復(fù)位。2.5.2部分引腳應(yīng)用及MCS-51單片機工作方式

*本章小結(jié)掌握MCS-51系列單片機的應(yīng)用特點,了解其基本結(jié)構(gòu)和基本特征,了解MCS-51系列單片機CPU的組成,熟悉各CPU組件(尤其是專用寄存器)及其作用;掌握MCS-51系列單片機的存儲器結(jié)構(gòu),了解半導(dǎo)體存儲器的類型和各自特點,能夠區(qū)分不同型號51系列單片機程序存儲器的應(yīng)用狀態(tài);掌握片內(nèi)數(shù)據(jù)存儲器的功能區(qū)劃分和各自尋址特點,熟悉常用的SFR的功能和應(yīng)用特點;了解MCS-51系列單片機4個8位I/O端口的各自功能和應(yīng)用特點;了解MCS-51系列單片機器件的外部引腳功能、封裝形式,熟悉各控制引腳的功能和應(yīng)用特點;了解MCS-51系列單片機的工作方式。了解CPU時序特點,熟悉機器周期的概念以及機器周期與指令周期之間的關(guān)系等。通過本章內(nèi)容,讀者應(yīng)獲得MCS-51系列單片機內(nèi)部資源的比較全面的認(rèn)識,為后續(xù)各章的學(xué)習(xí)奠定良好的基礎(chǔ)。

*2-1.MCS—51系列單片機包括哪幾個主要部件?各自的邏輯功能如何?2-2.簡述PC、PSW、DPTR和ACC等4種專用寄存器的各自含義和作用。2-3.何謂程序狀態(tài)標(biāo)志寄存器?它的符號是什么?它的位置在哪里?其中各位的含義是什么?多應(yīng)用在什么場合?2-4.數(shù)據(jù)堆棧的特點是什么?堆棧指針的地址在哪里?單片機初始化后,把“SP初始化為07H”是什么意思?2-5.MCS—51系列單片機的存儲器是怎樣配置的?片內(nèi)ROM與片外擴展ROM的存儲空間的關(guān)系是什么?片內(nèi)RAM與片外擴展RAM的存儲空間的關(guān)系是什么?2-6.MCS—51系列單片機中ROMLess型器件,在應(yīng)用中P0口和P2口能否直接作為I/O口連接開關(guān)、指示燈之類的外設(shè)?為什么?思考題與習(xí)題*2-7.MCS—51系列單片機ROM存儲空間中,0003H~002BH有什么用途?用戶應(yīng)怎樣合理安排?2-8.8051的片內(nèi)RAM分哪三部分?各部分在使用上有何特點?內(nèi)部RAM中字節(jié)地址00~7F與位地址00~7F完全重合,CPU如何區(qū)分?2-9.MCS—51系列單片機如何實現(xiàn)工作寄存器組的選擇?2-10.何謂時鐘周期、機器周期、指令周期?三者間有何關(guān)系?當(dāng)晶振頻率為4MHz時,三者各是多少?2-11.MCS—51系列單片機40個引腳的功能各是什么?2-12.綜述P0口、P1口、P2口、P3口的功能。當(dāng)單片機外擴RAM和ROM時,他們各起什么作用?2-13.“復(fù)位”是什么意思?MCS—51系列單片機進(jìn)入復(fù)位狀態(tài)的條件是什么?常用的復(fù)位方法有哪幾種?應(yīng)注意什么事項?畫出電路圖說明其工作原理。

思考題與習(xí)題*第3章MCS-51單片機指令系統(tǒng)指令系統(tǒng)概述MCS-51單片機的尋址方式MCS-51的指令系統(tǒng)*本章主要內(nèi)容

3.1指令系統(tǒng)概述

3.2MCS-51單片機的尋址方式

3.3數(shù)據(jù)傳送類指令

3.4算數(shù)運算類指令

3.5邏輯運算類指令

3.6控制轉(zhuǎn)移類指令

3.7位操作類指令*1.指令的定義指令是主機能直接識別和接受并指揮計算機執(zhí)行某種操作的命令。指令有兩種基本表達(dá)形式:機器碼指令和匯編語言指令。3.1指令格式及常用符號3.1.1指令的概念2.機器碼指令與匯編語言指令機器碼指令:用二進(jìn)制代碼(或十六進(jìn)制數(shù))表示的指令。也常被稱為目標(biāo)代碼指令。匯編語言指令:為了便于記憶以及的程序的編寫和閱讀,用助記符表示的指令。

說明:匯編語言指令必須通過某種手段(匯編)把它變成機器碼指令才能被機器執(zhí)行。匯編可由計算機通過匯編程序自動完成,亦可手工匯編。

*1.匯編語言指令格式:

[標(biāo)號:]

操作碼操作數(shù)

[;注釋]

LOOP:

MOVA,#30H

;A←#30H操作碼--表示指令進(jìn)行何種操作,用助記符形式給出。操作數(shù)--指令操作的對象。分為目的操作數(shù)和源操作數(shù)。

3.1.2MCS-51單片機指令格式2.機器碼指令的格式

操作碼操作數(shù)(操作數(shù)用十六進(jìn)制數(shù)表示) 機器碼指令按指令的字節(jié)長度劃分,有單字節(jié)、雙字節(jié)、三字節(jié)指令。*

單字節(jié)指令8位編碼僅為操作碼:指令I(lǐng)NCA,編碼為04H。A隱含在操作碼中。

注意:指令中“A”表示累加器,而“ACC”表示累加器對應(yīng)的地址(E0H)。

00000100INCA3.1.2MCS-51單片機指令格式*高5位為操作碼,低3位為存放操作數(shù)的寄存器編碼。如:MOVA,R08位編碼含有操作碼和寄存器編碼編碼為11101000B,可表示為E8H(低3位000為寄存器R0的編碼)。1110

1000MOVA,R0寄存器號3.1.2MCS-51單片機指令格式*

雙字節(jié)指令第一字節(jié)表示操作碼,第二個字節(jié)表示參與操作的數(shù)據(jù)或數(shù)據(jù)存放的地址。

如:MOVA,#50H

編碼為01110100B,01010000B。其十六進(jìn)制表示為74H,50H。操作數(shù)01010000MOVA,#50H操作碼011101003.1.2MCS-51單片機指令格式*

三字節(jié)指令

指令的第一字節(jié)表示該指令的操作碼,后兩個字節(jié)表示參與操作的數(shù)據(jù)或數(shù)據(jù)存放的地址。如:MOV20H,#50H

編碼為01110101B,00100000B,01010000B。可表示為75H,20H,50H。操作數(shù)00100000MOV20H,#50H操作碼01110101010100003.1.2MCS-51單片機指令格式*3.1.3指令系統(tǒng)微處理器(包括單片機)所有指令的集合稱為該機器的指令系統(tǒng)。

MCS-51系列單片機使用42種助記符,有51種基本操作。通過助記符及指令中的源操作數(shù)和目的操作數(shù)的不同組合構(gòu)成了MCS-51的111條指令。

MCS-51的指令系統(tǒng)按字節(jié)數(shù)分為:單字節(jié)指令49條,雙字節(jié)指令45條,三字節(jié)指令17條;按指令執(zhí)行的周期劃分:有57條一周期指令,52條兩周期指令,2條四周期指令。當(dāng)主頻為12MHz時,單周期指令的執(zhí)行時間為1μs。*3.1.4指令系統(tǒng)說明Rn(n=0~7)--選定當(dāng)前寄存區(qū)的寄存器R0-R7。Ri(i=0,1)--通過寄存器R0和R1的內(nèi)容間接尋址片內(nèi)RAM單元。

(X)--表示×地址單元或寄存器中的內(nèi)容。((X))--表示以X或寄存器中的內(nèi)容為地址間接尋址單元的內(nèi)容?!?-數(shù)據(jù)傳輸?shù)姆较?/p>

?!?-當(dāng)前指令的地址。

/--位操作數(shù)前綴,表示取反。1.常用符號*direct--直接地址。一個內(nèi)部RAM單元的地址或一個特殊功能寄存器。

#data8--8位常數(shù),也稱立即數(shù),#為立即數(shù)前綴。#data16--16位立即數(shù)。addr16--16位目的地址。供轉(zhuǎn)移或調(diào)用指令使用。addr11--11位目的地址。rel--8位帶符號偏移量(以二進(jìn)制補碼表示),常用于相對轉(zhuǎn)移指令。

bit--位地址。用于位操作指令。

(可用符號名稱表示)。C--最高進(jìn)位標(biāo)志位或布爾處理器的累加器。?--數(shù)據(jù)交換。

3.1.4指令系統(tǒng)說明*2.匯編語言的數(shù)據(jù)形式匯編語言的數(shù)據(jù)可以有以下幾種表示形式:

二進(jìn)制數(shù):末尾以字母B標(biāo)識。如10110110B;3.1.4指令系統(tǒng)說明十進(jìn)制數(shù):末尾以字母D標(biāo)識或?qū)⒆帜甘÷?。如?6D,7F十六進(jìn)制數(shù):末尾以字母H標(biāo)識。如:46H,0F8H,注意:十六進(jìn)制數(shù)以字母A~F開頭時,須在前面加上數(shù)字“0”。

*3.2MCS—51單片機的尋址方式

尋址方式:尋找操作數(shù)或操作數(shù)所在的地址的方式。

尋址方式有七種,即:寄存器尋址、直接尋址、寄存器間接尋址、立即尋址、基址寄存器加變址寄存器變址尋址、相對尋址和位尋址。

若不特別聲明,我們后面提到的尋址方式均指源操作數(shù)的尋址方式。*尋址方式及對應(yīng)的存儲器空間尋址方式尋址空間立即尋址程序存儲器直接尋址片內(nèi)RAM低128字節(jié)、SFR寄存器尋址工作寄存器R0~R7,A,B,DPTR寄存器間址片內(nèi)RAM:@R0,@R1,SP片外RAM:@R0,@R1,@DPTR變址尋址程序存儲器:@A+PC,@A+DPTR相對尋址程序存儲器256字節(jié)范圍內(nèi):PC+偏移量位尋址片內(nèi)RAM的位尋址區(qū)(20H~2FH字節(jié)地址)可位尋址的SFR*

編碼中直接給出操作數(shù)。操作碼之后的操作數(shù)稱為立即數(shù)。以“#”號標(biāo)識。3.2.1立即尋址

尋址空間:ROM立即數(shù)單字節(jié)、雙字節(jié)標(biāo)識:#

源操作數(shù)例如:MOVA,#40HMOVDPTR,#TABLE ;TABLE為標(biāo)號地址

MOV

溫馨提示

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

最新文檔

評論

0/150

提交評論