第1章 基礎(chǔ)知識_第1頁
第1章 基礎(chǔ)知識_第2頁
第1章 基礎(chǔ)知識_第3頁
第1章 基礎(chǔ)知識_第4頁
第1章 基礎(chǔ)知識_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

目錄第1章概論第2章MCS-51系列單片機的資源配置第3章MCS-51系列單片機的指令系統(tǒng)及匯編語言程序設(shè)計第4章單片機的C語言第5章MCS-51系列單片機的片內(nèi)接口及中斷第6章MCS-51系列單片機的擴展技術(shù)第7章單片機應(yīng)用系統(tǒng)接口技術(shù)第8章單片機應(yīng)用系統(tǒng)設(shè)計第9章單片機應(yīng)用系統(tǒng)設(shè)計實例照明能源觸摸智能儀表連接第1章計算機基礎(chǔ)知識主要內(nèi)容:有符號數(shù)的表示微型計算機工作原理單片機的概念及特點9章節(jié):1.1計算機中的信息及表示1.2微型計算機的基本結(jié)構(gòu)和工作原理1.3單片微型計算機101.1信息在計算機中的表示1.1.1數(shù)在計算機內(nèi)的表示計算機中的數(shù)通常有兩種:無符號數(shù)和有符號數(shù)。

無符號數(shù)<-----

二進制形式表示

例如:123表示成01111011B。

有符號數(shù)---

機器數(shù),它的數(shù)值稱為機器數(shù)的真值。11符號位數(shù)值位機器數(shù)在計算機中有三種表示法:

原碼、反碼和補碼。+0-1機器數(shù)在計算機中表示:12一.原碼符號位絕對值注意:(1)原碼表示范圍為-(2n-1-1)~+(2n-1-1),例如:8位的范圍為-127~+127。(2)原碼表示時,-0的編碼為10000000,+0的編碼為00000000。(假設(shè)機器字長為8位)【例1-1】求+67、-25的原碼(機器字長8位)因為

+67

=67=1000011B

-25

=25=11001B所以[+67]原=01000011B[-25]原=10011001B格式:13二.反碼符號位0絕對值符號位1絕對值各位取反格式:正數(shù)負數(shù)注意:(1)反碼表示范圍為-(2n-1-1)~+(2n-1-1),例如:8位的范圍為-127~+127。(2)反碼表示時,-0的編碼為11111111,+0的編碼為00000000。(假設(shè)機器字長為8位)14三.補碼

【例1-3】求+67、-25的補碼(機器字長8位)。因為[+67]原=01000011B[-25]原=10011001B所以[+67]補=01000011B[-25]補=11100111B

符號位0絕對值符號位1絕對值各位取反格式:正數(shù)負數(shù)+115注意:(1)補碼表示范圍為-(2n-1-1)~+(2n-1),例如:8位的范圍為-128~+127。(2)補碼表示時,-0的編碼為00000000,+0的編碼為00000000。(假設(shè)機器字長為8位)[X]補

[-X]補

【例1-4】已知+25的補碼為00011001B,用求補運算求-25的補碼。因為[25]補

[-25]補所以

[-25]補=11100110+1=11100111B16求補運算:一個二進制數(shù),符號位和數(shù)值位一起取反,末位加1。求補運算具有以下的特點:174.補碼的加減運算補碼的加、減法運算規(guī)則如下:[X+Y]補=[X]補+[Y]補[X-Y]補=[X]補-[Y]補=[X]補+[-Y]補=[X]補+{[Y]補}求補即:補碼表示時,求兩個數(shù)之和[X+Y]補,直接用兩個數(shù)相加([X]補+[Y]補);求兩個數(shù)之差[X-Y]補,可以直接用兩個數(shù)相減[X]補-[Y]補,也可以先對減數(shù)[Y]補求補運算,然后再與被減數(shù)[X]補相加。18【例1-5】假設(shè)計算機字長為8位,完成下列補碼運算。① (+25)+(+32)因為 [+25]補=00011001B[+32]補=00100000B [+25]補=00

011001+ [+32]補=00100

0

0

0所以[(+25)+(+32)]補=[+25]補+[+32]補=00111001B=[+57]補00111001② (+25)+(-32)因為 [+25]補=00011001B[-32]補=11100000B [+25]補=00

011001+ [-32]補=11

100

0

0

0所以[(+25)+(-32)]補=[+25]補+[-32]補=11111001B=[-7]補1111100119(+25)-(+32)因為[+25]補=00011001B[+32]補=00100000B{[+32]補}求補=11011111+1=11100000B [+25]補=00011001- [+32]補=00100000[+25]補=00011001+ [-32]補=11100000

1 1111100111111001所以[(+25)-(+32)]補=[+25]補+[-32]補

=[+25]補+{[+32]補}求補

=11111001B=[-7]補借位1自動丟失20(+25)-(-32)因為[+25]補=00011001B[-32]補=11100000B{[-32]補}求補=00011111+1=00100000B [+25]補=00011001- [-32]補=11100000 [+25]補=00011001+ [+32]補=0010000010011100100111001借位1自動丟失所以[(+25)-(-32)]補=[+25]補+[-32]補

=[+25]補+{[-32]補}求補

=00111001B=[+57]補四.十進制數(shù)的表示

十進制編碼又稱為BCD碼。分壓縮BCD碼和非壓縮BCD碼。壓縮BCD碼又稱為8421碼,它是用四位二進制編碼來表示一位十進制符號。21例如:十進制數(shù)124的壓縮BCD碼為000100100100。

十進制數(shù)4.56的壓縮BCD碼為0100.01010110。十進制符號壓縮BCD編碼十進制符號壓縮BCD編碼0000050101100016011020010701113001181000401009100122

非壓縮BCD碼是用八位二進制來表示一位十進制符號,其中低四位二進制編碼與壓縮BCD碼相同,高四位任取。例如:十進制數(shù)124的非壓縮BCD碼為 001100010011001000110100。1.1.2字符在計算機內(nèi)的表示美國信息交換標(biāo)準(zhǔn)代碼ASCII碼AmericanStandardCodeforInformationInterchange23數(shù)字符號0~9:30H—39h26個大寫字母:41H—5AH26個小寫字母:61H—7AH1.2微型計算機的基本結(jié)構(gòu)和工作原理

現(xiàn)在的計算機采用馮·諾伊曼結(jié)構(gòu),由運算器、控制器、存貯器、輸入設(shè)備和輸出設(shè)備五大部分組成。集成運算器和控制器的這一塊集成電路稱為中央處理器或微處理器,簡稱CPU。1.2.1微型計算機的發(fā)展1971年誕生,一般分為以下幾代:第一代(1971~1973):4位和低檔8位微處理器第二代(1974~1977):中高檔8位微處理器第三代(1978~1984):16位微處理器第四代(1985~1992):32位微處理器第五代(1993~1999):超級32位Pentium(奔騰)微處理器第六代(2000年以后):64位高檔微處理器241.2.2微型計算機的基本結(jié)構(gòu)中央處理器(CPU)隨機存儲器RAMI/O接口電路I/O設(shè)備2I/O接口電路只讀存儲器ROM數(shù)據(jù)總線(雙向)地址總線(單向)控制總線I/O設(shè)備1微型計算機由中央處理器、存儲器、輸入/輸出設(shè)備和系統(tǒng)總線等組成251.2.3微處理器8086總線

地址總線(20位)

ALU數(shù)據(jù)總線(16位)

地址加法器

隊列總線

指令隊列

總線接口部件(BIU)

123456

CS

IP

內(nèi)部通信寄存器

總線

控制

邏輯

數(shù)據(jù)總線

ALU

標(biāo)志寄存器

EU

控制器

指令執(zhí)行部件(EU)

(16位)

(8位)

ES

DS

SS

AX

BX

CX

DX

BP

SP

SI

DI

AHAL

BHBL

CHCL

DHDL

由運算器、控制器、寄存器組和片內(nèi)總線組成261、執(zhí)行單元(EU)執(zhí)行部件由運算器(ALU)、通用寄存器、標(biāo)態(tài)寄存器和EU控制系統(tǒng)等組成。EU從BIU的指令隊列中獲得指令,然后執(zhí)行該指令,完成指今所規(guī)定的操作??偩€接口部件BIU同外部總線連接,為執(zhí)行部件EU完成全部的總線操作,并且計算、形成20位的內(nèi)部存儲器的物理地址,達到尋址1M字節(jié)內(nèi)存地址空間的目的。2、總線接口單元(BIU)內(nèi)部分為兩個部分:27內(nèi)部寄存器

8086CPU有14個16位寄存器,分為5個組28291)通用寄存器組AX稱為累加器,是算術(shù)運算時使用的主要寄存器,所有外部設(shè)備的輸入輸出指令只能使用AL或AX作為數(shù)據(jù)寄存器。BX稱為基址寄存器,可以用作數(shù)據(jù)寄存器,在訪問存儲器時,可以存放被讀寫的存儲單元的地址,是具有雙重功能的寄存器。CX稱為計數(shù)寄存器,可以用作數(shù)據(jù)寄存器,在字符串操作、循環(huán)操作和移位操作時用作計數(shù)器。DX稱為數(shù)據(jù)寄存器,它可以用作數(shù)據(jù)寄存器,在乘、除法中作為輔助累加器,在輸入輸出操作中存放接口的地址。302)指針和變址寄存器組主要用來存放操作數(shù)的偏移地址(即操作數(shù)的段內(nèi)地址)。SP稱為堆棧指針寄存器,在堆棧操作中存放棧頂?shù)钠频刂贰P稱為基址指針寄存器,常用作堆棧區(qū)的基地址寄存器。SI稱為源變址寄存器,主要用于在字符串操作中存放源操作數(shù)的偏移地址。DI稱為目的變址寄存器,主要用于在字符串操作中存放目的操作數(shù)的偏移地址。313)段寄存器組段寄存器用來存放段的基址(即段的起始地址的高16位)。CS稱為代碼段段寄存器,代碼段用來存放程序代碼。CS中存放當(dāng)前正在執(zhí)行的代碼段的段基址。DS稱為數(shù)據(jù)段段寄存器,數(shù)據(jù)段用于存放當(dāng)前使用的數(shù)據(jù)。DS中存放當(dāng)前數(shù)據(jù)段的段基址。SS稱為堆棧段段寄存器,堆棧段是內(nèi)存中一段特殊的存儲區(qū)。SS中存放堆棧段的段基址。ES稱為附加數(shù)據(jù)段段寄存器,程序需要第二個數(shù)據(jù)段時,可以使用ES存放的該數(shù)據(jù)段的段基址。324)指令指針寄存器指令指針寄存器IP(instructionpointer)是一個16位的寄存器,IP存放下一條要執(zhí)行的指令的偏移地址。8086中,由CS和IP控制著程序的執(zhí)行順序。在程序執(zhí)行時,由EU控制器控制,通過BIU部件從CS和IP指向的內(nèi)部存儲器中取出當(dāng)前執(zhí)行的指令送執(zhí)行部件執(zhí)行,在取出的同時,指令指針寄存器IP會自動調(diào)整(加上當(dāng)前指令的字節(jié)數(shù))以指向下一條指令,以便程序能自動往后執(zhí)行。當(dāng)程序發(fā)生轉(zhuǎn)移時,就必須把新的指令地址(目標(biāo)地址)裝入CS和IP,這通常由轉(zhuǎn)移指令來實現(xiàn)。5)標(biāo)志寄存器標(biāo)志寄存器FLAGS共有9個標(biāo)志位,其中6個為狀態(tài)標(biāo)志位,3個為控制標(biāo)志位。ODITSZAPCC——進位標(biāo)志位。P——奇偶標(biāo)志位。A——半加標(biāo)志位。Z——零標(biāo)志位。S——符號標(biāo)志位。T—陷阱標(biāo)志位(單步標(biāo)志位)。I——中斷允許標(biāo)志位。D——方向標(biāo)志位。O—溢出標(biāo)志位。331.2.4存儲器指內(nèi)部存儲器(又稱為主存或內(nèi)存)。它是微型計算機的存儲和記憶裝置,用來存放微型計算機執(zhí)行的程序和數(shù)據(jù)。存儲單元內(nèi)容和存儲單元地址341.存儲器的基本結(jié)構(gòu)-------半導(dǎo)體存儲器

地址譯碼器00單元01單元02單元┇┇FF單元000102FF地址單元內(nèi)容ABCBI/O緩沖器控制邏輯DB圖1.10存儲器結(jié)構(gòu)圖35主要由地址譯碼器、存儲矩陣、控制邏輯和三態(tài)雙向緩沖器等部分組成。對內(nèi)存單元的操作有兩種:讀和寫。(1)讀操作地址譯碼器0單元內(nèi)容2BH┇┇FF單元內(nèi)容05控制邏輯地址單元內(nèi)容AB讀信號DB052BHI/O緩沖器1)CPU通過地址總線送地址號05H至存儲器地址譯碼器2)存儲器中的地址譯碼器對它進行譯碼,找到05H號存儲單元3)CPU發(fā)出讀的控制命令,05H號存儲單元中的內(nèi)容2BH就出現(xiàn)在數(shù)據(jù)總線36(2)寫操作寫信號地址譯碼器0單元內(nèi)容┇┇FF單元內(nèi)容I/O緩沖器06地址單元內(nèi)容ABDB061AH1AH控制邏輯1)CPU通過地址總線送地址號06H至存儲器地址譯碼器2)存儲器中的地址譯碼器對它進行譯碼,找到06H號存儲單元3)數(shù)據(jù)寄存器中的內(nèi)容1AH經(jīng)數(shù)據(jù)總線送給存儲器4)CPU發(fā)出寫的控制命令,于是數(shù)據(jù)總線上的信息1AH就可以寫入到06H號存儲單元中372.存儲器的分類

隨機讀寫存儲器RAM(RandomAccessMemory)和只讀存儲器ROM(ReadOnlyMemory)。3.8086中的存儲器總存儲空間為1M字節(jié),地址20位。由于8086的寄存器都是16位,不能直接提供20地址,因此,為了管理方便,8086把1M空間分成若干塊(稱為“邏輯段”),各個邏輯段之間可在實際存儲空間中完全分開,也可以部分重疊,甚至可以完全重疊。每個邏輯段容量不超過64K字節(jié),這樣就可用16位寄存器提供地址訪問。38物理地址與邏輯地址物理地址:送給存儲器的20位地址。邏輯地址:程序中訪問存儲器的地址,“段基址:偏移地址”轉(zhuǎn)換:物理地址=段基址×16+段內(nèi)偏移地址例如:段基址:偏移地址分別是1200H:0345H則物理地址=1200H×16+0345H=12345H。391.2.5輸入/輸出設(shè)備及I/O接口電路1.I/O接口的功能

(1)數(shù)據(jù)的寄存和緩沖功能(2)信號轉(zhuǎn)換功能(3)設(shè)備選擇功能(4)外設(shè)的控制和監(jiān)測功能(5)中斷或DMA管理功能(6)可編程功能2.外部設(shè)備與CPU之間的數(shù)據(jù)傳送方式

(1)無條件傳送方式(2)查詢傳送方式(3)中斷傳送方式403.8086中的常用接口電路簡介

8255A是Intel公司生產(chǎn)的可編程并行I/O接口芯片。8253是Intel公司生產(chǎn)的可編程計數(shù)/定時器接口電路。8251A是INTEL公司生產(chǎn)的可編程的串行通訊接口芯片。8259A是Intel公司生產(chǎn)的可編程中斷控制器芯片。411.2.6總線按總線在微機結(jié)構(gòu)中所處的位置不同,可把總線分為以下四類:(1)片內(nèi)總線:(2)片級總線:(3)系統(tǒng)總線:(4)外部總線:按總線功能可分三類。(1)地址總線(AB):(2)數(shù)據(jù)總線(DB):(3)控制總線(CB):

總線是連接多個設(shè)備或功能部件的一簇公共信號線,它是計算機各組成部件之間信息交換的通道。421.2.7微型計算機工作過程“存儲程序”和“程序控制”指令是指計算機完成一個基本操作的命令。指令系統(tǒng)是一個計算機所能夠處理的全部指令的集合。一條指令一般包括兩個部分:操作碼和操作數(shù)。例如計算3+5=?在執(zhí)行程序之前需要做好如下幾項工作:(1)用助記符號指令(匯編語言)編寫程序(源程序);(2)用匯編軟件(匯編程序)將源程序匯編成計算機能識別的機器語言程序;(3)將數(shù)據(jù)和程序通過輸入設(shè)備送入存儲器中存放。43假設(shè)上面例子的匯編語言源程序和機器語言程序如下:匯編語言 機器語言 功能MOVAL,03H 1011000000000011B ;把01送入

累加器A。ADDAL,05H 0000010000000101B ;02與A中內(nèi)

容相加,結(jié)果存入A。HLT 11110100B ;停止操作。編譯好的機器語言程序有5個字節(jié),設(shè)放于存儲器地址為00H開始的單元處。441.執(zhí)行第一條指令的過程----(1)取第一條指令

J2I2ALUF內(nèi)部數(shù)據(jù)總線ALBL00PLAIDB0HB0HCPUB0H01H04H02HF4H

3E

DB存儲器PC00+1AR……DRIR②①AB③④⑤⑥⑦

讀451)當(dāng)前程序計數(shù)器PC或IP內(nèi)容(00H)送地址寄存器AR。2)PC自動加1,等于01H,指向下一個存儲器單元。這里指向第一條指令的操作數(shù)。3)地址寄存器AR的內(nèi)容00H通過地址總線AB送至存儲器,經(jīng)地址譯碼器譯碼選中相應(yīng)的00H單元。4)CPU發(fā)出存儲器“讀”命令。5)在讀命令的控制下,所選中的00H單元的內(nèi)容讀至數(shù)據(jù)總線DB上。6)讀出的內(nèi)容經(jīng)數(shù)據(jù)總線DB送至數(shù)據(jù)寄存器DR。7)指令譯碼。因為取出來的是指令的操作碼,所以數(shù)據(jù)寄存器DR的內(nèi)容被送至指令寄存器IR中,然后再送至指令譯碼器ID,譯碼后由控制器發(fā)出執(zhí)行這條指令的各種控制命令。取第一條指令

46J2I2ALUF內(nèi)部數(shù)據(jù)總線01HBL01PLAIDIR01HCPUB0H01H04H02HF4H

3E

DB存儲器PC01+1AR……DR②①AB④⑤⑥⑦③AL

讀1.執(zhí)行第一條指令的過程----(2)執(zhí)行第一條指令。

471)將當(dāng)前程序計數(shù)器PC或IP的內(nèi)容01H送至地址寄存器AR。2)PC自動加1,等于02H,這里指向下一條指令,為取下一條指令作準(zhǔn)備。3)地址寄存器AR的內(nèi)容01H通過地址總線AB送至存儲器,經(jīng)地址譯碼器譯碼后選中存儲器01H單元。4)CPU發(fā)出存儲器“讀”命令。5)在讀命令的控制下,所選中的01H存儲單元的內(nèi)容01H讀至數(shù)據(jù)總線DB上。6)讀出的內(nèi)容經(jīng)數(shù)據(jù)總線DB送至數(shù)據(jù)寄存器DR。7)因為經(jīng)過譯碼已經(jīng)知道讀出送到累加器AL,所以數(shù)據(jù)寄存器DR的內(nèi)容01H通過內(nèi)部數(shù)據(jù)總線送至累加器AL。于是第一條指令執(zhí)行完畢,操作數(shù)01H被送到累加器AL中。執(zhí)行第一條指令。482.執(zhí)行第二條指令的過程-----(1)取第二條指令。與取第一條指令同2)執(zhí)行第二條指令。I1I2ALUF內(nèi)部數(shù)據(jù)總線03HB03PLAIDIR02HCPUB0H01H04H02HF4H

3E

DB存儲器PC03+1AR……DR②①AB④⑤⑥⑦③A

讀⑧⑨⑩491)將當(dāng)前程序計數(shù)器PC或IP的內(nèi)容03H送至地址寄存器AR。2)PC自動加1,等于04H,這里指向下一條指令,為取下一條指令作準(zhǔn)備。3)AR通過地址總線把地址03H送至存儲器,經(jīng)過譯碼,選中相應(yīng)的單元,4)CPU發(fā)出存儲器“讀”命令。5)在讀命令的控制下,所選中的03H存儲單元的內(nèi)容02H讀至數(shù)據(jù)總線DB上。6)讀出的內(nèi)容經(jīng)數(shù)據(jù)總線DB送至數(shù)據(jù)寄存器DR。7)數(shù)據(jù)寄存器DR的內(nèi)容通過內(nèi)部數(shù)據(jù)總線送至ALU的一個輸入端。8)累加器AL中的內(nèi)容01H送ALU的另一個輸入端,在ALU中執(zhí)行加法操作。9)相加的結(jié)果03H由ALU輸出至累加器AL中。執(zhí)行第二條指令503.執(zhí)行第三條指令的過程

第二條指令執(zhí)行結(jié)束后,程序計數(shù)器PC的值為04H,指向第三條指令在存儲器中的首地址,進入第三條指令的執(zhí)行過程。第三條指令的處理與前面完全相同,第三條指令的操作碼F4H(HLT)取出經(jīng)譯碼器譯碼后就停機。整個程序執(zhí)行完畢。511.3單片機及其特點1.3.1單片機的

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論