




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí)第1章 基礎(chǔ)知識(shí) 1.1 碼制1.1.1 英文字符的表示方法-asc碼1.1.2 bcd碼(二進(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ī)芯片特征及主流第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí)1.1 碼制 在這一節(jié)中,主要介紹本課程常用到的ascii碼,以及原碼、反碼、補(bǔ)碼,十進(jìn)制數(shù)的二進(jìn)制表示法bcd碼等方面的基本知識(shí)。第第1章章 基礎(chǔ)
2、知識(shí)基礎(chǔ)知識(shí) 由于計(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)信息交換代碼(american standard code for information interchange ii,簡(jiǎn)稱(chēng)a
3、scii碼)。 該標(biāo)準(zhǔn)用7位二進(jìn)制數(shù)表示一個(gè)字符,最多可以表示128個(gè)字符,編碼與字符之間的對(duì)應(yīng)關(guān)系如附錄a所示。 1.1.1 英文字符的表示方法字符的表示方法asc碼碼第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí) 十進(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ù)包含09十個(gè)數(shù)碼,必須用4位二進(jìn)制數(shù)表示,這樣就需要確定09與4位二進(jìn)制數(shù)0000b1111b之間的對(duì)應(yīng)關(guān)系,其中較常用的8421 bcd碼規(guī)定了十進(jìn)制數(shù)09與4位二進(jìn)制數(shù)編碼之間的對(duì)應(yīng)關(guān)系如下:十進(jìn)制數(shù)8421 bcd碼十進(jìn)制數(shù)8421 bcd碼00
4、0005010110001601102001070111300118100040100910011.1.2 bcd碼(二進(jìn)制編碼的十進(jìn)制數(shù))碼(二進(jìn)制編碼的十進(jìn)制數(shù))第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí)1. 原碼原碼 對(duì)于帶符號(hào)數(shù)來(lái)說(shuō),用最高位表示數(shù)的正負(fù),其余各位表示該數(shù)的絕對(duì)值,這種表示方法稱(chēng)為原碼表示法 2. 反碼反碼 帶符號(hào)數(shù)也可以用反碼表示,反碼與原碼的關(guān)系是: 正數(shù)的反碼與原碼相同,如56h反=56h原=0 1010110b。 負(fù)數(shù)的反碼等于對(duì)應(yīng)正數(shù)原碼按位取反。 3. 補(bǔ)碼補(bǔ)碼 在計(jì)算機(jī)內(nèi),帶符號(hào)數(shù)并不是用原碼或反碼表示,而是用補(bǔ)碼表示,引入“原碼”、“反碼”的目的只是為了方便理解補(bǔ)碼概
5、念而已。 補(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ù)的表示方法計(jì)算機(jī)中帶符號(hào)數(shù)的表示方法第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí)1.2 計(jì)算機(jī)的基本認(rèn)識(shí) 計(jì)算機(jī)系統(tǒng)的基本結(jié)構(gòu)如圖1-1所示 在計(jì)算機(jī)中,往往把運(yùn)算器、控制器做在一個(gè)芯片上,稱(chēng)為中央處理器(central processor unit,簡(jiǎn)稱(chēng)cpu),有時(shí)也稱(chēng)為微處理器(micro processor unit,mpu)。為了進(jìn)一步減小電路板面積,提高系統(tǒng)可靠性、降低成本,將輸入、輸出接口電路、時(shí)鐘電路以及存儲(chǔ)器、運(yùn)算器、
6、控制器等部件集成到一個(gè)芯片內(nèi),就成為單片機(jī)(也稱(chēng)為微控制單元,即microcontroller unit,簡(jiǎn)稱(chēng)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ī)控制器(embedded microcontroller)。 1. 三總線概念 (1) 地址總線(address bus,簡(jiǎn)稱(chēng)ab),單向,用于傳送地址信息,如圖1-1中運(yùn)算器與存儲(chǔ)器之間的地址線,
7、地址線的數(shù)目決定了可以尋址的存儲(chǔ)空間。 (2) 數(shù)據(jù)總線(data bus,簡(jiǎn)稱(chēng)db),一般為雙向,用于cpu與存儲(chǔ)器、cpu與外設(shè),或外設(shè)與外設(shè)之間的傳送數(shù)據(jù)(包括實(shí)際意義的數(shù)據(jù)和指令碼)信息。 (3) 控制總線(control bus,簡(jiǎn)稱(chēng)cb),是計(jì)算機(jī)系統(tǒng)中所有控制信號(hào)線的總稱(chēng),在控制總線中傳送的信息是控制信息。 在模擬電路中,器件、部件一般按“串聯(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)行控
8、制、選擇,系統(tǒng)(包括器件)所有的控制線被稱(chēng)為控制總線。 。 第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí)2. 時(shí)鐘周期、機(jī)器周期及指令周期 (1) 時(shí)鐘周期:計(jì)算機(jī)在時(shí)鐘信號(hào)的作用下,以節(jié)拍方時(shí)鐘周期:計(jì)算機(jī)在時(shí)鐘信號(hào)的作用下,以節(jié)拍方式工作。因此,必須有一個(gè)時(shí)鐘生發(fā)器電路,輸入微處理式工作。因此,必須有一個(gè)時(shí)鐘生發(fā)器電路,輸入微處理器的時(shí)鐘信號(hào)的周期稱(chēng)為時(shí)鐘周期。器的時(shí)鐘信號(hào)的周期稱(chēng)為時(shí)鐘周期。 (2) 機(jī)器周期:機(jī)器完成一個(gè)機(jī)器周期:機(jī)器完成一個(gè)基本基本動(dòng)作所需的時(shí)間稱(chēng)為動(dòng)作所需的時(shí)間稱(chēng)為機(jī)器周期,一般由一個(gè)或一個(gè)以上的時(shí)鐘周期組成,例如機(jī)器周期,一般由一個(gè)或一個(gè)以上的時(shí)鐘周期組成,例如在標(biāo)準(zhǔn)在標(biāo)準(zhǔn)mcs
9、-51系列單片機(jī)中,一個(gè)機(jī)器周期由系列單片機(jī)中,一個(gè)機(jī)器周期由12個(gè)時(shí)鐘個(gè)時(shí)鐘周期組成。周期組成。 (3) 指令周期:執(zhí)行一條指令(如指令周期:執(zhí)行一條指令(如“mov a,#34h”,該,該指令的含義是將立即數(shù)指令的含義是將立即數(shù)34h傳送到微處理器內(nèi)的累加器傳送到微處理器內(nèi)的累加器a中)所需時(shí)間稱(chēng)為指令周期,它由一個(gè)到數(shù)個(gè)機(jī)器周期組中)所需時(shí)間稱(chēng)為指令周期,它由一個(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-2 cpu的內(nèi)部結(jié)構(gòu)簡(jiǎn)圖 第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí) 由算術(shù)邏輯運(yùn)算單元(a
10、rithmetic logic unit,簡(jiǎn)稱(chēng)alu)、累加器a(8位)、寄存器b(8位)、程序狀態(tài)字寄存器psw(8位)、程序計(jì)數(shù)器pc(有時(shí)也稱(chēng)為指令指針,即ip,16位)、地址寄存器ar(16位)、數(shù)據(jù)寄存器dr(8位)、指令寄存器ir(8位)、指令譯碼器id、控制器等部分組成。第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí)2. 存儲(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ǔ)器),單
11、獨(dú)封裝。 存儲(chǔ)器的種類(lèi)很多,根據(jù)存儲(chǔ)器能否隨機(jī)讀寫(xiě),將存儲(chǔ)器分為兩大類(lèi): 只讀存儲(chǔ)器(read only memory,簡(jiǎn)稱(chēng)rom)。 隨機(jī)讀寫(xiě)存儲(chǔ)器(random access memory,簡(jiǎn)稱(chēng)ram)。第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí) 在單片機(jī)應(yīng)用系統(tǒng)中,所需的存儲(chǔ)器容量不大,常用prom(可編程的只讀存儲(chǔ)器)、eprom(紫外光可擦寫(xiě)的只讀存儲(chǔ)器)、otp rom(一次性編程的只讀存儲(chǔ)器,內(nèi)部結(jié)構(gòu)、工作原理與eprom相似,是一種沒(méi)有擦寫(xiě)窗口的eprom)、eeprom(也稱(chēng)為e2prom,是一種電可擦寫(xiě)的只讀存儲(chǔ)器,其結(jié)構(gòu)與eprom類(lèi)似,但絕緣柵很薄,高速電子可穿越絕緣層,中和浮柵上的
12、正電荷,起到擦除目的,也就是說(shuō)可通過(guò)高電壓擦除)、flash rom(電可擦寫(xiě)只讀存儲(chǔ)器,寫(xiě)入速度比eeprom快,因此也稱(chēng)為閃爍存儲(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、flash rom、sram、fram等存儲(chǔ)器內(nèi)部結(jié)構(gòu)可以用圖1-3描述,由地址譯碼器、存儲(chǔ)單元、讀寫(xiě)控制電路等部分組成。 第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí)(2) 存儲(chǔ)器
13、工作狀態(tài) csoewe工作模式控制信號(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-4 cpu讀取存儲(chǔ)器操作過(guò)程示意圖 第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí)1.2.2 指令及其指令系統(tǒng)指令及其指令系統(tǒng)1.1.指令及指令系統(tǒng)指令及指令系統(tǒng) 將cpu所執(zhí)行的各種操作,如從指定的存儲(chǔ)器單元中取數(shù)據(jù)、將cpu內(nèi)特定寄存器內(nèi)容寫(xiě)入存儲(chǔ)器某一指定
14、的存儲(chǔ)單元中以及算術(shù)或邏輯運(yùn)算等操作,用命令的形式記錄下來(lái),就稱(chēng)為指令(instruction),一條指令與計(jì)算機(jī)的一種基本操作相對(duì)應(yīng)。當(dāng)然,指令也只能用二進(jìn)制代碼表示,例如在mcs-51系列單片機(jī)中,累加器a中的內(nèi)容除以寄存器b中的內(nèi)容(即ab)的操作用84h作為指令代碼。 一條指令通常由操作碼和操作數(shù)兩部分組成: 操作碼(operation code)規(guī)定了指令要執(zhí)行的動(dòng)作,一般用一個(gè)字節(jié)表示 ;操作數(shù)(operand)指定了參加操作的數(shù)據(jù)或數(shù)據(jù)所在的存儲(chǔ)單元的地址。 在計(jì)算機(jī)中,所有指令的集合稱(chēng)為指令系統(tǒng)。 第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí) 不同計(jì)算機(jī)指令系統(tǒng)所包含的指令種類(lèi)、數(shù)目、指令代碼
15、對(duì)應(yīng)的操作由cpu設(shè)計(jì)人員指定。因此,不同種類(lèi)的cpu具有不同的指令系統(tǒng)。一般說(shuō)來(lái),不同系列cpu的指令系統(tǒng)不一定相同,除非它們彼此兼容。根據(jù)計(jì)算機(jī)指令系統(tǒng)的特征,可以將計(jì)算機(jī)指令系統(tǒng)分為兩大類(lèi),即復(fù)雜指令系統(tǒng)(complex instruction set computer,簡(jiǎn)稱(chēng)cisc指令結(jié)構(gòu))和精簡(jiǎn)指令系統(tǒng)(reduced instruction set computer,簡(jiǎn)稱(chēng)risc指令結(jié)構(gòu))。 第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí) 采用復(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é)描述。
16、 根據(jù)指令代碼的長(zhǎng)短,可將指令分為: 單字節(jié)指令:這類(lèi)指令僅有操作碼,沒(méi)有操作數(shù),或者操作數(shù)隱含在操作碼字節(jié)中。 雙字節(jié)指令:這類(lèi)指令第一字節(jié)為操作碼,第二個(gè)字節(jié)為操作數(shù)。 多字節(jié)指令:這類(lèi)指令第一字節(jié)為操作碼,第二、三字節(jié)為操作數(shù)或操作數(shù)所在存儲(chǔ)單元地址。 (2)可選擇兩條或兩條以上指令完成同一操作,程序設(shè)計(jì)靈活性大,但缺點(diǎn)是指令數(shù)目較多(這類(lèi)cpu一般具有數(shù)十條百余條指令) 第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí) 采用精簡(jiǎn)指令技術(shù)的計(jì)算機(jī)指令系統(tǒng)情況剛好相反:完成同一操作,一般只有一條指令可供選擇,指令數(shù)目相對(duì)較少,尤其是采用了精簡(jiǎn)指令的單片機(jī)cpu,如pic系列、atmel的avr系列單片機(jī),指令
17、數(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ú)論采用何種類(lèi)型的指令系統(tǒng),任何cpu的指令系統(tǒng)都會(huì)提供:數(shù)據(jù)傳送指令、算術(shù)/邏輯運(yùn)算指令、控制轉(zhuǎn)移指令等四種基本類(lèi)型指令。此外,在單片機(jī)系統(tǒng)中,還要提供位操作指令,以簡(jiǎn)化控制系統(tǒng)的程序設(shè)計(jì)。 第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí) 用二進(jìn)制代碼表示的指令稱(chēng)為機(jī)器語(yǔ)言指令,其中的二進(jìn)制代碼稱(chēng)為指令的機(jī)器碼。機(jī)器語(yǔ)言指令是計(jì)算機(jī)系統(tǒng)惟一能夠理解和執(zhí)行
18、的指令。正因如此,形象地將二進(jìn)制代碼形式的指令稱(chēng)為機(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)容清零,記為“clr a”;用“mov”作為數(shù)據(jù)傳送指令的助記符,于是將立即數(shù)23h傳送到累加器a中的指令,就可以用“mov a,#23h”(#是立即數(shù)標(biāo)志)表示;將存
19、儲(chǔ)器4fh單元中的內(nèi)容傳送到累加器a中,可用“mov a, 4fh”表示??梢?jiàn),匯編語(yǔ)言指令比機(jī)器語(yǔ)言指令容易理解和記憶。 第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí)2. 程序程序 程序(program)就是指令的有機(jī)組合,是完成特定工作所用到的指令(這些指令當(dāng)然是某個(gè)特定計(jì)算機(jī)系統(tǒng)的指令)的總稱(chēng)。一段程序通常由多條指令組成,程序中所包含的指令數(shù)目及種類(lèi)由程序功能決定。 用機(jī)器語(yǔ)言指令碼編寫(xiě)的程序,就稱(chēng)為機(jī)器語(yǔ)言程序 ,如:機(jī)器語(yǔ)言指令 含義(即對(duì)應(yīng)匯編語(yǔ)言指令)74 aa;mov a, #0aahe4;cle a85 40 30;mov 30h,40h 第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí)3. 匯編語(yǔ)言及匯編語(yǔ)言
20、程序匯編語(yǔ)言及匯編語(yǔ)言程序 將每條指令操作碼所要完成的動(dòng)作用特定符號(hào)表示,即用指令功能的英文縮寫(xiě)替代指令操作碼,形成了指令操作碼的助記符;并將機(jī)器語(yǔ)言指令中的操作數(shù)也用cpu內(nèi)寄存器名、存儲(chǔ)單元地址或i/o端口號(hào)代替,這樣便形成了操作數(shù)助記符,于是就獲得了“匯編語(yǔ)言指令”。例如,將累加器a內(nèi)容清零,記為“clr a”;用“mov”作為數(shù)據(jù)傳送指令的助記符,于是將立即數(shù)23h傳送到累加器a中的指令,就可以用“mov a,#23h”(#是立即數(shù)標(biāo)志)表示;將存儲(chǔ)器4fh單元中的內(nèi)容傳送到累加器a中,就用“mov a, 4fh”表示??梢?jiàn),匯編語(yǔ)言指令比機(jī)器語(yǔ)言指令容易理解和記憶。 用指令助記符(由
21、操作碼助記符和操作數(shù)助記符組成)表示的指令稱(chēng)為匯編語(yǔ)言指令,由匯編語(yǔ)言指令構(gòu)成的程序,稱(chēng)為匯編語(yǔ)言程序(有時(shí)也稱(chēng)為匯編語(yǔ)言源程序)。可見(jiàn),匯編語(yǔ)言程序容易理解、可讀性強(qiáng),方便了程序的編寫(xiě)和維護(hù)。 第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí) 當(dāng)然,計(jì)算機(jī)只能理解和執(zhí)行二進(jìn)制代碼形式的機(jī)器語(yǔ)言指令,不能理解和執(zhí)行匯編語(yǔ)言指令。但可以通過(guò)專(zhuān)門(mén)軟件或手工查表方式將匯編語(yǔ)言程序中的匯編語(yǔ)言指令逐條翻譯成對(duì)應(yīng)的機(jī)器語(yǔ)言指令,即可獲得計(jì)算機(jī)能理解和執(zhí)行的機(jī)器語(yǔ)言程序。將匯編語(yǔ)言程序轉(zhuǎn)換為機(jī)器語(yǔ)言程序的過(guò)程就稱(chēng)為匯編過(guò)程,將完成匯編語(yǔ)言指令轉(zhuǎn)換為機(jī)器語(yǔ)言指令的程序稱(chēng)為匯編程序,可見(jiàn)匯編程序的功能就是逐一讀出匯編語(yǔ)言源程序中
22、的匯編語(yǔ)言指令,再通過(guò)查表比較方式,將其中的匯編語(yǔ)言指令逐一轉(zhuǎn)換成機(jī)器語(yǔ)言指令。當(dāng)然這一過(guò)程也可以由人工查表完成,即所謂的人工匯編。 第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí)4. 偽指令偽指令 在匯編語(yǔ)言源程序中,除了包含可以轉(zhuǎn)化為特定計(jì)算機(jī)系統(tǒng)的機(jī)器語(yǔ)言指令所對(duì)應(yīng)的匯編語(yǔ)言指令外,還可能包含一些偽指令,如“org 2000h”、“end”等。“偽”者,假也,盡管它不是計(jì)算機(jī)系統(tǒng)對(duì)應(yīng)的指令,匯編時(shí)也不產(chǎn)生機(jī)器碼。但匯編語(yǔ)言程序中的偽指令并非可有可無(wú),偽指令的作用是:指導(dǎo)匯編程序?qū)υ闯绦虻膮R編。 下面是mcs-51匯編程序支持的、常見(jiàn)的偽指令:(1)org nnnn ;其中nnnn是16位二進(jìn)制數(shù),該指令的
23、含義是隨后的匯編語(yǔ)言指令機(jī)器碼從nnnn單元開(kāi)始存放。(2)db n1,n2,n3,;字節(jié)定義偽指令,將隨后的一串8位二進(jìn)制數(shù)(字節(jié),彼此由逗號(hào)隔開(kāi))連續(xù)存放在存儲(chǔ)器中,用于定義字節(jié)常數(shù)表。第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí) (3) dw nn1,nn2,nn3,;字定義偽指令,將隨后的一串16位二進(jìn)制數(shù)(兩個(gè)字節(jié),彼此由逗號(hào)隔開(kāi))連續(xù)存放在存儲(chǔ)器中,用于定義字常數(shù)表。 (4) ds n ;保留n個(gè)存儲(chǔ)單元偽指令。(5) “符號(hào)名 equ 數(shù)或匯編符號(hào) ”;等值定義偽指令,將某一常數(shù)或匯編符號(hào)用另一字符串代替,其中的匯編符號(hào)可以是寄存器名,存儲(chǔ)單元地址,甚至是指令操作碼助記符。(6) “符號(hào)名符號(hào)名
24、 bit bit ”;位定義偽指令,將某一位存儲(chǔ)單元地址用字符串代替。(7) “符號(hào)名符號(hào)名 data nn ”;地址定義偽指令,將某一存儲(chǔ)單元地址用字符串代替。例如“timel data 30h”偽指令的含義是存儲(chǔ)器30h單元用“timel”地址變量表示。(8) end ;匯編結(jié)束偽指令,該指令將告訴匯編程序下面沒(méi)有需要匯編的指令。第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí)5. 匯編語(yǔ)言指令的一般格式匯編語(yǔ)言指令的一般格式 intel系列cpu匯編語(yǔ)言指令格式為: 標(biāo)號(hào): 指令操作碼助記符 第一操作數(shù) ,第二操作數(shù) ,第三操作數(shù) ;注釋 6. 指令的執(zhí)行過(guò)程指令的執(zhí)行過(guò)程 指令執(zhí)行過(guò)程可用如圖1-5描述。
25、可見(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ò)程示意圖 第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí)1.3 尋址方式 指令由操作碼和操作數(shù)組成,確定指令中操作數(shù)所在存儲(chǔ)單元地址的方式,就是尋址方式。對(duì)于只有
26、操作碼的指令,不存在尋址方式問(wèn)題;對(duì)于雙操作數(shù)指令來(lái)說(shuō),每一操作數(shù)都有自己的尋址方式。 例如,在含有兩個(gè)操作數(shù)的指令中,第一操作數(shù)(也稱(chēng)為目的操作數(shù))有自己的尋址方式;第二操作數(shù)(稱(chēng)為源操作數(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ǔ)單元中。 第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí)指令中的操作數(shù)只能是下列內(nèi)容之一:(1)cpu內(nèi)某一寄存器名,如累加器a、通用寄存器b、堆棧指針sp等。cpu內(nèi)含有什么寄存器由cpu類(lèi)型決定。例如,在mcs-51系列單片
27、機(jī)cpu內(nèi),就含有累加器a、通用寄存器b、堆棧指針sp、程序狀態(tài)字寄存器psw以及工作寄存器組r7r0。(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ù)類(lèi)型及范圍也與cpu類(lèi)型有關(guān)。 第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí)1. 立即尋址方式立即尋址方式 當(dāng)指令第二操作數(shù)(源操作數(shù))為8位或16位常數(shù)時(shí),就稱(chēng)為立即尋址方式,其中的常數(shù)稱(chēng)為立即數(shù)。如:mov a,#23h ;其中第二操作數(shù)“23h
28、”就是立即數(shù),含義是將立即數(shù)23h傳送到累加器a(目的操作數(shù))中。又如:mov dptr, #2000h ;將立即數(shù)2000h送到數(shù)據(jù)指針dptr(16位寄存器)寄存器中。在立即尋址方式中,立即數(shù)包含在指令碼中,取出指令碼時(shí)也就取出了可以立即使用的操作數(shù)(也正因如此,該操作數(shù)被稱(chēng)為“立即數(shù)”,并把這一尋址方式形象地稱(chēng)為“立即尋址”方式)。例如“mov a,#23h”指令機(jī)器碼為“74 23”,在存儲(chǔ)器中的存放位置及執(zhí)行結(jié)果可用圖1-6表示。 第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí)圖1-6 立即尋址示意圖 2. 直接尋址方式直接尋址方式 在直接尋址方式中,操作數(shù)是某一存儲(chǔ)單元的地址碼。例如:mov a,0
29、023h ;直接使用存儲(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(00h7fh)字節(jié)存儲(chǔ)單元、片內(nèi)位存儲(chǔ)單元(00h7fh)、特殊功能寄存器(80hffh),因此地址編碼僅為8位,如: mov 23h,a第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí) 3
30、. 寄存器尋址方式寄存器尋址方式 在寄存器尋址方式中,操作數(shù)是cpu內(nèi)的某一寄存器名。例如:mov a,23h ;在這條指令中,目的操作數(shù)是累加器a。因此,這條指令目的操作數(shù)采用寄存器尋址方式。寄存器尋址方式可以用在目的操作數(shù)中,也可以用在源操作數(shù)中,如:mov 23h,a ;在這條指令中,累加器a是源操作數(shù)。因此,這條指令源操作數(shù)采用寄存器尋址方式。 在mcs-51中,可用于寄存器尋址方式的寄存器有:累加器a、寄存器b(但僅限于乘法指令)、數(shù)據(jù)指針dptr、位操作指令中的進(jìn)位標(biāo)志cy、工作組寄存器r7r0。 第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí)4. 寄存器間接尋址方式寄存器間接尋址方式 將寄存器內(nèi)容
31、作為指令中操作數(shù)所在存儲(chǔ)單元地址編碼的尋址方式,稱(chēng)為寄存器間接尋址方式。例如:mov a,r0 該指令的含義是將寄存器r0內(nèi)容指定的內(nèi)部ram單元的內(nèi)容傳送到累加器a中。假設(shè)r0=23h,而內(nèi)部ram 23h單元的內(nèi)容為55h,則指令執(zhí)行后,累加器a的內(nèi)容將為55h。指令中的“”是間接尋址標(biāo)志,該指令與“mov a,r0”不同,“mov a,r0”指令源操作數(shù)采用寄存器尋址方式,含義是將寄存器r0內(nèi)容傳送到累加器中,因此“mov a,r0”指令執(zhí)行后,a的內(nèi)容將是23h。 一般說(shuō)來(lái),cpu內(nèi)僅有部分寄存器可用作間接尋址寄存器,至于哪些寄存器可用作間接尋址寄存器由cpu指令系統(tǒng)決定。例如,在mc
32、s-51系列單片機(jī)中,只能使用寄存器r0、r1以及dptr作為間接尋址寄存器。 第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí)5. 變址尋址方式變址尋址方式 將某一寄存器作為基址寄存器,另一寄存器作為變址寄存器,兩者相加后作為操作數(shù)所在存儲(chǔ)單元地址的尋址方式就稱(chēng)為變址尋址方式。例如:movc a,a+dptr 數(shù)據(jù)指針寄存器dptr(16位,作為基址寄存器)加上累加器a(作為變址寄存器)后獲得存儲(chǔ)器單元地址,并將該單元內(nèi)容傳送到累加器a中。在這一指令中,源操作數(shù)采用了變址尋址方式。 第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí)6. 相對(duì)尋址相對(duì)尋址 相對(duì)尋址的含義是以程序計(jì)數(shù)器pc的當(dāng)前值加上指令中給出的相對(duì)偏移量rel作為程
33、序計(jì)數(shù)器pc的值,這一尋址方式用在條件轉(zhuǎn)移指令中。例如:jz lable;其中l(wèi)able為轉(zhuǎn)移的目標(biāo)地址 第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí)7. 位尋址方式位尋址方式 位尋址方式是mcs-51系列單片機(jī)特有的一種尋址方式,盡管目前控制系統(tǒng)中多用4位、8位、16位,甚至32位單片機(jī)芯片,但有時(shí)只需要完成簡(jiǎn)單的邏輯控制,如電機(jī)的開(kāi)、關(guān);指示燈的亮、滅,為此8位單片機(jī)系統(tǒng)也支持位尋址功能,例如:mov c,23h ;指令中的“c”是進(jìn)位標(biāo)志cy的簡(jiǎn)稱(chēng),23h是位尋址空間內(nèi)的位地址。操作碼與操作數(shù)不同尋址方式的組合就構(gòu)成了特定cpu的指令系統(tǒng),但在特定cpu指令系統(tǒng)內(nèi),操作碼支持何種類(lèi)型的尋址方式,由cpu
34、決定。例如在mcs-51指令系統(tǒng)中,push指令(將操作數(shù)壓入堆棧)只支持直接尋址方式。 第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí)1.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)。由于這類(lèi)計(jì)算機(jī)系統(tǒng)的基本部件均集成在同一芯片內(nèi),因此被稱(chēng)為單片微控制器(single-chip-micro controller,簡(jiǎn)稱(chēng)單片機(jī)國(guó)內(nèi)習(xí)慣稱(chēng)謂)、微控制單元(micr
35、ocontroller unit,簡(jiǎn)稱(chēng)mcu)或嵌入式控制器(embedded controller)。 第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí)2. 單片機(jī)芯片主要特征單片機(jī)芯片主要特征(1)抗干擾性強(qiáng),工作溫度范圍寬(按工作溫度分類(lèi),有民用級(jí)、工業(yè)級(jí)、汽車(chē)級(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)常集成
36、了一定數(shù)量的模擬比較器、ad及da轉(zhuǎn)換電路等。(7)采用嵌入式結(jié)構(gòu)。 (8) 更新?lián)Q代速度比通用微處理器慢得多。第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí)1.4.2 單片機(jī)技術(shù)現(xiàn)狀及將來(lái)發(fā)展趨勢(shì)單片機(jī)技術(shù)現(xiàn)狀及將來(lái)發(fā)展趨勢(shì) 單片機(jī)芯片系列、品種、規(guī)格繁多,先后經(jīng)歷單片機(jī)芯片系列、品種、規(guī)格繁多,先后經(jīng)歷4位機(jī)、位機(jī)、8位機(jī)、位機(jī)、16位機(jī)、新一代位機(jī)、新一代8位機(jī)、位機(jī)、32位機(jī)等幾個(gè)具有代表性位機(jī)等幾個(gè)具有代表性的發(fā)展階段。的發(fā)展階段。 目前主流品種主要是新一代目前主流品種主要是新一代8位單片機(jī)芯片、位單片機(jī)芯片、32位嵌入位嵌入式單片機(jī)芯片。式單片機(jī)芯片。第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí)1. 8位單片機(jī)芯片的主流品種位單片機(jī)芯片的主流品種 mcs-51系列最先由intel公司開(kāi)發(fā),后來(lái)其他公司通過(guò)技術(shù)轉(zhuǎn)讓、交換等方式取得了mcs-51內(nèi)核技術(shù)。生產(chǎn)廠家很多,目前主要有philips、
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 全國(guó)青島版信息技術(shù)七年級(jí)下冊(cè)專(zhuān)題二第6課一、《前期設(shè)置》教學(xué)設(shè)計(jì)
- 《租船》(教學(xué)設(shè)計(jì))-2023-2024學(xué)年二年級(jí)下冊(cè)數(shù)學(xué)北師大版
- 2025至2030年中國(guó)S瓦數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025年中國(guó)黃芪蜜市場(chǎng)調(diào)查研究報(bào)告
- 七年級(jí)體育 多變的皮筋教學(xué)設(shè)計(jì)
- 2025年中國(guó)鎘鎳電池直流屏市場(chǎng)調(diào)查研究報(bào)告
- 2025年中國(guó)鋁箔紙涂布機(jī)市場(chǎng)調(diào)查研究報(bào)告
- 2025年中國(guó)鋼格踏步板市場(chǎng)調(diào)查研究報(bào)告
- 2025年中國(guó)金屬外殼市場(chǎng)調(diào)查研究報(bào)告
- 2025年中國(guó)透平機(jī)市場(chǎng)調(diào)查研究報(bào)告
- 社區(qū)便利店計(jì)劃書(shū)
- 人工智能的風(fēng)險(xiǎn)與挑戰(zhàn)
- 基層紀(jì)檢委員培訓(xùn)課件
- 信息論與編碼期末考試題(全套)
- 肺癌麻醉科教學(xué)查房
- 氣體檢測(cè)系統(tǒng)中英文對(duì)照外文翻譯文獻(xiàn)
- 死亡病例監(jiān)測(cè)報(bào)告督導(dǎo)記錄表
- 綠化自動(dòng)滴灌系統(tǒng)施工方案
- 車(chē)站信號(hào)自動(dòng)控制教案-TYJL-ADX型計(jì)算機(jī)聯(lián)鎖系統(tǒng)組成及功能
- 爐壁溫度計(jì)算詳解
- 綠色建筑驗(yàn)收自評(píng)報(bào)告全
評(píng)論
0/150
提交評(píng)論