單片機(jī)基礎(chǔ)知識(shí)_第1頁(yè)
單片機(jī)基礎(chǔ)知識(shí)_第2頁(yè)
單片機(jī)基礎(chǔ)知識(shí)_第3頁(yè)
單片機(jī)基礎(chǔ)知識(shí)_第4頁(yè)
單片機(jī)基礎(chǔ)知識(shí)_第5頁(yè)
已閱讀5頁(yè),還剩40頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2026/1/25/sundae_meng第1章

基礎(chǔ)知識(shí)

1.1碼制1.1.1英文字符的表示方法-ASCⅡ碼1.1.2BCD碼(二進(jìn)制編碼的十進(jìn)制數(shù))1.1.3計(jì)算機(jī)中帶符號(hào)數(shù)的表示方法1.2計(jì)算機(jī)的基本認(rèn)識(shí)1.2.1計(jì)算機(jī)的工作過(guò)程及其內(nèi)部結(jié)構(gòu)1.2.2指令及其指令系統(tǒng)1.3尋址方式1.4單片機(jī)及其發(fā)展概況1.4.1單片機(jī)及其特點(diǎn)1.4.2單片機(jī)技術(shù)現(xiàn)狀及將來(lái)發(fā)展趨勢(shì)1.4.3增強(qiáng)型MCS-51單片機(jī)芯片特征及主流2026/1/25/sundae_meng1.1碼制

在這一節(jié)中,主要介紹本課程常用到的ASCII碼,以及原碼、反碼、補(bǔ)碼,十進(jìn)制數(shù)的二進(jìn)制表示法—BCD碼等方面的基本知識(shí)。2026/1/25/sundae_meng

由于計(jì)算機(jī)只能處理二進(jìn)制數(shù),因此除了數(shù)值本身需要用二進(jìn)制數(shù)形式表示外,字符,包括數(shù)碼(如0,1,2,3,4,5,6,7,8,9)、字母(如A,B,C,D,…,X,Y,Z及a,b,c,d,…,x,y,z)、特殊符號(hào)(如%,!,+,-,=等)也必須用二進(jìn)制數(shù)表示,即在計(jì)算機(jī)中需將數(shù)碼、字母、特殊符號(hào)等代碼化,以便于計(jì)算機(jī)識(shí)別、存儲(chǔ)和處理。為了便于不同計(jì)算機(jī)系統(tǒng)和不同操作者之間的信息交換,有必要規(guī)范字母與7位二進(jìn)制數(shù)之間的對(duì)應(yīng)關(guān)系。目前在計(jì)算機(jī)系統(tǒng)中普遍采用美國(guó)標(biāo)準(zhǔn)信息交換代碼(AmericanStandardCodeforInformationInterchangeII,簡(jiǎn)稱ASCII碼)。

該標(biāo)準(zhǔn)用7位二進(jìn)制數(shù)表示一個(gè)字符,最多可以表示128個(gè)字符,編碼與字符之間的對(duì)應(yīng)關(guān)系如附錄A所示。

1.1.1

英文字符的表示方法—ASCⅡ碼2026/1/25/sundae_meng

十進(jìn)制畢竟是人們最習(xí)慣的記數(shù)方式,在向計(jì)算機(jī)輸入數(shù)據(jù)時(shí),常用十進(jìn)制數(shù)輸入,但計(jì)算機(jī)只認(rèn)識(shí)二進(jìn)制數(shù),因此每一位十進(jìn)制數(shù)必須用二進(jìn)制數(shù)表示。一位十進(jìn)制數(shù)包含0~9十個(gè)數(shù)碼,必須用4位二進(jìn)制數(shù)表示,這樣就需要確定0~9與4位二進(jìn)制數(shù)0000B~1111B之間的對(duì)應(yīng)關(guān)系,其中較常用的8421BCD碼規(guī)定了十進(jìn)制數(shù)0~9與4位二進(jìn)制數(shù)編碼之間的對(duì)應(yīng)關(guān)系如下:十進(jìn)制數(shù)8421BCD碼十進(jìn)制數(shù)8421BCD碼000005010110001601102001070111300118100040100910011.1.2BCD碼(二進(jìn)制編碼的十進(jìn)制數(shù))2026/1/25/sundae_meng1.原碼對(duì)于帶符號(hào)數(shù)來(lái)說(shuō),用最高位表示數(shù)的正負(fù),其余各位表示該數(shù)的絕對(duì)值,這種表示方法稱為原碼表示法2.反碼帶符號(hào)數(shù)也可以用反碼表示,反碼與原碼的關(guān)系是:

正數(shù)的反碼與原碼相同,如[56H]反=[56H]原=01010110B。

負(fù)數(shù)的反碼等于對(duì)應(yīng)正數(shù)原碼按位取反。3.補(bǔ)碼在計(jì)算機(jī)內(nèi),帶符號(hào)數(shù)并不是用原碼或反碼表示,而是用補(bǔ)碼表示,引入“原碼”、“反碼”的目的只是為了方便理解補(bǔ)碼概念而已。補(bǔ)碼的定義如下:正數(shù)的補(bǔ)碼與反碼、原碼相同;負(fù)數(shù)的補(bǔ)碼等于它的反碼加1。在計(jì)算機(jī)內(nèi)帶符號(hào)數(shù)使用補(bǔ)碼表示后,減法運(yùn)算就可以轉(zhuǎn)化為加法運(yùn)算。1.1.3計(jì)算機(jī)中帶符號(hào)數(shù)的表示方法2026/1/25/sundae_meng1.2計(jì)算機(jī)的基本認(rèn)識(shí)計(jì)算機(jī)系統(tǒng)的基本結(jié)構(gòu)如圖1-1所示

在計(jì)算機(jī)中,往往把運(yùn)算器、控制器做在一個(gè)芯片上,稱為中央處理器(CentralProcessorUnit,簡(jiǎn)稱CPU),有時(shí)也稱為微處理器(MicroProcessorUnit,MPU)。為了進(jìn)一步減小電路板面積,提高系統(tǒng)可靠性、降低成本,將輸入、輸出接口電路、時(shí)鐘電路以及存儲(chǔ)器、運(yùn)算器、控制器等部件集成到一個(gè)芯片內(nèi),就成為單片機(jī)(也稱為微控制單元,即MicroControllerUnit,簡(jiǎn)稱MCU),其含義是一個(gè)芯片就具備了一部完整計(jì)算機(jī)系統(tǒng)所必須的基本部件。為了適應(yīng)不同的需求,將不同功能的外圍電路,如定時(shí)器、中斷控制器、A/D及D/A轉(zhuǎn)換器、串行(如UART、SPI或I2C等)通信接口電路,甚至LCD顯示驅(qū)動(dòng)電路等集成在一個(gè)管芯內(nèi),形成系列化產(chǎn)品,就構(gòu)成了所謂“嵌入式”單片機(jī)控制器(embeddedmicrocontroller)。單片機(jī)原理與應(yīng)用1.三總線概念(1)地址總線(AddressBus,簡(jiǎn)稱AB),單向,用于傳送地址信息,如圖1-1中運(yùn)算器與存儲(chǔ)器之間的地址線,地址線的數(shù)目決定了可以尋址的存儲(chǔ)空間。

(2)數(shù)據(jù)總線(DataBus,簡(jiǎn)稱DB),一般為雙向,用于CPU與存儲(chǔ)器、CPU與外設(shè),或外設(shè)與外設(shè)之間的傳送數(shù)據(jù)(包括實(shí)際意義的數(shù)據(jù)和指令碼)信息。

(3)控制總線(ControlBus,簡(jiǎn)稱CB),是計(jì)算機(jī)系統(tǒng)中所有控制信號(hào)線的總稱,在控制總線中傳送的信息是控制信息。

在模擬電路中,器件、部件一般按“串聯(lián)”方式連接。而在計(jì)算機(jī)電路中卻采用總線連接方式:每一器件的數(shù)據(jù)線并接在一起,構(gòu)成數(shù)據(jù)總線;地址線接在一起,構(gòu)成地址總線,然后與CPU的數(shù)據(jù)、地址總線相連,屬“并聯(lián)”關(guān)系。為避免混亂,任何時(shí)候只允許一個(gè)設(shè)備與CPU通信,因此需要用控制線進(jìn)行控制、選擇,系統(tǒng)(包括器件)所有的控制線被稱為控制總線。。單片機(jī)原理與應(yīng)用2026/1/25/sundae_meng2.時(shí)鐘周期、機(jī)器周期及指令周期

(1)時(shí)鐘周期:計(jì)算機(jī)在時(shí)鐘信號(hào)的作用下,以節(jié)拍方式工作。因此,必須有一個(gè)時(shí)鐘生發(fā)器電路,輸入微處理器的時(shí)鐘信號(hào)的周期稱為時(shí)鐘周期。

(2)機(jī)器周期:機(jī)器完成一個(gè)基本動(dòng)作所需的時(shí)間稱為機(jī)器周期,一般由一個(gè)或一個(gè)以上的時(shí)鐘周期組成,例如在標(biāo)準(zhǔn)MCS-51系列單片機(jī)中,一個(gè)機(jī)器周期由12個(gè)時(shí)鐘周期組成。

(3)指令周期:執(zhí)行一條指令(如“MOVA,#34H”,該指令的含義是將立即數(shù)34H傳送到微處理器內(nèi)的累加器A中)所需時(shí)間稱為指令周期,它由一個(gè)到數(shù)個(gè)機(jī)器周期組成。

1.2.1計(jì)算機(jī)的工作過(guò)程及其內(nèi)部結(jié)構(gòu)

1.8位通用微處理器內(nèi)部結(jié)構(gòu)8位通用微處理器內(nèi)部基本結(jié)構(gòu)可用圖1-2描述。圖1-2CPU的內(nèi)部結(jié)構(gòu)簡(jiǎn)圖單片機(jī)原理與應(yīng)用2026/1/25/sundae_meng

由算術(shù)邏輯運(yùn)算單元(ArithmeticLogicUnit,簡(jiǎn)稱ALU)、累加器A(8位)、寄存器B(8位)、程序狀態(tài)字寄存器PSW(8位)、程序計(jì)數(shù)器PC(有時(shí)也稱為指令指針,即IP,16位)、地址寄存器AR(16位)、數(shù)據(jù)寄存器DR(8位)、指令寄存器IR(8位)、指令譯碼器ID、控制器等部分組成。2026/1/25/sundae_meng2.存儲(chǔ)器

存儲(chǔ)器是計(jì)算機(jī)系統(tǒng)中必不可少的存儲(chǔ)設(shè)備,主要用于存放程序(指令)和數(shù)據(jù)。盡管寄存器和存儲(chǔ)器均用于存儲(chǔ)信息,但CPU內(nèi)的寄存器數(shù)量少,存取速度快,它主要用于臨時(shí)存放參加運(yùn)算的操作數(shù)和中間結(jié)果;而存儲(chǔ)器一般在CPU外(但單片機(jī)CPU例外,其內(nèi)部一般均含有一定容量的存儲(chǔ)器),單獨(dú)封裝。存儲(chǔ)器的種類很多,根據(jù)存儲(chǔ)器能否隨機(jī)讀寫(xiě),將存儲(chǔ)器分為兩大類:只讀存儲(chǔ)器(ReadOnlyMemory,簡(jiǎn)稱ROM)。隨機(jī)讀寫(xiě)存儲(chǔ)器(RandomAccessMemory,簡(jiǎn)稱RAM)。2026/1/25/sundae_meng

在單片機(jī)應(yīng)用系統(tǒng)中,所需的存儲(chǔ)器容量不大,常用PROM(可編程的只讀存儲(chǔ)器)、EPROM(紫外光可擦寫(xiě)的只讀存儲(chǔ)器)、OTPROM(一次性編程的只讀存儲(chǔ)器,內(nèi)部結(jié)構(gòu)、工作原理與EPROM相似,是一種沒(méi)有擦寫(xiě)窗口的EPROM)、EEPROM(也稱為E2PROM,是一種電可擦寫(xiě)的只讀存儲(chǔ)器,其結(jié)構(gòu)與EPROM類似,但絕緣柵很薄,高速電子可穿越絕緣層,中和浮柵上的正電荷,起到擦除目的,也就是說(shuō)可通過(guò)高電壓擦除)、FlashROM(電可擦寫(xiě)只讀存儲(chǔ)器,寫(xiě)入速度比EEPROM快,因此也稱為閃爍存儲(chǔ)器)等只讀存儲(chǔ)器作為程序存儲(chǔ)器,使用SRAM(靜態(tài)存儲(chǔ)器)作隨機(jī)讀寫(xiě)RAM,使用E2PROM或FRAM(鐵電存儲(chǔ)器,讀寫(xiě)速度快,操作方法與SRAM相似)作非易失的數(shù)據(jù)存儲(chǔ)器。盡管這些存儲(chǔ)器工作原理不同,但內(nèi)部結(jié)構(gòu)基本相同。圖1-3存儲(chǔ)器芯片及內(nèi)部結(jié)構(gòu)(1)內(nèi)部結(jié)構(gòu)EPROM、EEPROM、FlashROM、SRAM、FRAM等存儲(chǔ)器內(nèi)部結(jié)構(gòu)可以用圖1-3描述,由地址譯碼器、存儲(chǔ)單元、讀寫(xiě)控制電路等部分組成。單片機(jī)原理與應(yīng)用2026/1/25/sundae_meng(2)存儲(chǔ)器工作狀態(tài)

工作模式控制信號(hào)輸出片選信號(hào)輸出允許寫(xiě)允許信號(hào)讀LLH數(shù)據(jù)輸出輸出禁止LHH高阻態(tài)待用(功率下降)H××高阻態(tài)寫(xiě)入LHL數(shù)據(jù)輸入存儲(chǔ)器芯片工作狀態(tài)由存儲(chǔ)器控制信號(hào)電平狀態(tài)決定(3)存儲(chǔ)器讀操作

下面以CPU讀取存儲(chǔ)器中地址編號(hào)為0000H的存儲(chǔ)單元的內(nèi)容為例,說(shuō)明CPU讀存儲(chǔ)器中某一存儲(chǔ)單元信息的操作過(guò)程(如圖1-4所示)。

圖1-4CPU讀取存儲(chǔ)器操作過(guò)程示意圖/sundae_meng2026/1/25/sundae_meng1.2.2指令及其指令系統(tǒng)1.指令及指令系統(tǒng)

將CPU所執(zhí)行的各種操作,如從指定的存儲(chǔ)器單元中取數(shù)據(jù)、將CPU內(nèi)特定寄存器內(nèi)容寫(xiě)入存儲(chǔ)器某一指定的存儲(chǔ)單元中以及算術(shù)或邏輯運(yùn)算等操作,用命令的形式記錄下來(lái),就稱為指令(Instruction),一條指令與計(jì)算機(jī)的一種基本操作相對(duì)應(yīng)。當(dāng)然,指令也只能用二進(jìn)制代碼表示,例如在MCS-51系列單片機(jī)中,累加器A中的內(nèi)容除以寄存器B中的內(nèi)容(即A÷B)的操作用84H作為指令代碼。一條指令通常由操作碼和操作數(shù)兩部分組成:操作碼(Operationcode)規(guī)定了指令要執(zhí)行的動(dòng)作,一般用一個(gè)字節(jié)表示;操作數(shù)(Operand)指定了參加操作的數(shù)據(jù)或數(shù)據(jù)所在的存儲(chǔ)單元的地址。在計(jì)算機(jī)中,所有指令的集合稱為指令系統(tǒng)。2026/1/25/sundae_meng

不同計(jì)算機(jī)指令系統(tǒng)所包含的指令種類、數(shù)目、指令代碼對(duì)應(yīng)的操作由CPU設(shè)計(jì)人員指定。因此,不同種類的CPU具有不同的指令系統(tǒng)。一般說(shuō)來(lái),不同系列CPU的指令系統(tǒng)不一定相同,除非它們彼此兼容。根據(jù)計(jì)算機(jī)指令系統(tǒng)的特征,可以將計(jì)算機(jī)指令系統(tǒng)分為兩大類,即復(fù)雜指令系統(tǒng)(ComplexInstructionSetComputer,簡(jiǎn)稱CISC指令結(jié)構(gòu))和精簡(jiǎn)指令系統(tǒng)(ReducedInstructionSetComputer,簡(jiǎn)稱RISC指令結(jié)構(gòu))。2026/1/25/sundae_meng

采用復(fù)雜指令結(jié)構(gòu)的計(jì)算機(jī)系統(tǒng),如MCS-51系列單片機(jī)具有如下特點(diǎn):

(1)指令機(jī)器碼長(zhǎng)短不一,簡(jiǎn)單指令碼只有一個(gè)字節(jié),而復(fù)雜指令可能需要兩個(gè)或兩個(gè)以上字節(jié)描述。根據(jù)指令代碼的長(zhǎng)短,可將指令分為:

單字節(jié)指令:這類指令僅有操作碼,沒(méi)有操作數(shù),或者操作數(shù)隱含在操作碼字節(jié)中。

雙字節(jié)指令:這類指令第一字節(jié)為操作碼,第二個(gè)字節(jié)為操作數(shù)。

多字節(jié)指令:這類指令第一字節(jié)為操作碼,第二、三字節(jié)為操作數(shù)或操作數(shù)所在存儲(chǔ)單元地址。

(2)可選擇兩條或兩條以上指令完成同一操作,程序設(shè)計(jì)靈活性大,但缺點(diǎn)是指令數(shù)目較多(這類CPU一般具有數(shù)十條~百余條指令)2026/1/25/sundae_meng

采用精簡(jiǎn)指令技術(shù)的計(jì)算機(jī)指令系統(tǒng)情況剛好相反:完成同一操作,一般只有一條指令可供選擇,指令數(shù)目相對(duì)較少,尤其是采用了精簡(jiǎn)指令的單片機(jī)CPU,如PIC系列、Atmel的AVR系列單片機(jī),指令數(shù)目?jī)H為數(shù)十條,但程序設(shè)計(jì)的靈活性相對(duì)較差;另外,在采用精簡(jiǎn)指令技術(shù)的計(jì)算機(jī)系統(tǒng)中,指令機(jī)器碼長(zhǎng)度相同,例如PIC16C54單片機(jī)任一指令機(jī)器碼的長(zhǎng)度均為12位(1.5字節(jié)),由于所有指令碼長(zhǎng)度相同,取指、譯碼過(guò)程中不必做更多的判斷,因而指令執(zhí)行速度較快。

但無(wú)論采用何種類型的指令系統(tǒng),任何CPU的指令系統(tǒng)都會(huì)提供:數(shù)據(jù)傳送指令、算術(shù)/邏輯運(yùn)算指令、控制轉(zhuǎn)移指令等四種基本類型指令。此外,在單片機(jī)系統(tǒng)中,還要提供位操作指令,以簡(jiǎn)化控制系統(tǒng)的程序設(shè)計(jì)。

2026/1/25/sundae_meng

用二進(jìn)制代碼表示的指令稱為機(jī)器語(yǔ)言指令,其中的二進(jìn)制代碼稱為指令的機(jī)器碼。機(jī)器語(yǔ)言指令是計(jì)算機(jī)系統(tǒng)惟一能夠理解和執(zhí)行的指令。正因如此,形象地將二進(jìn)制代碼形式的指令稱為機(jī)器語(yǔ)言指令。由于機(jī)器語(yǔ)言指令中的操作碼和操作數(shù)均用二進(jìn)制數(shù)表示、書(shū)寫(xiě),沒(méi)有明顯的特征,一般人很難理解和記憶。為此,人們想出了一個(gè)辦法:將每條指令操作碼所要完成的動(dòng)作指令功能的英文縮寫(xiě)替代指令操作碼,形成了指令操作碼的助記符;并將機(jī)器語(yǔ)言指令中的操作數(shù)也用CPU內(nèi)寄存器名、存儲(chǔ)單元地址或I/O端口號(hào)代替,這樣便形成了操作數(shù)助記符,于是就獲得了“匯編語(yǔ)言指令”。例如,將累加器A內(nèi)容清零,記為“CLRA”;用“MOV”作為數(shù)據(jù)傳送指令的助記符,于是將立即數(shù)23H傳送到累加器A中的指令,就可以用“MOVA,#23H”(#是立即數(shù)標(biāo)志)表示;將存儲(chǔ)器4FH單元中的內(nèi)容傳送到累加器A中,可用“MOVA,4FH”表示??梢?jiàn),匯編語(yǔ)言指令比機(jī)器語(yǔ)言指令容易理解和記憶。

2026/1/25/sundae_meng2.程序

程序(Program)就是指令的有機(jī)組合,是完成特定工作所用到的指令(這些指令當(dāng)然是某個(gè)特定計(jì)算機(jī)系統(tǒng)的指令)的總稱。一段程序通常由多條指令組成,程序中所包含的指令數(shù)目及種類由程序功能決定。用機(jī)器語(yǔ)言指令碼編寫(xiě)的程序,就稱為機(jī)器語(yǔ)言程序,如:機(jī)器語(yǔ)言指令 含義(即對(duì)應(yīng)匯編語(yǔ)言指令)74AA ;MOVA,#0AAHE4 ;CLEA854030 ;MOV30H,40H2026/1/25/sundae_meng3.匯編語(yǔ)言及匯編語(yǔ)言程序

將每條指令操作碼所要完成的動(dòng)作用特定符號(hào)表示,即用指令功能的英文縮寫(xiě)替代指令操作碼,形成了指令操作碼的助記符;并將機(jī)器語(yǔ)言指令中的操作數(shù)也用CPU內(nèi)寄存器名、存儲(chǔ)單元地址或I/O端口號(hào)代替,這樣便形成了操作數(shù)助記符,于是就獲得了“匯編語(yǔ)言指令”。例如,將累加器A內(nèi)容清零,記為“CLRA”;用“MOV”作為數(shù)據(jù)傳送指令的助記符,于是將立即數(shù)23H傳送到累加器A中的指令,就可以用“MOVA,#23H”(#是立即數(shù)標(biāo)志)表示;將存儲(chǔ)器4FH單元中的內(nèi)容傳送到累加器A中,就用“MOVA,4FH”表示??梢?jiàn),匯編語(yǔ)言指令比機(jī)器語(yǔ)言指令容易理解和記憶。

用指令助記符(由操作碼助記符和操作數(shù)助記符組成)表示的指令稱為匯編語(yǔ)言指令,由匯編語(yǔ)言指令構(gòu)成的程序,稱為匯編語(yǔ)言程序(有時(shí)也稱為匯編語(yǔ)言源程序)??梢?jiàn),匯編語(yǔ)言程序容易理解、可讀性強(qiáng),方便了程序的編寫(xiě)和維護(hù)。2026/1/25/sundae_meng

當(dāng)然,計(jì)算機(jī)只能理解和執(zhí)行二進(jìn)制代碼形式的機(jī)器語(yǔ)言指令,不能理解和執(zhí)行匯編語(yǔ)言指令。但可以通過(guò)專門(mén)軟件或手工查表方式將匯編語(yǔ)言程序中的匯編語(yǔ)言指令逐條翻譯成對(duì)應(yīng)的機(jī)器語(yǔ)言指令,即可獲得計(jì)算機(jī)能理解和執(zhí)行的機(jī)器語(yǔ)言程序。將匯編語(yǔ)言程序轉(zhuǎn)換為機(jī)器語(yǔ)言程序的過(guò)程就稱為匯編過(guò)程,將完成匯編語(yǔ)言指令轉(zhuǎn)換為機(jī)器語(yǔ)言指令的程序稱為匯編程序,可見(jiàn)匯編程序的功能就是逐一讀出匯編語(yǔ)言源程序中的匯編語(yǔ)言指令,再通過(guò)查表比較方式,將其中的匯編語(yǔ)言指令逐一轉(zhuǎn)換成機(jī)器語(yǔ)言指令。當(dāng)然這一過(guò)程也可以由人工查表完成,即所謂的人工匯編。2026/1/25/sundae_meng4.偽指令

在匯編語(yǔ)言源程序中,除了包含可以轉(zhuǎn)化為特定計(jì)算機(jī)系統(tǒng)的機(jī)器語(yǔ)言指令所對(duì)應(yīng)的匯編語(yǔ)言指令外,還可能包含一些偽指令,如“ORG2000H”、“END”等?!皞巍闭?,假也,盡管它不是計(jì)算機(jī)系統(tǒng)對(duì)應(yīng)的指令,匯編時(shí)也不產(chǎn)生機(jī)器碼。但匯編語(yǔ)言程序中的偽指令并非可有可無(wú),偽指令的作用是:指導(dǎo)匯編程序?qū)υ闯绦虻膮R編。

下面是MCS-51匯編程序支持的、常見(jiàn)的偽指令:(1)ORGnnnn

;其中nnnn是16位二進(jìn)制數(shù),該指令的含義是隨后的匯編語(yǔ)言指令機(jī)器碼從nnnn單元開(kāi)始存放。(2)DBn1,n2,n3,…;字節(jié)定義偽指令,將隨后的一串8位二進(jìn)制數(shù)(字節(jié),彼此由逗號(hào)隔開(kāi))連續(xù)存放在存儲(chǔ)器中,用于定義字節(jié)常數(shù)表。2026/1/25/sundae_meng

(3)DWnn1,nn2,nn3,…;字定義偽指令,將隨后的一串16位二進(jìn)制數(shù)(兩個(gè)字節(jié),彼此由逗號(hào)隔開(kāi))連續(xù)存放在存儲(chǔ)器中,用于定義字常數(shù)表。(4)

DSn

;保留n個(gè)存儲(chǔ)單元偽指令。(5)

“符號(hào)名EQU數(shù)或匯編符號(hào)”;等值定義偽指令,將某一常數(shù)或匯編符號(hào)用另一字符串代替,其中的匯編符號(hào)可以是寄存器名,存儲(chǔ)單元地址,甚至是指令操作碼助記符。(6)

“符號(hào)名Bitbit”;位定義偽指令,將某一位存儲(chǔ)單元地址用字符串代替。(7)

“符號(hào)名DATAnn

”;地址定義偽指令,將某一存儲(chǔ)單元地址用字符串代替。例如“TIMELDATA30H”偽指令的含義是存儲(chǔ)器30H單元用“TIMEL”地址變量表示。(8)

END

;匯編結(jié)束偽指令,該指令將告訴匯編程序下面沒(méi)有需要匯編的指令。2026/1/25/sundae_meng5.匯編語(yǔ)言指令的一般格式Intel系列CPU匯編語(yǔ)言指令格式為:

[標(biāo)號(hào):]指令操作碼助記符[第一操作數(shù)][,第二操作數(shù)][,第三操作數(shù)][;注釋]6.指令的執(zhí)行過(guò)程

指令執(zhí)行過(guò)程可用如圖1-5描述??梢?jiàn),一條指令的執(zhí)行過(guò)程包括了:取操作碼(取指令第一字節(jié))→譯碼(對(duì)指令操作碼進(jìn)行翻譯,指示控制器給出相應(yīng)的控制信號(hào))→取操作數(shù)(取出指令第二、三字節(jié),指令第一字節(jié),即操作碼字節(jié)將告訴CPU該指令的長(zhǎng)短)→執(zhí)行指令規(guī)定的操作。然后,不斷重復(fù)“取操作碼→譯碼→取操作數(shù)→執(zhí)行”的過(guò)程,執(zhí)行隨后的指令,直到程序結(jié)束(如遇到停機(jī)或暫停指令)。在指令取出過(guò)程中,程序計(jì)數(shù)器PC每輸出一個(gè)地址編碼到地址寄存器AR后,PC內(nèi)容自動(dòng)加1,指向下一個(gè)存儲(chǔ)單元。圖1-5指令執(zhí)行過(guò)程示意圖/sundae_meng2026/1/25/sundae_meng1.3尋址方式

指令由操作碼和操作數(shù)組成,確定指令中操作數(shù)所在存儲(chǔ)單元地址的方式,就是尋址方式。對(duì)于只有操作碼的指令,不存在尋址方式問(wèn)題;對(duì)于雙操作數(shù)指令來(lái)說(shuō),每一操作數(shù)都有自己的尋址方式。例如,在含有兩個(gè)操作數(shù)的指令中,第一操作數(shù)(也稱為目的操作數(shù))有自己的尋址方式;第二操作數(shù)(稱為源操作數(shù))也有自己的尋址方式。在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,為減少指令碼的長(zhǎng)度,對(duì)于算術(shù)、邏輯運(yùn)算指令,一般將第一操作數(shù)和第二操作數(shù)的運(yùn)算結(jié)果經(jīng)ALU數(shù)據(jù)輸出口回送CPU內(nèi)部數(shù)據(jù)總線,再存放到第一操作數(shù)所指定的存儲(chǔ)單元中。2026/1/25/sundae_meng指令中的操作數(shù)只能是下列內(nèi)容之一:(1)CPU內(nèi)某一寄存器名,如累加器A、通用寄存器B、堆棧指針SP等。CPU內(nèi)含有什么寄存器由CPU類型決定。例如,在MCS-51系列單片機(jī)CPU內(nèi),就含有累加器A、通用寄存器B、堆棧指針SP、程序狀態(tài)字寄存器PSW以及工作寄存器組R7~R0。(2)存儲(chǔ)單元。存貯單元地址范圍由CPU尋址范圍以及實(shí)際安裝的存儲(chǔ)器容量、連接方式?jīng)Q定。(3)I/O端口號(hào)。在通用微機(jī)系統(tǒng)中,I/O地址空間與存儲(chǔ)器地址空間相互獨(dú)立;不過(guò)在單片機(jī)系統(tǒng)中,I/O端口地址空間往往與外存儲(chǔ)器地址空間連在一起,不再區(qū)分。(4)常數(shù)。常數(shù)類型及范圍也與CPU類型有關(guān)。2026/1/25/sundae_meng1.立即尋址方式

當(dāng)指令第二操作數(shù)(源操作數(shù))為8位或16位常數(shù)時(shí),就稱為立即尋址方式,其中的常數(shù)稱為立即數(shù)。如:MOVA,#23H ;其中第二操作數(shù)“23H”就是立即數(shù),含義是將立即數(shù)23H傳送到累加器A(目的操作數(shù))中。又如:MOVDPTR,#2000H;將立即數(shù)2000H送到數(shù)據(jù)指針DPTR(16位寄存器)寄存器中。在立即尋址方式中,立即數(shù)包含在指令碼中,取出指令碼時(shí)也就取出了可以立即使用的操作數(shù)(也正因如此,該操作數(shù)被稱為“立即數(shù)”,并把這一尋址方式形象地稱為“立即尋址”方式)。例如“MOVA,#23H”指令機(jī)器碼為“7423”,在存儲(chǔ)器中的存放位置及執(zhí)行結(jié)果可用圖1-6表示。2026/1/25/sundae_meng圖1-6立即尋址示意圖2.直接尋址方式

在直接尋址方式中,操作數(shù)是某一存儲(chǔ)單元的地址碼。例如:MOVA,0023H;直接使用存儲(chǔ)單元地址作為源操作數(shù)。該指令的含義是將0023H存儲(chǔ)單元中的內(nèi)容傳送到累加器A中,其中的“0023H”不再是立即數(shù),而是存儲(chǔ)單元的地址編碼。假設(shè)存儲(chǔ)器中0023H單元的內(nèi)容為55H,則該指令執(zhí)行后,累加器A中的內(nèi)容將變?yōu)?5H,指令代碼和執(zhí)行結(jié)果可用圖1-7表示。圖1-7直接尋址示意圖

在直接尋址方式中,存儲(chǔ)單元地址一般為16位,但在MCS-51系列單片機(jī)中,直接尋址方式僅適用于內(nèi)部RAM前128(00H~7FH)字節(jié)存儲(chǔ)單元、片內(nèi)位存儲(chǔ)單元(00H~7FH)、特殊功能寄存器(80H~FFH),因此地址編碼僅為8位,如:

MOV23H,A/sundae_meng2026/1/25/sundae_meng3.寄存器尋址方式

在寄存器尋址方式中,操作數(shù)是CPU內(nèi)的某一寄存器名。例如:MOVA,23H;在這條指令中,目的操作數(shù)是累加器A。因此,這條指令目的操作數(shù)采用寄存器尋址方式。寄存器尋址方式可以用在目的操作數(shù)中,也可以用在源操作數(shù)中,如:MOV23H,A;在這條指令中,累加器A是源操作數(shù)。因此,這條指令源操作數(shù)采用寄存器尋址方式。

在MCS-51中,可用于寄存器尋址方式的寄存器有:累加器A、寄存器B(但僅限于乘法指令)、數(shù)據(jù)指針DPTR、位操作指令中的進(jìn)位標(biāo)志Cy、工作組寄存器R7~R0。2026/1/25/sundae_meng4.寄存器間接尋址方式

將寄存器內(nèi)容作為指令中操作數(shù)所在存儲(chǔ)單元地址編碼的尋址方式,稱為寄存器間接尋址方式。例如:MOVA,@R0該指令的含義是將寄存器R0內(nèi)容指定的內(nèi)部RAM單元的內(nèi)容傳送到累加器A中。假設(shè)R0=23H,而內(nèi)部RAM23H單元的內(nèi)容為55H,則指令執(zhí)行后,累加器A的內(nèi)容將為55H。指令中的“@”是間接尋址標(biāo)志,該指令與“MOVA,R0”不同,“MOVA,R0”指令源操作數(shù)采用寄存器尋址方式,含義是將寄存器R0內(nèi)容傳送到累加器中,因此“MOVA,R0”指令執(zhí)行后,A的內(nèi)容將是23H。

一般說(shuō)來(lái),CPU內(nèi)僅有部分寄存器可用作間接尋址寄存器,至于哪些寄存器可用作間接尋址寄存器由CPU指令系統(tǒng)決定。例如,在MCS-51系列單片機(jī)中,只能使用寄存器R0、R1以及DPTR作為間接尋址寄存器。2026/1/25/sundae_meng5.變址尋址方式

將某一寄存器作為基址寄存器,另一寄存器作為變址寄存器,兩者相加后作為操作數(shù)所在存儲(chǔ)單元地址的尋址方式就稱為變址尋址方式。例如:MOVCA,@A+DPTR數(shù)據(jù)指針寄存器DPTR(16位,作為基址寄存器)加上累加器A(作為變址寄存器)后獲得存儲(chǔ)器單元地址,并將該單元內(nèi)容傳送到累加器A中。在這一指令中,源操作數(shù)采用了變址尋址方式。2026/1/25/sundae_meng6.相對(duì)尋址

相對(duì)尋址的含義是以程序計(jì)數(shù)器PC的當(dāng)前值加上指令中給出的相對(duì)偏移量rel作為程序計(jì)數(shù)器PC的值,這一尋址方式用在條件轉(zhuǎn)移指令中。例如:JZlable ;其中l(wèi)able為轉(zhuǎn)移的目標(biāo)地址2026/1/25/sundae_meng7.位尋址方式

位尋址方式是MCS-51系列單片機(jī)特有的一種尋址方式,盡管目前控制系統(tǒng)中多用4位、8位、16位,甚至32位單片機(jī)芯片,但有時(shí)只需要完成簡(jiǎn)單的邏輯控制,如電機(jī)的開(kāi)、關(guān);指示燈的亮、滅,為此8位單片機(jī)系統(tǒng)也支持位尋址功能,例如:MOVC,23H;指令中的“C”是進(jìn)位標(biāo)志Cy的簡(jiǎn)稱,23H是位尋址空間內(nèi)的位地址。操作碼與操作數(shù)不同尋址方式的組合就構(gòu)成了特定CPU的指令系統(tǒng),但在特定CPU指令系統(tǒng)內(nèi),操作碼支持何種類型的尋址方式,由CPU決定。例如在MCS-51指令系統(tǒng)中,PUSH指令(將操作數(shù)壓入堆棧)只支持直接尋址方式。2026/1/25/sundae_meng1.4單片機(jī)及其發(fā)展概況

計(jì)算機(jī)技術(shù)三個(gè)發(fā)展方向:巨型化微型化

單片化:1.4.1單片機(jī)及其特點(diǎn)

1.單片機(jī)概念在通用微機(jī)中央處理器基礎(chǔ)上,將輸入/輸出(I/O)接口電路、時(shí)鐘電路以及一定容量的存儲(chǔ)器等部件集成在同一芯片上,再加上必要的外圍器件,如晶體振蕩器,就構(gòu)成了一個(gè)較為完整的計(jì)算機(jī)硬件系統(tǒng)。由于這類計(jì)算機(jī)系統(tǒng)的基本部件均集成在同一芯片內(nèi),因此被稱為單片微控制器(Single-Chip-MicroController,簡(jiǎn)稱單片機(jī)——國(guó)內(nèi)習(xí)慣稱謂)、微控制單元(MicroControllerUnit,簡(jiǎn)稱MCU)或嵌入式控制器(EmbeddedController)。

2026/1/25/sundae_meng2.單片機(jī)芯片主要特征(1)抗干擾性強(qiáng),工作溫度范圍寬(按工作溫度分類,有民用級(jí)、工業(yè)級(jí)、汽車級(jí)及軍用級(jí))。(2)可靠性高。在工業(yè)控制中,任何差錯(cuò)都可能造成極其嚴(yán)重的后果,因此在單片機(jī)芯片中普遍采用硬件看門(mén)狗技術(shù),通過(guò)“復(fù)位”喚醒處于“失控”狀態(tài)下單片機(jī)芯片。(3)電磁輻射量小。(4)控制功能往往很強(qiáng),數(shù)值計(jì)算能力較差。(5)指令系統(tǒng)比通用微機(jī)系統(tǒng)簡(jiǎn)單。(6)單片機(jī)芯片往往不是單一數(shù)字電路芯片,而是數(shù)字、模擬混合電路系統(tǒng),即單片機(jī)芯片內(nèi)常集成了一定數(shù)量的模擬比較器、AD及DA轉(zhuǎn)換電路等。(7)采用嵌入式結(jié)構(gòu)。

(8)更新?lián)Q代速度比通用微處理器慢得多。2026/1/25/sundae_meng1.4.2單片機(jī)技術(shù)現(xiàn)狀及將來(lái)發(fā)展趨勢(shì)單片機(jī)芯片系列、品種、規(guī)格繁多,先后經(jīng)歷4位機(jī)、8位機(jī)、16位機(jī)、新一代8位機(jī)、32位機(jī)等幾個(gè)具有代表性的發(fā)展階段。

目前主流品種主要是新一代8位單片機(jī)芯片、32位嵌入式單片機(jī)芯片。2026/1/25/sundae_meng1.8位單片機(jī)芯片的主流品種

MCS-51系列最先由Intel公司開(kāi)發(fā),后來(lái)其他公司通過(guò)技術(shù)轉(zhuǎn)讓、交換等方式取得了MCS-51內(nèi)核技術(shù)。生產(chǎn)廠家很多,目前主要有Philips、Atmel、Winbond(W78及W77系列)、SST、STC、LG(GMS90系列)等。

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論