單片機原理及接口技術(第2版)段晨東全套教案課件_第1頁
單片機原理及接口技術(第2版)段晨東全套教案課件_第2頁
單片機原理及接口技術(第2版)段晨東全套教案課件_第3頁
單片機原理及接口技術(第2版)段晨東全套教案課件_第4頁
單片機原理及接口技術(第2版)段晨東全套教案課件_第5頁
已閱讀5頁,還剩770頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第1章基礎知識本章內容:單片機的概念單片機的發展、基本的結構和特點單片機的應用模式和領域MCS-51單片機等。11.1計算機的一些概念計算機由運算器、控制器、存儲器、輸入設備和輸出設備五個部分組成。計算機的結構2第1章基礎知識1.1計算機的一些概念8位計算機每個單元可存放一個8位二進制數,即一個字節,每一位的狀態是0或1。存儲單元保存的8位二進制數稱為單元的內容。存儲單元示意圖如圖地址為0110單元的內容為10101001,表示為(06H)=A9H。一個單元的內容單元的編號3第1章基礎知識5CCCFF040B00EAAFAB5D9B23BB1D1F12800067EFFD7A89FFFFFFFEFFFDFFFCFFFBFFFAFFF9FFF8FFF7FFF6000D000C000B000A00090008000700060005000400030001000064K個存儲單元(65536)構成的存儲器4第1章基礎知識1.2單片機

單片機即單片機微型計算機,就是將CPU、RAM、ROM、定時/計數器和多種接口都集成到一塊集成電路芯片上的微型計算機。

單片機也稱為微控制器(Microcontrollerunit,MCU),嵌入式控制器(EmbeddedMicrocontrollerunit,EMCU)1.2.1單片機的概念及特點單片機分為通用型和專用型,通用型單片機把可開發的內部資源全部提供給用戶。內部資源豐富、性能全面、適應性強。專用型單片機針對某些產品的特定用途而制作的單片機,是MCU發展的一個趨勢。集成

5第1章基礎知識1.2單片機單片機有以下特點: (1)集成度高,功能強。單片機在一塊芯片上集成了CPU、RAM、ROM、I/O接口等資源,在芯片上還包含了中斷系統、串行通信接口、定時器/計數器等功能部件,芯片功能強、體積小、集成度高。 (2)具有較高的性能價格比。單片機盡可能地把應用所需的各種資源集成在一塊芯片內,性能高,但是價格卻相對較低廉。 (3)抗干擾能力強。單片機是面向工業檢測控制環境設計的,因此,抗噪聲干擾能力較強。程序固化在ROM類型的存儲器中不易被破壞;許多資源集成在一個芯片,可靠性高。1.2.1單片機的概念及特點6第1章基礎知識第1階段(1971~1976):單片機萌芽階段。第2階段(1976~1980):初級單片機階段。第3階段(1980~1983):高性能單片機階段。第4階段(1983~1990):8位單片機鞏固發展及16位單片機推出階段。第5階段(1990~):單片機在集成度、功能、速度、可靠性、應用領域等方面全方位地向更高水平發展。1.2單片機1.2.2單片機的發展7第1章基礎知識(1)MCS-51單片機的第一代產品:

IntelMCS-518031/8051/8751(2)第二代產品系列采用了CMOS技術制造而成,集成度高,速度快,功耗低:

ATMELMCS-51兼容系列89C51/89C52、89C2051/89C2052;宏晶STC89C5XRC/RD(3)第三代80C51產品的單片機內核SoC(SystemOnChip,SoC)化。CYGNALC8051Fxxxx(SilabC8051F),宏晶STC12C5A60AD系列高速1T8051單片機

1.2單片機1.2.3MCS-51系列單片機及其兼容單片機8第1章基礎知識1.2單片機

(1)家用電器 (2)辦公自動化 (3)商業領域 (4)工業領域 (5)汽車電子 (6)航空航天與軍事

單片機應用從根本上改變了傳統的控制系統設計思想和設計方法。以前必須由硬件(模擬電路或數字電路)實現的控制功能,現在可以用單片機的軟件方法實現,這種以軟件取代硬件并能提高系統性能的控制技術,稱之為微控制技術。隨著單片機應用技術的推廣普及,微控制技術將發揮將越來越重要的作用。

1.2.4單片機的應用9第1章基礎知識1.3單片機的開發(Development8051) 單片機沒有自編程能力,需要借助開發裝置進行編程開發,應用到其他系統或產品中。 (一)仿真平臺(編程軟件和仿真器組成)仿真頭仿真器仿真頭串行口/USB仿真軟件10第1章基礎知識1.3單片機的開發(Development8051) 單片機沒有自編程能力,需要借助開發裝置進行編程開發,應用到其他系統或產品中。 (二)仿真平臺(ISP下載線)(1)串行口/USBISP下載線仿真軟件11第1章基礎知識1.3單片機的開發(Development8051) (二)仿真平臺(USB-ISP下載線)(2)仿真軟件keilISP下載軟件ISP下載線*STC系列單片機12第1章基礎知識1.3單片機的開發(Development8051) (三)軟件仿真平臺(Proteus)【驗證設計方案,掌握單片機原理的便捷方法——即學即用】Keil+Proteus13第1章基礎知識1.3計算機的數學基礎(1)十進制十個數符:0~9,逢十進一。加權展開式以10稱為基數,各位系數為0~9。 一般表達式:ND=dn-1×10n-1+dn-2×10n-2+…+d0×100+d-1×10-1+…1234.5=1×103+2×102+3×101+4×100+5×10-11.3.1數制及轉換(自修內容)一.數制14第1章基礎知識(2)二進制兩個數符:0、1,逢二進一。加權展開式以2為基數,各位系數為0、1。 一般表達式:

NB=dn-1×2n-1+dn-2×2n-2+…+d0×20+d-1×2-1+…1101.101=1×23+1×22+0×21+1×20+1×2-1+1×2-3

1.3.1數制及轉換(自修內容)一.數制1.3計算機的數學基礎15第1章基礎知識 (3)十六進制十六個數符0~9、A~F,逢十六進一。展開式以十六為基數,各位系數為0~9,A~F。 一般表達式: NH=hn-1×16n-1+hn-2×16n-2+…+h0×160+h-1×16-1+…DFC.8=13×162+15×161+12×160+8×16-11.3.1數制及轉換(自修內容)1.3計算機的數學基礎一.數制16第1章基礎知識 進位計數制的一般表達式:

N=an-1×Rn-1+an-2×Rn-2+…+a1×R1+a0×R0+a-1×R-1…+a-mR-m

一種進制的數轉換成另一種進制數的方法:

按權展開,求和計算。1.3.1數制及轉換(自修內容)1.3計算機的數學基礎二.數制之間的轉換17第1章基礎知識(一)十六進制數轉換成十進制數按權展開,然后按照十進制運算法則求和。舉例: 1011.1010B=1×23+1×21+1×20+1×2-1+1×2-3=11.625 DFC.8H=13×162+15×161+12×160+8×16-1=3580.51.3.1數制及轉換(自修內容)1.3計算機的數學基礎18第1章基礎知識(二)二進制與十六進制數之間的轉換 24=16,四位二進制數對應一位十六進制數。3AF.2H

=0011

1010

1111.0010=1110101111.001B 3AF2

1111101.11B

=0111

1101.1100=7D.CH

7DC1.3.1數制及轉換(自修內容)1.3計算機的數學基礎19第1章基礎知識

(三)十進制數轉換成二、十六進制數整數、小數分別轉換1.整數轉換法“除基取余”:十進制整數不斷除以轉換進制基數,直至商為0。每除一次取一個余數,從低位排向高位。1.3.1數制及轉換(自修內容)1.3計算機的數學基礎20第1章基礎知識2. 小數轉換法“乘基取整”:用轉換進制的基數乘以小數部分,直至小數為0或達到轉換精度要求的位數。每乘一次取一次整數,從最高位排到最低位。1.3.1數制及轉換(自修內容)1.3計算機的數學基礎21第1章基礎知識1.3.2計算機中數的表示方法

機器數:機器中數的表示形式,其位數通常為8的倍數 真值:機器數所代表的實際數值。 一個8位機器數+84和-84與它們的真值對應關系

真值:X1=+84=+1010100BX2=-84=-1010100B

機器數:[X1]機=01010100[X2]機=11010100機器中,數的最高位作符號位,“0”表示“+”,“1”表示“-”。機器數與真值一.

帶符號數的表示1.3計算機的數學基礎八位二進制數符號位01010100+84符號位11010100-84符號位22第1章基礎知識 最高位為符號位,0表示“+”,1表示“-”。 數值位與真值數值位相同。

x1=+1010100B [x1]原=01010100x2=-1010100B

[x2]原=11010100在計算機中,0可表示為+0和-0,故0在原碼中有兩種表示法: [+0]原=00000000B [-0]原=10000000B。 帶符號數通常有三種表示方法:原碼、反碼、補碼(1)原碼1.3.2計算機中數的表示方法1.3計算機的數學基礎八位二進制數符號位23第1章基礎知識 正數的反碼與原碼表示相同。 負數反碼符號位為1,數值位為原碼數值各位取反。 (2)反碼1.3.2計算機中數的表示方法1.3計算機的數學基礎x=+4[x]原=00000100 [x]反=00000100x=-4[x]原=10000100[x]反=111110111xxxxxxx負數原碼數值位取反1xxxxxxx負數反碼24第1章基礎知識(3)補碼 正數的補碼表示與原碼相同。負數的補碼等于其反碼加1。

x=+4,[x]原=[x]反=[x]補=00000100 x=-4 [x]原=10000100 [x]反=11111011 [x]補=11111100補碼表示的優點:0的表示唯一。1.3.2計算機中數的表示方法1.3計算機的數學基礎負數的補碼25第1章基礎知識(4)真值與機器數之間的轉換1.3.2計算機中數的表示方法1.3計算機的數學基礎

1)正數的原碼、反碼、補碼相同,無需轉換;2)負數原碼的最高位為符號位,其余位為數值位,由數值位可以獲取真值;負數反碼的數值位按位取反,可轉換為原碼,即一個負數反碼的反碼為該負數的原碼;負數補碼的數值位按位取反后,最低位再加1,可轉換為原碼,即一個負數補碼的補碼為原碼。3)由原碼求真值。用“+”、“-”代替原碼的符號位0和1。推論:一個數的絕對值等于原碼的符號位清0。26第1章基礎知識X1=+127,X2=-127,求[X]原、[X]補[X1]原=[X1]補=01111111=7FH [X2]原=11111111=FFH [X2]補=10000001=81HX1=+255,X2=-255,求[X]原、[X]補[X1]原=[X1]補=0000000011111111=00FFH

[X2]原=1000000011111111=80FFH

[X2]補=1111111100000001=FF01H (4)真值與機器數之間的轉換1.3.2計算機中數的表示方法1.3計算機的數學基礎27第1章基礎知識(二)定點數浮點數的表示(1)定點數 小數點位置固定的機器數。運算簡便,表示范圍小。 數據用2字節整數和1字節小數表示,小數點位于兩部分之間,表示如下:

1.3.2計算機中數的表示方法1.3計算機的數學基礎28第1章基礎知識(2)浮點數二進制數也可以表示為類似于科學計數法的形式,一個二進制數浮點表示為:1.3.2計算機中數的表示方法1.3計算機的數學基礎 S為尾數,J為階碼,它們均為整數。通常,有2字節浮點數、3字節浮點數、4字節浮點數。3字節浮點數29第1章基礎知識(一)二進制代碼 計算機只能處理二進制數和二進制編碼,任何進入計算機的信息必須轉化為二進制數或二進制編碼。 由0和1組成的二進制數碼用來表示數值的大小,或用來表示特定的信息,這種具有特定含義的二進制數碼稱為二進制代碼。1.3.3編碼1.3計算機的數學基礎30第1章基礎知識(二)十進制數四位二進制編碼 十進制數四位二進制編碼就是用四位二進制數來表示0~9這十個十進制符號,簡稱為BCD碼。1.3.3編碼1.3計算機的數學基礎十進制數符BCD編碼00000100012001030011401005010160110701118100091001例:求十進制數876的BCD碼 [876]BCD=100001110110 876=36CH=1101101100B31第1章基礎知識(三)ASCII碼【美國標準信息交換碼】 用于計算機與計算機、計算機與外設之間傳遞信息。 ASCII碼用一個7位二進制數來表示一個特定的字符,可表示27=128個符號。這128個符號共分為兩類:一類是圖形字符,共96個;一類是控制字符,共32個。1.3.3編碼1.3計算機的數學基礎32第1章基礎知識行(3位)列(4位)行(3位)列(4位)ASCII011100139H101011157H00011010DH33第1章基礎知識本章結束謝謝!34第2章MCS-51單片機結構及原理

本章內容:(1)MCS-51系列的8051的基本結構;(2)存儲器結構及其配置;(3)P0、P1、P2、P3四個I/O口的基本工作原理和操作特點;(4)單片機的時序(5)復位35

2.1.1MCS-51的基本組成

MCS-51單片機(以8051為例,Intel產品)1個8位CPU;1個片內振蕩器及時鐘電路;128字節RAM(數據存儲器);4K字節ROM(程序存儲器);2個16位定時器/計數器;32條可編程的I/O線(四個8位并行I/O端口);1個全雙工串行口;5個中斷源;2.1MCS-51單片機組成及結構362.1MCS-51單片機組成及結構存儲器CPU輸入輸出口定時/計數器中斷系統總線

37

2.1.2MCS-51單片機的引腳與功能邏輯符號2.1MCS-51單片機組成及結構引腳分配38(1)電源線+5V供電

VCC(40)——+5VGND(20)——地2.1.2MCS-51單片機的引腳與功能引腳分配P0(2)晶體振蕩器信號輸入輸出XTAL2(18)——晶體振蕩器信號輸出XTAL1(19)——晶體振蕩器信號輸入(3)輸入/輸出線

P0.0~P0.7P0口

P1.0~P1.7P1口

P2.0~P2.7P2口

P3.0~P3.7P3口P1P2P339(4)控制信號線

ALE(30)——地址鎖存控制信號(AddressLatchEnable),ALE用于將地址總線的低八位鎖存。該信號頻率為晶振頻率的1/6,可作為外部定時或時鐘使用。2.1.2MCS-51單片機的引腳與功能引腳分配

(29)——外部程序存儲器讀選通信號(ProgramStoreEnable)

該信號為低電平時,CPU從外部程序存儲器單元讀取指令。40

(31)——內外程序存儲器選擇控制(ExternalAccessEnable)。2.1.2MCS-51單片機的引腳與功能(4)控制信號線(續)引腳分配

RESET(9)——復位信號。RESET持續2個機器周期以上的高電平,單片機復位。=0,CPU對程序存儲器的操作僅限于單片機外部程序存儲器。

=1,CPU對程序存儲器的操作從單片機內部程序存儲器開始,并可延伸到單片機的外部程序存儲器。41(5)部分引腳的第二功能(復用,同一個引腳被雙重定義)2.1.2MCS-51單片機的引腳與功能T1

定時器1外部計數信號輸入T0

定時器0外部計數信號輸入INT1

外部中斷1,輸入INT0

外部中斷0,輸入WR外部數據存儲器寫選通信號,輸出第二功能RXD

串行輸入端口引腳P3.0P3.2P3.3P3.4P3.5P3.6P3.7RD外部數據存儲器讀選通信號,輸出TXD

串行輸出P3.1(5)部分引腳的第二功能程序存儲器固化所需的信號編程脈沖ALE/PROG

編程電壓/VPP

備用電源引入

RESET/VPD:當電源電壓下降到某個給定下限時,備用電源由該引腳向單片機芯片內部RAM供電,以保護內部RAM的內容不丟失。2.1.2MCS-51單片機的引腳與功能43控制器運算器特殊功能寄存器I/O口I/O口2.1.3MCS-51單片機的內部結構數據存儲器程序存儲器44(一)中央處理器(CPU)

CPU由運算器和控制器組成,它是單片機的核心,完成運算和控制操作。

2.1.3MCS-51單片機的內部結構

1.

運算器組成:算術邏輯運算器ALU,算術累加器ACC,寄存器B,暫存器TMP1,暫存器TMP2,布爾累加器Cy等。功能:進行移位、算術運算和邏輯運算;MCS-51運算器還包含有一個布爾(位)處理器,用來處理位操作。45

(1)累加器A(ACC)(8位)功能:暫存操作數及保存運算結果;

A是MCS-51單片機中最繁忙的寄存器;(2)寄存器B(8位)功能:用于乘法、除法運算,對于其它指令可作為一個寄存器使用;(3)程序狀態字寄存器PSW(8位)功能:存放累加器A在運算過程標志位(P,OV,AC,Cy)的狀態;指出CPU所使用的當前工作寄存器組。2.1.3MCS-51單片機的內部結構46CYACF0RS0OVPRS1PSW.7PSW.0CY(PSW.7)進位/借位標志位(Carry)。若ACC在運算過程中發生了進位或借位,則CY=1;否則=0。它也是布爾處理器的位累加器,可用于布爾操作。AC(PSW.6)半進位/借位標志位(AttachedCarry)。若AC在運算過程中,D3位向D4位發生了進位或借位,則AC=1,否則=0。F0(PSW.5)——用戶標志位(Flag0:userdefinableflag)。PSW.6PSW.52.1.3MCS-51單片機的內部結構PSW程序狀態字寄存器472.1.3MCS-51單片機的內部結構PSW.7PSW.0

RS1(PSW.4)、RS0(PSW.3)工作寄存器組選擇位(RegisterSelection)。RS1,RS0=01則選擇了工作寄存器組1

區R0~R7分別代表08H~0FH單元。RS1,RS0=10則選擇了工作寄存器組2

區R0~R7分別代表10H~17H單元。RS1,RS0=11則選擇了工作寄存器組3

區R0~R7分別代表18H~1FH單元。CYACF0RS0OVPRS1PSW.4PSW.3RS1,RS0=00則選擇了工作寄存器組0

區R0~R7分別代表08H~0FH單元。PSW程序狀態字寄存器48CYACF0RS0OVPRS1PSW.7PSW.0

OV(PSW.2)溢出標志位(Overflow)。

OV=1時特指累加器在進行帶符號數(-128—+127)運算時出錯(超出范圍);OV=0時未出錯。

PSW.1未定義(Reserved)。

P(PSW.0)奇偶標志位(ParityBit)。

P=1表示累加器ACC中“1”的個數為奇數

P=0表示累加器ACC中“1”的個數為偶數

CPU隨時監視著ACC中的“1”的個數,并反映在PSW中PSW.2PSW.12.1.3MCS-51單片機的內部結構PSW

AC,Cy,OV,P通常在有A累加器參與運算的情況下改變,它們反映A累加器參與運算后的狀態變化。程序狀態字寄存器49(4)布爾處理器Cy

實現各種位邏輯運算和傳送;MCS-51具有一個位尋址空間。(5)TMP1和TMP2為8位暫存寄存器存放參與預算的操作數。2.1.3MCS-51單片機的內部結構MCS-51單片機僅能實現兩個8位二進制數的算術和邏輯運算!

50

組成:定時與控制部件,復位電路,程序計數器(PC),指令寄存器、指令譯碼器,數據指針(DPTR),堆棧指針(SP)等作用:產生計算機所需的時序,控制程序自動執行。CPU程序存儲器指令寄存器外RAM,EPROM,外I/O指令譯碼器控制單片機各部分的運行,產生ALE,PSEN,RD/WR2.1.3MCS-51單片機的內部結構CPU執行指令

2.控制器51控制器示意圖52(1)程序計數器PC(16位) 程序計數器PC用來存放即要執行的指令地址,共16位,低8位經P0口輸出,高8位經P2口輸出。

CPU每取一次機器碼,PC內容自動加一,CPU執行一條指令,PC內容自動增加該指令的長度。CPU復位后,PC內容為0000H,它標志著程序從頭開始執行。

PC的內容變化決定程序的流向。(2)指令寄存器(8位) 指令寄存器中存放將要執行的指令代碼,通過指令譯碼器,將指令代碼轉化為電信號——控制信號ALE等。2.1.3MCS-51單片機的內部結構532.1.3MCS-51單片機的內部結構(3)數據指針DPTR(16位) 用于訪問外部RAM或外部I/O口,提供十六位地址。用于程序存儲器的查表和程序散轉指令,作為基地址寄存器,提供十六位基地址。(4)堆棧指針寄存器SP(8位)用于管理對棧,指出棧頂位置。

MCS-51單片機復位后,(SP)=07H

542.1.3MCS-51單片機的內部結構(二)存儲器(1)內部數據存儲器 單片機的內部數據存儲器由RAM地址寄存器、地址譯碼器以及128個單元的RAM構成,用于存放可讀寫的數據。 (2)內部程序存儲器

MCS-51系列單片機(8031除外)的內部程序存儲器由程序地址寄存器、地址譯碼器以及4K(4096)個單元的ROM構成,用于存放程序的機器代碼和常數。 (3)特殊功能寄存器(SpecialFunctionRegister,SFR)

MCS-51系列單片機有21個可以尋址的特殊功能寄存器,包括單片機內的I/O口、串行口、定時/計數器、中斷系統等相關的數據寄存器(或緩沖器)以及控制寄存器和狀態寄存器,用于存放相應功能部件的控制命令、狀態和數據。55存儲器示意圖I/O口

特殊功能寄存器

數據存儲器

程序存儲器56

2.1.3MCS-51單片機的內部結構(三)并行口(ParallelPort) 有4個并行的I/O口:P0、P1、P2、P3,每根口線都可獨立地用作輸入或輸出。(四)串行口(SerialPort) 有1個全雙工的串行口,用于串行通信。串行口由發送緩沖器SBUF、接收緩沖器SBUF、移位寄存器和串行口控制邏輯等部分組成。(五)定時/計數器(Timer/Counter)

有2個16位的定時/計數器T0和T1,T0由TH0和TL0構成,T1由TH1和TL1構成,定時/計數器方式寄存器TMOD選擇定時/計數器的工作模式和方式,定時/計數器控制寄存器TCON控制T0和T1的啟動和停止,同時反映T0和T1的溢出狀態。(六)中斷系統(InterruptSystem) 有5個中斷源,分別為2個外部中斷、2個定時/計數器溢出產生的中斷、1個串行口接收/發送產生的中斷,提供2個中斷優先級。57

輸入輸出口

輸入輸出口582.2MCS-51單片機的存儲器 MCS-51單片機的程序存儲器和數據存儲器分開設置,地址空間相互獨立。MCS-51存儲器地址空間可分為以下5類: (1)程序存儲器,最大空間64K; (2)片內數據存儲器,128個單元; (3)特殊功能寄存器,共21個; (4)位尋址空間,211位; (5)外部數據存儲器,最大空間64K。 這些資源與單片機應用的關系密切,下面我們介紹上述5類存儲空間的功能。592.2.1程序存儲器

程序存儲器用來存放程序和常數,最大尋址空間64K單元。MCS-51系列產品按程序存儲器配置類型分為3類:

8051芯片含有4K個單元的ROM;

8751芯片含有4K個單元的EPROM;

8031中無程序存儲器,需要擴展程序存儲器。

在實際應用中,用戶既可使用芯片內部的程序存儲器,也可以使用芯片外部的程序存儲器,但最大空間為64K,程序存儲器的地址空間構成與引腳的接法有關。602.2.1程序存儲器(1)芯片內部含有程序存儲器的單片機(8051/8751) 當=1(接高電平)時,8051/8751的程序存儲器結構如圖:程序存儲器結構程序存儲器連接電路612.2.1程序存儲器(1)芯片內部含有程序存儲器的單片機(8051/8751) 當=0(接低電平)時,8051/8751的程序存儲器結構如圖:程序存儲器結構程序存儲器連接電路622.2.1程序存儲器(1)芯片內部不含有程序存儲器的單片機(8031) 必須接地,8031的程序存儲器結構如圖:程序存儲器結構

不論哪一種MCS-51單片機,如果接地,其內部的程序存儲器將被CPU忽略。程序存儲器連接電路8031此種方式在實際應用中已不采用。632.2.1程序存儲器

在單片機的程序存儲器中,有5個特殊的單元地址被定義為中斷入口地址: 外部中斷0入口地址:0003H

外部中斷1入口地址:0013H

定時/計數器T0入口地址:000BH

定時/計數器T1入口地址:001BH

串行口中斷入口地址:0023H中斷入口地址映射

64VccRMCS-5100000FFF1000FFFF內部外部2.2.1程序存儲器(總結)MCS-51內部外部0000FFFF2.2.1程序存儲器(總結)2.2.2片內數據存儲器 MCS-51單片機的片內RAM按照功能可分為3個區域:

00~1FH:32個單元為工作寄存器區

20~2FH:16個單元為位尋址區

30~7FH:80個單元為數據緩沖區片內RAM分區示意圖工作寄存器區位尋址區數據緩沖區67(一)工作寄存器區(RegisterBank)(00-1FH)工作寄存器組分區

工作寄存器區也稱為通用寄存器區。工作寄存器區包含4個工作寄存器組,每個工作寄存器組中包含8個工作寄存器R0~R7。2.2.2片內數據存儲器Bank0Bank1Bank2Bank3

BANK0(00~07H)

BANK1(08~0FH)

BANK2(10~17H)

BANK3(18~1FH)68

表工作寄存器組的工作寄存器R0~R7與內RAM單元的對應關系PSW.4(RS1)PSW.3(RS0)寄存器區R0R1R2R3R4R5R6R700BANK000H01H02H03H04H05H06H07H01BANK108H09H0AH0BH0CH0DH0EH0FH10BANK210H11H12H13H14H15H16H17H11BANK318H19H1AH1BH1CH1DH1EH1FH2.2.2片內數據存儲器692.2.2片內數據存儲器(二)位尋址區(BitAddressableArea)(20~2FH)

MCS-51單片機的片內RAM中,20~2FH單元被開辟為位尋址區; 這些單元的每一位都具有一個自己的位地址,共168=128位。

位尋址區位地址范圍為00~7FH,CPU可以對每一位直接操作。1100010128H40H41H42H43H44H45H46H47H單元地址位地址702.2.2片內數據存儲器單元地址

D7D6D5D4D3D2D1D02C67666564636261602B5F5E5D5C5B5A59582A5756555453525150294F4E4D4C4B4A4948284746454443424140273F3E3D3C3B3A3938263736353433323130252F2E2D2C2B2A2928242726252423222120231F1E1D1C1B1A1918221716151413121110210F0E0D0C0B0A09082D6F6E6D6C6B6A69682007060504030201002E77767574737271702F7F7E7D7C7B7A7978內部RAM中20~2FH的位地址映射7120~2F單元的位地址區的使用: (I)在片內RAM中只有20~2FH單元的位能夠進行位操作,我們經常表示為20H.0,它與位地址00H是等價的。 (II)位尋址區16個單元也可以按單元訪問,所以,當位尋址區16個單元的128位未完全使用時,其剩余單元也可作為RAM單元使用。2.2.2片內數據存儲器72(三)數據緩沖區(DataBufferArea)(30~7FH) (1)數據緩沖區的作用 作為數據緩沖、數據暫存、作為堆棧區使用;

這些單元只能按單元訪問。(2)堆棧 堆棧是為了保護CPU執行程序的現場,在存儲器中開辟了一個“先進后出”(后進先出)的區域; 堆棧的操作:入棧,出棧;操作規則:先進后出; 堆棧由堆棧指針SP管理,它始終指向棧頂位置,一般情況下,將堆棧設在30H單元之后。程序設計時,最好設在片內RAM的末端,如MOVSP,#60H,以避免堆棧向上生成時覆蓋所存儲的數據。2.2.2片內數據存儲器732.2.3特殊功能寄存器(SFR)MCS-51芯片內部有21個可尋址的SFR(具有地址),它們離散的分布在片內RAM80H~FFH范圍內,并與內RAM統一編址。

MCS-51芯片內部還有1個不可尋址的SFR——程序計數器PC。

CPU對可尋址的SFR只能采用直接尋址方式,即按單元地址訪問的模式; 可尋址的SFR中部分SFR(單元地址能夠被8整除)具有位尋址功能。742.2.3特殊功能寄存器

單片機的特殊功能寄存器(SFR)及其單元地址SFR符號SFR名稱SFR對應單元ACC累加器E0HBB寄存器F0HPSW程序狀態字寄存器D0HDPTR數據指針83H/82HSP堆棧指針81HP0P0口80HP1P1口90HP2P2口A0HP3P3口B0HIP中斷優先級B8HIE中斷允許控制A8HSFR符號SFR名稱SFR對應單元TMODTimer工作方式89HTCONTimer控制寄存器88HTH0T0計數寄存器(H)8CHTL0T0計數寄存器(L)8AHTH1T1計數寄存器(H)8DHTL1T1計數寄存器(L)8BHSCON串行口控制寄存器98HSBUF串行口緩沖器99HPCON電源控制寄存器87H

CPU相關I/O相關中斷相關定時器/計數器相關串口相關752.2.3特殊功能寄存器

特殊功能寄存器(SFR)的位地址空間

凡是SFR的地址能被8整除的SFR(單元地址的末位是0或8)都具有位尋址功能,MCS-51單片機共有11個SFR具有位尋址功能,這些寄存器(單元)的每一位都有一個位地址。位地址空間:80~FFH。 特殊功能寄存器(SFR)的位地址空間的特點: (1)SFR對應的單元地址為該SFR最低位的位地址。 (2)SFR的位尋址區地址是不連續的。762.2.3特殊功能寄存器

SFR位尋址空間地址映射SFR

D7D6D5D4D3D2D1D0ACCE7E6E5E4E3E2E1E0BF7F6F5F4F3F2F1F0單元地址PSWD7D6D5D4D3D2D1D0IPBFBEBDBCBBBAB9B8B8P3B7B6B5B4B3B2B1B0B0IEAFAEADACABAAA9A8A8P2A7A6A5A4A3A2A1A0A0SCON9F9E9D9C9B9A999898P19796959493929190TCON8F8E8D8C8B8A8988P08786858483828180908880D0E0F0CyACF0RS1RS0OV—P———PSPT1PX1PT0PX0P3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0EA——ESET1EX1ET0EX0P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0SM0SM1SM2RENTB8RB8TIRITF1TR1TF0TR0IE1IT1IT0IE0772.2.3特殊功能寄存器MCS-51單片機SFR的使用: (1)對于SFR以單元形式訪問時,只能采用直接尋址方式。如:

MOVSBUF,AMOV99H,A

二者是等價的。 (2)對于80~FFH區間未定義的單元,用戶不得使用。同樣,對于未定義位地址所對應的位操作也是無效的。 (3)在編程時,最好不要采用SFR作為中間寄存器暫存中間結果。因為復位時,多數SFR被清0.782.2.4MCS-51單片機的位尋址空間

MCS-51單片機的位尋址空間由兩部分組成,位地址范圍為00~FFH。MCS-51位尋址空間片內RAM中20-2FH單元的128位,占用位地址范圍:00~7FH;地址能被8整除的SFR具有位尋址功能,占用位地址范圍:80~FFH792.2.5外部數據存儲器 MCS—51系列單片機的外部數據存儲器是一個獨立的物理空間,外部數據存儲器和外部I/O口共同占用這個空間,最大可以擴展到64K,地址范圍為:0000H~FFFFH。外部數據存儲器一般由靜態RAM構成,簡稱外部RAM。(1)外部RAM和外部I/O口與單片機的連接外部RAM和外部I/O口結構映射80

一、單片機I/O的作用 單片機芯片上的輸入輸出口有4個,P0,P1,P2和P3。它們的作用與單片機是否擴展有較大關系:(1)8051/8751不進行存儲器和I/O口擴展時

P0:I/O口;

P1:I/O口;

P2:I/O口;

P3:I/O口,也可以作為第二功能使用;當P3口某些引腳作為第二功能使用時,不可再作為I/O口線使用。如P3.0和P3.1作為RXD和TXD時,不可再作為I/O口線使用。2.3MCS-51單片機的I/O口

81(2)8031及8051/8751進行存儲器和I/O口擴展時

P0:低八位地址總線/數據總線

P2:高八位地址總線

P1:I/O口

P3:I/O口或第二功能,當P3口某些引腳作為第二功能使用時,不可再作為I/O口線使用。2.3MCS-51單片機的I/O口

一、單片機I/O的作用82(一)P0.0~P0.7:雙向I/O

(內置場效應管上拉)訪問外部程序存儲器時分時作為雙向8位數據口和輸出低8位地址復用口;不接外部程序存儲器時可作為8位準雙向I/O口使用。引腳P0.X21DQCK/Q讀引腳讀鎖存器寫鎖存器內部總線地址/數據控制34Vcc2.3MCS-51單片機的I/O口二、單片機I/O的工作原理2.3MCS-51單片機的I/O口21DQCK/Q讀引腳=1讀鎖存器=0寫鎖存器內部總線地址/數據控制引腳P0.X34控制=0時,此腳作輸入口(事先必須對它寫“1”)00100截止截止=0Vcc(1)P0.0~P0.7做輸入口,事先必須先寫1,然后再讀引腳的狀態。二、單片機I/O的工作原理842.3MCS-51單片機的I/O口21DQCK/Q讀引腳=0讀鎖存器=0寫鎖存器內部總線地址/數據控制引腳P0.X34控制=0時,此腳作輸出口(外接上拉電阻)00100截止截止=0Vcc

(2)P0.0~P0.7作為輸出口,引腳應外接上拉電阻。二、單片機I/O的工作原理VccR(外接)輸出=18521DQCK/Q讀引腳=0讀鎖存器=0寫鎖存器內部總線地址/數據控制=1引腳P0.X34控制=1時,此腳作地址/數據復用口:(1)輸出地址/數據=0時1011=0導通截止=0Vcc(3)P0.0~P0.7作為雙向8位數據口和輸出低8位地址復用口

【輸出0】2.3MCS-51單片機的I/O口二、單片機I/O的工作原理862.3MCS-51單片機的I/O口(4)P0.0—P0.7作為雙向8位數據口和輸出低8位地址復用口【輸出1】21DQCK/Q讀引腳=0讀鎖存器=0寫鎖存器內部總線引腳P0.X34控制=1時,此腳作地址/數據復用口:(2)輸出地址/數據=1時1100=1截止導通=1地址/數據控制=1Vcc二、單片機I/O的工作原理872.3MCS-51單片機的I/O口

(二)P2.0—P2.7:雙向I/O

(內置了上拉電阻)

外部程序存儲器時輸出高8位地址;不接外部程序存儲器時可作為8位準雙向I/O口使用。21DQCK/Q讀引腳讀鎖存器寫鎖存器內部總線地址高8位控制引腳P2.X3內部上拉電阻Vcc二、單片機I/O的工作原理882.3MCS-51單片機的I/O口(1)P2.0—P2.7作為8位準雙向I/O口使用【輸出】。21DQCK/Q讀引腳=1讀鎖存器=0寫鎖存器內部總線地址高8位控制

引腳P2.X控制=0時,此腳作通用輸出口:輸出=1時110截止3內部上拉電阻11Vcc=1=0二、單片機I/O的工作原理892.3MCS-51單片機的I/O口21DQCK/Q讀引腳=1讀鎖存器=0寫鎖存器內部總線地址高8位控制

引腳P2.X控制=0時,先寫1,此腳作通用輸入口10截止3內部上拉電阻11Vcc=0二、單片機I/O的工作原理(2)P2.0—P2.7作為8位準雙向I/O口使用【輸入】。902.3MCS-51單片機的I/O口21DQCK/Q讀引腳=0讀鎖存器=0寫鎖存器內部總線地址高8位控制=1

引腳P2.X01導通3內部上拉電阻0=0=0控制=1時,此腳作高8位地址A8—A15輸出口:當輸出=0時二、單片機I/O的工作原理(3)P2.0—P2.7作為高八位地址總線【輸出地址】。Vcc912.3MCS-51單片機的I/O口

(三)P3.0—P3.7:雙功能口(內置了上拉電阻)

具有特定的第二功能。在不使用它的第二功能時它就是普通的通用準雙向I/O口。21DQCK/Q讀引腳讀鎖存器寫鎖存器內部總線第二功能輸出引腳P3.X3內部上拉電阻Vcc第二功能輸入4二、單片機I/O的工作原理922.3MCS-51單片機的I/O口

(1)P3.0—P3.7作為第二功能【輸出RD/RW/TXD】。21DQCK/Q讀引腳讀鎖存器=0寫鎖存器內部總線第二功能輸出(WR,RD,TxD)引腳P3.X3內部上拉電阻Vcc4第二功能輸出時,內部自動D=1111反相器二、單片機I/O的工作原理932.3MCS-51單片機的I/O口21DQCK/Q讀引腳=0讀鎖存器=0寫鎖存器內部總線第二個能輸出此端自動=1引腳P3.X3內部上拉電阻Vcc

第二功能輸入(RxD/T0/T1/INT0/INT1)4第二功能輸入時,信號經緩沖器4直接進入內總線1110截止

(2)P3.0—P3.7作為第二功能【輸入RXD/T0/INT0】。二、單片機I/O的工作原理942.3MCS-51單片機的I/O口

(3)P3.0—P3.7作為通用I/O口【輸入】。二、單片機I/O的工作原理21DQCK/Q讀引腳=1讀鎖存器=0寫鎖存器內部總線引腳P3.X3內部上拉電阻Vcc

第二功能輸入4先寫1,再讀引腳1110截止第二個能輸出此端自動=1952.3MCS-51單片機的I/O口

(4)P3.0—P3.7作為通用I/O口【輸出】。二、單片機I/O的工作原理21DQCK/Q讀引腳=0讀鎖存器=0寫鎖存器內部總線引腳P3.X3內部上拉電阻Vcc

第二功能輸入4輸出1的操作1110截止1第二個能輸出此端自動=1輸出1962.3MCS-51單片機的I/O口

(四)P1.0—P1.7:準雙向I/O口(內置了上拉電阻)21DQCK/Q讀引腳=0讀鎖存器=0寫鎖存器內部總線Vcc引腳P1.X內部上拉電阻二、單片機I/O的工作原理972.3MCS-51單片機的I/O口

(1)P1.0—P1.7作為輸出口【輸出1】21DQCK/Q讀引腳=0讀鎖存器=0寫鎖存器內部總線Vcc引腳P1.X內部上拉電阻輸出數據=1時110截止=1二、單片機I/O的工作原理982.3MCS-51單片機的I/O口21DQCK/Q讀引腳=0讀鎖存器=0寫鎖存器內部總線Vcc引腳P1.X內部上拉電阻輸出數據=0時001=0導通

(2)P1.0—P1.7作為輸出口【輸出0】二、單片機I/O的工作原理992.3MCS-51單片機的I/O口21DQCK/Q讀引腳=1讀鎖存器=0寫鎖存器內部總線Vcc引腳P1.X內部上拉電阻輸入數據時,要先對其寫“1”110截止

(3)P1.0—P1.7作為輸入口二、單片機I/O的工作原理1002.3MCS-51單片機的I/O口21DQCK/Q讀引腳=0讀鎖存器寫鎖存器內部總線Vcc引腳P1.X內部上拉電阻

(五)讀單片機I/O口寄存器(以P1口為例)二、單片機I/O的工作原理=1101(1)驅動能力:

P0:雙向,8個TTLP1、P2和P3:準雙向,4個TTL

(2)作為輸入口使用,必須先寫1,再讀引腳狀態。 (3)由于P0口為內置場效應管上拉,作為輸出口時,上拉的場效應截止,輸出引腳與電源Vcc之間呈現開路狀態,因此,為了保證輸出口能夠輸出標準的高低電平,其輸出引腳應上拉電阻。2.3MCS-51單片機的I/O口三、單片機I/O的使用1022.4MCS-51單片機的時鐘電路與時序2.4.1MCS-51單片機的時鐘電路時鐘電路用來產生CPU工作所需的時鐘控制信號。時鐘的頻率直接影響單片機的速度,時鐘電路的質量直接影響單片機系統的穩定性。時鐘電路的設計形式:內部方式和外部方式(一)內部方式:原理:借助于單片機內部電路(反相放大器)外接晶體振蕩器和微調電容構成自激振蕩器,提供時鐘信號。

OSC:1.2M~12MHzC1、C2:5~30pF內部方式XTAL2XTAL18051C1C2OSC1032.4.1MCS-51單片機的時鐘電路XTAL1XTAL2外部振蕩源外部方式8051VCCR(2)外部方式直接使用外部振蕩脈沖信號。(常用于多CPU系統,以保持各個CPU同步工作)外部振蕩脈沖信號為滿足一定的幅寬的方波,頻率不大于12MHz。104

在計算機中,一條指令可分解為若干個基本的微操作,這些微操作所對應的脈沖信號在時間上有嚴格的先后次序,即為計算機的時序。(一)機器周期與指令周期與時序有關的周期:時鐘周期、機器周期、指令周期。振蕩周期(T

)為晶體振蕩器(晶振)的振蕩周期2.4.2MCS-51單片機的時序

機器周期(TM):CPU完成一個基本操作所用的時間。

MCS-51單片機的1個機器周期包含12個振蕩周期指令周期(TI):執行一條指令所用的時間;

MCS-51:1TI=1~4TM1052.4.2MCS-51單片機的時序MCS-51單片機的機器周期(TM)狀態P1相P2相TMTM1062.4.2MCS-51單片機的時序(二)典型指令的時序04XXXXXXXXXXXXXX程序存儲器2000H2002H2003H2004H2005H2006H2007H2001HINCA

的機器碼P1相P2相讀機器碼讀下一個機器碼,丟棄CPU執行指令INCA(PC)加1(PC)不加1(1)單字節單周期指令107

(2)雙字節單周期指令2.4.2MCS-51單片機的時序2450XXXXXXXXXXXX程序存儲器2000H2002H2003H2004H2005H2006H2007H2001H讀機器碼24讀機器碼50CPU執行指令ADDA,#50H(PC)加1(PC)加1(PC)加1(二)典型指令的時序讀下一個指令的機器碼108

(3)單字節雙周期指令2.4.2MCS-51單片機的時序程序存儲器A3XXXXXXXXXXXXXX2000H2002H2003H2004H2005H2006H2007H2001HCPU執行指令INCDPTR讀操作碼A3讀下一個操作碼,丟棄讀下一個操作碼,丟棄讀下一個操作碼,丟棄(PC)加1(PC)不加1(PC)不加1(PC)不加1(二)典型指令的時序1092.4.2MCS-51單片機的時序(4)單片機訪問外部數據存儲器指令的時序CPU執行訪問外部數據存儲器指令的時序(二)典型指令的時序1102.5MCS-51單片機的復位電路

2.5.1單片機復位及復位狀態

復位是單片機的一個重要的工作狀態。在單片機開始工作時需要上電復位、在運行過程中發生了故障或意外情況需要強制復位等。

復位目的是使單片機或系統中的其它部件處于某種確定的初始狀態。 MCS-51單片機復位的條件:在振蕩器運行的情況下,在RESET引腳上保持2個以上機器周期(24個振蕩周期)的高電平,就可以使單片機可靠地復位。1112.5MCS-51單片機的復位電路特殊功能寄存器及其復位時的內容寄存器內容備注寄存器內容備注PC0000HCPU從0單元執行程序TH100H清0DPTR0000H清0TL100H清0,定時器/計數器T1的初值為0ACC00H清0TCON00H關閉T0、T1B00H清0TMOD00HT0、T1為定時模式方式0、非門控方式SP07H堆棧從08H單元開始IPXXX00000B全部中斷為低優先級PSW00H當前工作寄存器區BANK0IE0XX00000B禁止所有中斷P0~P3FFH引腳輸出全為1,可直接作為輸入口使用SBUF不確定隨機數TH000H清0SCON00H方式0、禁止接收TL000H清0,定時器/計數器T0的初值為0PCON0XXXXXXXB清0/通信波特率不加倍CPUI/0定時器/計數器定時器/計數器中斷系統串行口1122.5MCS-51單片機的復位電路

(1)復位對片內RAM(00~7FH)的影響:在單片機工作過程中CPU復位時,不會影響MCS-51片內RAM(00~7FH)的狀態。

存儲在位尋址區20~2FH的標志位狀態不變,但是,R0~R7的內容不一定是復位以前的R0~R7,因為PSW被清0了,此時R0~R7代表的是00~07的內容。(2)復位對SFR(80~FFH)的影響:

單片機工作過程中CPU復位時,大多數SFR被清0,程序設計時必須注意。單片機工作過程復位對片內RAM和SFR的影響:1132.5MCS-51單片機的復位電路 MCS-51系列單片機的復位是由外部的復位電路實現的。 在實際應用中,單片機通常采用2種形式的復位電路:上電自動復位電路和按鈕開關復位電路。設計要求:在RESET(RST)端維持1~10ms的高電平。

2.5.1單片機復位及復位狀態

上電自動復位電路

按鈕開關及上電自動復位電路

114本章內容介紹完畢!THANKYOU!115第3章MCS-51單片機的指令系統本章內容MCS-51單片機指令系統的格式MCS-51單片機尋址方式指令系統的分析本章采用簡單例程講解解匯編語言指令功能1163.1指令格式指令:即命令,人們給計算機的命令指令有兩種表示方式:機器碼——機器語言(機器能直接識別)助記符——匯編語言(供設計人員使用)機器碼和助記符一一對應,匯編語言可匯編為機器語言,機器語言可反匯編為匯編語言。指令格式:匯編語言格式[標號:]操作碼助記符[操作數];[注釋]117

START:MOVA,#20H;把數20H送入累加器A中

INCA;(A)加一3.1指令格式匯編語言指令的幾種形式: (1)沒有操作數:RET,RETI,NOP

(2)有1個操作數:INCA,DEC20H,CLRC,SJMPNEXT

(3)有2個操作數:MOVR7,#DATA,ADDA,R0,DJNZR2,LOOP

(4)有3個操作數:CJNEA,#20H,NEQ1183.1指令格式機器語言的幾種形式: (1)單字節指令: INCDPTR指令機器代碼:A3ADDA,R7指令機器代碼:2F

(2)雙字節指令: SUBBA,2BH指令機器代碼:952BORLC,/27H指令機器代碼:A027

(3)三字節指令:

MOV20H,#00H指令機器代碼:752000LJMP2000H指令機器代碼:0220001193.2MCS-51單片機的尋址方式尋址方式:CPU執行指令時獲取操作數的方式MCS-51單片機有7種不同的尋址方式: (1)立即尋址方式 (2)直接尋址方式 (3)寄存器尋址方式 (4)寄存器間接尋址方式 (5)變址尋址方式 (6)位尋址方式 (7)相對尋址方式1203.2MCS-51單片機的尋址方式(1)立即尋址方式 在指令中直接給出了參與運算的操作數。

MOVA,#20H(2)直接尋址方式 指令中給出了參與運算的操作數所在單元的地址或所在位的位地址

MOVA,20HMOV27H.1,C

直接尋址方式的使用范圍:

1)單元地址:00~7FH、21個SFR 2)對SFR的訪問只能采用直接尋址方式1213.2MCS-51單片機的尋址方式

(3)寄存器尋址方式 指令指出了參與運算的操作數所在的寄存器。

MOVA,R0

寄存器尋址方式中的寄存器:

1)工作(通用)寄存器R0~R7、DPTR 2)累加器A、寄存器B(僅在乘除法時)和布爾累加器C

122(4)寄存器間接尋址方式在指令中,指出了存放參與運算的操作數所在單元地址的寄存器。

MOVA,@R0

3.2

MCS-51

單片機的尋址方式地址寄存器CPU?!!操作數在哪兒?它的地址在R0中

溫馨提示

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

評論

0/150

提交評論