單片機(jī)原理及應(yīng)用(王法能)_第1頁
單片機(jī)原理及應(yīng)用(王法能)_第2頁
單片機(jī)原理及應(yīng)用(王法能)_第3頁
單片機(jī)原理及應(yīng)用(王法能)_第4頁
單片機(jī)原理及應(yīng)用(王法能)_第5頁
已閱讀5頁,還剩508頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第一章微型計(jì)算機(jī)根底知識(shí)1.1微型計(jì)算機(jī)的組成及工作原理1.1.1微型計(jì)算機(jī)中的根本概念1.微處理器2.微型計(jì)算機(jī)(1)單片微處理機(jī)(2)通用微型計(jì)算機(jī)3.微型計(jì)算機(jī)系統(tǒng)1.1.2微機(jī)根本結(jié)構(gòu)微型計(jì)算機(jī)的根本組成如圖1.1所示,它由中央處理器〔CPU〕、存儲(chǔ)器〔Memory〕、輸入輸出接口〔I/O接口〕和系統(tǒng)總線〔BUS〕構(gòu)成。圖1.1微型計(jì)算機(jī)的根本組成1.1.3微型計(jì)算機(jī)的根本工作過程微型計(jì)算機(jī)的根本工作過程是執(zhí)行程序的過程,也就是CPU自動(dòng)從程序存放的第1個(gè)存儲(chǔ)單元起,逐步取出指令、分析指令,并根據(jù)指令規(guī)定的操作類型和操作對象,執(zhí)行指令規(guī)定的相關(guān)操作。如此重復(fù),周而復(fù)始,直至執(zhí)行完程序的所有指令,從而實(shí)現(xiàn)程序的根本功能,這就是微型計(jì)算機(jī)的根本工作原理。1.2典型單片機(jī)產(chǎn)品簡介1.2.1MCS-51單片機(jī)系列MCS-51可分為兩個(gè)子系列和4種類型,如表1-1所示。按資源的配置數(shù)量,MCS-51系列分為51和52兩個(gè)子系列,其中51子系列是根本型,而52子系列屬于增強(qiáng)型。表1-1MCS-51系列單片機(jī)分類資源配置子系列片內(nèi)ROM的形式片內(nèi)ROM容量片內(nèi)RAM容量定時(shí)器與計(jì)數(shù)器中斷源無ROMEPROME2PROM8×51系列80318051875189514KB128B2×1658×C51系列80C3180C5187C5189C514KB128B2×1658×52系列80328052875289528KB256B3×1668×C252系列80C23280C25287C25289C2528KB256B3×16780C51與8051的比較〔1〕MCS-51系列芯片采用HMOS工藝,而80C51芯片那么采用CHMOS工藝。CHMOS工藝是COMS和HMOS的結(jié)合,〔2〕80C51芯片具有COMS低功耗的特點(diǎn)。例如8051芯片的功耗為630mW,而80C51的功耗只有120mW?!?〕80C51在功能增加了待機(jī)和掉電保護(hù)兩種工作方式,以保證單片機(jī)在掉電情況下能以最低的消耗電流維持?!?〕此外,在80C51系列芯片中,內(nèi)部程序存儲(chǔ)器除了ROM型和EPROM型外,還有E2PROM型,例如89C51就有4KBE2PROM。并且隨著集成技術(shù)的提高,80C51系列片內(nèi)程序存儲(chǔ)器的容量也越來越大,目前已有64KB的芯片了。另外,許多80C51芯片還具有程序存儲(chǔ)器保密機(jī)制,以防止應(yīng)用程序泄密或被復(fù)制。1.2.2MCS-96系列單片機(jī)MCS-96系列單片機(jī)是Intel公司在1983年推出的16位單片機(jī),它與8位機(jī)相比,具有集成度高、運(yùn)算速度快等特點(diǎn)。它的內(nèi)部除了有常規(guī)的I/O接口、定時(shí)器/計(jì)數(shù)器、全雙工串行口外,還有高速I/O部件、多路A/D轉(zhuǎn)換和脈寬調(diào)制輸出〔PWM〕等電路,其指令系統(tǒng)比MCS-51更加豐富。1.2.3ATMEL公司單片機(jī)ATMEL公司于1992年推出了全球第一個(gè)3V超低壓F1ash存儲(chǔ)器,并于1994年以E2PROM技術(shù)與Intel公司的80C31內(nèi)核進(jìn)行技術(shù)交換,從此擁有了80C31內(nèi)核的使用權(quán),并將ATMEL特有的Flash技術(shù)與80C31內(nèi)核結(jié)合在一起,生產(chǎn)出AT89C51系列單片機(jī)。1.3單片機(jī)的應(yīng)用模式1.3.1單片機(jī)應(yīng)用系統(tǒng)的結(jié)構(gòu)單片機(jī)應(yīng)用系統(tǒng)的結(jié)構(gòu)通常分為以下三個(gè)層次。(1)單片機(jī):通常指應(yīng)用系統(tǒng)主處理機(jī),即所選擇的單片機(jī)器件。(2)單片機(jī)系統(tǒng):指按照單片機(jī)的技術(shù)要求和嵌入對象的資源要求而構(gòu)成的根本系統(tǒng)。時(shí)鐘電路、復(fù)位電路和擴(kuò)展存儲(chǔ)器等與單片機(jī)共同構(gòu)成了單片機(jī)系統(tǒng)。(3)單片機(jī)應(yīng)用系統(tǒng):指能滿足嵌入對象要求的全部電路系統(tǒng)。在單片機(jī)系統(tǒng)的根底上加上面向?qū)ο蟮慕涌陔娐罚缜跋蛲ǖ?、后向通道、人機(jī)交互通道(鍵盤、顯示器、打印機(jī)等)和串行通信口(RS232)以及應(yīng)用程序等。單片機(jī)應(yīng)用系統(tǒng)三個(gè)層次的關(guān)系如圖1.2所示

圖1.2單片機(jī)應(yīng)用系統(tǒng)三個(gè)層次的關(guān)系1.3.2單片機(jī)系統(tǒng)的開發(fā)過程通常開發(fā)一個(gè)單片機(jī)系統(tǒng)可按以下6個(gè)步驟進(jìn)行。(1)明確系統(tǒng)設(shè)計(jì)任務(wù),完成單片機(jī)及其外圍電路的選型工作。(2)

設(shè)計(jì)系統(tǒng)原理圖和PCB板,經(jīng)仔細(xì)檢查PCB板后送工廠制作。(3)

完成器件的安裝焊接。(4)

根據(jù)硬件設(shè)計(jì)和系統(tǒng)要求編寫應(yīng)用程序。(5)

在線調(diào)試軟硬件。(6)使用編程器燒寫單片機(jī)應(yīng)用程序,獨(dú)立運(yùn)行單片機(jī)系統(tǒng)。

1.4單片機(jī)的應(yīng)用1.單片機(jī)在機(jī)、電、儀一體化等智能產(chǎn)品中的應(yīng)用日常生活中含單片機(jī)的電器產(chǎn)品智能化的儀器儀表2.單片機(jī)在工業(yè)測控中的應(yīng)用3.單片機(jī)在通信技術(shù)中的應(yīng)用1.5數(shù)制與編碼1.5.1數(shù)制的表示1.常用數(shù)制〔1〕十進(jìn)制數(shù)我們熟悉的十進(jìn)制數(shù)有兩個(gè)主要特點(diǎn):有十個(gè)不同的數(shù)字符號(hào):0、1、2、…、9;低位向高位進(jìn)、借位的規(guī)律是“逢十進(jìn)一〞“借一當(dāng)十〞的計(jì)數(shù)原那么進(jìn)行計(jì)數(shù)。例如:1234.45=1×103+2×102+3×101+4×100+4×10-15×10-2式中的10稱為十進(jìn)制數(shù)的基數(shù),103、102、101、100、10-1稱為各數(shù)位的權(quán)。十進(jìn)制數(shù)用D結(jié)尾表示?!?〕二進(jìn)制數(shù)在二進(jìn)制中只有兩個(gè)不同數(shù)碼:0和1,進(jìn)位規(guī)律是“逢二進(jìn)一〞“借一當(dāng)二〞的計(jì)數(shù)原那么進(jìn)行計(jì)數(shù)。二進(jìn)制數(shù)用B結(jié)尾表示。例如,二進(jìn)制數(shù)11011011.01可表示為:(11011011.01)2==1×27+1×26+0×25+1×24+1×23+0×22+1×21+1×20+0×2-1+1×2-2〔3〕八進(jìn)制數(shù)在八進(jìn)制中有0、1、2…、7八個(gè)不同數(shù)碼,采用“逢八進(jìn)一〞“借一當(dāng)八〞的計(jì)數(shù)原那么進(jìn)行計(jì)數(shù)。八進(jìn)制數(shù)用Q結(jié)尾表示。例如,八進(jìn)制數(shù)〔503.04〕Q可表示為:〔503.04〕Q=5×82+0×81+3×80+0×8-1+4×8-2〔4〕十六進(jìn)制數(shù)在十六進(jìn)制中有0、1、2…、9、A、B、C、D、E、F共十六個(gè)不同的數(shù)碼,采用“逢十六進(jìn)一〞“借一當(dāng)十六〞的計(jì)數(shù)原那么進(jìn)行計(jì)數(shù)。十六進(jìn)制數(shù)用H結(jié)尾表示。例如,十六進(jìn)制數(shù)〔4E9.27〕H可表示為〔4E9.27〕H=4×162+14×161+9×160+2×16-1+7×16-22.不同進(jìn)制數(shù)之間的相互轉(zhuǎn)換表1-4列出了二、八、十、十六進(jìn)制數(shù)之間的對應(yīng)關(guān)系,熟記這些對應(yīng)關(guān)系對后續(xù)內(nèi)容的學(xué)習(xí)會(huì)有較大的幫助。表1-4各種進(jìn)位制的對應(yīng)關(guān)系十進(jìn)制二進(jìn)制八進(jìn)制十六進(jìn)制十進(jìn)制二進(jìn)制八進(jìn)制十六進(jìn)制000091001119111110101012A2102211101113B3113312110014C41004413110115D51015514111016E61106615111117F711177161000020108100010817100012111〔1〕二、八、十六進(jìn)制數(shù)轉(zhuǎn)換成為十進(jìn)制數(shù)根據(jù)各進(jìn)制的定義表示方式,按權(quán)展開相加,即可轉(zhuǎn)換為十進(jìn)制數(shù)?!纠?-1】將〔10101〕B,(72)Q,〔49〕H轉(zhuǎn)換為十進(jìn)制數(shù)。(10101)B=1×24+0×23+1×22+0×21+1×20=37(72)Q=7×81+2×80=58(49)H=4×161+9×160=73〔2〕十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)十進(jìn)制數(shù)轉(zhuǎn)換二進(jìn)制數(shù),需要將整數(shù)局部和小數(shù)局部分開,采用不同方法進(jìn)行轉(zhuǎn)換,然后用小數(shù)點(diǎn)將這兩局部連接起來。①整數(shù)局部:除2取余法。具體方法是:將要轉(zhuǎn)換的十進(jìn)制數(shù)除以2,取余數(shù);再用商除以2,再取余數(shù),直到商等于0為止,將每次得到的余數(shù)按倒序的方法排列起來作為結(jié)果。【例1-2】將十進(jìn)制數(shù)25轉(zhuǎn)換成二進(jìn)制數(shù)所以〔25〕D=11001B②小數(shù)局部:乘2取整法。具體方法是:將十進(jìn)制小數(shù)不斷地乘以2,直到積的小數(shù)局部為零〔或直到所要求的位數(shù)〕為止,每次乘得的整數(shù)依次排列即為相應(yīng)進(jìn)制的數(shù)碼。最初得到的為最高有效數(shù)位,最后得到的為最低有效數(shù)字?!纠?-3】將十進(jìn)制數(shù)0.625轉(zhuǎn)換成二進(jìn)制數(shù)。所以〔0.625〕D=0.101B【例1-4】將十進(jìn)制數(shù)25.625轉(zhuǎn)換成二進(jìn)制數(shù),只要將上例整數(shù)和小數(shù)局部組合在一起即可,即(25.625)D=(11001.101)B例如:將十進(jìn)制193.12轉(zhuǎn)換成八進(jìn)制數(shù)。所以〔193.12〕D(301.075)Q(3)二進(jìn)制與八進(jìn)制之間的相互轉(zhuǎn)換由于23=8,故可采用“合三為一〞的原那么,即從小數(shù)點(diǎn)開始向左、右兩邊各以3位為一組進(jìn)行二-八轉(zhuǎn)換:假設(shè)缺乏3位的以0補(bǔ)足,便可以將二進(jìn)制數(shù)轉(zhuǎn)換為八進(jìn)制數(shù)。反之,每位八進(jìn)制數(shù)用三位二進(jìn)制數(shù)表示,就可將八進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)?!纠?-5】將〔10100101.01011101〕2轉(zhuǎn)換為八進(jìn)制數(shù)。010100101.010111010245.272即(10100101.01011101)B=(245.272)Q【例1-6】將(756.34)Q轉(zhuǎn)換為二進(jìn)制數(shù)。756.34111101110.011100即(756.34)Q=(111101110.0111)B(4)二進(jìn)制與十六進(jìn)制之間的相互轉(zhuǎn)換由于24=16,故可采用“合四為一〞的原那么,即從小數(shù)點(diǎn)開始向左、右兩邊各以4位為一組進(jìn)行二—十六轉(zhuǎn)換,假設(shè)缺乏4位的以0補(bǔ)足,便可以將二進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)。反之,每位十六進(jìn)制數(shù)用四位二進(jìn)制數(shù)表示,就可將十六進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)?!纠?-7】將轉(zhuǎn)換為十六進(jìn)制數(shù)。0001111111000111.1001010110001FC7.958即【例1-8】將(79BD.6C)H轉(zhuǎn)換為二進(jìn)制數(shù)。79BD.6C0111100110111101.01101100即1.5.2常用的信息編碼二—十進(jìn)制BCD碼〔Binary-CodedDecimal〕二—十進(jìn)制BCD碼是指每位十進(jìn)制數(shù)用4位二進(jìn)制數(shù)編碼表示。由于4位二進(jìn)制數(shù)可以表示16種狀態(tài),可丟棄最后6種狀態(tài),而選用0000~1001來表示0~9十個(gè)數(shù)符。這種編碼又叫做8421碼。見表1-5所示。表1-5十進(jìn)制數(shù)與BCD碼的對應(yīng)關(guān)系十進(jìn)制數(shù)BCD碼十進(jìn)制數(shù)BCD碼000001000010000100011100010001200101200010010300111300010011401001400010100501011500010101601101600010110701111700010111810001800011000910011900011001【例1-9】將69.25轉(zhuǎn)換成BCD碼。69.25 01101001.00100101結(jié)果為69.25=(01101001.00100101)BCD【例1-10】將BCD碼轉(zhuǎn)換成十進(jìn)制數(shù)。100101111000.01010110978.56結(jié)果為〔〕BCD=978.562.字符編碼〔ASCII碼〕計(jì)算機(jī)使用最多、最普遍的是ASCII〔AmericanStandardCodeForInformationInterchange〕字符編碼,即美國信息交換標(biāo)準(zhǔn)代碼,如表1.6所示。表1-6七位ASCII代碼表

d3d2d1d0位0d6d5d4位0000010100111001011101110000NULDELSP0@P`p0001SOHDC1!1AQaq0010STXDC2″2BRbr0011ETXDC3#3CScs0100EOTDC4﹩4DTdt0101ENQNAK%5EUeu0110ACKSYN﹠6FVfv0111BELETB'7GWgw1000BSCAN﹙8HXhx1001HTEM﹚9IYiy1010LFSUB﹡:JZjz1011VTESC+﹔K[k﹛1100FFFS,<L\l|1101CRGS-=M]m}1110SORS·>N↑n~1111SIHS/﹖O←oDELASCII碼的每個(gè)字符用7位二進(jìn)制數(shù)表示,其排列次序?yàn)閐6d5d4d3d2d1d0,d6為高位,d0為低位。而一個(gè)字符在計(jì)算機(jī)內(nèi)實(shí)際是用8位表示。正常情況下,最高一位d7為“0〞。7位二進(jìn)制數(shù)共有128種編碼組合,可表示128個(gè)字符,其中數(shù)字10個(gè)、大小寫英文字母52個(gè)、其他字符32個(gè)和控制字符34個(gè)。數(shù)字0~9的ASCII碼為30H~39H。大寫英文字母A~Z的ASCII碼為41H~5AH。小寫英文字母a~z的ASCII碼為61H~7AH。對于ASCII碼表中的0、A、a的ASCII碼30H、41H、61H應(yīng)盡量記住,其余的數(shù)字和字母的ASCII碼可按數(shù)字和字母的順序以十六進(jìn)制的規(guī)律寫出。3.奇偶校驗(yàn)碼奇偶校驗(yàn)碼是在傳送的代碼上附加一個(gè)校驗(yàn)位,作為代碼的比較校驗(yàn)。這樣在接收方,先對信息代碼按雙方的校驗(yàn)規(guī)定求奇偶校驗(yàn)碼,然后再與收到的附加校驗(yàn)位作比較,假設(shè)相等那么認(rèn)為接收的代碼是正確的,否那么為錯(cuò)。奇偶校驗(yàn)就是鑒別代碼中有奇數(shù)個(gè)“1,還是有偶數(shù)個(gè)“1。例如,有效信息為1011001,假設(shè)采用偶校驗(yàn)碼記為“0〞的話,那么有效代碼為10110010;采用奇校驗(yàn)碼記為“1〞的話,有效代碼那么為10110011。有效代碼的最后的那個(gè)數(shù)位,就是奇偶校驗(yàn)位。當(dāng)接受方收到這組代碼后,便根據(jù)奇、偶校驗(yàn)的約定和有效代碼中“1〞的個(gè)數(shù)形成校驗(yàn)碼,然后再與接收的校驗(yàn)位作比較。比較相等的話,說明接受的信息正確;反之,那么認(rèn)為出現(xiàn)了錯(cuò)誤。1.6計(jì)算機(jī)數(shù)值數(shù)據(jù)表示與運(yùn)算1.6.1二進(jìn)制數(shù)在計(jì)算機(jī)內(nèi)的表示1.機(jī)器數(shù)在計(jì)算機(jī)中,因?yàn)橹挥小?〞和“1〞兩種形式,所以數(shù)的正、負(fù)號(hào),也必須以“0〞和“1〞表示。通常把一個(gè)數(shù)的最高位定義為符號(hào)位,用0表示正,1表示負(fù),稱為數(shù)符:其余位仍表示數(shù)值。把在機(jī)器內(nèi)存放的正、負(fù)號(hào)數(shù)碼化的數(shù)稱為機(jī)器數(shù),把機(jī)器外部由正、負(fù)號(hào)表示的數(shù)稱為真值數(shù)?!纠?-11】真值為(-0101100)B的機(jī)器數(shù)為10101100,存放在機(jī)器中,如圖1.3所示。圖1.3真值B在機(jī)器中的存放要注意的是,機(jī)器數(shù)表示的范圍受到字長和數(shù)據(jù)的類型的限制。字長和數(shù)據(jù)類型定了,機(jī)器數(shù)能表示的數(shù)值范圍也就定了。例如,假設(shè)表示一個(gè)整數(shù),字長為8位,那么最大的正數(shù)為01111111,最高位為符號(hào)位,即最大值為127。假設(shè)數(shù)值超出127,就要“溢出〞。最小負(fù)數(shù)為10000000,最高位為符號(hào)位,即最小值為-128。2.數(shù)的定點(diǎn)和浮點(diǎn)表示計(jì)算機(jī)內(nèi)表示的數(shù),主要分成定點(diǎn)小數(shù)、定點(diǎn)整數(shù)與浮點(diǎn)數(shù)三種類型。〔1〕定點(diǎn)小數(shù)的表示法定點(diǎn)小數(shù)是指小數(shù)點(diǎn)準(zhǔn)確固定在數(shù)據(jù)某一個(gè)位置上的小數(shù)。一般把小數(shù)點(diǎn)固定在最高數(shù)據(jù)位的左邊,小數(shù)點(diǎn)前邊再設(shè)一位符號(hào)位。按此規(guī)那么,任何一個(gè)小數(shù)都可以寫成:N=NSN-1N-2···N-M,NS為符號(hào)位〔2〕整數(shù)的表示法整數(shù)所表示的數(shù)據(jù)的最小單位為1,可以認(rèn)為它是小數(shù)點(diǎn)定在數(shù)值最低位右面的一種表示法。整數(shù)分為帶符號(hào)和不帶符號(hào)兩類。對帶符號(hào)的整數(shù),符號(hào)位放在最高位??梢詫懗桑篘=NSNnNn-1···N2N1N0,NS為符號(hào)位一般定點(diǎn)數(shù)表示的范圍和精度都較小,在數(shù)值計(jì)算時(shí),大多數(shù)采用浮點(diǎn)數(shù)。(3)浮點(diǎn)數(shù)的表示方法浮點(diǎn)表示法對應(yīng)于科學(xué)(指數(shù))計(jì)數(shù)法,如數(shù)110.011可表示為:N=110.011=1.10011×2+10=11001.1×2-10=0.110011×2+11在計(jì)算機(jī)機(jī)中一個(gè)浮點(diǎn)數(shù)由兩局部構(gòu)成:階碼和尾數(shù),階碼是指數(shù),尾數(shù)是純小數(shù)。其存儲(chǔ)格式如圖1.4所示。階符階碼數(shù)符尾數(shù)圖1.4存儲(chǔ)格式【例1-12】設(shè)尾數(shù)為4位,階碼為2位,那么二進(jìn)制數(shù)N=211×l011的浮點(diǎn)數(shù)表示形式為:應(yīng)當(dāng)注意:浮點(diǎn)數(shù)的正、負(fù)是由尾數(shù)的數(shù)符確定,而階碼的正、負(fù)只決定小數(shù)點(diǎn)的位置,即決定浮點(diǎn)數(shù)的絕對值大小。帶符號(hào)數(shù)的表示在計(jì)算機(jī)中,帶符號(hào)數(shù)可以用不同方法表示,常用的有原碼、反碼和補(bǔ)碼。(1)原碼【例1-13】當(dāng)機(jī)器字長n=8時(shí):[+1]原=00000001,[-1]原=10000001[+127]原=01111111,[-127]原=1111111l由此可以看出,在原碼表示法中:最高位為符號(hào)位,正數(shù)為0,負(fù)數(shù)為1,其余n-1位表示數(shù)的絕對值。在原碼表示中,零有兩種表示形式,即:[+0]=00000000,[-0]=10000000。(2)反碼【例1-14】當(dāng)機(jī)器字長n=8時(shí):[+1]反=00000001,[-1]反=11111110[+127]反=01111111,[-127]反=10000000由此看出,在反碼表示中:正數(shù)的反碼與原碼相同,負(fù)數(shù)的反碼只需將其對應(yīng)的正數(shù)按位求反即可得到。

機(jī)器數(shù)最高位為符號(hào)位,0代表正號(hào),1代表負(fù)號(hào)。反碼表示方式中,零有兩種表示方法:[+0]反=00000000,[-0]反=11111111?!?〕補(bǔ)碼【例1-15】當(dāng)機(jī)器字長n=8時(shí),[+1]補(bǔ)=00000001,[-1]補(bǔ)=11111111[+127]補(bǔ)=01111111,[-127]補(bǔ)=10000001由此看出,在補(bǔ)碼表示中:正數(shù)的補(bǔ)碼與原碼、反碼相同,負(fù)數(shù)的補(bǔ)碼等于它的反碼加l。機(jī)器數(shù)的最高位是符號(hào)位,0代表正號(hào),1代表負(fù)號(hào)。在補(bǔ)碼表示中,0有唯一的編碼:[+0]補(bǔ)=[-0]補(bǔ)=00000000。補(bǔ)碼的運(yùn)算方便,二進(jìn)制的減法可用補(bǔ)碼的加法實(shí)現(xiàn),使用較廣泛。【例1-16】假定計(jì)算機(jī)字長為8位,試寫出122的原碼、反碼和補(bǔ)碼。[122]原=[122]反=[122]補(bǔ)=01111010B【例1-17】假定計(jì)算機(jī)字長為8位,試寫出-45的原碼、反碼和補(bǔ)碼。[-45]原=10101101B[-45]反=11010010B[-45]補(bǔ)=11010011B對于用補(bǔ)碼表示的負(fù)數(shù),首先認(rèn)定它是負(fù)數(shù),而后用求它的補(bǔ)碼的方法可得到它的絕對值,即可求得該負(fù)數(shù)的值。例如,補(bǔ)碼數(shù)(11110011)B是一個(gè)負(fù)數(shù),求該數(shù)的補(bǔ)碼為(00001101)B,該數(shù)相應(yīng)的十進(jìn)制數(shù)為13,故求出(11110011)B為(-13)D?!纠?-18】試寫出原碼11011001的真值?!苍a〕補(bǔ)=〔原碼〕反+1=10100111B=-391.6.2補(bǔ)碼的運(yùn)算在微處理機(jī)中,使用補(bǔ)碼進(jìn)行運(yùn)算是十分方便的,它使同一個(gè)微處理機(jī)中既能運(yùn)算帶符號(hào)數(shù)又能運(yùn)算不帶符號(hào)的數(shù)。而且,在采用補(bǔ)碼表示帶符號(hào)數(shù)的情況下,兩個(gè)數(shù)的減法可以用加法來實(shí)現(xiàn)。下面我們將會(huì)看到這一點(diǎn)。在進(jìn)行帶符號(hào)數(shù)的加減運(yùn)算時(shí),應(yīng)把參與運(yùn)算的數(shù)據(jù)轉(zhuǎn)換成補(bǔ)碼形式進(jìn)行運(yùn)算。當(dāng)使用8位二進(jìn)制數(shù)表示帶符號(hào)的數(shù)時(shí),它所能表示的數(shù)值范圍在(-128)10~(+127)10之間,如果相加結(jié)果超出了這個(gè)范圍,就會(huì)導(dǎo)致錯(cuò)誤發(fā)生。[X+Y]補(bǔ)=[X]補(bǔ)+[Y]補(bǔ)[X-Y]補(bǔ)=[X]補(bǔ)+[-Y]補(bǔ)【例1-20】兩個(gè)帶符號(hào)的數(shù)(01000001)2(十進(jìn)制數(shù)+65)與(01000011)2(十進(jìn)制數(shù)+67)例中是兩個(gè)正數(shù)相加,但結(jié)果卻是一個(gè)負(fù)數(shù)——符號(hào)位為1。顯然,這個(gè)結(jié)果是錯(cuò)誤的,出現(xiàn)這種錯(cuò)誤的原因就在于這兩個(gè)數(shù)相加的結(jié)果超過了8位二進(jìn)制帶符號(hào)數(shù)所能表示的數(shù)值范圍?!纠?-21】兩個(gè)負(fù)數(shù)(10001000)2和(11101110)2的相加情況。由于規(guī)定用8位二進(jìn)制數(shù)來表示帶符號(hào)的數(shù),故忽略作為進(jìn)位位的第九位。按8位二進(jìn)制數(shù)來解釋這兩個(gè)符號(hào)數(shù)的相加,其結(jié)果為一個(gè)正數(shù)。很明顯,結(jié)果是錯(cuò)誤的?!纠?-22】兩個(gè)無符號(hào)數(shù)(11111101)2和(00000011)2相加:從相加計(jì)算的結(jié)果來看,如果微處理機(jī)只有8位,也就是用8位二進(jìn)制數(shù)來解釋運(yùn)算的結(jié)果,那么將出現(xiàn)錯(cuò)誤。因此,在微處理機(jī)中設(shè)有專門的一位,稱為進(jìn)位位,它將用于保存第九位以防喪失信息。1.6.3邏輯運(yùn)算〔1〕“與〞運(yùn)算?!芭c〞運(yùn)算的運(yùn)算規(guī)那么是:00=0 01=010=011=1【例1-23】二進(jìn)制數(shù)01011101B和11010101B相與?!?〕“或〞運(yùn)算?!盎颞曔\(yùn)算的運(yùn)算規(guī)那么是:00=001=110=1 11=1【例1-24】二進(jìn)制數(shù)10101101和01010000相或?!?〕“異或〞運(yùn)算?!爱惢颞曔\(yùn)算的運(yùn)算規(guī)那么是:00=001=110=111=0【例1-25】二進(jìn)制數(shù)10101101和01101110相異或。

第二章MCS—51系列單片機(jī)芯片結(jié)構(gòu)

2.1MCS—51系列單片機(jī)的結(jié)構(gòu)原理2.1.1MCS-51單片機(jī)邏輯結(jié)構(gòu)MCS-51單片機(jī)的系統(tǒng)結(jié)構(gòu)框圖如圖2.1所示。

圖2.1MCS-51單片機(jī)的系統(tǒng)結(jié)構(gòu)框圖由圖2.1可以看出,單片機(jī)內(nèi)部主要包含以下幾個(gè)部件:u

一個(gè)8位CPU;u

一個(gè)時(shí)鐘電路;u

4Kbyte程序存儲(chǔ)器;u

128byte數(shù)據(jù)存儲(chǔ)器;u

兩個(gè)16位定時(shí)/計(jì)數(shù)器;u

64Kbyte擴(kuò)展總線控制電路;u

四個(gè)8-bit并行I/O端口;u

一個(gè)可編程串行接口;五個(gè)中斷源,其中包括兩個(gè)優(yōu)先級嵌套中斷2.1.2MCS-51單片機(jī)內(nèi)部結(jié)構(gòu)MCS-51單片機(jī)芯片內(nèi)部結(jié)構(gòu)框圖如圖2.2所示。

圖2.2MCS-51單片機(jī)芯片內(nèi)部結(jié)構(gòu)框圖1.CPUCPU即中央處理器的簡稱,是單片機(jī)的核心部件,它完成各種運(yùn)算和控制操作,CPU由運(yùn)算器和控制器兩局部電路組成?!?〕運(yùn)算器電路運(yùn)算器電路包括ALU〔算術(shù)邏輯單元〕、ACC〔累加器〕、B存放器、狀態(tài)存放器、暫存器1和暫存器2等部件,運(yùn)算器的功能是進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算。〔2〕控制器電路控制器電路包括程序計(jì)數(shù)器PC、PC加1存放器、指令存放器、指令譯碼器、數(shù)據(jù)指針DPTR、堆棧指針SP、緩沖器以及定時(shí)與控制電路等??刂齐娐吠瓿芍笓]控制工作,協(xié)調(diào)單片機(jī)各局部正常工作。2.定時(shí)器/計(jì)數(shù)器MCS-51單片機(jī)片內(nèi)有兩個(gè)16位的定時(shí)/計(jì)數(shù)器,即定時(shí)器0和定時(shí)器1。它們可以用于定時(shí)控制、延時(shí)以及對外部事件的計(jì)數(shù)和檢測等。3.存儲(chǔ)器MCS-51系列單片機(jī)的存儲(chǔ)器包括數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器,其主要特點(diǎn)是程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器的尋址空間是相互獨(dú)立的,物理結(jié)構(gòu)也不相同。4.并行I/O口MCS-51單片機(jī)共有4個(gè)8位的I/O口〔P0、P1、P2和P3〕,每一條I/O線都能獨(dú)立地用作輸入或輸出。P0口為三態(tài)雙向口,能帶8個(gè)TTL門電路,P1、P2和P3口為準(zhǔn)雙向口,負(fù)載能力為4個(gè)TTL門電路。5.串行I/O口MCS-51單片機(jī)具有一個(gè)采用通用異步工作方式的全雙工串行通信接口,可以同時(shí)發(fā)送和接收數(shù)據(jù)。6.中斷控制系統(tǒng)8051共有5個(gè)中斷源,即外中斷2個(gè),定時(shí)/計(jì)數(shù)中斷2個(gè),串行中斷1個(gè)。7.時(shí)鐘電路MCS-51芯片內(nèi)部有時(shí)鐘電路,但晶體振蕩器和微調(diào)電容必須外接。時(shí)鐘電路為單片機(jī)產(chǎn)生時(shí)鐘脈沖序列,振蕩器的頻率范圍為1.2MHz~12MHz,典型取值為6MHz。8.總線以上所有組成局部都是通過總線連接起來,從而構(gòu)成一個(gè)完整的單片機(jī)。系統(tǒng)的地址信號(hào)、數(shù)據(jù)信號(hào)和控制信號(hào)都是通過總線傳送的,總線結(jié)構(gòu)減少了單片機(jī)的連線和引腳,提高了集成度和可靠性。2.1.3引腳信號(hào)圖2.3為MCS-51系列單片機(jī)引腳圖及邏輯符號(hào),它們?yōu)闃?biāo)準(zhǔn)的40腳DIP封裝。

圖2.3MCS-51系列單片機(jī)引腳圖及邏輯符號(hào)電源引腳Vcc和VssVcc:電源端,接+5V。Vss:接地端。時(shí)鐘電路引腳XTAL1和XTAL2XTAL1:接外部晶振和微調(diào)電容的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,假設(shè)使用外部TTL時(shí)鐘時(shí),該引腳必須接地。XTAL2:接外部晶振和微調(diào)電容的另一端,在片內(nèi)它是振蕩器倒相放大器的輸出,假設(shè)使用外部TTL時(shí)鐘時(shí),該引腳為外部時(shí)鐘的輸入端。地址鎖存允許ALE系統(tǒng)擴(kuò)展時(shí),ALE用于控制地址鎖存器鎖存P0口輸出的低8位地址,從而實(shí)現(xiàn)數(shù)據(jù)與低位地址的復(fù)用。

外部程序存儲(chǔ)器讀選通信號(hào)是讀外部程序存儲(chǔ)器的選通信號(hào),低電平有效。程序存儲(chǔ)器地址允許輸入端/VPP

當(dāng)為高電平時(shí),CPU執(zhí)行片內(nèi)程序存儲(chǔ)器指令,但當(dāng)PC中的值超過0FFFH時(shí),將自動(dòng)轉(zhuǎn)向執(zhí)行片外程序存儲(chǔ)器指令。當(dāng)為低電平時(shí),CPU只執(zhí)行片外程序存儲(chǔ)器指令。復(fù)位信號(hào)RST該信號(hào)高電平有效,在輸入端保持兩個(gè)機(jī)器周期的高電平后,就可以完成復(fù)位操作。1.

輸入/輸出口引腳P0、P1、P2和P3P0口〔P0.0~P0.7〕:該端口為漏極開路的8位準(zhǔn)雙向口,負(fù)載能力位8高LSTTL負(fù)載,它為8位地址線和8位數(shù)據(jù)線的復(fù)用端口。P1口〔P1.0~P1.7〕:它是一個(gè)內(nèi)部帶上拉電阻的8位準(zhǔn)雙向I/O口,P1口的驅(qū)動(dòng)能力為4個(gè)LSTTL負(fù)載。P2口〔P2.0~P2.7〕:它為一個(gè)內(nèi)部帶上拉電阻的8位準(zhǔn)雙向I/O口,P2口的驅(qū)動(dòng)能力也為4個(gè)LSTTL負(fù)載。在訪問外部程序存儲(chǔ)器時(shí),它作存儲(chǔ)器的高8位地址線。P3口〔P3.0~P3.7〕:P3口同樣是內(nèi)部帶上拉電阻的8位準(zhǔn)雙向I/O口,P3口除了作為一般的I/O口使用之外,其還具有特殊功能。2.2MCS—51單片機(jī)的存儲(chǔ)器MCS-51的存儲(chǔ)器結(jié)構(gòu)如圖2.4所示。在本節(jié)中我們將對單片機(jī)的內(nèi)部數(shù)據(jù)存儲(chǔ)器、內(nèi)部程序存儲(chǔ)器和外部存儲(chǔ)器分別作一介紹。

圖2.4MCS-51的存儲(chǔ)器結(jié)構(gòu)如2.2.1內(nèi)部數(shù)據(jù)存儲(chǔ)器

1.內(nèi)部數(shù)據(jù)存儲(chǔ)器低128單元在低128字節(jié)存儲(chǔ)單元中,前32個(gè)單元〔00H~1FH〕作為工作存放器使用,這32個(gè)存放器分作4組,每組由8個(gè)通用存放器〔R0~R7〕組成,組號(hào)依次為0、1、2和3。通過對程序狀態(tài)字中RS1和RS0的設(shè)置,可以決定選用哪一組工作存放器,通常沒有選中的單元也可作為一般的數(shù)據(jù)緩存使用。系統(tǒng)上電復(fù)位時(shí),默認(rèn)選中第0組存放器。在工作存放器后的16個(gè)數(shù)據(jù)單元〔20H~2FH〕,它們既可以作為一般的數(shù)據(jù)單元使用,由可以按位對每個(gè)單元進(jìn)行操作,因此這16個(gè)數(shù)據(jù)單元又稱作位尋址區(qū)。位尋址區(qū)共計(jì)128位,其位地址為00H~0FH。在內(nèi)部RAM的低128個(gè)單元中,剩余的80個(gè)數(shù)據(jù)單元即30H~7FH為真正的用戶RAM區(qū),對于這些區(qū)域,用戶只能以存儲(chǔ)單元的形式來使用,通常在應(yīng)用中也把堆棧開辟在這段區(qū)域。2.

內(nèi)部數(shù)據(jù)存儲(chǔ)器高128單元內(nèi)部數(shù)據(jù)存儲(chǔ)器的高128個(gè)單元是為專用存放器提供的,因此該區(qū)也稱作特殊功能存放器區(qū)〔SFR〕,它們主要用于存放控制命令、狀態(tài)或數(shù)據(jù)。除去程序計(jì)數(shù)器PC外,還有21個(gè)特殊功能存放器,其地址空間為80H~FFH。這21個(gè)存放器中有11個(gè)特殊功能存放器具有位尋址能力,它們的字節(jié)地址剛好能被8整除。下面將對局部專用存放器作簡要介紹。累加器ACC累加器為8位存放器,是程序中最常用的專用存放器,在指令系統(tǒng)中累加器的助記符為A。大局部單操作數(shù)指令的操作取自累加器,很多雙操作數(shù)指令的一個(gè)操作數(shù)也取自累加器。加、減乘和除等算術(shù)運(yùn)算指令的運(yùn)算結(jié)果都存放在累加器A或AB存放器中,在變址尋址方式中累加器被作為變址存放器使用。在MCS-51中由于只有一個(gè)累加器,而單片機(jī)中的大局部數(shù)據(jù)操作都是通過累加器進(jìn)行的,故累加器的使用是十分頻繁的。B存放器B存放器為8位存放器,主要用于乘除指令中。乘法指令的兩個(gè)操作數(shù)分別取自累加器A和存放器B,其中B為乘數(shù),乘法結(jié)果的高8位存放于存放器B中。除法指令中,被除數(shù)取自A,除數(shù)取自B,除法的結(jié)果商數(shù)存放于A,余數(shù)存放于B中。在其它指令中,B存放器也可作為一般的數(shù)據(jù)單元來使用。程序狀態(tài)字PSW程序狀態(tài)字是一個(gè)8位存放器,它包含程序的狀態(tài)信息。在狀態(tài)字中,有些位狀態(tài)是根據(jù)指令執(zhí)行結(jié)果,由硬件自動(dòng)完成設(shè)置的,而有些狀態(tài)位那么必須通過軟件方法設(shè)定。PSW中的每個(gè)狀態(tài)位都可由軟件讀出,PSW的各位定義如表2.1。表2.1PSW的各狀態(tài)位定義

(1)CY:進(jìn)位標(biāo)志位在執(zhí)行某些算術(shù)和邏輯指令時(shí),可以被硬件或軟件置位或清零。在算術(shù)運(yùn)算中它可作為進(jìn)位標(biāo)志,在位運(yùn)算中,它作累加器使用,在位傳送、位與和位或等位操作中,都要使用進(jìn)位標(biāo)志位。(2)AC:輔助進(jìn)位標(biāo)志進(jìn)行加法或減法操作時(shí),當(dāng)發(fā)生低四位向高四位進(jìn)位或借位時(shí),AC由硬件置位,否那么AC位被置“0〞。在進(jìn)行十進(jìn)制調(diào)整指令時(shí),將借助AC狀態(tài)進(jìn)行判斷。位序PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位標(biāo)志CYACF0RS1RS0OV/ P(3)用戶標(biāo)志位該位為用戶定義的狀態(tài)標(biāo)記,用戶根據(jù)需要用軟件對其置位或清零,也可以用軟件測試F0來控制程序的跳轉(zhuǎn)。(4)RS1和RS0:存放器區(qū)選擇控制位該兩位通過軟件置“0〞或“1〞來選擇當(dāng)前工作存放器區(qū)。(5)OV:溢出標(biāo)志位當(dāng)執(zhí)行算術(shù)指令時(shí),由硬件置位或清零來指示溢出狀態(tài)。在帶符號(hào)的加減運(yùn)算中,OV=1表示加減運(yùn)算結(jié)果超出了累加器A所能表示的符號(hào)數(shù)有效范圍〔-128~+127〕,即運(yùn)算結(jié)果是錯(cuò)誤的,反之,OV=0表示運(yùn)算正確,即無溢出產(chǎn)生。無符號(hào)數(shù)乘法指令MUL的執(zhí)行結(jié)果也會(huì)影響溢出標(biāo)志,假設(shè)置于累加器A和存放器B的兩個(gè)數(shù)的乘積超過了255,那么OV=1,反之OV=0。由于乘積的高8位存放于B中,低8位存放于A中,OV=0那么意味著只要從A中取得乘積即可,否那么要從BA存放器對中取得乘積結(jié)果。在除法運(yùn)算中,DIV指令也會(huì)影響溢出標(biāo)志,當(dāng)除數(shù)為0時(shí),OV=1,否那么OV=0。(6)P:奇偶標(biāo)志位每個(gè)指令周期由硬件來置位或清零用以表示累加器A中1的個(gè)數(shù)的奇偶性,假設(shè)累加器中1的個(gè)數(shù)為奇數(shù)那么P=1,否那么P=0。l

數(shù)據(jù)指針DPTR數(shù)據(jù)指針DPTR為一個(gè)16位的專用存放器,其高位用DPH表示,其低位用DPL表示,它即既可以作為一個(gè)16位的存放器來使用,也可作為兩個(gè)8位的的存放器DPH和DPL使用。DPTR在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)既可用來存放16位地址,也可作地址指針使用。如MOVX@DPTR,A。l

I/O端口P0~P3

P0~P3為四個(gè)8位的特殊功能存放器,分別是四個(gè)并行I/O端口的鎖存器,當(dāng)I/O端口的某一位用作輸入時(shí),對應(yīng)的鎖存器必須先置“1〞。l

定時(shí)器/計(jì)數(shù)器在MCS-51中,除8032/8052外都只有兩個(gè)16位定時(shí)器/計(jì)數(shù)器T0和T1,它們由兩個(gè)相互獨(dú)立的8位存放器組成TH和TL,共有四個(gè)獨(dú)立的存放器TH0、TL0、TH1和TL1,只可對這四個(gè)存放器獨(dú)立尋址,而不能作為一個(gè)16位存放器來尋址。l

串行數(shù)據(jù)緩沖存放器串行數(shù)據(jù)緩沖器SBUF用于存放將要發(fā)送或已接收的數(shù)據(jù),它由發(fā)送緩沖器和接收緩沖器組成,將要發(fā)送的數(shù)據(jù)被送入SBUF時(shí)進(jìn)入發(fā)送緩沖器,反之進(jìn)入接收緩沖器。

2.2.2外部數(shù)據(jù)存儲(chǔ)器在MCS-51中,其片外數(shù)據(jù)存儲(chǔ)器和I/O口與片內(nèi)數(shù)據(jù)存儲(chǔ)器空間0000FH~FFFFH是重疊的。在8051單片機(jī)中采用MOV和MOVX兩種指令來區(qū)分片內(nèi)外RAM空間,其中片內(nèi)RAM使用MOV指令,片外RAM和I/O口使用MOVX指令。2.2.3程序存儲(chǔ)器在MCS-51系列中,程序存儲(chǔ)器被用來存放程序、常數(shù)或表格等。在8051中,其片內(nèi)有4K字節(jié)的ROM存儲(chǔ)單元,地址為0000H~0FFFH。8751有4K字節(jié)的EPROM,而8052和8752那么有8K字節(jié)的片內(nèi)存儲(chǔ)器。8031和8032無片內(nèi)程序存儲(chǔ)器,所以片內(nèi)程序存儲(chǔ)器的有無是區(qū)分芯片的主要標(biāo)志。在程序存儲(chǔ)器中,以下6個(gè)單元具有特殊含義:

0000H:單片機(jī)復(fù)位后,PC=0000H,程序從0000H開始執(zhí)行指令。0003H:外部中斷0入口地址。000BH:定時(shí)器0中斷入口地址。0013H:外部中斷1入口地址。001BH:定時(shí)器1中斷入口地址。0023H:串行口中斷入口地址。在系統(tǒng)中斷相應(yīng)之后,將自動(dòng)轉(zhuǎn)各中斷入口地址處執(zhí)行程序,而中斷效勞程序一般無法存放于幾個(gè)單元之內(nèi),因此在中斷入口地址處往往存放一條無條件轉(zhuǎn)移指令進(jìn)行跳轉(zhuǎn),以便執(zhí)行中斷效勞程序。2.3MCS-51單片機(jī)輸入/輸出〔I/O〕口2.3.1P0口圖2.6給出了P0口的邏輯結(jié)構(gòu),它由一個(gè)鎖存器、兩個(gè)三態(tài)輸入緩沖器、一個(gè)多路復(fù)用開關(guān)以及控制電路和驅(qū)動(dòng)電路等組成。圖2.6P0口的邏輯結(jié)構(gòu)P0口可以作為輸入輸出口,在實(shí)際應(yīng)用中它通常作為地址/數(shù)據(jù)復(fù)用總線。在訪問外部存儲(chǔ)器時(shí),P0口為真正的雙向口。

2.3.2P1口P1口是一個(gè)準(zhǔn)雙向口,通常作為I/O口使用,其位結(jié)構(gòu)圖如圖2.7。由于在其輸出端接有上拉電阻,故可以直接輸出而無需外接上拉電阻。圖2.7位結(jié)構(gòu)圖2.3.3P2口P2口位結(jié)構(gòu)圖如圖2.8。P2通用為一個(gè)準(zhǔn)雙向口,其位結(jié)構(gòu)與P0口相似。對于8031單片機(jī)來說,P2口通常用作地址信號(hào)輸出。

圖2.8P2口位結(jié)構(gòu)圖2.3.4P3口P3口的位結(jié)構(gòu)圖如圖2.9。P3口為雙功能口,當(dāng)P3口作為通用I/O口使用時(shí),它為準(zhǔn)雙向口,且每位都可定義為輸入或輸出口,其工作原理同P1口類似。

圖2.9P3口的位結(jié)構(gòu)圖P3口還具有第二功能,其引腳描述如表2-5。表2-5P3口特殊功能口線特殊功能信號(hào)名稱P3.0RXD串行輸入口P3.1TXD串行輸出口P3.2外部中斷0輸入口P3.3外部中斷1輸入口P3.4T0定時(shí)器0外部輸入口P3.5T1定時(shí)器1外部輸入口P3.6WR寫選通輸出口P3.7RD讀選通輸出口2.4單片機(jī)的工作方式2.4.1復(fù)位及復(fù)位電路在MCS-51中,最常見的復(fù)位電路為圖2.10所示的上電復(fù)位電路,它能有效的實(shí)現(xiàn)上電復(fù)位和手動(dòng)復(fù)位。RST引腳是復(fù)位信號(hào)輸入端,復(fù)位信號(hào)為高電平有效,其有效時(shí)間應(yīng)持續(xù)24個(gè)振蕩周期以上才能完成復(fù)位操作,假設(shè)使用6MHz晶振,那么需持續(xù)4μS以上才能完成復(fù)位操作。圖2.10中,在通電瞬間,由于RC的充電過程,在RST端出現(xiàn)一定寬度的正脈沖,只要該正脈沖保持10ms以上,就能使單片機(jī)自動(dòng)復(fù)位,在6MHz時(shí)鐘時(shí),通常CR取22μF,R1取200Ω,R2取1KΩ,這時(shí)能可靠的上電復(fù)位和手動(dòng)復(fù)位。CPU在第二個(gè)機(jī)器周期內(nèi)執(zhí)行內(nèi)部復(fù)位操作,以后每個(gè)機(jī)器周期重復(fù)一次,直至RST端電平變低。在單片機(jī)復(fù)位期間,AlE和信號(hào)都不產(chǎn)生。復(fù)位操作將對局部專用存放器產(chǎn)生影響。圖2.10上電復(fù)位電路

2.4.2時(shí)鐘電路和時(shí)序1.時(shí)鐘電路根據(jù)硬件電路的不同,單片機(jī)的時(shí)鐘連接方式可分為內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式,如圖2.11所示。

〔a〕內(nèi)部方式時(shí)鐘電路〔b〕外接時(shí)鐘電路圖2.11時(shí)鐘電路2.指令時(shí)序〔1〕振蕩周期振蕩周期指為單片機(jī)提供定時(shí)信號(hào)的振蕩源的周期或外部輸入時(shí)鐘的周期。〔2〕時(shí)鐘周期時(shí)鐘周期又稱作狀態(tài)周期或狀態(tài)時(shí)間S,它是振蕩周期的兩倍,它分為P1節(jié)拍和P2節(jié)拍,通常在P1節(jié)拍完成算術(shù)邏輯操作,在P2節(jié)拍完成內(nèi)部存放器之間的傳送操作?!?〕機(jī)器周期一個(gè)機(jī)器周期由6個(gè)狀態(tài)組成,如果把一條指令的執(zhí)行過程分作幾個(gè)根本操作,那么將完成一個(gè)根本操作所需的時(shí)間稱作機(jī)器周期。單片機(jī)的單周期指令執(zhí)行時(shí)間就為一個(gè)機(jī)器周期?!?〕指令周期指令周期即執(zhí)行一條指令所占用的全部時(shí)間,通常為1~4個(gè)機(jī)器周期。在圖2.12中給出了MCS-51單片機(jī)的典型取指、執(zhí)行時(shí)序。圖2.12MCS-51單片機(jī)取指、執(zhí)行時(shí)序

2.4.3單片機(jī)的低功耗方式對于MCS-51系列機(jī)型來說,它們有待機(jī)方式和掉電保護(hù)方式兩種低功耗方式。通過設(shè)置電源控制存放器PCON的相關(guān)位可以確定當(dāng)前的低功耗方式。PCON存放器格式如下:其中SMOD:波特率倍增位GF0,GF1:通用標(biāo)志位PD:掉電方式位,PD=1為掉電方式IDL:待機(jī)方式位,IDL=1為待機(jī)方式位序B7B6B5B4B3B2B1B0位符號(hào)SMOD///GF1GF0PDIDL1.

待機(jī)方式將PCON存放器的IDL位置“1〞,單片機(jī)那么進(jìn)入待機(jī)方式。通常在待機(jī)方式下,單片機(jī)的中斷仍然可以使用,這樣可以通過中斷觸發(fā)方式退出待機(jī)模式。2.

掉電保護(hù)方式將PCON存放器的PD位置“1〞,單片機(jī)那么進(jìn)入掉電保護(hù)方式。如果單片機(jī)檢測到電源電壓過低,此時(shí)除進(jìn)行信息保護(hù)外,還需將PD位被置“1〞,使單片機(jī)進(jìn)入掉電保護(hù)方式。第三章

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

3.1MCS-51單片機(jī)指令格式一條匯編語言指令中最多包含4個(gè)區(qū)段,如下所示:標(biāo)號(hào):操作碼目的操作數(shù),源操作數(shù);注釋標(biāo)號(hào)與操作碼之間“:〞隔開;操作碼與操作數(shù)之間用“空格〞隔開;目的操作數(shù)和源源操作數(shù)之間有“,〞分隔;操作數(shù)與注釋之間用“;〞隔開。3.1MCS-51單片機(jī)指令格式 標(biāo)號(hào)是由用戶定義的符號(hào)組成,必須用英文大寫字母開始。標(biāo)號(hào)可有可無,假設(shè)一條指令中有標(biāo)號(hào),標(biāo)號(hào)代表該指令所存放的第一個(gè)字節(jié)存儲(chǔ)單元的地址,故標(biāo)號(hào)又稱為符號(hào)地址,在匯編時(shí),把該地址賦值給標(biāo)號(hào)。 操作碼是指令的功能局部,不能缺省。MCS—51指令系統(tǒng)中共有42種助記符,代表了33種不同的功能。例如MOV是數(shù)據(jù)傳送的助記符。 操作數(shù)是指令要操作的數(shù)據(jù)信息。根據(jù)指令的不同功能,操作數(shù)的個(gè)數(shù)有3、2、1或沒有操作數(shù)。例如MOVA,#20H,包含了兩個(gè)操作數(shù)A和#20H,它們之間用“,〞隔開。注釋可有可無,參加注釋主要為了便于閱讀,程序設(shè)計(jì)者對指令或程序段作簡要的功能說明,在閱讀程序或調(diào)試程序時(shí)將會(huì)帶來很多方便。3.2尋址方式

所謂尋址方式,通常是指某一個(gè)CPU指令系統(tǒng)中規(guī)定的尋找操作數(shù)所在地址的方式,或者說通過什么的方式找到操作數(shù)。尋址方式的方便與快捷是衡量CPU性能的一個(gè)重要方面,MCS—51單片機(jī)有七種尋找方式。

3.2.1立即數(shù)尋址

立即尋址方式是操作數(shù)包括在指令字節(jié)中,指令操作碼后面字節(jié)的內(nèi)容就是操作數(shù)本身,其數(shù)值由程序員在編制程序時(shí)指定,以指令字節(jié)的形式存放在程序存儲(chǔ)器中。立即數(shù)只能作為源操作數(shù),不能當(dāng)作目的操作數(shù)。

例如:MOVA,#52H;A52H MOVDPTR,#5678H;DPTR5678H立即尋址示意圖如3.1所示。

圖3.1立即尋址示意圖3.2.2直接尋址 在指令中含有操作數(shù)的直接地址,該地址指出了參與操作的數(shù)據(jù)所在的字節(jié)地址或位地址。 例如: MOVA,52H;把片內(nèi)RAM字節(jié)地址52H單元的內(nèi) 容送累加器A中。 MOV52H,A;把A的內(nèi)容傳送給片內(nèi)RAM的52H 單元中。 MOV50H,60H;把片內(nèi)RAM字節(jié)地址60H單元的內(nèi) 容送到50H單元中。 MOVIE,#40H;把立即數(shù)40H送到中斷允許存放器 IE。IE為專用功能存放器,其字節(jié) 地址為0A8H。該指令等價(jià)于MOV 0A8H,#40H。 INC60H;將地址60H單元中的內(nèi)容自加1。圖3.2直接尋址方式示意圖3.2.3存放器尋址 由指令指出某一個(gè)存放器中的內(nèi)容作為操作數(shù),這種尋址方式稱為存放器尋址。存放器一般指累加器A和工作存放器R0~R7。例如: MOVA,Rn;A〔Rn〕其中n為0~7之一, Rn是工作存放器。 MOVRn,A;Rn〔A〕 MOVB,A;B〔A〕3.2.4存放器間接尋址方式由指令指出某一個(gè)存放器的內(nèi)容作為操作數(shù),這種尋址方式稱為存放器間接尋址。存放器間接尋址只能使用存放器Ro或Rl作為地址指針,來尋址內(nèi)部RAM(00H~FFH)中的數(shù)據(jù)。存放器間接尋址也適用于訪問外部RAM,可使用R0,Rl或DPTR作為地址指針。存放器間接尋址用符號(hào)“@〞表示。例如:MOVR0,#60H;R060HMOVA,@R0;A((R0))MOVA,@R1;A((R1)) 例如:MOVDPTR,#3456H;DPTR3456HMOVXA,@DPTR;A〔〔DPTR〕〕是把DPTR存放器所指的那個(gè)外部數(shù)據(jù)存儲(chǔ)器〔RAM〕的內(nèi)容傳送給A,假設(shè)〔3456H〕=99H,指令運(yùn)行后〔A〕=99H。圖3.3存放器間接尋址方式示意圖3.2.5位尋址 MCS-51單片機(jī)中設(shè)有獨(dú)立的位處理器。位操作指令能對內(nèi)部RAM中的位尋址區(qū)〔20H~2FH〕和某些有位地址的特殊功能存放器進(jìn)行位操作。 SETBTR0;TR01 CLR00H;(00H)0 MOVC,57H;將57H位地址的內(nèi)容傳送到 位累加器C中ANLC,5FH;將5FH位狀態(tài)與進(jìn)位位C相與, 結(jié)果在C中3.2.6基址存放器加變址存放器間接尋址這種尋址方式用于訪問程序存儲(chǔ)器中的數(shù)據(jù)表格,它以基址存放器〔DPTR或PC〕的內(nèi)容為根本地址,加上變址存放器A的內(nèi)容形成16位的地址,訪問程序存儲(chǔ)器中的數(shù)據(jù)表格。例如:MOVCA,@A+DPTRMOVCA,@A+PCJMP@A+DPTR MOVCA,@A+DPTR

圖3.4變址尋址方式示意圖3.2.7相對尋址

相對尋址以程序計(jì)數(shù)器PC的當(dāng)前值作為基地址,與指令中給出的相對偏移量rel進(jìn)行相加,把所得之和作為程序的轉(zhuǎn)移地址。例如:

JZLOOP DJNER0,DISPLAY3.3指令系統(tǒng)

3.3.1指令分類MCS-51指令系統(tǒng)有42種助記符,代表了33種功能,指令助記符與各種可能的尋址方式相結(jié)合,共構(gòu)成111條指令。 按指令的功能,MCS-51指令系統(tǒng)可分為以下5類: 〔1〕數(shù)據(jù)傳送類指令〔29條〕 〔2〕算術(shù)運(yùn)算類指令〔24條〕 〔3〕邏輯運(yùn)算及移位類指令〔24條〕 〔4〕位操作類指令〔17條〕 〔5〕控制轉(zhuǎn)移類指令〔17條〕3.3.1指令分類 在分類介紹指令前,先把描述指令的一些符號(hào)的意義作一簡單介紹。Rn―當(dāng)前選定的存放器區(qū)中的8個(gè)工作存放器R0~R7,即n=0~7。Ri―當(dāng)前選定的存放器區(qū)中的2個(gè)存放器R0,R1,i=0、1。 Direct—8位內(nèi)部RAM單元的地址,它可以是一個(gè)內(nèi)部數(shù)據(jù)區(qū)RAM單元〔00H~7FH〕或特殊功能存放器地址〔I/O端口、控制存放器、狀態(tài)存放器80H~0FFH〕。 #data—指令中的8位常數(shù)。 #data16—指令中的16位常數(shù)。 addr16—16位的目的地址,用于LJMP、LCALL,可指向64KB程序存儲(chǔ)器的地址空間。 addr11—11位的目的地址,用于AJMP、ACALL指令。目的地址必須與下一條指令的第一個(gè)字節(jié)在同一個(gè)2KB程序存儲(chǔ)器地址空間之內(nèi)。 rel—8位帶符號(hào)的偏移量字節(jié),用于SJMP和所有條件轉(zhuǎn)移指令中。偏移量相對于下一條指令的第一個(gè)字節(jié)計(jì)算,在—128~+127范圍內(nèi)取值。 bit—內(nèi)部數(shù)據(jù)RAM或特殊功能存放器中的可直接尋址位。 DPTR—數(shù)據(jù)指針,可用作16位的地址存放器。 A—累加器 B—存放器,用于MUL和DIV指令中。 C—進(jìn)位標(biāo)志或進(jìn)位位。 @—間接存放器或基址存放器的前綴,如@Ri,@DPTR。 /—位操作的前綴,表示對該位取反。 〔X〕—X中的內(nèi)容。 〔〔X〕〕—由X尋址的單元中的內(nèi)容。 ←—箭頭左邊的內(nèi)容被箭頭右邊的內(nèi)容所替代。3.3.2數(shù)據(jù)傳送類指令 數(shù)據(jù)傳送類指令一般的操作是把源操作數(shù)傳送到指令所指定的目標(biāo)地址。指令執(zhí)行后,源操作數(shù)保持不變,目的操作數(shù)為原操作數(shù)所替代數(shù)據(jù)傳送類指令用到的助記符有:MOV,MOVX,MOVC,XCH,XCHD,PUSH,POP,SWAP。 數(shù)據(jù)一般傳送指令的助記符“MOV〞表示 格式:MOV[目的操作數(shù)],[源操作數(shù)] 功能:目的操作數(shù)〔源操作數(shù)中的數(shù)據(jù)〕 源操作數(shù)可以是:A、Rn、direct、@Ri、#data 目的操作數(shù)可以是:A、Rn、direct、@Ri 數(shù)據(jù)傳送指令一般不影響標(biāo)志,只有一種堆棧操作可以直接修改程序狀態(tài)字PSW,這樣,可能使某些標(biāo)志位發(fā)生變化。1.以累加器為目的操作數(shù)的內(nèi)部數(shù)據(jù)傳送指令

MOVA,Rn;A(Rn)MOVA,direct;A(direct)MOVA,@Ri;A((Ri))MOVA,#data;Adata2.?dāng)?shù)據(jù)傳送到工作存放器Rn的指令MOVRn,A;Rn(A)MOVRn,direct;Rn(direct)MOVRn,#data;Rndata3.?dāng)?shù)據(jù)傳送到內(nèi)部RAM單元或特殊功能存放器SFR的指令MOVdirect,A;direct(A)MOVdirect,Rn ;direct(Rn)MOVdirect1,direct2 ;direct1(direct2)MOVdirect,@Ri;direct((Ri))MOVdirect,#data ;direct#dataMOV@Ri,A ;(Ri(A)MOV@Ri,direct ;(Ri)(direct)MOV@Ri,#data ;(Ri)dataMOVDPTR,#data16 ;DPTRdata16片內(nèi)數(shù)據(jù)RAM及存放器的數(shù)據(jù)傳送指令MOV、PUSH和POP共18條,如圖3.5所示。4.累加器A與外部數(shù)據(jù)存儲(chǔ)器之間的傳送指令片外數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)傳送指令MOVX共4條,如圖3.6所示。MOVXA,@DPTR;A(DPTR)MOVXA,@Ri ;A((Ri))MOVX@DPTR,A;(DPTR)AMOVX@Ri,A;(Ri)A圖3.6片外數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)傳送指令

5.程序存儲(chǔ)器內(nèi)容送累加器 MOVCA,@A+PC MOVCA,@A+DPTR程序存儲(chǔ)器查表指令MOVC共2條,如圖3.7所示。圖3.7片外數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)傳送指令6.堆棧操作指令 PUSHdirect POPdirect例如:進(jìn)入中斷效勞程序時(shí),把程序狀態(tài)存放器PSW、累加器A、數(shù)據(jù)指針DPTR進(jìn)棧保護(hù)。設(shè)當(dāng)前SP為60H。那么程序段 PUSHPSW PUSHACC PUSHDPL PUSHDPH執(zhí)行后,SP內(nèi)容修改為64H,而61H、62H、63H、64H單元中依次棧入PSW、A、DPL、DPH的內(nèi)容,當(dāng)中斷效勞程序結(jié)束之前,如下程序段〔SP保持64H不變〕 POPDPH POPDPL POPACC POPPSW指令執(zhí)行之后,SP內(nèi)容修改為60H,而64H、63H、62、61H單元的內(nèi)容依次彈出到DPH、DPL、A、PSW中。7.字節(jié)交換指令數(shù)據(jù)交換主要是在內(nèi)部RAM單元與累加器A之間進(jìn)行,有整字節(jié)和半字節(jié)兩種交換。 〔1〕整字節(jié)交換指令XCHA,Rn;(A)(Rn)XCHA,direct;(A)(direct)XCHA,@Ri;(A)((Ri))〔2〕半字節(jié)交換指令 字節(jié)單元與累加器A進(jìn)行低4位的半字節(jié)數(shù)據(jù)交換。只有一條指令。 XCHDA,@Ri

〔3〕累加器上下半字節(jié)交換指令只有一條指令: SWAPA【例3-1】〔R0〕=30H,〔A〕=65H,〔30H〕=8FH執(zhí)行指令:XCHA,@R0;(R0〕=30H,〔A〕=8FH,〔30H〕=65HXCHDA,@R0;〔R0〕=30H,〔A〕=6FH,〔30H〕=85HSWAPA;〔A〕=56H 數(shù)據(jù)交換指令XCH、XCHD、和SWAP共5條,如圖3.8所示。

圖3.8數(shù)據(jù)交換指令3.3.3算術(shù)運(yùn)算類指令1.加法指令加法指令分為普通加法指令、帶進(jìn)位加法指令和加1指令?!?〕普通加法指令A(yù)DDA,Rn;A(A)+(Rn)ADDA,direct;A(A)+(direct)ADDA,@Ri;A(A)+((Ri))ADDA,#data;A(A)+data【例3-2】〔A〕=85H,R0=20H,〔20H〕=0AFH,執(zhí)行指令:ADDA,@R010000101 +10101111100110100結(jié)果:〔A〕=34H;Cy=1;AC=1;OV=1。 對于加法,溢出只能發(fā)生在兩個(gè)加數(shù)符號(hào)相同的情況。在進(jìn)行帶符號(hào)數(shù)的加法運(yùn)算時(shí),溢出標(biāo)志OV是一個(gè)重要的編程標(biāo)志,利用它可以判斷兩個(gè)帶符號(hào)數(shù)相加,和數(shù)是否溢出?!?〕帶進(jìn)位加法指令

【例3-3】〔A〕=85H,〔20H〕=0FFH,Cy=1執(zhí)行指令:ADDCA,20H 結(jié)果:〔A〕=85H;Cy=1;AC=1;OV=0。ADDCA,Rn;A(A)+(Rn)+(Cy)ADDCA,direct;A(A)+(direct)+(Cy)ADDCA,@Ri;A(A)+((Ri))+(Cy)ADDCA,#data;A(A)+data+(Cy)〔3〕增量指令【例3-4】〔A〕=12H,〔R3〕=0FH,〔35H〕=4AH,〔R0〕=56H,〔56H〕=00H執(zhí)行如下指令: INCA;執(zhí)行后〔A〕=13HINCR3;執(zhí)行后〔R3〕=10HINC35H;執(zhí)行后〔35H〕=4BHINC@R0;執(zhí)行后〔56H〕=01HINCA;A(A)+1INCRn;Rn(Rn)+1INCdirect;direct(direct)+1INC@Ri;(Ri)((Ri))+1INCDPTR;DPTR(DPTR)+1〔4〕十進(jìn)制調(diào)整指令 DAA 執(zhí)行該指令時(shí),判斷A中的低4位是否大于9,假設(shè)滿足大于那么低4位做加6操作; 同樣,A中的高4位大于9那么高4位加6操作。 例如:有兩個(gè)BCD數(shù)36與45相加,結(jié)果應(yīng)為BCD碼81,程序如下: MOVA,#36H ADDA,#45H DAA 得結(jié)果7BH;第三條指令對累加器A進(jìn)行十進(jìn)制調(diào)整,低4位〔為0BH〕大于9,因此要加6,最后得到調(diào)整的BCD碼81。2.減法指令〔1〕帶進(jìn)位減法指令〔2〕減1指令SUBBA,Rn;A(A)-(Rn)-(Cy)SUBBA,direct;A(A)-(direct)-(Cy)SUBBA,@Ri;A(A)-(Ri)-(Cy)SUBBA,#data;A(A)-data-(Cy)DECA;A(A)-1DECRn;Rn(Rn)-1DECdirect;direct(direct)-1DEC@Ri;(Ri)((Ri))-13.乘法指令乘法指令完成單字節(jié)的乘法,只有一條指令: MULAB【例3-5】〔A〕=50H,〔B〕=0A0H,執(zhí)行指令: MULAB結(jié)果:〔B〕=32H,〔A〕=00H〔即乘積為3200H〕, Cy=0,OV=1。

4.除法指令除法指令完成單字節(jié)的除法,只有一條指令:DIVAB算術(shù)運(yùn)算類指令包括:ADD、ADDC、SUBB、MUL、DIV、INC、DEC和DA,如圖3.9所示。

圖3.9算術(shù)運(yùn)算類指令

3.3.4邏輯運(yùn)算指令1.簡單邏輯操作指令

CLRA;對累加器A清“0”CPLA;對累加器A按位取反RLA;累加器A的內(nèi)容向左循環(huán)移1位RLCA;累加器A的內(nèi)容帶進(jìn)位標(biāo)志向左循環(huán)移1位RRA;累加器A的內(nèi)容向右循環(huán)移1位RRCA;累加器A的內(nèi)容帶進(jìn)位標(biāo)志向右循環(huán)移1位

循環(huán)左移指令示意圖:RLA循環(huán)右移指令示意圖:RRA帶進(jìn)位的循環(huán)左移指令示意圖:RLCA帶進(jìn)位的循環(huán)右移指令示意圖:RRCA2.邏輯與指令【例3-6】〔A〕=37H,〔R0〕=0A9H執(zhí)行指令:ANLA,R0結(jié)果:〔A〕=21HANLA,Rn;A(A)(Rn)ANLA,direct;A(A)(direct)ANLA,@Ri;A(A)((Ri))ANLA,#data;A(A)dataANLdirect,A;direct(direct)(A)ANLdirect,#data;direct(direct)data3.邏輯或指令【例3-7】〔A〕=37H,〔P1〕=09H執(zhí)行指令: ORLP1,A結(jié)果:〔A〕=3FHORLA,Rn;A(A)(Rn)ORLA,direct;A(A)(direct)ORLA,@Ri;A(A)((Ri))ORLA,#data;A(A)dataORLdirect,A;direct(direct)(A)ORLdirect,#data;direct(direct)data4.邏輯異或指令

XRLA,Rn;A(A)(Rn)XRLA,direct;A(A)(direct)XRLA,@Ri;A(A)((Ri))XRLA,#data;A(A)dataXRLdirect,A;direct(direct)(A)XRLdirect,#data;direct(direct)data圖3.10邏輯運(yùn)算類指令

3.3.5控制轉(zhuǎn)移指令

1.無條件轉(zhuǎn)移指令〔1〕絕對轉(zhuǎn)移指令 AJMPaddr11這是2KB范圍內(nèi)的無條件跳轉(zhuǎn)指令,執(zhí)行該指令時(shí),先將PC+2,然后將addr11送入PC10~PC0,而PC15~PC11保持不變。操作過程可表示為:PC〔PC〕+2PC10~0addr11〔2〕相對轉(zhuǎn)移指令SJMPrel執(zhí)行指令時(shí),先將PC+2,再把指令中帶符號(hào)的偏移量加到PC上,得到跳轉(zhuǎn)的目的地址送入PC。目標(biāo)地址=源地址+2+rel〔3〕長跳轉(zhuǎn)指令 LJMPaddr16;PCaddr16 執(zhí)行該指令時(shí),將16位目標(biāo)地址addr16裝入PC,程序無條件轉(zhuǎn)向指定的目標(biāo)地址。轉(zhuǎn)移指令的目標(biāo)地址可在64KB程序存儲(chǔ)器地址空間的任何地方,不影響任何標(biāo)志。〔4〕間接轉(zhuǎn)移指令〔散轉(zhuǎn)指令〕 JMP@A+DPTR ;PC〔A〕+〔DPTR〕條件轉(zhuǎn)移指令比較轉(zhuǎn)移指令在MCS-51中沒有專門的比較指令,但提供了下面4條比較不相等轉(zhuǎn)移指令;

減1不為0轉(zhuǎn)移指令DJNZRn,rel ;Rn〔Rn〕-10轉(zhuǎn)移DJNZdirect,rel;direct〔direct〕-10轉(zhuǎn)移JZrel;(A)=0轉(zhuǎn)移JNZrel;(A)≠0轉(zhuǎn)移CJNEA,direct,rel ;(A)(direct)轉(zhuǎn)移CJNEA,#data,rel ;(A)data轉(zhuǎn)移CJNERn,#data,rel;(Rn)data轉(zhuǎn)移CJNE@Ri,#data,rel;((Ri))data轉(zhuǎn)移5.調(diào)用及返回指令 〔1〕絕對調(diào)用指令 ACALLaddr11 執(zhí)行該指令時(shí),PCPC+2SP〔SP〕+1,〔SP〕〔PC〕7~0SP〔SP〕+1,〔SP〕〔PC〕15~8PC10~0addr11〔2〕長調(diào)用指令 LCALLaddr16這條指令無條件調(diào)用位于16位地址addr16的子程序。其操作過程如下: PCPC+3SP〔SP〕+1,〔SP〕〔PC〕7~0SP〔SP〕+1,〔SP〕〔PC〕15~8PC10~0addr16〔3〕子程序返回指令 RET

溫馨提示

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

最新文檔

評論

0/150

提交評論