C語言51單片機(jī) 8051單片機(jī)工作原理_--入門經(jīng)典教程_第1頁
C語言51單片機(jī) 8051單片機(jī)工作原理_--入門經(jīng)典教程_第2頁
C語言51單片機(jī) 8051單片機(jī)工作原理_--入門經(jīng)典教程_第3頁
C語言51單片機(jī) 8051單片機(jī)工作原理_--入門經(jīng)典教程_第4頁
C語言51單片機(jī) 8051單片機(jī)工作原理_--入門經(jīng)典教程_第5頁
已閱讀5頁,還剩83頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目錄 TOC o 1-3 h z u HYPERLINK l _Toc314574611 8051單片機(jī)工作原理_-_單片機(jī)入門經(jīng)典教程 PAGEREF _Toc314574611 h 2 HYPERLINK l _Toc314574612 (1小時學(xué)會C語言51單片機(jī))C語言入門教程 PAGEREF _Toc314574612 h 66 相信很多愛好電子的朋友,對單片機(jī)這個詞應(yīng)該都不會陌生了吧。不過有些朋友可能只聽說他叫單片機(jī),他的全稱是什么也許并不太清楚, 更不用說他的英文全稱和簡稱了。單片機(jī)是一塊在集成電路芯片上集成了一臺有一定規(guī)模的微型計算機(jī)。簡稱為:單片微型計算機(jī)或單片機(jī) (Sing

2、le Chip Computer)。單片機(jī)的應(yīng)用到處可見,應(yīng)用領(lǐng)域廣泛,主要應(yīng)用在智能儀表、實時控制、通信、家電等方面。不過這一切都沒 什么關(guān)系,因為我(當(dāng)然也包括任何人)都是從不知道轉(zhuǎn)變成知道的,再轉(zhuǎn)變成精通的。現(xiàn)在我只想把我學(xué)習(xí)單片機(jī)的經(jīng)歷,詳細(xì)地講敘給大 家聽聽,可能有些大蝦會笑話我,想:那么簡單的東西還在這里賣弄。但是你錯了,我只是把我個人學(xué)習(xí)的經(jīng)歷講述一遍而已,僅僅對那些想 8051單片機(jī)工作原理_-_單片機(jī)入門經(jīng)典教程第一課:初識單片機(jī) 記得在我們網(wǎng)站的論壇里,曾經(jīng)有一位網(wǎng)友問了一個問題,什么是單片機(jī)?單片機(jī)是怎樣的一個東東?單片機(jī)可以實現(xiàn)些什么功能?它主要應(yīng)用在哪些領(lǐng)域?在我們單

3、片機(jī)自學(xué)網(wǎng)的網(wǎng)上課堂的第一節(jié)課,我們就上面的這些問題與大家先做一個初步的探討。在進(jìn)入課程的講解之前,大家先一起來看看單片機(jī)吧。下圖是一片40腳的89C51及一片20腳的89C2051的單片機(jī)。 單片機(jī)的外形從上圖中我們已初步認(rèn)識了,那么什么叫單片機(jī)呢? 所謂單片機(jī),通俗的來講,就是把中央處理器CPU(Central Processing Unit),存儲器(memory),定時器,I/O(Input/Output)接口電路等一些計算機(jī)的主要功能部件集成在一塊集成電路芯片上的微型計算機(jī)。單片機(jī)又稱為“微控制器MCU”。中文“單片機(jī)”的稱呼是由英文名稱“Single Chip Microcompu

4、ter”直接翻譯而來的。 單片機(jī)的主要分類:1、 按應(yīng)用領(lǐng)域可分為:家電類,工控類,通信類,個人信息終端類等等;2、 按通用性可分為:通用型和專用型。 通用型單片機(jī)的主要特點是:內(nèi)部資源比較豐富,性能全面,而且通用性強(qiáng),可履蓋多種應(yīng)用要求。所謂資源豐富就是指功能強(qiáng)。性能全面通用性強(qiáng)就是指可以應(yīng)用在非常廣泛的領(lǐng)域。通用型單片機(jī)的用途很廣泛,使用不同的接口電路及編制不同的應(yīng)用程序就可完成不同的功能。小到家用電器儀器儀表,大到機(jī)器設(shè)備和整套生產(chǎn)線都可用單片機(jī)來實現(xiàn)自動化控制。 專用型單片機(jī)的主要特點是:針對某一種產(chǎn)品或某一種控制應(yīng)用而專門設(shè)計的,設(shè)計時已使結(jié)構(gòu)最簡,軟硬件應(yīng)用最優(yōu),可靠性及應(yīng)用成本最

5、佳。專用型單片機(jī)用途比較專一,出廠時程序已經(jīng)一次性固化好,不能再修該的單片機(jī)。例如電子表里的單片機(jī)就是其中的一種。其生產(chǎn)成本很低。 在我們的這個網(wǎng)上課堂中,介紹的是MCS-51系列單片機(jī),MCS-51單片機(jī)也是一種通用單片機(jī),其結(jié)構(gòu)及原理對所有的單片機(jī)都適用。3、 按總線結(jié)構(gòu)可分為總線型和非總線型。如我們常常見到的89C51單片機(jī)就是總線結(jié)構(gòu),在后面講解單片機(jī)的內(nèi)部結(jié)構(gòu)時,我們就可以看到,89C51單片機(jī)內(nèi)部有數(shù)據(jù)總線,地址總線,還有控制總線(WR,RD,EA,ALE等)。從上圖中看到的20引腳的89C2051單片機(jī),就是一種非總線型的。其外部的引腳很少,可使成本降低。單片機(jī)特點:(1) 受集

6、成度限制,片內(nèi)存儲器容量較小,一般內(nèi)ROM:8KB以下;(2) 內(nèi)RAM:256KB以內(nèi)。(3) 可靠性高(4) 易擴(kuò)展(5) 控制功能強(qiáng)(6) 易于開發(fā)單片機(jī)的發(fā)展過程: 1971年intel 公司研制出世界上第一個4位的微處理器; 1973年intel 公司研制出8位的微處理器8080; 1976年intel 公司研制出MCS-48系列8位的單片機(jī),這也是單片機(jī)的問世。 80年代初,intel 公司在MCS-48單片機(jī)基礎(chǔ)上,推出了MCS-51單片機(jī)。也就是說,51單片機(jī)最早的出現(xiàn)是在80年代初微處理器與單片機(jī):微處理器: 計算機(jī)系統(tǒng)核心部件(CPU)并不是一臺完整的計算機(jī)單片機(jī): 將CP

7、U和其它接口電路集成在一個芯片之中,使其具有計算機(jī)的基本功能。 從上面的描述可知,微處理器只是一個CPU,而單片機(jī)則是由CPU與其它的接口電路組合而成的,所以CPU不等于單片計算機(jī)。也可以這樣說,CPU只是計算機(jī)其中的一個部件而已。主要的單片機(jī)廠商:我國目前最常用的單片機(jī)有如下幾家:Intel (MCS51系列,MCS96系列)Atmel (AT89系列,MCS51內(nèi)核)Microchip (PIC系列)Motorola (68HCXX系列)Zilog (Z86系列)Philips (87,80系列,MCS51內(nèi)核)Siemens (SAB80系列,MCS51內(nèi)核)NEC (78系列)Epso

8、n (系列) 在我們網(wǎng)站的論壇,同時在其它網(wǎng)站我看到很多朋友都在討論一個問題:學(xué)8位的51單片機(jī)有前途嗎? 是的,在現(xiàn)今的單片機(jī)領(lǐng)域中,單片機(jī)的種類層出不窮,功能也越來越強(qiáng),從表層看來好象學(xué)8位的51單片機(jī)已不符合現(xiàn)在的發(fā)展需求。讓人感覺到“沒有前途”。做過單片機(jī)開發(fā)的朋友都知道,其實在大部份的工控或測控設(shè)備中,8位的51單片機(jī)還能足夠滿足大部份的控制要求,加之51單片機(jī)的價格優(yōu)勢。這就使8位的51單片機(jī)在以后很長的一段時間內(nèi)還有存在的空間,也就是說還是單片機(jī)應(yīng)用的一個主流。試想一下,在戰(zhàn)場上,原本可以用高炮實現(xiàn)打擊的目標(biāo)我們可能會用導(dǎo)彈去打嗎?再者,如果把51單片機(jī)學(xué)好了,以后轉(zhuǎn)行去學(xué)習(xí)或應(yīng)

9、用其它的單片機(jī),也就是一個了解及熟悉的過程了。因為MCS-51單片機(jī)是一個通用的單片機(jī),其內(nèi)部的結(jié)構(gòu)及工作原理與其它的單片機(jī)都是相通的。第二課:MCS-51單片機(jī)簡述 MCS51是指由美國INTEL公司(對了,就是大名鼎鼎的INTEL)生產(chǎn)的一系列單片機(jī)的總稱,這一系列單片機(jī)包括了好些品種,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的產(chǎn)品,該系列其它單片機(jī)都是在8051的基礎(chǔ)上進(jìn)行功能的增、減、改變而來的,所以人們習(xí)慣于用8051來稱呼MCS51系列單片機(jī),而8031是前些年在我國最流行的單片機(jī),所以很多場合會看到8031的名稱。INTEL公司將M

10、CS51的核心技術(shù)授權(quán)給了很多其它公司,所以有很多公司在做以8051為核心的單片機(jī),當(dāng)然,功能或多或少有些改變,以滿足不同的需求,其中89C51就是這幾年在我國非常流行的單片機(jī),它是由美國ATMEL公司開發(fā)生產(chǎn)的。以后我們將用89C51、89S51來完成一系列的實驗。MCS-51系列單片機(jī)MCS-51系列單片機(jī)分為兩大系列,即51子系列與52子系列。51子系列:基本型,根據(jù)片內(nèi)ROM的配置,對應(yīng)的芯片為8031、8051、8751、895152子系列:增強(qiáng)型,根據(jù)片內(nèi)ROM的配置,對應(yīng)的芯片為8032、8052、8752、8952這兩大系列單片機(jī)的主要硬件特性如下表:從上表中可以看到,8031

11、、8031、8032、80C32片內(nèi)是沒有ROM的,對應(yīng)著上表看,我們可以發(fā)現(xiàn),51系列的單片機(jī)的RAM大小為128B,52系列的RAM大小為256B,51系列的計數(shù)器為兩個16位的,52系列的計數(shù)器為三個16位計數(shù)器。51系列的中斷源為5個,52系列的中斷源為6個。8051與80C51的區(qū)別: 80C51單片機(jī)是在8051的基礎(chǔ)上發(fā)展起來的,也就是說在單片機(jī)的發(fā)展過程中是先有8051,然后才有80C51的。 8051單片機(jī)與80C51單片機(jī)從外形看是完全一樣的,其指令系統(tǒng)、引腳信號、總線等完全一致(完全兼容),也就是說在8051下開發(fā)的軟件完全可以在80C51上應(yīng)用,反過來,在89C51下開

12、發(fā)的軟件也可以在8051上應(yīng)用。這兩種單片機(jī)是完全可移植的。 既然這兩種單片機(jī)外形及內(nèi)部結(jié)構(gòu)都一樣,那它們之間的主要差別在哪里呢? 8051與80C51單片機(jī)的主要差別就在于芯片的制造工藝上。80C51的制造工藝是在8051基礎(chǔ)上進(jìn)行了改進(jìn)。 8051系列單片機(jī)采用的是HMOS工藝:高速度、高密度; 80C51系列單片機(jī)采用的是CHMOS工藝:高速度、高密度、低功耗; 也就是說80C51單片機(jī)是一種低功耗單片機(jī)。 經(jīng)常有網(wǎng)友問我們,我想學(xué)單片機(jī),但單片機(jī)的類型很多,我該學(xué)哪種型號的單片機(jī)呢? 這里我提點我自已的想法,個人認(rèn)為,初學(xué)單片機(jī)最好從8051開始,因為51單片機(jī)是一種通用型的單片機(jī),性

13、價比較高,雖然是8位的單片機(jī),但現(xiàn)在應(yīng)用的量及范圍還很大。同時,因51單片機(jī)發(fā)展的歷史長,學(xué)習(xí)的資料相對較多而且較完善。致于用哪個具體型號的單片機(jī)?你可以用89C51來做實驗,也可以用89S51或者2051來做實驗,這個就不太重要了,前面說了,51單片機(jī)是一種通用型單片機(jī),即然是通用,那么它的指令系統(tǒng)都是一樣的,不同的是它的制造工藝及內(nèi)部資源有點差別,這個是結(jié)合實際需要選型的問題了。所以,學(xué)習(xí)單片機(jī),你可以只選擇一種型號,例如AT89S51或者AT89C2051。思考題:1、MCS-51系列單片機(jī)各種芯片的配置有何不同?2、MCS-51單片機(jī)內(nèi)部程序存儲器ROM和內(nèi)部數(shù)據(jù)存儲器RAM的空量分別

14、是多少?3、8051與80C51的差別在哪里?第三課:單片機(jī)相關(guān)常用名詞解釋總線:指能為多個部件服務(wù)的信息傳送線,在微機(jī)系統(tǒng)中各個部件通過總線相互通信。地址總線(AB):地址總線是單向的,用于傳送地址信息。地址總線的寬度為16位,因此基外部存儲器直接尋址64K,16位地址總線由P0口經(jīng)地址鎖存器提供低8位地址(A0A7),P2口直接提供高8位地址(A8A15)。數(shù)據(jù)總線(DB):一般為雙向,用于CPU與存儲器,CPU與外設(shè)、或外設(shè)與外設(shè)之間傳送數(shù)據(jù)信息(包括實際意義的數(shù)據(jù)和指令碼)。數(shù)據(jù)總線寬度為8位,由P0口提供??刂瓶偩€(CB):是計算機(jī)系統(tǒng)中所有控制信號的總稱,在控制總線中傳送的是控制信

15、息。由P3口的第二功能狀態(tài)和4根獨立的控制總線,RESET、EA、ALE、PSEN組成。存儲器: 用來存放計算機(jī)中的所有信息:包括程序、原始數(shù)據(jù)、運算的中間結(jié)果及最終結(jié)果等。只讀存儲器(ROM): 只讀存儲器在使用時,只能讀出而不能寫入,斷電后ROM中的信息不會丟失。因此一般用來存放一些固定程序,如監(jiān)控程序、子程序、字庫及數(shù)據(jù)表等。ROM按存儲信息的方法又可分為以下幾種1、掩膜ROM: 掩膜ROM也稱固定ROM,它是由廠家編好程序?qū)懭隦OM(稱固化)供用戶使用,用戶不能更改內(nèi)部程序,其特點是價格便宜。2、可編程的只讀存儲器(PROM): 它的內(nèi)容可由用戶根據(jù)自已所編程序一次性寫入,一旦寫入,只

16、能讀出,而不能再進(jìn)行更改,這類存儲器現(xiàn)在也稱為OTP(Only Time Programmable)。3、可改寫的只讀存儲器EPROM: 前兩種ROM只能進(jìn)行一次性寫入,因而用戶較少使用,目前較為流行的ROM芯片為EPROM。因為它的內(nèi)容可以通過紫外線照射而徹底擦除,擦除后又可重新寫入新的程序。4、可電改寫只讀存儲器(EEPROM): EEPROM可用電的方法寫入和清除其內(nèi)容,其編程電壓和清除電壓均與微機(jī)CPU的5V工作電壓相同,不需另加電壓。它既有與RAM一樣讀寫操作簡便,又有數(shù)據(jù)不會因掉電而丟失的優(yōu)點,因而使用極為方便?,F(xiàn)在這種存儲器的使用最為廣泛。隨機(jī)存儲器(RAM): 這種存儲器又叫讀

17、寫存儲器。它不僅能讀取存放在存儲單元中的數(shù)據(jù),還能隨時寫入新的數(shù)據(jù),寫入后原來的數(shù)據(jù)就丟失了。斷電后RAM中的信息全部丟失。因些,RAM常用于存放經(jīng)常要改變的程序或中間計算結(jié)果等信息。RAM按照存儲信息的方式,又可分為靜態(tài)和動態(tài)兩種。1、靜態(tài)SRAM:其特點是只要有電源加于存儲器,數(shù)據(jù)就能長期保存。2、動態(tài)DRAM:寫入的信息只能保存若干ms時間,因此,每隔一定時間必須重新寫入一次,以保持原來的信息不變??涩F(xiàn)場改寫的非易失性存儲器: 這種存儲器的特點是:從原理上看,它們屬于ROM型存儲器,從功能上看,它們又可以隨時改寫信息,作用又相當(dāng)于RAM。所以,ROM、RAM的定義和劃分已逐漸的失去意義。

18、1、快擦寫存儲器(FLASH) 這種存儲器是在EPROM和EEPROM的制造基礎(chǔ)上產(chǎn)生的一種非易失性存儲器。其集成度高,制造成本低于DRAM,既具有SRAM讀寫的靈活性和較快的訪問速度,又具有ROM在斷電后可不丟失信息的特點,所以發(fā)展迅速。2、鐵電存儲器FRAM 它是利用鐵電材料極化方向來存儲數(shù)據(jù)的。它的特點是集成度高,讀寫速度快,成本低,讀寫周期短。 時鐘周期:計算機(jī)在時鐘信號的作用下,以節(jié)拍方式工作。因此必須有一個時鐘發(fā)生電路,輸入微處理器的時鐘信號的周期稱為時鐘周期。機(jī)器周期:機(jī)器完成一個動作所需的時間稱為機(jī)器周期,一般由一個或一個以上的時鐘周期組成。在我們講述的MCS-51系列單片機(jī)中

19、,一個機(jī)器周期由12個時鐘周期組成。指令周期:執(zhí)行一條指令(如“MOV A,#34H”,該指令的含義是將立即數(shù)34H傳送到微處理器內(nèi)的累加器A中)所需時間稱為指令周期,它由一個到數(shù)個機(jī)器周期組成。指令周期的長短取決于指令的類型,即指令將要進(jìn)行的操作步聚及復(fù)雜程度。匯編: 是能完成一定任務(wù)的機(jī)器指令的集合。二進(jìn)制數(shù): 只有0和1兩個數(shù)碼,基數(shù)為二。16進(jìn)制數(shù): 采用0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F等16個數(shù)碼,其中A-F相應(yīng)的十進(jìn)數(shù)為10-15,基數(shù)是16。指令: 是計算機(jī)所能執(zhí)行的一種基本操作的描述,是計算機(jī)軟件的基本單元。字節(jié):8位二進(jìn)制數(shù)組成一個字節(jié),在存儲器

20、中以字節(jié)為單位存儲信息。字:2個字節(jié)組成一個字。雙字:2個字組成一個雙字。補(bǔ)碼:機(jī)器數(shù)可用不同的碼制來表示,補(bǔ)碼表示法是最常用的一種,正數(shù)采用符號絕對值表示,即數(shù)的最高有效位為0,數(shù)的其余部分則表示數(shù)的絕對值;負(fù)數(shù)的表示要麻煩一些,先寫出與該負(fù)數(shù)相對應(yīng)的正數(shù)的補(bǔ)碼表示,然后將其按位求反,最后在末位加1,就可以得到該負(fù)數(shù)的補(bǔ)碼表示了。段地址:8086CPU將1MB的存儲器空間分成許多邏輯段,每個段最大限制為64KB,段地址就是邏輯段在主存中的起始位置。為了能用16位寄存器表示段地址,8086規(guī)定段地址必須是模16地址,即為xxxx0H形式,省略低4位0,段地址就可以用16位數(shù)據(jù)表示,它通常被保存

21、在16位的段寄存器中。偏移地址:存單元距離段起始位置的偏移量簡稱偏移地址,由于限定每段不超過64KB,所以偏移地址也可以用16位數(shù)據(jù)表示。物理地址:在1M字節(jié)的存儲器里,每一個存儲單元都有一個唯一的20位地址,稱為該存儲單元的物理地址,把段地址左移4位再加上偏移地址就形成物理地址。代碼段:程序員在編制程序時要把存儲器劃分成段,代碼段用來存放程序的指令序列,代碼段的段地址存放在CS中,指令指針寄存器IP指示代碼段中指令的偏移地址,處理器利用CS:IP取得下一條要執(zhí)行的指令。數(shù)據(jù)段:數(shù)據(jù)段存放當(dāng)前運行程序所用的數(shù)據(jù),數(shù)據(jù)段的段地址存放在DS中。附加段:附加段是附加的數(shù)據(jù)段,也用于數(shù)據(jù)的保存,另外,

22、串操作指令將附加段作為其目的操作數(shù)的存放區(qū)域。附加段的段地址存放在ES中。堆棧段:堆棧段是堆棧所在的主存區(qū)域,堆棧段的段地址存放在SS中,堆棧指針寄存器SP指示堆棧棧頂?shù)钠频刂?,處理器利用SS:SP操作堆棧中的數(shù)據(jù)。堆棧:堆棧是一個后進(jìn)先出的主存區(qū)域,位于堆棧段中,使用SS段寄存器記錄其段地址。它只有一個出入口,即當(dāng)前棧頂,棧頂是地址較小的一端(低端),它用堆棧指針寄存器SP指定。堆棧有兩種以字為單位的基本操作,對應(yīng)兩條基本指令:進(jìn)棧指令PUSH和出棧指令POP。偽指令:匯編語言程序的語句除指令外還包括偽指令和宏指令,偽指令又稱為偽操作,它不象機(jī)器指令那樣是在程序運行期間由計算機(jī)來執(zhí)行的,它

23、是在匯編程序?qū)υ闯绦騾R編期間由匯編程序處理的操作,完成諸如數(shù)據(jù)定義、分配存儲區(qū)、指示程序結(jié)束等功能。宏指令:宏是源程序中一段有獨立功能的程序代碼,它只需要在源程序中定義一次,就可以多次調(diào)用,調(diào)用時只需要用一個宏指令語句就可以了。宏指令是用戶自定義的指令,在編程時將多次使用的功能用一條宏指令來代替。子程序:子程序又稱為過程,它相當(dāng)于高級語言中的過程和函數(shù)。在一個程序的不同部分,往往要用到類似的程序段,這些程序段的功能和結(jié)構(gòu)形式都相同,只是某些變量的賦值不同,此時就可以把這些程序段寫成子程序形式,以便需要時可以調(diào)用它;某些常用的特定功能的程序段也可編制成子程序的形式供用戶使用。中斷:中斷是一種使C

24、PU中止正在執(zhí)行的程序而轉(zhuǎn)去處理特殊事件的操作,這些引起中斷的事件稱為中斷源,它們可能是來自外設(shè)的輸入輸出請求,也可能是計算機(jī)的一些異常事故或其它內(nèi)部原因。中斷處理程序:當(dāng)中斷發(fā)生時,處理器中止當(dāng)前正在運行的程序,而轉(zhuǎn)到處理特殊事件的程序段中去執(zhí)行,這種處理中斷的子程序就是中斷處理程序,又稱為中斷服務(wù)程序。中斷處理程序的入口地址被安排在中斷向量表中。BIOS中斷:在存儲器系統(tǒng)中,從地址0FE000H開始的8K ROM中裝有BIOS(Basic Input/Output System)例行程序。駐留在ROM中的基本輸入輸出程序BIOS提供了系統(tǒng)加電自檢、引導(dǎo)裝入、主要I/O設(shè)備的處理程序以及接口

25、控制等功能模塊來處理所有的系統(tǒng)中斷。BIOS中斷給程序員編程帶來很大方便,程序員不必了解硬件I/O接口的特性,可直接用指令設(shè)置參數(shù),然后中斷調(diào)用BIOS中的程序。暫存器: 用來暫存由數(shù)據(jù)總線或通用寄存器送來的操作數(shù),并把它作為另一個操作數(shù)。中斷: 中斷是單片機(jī)實時地處理內(nèi)部或外部事件的一種內(nèi)部機(jī)制。當(dāng)某種內(nèi)部或外部事件發(fā)生時,單片機(jī)的中斷系統(tǒng)將迫使CPU暫停正在執(zhí)行的程序,轉(zhuǎn)而去進(jìn)行中斷事件的處理,中斷處理完畢后,又返回被中斷的程序處,繼續(xù)執(zhí)行下去。掉電保護(hù): 指在正常供電電源掉電時,迅速用備用直流電源供電,以保證在一段時間內(nèi)信息不會丟失,當(dāng)主電源恢復(fù)供電時,又自動切換為主電源供電。寄存器尋址

26、: 操作數(shù)在寄存器中,由指令操作碼中的rrr三位的值和PSW中RS1及RS0的狀態(tài),選中某個工作寄存器區(qū)的某個寄存器,然后進(jìn)行相應(yīng)的指令操作。波特率: 即每秒鐘傳送二進(jìn)制數(shù)的位數(shù), 波特率越高,數(shù)據(jù)傳輸?shù)乃俣仍娇?。D/A轉(zhuǎn)換: 即將二進(jìn)制數(shù)量轉(zhuǎn)換成與其量值成正比的電流信號或電壓信號。A/D轉(zhuǎn)換: 即將模擬量轉(zhuǎn)換成相應(yīng)的數(shù)字量,然而送計算機(jī)處理。串行方式: 指數(shù)據(jù)的各位分時傳送,只需一條數(shù)據(jù)線,外加一條公共信號地線和若干條控制信號線。并行方式: 指數(shù)據(jù)的各位同時傳送,每一條數(shù)據(jù)都需要一條傳輸線。偽指令: 用于告訴匯編程序如何進(jìn)行匯編的指令,它既不控制機(jī)器的操作也不被匯編成機(jī)器代碼,只能為匯編程序

27、所識別并指導(dǎo)匯編如何進(jìn)行。SLEEP MODI 睡覺模式: 保證程序內(nèi)部運行,但與外部的傳輸?shù)葎幼饕淹V沟囊环N運行模式。linking 連接: 把編譯后生成的 *.obj 文件與其它 *.obj文件合并成機(jī)器能識別的機(jī)器文件。IC:輸入與輸出共用一條傳輸線,而時鐘由另一條線控制的一種串行傳輸方式。SFR 特殊功能寄存器區(qū): 8051 把 CPU 中的專用寄存器、并行端口鎖存器、串行口與定時器/計數(shù)器內(nèi)的控制寄存器集中安排到一個區(qū)域,離散地分布在地址從 80H 到 FFH 范圍內(nèi),這個區(qū)域稱為特殊功能寄存器區(qū) SFR。 這一節(jié)的目的是讓大家對單片機(jī)相關(guān)的概念做一個感性的了解,具體的內(nèi)容我們將在后

28、面的相關(guān)章節(jié)做詳細(xì)的講解。第四課:計算機(jī)中數(shù)的表示及運算數(shù)字: 談到數(shù)字,有很多同學(xué)可能會覺的很可笑,數(shù)字?不就是1234.這些嗎?是的,在日常的生活當(dāng)中,我們用的一般都是十進(jìn)制,但在計算機(jī)中,它只能識別二進(jìn)制數(shù),所以在這里我還得跟大家共同分析一下:1、十進(jìn)制: 十進(jìn)制就是基數(shù)為“十”,所使用的數(shù)碼為09共10個數(shù)字。逢十進(jìn)一。是我們每天都會運用到的,在這里就不多談了。2、二進(jìn)制: 二進(jìn)制的基數(shù)為“二”,其使用的數(shù)碼只有0和1兩個。在計算機(jī)中容易實現(xiàn),在常用的的實現(xiàn)方式中如:可以用電路的高電平表示1,低電平表示0;或者三極管截止時集電極的輸出表示1,導(dǎo)通時集電極輸出表示0。 3、十六進(jìn)制:由于

29、二進(jìn)制位數(shù)太長,不易記憶和收寫,所以人們又提出了十六進(jìn)制的書寫形式。我們在匯編語言中多數(shù)用十六進(jìn)制。 計算機(jī)只識別和處理數(shù)字信息,數(shù)字是以二進(jìn)制數(shù)表示的;它易于物理實現(xiàn),同時,資料存儲、傳送和處理簡單可靠;運算規(guī)則簡單,使邏輯電路的設(shè)計、分析、綜合、方便,使計算器具有邏輯性。一、 用數(shù)制及轉(zhuǎn)換1、各種進(jìn)位計數(shù)及其表示方法數(shù)字符號:0、1、2、9 數(shù)碼。數(shù)碼的個數(shù)基數(shù)。進(jìn)位規(guī)則:逢十進(jìn)一例如,十進(jìn)制數(shù),10個數(shù)碼;采用“逢十進(jìn)一”30681 = 3104+0103+6102+8101+1100例如,二進(jìn)制數(shù),2個數(shù)碼,采用“逢二進(jìn)一”(11010100)2 = 127+126+025+124+0

30、23+122+021+020總之,N進(jìn)制數(shù),N個數(shù)碼,“逢N進(jìn)一”2、數(shù)制之間的轉(zhuǎn)換 任意進(jìn)制之間相互轉(zhuǎn)換,整數(shù)部分和小數(shù)部分必須分別進(jìn)行,十進(jìn)制轉(zhuǎn)換成二進(jìn)制短除取余法十進(jìn)制小數(shù)轉(zhuǎn)換成二進(jìn)制小數(shù)乘2取整法。二進(jìn)制轉(zhuǎn)換成十進(jìn)制展開求和法。(101101)2 = 125+024+123+122+021+120= 32+0+8+4+0+1= 45二進(jìn)制轉(zhuǎn)換成八進(jìn)制、十六進(jìn)制與此類似。二、 機(jī)器數(shù)及其編碼1、 機(jī)器數(shù)與真值機(jī)器只認(rèn)識二進(jìn)制數(shù):0、1。這是因為,電路狀態(tài)常有兩個,如通、斷;高電平、低電平;可用0、1表示。這種0、1、0、11在機(jī)器中的表現(xiàn)形式機(jī)器數(shù)。一般為8位。2、 機(jī)器數(shù)的編碼及運算

31、對帶符號數(shù)而言,有原碼、反碼、補(bǔ)碼之分,計算機(jī)內(nèi)一般使用補(bǔ)碼。1) 原碼將數(shù)“數(shù)碼化”,原數(shù)前“+”用0表示,原數(shù)前“-”用1表示,數(shù)值部分為該數(shù)本身,這樣的機(jī)器數(shù)叫原碼。設(shè)X原數(shù);則X原 = X(X 0)X原 = 2n-1 X (X 0),n為字長的位數(shù)。如,+3原 = 00000011B-3原 = 27 - (-3) = 10000011B0有兩種表示方法:00000000 +010000000 -0原碼最大、最小的表示:+127、-1282) 反碼規(guī)定正數(shù)的反碼等于原碼;負(fù)數(shù)的反碼是將原碼的數(shù)值位各位取反。X反 = X (X 0)X反 =(2n 1)+ X (X 0)如,+4反 = +4

32、原 = 00000100 B-4反 = (28 1)+(-5) = 11111111- 00000101 = 11111010 B反碼范圍:-128 +127兩個0; +0 00000000 B-0 11111111 B3) 補(bǔ)碼補(bǔ)碼的概念:現(xiàn)在是下午3點,手表停在12點,可正撥3點,也可倒撥9點。即是說-9的操作可用+3來實現(xiàn),在12點里:3、-9互為補(bǔ)碼。運用補(bǔ)碼可使減法變成加法。規(guī)定:正數(shù)的補(bǔ)碼等于原碼。負(fù)數(shù)的補(bǔ)碼求法:1)反碼 + 12)公式:X補(bǔ) = 2n + X (X0)如,設(shè)X = - 0101110 B , 則X原 = 10101110 B則X補(bǔ) = X反 + 1 = 1101

33、0001 + 00000001 = 11010010 B如,+6補(bǔ) = +6原 = 00000110 B-6補(bǔ) = 28 + (-6) = 10000000 00000110 = 11111010 B8位補(bǔ)碼的范圍 128 +127。0 的個數(shù):只一個,即00000000而10000000 B是-128的補(bǔ)碼。原碼、反碼、補(bǔ)碼對照表:表1-2 P104)補(bǔ)碼的運算當(dāng)X0時,X補(bǔ)= X反=X原 X補(bǔ)補(bǔ) = X原X補(bǔ)+ Y補(bǔ) = X+Y 補(bǔ) X-Y 補(bǔ)= X+(-Y)補(bǔ)例:已知 X=52 Y=38 求X-Y計算機(jī)在做算術(shù)運算時,必需檢查溢出,以防止發(fā)生錯誤5)運算的溢出問題 資料字長(位數(shù))有一定

34、限制,所以資料的表示應(yīng)有一個范圍。如字長8位時; 補(bǔ)碼范圍-128+127若運算結(jié)果超出這個范圍,便溢出。例:錯:兩個負(fù)數(shù)相加和為正數(shù)??梢姡航Y(jié)果正確(無溢出)時,Cs+1 = Cs結(jié)果錯誤(溢出)時,Cs+1 Cs溢出判斷:溢出 = Cs+1 Cs(即結(jié)果是0為無溢出;1為有溢出)1、 十進(jìn)制數(shù)的編碼對機(jī)器:二進(jìn)制數(shù)方便,對人 :二進(jìn)制數(shù)不直觀,習(xí)慣于十進(jìn)制數(shù)。在編程過程中,有時需要采用十進(jìn)制運算,但機(jī)器不認(rèn)識十進(jìn)制數(shù)。怎么辦?可以將十進(jìn)制的字符用二進(jìn)制數(shù)進(jìn)行編碼:這叫做二進(jìn)制數(shù)對十進(jìn)制編碼BCD碼。上述每4位二進(jìn)制數(shù)表示一個十進(jìn)制字符,這4位中各位的權(quán)依次是:8、4、2、18421 BCD

35、碼。BCD碼的運算:(1)BCD碼加法規(guī)則兩個BCD數(shù)相加時,“某位”的和小于10則保持不變;兩個BCD數(shù)相加時,“某位”的和大于9,則和數(shù)應(yīng)加6修正。(2)BCD碼減法規(guī)則兩個BCD數(shù)相減時,“某位”的差未發(fā)生借位,則差數(shù)保持不變;兩個BCD數(shù)相減時,“某位”發(fā)生了借位,其差應(yīng)減6修正。這里“某位”指BCD數(shù)中的“個位”、“十位”、“百位”、三、 字符信息的表示計算機(jī)能識別0、1、0、1、;這些0、1、0、1、有的代表數(shù)值,有的僅代表要處理的信息(如字母、標(biāo)點符號、數(shù)字符號等文字符號),所以,計算機(jī)不僅要認(rèn)識各種數(shù)字,還要能識別各種文字符號。人們事先已對各種文字符號進(jìn)行二進(jìn)制數(shù)編碼:如,美國

36、信息交換標(biāo)準(zhǔn)碼ASCII碼,用一個字節(jié)表示一個字符。低7位是字符的ASCII碼值;最高位是通信時的校驗位。思考題:真值與碼值有何區(qū)別?原碼、反碼、補(bǔ)碼三者之間如何換算?第五課:常用邏輯電路常用邏輯電路 在邏輯電路中,輸入和輸出只有兩種狀態(tài),即高電平和低電平。通常以邏輯“1”和“0”表示電平高低。1、 與門是一個能夠?qū)崿F(xiàn)邏輯乘運算的、多端輸入、單端輸出的邏輯電路。邏輯解釋: 即如右邊圖所示,當(dāng)開關(guān)A與B當(dāng)中只有全部閉合(即為高電平1)時,才會有輸出(即燈泡才會亮)所以在與門電路中,只有輸入的全部條件為高電平“1”時輸會有輸出。語言表達(dá)為:“有0出0,全1出1”2、 或門 是一個能夠?qū)崿F(xiàn)邏輯加運算

37、的、多端輸入、單端輸出的邏輯電路。邏輯解釋: 即如右邊圖所示,當(dāng)開關(guān)A與B當(dāng)中只要有一個開關(guān)閉合(即為高電平1)時,就會有輸出(即燈泡才會亮)所以在或門電路中,只要輸入的為高電平“1”就會有輸出。語言表達(dá)為:“有1出1,全0出0”。3、 非門是一個能夠?qū)崿F(xiàn)邏輯非運算的、單端輸入、單端輸出的邏輯電路。非就是反,就是否定,也就是輸入與輸出的狀態(tài)總是相反。邏輯解釋: 如右邊圖所示,當(dāng)開關(guān)K斷開時燈亮,開關(guān)閉合時燈滅。如以開關(guān)斷開為燈亮,開關(guān)接通為滅為結(jié)果,則開關(guān)K與燈泡的因果關(guān)系為非邏輯關(guān)系。語言表達(dá)為:“有0出1,有1出0”。復(fù)合邏輯門電路:4與非門將一個與門與一個非門聯(lián)接起來就構(gòu)成了一個與非門。

38、根據(jù)與門和非門的邏輯功能,可以列出與非門邏輯關(guān)系真值表。其邏輯功能的特點是:“當(dāng)輸入全為1,輸出為0;只要輸入有0,輸出就為1”。5或非門將一個或門與一個非門聯(lián)接起來就構(gòu)成了一個或非門。根據(jù)或門和非門的邏輯功能,可以列出與非門邏輯關(guān)系真值表。其邏輯功能的特點是:“當(dāng)輸入全為0,輸出為1;只要輸入有1,輸出就為0”。6異或門異或門只有兩個輸入端和一個輸出端,。其邏輯功能的特點是:“當(dāng)兩個輸入端一個為0,另一個為1時輸出為1,當(dāng)兩個輸入端均為1或均為0時,輸出為0”。真值表如下:異或門的作用是:把兩路信號進(jìn)行比較,判斷是否相同。當(dāng)兩路輸入信號不同,即一個為高電平,一個為低電平時,輸出為高電平。反之

39、當(dāng)兩個輸出端信號相同時,即為高電平或低電平時,輸出為低電平”。觸發(fā)器: 觸發(fā)器是計算機(jī)記憶裝置的基本單元,它具有把以前的輸入記憶下來的功能,一個觸發(fā)器能儲存一位二進(jìn)制代碼。下面我們簡單的來介紹計算機(jī)中常用的幾中觸發(fā)器。1R-S觸發(fā)器R-S觸發(fā)器的邏輯符號如下圖所示,它有兩個輸入端,兩個輸出端。其中,S為置位信號輸入端,R為復(fù)位信號輸入端;Q和Q非為輸出端。規(guī)定Q為高、Q非為低時,該觸發(fā)器為1狀態(tài);反之為0狀態(tài)。其真值表如下。2D觸發(fā)器D觸發(fā)器又稱數(shù)據(jù)觸發(fā)器,它的邏輯符號如下圖所示,R、S分別為強(qiáng)制置0、置1端,觸發(fā)器的狀態(tài)是由時鐘脈沖CLK上升沿到來時D端的狀態(tài)決字。當(dāng)D=1時,觸發(fā)器為1狀態(tài)

40、;反之為0狀態(tài)。其真值表如下3J-K觸發(fā)器J-K觸發(fā)器的邏輯符號如下,R、S分別為強(qiáng)制置0、置1端。K為同步置0輸入端。觸發(fā)器的狀態(tài)是由時鐘脈沖CLK下降沿到來時J、K端的狀態(tài)決定,其真值表如下J-K觸發(fā)器的邏輯功能比較全面,因此在各種寄存器、計算器、邏輯控制等方面應(yīng)用最為廣泛。但在某些情況,如二進(jìn)制計數(shù)、移位元、累加等,多用D觸發(fā)器。由于D觸發(fā)器線路簡章,所以大量應(yīng)用于移位寄存器等方面。寄存器: 寄存器是由觸發(fā)器組成的,一個觸發(fā)器是一個一位寄存器。多個觸發(fā)器就可以組成一個多位的寄存器。由于寄存器在計算機(jī)中的作用不同,從而被命名不同,常用的有緩沖寄存器、移位寄存器、計數(shù)器等。下面我們就簡單的來

41、介紹下這些寄存器的電路結(jié)構(gòu)及工作原理。1緩沖寄存器 它是用來暫存某個數(shù)據(jù),以便在適當(dāng)?shù)臅r間節(jié)拍和給定的計算步驟將數(shù)據(jù)輸入或輸出到其它記憶單元中去,下圖是一個并行輸入、并行輸出的4位緩沖器的電路原理圖,它由4個D觸發(fā)器組成。 啟動時,先在清零端加清零脈沖,把各觸發(fā)器置0,即Q端為0。然后,把數(shù)據(jù)加到觸發(fā)器的D輸入端,在CLK時鐘信號作用下,輸入端的信息就保存在各觸發(fā)器中(D0D3)。2移位寄存器 移位寄存器能將所儲存的數(shù)據(jù)逐位向左或向右移動,以達(dá)到計算機(jī)運行過程中所需的功能,請看下圖 啟動時,先在清零端加清零脈沖,使觸發(fā)器輸出置0。然后,第一個數(shù)據(jù)D0加到觸發(fā)器1的串行輸入端,在第一個CLK脈沖

42、的上升沿Q0=Q0,Q1=Q2。Q3=Q0。其后,第二個數(shù)據(jù)D1加到串行輸入端,在第二個CLK脈沖到達(dá)時,Q0=Q1,Q1=Q0,Q2=Q3=0。以此類推,當(dāng)?shù)谒膫€CLK來到之后,各輸出端分別是Q0=Q3,Q1=Q2,Q2=Q1,Q3=Q0。輸出數(shù)據(jù)可用串行的形式取出,也可用并行開式取出。3計數(shù)器 計數(shù)器也是由若干個觸發(fā)器組成的寄存器,它的特點是能夠把存款在其中的數(shù)據(jù)加1或減1。計數(shù)器的種類也很多,有行波計數(shù)器、同步計數(shù)器等,下面我們就以行波計數(shù)器向大家作個介紹。下圖就是一個由J-K觸發(fā)器組成的行波計數(shù)器的工作原理圖。這種計數(shù)器的特點是:第一個時鐘脈沖促使其最低有效位加1,使其由0變1;第二個

43、時鐘脈沖促使最低有效位由1變0。同時推動第二位,使其由0變1;同理,第二位由1變0時又去推動第三位,使其由0變1,這樣有如水波前進(jìn)一樣逐位進(jìn)位下去。上圖中的這個計數(shù)器是4位的,因此可以計015的數(shù)。如果要計更多的數(shù),需要增加位數(shù),如8位計數(shù)器可計0255的數(shù),16位則可計065535的數(shù)。4三態(tài)門(三態(tài)緩沖器) 為減少信息傳輸線的數(shù)目,大多數(shù)計算機(jī)中的信息傳輸線均采用總線形式,即凡要傳輸?shù)耐愋畔⒍甲咄唤M傳輸線,且信息是分時傳送的。在計算機(jī)中一般有三組總線,即數(shù)據(jù)總線、地址總線和控制總線。為防止信息相互干擾,要求凡掛在總線上的寄存器或內(nèi)存等,它的傳輸端不僅能呈現(xiàn)0、1兩個信息狀態(tài),而且還應(yīng)能

44、呈現(xiàn)第三種狀態(tài)高阻抗?fàn)顟B(tài)(又稱高阻狀態(tài)),即此時好像它們的輸出被斷開,對總線狀態(tài)不起作用,此時總線可由其它器件占用。三態(tài)門即可實現(xiàn)上述的功能,它除具有輸入輸出端之外,還有一控制端,請看下圖。當(dāng)控制端E=1時,輸出=輸入,此時總線由該器件驅(qū)動,總線上的數(shù)據(jù)由輸入數(shù)據(jù)決定;當(dāng)控制端E=0時,輸出端呈高阻抗?fàn)顟B(tài),該器件對總線不起作用。當(dāng)寄存器輸出端接至三態(tài)門,再由三態(tài)門輸出端與總線連接起來,就構(gòu)成三態(tài)輸出的級沖寄存器。如下圖所示就是一個4位的三態(tài)輸出緩沖寄存器。由于這里采用的是單向三態(tài)門,所以數(shù)據(jù)只能從寄存器輸出到數(shù)據(jù)總線。如果要實現(xiàn)雙向傳送,則要用雙向三態(tài)門。 在這里有個問題問下大家,前面我們已把

45、觸發(fā)器,寄存器的概念跟大家講解了一下,那么觸發(fā)器、寄存器、內(nèi)存,這三者之間是一個什么樣的關(guān)系呢?答:通過前面的學(xué)習(xí),我們知道觸發(fā)器是計算機(jī)記憶裝置的基本單元,一個觸發(fā)器能儲存一位二進(jìn)制代碼。寄存器是由觸發(fā)器組成的。一個觸發(fā)器就職一個一位的寄存器,多個觸發(fā)器就可以組成一個多位的寄存器。內(nèi)存是由大量寄存器組成的,其中每一個寄存器就稱為一個存儲單元。它可以存放一個有獨立意義的二進(jìn)制代碼。第六課:51單片機(jī)的結(jié)構(gòu)及其組成 在前面的五節(jié)課當(dāng)中,我們講述的都是一些基礎(chǔ)概念的知識,從這節(jié)開始,我們就正式的切入到我們所在學(xué)習(xí)的對象-51單片機(jī)。 學(xué)習(xí)單片機(jī)的內(nèi)部結(jié)構(gòu)之前,我們先了解下我們現(xiàn)在正在使用的計算機(jī)的

46、幾大組成部份:計算機(jī)的五個組成部份:運算器:用于實現(xiàn)算術(shù)和邏輯運算。計算機(jī)的運算和處理都在這里進(jìn)行;控制器:是計算機(jī)的控制指揮部件,使計算機(jī)各部份能自動協(xié)調(diào)的工作;存儲器:用于存放程序和數(shù)據(jù);(又分為內(nèi)存儲器和外存儲器,內(nèi)存儲器就如我們電腦的硬盤,外存儲器就如我們的U盤)輸入設(shè)備:用于將程序和數(shù)據(jù)輸入到計算機(jī)(例如我們電腦的鍵盤、掃描儀);輸出設(shè)備:輸出設(shè)備用于把計算機(jī)數(shù)據(jù)計算或加工的結(jié)果以用戶需要的形式顯示或保存(例如我們的打印機(jī))。注:1、通常把運算器和控制器合在一起稱為中央處理器(Central Processing Unit),簡稱CPU。2、通常把外存儲器、輸入設(shè)備和輸出設(shè)備合在一起

47、稱之為計算機(jī)的外部設(shè)備。 上面講的是我們的個人辦公計算機(jī),那么51單片機(jī)的內(nèi)部又有些什么部件組成呢?1、中央處理單元(8位) 數(shù)據(jù)處理、測試位,置位,復(fù)位 位操作2、只讀存儲器(4KB或8KB) 永久性存儲應(yīng)用程序,掩模ROM、EPROM、EEPROM3、隨機(jī)存取內(nèi)存(128B、128B SFR) 在程序運行時存儲工作變量和資料4、并行輸入/輸出口(I / O)(32條) 作系統(tǒng)總線、擴(kuò)展外存、I / O接口芯片5、串行輸入/輸出口(2條) 串行通信、擴(kuò)展I / O接口芯片6、定時/計數(shù)器(16位、加1計數(shù)) 計滿溢出、中斷標(biāo)志置位、向CPU提出中斷請求,與CPU之間獨立工作7、時鐘電路 內(nèi)振

48、、外振。8、中斷系統(tǒng)五源中斷、2級優(yōu)先。結(jié)構(gòu)特點:MCS-51系列單片機(jī)為哈佛結(jié)構(gòu)(而非普林斯頓結(jié)構(gòu))1)內(nèi)ROM:4KB2)內(nèi)RAM:128B3)外ROM:64KB4)外RAM:64KB5)I / O線: 32根(4埠,每埠8根)6)定時/計數(shù)器:2個16位可編程定時/計數(shù)器7)串行口:全雙工,2 根8)寄存器區(qū):工作寄存器區(qū)、在內(nèi)128B RAM中,分4個區(qū),9)中斷源:5源中斷,2級優(yōu)先10)堆棧:最深128B11)布爾處理機(jī):位處理機(jī),某位單獨處理12)指令系統(tǒng):五大類,111條 上圖就是我們要研究學(xué)習(xí)的對象,51單片機(jī)摧部結(jié)構(gòu)圖了。大家看看上圖,中間的一條雙橫線就是51單片機(jī)的內(nèi)部總

49、線了。其它的部件都是通過內(nèi)部的總線與CPU相聯(lián)接的,在第一節(jié)課時我們已跟大家講述過,8051單片機(jī)是總線結(jié)構(gòu)的。下面我們就51單片機(jī)內(nèi)部的單個部件與大家進(jìn)行講解。中央處理器(CPU): 剛跟大家講過,需要提醒的是MCS-51的CPU能處理8位二進(jìn)制數(shù)或代碼。CPU是單片機(jī)的主要核心部件,在CPU里面包含了運算器、控制器以及若干寄存器等部件給成。內(nèi)部數(shù)據(jù)存儲器(RAM): MCS-51單片機(jī)芯片共有256個RAM單元,其中后128單元被專用寄存器占用(稍后我們詳解),能作為寄存器供用戶使用的只是前128單元,用于存放可讀寫的數(shù)據(jù)。因此通常所說的內(nèi)部數(shù)據(jù)存儲器就是指前128單元,簡稱內(nèi)部RAM。地

50、址范圍為00HFFH(256B)。是一個多用多功能數(shù)據(jù)存儲器,有數(shù)據(jù)存儲、通用工作寄存器、堆棧、位地址等空間。內(nèi)部程序存儲器(ROM): 在前面也已講過,MCS-51內(nèi)部有4KB/8KB字節(jié)的ROM(51系列為4KB,51系列為8KB),用于存放程序、原始數(shù)據(jù)或表格。因此稱之為程序存儲器,簡稱內(nèi)部RAM。地址范圍為0000HFFFFH(64KB)。定時器/計數(shù)器 51系列共有2個16位的定時器/計數(shù)器(52系列共有3個16位的定時器/計數(shù)器),以實現(xiàn)定時或計數(shù)功能,并以其定時或計數(shù)結(jié)果對計算機(jī)進(jìn)行控制。定時時靠內(nèi)部分頻時鐘頻率計數(shù)實現(xiàn),做計數(shù)器時,對P3.4(T0)或P3.5(T1)端口的低電

51、平脈沖計數(shù)。并行I/O口 MCS-51共有4個8位的I/O口(P0、P1、P2、P3)以實現(xiàn)數(shù)據(jù)的輸入輸出。具體功能在后面章節(jié)中將會詳細(xì)論述。串行口 MCS-51有一個可編程的全雙工的串行口,以實現(xiàn)單片機(jī)和其它設(shè)備之間的串行數(shù)據(jù)傳送。該串行口功能較強(qiáng),既可作為全雙工異步通信收發(fā)器使用,也可作為移位器使用。RXD( P3.0)腳為接收端口,TXD(P3.1)腳為發(fā)送端口。中斷控制系統(tǒng) MCS-51單片機(jī)的中斷功能較強(qiáng),以滿足不同控制應(yīng)用的需要。51系列有5個中斷源(52系列有6個中斷源),即外中斷2個,定時中斷2個,串行中斷1個,全部中斷分為高級和低級共二個優(yōu)先級別,優(yōu)先級別的設(shè)置我們也將在后面

52、進(jìn)行詳細(xì)的講解。定時與控制部件 MCS-51單片機(jī)內(nèi)部有一個高增益的反相放大器,基輸入端為XTAL1輸出端為XTAL2。MCS-51芯片的內(nèi)部有時鐘電路,但石英晶體和微調(diào)電容需外接。時鐘電路為單片機(jī)產(chǎn)生時鐘脈沖序列。思考題:1、MCS-51單片機(jī)的片內(nèi)總體結(jié)構(gòu)9個部件分別是什么?名起什么作用?這9大部件之間有什么聯(lián)系?2、怎樣通過MCS-51單片機(jī)片內(nèi)總體結(jié)構(gòu)圖來區(qū)分8051、8751、8031芯片?第七課:51單片機(jī)的引腳當(dāng)我們拿到一塊單片機(jī)芯片時,看到這么多的“大腿”,他們都有干什么用的?在這節(jié)課我們就針對這個問題進(jìn)行講解。引腳功能: MCS-51是標(biāo)準(zhǔn)的40引腳雙列直插式集成電路芯片,引

53、腳分布請參照單片機(jī)引腳圖: l P0.0P0.7 P0口8位雙向口線(在引腳的3932號端子)。 l P1.0P1.7 P1口8位雙向口線(在引腳的18號端子)。 l P2.0P2.7 P2口8位雙向口線(在引腳的2128號端子)。 l P3.0P3.7 P2口8位雙向口線(在引腳的1017號端子)。 這4個I/O口具有不完全相同的功能,大家可得學(xué)好了,其它書本里雖然有,但寫的太深,初學(xué)者很難理解,這里都是按我自已的表達(dá)方式來寫的,相信你也能夠理解。P0口有三個功能: 1、外部擴(kuò)展存儲器時,當(dāng)做數(shù)據(jù)總線(如圖1中的D0D7為數(shù)據(jù)總線接口) 2、外部擴(kuò)展存儲器時,當(dāng)作地址總線(如圖1中的A0A7

54、為地址總線接口) 3、不擴(kuò)展時,可做一般的I/O使用,但內(nèi)部無上拉電阻,作為輸入或輸出時應(yīng)在外部接上拉電阻。 P1口只做I/O口使用:其內(nèi)部有上拉電阻。P2口有兩個功能: 1、擴(kuò)展外部存儲器時,當(dāng)作地址總線使用 2、做一般I/O口使用,其內(nèi)部有上拉電阻;P3口有兩個功能: 除了作為I/O使用外(其內(nèi)部有上拉電阻),還有一些特殊功能,由特殊寄存器來設(shè)置,具體功能請參考我們后面的引腳說明。 有內(nèi)部EPROM的單片機(jī)芯片(例如8751),為寫入程序需提供專門的編程脈沖和編程電源,這些信號也是由信號引腳的形式提供的, 即:編程脈沖:30腳(ALE/PROG) 編程電壓(25V):31腳(EA/Vpp)

55、 接觸過工業(yè)設(shè)備的兄弟可能會看到有些印刷線路板上會有一個電池,這個電池是干什么用的呢?這就是單片機(jī)的備用電源,當(dāng)外接電源下降到下限值時,備用電源就會經(jīng)第二功能的方式由第9腳(即RST/VPD)引入,以保護(hù)內(nèi)部RAM中的信息不會丟失。 (注:這些引腳的功能應(yīng)用,除9腳的第二功能外,在“新動力2004版”學(xué)習(xí)套件中都有應(yīng)用到。) 在介紹這四個I/O口時提到了一個“上拉電阻”那么上拉電阻又是一個什么東東呢?他起什么作用呢?都說了是電阻那當(dāng)然就是一個電阻啦,當(dāng)作為輸入時,上拉電阻將其電位拉高,若輸入為低電平則可提供電流源;所以如果P0口如果作為輸入時,處在高阻抗?fàn)顟B(tài),只有外接一個上拉電阻才能有效。AL

56、E/PROG 地址鎖存控制信號: 在系統(tǒng)擴(kuò)展時,ALE用于控制把P0口的輸出低8位地址送鎖存器鎖存起來,以實現(xiàn)低位地址和數(shù)據(jù)的隔離。(在后面關(guān)于擴(kuò)展的課程中我們就會看到8051擴(kuò)展 EEPROM電路,在圖中ALE與74LS373鎖存器的G相連接,當(dāng)CPU對外部進(jìn)行存取時,用以鎖住地址的低位地址,即P0口輸出。ALE有可能是高電平也有可能是低電平,當(dāng)ALE是高電平時,允許地址鎖存信號,當(dāng)訪問外部存儲器時,ALE信號負(fù)跳變(即由正變負(fù))將P0口上低8位地址信號送入鎖存器。當(dāng)ALE是低電平時,P0口上的內(nèi)容和鎖存器輸出一致。關(guān)于鎖存器的內(nèi)容,我們稍后也會介紹。在沒有訪問外部存儲器期間,ALE以1/6

57、振蕩周期頻率輸出(即6分頻),當(dāng)訪問外部存儲器以1/12振蕩周期輸出(12分頻)。從這里我們可以看到,當(dāng)系統(tǒng)沒有進(jìn)行擴(kuò)展時ALE會以1/6振蕩周期的固定頻率輸出,因此可以做為外部時鐘,或者外部定時脈沖使用。PORG為編程脈沖的輸入端:在第五課 單片機(jī)的內(nèi)部結(jié)構(gòu)及其組成中,我們已知道,在8051單片機(jī)內(nèi)部有一個4KB或8KB的程序存儲器(ROM),ROM的作用就是用來存放用戶需要執(zhí)行的程序的,那么我們是怎樣把編寫好的程序存入進(jìn)這個ROM中的呢?實際上是通過編程脈沖輸入才能寫進(jìn)去的,這個脈沖的輸入端口就是PROG。PSEN 外部程序存儲器讀選通信號:在讀外部ROM時PSEN低電平有效,以實現(xiàn)外部R

58、OM單元的讀操作。 1、內(nèi)部ROM讀取時,PSEN不動作; 2、外部ROM讀取時,在每個機(jī)器周期會動作兩次; 3、外部RAM讀取時,兩個PSEN脈沖被跳過不會輸出; 4、外接ROM時,與ROM的OE腳相接。 參見圖2(8051擴(kuò)展2KB EEPROM電路,在圖中PSEN與擴(kuò)展ROM的OE腳相接)EA/VPP 訪問和序存儲器控制信號 1、接高電平時: CPU讀取內(nèi)部程序存儲器(ROM) 擴(kuò)展外部ROM:當(dāng)讀取內(nèi)部程序存儲器超過0FFFH(8051)1FFFH(8052)時自動讀取外部ROM。 2、接低電平時:CPU讀取外部程序存儲器(ROM)。 在前面的學(xué)習(xí)中我們已知道,8031單片機(jī)內(nèi)部是沒有

59、ROM的,那么在應(yīng)用8031單片機(jī)時,這個腳是一直接低電平的。 3、8751燒寫內(nèi)部EPROM時,利用此腳輸入21V的燒寫電壓。RST 復(fù)位信號: 當(dāng)輸入的信號連續(xù)2個機(jī)器周期以上高電平時即為有效,用以完成單片機(jī)的復(fù)位初始化操作,當(dāng)復(fù)位后程序計數(shù)器PC=0000H,即復(fù)位后將從程序存儲器的0000H單元讀取第一條指令碼。XTAL1和XTAL2 : 外接晶振引腳。當(dāng)使用芯片內(nèi)部時鐘時,此二引腳用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時鐘時,用于接外部時鐘脈沖信號。VCC:電源+5V輸入VSS:GND接地。思考題:1、I/O是什么?I/O口是什么?2、MCS-51單片機(jī)各引腳的功能是什么?第八課:8

60、051單片機(jī)I/O引腳工作原理一、P0端口的結(jié)構(gòu)及工作原理P0端口8位中的一位結(jié)構(gòu)圖見下圖: 由上圖可見,P0端口由鎖存器、輸入緩沖器、切換開關(guān)、一個與非門、一個與門及場效應(yīng)管驅(qū)動電路構(gòu)成。再看圖的右邊,標(biāo)號為P0.X引腳的圖標(biāo),也就是說P0.X引腳可以是P0.0到P0.7的任何一位,即在P0口有8個與上圖相同的電路組成。下面,我們先就組成P0口的每個單元部份跟大家介紹一下:先看輸入緩沖器:在P0口中,有兩個三態(tài)的緩沖器,在學(xué)數(shù)字電路時,我們已知道,三態(tài)門有三個狀態(tài),即在其的輸出端可以是高電平、低電平,同時還有一種就是高阻狀態(tài)(或稱為禁止?fàn)顟B(tài)),大家看上圖,上面一個是讀鎖存器的緩沖器,也就是說

溫馨提示

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

評論

0/150

提交評論