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

下載本文檔

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

文檔簡介

單片機(jī)原理與應(yīng)用

(多學(xué)時)單片機(jī)原理與應(yīng)用(多學(xué)時)第1章計算機(jī)基礎(chǔ)知識第5章

定時器和計數(shù)器

第4章匯編語言程序設(shè)計第3章指令系統(tǒng)

第2章MCS-51單片機(jī)的基本結(jié)構(gòu)第6章MCS-51單片機(jī)的中斷系統(tǒng)

第10章單片機(jī)應(yīng)用系統(tǒng)設(shè)計

第9章接口技術(shù)第8章單片機(jī)系統(tǒng)的擴(kuò)展第7章串行口返回第1章計算機(jī)基礎(chǔ)知識計算機(jī)中的數(shù)制和編碼

1.1計算機(jī)的基本結(jié)構(gòu)及工作原理

1.2單片機(jī)的基本概念

1.31.1.1計算機(jī)中數(shù)據(jù)存儲的組織形式

在計算機(jī)內(nèi)部所有的數(shù)據(jù),無論是程序還是圖像都是以二進(jìn)制形式存放的?,F(xiàn)在介紹計算機(jī)中數(shù)據(jù)的組織形式。1.位(bit)2.字節(jié)(Byte)3.字(word)4.字長

1.1計算機(jī)中的數(shù)制和編碼

第1章計算機(jī)基礎(chǔ)知識

1.1.2字符的二進(jìn)制編碼

字符是計算機(jī)的主要處理對象,這里的字符包括西文字符(字母、數(shù)字、符號等)和中文字符。由于計算機(jī)中的數(shù)據(jù)都是采用二進(jìn)制的方式進(jìn)行存放和處理的,因此字符也只有按照這個規(guī)律進(jìn)行二進(jìn)制編碼才能進(jìn)入計算機(jī)。由于西文和中文字符的形式不同,所以使用的編碼有很大的不同。第1章計算機(jī)基礎(chǔ)知識1.1計算機(jī)中的數(shù)制和編碼

1.1.3進(jìn)位計數(shù)制按進(jìn)位的原則進(jìn)行計算的方法稱為進(jìn)位計數(shù)制。人們平時用得最多的是十進(jìn)制,而計算機(jī)中存放的是二進(jìn)制數(shù),為了方便使用,同時還引入了八進(jìn)制和十六進(jìn)制。在一種數(shù)制中,只能使用一組固定的數(shù)字符號表示數(shù)目的大小,具體使用多少個數(shù)字或符號就稱為該數(shù)制的基數(shù)。例如,十進(jìn)制的基數(shù)是10,二進(jìn)制的基數(shù)是2。而數(shù)制中每一固定位置對應(yīng)的單位值稱為權(quán)。第1章計算機(jī)基礎(chǔ)知識1.1計算機(jī)中的數(shù)制和編碼

1.1.4編碼

計算機(jī)處理的信息都是以二進(jìn)制數(shù)碼的形式存在的。但人們編制程序、識別處理結(jié)果時,輸入輸出的信息通常都采用英文字母、阿拉伯?dāng)?shù)字和各種常用的符號。它們只有用特定的二進(jìn)制形式來表示才能被計算機(jī)所識別,這種用二進(jìn)制形式表示的數(shù)據(jù)就是二進(jìn)制編碼。第1章計算機(jī)基礎(chǔ)知識1.1計算機(jī)中的數(shù)制和編碼

一個完整的計算機(jī)系統(tǒng)由硬件系統(tǒng)和軟件系統(tǒng)兩部分組成。硬件系統(tǒng)是組成計算機(jī)的物理設(shè)備的總稱,它由各種器件和電子線路組成,是計算機(jī)完成計算工作的物質(zhì)基礎(chǔ)。軟件系統(tǒng)是在計算機(jī)硬件設(shè)備上運行的各種程序及相關(guān)的數(shù)據(jù)總稱。硬件系統(tǒng)是支撐軟件運行的物質(zhì)基礎(chǔ),沒有足夠的硬件支持,軟件就無法正常工作。軟件不僅提高了機(jī)器的效率、擴(kuò)展了硬件功能,也方便了用戶使用。沒有軟件的計算機(jī)稱為裸機(jī),裸機(jī)是無法工作的。硬件系統(tǒng)和軟件系統(tǒng)在計算機(jī)系統(tǒng)中相輔相承缺一不可,它們的有機(jī)結(jié)合才是一個完整的計算機(jī)系統(tǒng)。第1章計算機(jī)基礎(chǔ)知識1.2計算機(jī)的基本結(jié)構(gòu)及工作原理1.2.1計算機(jī)系統(tǒng)的組成原理第1章計算機(jī)基礎(chǔ)知識1.2計算機(jī)的基本結(jié)構(gòu)及工作原理馮·諾依曼的主要貢獻(xiàn)包括:(1)計算機(jī)有5個基本組成部分:運算器、控制器、存儲器、輸入設(shè)備和輸出設(shè)備。(2)采用存儲程序控制的方式,(3)計算機(jī)內(nèi)部數(shù)據(jù)組織采用二進(jìn)制編碼方式。

1.2.2硬件系統(tǒng)

馮·諾依曼提出的計算機(jī)“存儲程序控制”的工作原理決定了計算機(jī)由5部分組成:運算器、控制器、存儲器、輸入設(shè)備和輸出設(shè)備。

第1章計算機(jī)基礎(chǔ)知識1.2計算機(jī)的基本結(jié)構(gòu)及工作原理第1章計算機(jī)基礎(chǔ)知識返回1.2計算機(jī)的基本結(jié)構(gòu)及工作原理1.運算器運算器也稱為算術(shù)邏輯單元(ArithmeticLogicUnit,ALU),它的作用就是進(jìn)行算術(shù)運算和邏輯運算。算術(shù)運算是〖JP2〗指加、減、乘、除等四則運算,而邏輯運算就是指“與”、“或”、“非”、“比較”等運算。2.控制器控制器的基本功能是從內(nèi)存存取指令和執(zhí)行指令,向其他的部件發(fā)出控制信號,指揮計算機(jī)各部件協(xié)同工作。運算器和控制器合在一起被稱為中央處理單元(CentralProcessingUnit,CPU)。在微型計算機(jī)中,運算器和控制器一般集成在一片芯片上,制成大規(guī)模集成電路,因此,CPU常常又被稱為微處理器。第1章計算機(jī)基礎(chǔ)知識1.2計算機(jī)的基本結(jié)構(gòu)及工作原理3.存儲器存儲器是計算機(jī)的記憶部件,用于存儲計算機(jī)中的程序和數(shù)據(jù)。存儲器分為兩部分:內(nèi)部存儲器和外部存儲器,簡稱為內(nèi)存和外存。1)內(nèi)部存儲器內(nèi)部存儲器簡稱內(nèi)存,又稱為主存,主要用于存放計算機(jī)中要執(zhí)行的程序和數(shù)據(jù),一般由半導(dǎo)體器件構(gòu)成。2)外部存儲器外部存儲器簡稱外存,又稱輔存,主要用來存儲用戶所需的大量數(shù)據(jù)。其特點是存儲容量大、可靠性高、價格低。常用的外存是磁盤、光盤、閃盤(優(yōu)盤)等。4.輸入設(shè)備輸入設(shè)備用來接受用戶輸入的原始數(shù)據(jù)和程序,并將它們轉(zhuǎn)變?yōu)橛嬎銠C(jī)可以識別的形式(二進(jìn)制)存放到內(nèi)存中。5.輸出設(shè)備輸出設(shè)備是將存放在內(nèi)存中由計算機(jī)處理的結(jié)果轉(zhuǎn)換為人們所能接受的形式的設(shè)備。常用的輸出設(shè)備有顯示器、打印機(jī)等。第1章計算機(jī)基礎(chǔ)知識1.2計算機(jī)的基本結(jié)構(gòu)及工作原理

1.2.3軟件系統(tǒng)計算機(jī)的軟件系統(tǒng)是程序和程序運行所需要的數(shù)據(jù)以及開發(fā)、使用和維護(hù)這些程序所需要的文檔的集合。軟件內(nèi)容豐富、種類繁多,根據(jù)軟件的用途可將其分為系統(tǒng)軟件和應(yīng)用軟件兩大類。1.系統(tǒng)軟件系統(tǒng)軟件是指控制計算機(jī)的運行、管理計算機(jī)的各種資源并為應(yīng)用軟件提供支持和服務(wù)的一類軟件,是保證計算機(jī)系統(tǒng)正常工作必須配備的基本軟件。系統(tǒng)軟件通常包括操作系統(tǒng)、計算機(jī)語言和各種服務(wù)性程序。第1章計算機(jī)基礎(chǔ)知識1.2計算機(jī)的基本結(jié)構(gòu)及工作原理1)操作系統(tǒng)操作系統(tǒng)是管理、監(jiān)控和維護(hù)計算機(jī)系統(tǒng)的軟、硬件資源,它使計算機(jī)充分高效地工作,并使用戶合理有效地利用這些資源的程序。操作系統(tǒng)是系統(tǒng)軟件的核心,是現(xiàn)在計算機(jī)的必備軟件。2)計算機(jī)語言使計算機(jī)能識別并執(zhí)行的信息符號代碼的集合稱為計算機(jī)語言。計算機(jī)語言可以分為三大類:機(jī)器語言、匯編語言和高級語言。3)服務(wù)性程序服務(wù)性程序是指協(xié)助用戶進(jìn)行軟件開發(fā)和硬件維護(hù)的軟件,如各種開發(fā)調(diào)試工具軟件、編輯程序、診斷程序等。第1章計算機(jī)基礎(chǔ)知識1.2計算機(jī)的基本結(jié)構(gòu)及工作原理2.應(yīng)用軟件應(yīng)用軟件是在系統(tǒng)軟件基礎(chǔ)上為解決用戶的具體問題,面向某個領(lǐng)域而設(shè)計的軟件。1)辦公軟件辦公軟件包括文字處理、桌面排版、電子表格、商務(wù)圖表、演示軟件等。為了方便用戶維護(hù)數(shù)據(jù),一般辦公軟件還提供了小型的數(shù)據(jù)庫管理系統(tǒng)。常見的辦公軟件有MicrosoftOffice等。2)圖形和圖像處理軟件圖形和圖像處理軟件主要用來處理計算機(jī)中的圖形和圖像,其中圖像處理是人們生活中最常見的。3)Internet服務(wù)軟件Internet服務(wù)軟件主要包括WWW瀏覽器、電子郵件、文件傳輸?shù)龋@些軟件的出現(xiàn)使人們很輕松方便地使用Internet。第1章計算機(jī)基礎(chǔ)知識1.2計算機(jī)的基本結(jié)構(gòu)及工作原理1.2.4微型計算機(jī)的工作原理

CPU、存儲器、I/O接口機(jī)外部設(shè)備構(gòu)成了微型計算機(jī)的硬件,要是計算機(jī)有效地工作,還必須有軟件(即程序)的配合。當(dāng)使用微型計算機(jī)來完成某項任務(wù)時,首先要把結(jié)算方法按步驟編寫成計算機(jī)能識別并能執(zhí)行的相應(yīng)操作命令序列,即程序,其中機(jī)器可以識別的每一條基本操作命令就是一條指令,可見程序是一串按一定順序排列起來的指令集合。只要把程序由輸入設(shè)備通過I/O接口存儲到存儲器中,一旦啟動計算機(jī),它便能按照程序安排的順序執(zhí)行指令,從而完成既定任務(wù)。下面以微型計算機(jī)執(zhí)行第N條指令的工作過程來說明計算機(jī)的工作原理。第1章計算機(jī)基礎(chǔ)知識1.2計算機(jī)的基本結(jié)構(gòu)及工作原理1.3.1單片機(jī)的發(fā)展自1976年9月Intel公司推出MCS-48單片機(jī)以來,單片機(jī)就受到了廣大用戶的歡迎,因此,有關(guān)公司都爭相推出各自的單片機(jī)。如GI公司推出PIC1650系列單片機(jī),Rockwell公司推出了與6502微處理器兼容的R6500系列單片機(jī)。它們都是8位機(jī),片內(nèi)有8位中央處理器(CPU)、并行I/O端口、8位定時器/計數(shù)器和容量有限的存儲器(RAM、ROM)以及簡單的中斷功能。第1章計算機(jī)基礎(chǔ)知識1.3單片機(jī)的基本概念1978年下半年Motorola公司推出M6800系列單片機(jī),Zilog公司隨后推出Z8系列單片機(jī)。1980年Intel公司在MCS48系列基礎(chǔ)上又推出了高性能的MCS-51系列單片機(jī),這類單片機(jī)均帶有串行I/O端口,定時器/計數(shù)器為16位,片內(nèi)存儲容量(RAM,ROM)都相應(yīng)增大,并有優(yōu)先級中斷處理功能,單片機(jī)的功能、尋址范圍都比早期的擴(kuò)大了,它們是當(dāng)時單片機(jī)應(yīng)用的主流產(chǎn)品。目前,國際市場上8位、16位單片機(jī)系列已有很多,但是,在國內(nèi)使用較多的系列是Intel公司的產(chǎn)品,其中MCS-51系列單片機(jī)應(yīng)用尤為廣泛,幾十年經(jīng)久不衰,而且還在進(jìn)一步發(fā)展完善,價格越來越低,性能越來越好。單片機(jī)技術(shù)正以驚人的速度向前發(fā)展。第1章計算機(jī)基礎(chǔ)知識

1.3單片機(jī)的基本概念

第1章計算機(jī)基礎(chǔ)知識

1.3單片機(jī)的基本概念1.3.2單片機(jī)的特點單片機(jī)就相當(dāng)于一臺微型計算機(jī)。由于單片機(jī)的這種特殊的結(jié)構(gòu)以及它所采取的半導(dǎo)體工藝,使其具有許多顯著的特點。在某些應(yīng)用領(lǐng)域,它甚至承擔(dān)了大、中型計算機(jī)和常用計算機(jī)無法完成的一些工作,在各個領(lǐng)域都得到了廣泛的應(yīng)用。單片機(jī)的特點可以概括為以下4點:(1)優(yōu)異的性價比。(2)集成度高、體積小、可靠性高。(3)運行速度快、控制功能強(qiáng)。(4)開發(fā)使用方便、易于產(chǎn)品化。1.3.3.單片機(jī)的應(yīng)用領(lǐng)域單片機(jī)的應(yīng)用范圍十分廣泛,主要的應(yīng)用領(lǐng)域有:(1)工業(yè)控制(2)儀器儀表(3)計算機(jī)外部設(shè)備與智能接口(4)商用產(chǎn)品(5)家用電器

第1章計算機(jī)基礎(chǔ)知識1.3單片機(jī)的基本概念第1章計算機(jī)基礎(chǔ)知識

1.3單片機(jī)的基本概念1.3.3.單片機(jī)的應(yīng)用領(lǐng)域單片機(jī)的應(yīng)用范圍十分廣泛,主要的應(yīng)用領(lǐng)域有:(1)工業(yè)控制(2)儀器儀表(3)計算機(jī)外部設(shè)備與智能接口(4)商用產(chǎn)品(5)家用電器第2章MCS-51單片機(jī)的基本結(jié)構(gòu)

MCS-51單片機(jī)的基本組成

2.1MCS-51單片機(jī)的中央處理器、時鐘及時序

2.2MCS-51單片機(jī)的中央處理器、時鐘及時序

2.3返回MCS-51單片機(jī)的并行I/O口2.4MCS-51單片機(jī)的復(fù)位及復(fù)位電路

2.52.1.1單片機(jī)的硬件結(jié)構(gòu)

8051單片機(jī)的硬件結(jié)構(gòu)如圖2-1所示。

2.1MCS-51單片機(jī)的基本組成第2章MCS-51單片機(jī)的基本結(jié)構(gòu)返回1.中央處理器中央處理器(CPU)由運算器和控制器構(gòu)成,是單片機(jī)的核心部分。它的主要功能是讀入并分析每條指令,根據(jù)指令的功能,控制單片機(jī)的各功能部件執(zhí)行指定的操作。2.片內(nèi)存儲器單片機(jī)內(nèi)部存儲器的主要功能是存放程序和數(shù)據(jù)。存儲器按其存取方式可以分成兩大類:一類是隨機(jī)存取存儲器(randomaccessmemory,RAM),主要用于存放暫存數(shù)據(jù)及調(diào)試程序,所以又稱為數(shù)據(jù)存儲器;另一類是只讀存儲器(readonlymemory,ROM),主要用于存放常數(shù)及固定程序,又稱為程序存儲器。

第2章MCS-51單片機(jī)的基本結(jié)構(gòu)2.1MCS-51單片機(jī)的基本組成根據(jù)存儲器編程結(jié)構(gòu)也可將存儲器分為兩種。(1)普林斯頓結(jié)構(gòu):ROM和RAM安排在同一空間的不同范圍(統(tǒng)一編址)。(2)哈佛結(jié)構(gòu):ROM和RAM分別在兩個獨立的空間(分開編址)。MCS-51單片機(jī)采用的是哈佛結(jié)構(gòu),而MCS-96、8086等采用的是普林斯頓結(jié)構(gòu)。

第2章MCS-51單片機(jī)的基本結(jié)構(gòu)2.1MCS-51單片機(jī)的基本組成3.定時器/計數(shù)器8051單片機(jī)有兩個16位的可編程定時器/計數(shù)器T0和T1,用于精確定時或?qū)ν獠渴录M(jìn)行計數(shù)。4.并行I/O端口8051單片機(jī)有4個8位的并行端口(P0、P1、P2、P3),每個并行端口各有8根I/O口線,可單獨操作每根口線。5.串行口8051單片機(jī)提供全雙工串行I/O口,可與外設(shè)進(jìn)行串行通信,也可用于擴(kuò)展I/O口。6.中斷系統(tǒng)8051單片機(jī)提供5個中斷源,具有兩個優(yōu)先級,可形成中斷嵌套。8051單片機(jī)以上功能部件均通過內(nèi)部三總線相連,構(gòu)成一個整體。與8051稍有不同,8751單片機(jī)的內(nèi)部有4KB的EPROM,作為程序存儲器;8031單片機(jī)內(nèi)部則沒有程序存儲器,使用時必須在外部擴(kuò)展。

第2章MCS-51單片機(jī)的基本結(jié)構(gòu)返回2.1MCS-51單片機(jī)的基本組成

2.1.2單片機(jī)的片外總線與引腳功能

1.MCS-51單片機(jī)的引腳分布MCS-51系列單片機(jī)的引腳的封裝有兩種形式:雙列直插式封裝(DIP)和方形封裝。MCS-51單片機(jī)采用兩種半導(dǎo)體工藝生成:一種是HMOS工藝,另一種是CHMOS工藝。HMOS工藝的MCS-51系列單片機(jī)采用雙列直插式封裝,有4個并行I/O端口,每個端口都有8條端口線,可分別用做地址線、數(shù)據(jù)線和I/O線,另外還有6根控制信號線和兩根電源線,如下圖所示。大多數(shù)CHMOS工藝的單片機(jī)(在型號中間加C作為標(biāo)識,如80C51)采用方形封裝形式。第2章MCS-51單片機(jī)的基本結(jié)構(gòu)2.1MCS-51單片機(jī)的基本組成2.1MCS-51單片機(jī)的基本組成2.2MCS-51單片機(jī)的中央處理器、時鐘及時序第2章MCS-51單片機(jī)的基本結(jié)構(gòu)

2.2.1中央處理器中央處理器主要由運算器和控制器構(gòu)成,它決定了單片機(jī)的主要性能。1.運算器運算器以算術(shù)/邏輯單元(ALU)為核心。由累加器(ACC)、寄存器(B)、暫存器1、暫存器2、程序狀態(tài)字寄存器(PSW)等許多部件構(gòu)成。它的功能是完成算術(shù)和邏輯運算、位變量處理和數(shù)據(jù)傳送等操作。

2.控制器控制器是單片機(jī)的神經(jīng)中樞,是由程序計數(shù)器(PC)、指令寄存器(IR)、指令譯碼器(ID)、堆棧指針(SP)、數(shù)據(jù)指針(DPTR)、定時及控制邏輯電路等組成。它先以主振頻率為基準(zhǔn)發(fā)出CPU的時序,對指令進(jìn)行譯碼,然后發(fā)出各種控制信號,完成一系列定時控制的微操作,用來協(xié)調(diào)單片機(jī)內(nèi)部各功能部件之間的數(shù)據(jù)傳送、數(shù)據(jù)運算等操作。第2章MCS-51單片機(jī)的基本結(jié)構(gòu)2.2MCS-51單片機(jī)的中央處理器、時鐘及時序第2章MCS-51單片機(jī)的基本結(jié)構(gòu)返回2.2MCS-51單片機(jī)的中央處理器、時鐘及時序2.2.2時鐘電路與時序1.8051的時鐘產(chǎn)生方式8051的時鐘產(chǎn)生方式分為內(nèi)部振蕩方式和外部時鐘方式兩種。如圖2-4(a)所示為內(nèi)部振蕩方式,利用單片機(jī)內(nèi)部的反向放大器構(gòu)成振蕩電路,在振蕩器輸入端XTAL1和輸出端XTAL2的引腳上外接定時元件,內(nèi)部振蕩器產(chǎn)生自激振蕩。如圖2-4(b)所示為外部時鐘方式,是把外部已有的時鐘信號引入到單片機(jī)內(nèi)。此方式常用于多片8051單片機(jī)同時工作,以便于各單片機(jī)的同步。一般要求外部信號高電平的持續(xù)時間大于20ns,且為頻率低于12MHz的方波。第2章MCS-51單片機(jī)的基本結(jié)構(gòu)2.2MCS-51單片機(jī)的中央處理器、時鐘及時序第2章MCS-51單片機(jī)的基本結(jié)構(gòu)2.2MCS-51單片機(jī)的中央處理器、時鐘及時序8051單片機(jī)的內(nèi)部振蕩時鐘產(chǎn)生電路如圖2-5所示,晶振頻率經(jīng)分頻器二分頻后形成兩相錯開的時鐘信號P1和P2。時鐘信號的周期稱為時鐘周期,也稱為機(jī)器狀態(tài)周期。在每個時鐘周期的前半周期,相位1(P1)信號有效,在每個時鐘周期的后半周期,相位2(P2)信號有效。2.3MCS-51單片機(jī)的存儲組織第2章MCS-51單片機(jī)的基本結(jié)構(gòu)2.3.1存儲器空間對于RAM,CPU在運行過程中能隨時進(jìn)行數(shù)據(jù)的寫入和讀出,但在關(guān)閉電源時,其所存儲的信息將丟失。

ROM是一種寫入信息后不能改寫、只能讀出的存儲器。斷電后,ROM中的信息保留不變。ROM常被稱為程序存儲器。MCS-51系列單片機(jī)的存儲器地址空間可分為5塊:(1)片內(nèi)程序存儲器地址空間。(2)片外程序存儲器地址空間。(3)特殊功能寄存器地址空間。(4)片內(nèi)數(shù)據(jù)存儲器地址空間。(5)片外數(shù)據(jù)存儲器地址空間。其中,(1)和(2)統(tǒng)一編址,(3)和(4)統(tǒng)一編址,(5)與(3)、(4)分開編址。2.3MCS-51單片機(jī)的存儲組織第2章MCS-51單片機(jī)的基本結(jié)構(gòu)2.3.2程序存儲器8051單片機(jī)的程序存儲器有片內(nèi)和片外之分。片內(nèi)有4KB的程序存儲器,地址范圍為0000H~0FFFH。當(dāng)不夠使用時,可以擴(kuò)展片外程序存儲器,因為MCS-51單片機(jī)的程序計數(shù)器PC是16位的計數(shù)器,所以片外程序存儲器擴(kuò)展的最大空間是64KB,地址范圍為0000H~0FFFFH。2.3MCS-51單片機(jī)的存儲組織第2章MCS-51單片機(jī)的基本結(jié)構(gòu)2.3.3數(shù)據(jù)存儲器MCS-51的數(shù)據(jù)存儲器分為片外RAM和片內(nèi)RAM。片外RAM地址空間為64KB,地址范圍是0000H~0FFFFH。片內(nèi)RAM地址空間為128B,地址范圍是00H~7FH(與片內(nèi)特殊功能寄存器SFR統(tǒng)一編址,特殊功能寄存器SFR在后面單獨介紹)。在8051單片機(jī)中,盡管片內(nèi)RAM的容量不大,但它的功能多,使用靈活。片內(nèi)RAM共有128B,分成工作寄存器區(qū)、位地址區(qū)和通用RAM區(qū)。1.工作寄存器區(qū)2.位地址區(qū)3.通用RAM區(qū)(數(shù)據(jù)緩沖器區(qū))4.片外數(shù)據(jù)存儲器2.3MCS-51單片機(jī)的存儲組織第2章MCS-51單片機(jī)的基本結(jié)構(gòu)2.3.4特殊功能寄存器MCS-51內(nèi)部設(shè)置了21個特殊功能寄存器(SFR),離散地分布在80H~0FFH的地址空間中。下面對常用的特殊功能寄存器作簡單介紹。1)累加器ACC2)寄存器B3)程序狀態(tài)字寄存器PSW4)堆棧指針SP5)數(shù)據(jù)指針DPTR6)I/O口寄存器2.4MCS-51單片機(jī)的并行I/O口第2章MCS-51單片機(jī)的基本結(jié)構(gòu)2.4.1P0口的結(jié)構(gòu)和功能P0口是一個三態(tài)雙向I/O口,它有兩種不同的功能,用于不同的工作環(huán)境。在不需要進(jìn)行外部ROM、RAM等擴(kuò)展時,作為通用的I/O口使用。在需要進(jìn)行外部ROM、RAM等擴(kuò)展時,采用分時復(fù)用的方式,通過地址鎖存器后作為地址總線的低8位和8位數(shù)據(jù)總線。P0口的輸出端具有驅(qū)動8個LSTTL負(fù)載的能力。第2章MCS-51單片機(jī)的基本結(jié)構(gòu)2.4.2P1口的結(jié)構(gòu)和功能P1口也是一個準(zhǔn)雙向口,只作為通用的I/O口使用,其功能與P0口的第一功能相同。作為輸出口使用時,由于其內(nèi)部有上拉電阻,所以不需外接上拉電阻;作為輸入口使用時,必須先向鎖存器寫入1,使場效應(yīng)管截止,然后才能讀取數(shù)據(jù)。P1口能帶3~4個TTL負(fù)載。2.4MCS-51單片機(jī)的并行I/O口第2章MCS-51單片機(jī)的基本結(jié)構(gòu)2.4.3P2口的結(jié)構(gòu)和功能P2口是一個準(zhǔn)雙向口,它有兩種功能:一種是在不需要進(jìn)行外部ROM、RAM等擴(kuò)展時,作為通用的I/O口使用,其功能和原理與P0口功能相同,只是作為輸出口時不需外接上拉電阻;另一種是當(dāng)系統(tǒng)進(jìn)行外部ROM、RAM等擴(kuò)展時,P2口作為系統(tǒng)擴(kuò)展的地址總線口使用,輸出高8位的地址A15~A7,與P0口作為地址/數(shù)據(jù)總線使用時輸出的低8位地址相配合,共同訪問外部程序或數(shù)據(jù)存儲器(64KB),但它只確定地址,并不能像P0口那樣還可以傳送存儲器的讀寫數(shù)據(jù)。P2口能帶3~4個TTL負(fù)載。2.4MCS-51單片機(jī)的并行I/O口第2章MCS-51單片機(jī)的基本結(jié)構(gòu)2.4.4P3口的結(jié)構(gòu)和功能P3口是一個多功能的準(zhǔn)雙向口。第一功能是作為通用的I/O口使用,其功能和原理與P1口相同。第二功能是作為控制和特殊功能口使用,這時8條端口線所定義的功能各不相同。P3口能帶3~4個TTL負(fù)載。2.4MCS-51單片機(jī)的并行I/O口第2章MCS-51單片機(jī)的基本結(jié)構(gòu)2.5.1復(fù)位狀態(tài)復(fù)位就是使中央處理器(CPU)以及其他功能部件都恢復(fù)到一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。單片機(jī)在開機(jī)時或在工作中因干擾而使程序失控或工作中程序處于某種死循環(huán)狀態(tài)等情況下都需要復(fù)位。MCS-51單片機(jī)的復(fù)位靠外部電路實現(xiàn),信號由RESET(RST)引腳輸入,高電平有效,在振蕩器工作時,只要保持RST引腳高電平兩個機(jī)器周期,單片機(jī)即復(fù)位。復(fù)位后,PC程序計數(shù)器的內(nèi)容為0000H,即復(fù)位后將從程序存儲器的0000H單元讀取第一條指令碼。復(fù)位后,程序存儲器內(nèi)容不變。片內(nèi)RAM和片外RAM的內(nèi)容在上電復(fù)位后為隨機(jī)數(shù),而在手動復(fù)位后,原數(shù)據(jù)保持不變。2.5MCS-51單片機(jī)的復(fù)位及復(fù)位電路第2章MCS-51單片機(jī)的基本結(jié)構(gòu)2.5MCS-51單片機(jī)的復(fù)位及復(fù)位電路2.5.2復(fù)位電路MCS-51系列單片機(jī)的復(fù)位信號由RST引腳輸入,高電平有效。當(dāng)RST引腳輸入高電平并保持兩個機(jī)器周期以上時,單片機(jī)內(nèi)部就會執(zhí)行復(fù)位操作。若RST引腳一直保持高電平,那么,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)。為了保證復(fù)位成功,一般復(fù)位引腳RST上只要出現(xiàn)10ms以上的高電平,單片機(jī)就實現(xiàn)了可靠復(fù)位。第3章指令系統(tǒng)

MCS-51系列單片機(jī)指令系統(tǒng)概述

3.1MCS-51系列單片機(jī)的指令分類

3.2返回實例解析3.3MCS-51系列單片機(jī)的指令系統(tǒng)中,共有111條指令,按照功能可分為五大類。(1)數(shù)據(jù)傳送類指令29條,分別為片內(nèi)RAM,片外RAM,程序存儲器的傳送指令,交換及堆棧操作指令等。(2)算術(shù)運算類指令24條,分別為加、減、乘、除、帶進(jìn)位加、加1、減1指令等。(3)邏輯運算類指令24條,分別為邏輯與、或、異或、移位指令等。(4)控制轉(zhuǎn)移類指令17條,分別為無條件轉(zhuǎn)移與調(diào)用、條件轉(zhuǎn)移、空操作指令等。(5)布爾(位)操作指令17條,分別為位數(shù)據(jù)傳送、位與、位或、位轉(zhuǎn)移指令等。

3.1MCS-51系列單片機(jī)指令系統(tǒng)概述第3章指令系統(tǒng)

返回第3章指令系統(tǒng)

3.2MCS-51系列單片機(jī)的指令分類3.2.1數(shù)據(jù)傳送類指令數(shù)據(jù)傳送指令,能實現(xiàn)多種數(shù)據(jù)的傳送操作。數(shù)據(jù)傳送方向及相互關(guān)系如圖3-7所示。第3章指令系統(tǒng)

3.2.2算術(shù)運算類指令算術(shù)運算類指令都是通過算術(shù)邏輯運算單元ALU進(jìn)行數(shù)據(jù)運算處理的指令。它包括各種算術(shù)操作,其中有加、減、乘、除四則運算。這些運算指令大大加強(qiáng)了單片機(jī)的運算能力。但ALU僅執(zhí)行無符號二進(jìn)制整數(shù)的算術(shù)運算。對于帶符號數(shù)則要使用ADD、ADDC、INC、DA、SUBB、DEC、MUL、DIV等助記符。除了加1和減1指令之外,算術(shù)運算結(jié)果將使進(jìn)位標(biāo)志(CY)、半進(jìn)位標(biāo)志(AC)、溢出標(biāo)志(OV)置位或復(fù)位。MCS-51系列單片機(jī)還有帶借位減法、比較指令。加法類指令包括加法指令、帶進(jìn)位的加法指令、增量(加1)指令以及二—十進(jìn)制調(diào)整指令。3.2MCS-51系列單片機(jī)的指令分類第3章指令系統(tǒng)

3.2MCS-51系列單片機(jī)的指令分類3.2.3邏輯運算類指令邏輯運算類指令主要包括:與、或、異或、清除、求反、移位等,主要用于對兩個操作數(shù)進(jìn)行邏輯運算。操作結(jié)果保存到累加器A或直接尋址單元。該類指令執(zhí)行時一般不影響程序狀態(tài)字PSW,僅當(dāng)操作數(shù)為累加器A時將影響奇偶標(biāo)志位P,帶進(jìn)位的移位指令將影響CY位。該類指令的助記符主要有ANL、ORL、XRL、RL、RLC、RR、RRC、CPL、CLR等。第3章指令系統(tǒng)

3.2

MCS-51系列單片機(jī)的指令分類3.2.4控制轉(zhuǎn)移類指令程序的順序執(zhí)行是由PC自動加1來實現(xiàn)的,但在應(yīng)用系統(tǒng)中,往往會遇到一些情況,需要強(qiáng)迫改變程序執(zhí)行順序。例如,調(diào)用子程序或者需要根據(jù)檢測值與設(shè)定值的比較結(jié)果將程序轉(zhuǎn)移到不同的分支入口等,控制轉(zhuǎn)移類指令,可分為無條件轉(zhuǎn)移指令、條件轉(zhuǎn)移指令、循環(huán)轉(zhuǎn)移指令、子程序調(diào)用、返回指令及空操作指令等,但不包括布爾變量控制程序轉(zhuǎn)移指令??刂妻D(zhuǎn)移類指令采用的助記符有:AJMP、LJMP、SJMP、JZ、JNZ、CJNE、DJNZ、ACALL、LCALL、RET、RETI、NOP等。

·第3章指令系統(tǒng)

3.2

MCS-51系列單片機(jī)的指令分類3.2.5位操作類指令MCS-51系列單片機(jī)內(nèi)部有一個布爾(位)處理器,具有較強(qiáng)的布爾變量處理能力。布爾處理器實際上是一位的微處理機(jī),它以進(jìn)位標(biāo)志CY作為位累加器,以內(nèi)部RAM的20H至2FH單元及部分特殊功能寄存器為位存儲器,以P0、P1、P2、P3為位I/O。對位地址空間具有豐富的位操作指令,包括布爾傳送指令、布爾狀態(tài)控制指令、位邏輯操作指令及位條件轉(zhuǎn)移指令。助記符有MOV、CLR、CPL、SETB、ANL、ORL、JC、JNC、JB、JNB、JBC等11種。第3章指令系統(tǒng)

3.3實例解析【實例】對從P1口輸入的100個0~9的數(shù)進(jìn)行概率統(tǒng)計,統(tǒng)計的數(shù)值分別存入20H~29H單元中。第4章匯編語言程序設(shè)計

程序設(shè)計基礎(chǔ)

4.1順序結(jié)構(gòu)程序設(shè)計

4.2分支程序設(shè)計

4.3返回循環(huán)程序設(shè)計

4.4子程序設(shè)計

4.5單片機(jī)程序設(shè)計流程

4.6實例解析

4.7匯編語言具有以下幾個特點:

1.助記符指令與機(jī)器指令是一一對應(yīng)的,所以用匯編語言編寫的程序效率高,占用存儲空間小,運行速度快,而且能反映計算機(jī)的實際運行情況,所以用匯編語言能編寫出最優(yōu)化的程序。

2.匯編語言是“面向機(jī)器”的語言,編程比使用高級語言困難。

3.匯編語言能直接訪問存儲器、輸入與輸出接口及擴(kuò)展的各種芯片(例如,A/D、D/A等),也可直接處理中斷,因此匯編語言能直接管理和控制硬件設(shè)備。

4.匯編語言通用性差,匯編語言和機(jī)器語言一樣,都面向一臺具體的機(jī)器,不同的單片機(jī)具有不同的指令系統(tǒng),并且不能通用。4.1程序設(shè)計基礎(chǔ)

第4章匯編語言程序設(shè)計

返回目前,可用于程序設(shè)計的語言基本上可分為3種:機(jī)器語言、匯編語言和高級語言。這里重點介紹匯編語言。這三者之間的關(guān)系如圖4-1所示。

第4章匯編語言程序設(shè)計

4.1程序設(shè)計基礎(chǔ)

第4章匯編語言程序設(shè)計

返回4.1程序設(shè)計基礎(chǔ)

4.1.1匯編語言源程序設(shè)計的步驟1.程序結(jié)構(gòu)設(shè)計例如,編寫一個程序,該程序?qū)蓚€8位整數(shù)相乘,得到16位的乘積。單片機(jī)的輸入設(shè)備是8個旋鈕開關(guān)和一個按鈕。每輸入一個數(shù),是用戶通過開關(guān)送入二進(jìn)制數(shù),然后按一下按鈕。輸出設(shè)備是8個指示燈。做完乘法后,該指示燈顯示乘數(shù)和乘積。每一個數(shù)顯示10s,每個數(shù)字顯示后,指示燈關(guān)閉1s。這個非常簡單的程序可以分解為幾個相互有聯(lián)系的模塊,如圖4-2所示。主程序調(diào)用3個不同的子程序作為支援:(1)INSW:從開關(guān)讀入一個8位數(shù);(2)OUTDSP:用指示燈顯示一個8位數(shù);(3)DELAYN:延遲事先規(guī)定好的秒數(shù)。第4章匯編語言程序設(shè)計

返回4.1程序設(shè)計基礎(chǔ)

第4章匯編語言程序設(shè)計

返回4.1程序設(shè)計基礎(chǔ)

2.模塊設(shè)計程序結(jié)構(gòu)設(shè)計好后,就要進(jìn)一步進(jìn)行模塊設(shè)計。DELAYN子程序往往由延遲1s的DLIS子程序來形成。由于按鈕“接觸抖動”,在從開關(guān)讀入一個數(shù)據(jù)前,INSW子程序等待10ms,因此要用另一個子程序DLAY10M實現(xiàn),這樣得到最終程序結(jié)構(gòu)。3.開發(fā)方法開發(fā)一個程序的明智方法是分小段編碼,一般有以下兩種方法:(1)自底向上開發(fā):首先對最底層模塊進(jìn)行編碼、測試和調(diào)試。這些模塊正常工作后,就可以用它們來開發(fā)較高層的模塊。(2)自頂向下開發(fā):與自底向上開發(fā)方法相反,是首先對最高層進(jìn)行編碼和調(diào)試。第4章匯編語言程序設(shè)計

返回4.1程序設(shè)計基礎(chǔ)

4.1.2匯編語言的語法結(jié)構(gòu)匯編語言語句有3種基本類型:指令語句、偽指令和宏指令。指令語句由4個字段組成,匯編語言能對各種格式進(jìn)行識別,其格式如下:標(biāo)號(名字):操作碼操作數(shù)(參數(shù));注釋

在書寫匯編語言程序的時候,括號內(nèi)的部分可以根據(jù)情況取舍。各個字段之間要用分隔符分開。常用的分隔符有空格、冒號、逗號、分號等。第4章匯編語言程序設(shè)計

返回4.1程序設(shè)計基礎(chǔ)

【例4-1】編寫程序把片外存儲器2200H單元中的數(shù)送入片內(nèi)70H單元中。解:編程如下:標(biāo)號操作碼操作數(shù)注釋BEGIN:MOVDPTR,#2200H;(DPTR)=2200HMOVR0,#70H;(R0)=70HMOVXA,@DPTR;(A)=((DPTR))MOV@R0,A;((R0))=(A)第4章匯編語言程序設(shè)計

4.1.3匯編語言的偽指令1.匯編起始地址偽指令匯編起始地址偽指令的一般格式如下:ORG表達(dá)式該指令的功能是向匯編程序說明,下述程序段的起始地址由表達(dá)式指明。表達(dá)式通常為十六進(jìn)制的地址碼。4.1程序設(shè)計基礎(chǔ)

第4章匯編語言程序設(shè)計

4.1程序設(shè)計基礎(chǔ)

2.匯編結(jié)束偽指令匯編結(jié)束偽指令的一般格式如下:格式1:〈字符名稱〉END〈表達(dá)式〉格式2:〈字符名稱〉END或者END該指令是匯編語言源程序的結(jié)束標(biāo)志,在END以后所寫的指令,匯編程序都不予處理。因此,在一個源程序中只允許出現(xiàn)一個END語句,它必須放在整個程序的最后。3.賦值偽指令賦值偽指令的一般格式如下:〈字符名稱〉EQU〈表達(dá)式〉4.數(shù)據(jù)地址定義指令數(shù)據(jù)地址定義指令的一般格式如下:〈字符名稱〉DATA〈表達(dá)式〉DATA偽指令的功能與EQU有些相似,使用時要注意它們有以下區(qū)別:(1)EQU偽指令必須先定義后使用,而DATA偽指令可以后定義先使用;(2)用EQU偽指令可以把一個匯編符號賦給一個字符名稱,而DATA只能把數(shù)據(jù)賦給字符名稱;(3)DATA偽指令可將一個表達(dá)式的值賦給一個字符名稱,所定義的字符名稱也可以出現(xiàn)在表達(dá)式中,而EQU定義的字符則不能這樣使用。DATA偽指令在程序中常用來定義數(shù)據(jù)地址。5.定義標(biāo)號值偽指令定義標(biāo)號值偽指令的一般格式如下:〈字符名稱〉DL〈表達(dá)式〉4.1程序設(shè)計基礎(chǔ)

第4章匯編語言程序設(shè)計

4.2順序結(jié)構(gòu)程序設(shè)計單片機(jī)程序設(shè)計和其他程序設(shè)計一樣,程序結(jié)構(gòu)一般也采用以下3種基本控制結(jié)構(gòu),即順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。再加上使用廣泛的子程序及中斷服務(wù)子程序,共有5種基本結(jié)構(gòu)。所謂順序結(jié)構(gòu)是指按照邏輯操作順序,從某一條指令開始逐條順序執(zhí)行,直至某一條指令為止。下面以例題的形式介紹幾種順序結(jié)構(gòu)程序設(shè)計。第4章匯編語言程序設(shè)計

4.2順序結(jié)構(gòu)程序設(shè)計4.2.1數(shù)據(jù)傳送程序設(shè)計【例4-10】編程:現(xiàn)有兩個雙字節(jié)無符號數(shù),分別存放在R3、R4、R5、R6中,高字節(jié)在前,低字節(jié)在后,通過編程使兩數(shù)相加,和分別存放在20H、21H、22H單元中。解:這個程序比較簡單,求和的方法與筆算類似,先加低位后加高位,其程序段如下:ORG4000HCLRC;清CMOVA,R4;把被加數(shù)的低位放到AADDA,R6;將加數(shù)和被加數(shù)的低位相加MOV22H,A;把結(jié)果的低位存入22H單元MOVA,R3;把被加數(shù)的高位放到AADDCA,R5;將加數(shù)和被加數(shù)的高位相加并加低位和進(jìn)位MOV21H,A;把結(jié)果的高位存入21H單元MOVA,#00H;清AADDCA,#00H;加進(jìn)位MOV20H,A;存和的進(jìn)位END第4章匯編語言程序設(shè)計

4.2順序結(jié)構(gòu)程序設(shè)計【例4-11】編程:將R2與R3內(nèi)容互換,R4與內(nèi)存70H單元內(nèi)容互換。解:這個程序只需要利用交換指令和傳送指令就可以完成,其程序段如下:XCHR:MOVA,R2XCHA,R3XCHA,R2;R2與R3內(nèi)容互換MOVA,R4XCHA,70HXCHA,R4;R4與70H單元內(nèi)容互換第4章匯編語言程序設(shè)計

4.2順序結(jié)構(gòu)程序設(shè)計4.2.2算術(shù)運算程序設(shè)計【例4-12】若a、b、c三個數(shù)分別存放在存儲器40H、41H、42H三個單元中,試編寫計算Y=a+b-c的程序。根據(jù)流程圖,編寫Y=a+b-c源程序如下:ORG1000HSTART:MOVA,40H;將a送給AADDA,41H;將a+b送給ACLRC;清CSUBBA,42H;將(a+b)-c送給AMOV43H,A;將A送給43HEND第4章匯編語言程序設(shè)計

4.2順序結(jié)構(gòu)程序設(shè)計【例4-13】編程:設(shè)被加數(shù)存放于片內(nèi)RAM的20H(低位字節(jié))和21H(高位字節(jié)),加數(shù)存放于22H(低位字節(jié))和23H(高位字節(jié)),運算結(jié)果的和存放于20H(低位字節(jié))和21H(高位字節(jié))中。解:實現(xiàn)16位相加,其程序段如下:START:PUSHACC;將A中內(nèi)容進(jìn)棧保護(hù)MOVR0,20H;將20H地址中的內(nèi)容送R0MOVR1,22H;將22H地址的內(nèi)容送R1MOVA,@R0;被加數(shù)低字節(jié)內(nèi)容送AADDA,@R1;低字節(jié)數(shù)相加MOV@R0,A;低字節(jié)數(shù)和存20H中INCR0;指向被加數(shù)高位字節(jié)INCR1;指向加數(shù)高位字節(jié)MOVA,@R0;被加數(shù)高位字節(jié)送AADDCA,@R1;高字節(jié)數(shù)帶進(jìn)位相加MOV@R0,A;高字節(jié)數(shù)和存21H中CLRAADDCA,#00HMOV10H,A ;進(jìn)位暫存于10H中POPACC;恢復(fù)A原內(nèi)容第4章匯編語言程序設(shè)計

4.2順序結(jié)構(gòu)程序設(shè)計4.2.3延時程序設(shè)計有些情況可以不采用單片機(jī)內(nèi)的定時器/計數(shù)器作定時,而是采用軟件延時的辦法,執(zhí)行一段循環(huán)程序,而循環(huán)程序執(zhí)行的時間即為延時時間。【例4-14】采用查詢方式實現(xiàn)定時延時。解:編程如下:ORG0000HAJMPSTARTORG30HSTART:MOVP1,#0FFHMOVTMOD,#00000001BMOVTH0,#15HMOVTL0,#0A0H

SETBTR0LOOP:JBCTF0,NEXTAJMPLOOPNEXT:CPLP1.0MOVTH0,#15HMOVTL0,#9FHAJMPLOOPENDAJMPLOOP第4章匯編語言程序設(shè)計

4.2順序結(jié)構(gòu)程序設(shè)計【例4-15】采用中斷方式實現(xiàn)定時延時。解:編程如下:ORG000BHAJMPTIME0ORG30HSTART:MOVP1,#0FFHMOVTMOD,#00000001BMOVTH0,#15HMOVTL0,#0A0HSETBEASETBET0SETBTR0LOOP:AJMPLOOPTIME0:PUSHACCPUSHPSWCPLP1.0MOVTH0,#15HMOVTL0,#0A0HPOPPSWPOPACCRETIEND第4章匯編語言程序設(shè)計

4.3分支結(jié)構(gòu)程序設(shè)計4.3分支程序設(shè)計

在MCS51系列單片機(jī)的應(yīng)用系統(tǒng)中,不論是一個問題的求解,還是一個控制過程的實施,將會遇到多條路徑需要判斷、選擇;當(dāng)滿足一定條件時,程序執(zhí)行的方向?qū)l(fā)生變化,在程序設(shè)計中稱為分支程序。由分支程序的定義可以看出,分支程序是有條件的,根據(jù)不同的條件,執(zhí)行不同的指令,在匯編分支程序時,關(guān)鍵是如何判斷分支的條件。分支程序設(shè)計的技巧,就在于如何正確地應(yīng)用指令,實現(xiàn)對程序簡便而有效的控制。分支程序從結(jié)構(gòu)上分為單分支程序和多分支程序兩種情況。第4章匯編語言程序設(shè)計

4.3分支結(jié)構(gòu)程序設(shè)計1.單分支程序單分支程序結(jié)構(gòu)如圖4-5所示。如果給出的條件滿足要求,則轉(zhuǎn)向分支程序段A,執(zhí)行完分支程序段A后繼續(xù)執(zhí)行下一程序段;如果給出的條件不滿足要求,則不轉(zhuǎn)向,接著執(zhí)行下一程序段。第4章匯編語言程序設(shè)計

4.3分支結(jié)構(gòu)程序設(shè)計2.多分支程序多分支程序又稱散轉(zhuǎn)程序,它是根據(jù)輸入條件或者根據(jù)運算結(jié)果來確定轉(zhuǎn)向位置的處理程序。判斷一個分支條件無法解決的問題,需要判斷兩個或兩個以上的條件。多分支選擇結(jié)構(gòu)通常有兩種形式,如圖4-7所示。第4章匯編語言程序設(shè)計

4.3分支結(jié)構(gòu)程序設(shè)計8051單片機(jī)設(shè)有兩條多分支選擇指令:(1)散轉(zhuǎn)指令。格式如下:JMP@A+DPTR說明:散轉(zhuǎn)指令由數(shù)據(jù)指針DPTR決定多分支轉(zhuǎn)移程序的首地址,由累加器A中內(nèi)容動態(tài)地選擇對應(yīng)的分支程序。因此,可從多達(dá)256個分支中選1。(2)比較指令。格式如下:CJNEA,direct,rel(共有4條)第4章匯編語言程序設(shè)計

4.4循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)程序通常由以下幾個部分組成:(1)設(shè)置循環(huán)初值。(2)循環(huán)體。(3)修改循環(huán)控制變量。具體地說,就是每執(zhí)行一次循環(huán)指令,對地址指針做一次修改,使指針指向下一數(shù)據(jù)所在位置,為進(jìn)入下一輪循環(huán)體做準(zhǔn)備。(4)循環(huán)控制部分。循環(huán)控制部分是根據(jù)循環(huán)次數(shù)或循環(huán)結(jié)束條件,判斷是否繼續(xù)循環(huán)。若循環(huán)次數(shù)未達(dá)到規(guī)定值,則繼續(xù)循環(huán);若循環(huán)次數(shù)達(dá)到規(guī)定值則退出循環(huán)。(5)結(jié)束部分。第4章匯編語言程序設(shè)計

4.4循環(huán)結(jié)構(gòu)程序設(shè)計主機(jī)對循環(huán)程序的初始化和結(jié)束部分均只執(zhí)行一次,而對循環(huán)體和循環(huán)控制部分則常需重復(fù)執(zhí)行多次。不管條件如何,它至少執(zhí)行一次循環(huán)體。當(dāng)循環(huán)計數(shù)回“0”時,結(jié)束循環(huán)。循環(huán)體和循環(huán)控制這兩部分是循環(huán)程序的主體,是循環(huán)程序設(shè)計的重點。第4章匯編語言程序設(shè)計

4.4循環(huán)結(jié)構(gòu)程序設(shè)計右圖是條件循環(huán)結(jié)構(gòu)形式。條件循環(huán)先檢查控制條件是否成立,決定循環(huán)程序是否執(zhí)行。當(dāng)循環(huán)結(jié)束條件一開始就已成立,則循環(huán)體可能一次也不執(zhí)行。這是兩種不同結(jié)構(gòu)的本質(zhì)區(qū)別。第4章匯編語言程序設(shè)計

4.5子程序設(shè)計子程序在結(jié)構(gòu)上與主程序沒有根本的區(qū)別,子程序也可以由簡單結(jié)構(gòu)、分支結(jié)構(gòu)或循環(huán)結(jié)構(gòu)構(gòu)成。不同之處在于子程序在操作的過程中需要由其他程序來調(diào)用,執(zhí)行完以后又需要將執(zhí)行流程返回到調(diào)用該子程序的程序中。子程序的執(zhí)行過程如圖所示。第4章匯編語言程序設(shè)計

4.5子程序設(shè)計1.子程序調(diào)用的規(guī)則和應(yīng)該注意的地方在匯編語言源程序中調(diào)用子程序時,應(yīng)注意解決好以下問題:(1)主程序與子程序之間的參數(shù)傳遞。(2)保護(hù)現(xiàn)場和恢復(fù)現(xiàn)場。當(dāng)然對每個具體的子程序是不是需要現(xiàn)場保護(hù),哪些參數(shù)應(yīng)當(dāng)保護(hù),還應(yīng)視實際情況確定。在MCS51系列單片機(jī)的指令系統(tǒng)中,向用戶提供了兩條調(diào)用子程序的指令:ACALL、LCALL以及一條返回主程序的指令RET。此外,子程序在運行過程中,還可以再調(diào)用其他的子程序,這種操作稱之為子程序嵌套。第4章匯編語言程序設(shè)計

4.5子程序設(shè)計MCS51系列單片機(jī)對于子程序嵌套的層數(shù)沒有限制(只要為堆棧容量所允許)。在編制子程序時,需要注意以下幾個方面的問題:(1)子程序的首地址必須用符號地址,該符號是子程序的名稱。子程序最后一定要有一條返回指令。(2)為了方便使用,每個子程序要有適當(dāng)?shù)氖褂谜f明,如子程序功能的說明、出口條件、所占用的存儲單元和寄存器等。(3)子程序盡量編寫成浮動地址程序,采用相對轉(zhuǎn)移指令。(4)子程序入口條件。(5)保護(hù)現(xiàn)場與恢復(fù)現(xiàn)場。第4章匯編語言程序設(shè)計

4.6單片機(jī)程序設(shè)計流程4.6.1編程語言

單片機(jī)程序設(shè)計的編寫可以采用匯編語言或高級語言。匯編語言具有源代碼小、效率高等優(yōu)點,適合于對實時性要求較高的場合。但是由于匯編語言調(diào)試比較麻煩,要求編程者對硬件的了解要很清楚。隨著高級語言的發(fā)展,編譯效率的不斷提高,加之應(yīng)用系統(tǒng)的規(guī)模和復(fù)雜性都在提高。目前,在單片機(jī)的軟件開發(fā)中,高級語言占據(jù)了重要的地位(例如C語言)。第4章匯編語言程序設(shè)計

4.6單片機(jī)程序設(shè)計流程4.6.2單片機(jī)匯編語言程序開發(fā)流程用匯編語言編寫程序,一般可分為以下幾個步驟:(1)建立數(shù)學(xué)模型:根據(jù)要解決的實際問題抽象出數(shù)學(xué)模型。(2)確定算法:從諸多算法中確定一種較為簡捷的方法。(3)制定程序流程圖:算法是程序設(shè)計的依據(jù)。(4)確定數(shù)據(jù)結(jié)構(gòu):合理地選擇和分配內(nèi)存單元以及工作寄存器。(5)寫出源程序:根據(jù)程序流程圖選擇合適的指令和尋址方式。(6)上機(jī)調(diào)試程序:將編好的源程序進(jìn)行匯編,檢查和修改程序中的錯誤,直到正確為止。第4章匯編語言程序設(shè)計

4.6單片機(jī)程序設(shè)計流程4.6.3C語言程序開發(fā)流程1.編寫C源程序2.編譯源程序生成目標(biāo)文件將所編寫的擴(kuò)展名為.C的程序保存為擴(kuò)展名為.hex或.bin的目標(biāo)文件。這個目標(biāo)文件就是單片機(jī)所能識別的機(jī)器碼。3.仿真調(diào)試目標(biāo)文件仿真分為軟件仿真和硬件仿真。軟件仿真就是在計算機(jī)上運行仿真軟件來對單片機(jī)的硬件模擬、指令模擬和運行狀態(tài)模擬。硬件仿真就是利用仿真器代替單片機(jī),由仿真器向應(yīng)用電路提供各種信號數(shù)據(jù)進(jìn)行調(diào)試的方法。4.目標(biāo)文件的燒寫第4章匯編語言程序設(shè)計

4.7實例解析【實例】試編寫由ASCII碼轉(zhuǎn)換為二進(jìn)制數(shù)的程序。主程序:ORG0400HASCB:MOVR0,#61HMOVR1,#70HACALLCVERTSWAPAMOV@R1,ADECR0ACALLCVERTXCHDA,@R1LOOP:SJMPLOOP子程序:ORG0500HCVERT:MOVA,@R0CLRCSUBBA,#30HCJNEA,#0AH,NEQAJMPBIGNEQ:JCCENDBIG:SUBBA,#07HCEND:RETEND第5章定時器和計數(shù)器匯編語言程序設(shè)計

5.1定時器/計數(shù)器的工作方式

5.2定時器/計數(shù)器的應(yīng)用

5.3返回5.1定時器/計數(shù)器的結(jié)構(gòu)及工作原理第5章定時器和計數(shù)器返回8051單片機(jī)定時器/計數(shù)器內(nèi)部邏輯結(jié)構(gòu)如圖所示,有兩個16位的可編程定時器/計數(shù)器T0和T1,它們都有定時或計數(shù)的功能,可用于定時控制、延時、對外部事件檢測和計數(shù)等。5.1定時器/計數(shù)器的結(jié)構(gòu)及工作原理第5章定時器和計數(shù)器定時器/計數(shù)器T0、T1主要由幾個特殊功能寄存器TH1、TL1和TH0、TL0組成。方式寄存器TMOD主要設(shè)置定時器/計數(shù)器的工作方式,控制寄存器TCON主要控制定時器/計數(shù)器的啟動和停止,這兩個寄存器用來完成定時器/計數(shù)器的初始化工作。每個定時器/計數(shù)器的核心實質(zhì)上是一個加法計數(shù)器,通過內(nèi)部總線與CPU相連,當(dāng)CPU設(shè)置好定時器/計數(shù)器的工作方式、初值并啟動后,定時器/計數(shù)器即可獨立工作,不再占用CPU的時間??梢?,定時器/計數(shù)器工作效率很高且使用靈活。

5.2定時器/計數(shù)器的結(jié)構(gòu)及工作原理第5章定時器和計數(shù)器當(dāng)定時器/計數(shù)器設(shè)置為定時方式時,加1計數(shù)器對內(nèi)部機(jī)器周期進(jìn)行計數(shù),直至計數(shù)器計滿溢出。MCS-51系列單片機(jī)的一個機(jī)器周期是時鐘振蕩器經(jīng)12分頻以后的脈沖信號,計數(shù)器計的是機(jī)器周期脈沖的個數(shù)。因此,選擇定時器/計數(shù)器的初值,確定系統(tǒng)振蕩器時鐘頻率,就可以獲取各種定時時間。當(dāng)定時器/計數(shù)器設(shè)置為計數(shù)方式時,加1計數(shù)器對來自外部引腳T0(P3.4)和T1(P3.5)的外部信號脈沖計數(shù),在下降沿時觸發(fā)計數(shù)。在每個周期的S5P2期間采樣引腳輸入電平。若前一個機(jī)器周期采樣值為1,后一個機(jī)器周期采樣值為0,則計數(shù)器加1。由于檢測一個從1到0的負(fù)跳變信號需要兩個機(jī)器周期(24個時鐘周期),所以最高的檢測信號頻率應(yīng)為時鐘頻率的1/24。5.2定時器/計數(shù)器的工作方式第5章定時器和計數(shù)器MCS-51定時器/計數(shù)器有4種工作方式,也就是說它們可以構(gòu)成4種電路結(jié)構(gòu)模式。T0和T1的方式1、方式2和方式0的模式相同。5.2定時器/計數(shù)器的工作方式第5章定時器和計數(shù)器5.2.1方式0

M1M0為00時,定時器/計數(shù)器工作于方式0。T0在方式0的邏輯電路結(jié)構(gòu)如圖所示,T1的結(jié)構(gòu)和操作與T0的完全相同。這是一個13位的定時器/計數(shù)器,由TL0低5位和TH0的高8位組成。TL0低5位計數(shù)溢出時向TH0進(jìn)位,而TH0計數(shù)溢出時則中斷標(biāo)志位TF0置位,并請求中斷。5.2定時器/計數(shù)器的工作方式第5章定時器和計數(shù)器定時器/計數(shù)器T0方式0的邏輯電路結(jié)構(gòu)

5.2定時器/計數(shù)器的工作方式第5章定時器和計數(shù)器5.2.2方式1

M1M0為01時,定時器/計數(shù)器工作于方式1。方式1與方式0的結(jié)構(gòu)與操作幾乎完全相同,差別僅在于計數(shù)器的位數(shù),此時由TH0作為高8位,TL0作為低8位,構(gòu)成的是一個16位的定時器/計數(shù)器。MCS-51之所以重復(fù)設(shè)置這兩種方式,是為了兼容MCS-48系列單片機(jī)。因為MCS-48的定時器/計數(shù)器就是13位的計數(shù)結(jié)構(gòu)。5.2定時器/計數(shù)器的工作方式第5章定時器和計數(shù)器5.2.3方式2

M1M0為10時,定時器/計數(shù)器工作于方式2。方式2是自動重裝計數(shù)初值的8位定時器/計數(shù)器,其邏輯結(jié)構(gòu)如圖4-4所示。圖中,TL0是8位計數(shù)器,TH0是計數(shù)初值寄存器。在程序初始化時,TH0和TL0由軟件賦予相同的初值,一旦TH0計數(shù)溢出,TF0將被置位,同時打開三態(tài)門,將TH0中的計數(shù)初值裝入TL0,使得TL0從初值開始重新計數(shù)。

小提示:方式0和方式1計數(shù)溢出時,計數(shù)器被清零,因此循環(huán)計數(shù)或定時時需要反復(fù)設(shè)置計數(shù)初值,既麻煩又影響定時精度。而方式2的出現(xiàn)則可以解決上述問題,多用于需要產(chǎn)生高精度定時時間的場合,常用做串行口波特率發(fā)生器。5.2定時器/計數(shù)器的工作方式第5章定時器和計數(shù)器5.2.4方式3

方式3對定時器/計數(shù)器T0和T1是完全不同的。M1M0為11時,定時器/計數(shù)器T0工作于方式3,其邏輯結(jié)構(gòu)如圖所示。圖中,TH0和TL0被分成為兩個互相獨立的8位計數(shù)器。5.3定時器/計數(shù)器的應(yīng)用第5章定時器和計數(shù)器MCS-51系列定時器/計數(shù)器的初始化編程步驟如下:(1)確定方式控制字,即確定定時器/計數(shù)器的工作狀態(tài),寫入方式寄存器TMOD。例如,T1用于定時器、方式0,T0用于計數(shù)器、方式1,均用軟件控制。則TMOD的值應(yīng)為:00000101,即0x05。(2)根據(jù)實際需要設(shè)置定時器初值或計數(shù)器初值,寫入初值寄存器TH0、TL0或TH1、TL1。(3)根據(jù)需要設(shè)定寄存器IE,開放定時器/計數(shù)器中斷。(4)設(shè)置寄存器TCON的值,令TR1或TR0為1,定時器/計數(shù)器開始工作。第6章MCS-51單片機(jī)的中斷系統(tǒng)中斷的概念6.1中斷源

6.2中斷控制及中斷優(yōu)先級

6.3中斷響應(yīng)及中斷處理過程

6.4中斷的應(yīng)用及編程

6.5返回6.1中斷的概念第6章MCS-51單片機(jī)的中斷系統(tǒng)返回1.什么是中斷當(dāng)CPU正常處理某個事件時,由于內(nèi)部事件或外設(shè)請求,引起CPU暫時中止當(dāng)前正在運行的程序,轉(zhuǎn)去執(zhí)行請求中斷的外設(shè)或內(nèi)部事件的中斷服務(wù)子程序,中斷服務(wù)程序執(zhí)行完畢,再返回原來被中止的地方,繼續(xù)原來的工作。這一過程稱為中斷,如圖所示。實現(xiàn)中斷功能的部件稱為中斷系統(tǒng),請示CPU中斷的請求源稱為中斷源。6.1中斷的概念第6章MCS-51單片機(jī)的中斷系統(tǒng)返回2.CPU響應(yīng)及處理中斷機(jī)制中斷系統(tǒng)就是為使CPU能對外界緊急異步事件具有處理能力而設(shè)置的,中斷系統(tǒng)功能越強(qiáng),對外界事件處理能力也就越強(qiáng)。MCS-51系列單片機(jī)有5個中斷源,而單片機(jī)的中斷系統(tǒng)又允許多個中斷源同時請求中斷,因此就存在CPU優(yōu)先響應(yīng)哪一個中斷源請求的問題。一般來說,根據(jù)中斷源的輕重緩急排序,CPU優(yōu)先處理最緊急事件的中斷請求源。也就是說,需要對各個中斷源設(shè)定相應(yīng)的優(yōu)先級,CPU總是最先響應(yīng)級別最高的中斷。中斷源可以分為兩個中斷優(yōu)先級:高優(yōu)先級和低優(yōu)先級。用戶可以用關(guān)中斷指令或復(fù)位指令來屏蔽所有中斷請求,也可以用開中斷指令使CPU接收中斷申請。6.1中斷的概念第6章MCS-51單片機(jī)的中斷系統(tǒng)返回3.單片機(jī)采用中斷系統(tǒng)的優(yōu)點使用中斷系統(tǒng)可以極大地提高CPU的利用效率,充分發(fā)揮計算機(jī)的功能。1)提高CPU的工作效率CPU執(zhí)行主程序中的相關(guān)指令可以令各外設(shè)和它并行工作,而且任何一個外設(shè)在工作完成后(例如,打印機(jī)完成一個打印任務(wù))都可以通過中斷得到滿意服務(wù)(給打印機(jī)發(fā)送第二個打印任務(wù))。因此,CPU在和外設(shè)交換信息時通過中斷就可以避免不必要的等待和查詢,從而大大提高了它的工作效率。2)提高實時數(shù)據(jù)的處理時效CPU有了中斷功能,系統(tǒng)失常和故障都可以通過中斷立刻通知CPU,使它可以迅速采集實時數(shù)據(jù)和故障信息,并對系統(tǒng)作出應(yīng)急處理。6.2中斷源第6章MCS-51單片機(jī)的中斷系統(tǒng)返回MCS-51系列中不同型號單片機(jī)的中斷源數(shù)量是不同的。每個中斷源可以編程為高優(yōu)先級或低優(yōu)先級中斷,允許或禁止向CPU請求中斷。8051的中斷系統(tǒng)由中斷標(biāo)志寄存器、中斷源允許寄存器、中斷優(yōu)先級寄存器及中斷查詢電路組成,如圖所示。6.2中斷源第6章MCS-51單片機(jī)的中斷系統(tǒng)返回一般把引起中斷的原因,或者能夠發(fā)出中斷請求信號的來源統(tǒng)稱為中斷源。通常中斷源有以下幾種:(1)外部設(shè)備請求中斷。(2)故障強(qiáng)迫中斷。(3)實時時鐘請求中斷。(4)數(shù)據(jù)通道中斷。(5)程序自愿中斷。8051單片機(jī)的5個中斷源如下:(1)外部中斷請求0:由INT0(P3.2引腳)輸入,低電平或下降沿觸發(fā)。(2)外部中斷請求1:由INT1(P3.3引腳)輸入,低電平或下降沿觸發(fā)。(3)內(nèi)部定時器/計數(shù)器0中斷請求:由T0溢出引起。(4)內(nèi)部定時器/計數(shù)器1中斷請求:由T1溢出引起。(5)內(nèi)部中斷請求TI/RI:串行口I/O中斷,串行口完成一幀字符發(fā)送/接收后引起。6.3中斷控制及中斷優(yōu)先級第6章MCS-51單片機(jī)的中斷系統(tǒng)返回6.3.1中斷允許控制寄存器IE(字節(jié)地址A8H)

MCS-51指令系統(tǒng)中沒有專門的開中斷和關(guān)中斷指令,只有通過中斷允許控制寄存器IE來控制CPU對中斷源的開放或屏蔽,即每個中斷源是否被允許中斷。

6.3中斷控制及中斷優(yōu)先級第6章MCS-51單片機(jī)的中斷系統(tǒng)返回6.3.1中斷允許控制寄存器IE(字節(jié)地址A8H)

MCS-51指令系統(tǒng)中沒有專門的開中斷和關(guān)中斷指令,只有通過中斷允許控制寄存器IE來控制CPU對中斷源的開放或屏蔽,即每個中斷源是否被允許中斷。

6.3中斷控制及中斷優(yōu)先級第6章MCS-51單片機(jī)的中斷系統(tǒng)返回6.3.2中斷優(yōu)先控制寄存器IP(字節(jié)地址B8H)

MCS-51具有兩個中斷優(yōu)先級,每個中斷源可以通過編程定為高優(yōu)先級中斷或低優(yōu)先級中斷,從而實現(xiàn)二級中斷嵌套,即一個正在執(zhí)行的低優(yōu)先級中斷服務(wù)程序能被高優(yōu)先級中斷源中斷,但不能被同級或低優(yōu)先級中斷源中斷。二級中斷的嵌套過程如圖所示。6.3中斷控制及中斷優(yōu)先級第6章MCS-51單片機(jī)的中斷系統(tǒng)返回圖二級中斷嵌套過程6.4

中斷響應(yīng)及中斷處理過程

第6章MCS-51單片機(jī)的中斷系統(tǒng)返回6.4.1中斷響應(yīng)的條件和過程1.條件(1)CPU無高級或同級的中斷服務(wù)。(2)當(dāng)前指令已執(zhí)行到最后一個機(jī)器周期,以確保當(dāng)前指令的完整執(zhí)行。(3)如果正在執(zhí)行的是RETI(中斷返回)、IE或IP的指令,需要保證執(zhí)行完該指令及其后的另一條指令。2.過程(1)完成當(dāng)前指令后立即終止現(xiàn)行程序,置位相應(yīng)的優(yōu)先級狀態(tài)觸發(fā)器,以阻斷同級和低級中斷。(2)將斷點地址壓入堆棧,同時清除中斷請求標(biāo)志(TI和RI除外)。(3)把對應(yīng)的中斷源入口地址送入程序計數(shù)器PC,轉(zhuǎn)至相應(yīng)的中斷服務(wù)程序。6.4

中斷響應(yīng)及中斷處理過程

第6章MCS-51單片機(jī)的中斷系統(tǒng)返回6.4.2中斷處理和返回

中斷處理即為執(zhí)行中斷服務(wù)程序。中斷服務(wù)程序從中斷入口地址開始,首先要保存有關(guān)的寄存器內(nèi)容,即保護(hù)現(xiàn)場;完成中斷源請求的服務(wù)后,還要恢復(fù)這些寄存器內(nèi)容(恢復(fù)現(xiàn)場),并在中斷服務(wù)程序的末尾,安排一條返回指令,把斷點地址送回程序計數(shù)器PC,使程序返回原斷點處,結(jié)束中斷過程。6.4

中斷響應(yīng)及中斷處理過程

第6章MCS-51單片機(jī)的中斷系統(tǒng)返回6.4.3中斷響應(yīng)時間中斷響應(yīng)時間是指從查詢中斷請求標(biāo)志位到轉(zhuǎn)至中斷服務(wù)程序入口地址所需的時間。如果一個邊沿觸發(fā)的外部中斷請求有效,則置位相應(yīng)的中斷請求標(biāo)志,然后在下一個機(jī)器周期再對這些值進(jìn)行查詢,請求中斷信號的低電平至少應(yīng)持續(xù)一個機(jī)器周期。如果發(fā)生了一個中斷請求且符合響應(yīng)條件,則CPU在下一個機(jī)器周期執(zhí)行一條長調(diào)用指令,進(jìn)行中斷處理。該調(diào)用指令需要兩個機(jī)器周期。因此,一共需要3個機(jī)器周期。如果中斷請求受阻,中斷響應(yīng)時間將延長。對于一個單一中斷源的系統(tǒng),中斷響應(yīng)時間為3~8個機(jī)器周期。6.4

中斷響應(yīng)及中斷處理過程

第6章MCS-51單片機(jī)的中斷系統(tǒng)返回6.4.4中斷請求的撤除CPU響應(yīng)中斷后,在中斷返回前,應(yīng)把該中斷的相應(yīng)標(biāo)志位清零,撤除中斷請求;否則,會引起重復(fù)中斷而發(fā)生錯誤。(1)對于定時器/計數(shù)器的溢出中斷及邊沿觸發(fā)的外部中斷,CPU在響應(yīng)中斷后即由硬件自動清除相關(guān)的中斷請求標(biāo)志。(2)對于串行口中斷,CPU在響應(yīng)中斷后,必須在中斷服務(wù)程序中用軟件清除中斷標(biāo)志,硬件沒有相關(guān)措施。(3)對于電平觸發(fā)的外部中斷,僅靠清除中斷標(biāo)志是不能徹底撤除中斷請求的。因此,必須在中斷響應(yīng)后把外部輸入端信號從低電平強(qiáng)制變?yōu)楦唠娖?,才能徹底解決中斷請求的撤除問題。6.5

中斷的應(yīng)用及編程

第6章MCS-51單片機(jī)的中斷系統(tǒng)返回編寫中斷程序首先需要初始化,用于實現(xiàn)對中斷的控制;然后執(zhí)行中斷服務(wù)程序來完成中斷源請求的各種操作。很明顯,中斷初始化程序的位置是處于主程序之中的,中斷服務(wù)程序則存放在主程序之外的其他存儲區(qū)。中斷初始化程序?qū)嶋H上就是對幾個特殊功能寄存器的相關(guān)控制位進(jìn)行賦值,具體步驟如下:(1)開啟相應(yīng)中斷源的中斷允許。(2)設(shè)定所有中斷源的中斷優(yōu)先級。(3)規(guī)定外部中斷的觸發(fā)方式(電平觸發(fā)還是邊沿觸發(fā))。第7章串行口串行通信的基礎(chǔ)知識

7.1MCS-51單片機(jī)的串行口結(jié)構(gòu)和控制

7.2MCS-51單片機(jī)串行口的工作方式

7.3串行口的應(yīng)用及編程7.4返回7.1

串行口的基礎(chǔ)知識第7章串行口返回7.1.1串行通信的分類按照串行數(shù)據(jù)的同步方式,串行通信可以分為異步通信和同步通信。1)異步通信異步串行通信規(guī)定了字符數(shù)據(jù)的傳送格式,即每個數(shù)據(jù)以相同的幀格式傳送,如圖所示。7.1

串行口的基礎(chǔ)知識第7章串行口返回2)同步通信在同步通信中,每一數(shù)據(jù)塊開始時發(fā)送一個或兩個同步字符,以使發(fā)送端與接收端雙方獲得同步。數(shù)據(jù)塊的各個字符間不存在起始位和停止位,所以通信速度比異步通信快。同步通信時,如果發(fā)送的數(shù)據(jù)塊之間有時間間隔,則發(fā)送同步字符填充。

小提示:基于異步通信和同步通信的傳輸特點,異步通信常用于傳輸信息量不大、速度較低的場合,如50b/s~9.6kb/s;而在信息量很大、傳輸速度要求高的場合,通常采用同步通信,速度可達(dá)800kb/s,因此同步通信方式在單片機(jī)系統(tǒng)中使用較少。7.1

串行口的基礎(chǔ)知識第7章串行

溫馨提示

  • 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

提交評論