版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、目錄 TOC o 1-3 h z u HYPERLINK l _Toc314574611 8051單片機工作原理_-_單片機入門經(jīng)典教程 PAGEREF _Toc314574611 h 2 HYPERLINK l _Toc314574612 (1小時學會C語言51單片機)C語言入門教程 PAGEREF _Toc314574612 h 66 相信很多愛好電子的朋友,對單片機這個詞應該都不會陌生了吧。不過有些朋友可能只聽說他叫單片機,他的全稱是什么也許并不太清楚, 更不用說他的英文全稱和簡稱了。單片機是一塊在集成電路芯片上集成了一臺有一定規(guī)模的微型計算機。簡稱為:單片微型計算機或單片機 (Sing
2、le Chip Computer)。單片機的應用到處可見,應用領域廣泛,主要應用在智能儀表、實時控制、通信、家電等方面。不過這一切都沒 什么關系,因為我(當然也包括任何人)都是從不知道轉(zhuǎn)變成知道的,再轉(zhuǎn)變成精通的。現(xiàn)在我只想把我學習單片機的經(jīng)歷,詳細地講敘給大 家聽聽,可能有些大蝦會笑話我,想:那么簡單的東西還在這里賣弄。但是你錯了,我只是把我個人學習的經(jīng)歷講述一遍而已,僅僅對那些想 8051單片機工作原理_-_單片機入門經(jīng)典教程第一課:初識單片機 記得在我們網(wǎng)站的論壇里,曾經(jīng)有一位網(wǎng)友問了一個問題,什么是單片機?單片機是怎樣的一個東東?單片機可以實現(xiàn)些什么功能?它主要應用在哪些領域?在我們單
3、片機自學網(wǎng)的網(wǎng)上課堂的第一節(jié)課,我們就上面的這些問題與大家先做一個初步的探討。在進入課程的講解之前,大家先一起來看看單片機吧。下圖是一片40腳的89C51及一片20腳的89C2051的單片機。 單片機的外形從上圖中我們已初步認識了,那么什么叫單片機呢? 所謂單片機,通俗的來講,就是把中央處理器CPU(Central Processing Unit),存儲器(memory),定時器,I/O(Input/Output)接口電路等一些計算機的主要功能部件集成在一塊集成電路芯片上的微型計算機。單片機又稱為“微控制器MCU”。中文“單片機”的稱呼是由英文名稱“Single Chip Microcompu
4、ter”直接翻譯而來的。 單片機的主要分類:1、 按應用領域可分為:家電類,工控類,通信類,個人信息終端類等等;2、 按通用性可分為:通用型和專用型。 通用型單片機的主要特點是:內(nèi)部資源比較豐富,性能全面,而且通用性強,可履蓋多種應用要求。所謂資源豐富就是指功能強。性能全面通用性強就是指可以應用在非常廣泛的領域。通用型單片機的用途很廣泛,使用不同的接口電路及編制不同的應用程序就可完成不同的功能。小到家用電器儀器儀表,大到機器設備和整套生產(chǎn)線都可用單片機來實現(xiàn)自動化控制。 專用型單片機的主要特點是:針對某一種產(chǎn)品或某一種控制應用而專門設計的,設計時已使結構最簡,軟硬件應用最優(yōu),可靠性及應用成本最
5、佳。專用型單片機用途比較專一,出廠時程序已經(jīng)一次性固化好,不能再修該的單片機。例如電子表里的單片機就是其中的一種。其生產(chǎn)成本很低。 在我們的這個網(wǎng)上課堂中,介紹的是MCS-51系列單片機,MCS-51單片機也是一種通用單片機,其結構及原理對所有的單片機都適用。3、 按總線結構可分為總線型和非總線型。如我們常常見到的89C51單片機就是總線結構,在后面講解單片機的內(nèi)部結構時,我們就可以看到,89C51單片機內(nèi)部有數(shù)據(jù)總線,地址總線,還有控制總線(WR,RD,EA,ALE等)。從上圖中看到的20引腳的89C2051單片機,就是一種非總線型的。其外部的引腳很少,可使成本降低。單片機特點:(1) 受集
6、成度限制,片內(nèi)存儲器容量較小,一般內(nèi)ROM:8KB以下;(2) 內(nèi)RAM:256KB以內(nèi)。(3) 可靠性高(4) 易擴展(5) 控制功能強(6) 易于開發(fā)單片機的發(fā)展過程: 1971年intel 公司研制出世界上第一個4位的微處理器; 1973年intel 公司研制出8位的微處理器8080; 1976年intel 公司研制出MCS-48系列8位的單片機,這也是單片機的問世。 80年代初,intel 公司在MCS-48單片機基礎上,推出了MCS-51單片機。也就是說,51單片機最早的出現(xiàn)是在80年代初微處理器與單片機:微處理器: 計算機系統(tǒng)核心部件(CPU)并不是一臺完整的計算機單片機: 將CP
7、U和其它接口電路集成在一個芯片之中,使其具有計算機的基本功能。 從上面的描述可知,微處理器只是一個CPU,而單片機則是由CPU與其它的接口電路組合而成的,所以CPU不等于單片計算機。也可以這樣說,CPU只是計算機其中的一個部件而已。主要的單片機廠商:我國目前最常用的單片機有如下幾家: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)站我看到很多朋友都在討論一個問題:學8位的51單片機有前途嗎? 是的,在現(xiàn)今的單片機領域中,單片機的種類層出不窮,功能也越來越強,從表層看來好象學8位的51單片機已不符合現(xiàn)在的發(fā)展需求。讓人感覺到“沒有前途”。做過單片機開發(fā)的朋友都知道,其實在大部份的工控或測控設備中,8位的51單片機還能足夠滿足大部份的控制要求,加之51單片機的價格優(yōu)勢。這就使8位的51單片機在以后很長的一段時間內(nèi)還有存在的空間,也就是說還是單片機應用的一個主流。試想一下,在戰(zhàn)場上,原本可以用高炮實現(xiàn)打擊的目標我們可能會用導彈去打嗎?再者,如果把51單片機學好了,以后轉(zhuǎn)行去學習或應
9、用其它的單片機,也就是一個了解及熟悉的過程了。因為MCS-51單片機是一個通用的單片機,其內(nèi)部的結構及工作原理與其它的單片機都是相通的。第二課:MCS-51單片機簡述 MCS51是指由美國INTEL公司(對了,就是大名鼎鼎的INTEL)生產(chǎn)的一系列單片機的總稱,這一系列單片機包括了好些品種,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的產(chǎn)品,該系列其它單片機都是在8051的基礎上進行功能的增、減、改變而來的,所以人們習慣于用8051來稱呼MCS51系列單片機,而8031是前些年在我國最流行的單片機,所以很多場合會看到8031的名稱。INTEL公司將M
10、CS51的核心技術授權給了很多其它公司,所以有很多公司在做以8051為核心的單片機,當然,功能或多或少有些改變,以滿足不同的需求,其中89C51就是這幾年在我國非常流行的單片機,它是由美國ATMEL公司開發(fā)生產(chǎn)的。以后我們將用89C51、89S51來完成一系列的實驗。MCS-51系列單片機MCS-51系列單片機分為兩大系列,即51子系列與52子系列。51子系列:基本型,根據(jù)片內(nèi)ROM的配置,對應的芯片為8031、8051、8751、895152子系列:增強型,根據(jù)片內(nèi)ROM的配置,對應的芯片為8032、8052、8752、8952這兩大系列單片機的主要硬件特性如下表:從上表中可以看到,8031
11、、8031、8032、80C32片內(nèi)是沒有ROM的,對應著上表看,我們可以發(fā)現(xiàn),51系列的單片機的RAM大小為128B,52系列的RAM大小為256B,51系列的計數(shù)器為兩個16位的,52系列的計數(shù)器為三個16位計數(shù)器。51系列的中斷源為5個,52系列的中斷源為6個。8051與80C51的區(qū)別: 80C51單片機是在8051的基礎上發(fā)展起來的,也就是說在單片機的發(fā)展過程中是先有8051,然后才有80C51的。 8051單片機與80C51單片機從外形看是完全一樣的,其指令系統(tǒng)、引腳信號、總線等完全一致(完全兼容),也就是說在8051下開發(fā)的軟件完全可以在80C51上應用,反過來,在89C51下開
12、發(fā)的軟件也可以在8051上應用。這兩種單片機是完全可移植的。 既然這兩種單片機外形及內(nèi)部結構都一樣,那它們之間的主要差別在哪里呢? 8051與80C51單片機的主要差別就在于芯片的制造工藝上。80C51的制造工藝是在8051基礎上進行了改進。 8051系列單片機采用的是HMOS工藝:高速度、高密度; 80C51系列單片機采用的是CHMOS工藝:高速度、高密度、低功耗; 也就是說80C51單片機是一種低功耗單片機。 經(jīng)常有網(wǎng)友問我們,我想學單片機,但單片機的類型很多,我該學哪種型號的單片機呢? 這里我提點我自已的想法,個人認為,初學單片機最好從8051開始,因為51單片機是一種通用型的單片機,性
13、價比較高,雖然是8位的單片機,但現(xiàn)在應用的量及范圍還很大。同時,因51單片機發(fā)展的歷史長,學習的資料相對較多而且較完善。致于用哪個具體型號的單片機?你可以用89C51來做實驗,也可以用89S51或者2051來做實驗,這個就不太重要了,前面說了,51單片機是一種通用型單片機,即然是通用,那么它的指令系統(tǒng)都是一樣的,不同的是它的制造工藝及內(nèi)部資源有點差別,這個是結合實際需要選型的問題了。所以,學習單片機,你可以只選擇一種型號,例如AT89S51或者AT89C2051。思考題:1、MCS-51系列單片機各種芯片的配置有何不同?2、MCS-51單片機內(nèi)部程序存儲器ROM和內(nèi)部數(shù)據(jù)存儲器RAM的空量分別
14、是多少?3、8051與80C51的差別在哪里?第三課:單片機相關常用名詞解釋總線:指能為多個部件服務的信息傳送線,在微機系統(tǒng)中各個部件通過總線相互通信。地址總線(AB):地址總線是單向的,用于傳送地址信息。地址總線的寬度為16位,因此基外部存儲器直接尋址64K,16位地址總線由P0口經(jīng)地址鎖存器提供低8位地址(A0A7),P2口直接提供高8位地址(A8A15)。數(shù)據(jù)總線(DB):一般為雙向,用于CPU與存儲器,CPU與外設、或外設與外設之間傳送數(shù)據(jù)信息(包括實際意義的數(shù)據(jù)和指令碼)。數(shù)據(jù)總線寬度為8位,由P0口提供。控制總線(CB):是計算機系統(tǒng)中所有控制信號的總稱,在控制總線中傳送的是控制信
15、息。由P3口的第二功能狀態(tài)和4根獨立的控制總線,RESET、EA、ALE、PSEN組成。存儲器: 用來存放計算機中的所有信息:包括程序、原始數(shù)據(jù)、運算的中間結果及最終結果等。只讀存儲器(ROM): 只讀存儲器在使用時,只能讀出而不能寫入,斷電后ROM中的信息不會丟失。因此一般用來存放一些固定程序,如監(jiān)控程序、子程序、字庫及數(shù)據(jù)表等。ROM按存儲信息的方法又可分為以下幾種1、掩膜ROM: 掩膜ROM也稱固定ROM,它是由廠家編好程序?qū)懭隦OM(稱固化)供用戶使用,用戶不能更改內(nèi)部程序,其特點是價格便宜。2、可編程的只讀存儲器(PROM): 它的內(nèi)容可由用戶根據(jù)自已所編程序一次性寫入,一旦寫入,只
16、能讀出,而不能再進行更改,這類存儲器現(xiàn)在也稱為OTP(Only Time Programmable)。3、可改寫的只讀存儲器EPROM: 前兩種ROM只能進行一次性寫入,因而用戶較少使用,目前較為流行的ROM芯片為EPROM。因為它的內(nèi)容可以通過紫外線照射而徹底擦除,擦除后又可重新寫入新的程序。4、可電改寫只讀存儲器(EEPROM): EEPROM可用電的方法寫入和清除其內(nèi)容,其編程電壓和清除電壓均與微機CPU的5V工作電壓相同,不需另加電壓。它既有與RAM一樣讀寫操作簡便,又有數(shù)據(jù)不會因掉電而丟失的優(yōu)點,因而使用極為方便。現(xiàn)在這種存儲器的使用最為廣泛。隨機存儲器(RAM): 這種存儲器又叫讀
17、寫存儲器。它不僅能讀取存放在存儲單元中的數(shù)據(jù),還能隨時寫入新的數(shù)據(jù),寫入后原來的數(shù)據(jù)就丟失了。斷電后RAM中的信息全部丟失。因些,RAM常用于存放經(jīng)常要改變的程序或中間計算結果等信息。RAM按照存儲信息的方式,又可分為靜態(tài)和動態(tài)兩種。1、靜態(tài)SRAM:其特點是只要有電源加于存儲器,數(shù)據(jù)就能長期保存。2、動態(tài)DRAM:寫入的信息只能保存若干ms時間,因此,每隔一定時間必須重新寫入一次,以保持原來的信息不變??涩F(xiàn)場改寫的非易失性存儲器: 這種存儲器的特點是:從原理上看,它們屬于ROM型存儲器,從功能上看,它們又可以隨時改寫信息,作用又相當于RAM。所以,ROM、RAM的定義和劃分已逐漸的失去意義。
18、1、快擦寫存儲器(FLASH) 這種存儲器是在EPROM和EEPROM的制造基礎上產(chǎn)生的一種非易失性存儲器。其集成度高,制造成本低于DRAM,既具有SRAM讀寫的靈活性和較快的訪問速度,又具有ROM在斷電后可不丟失信息的特點,所以發(fā)展迅速。2、鐵電存儲器FRAM 它是利用鐵電材料極化方向來存儲數(shù)據(jù)的。它的特點是集成度高,讀寫速度快,成本低,讀寫周期短。 時鐘周期:計算機在時鐘信號的作用下,以節(jié)拍方式工作。因此必須有一個時鐘發(fā)生電路,輸入微處理器的時鐘信號的周期稱為時鐘周期。機器周期:機器完成一個動作所需的時間稱為機器周期,一般由一個或一個以上的時鐘周期組成。在我們講述的MCS-51系列單片機中
19、,一個機器周期由12個時鐘周期組成。指令周期:執(zhí)行一條指令(如“MOV A,#34H”,該指令的含義是將立即數(shù)34H傳送到微處理器內(nèi)的累加器A中)所需時間稱為指令周期,它由一個到數(shù)個機器周期組成。指令周期的長短取決于指令的類型,即指令將要進行的操作步聚及復雜程度。匯編: 是能完成一定任務的機器指令的集合。二進制數(shù): 只有0和1兩個數(shù)碼,基數(shù)為二。16進制數(shù): 采用0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F等16個數(shù)碼,其中A-F相應的十進數(shù)為10-15,基數(shù)是16。指令: 是計算機所能執(zhí)行的一種基本操作的描述,是計算機軟件的基本單元。字節(jié):8位二進制數(shù)組成一個字節(jié),在存儲器
20、中以字節(jié)為單位存儲信息。字:2個字節(jié)組成一個字。雙字:2個字組成一個雙字。補碼:機器數(shù)可用不同的碼制來表示,補碼表示法是最常用的一種,正數(shù)采用符號絕對值表示,即數(shù)的最高有效位為0,數(shù)的其余部分則表示數(shù)的絕對值;負數(shù)的表示要麻煩一些,先寫出與該負數(shù)相對應的正數(shù)的補碼表示,然后將其按位求反,最后在末位加1,就可以得到該負數(shù)的補碼表示了。段地址: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ù)段存放當前運行程序所用的數(shù)據(jù),數(shù)據(jù)段的段地址存放在DS中。附加段:附加段是附加的數(shù)據(jù)段,也用于數(shù)據(jù)的保存,另外,
22、串操作指令將附加段作為其目的操作數(shù)的存放區(qū)域。附加段的段地址存放在ES中。堆棧段:堆棧段是堆棧所在的主存區(qū)域,堆棧段的段地址存放在SS中,堆棧指針寄存器SP指示堆棧棧頂?shù)钠频刂?,處理器利用SS:SP操作堆棧中的數(shù)據(jù)。堆棧:堆棧是一個后進先出的主存區(qū)域,位于堆棧段中,使用SS段寄存器記錄其段地址。它只有一個出入口,即當前棧頂,棧頂是地址較小的一端(低端),它用堆棧指針寄存器SP指定。堆棧有兩種以字為單位的基本操作,對應兩條基本指令:進棧指令PUSH和出棧指令POP。偽指令:匯編語言程序的語句除指令外還包括偽指令和宏指令,偽指令又稱為偽操作,它不象機器指令那樣是在程序運行期間由計算機來執(zhí)行的,它
23、是在匯編程序?qū)υ闯绦騾R編期間由匯編程序處理的操作,完成諸如數(shù)據(jù)定義、分配存儲區(qū)、指示程序結束等功能。宏指令:宏是源程序中一段有獨立功能的程序代碼,它只需要在源程序中定義一次,就可以多次調(diào)用,調(diào)用時只需要用一個宏指令語句就可以了。宏指令是用戶自定義的指令,在編程時將多次使用的功能用一條宏指令來代替。子程序:子程序又稱為過程,它相當于高級語言中的過程和函數(shù)。在一個程序的不同部分,往往要用到類似的程序段,這些程序段的功能和結構形式都相同,只是某些變量的賦值不同,此時就可以把這些程序段寫成子程序形式,以便需要時可以調(diào)用它;某些常用的特定功能的程序段也可編制成子程序的形式供用戶使用。中斷:中斷是一種使C
24、PU中止正在執(zhí)行的程序而轉(zhuǎn)去處理特殊事件的操作,這些引起中斷的事件稱為中斷源,它們可能是來自外設的輸入輸出請求,也可能是計算機的一些異常事故或其它內(nèi)部原因。中斷處理程序:當中斷發(fā)生時,處理器中止當前正在運行的程序,而轉(zhuǎn)到處理特殊事件的程序段中去執(zhí)行,這種處理中斷的子程序就是中斷處理程序,又稱為中斷服務程序。中斷處理程序的入口地址被安排在中斷向量表中。BIOS中斷:在存儲器系統(tǒng)中,從地址0FE000H開始的8K ROM中裝有BIOS(Basic Input/Output System)例行程序。駐留在ROM中的基本輸入輸出程序BIOS提供了系統(tǒng)加電自檢、引導裝入、主要I/O設備的處理程序以及接口
25、控制等功能模塊來處理所有的系統(tǒng)中斷。BIOS中斷給程序員編程帶來很大方便,程序員不必了解硬件I/O接口的特性,可直接用指令設置參數(shù),然后中斷調(diào)用BIOS中的程序。暫存器: 用來暫存由數(shù)據(jù)總線或通用寄存器送來的操作數(shù),并把它作為另一個操作數(shù)。中斷: 中斷是單片機實時地處理內(nèi)部或外部事件的一種內(nèi)部機制。當某種內(nèi)部或外部事件發(fā)生時,單片機的中斷系統(tǒng)將迫使CPU暫停正在執(zhí)行的程序,轉(zhuǎn)而去進行中斷事件的處理,中斷處理完畢后,又返回被中斷的程序處,繼續(xù)執(zhí)行下去。掉電保護: 指在正常供電電源掉電時,迅速用備用直流電源供電,以保證在一段時間內(nèi)信息不會丟失,當主電源恢復供電時,又自動切換為主電源供電。寄存器尋址
26、: 操作數(shù)在寄存器中,由指令操作碼中的rrr三位的值和PSW中RS1及RS0的狀態(tài),選中某個工作寄存器區(qū)的某個寄存器,然后進行相應的指令操作。波特率: 即每秒鐘傳送二進制數(shù)的位數(shù), 波特率越高,數(shù)據(jù)傳輸?shù)乃俣仍娇?。D/A轉(zhuǎn)換: 即將二進制數(shù)量轉(zhuǎn)換成與其量值成正比的電流信號或電壓信號。A/D轉(zhuǎn)換: 即將模擬量轉(zhuǎn)換成相應的數(shù)字量,然而送計算機處理。串行方式: 指數(shù)據(jù)的各位分時傳送,只需一條數(shù)據(jù)線,外加一條公共信號地線和若干條控制信號線。并行方式: 指數(shù)據(jù)的各位同時傳送,每一條數(shù)據(jù)都需要一條傳輸線。偽指令: 用于告訴匯編程序如何進行匯編的指令,它既不控制機器的操作也不被匯編成機器代碼,只能為匯編程序
27、所識別并指導匯編如何進行。SLEEP MODI 睡覺模式: 保證程序內(nèi)部運行,但與外部的傳輸?shù)葎幼饕淹V沟囊环N運行模式。linking 連接: 把編譯后生成的 *.obj 文件與其它 *.obj文件合并成機器能識別的機器文件。IC:輸入與輸出共用一條傳輸線,而時鐘由另一條線控制的一種串行傳輸方式。SFR 特殊功能寄存器區(qū): 8051 把 CPU 中的專用寄存器、并行端口鎖存器、串行口與定時器/計數(shù)器內(nèi)的控制寄存器集中安排到一個區(qū)域,離散地分布在地址從 80H 到 FFH 范圍內(nèi),這個區(qū)域稱為特殊功能寄存器區(qū) SFR。 這一節(jié)的目的是讓大家對單片機相關的概念做一個感性的了解,具體的內(nèi)容我們將在后
28、面的相關章節(jié)做詳細的講解。第四課:計算機中數(shù)的表示及運算數(shù)字: 談到數(shù)字,有很多同學可能會覺的很可笑,數(shù)字?不就是1234.這些嗎?是的,在日常的生活當中,我們用的一般都是十進制,但在計算機中,它只能識別二進制數(shù),所以在這里我還得跟大家共同分析一下:1、十進制: 十進制就是基數(shù)為“十”,所使用的數(shù)碼為09共10個數(shù)字。逢十進一。是我們每天都會運用到的,在這里就不多談了。2、二進制: 二進制的基數(shù)為“二”,其使用的數(shù)碼只有0和1兩個。在計算機中容易實現(xiàn),在常用的的實現(xiàn)方式中如:可以用電路的高電平表示1,低電平表示0;或者三極管截止時集電極的輸出表示1,導通時集電極輸出表示0。 3、十六進制:由于
29、二進制位數(shù)太長,不易記憶和收寫,所以人們又提出了十六進制的書寫形式。我們在匯編語言中多數(shù)用十六進制。 計算機只識別和處理數(shù)字信息,數(shù)字是以二進制數(shù)表示的;它易于物理實現(xiàn),同時,資料存儲、傳送和處理簡單可靠;運算規(guī)則簡單,使邏輯電路的設計、分析、綜合、方便,使計算器具有邏輯性。一、 用數(shù)制及轉(zhuǎn)換1、各種進位計數(shù)及其表示方法數(shù)字符號:0、1、2、9 數(shù)碼。數(shù)碼的個數(shù)基數(shù)。進位規(guī)則:逢十進一例如,十進制數(shù),10個數(shù)碼;采用“逢十進一”30681 = 3104+0103+6102+8101+1100例如,二進制數(shù),2個數(shù)碼,采用“逢二進一”(11010100)2 = 127+126+025+124+0
30、23+122+021+020總之,N進制數(shù),N個數(shù)碼,“逢N進一”2、數(shù)制之間的轉(zhuǎn)換 任意進制之間相互轉(zhuǎn)換,整數(shù)部分和小數(shù)部分必須分別進行,十進制轉(zhuǎn)換成二進制短除取余法十進制小數(shù)轉(zhuǎn)換成二進制小數(shù)乘2取整法。二進制轉(zhuǎn)換成十進制展開求和法。(101101)2 = 125+024+123+122+021+120= 32+0+8+4+0+1= 45二進制轉(zhuǎn)換成八進制、十六進制與此類似。二、 機器數(shù)及其編碼1、 機器數(shù)與真值機器只認識二進制數(shù):0、1。這是因為,電路狀態(tài)常有兩個,如通、斷;高電平、低電平;可用0、1表示。這種0、1、0、11在機器中的表現(xiàn)形式機器數(shù)。一般為8位。2、 機器數(shù)的編碼及運算
31、對帶符號數(shù)而言,有原碼、反碼、補碼之分,計算機內(nèi)一般使用補碼。1) 原碼將數(shù)“數(shù)碼化”,原數(shù)前“+”用0表示,原數(shù)前“-”用1表示,數(shù)值部分為該數(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ù)的反碼等于原碼;負數(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) 補碼補碼的概念:現(xiàn)在是下午3點,手表停在12點,可正撥3點,也可倒撥9點。即是說-9的操作可用+3來實現(xiàn),在12點里:3、-9互為補碼。運用補碼可使減法變成加法。規(guī)定:正數(shù)的補碼等于原碼。負數(shù)的補碼求法:1)反碼 + 12)公式:X補 = 2n + X (X0)如,設X = - 0101110 B , 則X原 = 10101110 B則X補 = X反 + 1 = 1101
33、0001 + 00000001 = 11010010 B如,+6補 = +6原 = 00000110 B-6補 = 28 + (-6) = 10000000 00000110 = 11111010 B8位補碼的范圍 128 +127。0 的個數(shù):只一個,即00000000而10000000 B是-128的補碼。原碼、反碼、補碼對照表:表1-2 P104)補碼的運算當X0時,X補= X反=X原 X補補 = X原X補+ Y補 = X+Y 補 X-Y 補= X+(-Y)補例:已知 X=52 Y=38 求X-Y計算機在做算術運算時,必需檢查溢出,以防止發(fā)生錯誤5)運算的溢出問題 資料字長(位數(shù))有一定
34、限制,所以資料的表示應有一個范圍。如字長8位時; 補碼范圍-128+127若運算結果超出這個范圍,便溢出。例:錯:兩個負數(shù)相加和為正數(shù)??梢姡航Y果正確(無溢出)時,Cs+1 = Cs結果錯誤(溢出)時,Cs+1 Cs溢出判斷:溢出 = Cs+1 Cs(即結果是0為無溢出;1為有溢出)1、 十進制數(shù)的編碼對機器:二進制數(shù)方便,對人 :二進制數(shù)不直觀,習慣于十進制數(shù)。在編程過程中,有時需要采用十進制運算,但機器不認識十進制數(shù)。怎么辦?可以將十進制的字符用二進制數(shù)進行編碼:這叫做二進制數(shù)對十進制編碼BCD碼。上述每4位二進制數(shù)表示一個十進制字符,這4位中各位的權依次是:8、4、2、18421 BCD
35、碼。BCD碼的運算:(1)BCD碼加法規(guī)則兩個BCD數(shù)相加時,“某位”的和小于10則保持不變;兩個BCD數(shù)相加時,“某位”的和大于9,則和數(shù)應加6修正。(2)BCD碼減法規(guī)則兩個BCD數(shù)相減時,“某位”的差未發(fā)生借位,則差數(shù)保持不變;兩個BCD數(shù)相減時,“某位”發(fā)生了借位,其差應減6修正。這里“某位”指BCD數(shù)中的“個位”、“十位”、“百位”、三、 字符信息的表示計算機能識別0、1、0、1、;這些0、1、0、1、有的代表數(shù)值,有的僅代表要處理的信息(如字母、標點符號、數(shù)字符號等文字符號),所以,計算機不僅要認識各種數(shù)字,還要能識別各種文字符號。人們事先已對各種文字符號進行二進制數(shù)編碼:如,美國
36、信息交換標準碼ASCII碼,用一個字節(jié)表示一個字符。低7位是字符的ASCII碼值;最高位是通信時的校驗位。思考題:真值與碼值有何區(qū)別?原碼、反碼、補碼三者之間如何換算?第五課:常用邏輯電路常用邏輯電路 在邏輯電路中,輸入和輸出只有兩種狀態(tài),即高電平和低電平。通常以邏輯“1”和“0”表示電平高低。1、 與門是一個能夠?qū)崿F(xiàn)邏輯乘運算的、多端輸入、單端輸出的邏輯電路。邏輯解釋: 即如右邊圖所示,當開關A與B當中只有全部閉合(即為高電平1)時,才會有輸出(即燈泡才會亮)所以在與門電路中,只有輸入的全部條件為高電平“1”時輸會有輸出。語言表達為:“有0出0,全1出1”2、 或門 是一個能夠?qū)崿F(xiàn)邏輯加運算
37、的、多端輸入、單端輸出的邏輯電路。邏輯解釋: 即如右邊圖所示,當開關A與B當中只要有一個開關閉合(即為高電平1)時,就會有輸出(即燈泡才會亮)所以在或門電路中,只要輸入的為高電平“1”就會有輸出。語言表達為:“有1出1,全0出0”。3、 非門是一個能夠?qū)崿F(xiàn)邏輯非運算的、單端輸入、單端輸出的邏輯電路。非就是反,就是否定,也就是輸入與輸出的狀態(tài)總是相反。邏輯解釋: 如右邊圖所示,當開關K斷開時燈亮,開關閉合時燈滅。如以開關斷開為燈亮,開關接通為滅為結果,則開關K與燈泡的因果關系為非邏輯關系。語言表達為:“有0出1,有1出0”。復合邏輯門電路:4與非門將一個與門與一個非門聯(lián)接起來就構成了一個與非門。
38、根據(jù)與門和非門的邏輯功能,可以列出與非門邏輯關系真值表。其邏輯功能的特點是:“當輸入全為1,輸出為0;只要輸入有0,輸出就為1”。5或非門將一個或門與一個非門聯(lián)接起來就構成了一個或非門。根據(jù)或門和非門的邏輯功能,可以列出與非門邏輯關系真值表。其邏輯功能的特點是:“當輸入全為0,輸出為1;只要輸入有1,輸出就為0”。6異或門異或門只有兩個輸入端和一個輸出端,。其邏輯功能的特點是:“當兩個輸入端一個為0,另一個為1時輸出為1,當兩個輸入端均為1或均為0時,輸出為0”。真值表如下:異或門的作用是:把兩路信號進行比較,判斷是否相同。當兩路輸入信號不同,即一個為高電平,一個為低電平時,輸出為高電平。反之
39、當兩個輸出端信號相同時,即為高電平或低電平時,輸出為低電平”。觸發(fā)器: 觸發(fā)器是計算機記憶裝置的基本單元,它具有把以前的輸入記憶下來的功能,一個觸發(fā)器能儲存一位二進制代碼。下面我們簡單的來介紹計算機中常用的幾中觸發(fā)器。1R-S觸發(fā)器R-S觸發(fā)器的邏輯符號如下圖所示,它有兩個輸入端,兩個輸出端。其中,S為置位信號輸入端,R為復位信號輸入端;Q和Q非為輸出端。規(guī)定Q為高、Q非為低時,該觸發(fā)器為1狀態(tài);反之為0狀態(tài)。其真值表如下。2D觸發(fā)器D觸發(fā)器又稱數(shù)據(jù)觸發(fā)器,它的邏輯符號如下圖所示,R、S分別為強制置0、置1端,觸發(fā)器的狀態(tài)是由時鐘脈沖CLK上升沿到來時D端的狀態(tài)決字。當D=1時,觸發(fā)器為1狀態(tài)
40、;反之為0狀態(tài)。其真值表如下3J-K觸發(fā)器J-K觸發(fā)器的邏輯符號如下,R、S分別為強制置0、置1端。K為同步置0輸入端。觸發(fā)器的狀態(tài)是由時鐘脈沖CLK下降沿到來時J、K端的狀態(tài)決定,其真值表如下J-K觸發(fā)器的邏輯功能比較全面,因此在各種寄存器、計算器、邏輯控制等方面應用最為廣泛。但在某些情況,如二進制計數(shù)、移位元、累加等,多用D觸發(fā)器。由于D觸發(fā)器線路簡章,所以大量應用于移位寄存器等方面。寄存器: 寄存器是由觸發(fā)器組成的,一個觸發(fā)器是一個一位寄存器。多個觸發(fā)器就可以組成一個多位的寄存器。由于寄存器在計算機中的作用不同,從而被命名不同,常用的有緩沖寄存器、移位寄存器、計數(shù)器等。下面我們就簡單的來
41、介紹下這些寄存器的電路結構及工作原理。1緩沖寄存器 它是用來暫存某個數(shù)據(jù),以便在適當?shù)臅r間節(jié)拍和給定的計算步驟將數(shù)據(jù)輸入或輸出到其它記憶單元中去,下圖是一個并行輸入、并行輸出的4位緩沖器的電路原理圖,它由4個D觸發(fā)器組成。 啟動時,先在清零端加清零脈沖,把各觸發(fā)器置0,即Q端為0。然后,把數(shù)據(jù)加到觸發(fā)器的D輸入端,在CLK時鐘信號作用下,輸入端的信息就保存在各觸發(fā)器中(D0D3)。2移位寄存器 移位寄存器能將所儲存的數(shù)據(jù)逐位向左或向右移動,以達到計算機運行過程中所需的功能,請看下圖 啟動時,先在清零端加清零脈沖,使觸發(fā)器輸出置0。然后,第一個數(shù)據(jù)D0加到觸發(fā)器1的串行輸入端,在第一個CLK脈沖
42、的上升沿Q0=Q0,Q1=Q2。Q3=Q0。其后,第二個數(shù)據(jù)D1加到串行輸入端,在第二個CLK脈沖到達時,Q0=Q1,Q1=Q0,Q2=Q3=0。以此類推,當?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,這樣有如水波前進一樣逐位進位下去。上圖中的這個計數(shù)器是4位的,因此可以計015的數(shù)。如果要計更多的數(shù),需要增加位數(shù),如8位計數(shù)器可計0255的數(shù),16位則可計065535的數(shù)。4三態(tài)門(三態(tài)緩沖器) 為減少信息傳輸線的數(shù)目,大多數(shù)計算機中的信息傳輸線均采用總線形式,即凡要傳輸?shù)耐愋畔⒍甲咄唤M傳輸線,且信息是分時傳送的。在計算機中一般有三組總線,即數(shù)據(jù)總線、地址總線和控制總線。為防止信息相互干擾,要求凡掛在總線上的寄存器或內(nèi)存等,它的傳輸端不僅能呈現(xiàn)0、1兩個信息狀態(tài),而且還應能
44、呈現(xiàn)第三種狀態(tài)高阻抗狀態(tài)(又稱高阻狀態(tài)),即此時好像它們的輸出被斷開,對總線狀態(tài)不起作用,此時總線可由其它器件占用。三態(tài)門即可實現(xiàn)上述的功能,它除具有輸入輸出端之外,還有一控制端,請看下圖。當控制端E=1時,輸出=輸入,此時總線由該器件驅(qū)動,總線上的數(shù)據(jù)由輸入數(shù)據(jù)決定;當控制端E=0時,輸出端呈高阻抗狀態(tài),該器件對總線不起作用。當寄存器輸出端接至三態(tài)門,再由三態(tài)門輸出端與總線連接起來,就構成三態(tài)輸出的級沖寄存器。如下圖所示就是一個4位的三態(tài)輸出緩沖寄存器。由于這里采用的是單向三態(tài)門,所以數(shù)據(jù)只能從寄存器輸出到數(shù)據(jù)總線。如果要實現(xiàn)雙向傳送,則要用雙向三態(tài)門。 在這里有個問題問下大家,前面我們已把
45、觸發(fā)器,寄存器的概念跟大家講解了一下,那么觸發(fā)器、寄存器、內(nèi)存,這三者之間是一個什么樣的關系呢?答:通過前面的學習,我們知道觸發(fā)器是計算機記憶裝置的基本單元,一個觸發(fā)器能儲存一位二進制代碼。寄存器是由觸發(fā)器組成的。一個觸發(fā)器就職一個一位的寄存器,多個觸發(fā)器就可以組成一個多位的寄存器。內(nèi)存是由大量寄存器組成的,其中每一個寄存器就稱為一個存儲單元。它可以存放一個有獨立意義的二進制代碼。第六課:51單片機的結構及其組成 在前面的五節(jié)課當中,我們講述的都是一些基礎概念的知識,從這節(jié)開始,我們就正式的切入到我們所在學習的對象-51單片機。 學習單片機的內(nèi)部結構之前,我們先了解下我們現(xiàn)在正在使用的計算機的
46、幾大組成部份:計算機的五個組成部份:運算器:用于實現(xiàn)算術和邏輯運算。計算機的運算和處理都在這里進行;控制器:是計算機的控制指揮部件,使計算機各部份能自動協(xié)調(diào)的工作;存儲器:用于存放程序和數(shù)據(jù);(又分為內(nèi)存儲器和外存儲器,內(nèi)存儲器就如我們電腦的硬盤,外存儲器就如我們的U盤)輸入設備:用于將程序和數(shù)據(jù)輸入到計算機(例如我們電腦的鍵盤、掃描儀);輸出設備:輸出設備用于把計算機數(shù)據(jù)計算或加工的結果以用戶需要的形式顯示或保存(例如我們的打印機)。注:1、通常把運算器和控制器合在一起稱為中央處理器(Central Processing Unit),簡稱CPU。2、通常把外存儲器、輸入設備和輸出設備合在一起
47、稱之為計算機的外部設備。 上面講的是我們的個人辦公計算機,那么51單片機的內(nèi)部又有些什么部件組成呢?1、中央處理單元(8位) 數(shù)據(jù)處理、測試位,置位,復位 位操作2、只讀存儲器(4KB或8KB) 永久性存儲應用程序,掩模ROM、EPROM、EEPROM3、隨機存取內(nèi)存(128B、128B SFR) 在程序運行時存儲工作變量和資料4、并行輸入/輸出口(I / O)(32條) 作系統(tǒng)總線、擴展外存、I / O接口芯片5、串行輸入/輸出口(2條) 串行通信、擴展I / O接口芯片6、定時/計數(shù)器(16位、加1計數(shù)) 計滿溢出、中斷標志置位、向CPU提出中斷請求,與CPU之間獨立工作7、時鐘電路 內(nèi)振
48、、外振。8、中斷系統(tǒng)五源中斷、2級優(yōu)先。結構特點:MCS-51系列單片機為哈佛結構(而非普林斯頓結構)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)布爾處理機:位處理機,某位單獨處理12)指令系統(tǒng):五大類,111條 上圖就是我們要研究學習的對象,51單片機摧部結構圖了。大家看看上圖,中間的一條雙橫線就是51單片機的內(nèi)部總
49、線了。其它的部件都是通過內(nèi)部的總線與CPU相聯(lián)接的,在第一節(jié)課時我們已跟大家講述過,8051單片機是總線結構的。下面我們就51單片機內(nèi)部的單個部件與大家進行講解。中央處理器(CPU): 剛跟大家講過,需要提醒的是MCS-51的CPU能處理8位二進制數(shù)或代碼。CPU是單片機的主要核心部件,在CPU里面包含了運算器、控制器以及若干寄存器等部件給成。內(nèi)部數(shù)據(jù)存儲器(RAM): MCS-51單片機芯片共有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ù)結果對計算機進行控制。定時時靠內(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é)中將會詳細論述。串行口 MCS-51有一個可編程的全雙工的串行口,以實現(xiàn)單片機和其它設備之間的串行數(shù)據(jù)傳送。該串行口功能較強,既可作為全雙工異步通信收發(fā)器使用,也可作為移位器使用。RXD( P3.0)腳為接收端口,TXD(P3.1)腳為發(fā)送端口。中斷控制系統(tǒng) MCS-51單片機的中斷功能較強,以滿足不同控制應用的需要。51系列有5個中斷源(52系列有6個中斷源),即外中斷2個,定時中斷2個,串行中斷1個,全部中斷分為高級和低級共二個優(yōu)先級別,優(yōu)先級別的設置我們也將在后面
52、進行詳細的講解。定時與控制部件 MCS-51單片機內(nèi)部有一個高增益的反相放大器,基輸入端為XTAL1輸出端為XTAL2。MCS-51芯片的內(nèi)部有時鐘電路,但石英晶體和微調(diào)電容需外接。時鐘電路為單片機產(chǎn)生時鐘脈沖序列。思考題:1、MCS-51單片機的片內(nèi)總體結構9個部件分別是什么?名起什么作用?這9大部件之間有什么聯(lián)系?2、怎樣通過MCS-51單片機片內(nèi)總體結構圖來區(qū)分8051、8751、8031芯片?第七課:51單片機的引腳當我們拿到一塊單片機芯片時,看到這么多的“大腿”,他們都有干什么用的?在這節(jié)課我們就針對這個問題進行講解。引腳功能: MCS-51是標準的40引腳雙列直插式集成電路芯片,引
53、腳分布請參照單片機引腳圖: 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口具有不完全相同的功能,大家可得學好了,其它書本里雖然有,但寫的太深,初學者很難理解,這里都是按我自已的表達方式來寫的,相信你也能夠理解。P0口有三個功能: 1、外部擴展存儲器時,當做數(shù)據(jù)總線(如圖1中的D0D7為數(shù)據(jù)總線接口) 2、外部擴展存儲器時,當作地址總線(如圖1中的A0A7
54、為地址總線接口) 3、不擴展時,可做一般的I/O使用,但內(nèi)部無上拉電阻,作為輸入或輸出時應在外部接上拉電阻。 P1口只做I/O口使用:其內(nèi)部有上拉電阻。P2口有兩個功能: 1、擴展外部存儲器時,當作地址總線使用 2、做一般I/O口使用,其內(nèi)部有上拉電阻;P3口有兩個功能: 除了作為I/O使用外(其內(nèi)部有上拉電阻),還有一些特殊功能,由特殊寄存器來設置,具體功能請參考我們后面的引腳說明。 有內(nèi)部EPROM的單片機芯片(例如8751),為寫入程序需提供專門的編程脈沖和編程電源,這些信號也是由信號引腳的形式提供的, 即:編程脈沖:30腳(ALE/PROG) 編程電壓(25V):31腳(EA/Vpp)
55、 接觸過工業(yè)設備的兄弟可能會看到有些印刷線路板上會有一個電池,這個電池是干什么用的呢?這就是單片機的備用電源,當外接電源下降到下限值時,備用電源就會經(jīng)第二功能的方式由第9腳(即RST/VPD)引入,以保護內(nèi)部RAM中的信息不會丟失。 (注:這些引腳的功能應用,除9腳的第二功能外,在“新動力2004版”學習套件中都有應用到。) 在介紹這四個I/O口時提到了一個“上拉電阻”那么上拉電阻又是一個什么東東呢?他起什么作用呢?都說了是電阻那當然就是一個電阻啦,當作為輸入時,上拉電阻將其電位拉高,若輸入為低電平則可提供電流源;所以如果P0口如果作為輸入時,處在高阻抗狀態(tài),只有外接一個上拉電阻才能有效。AL
56、E/PROG 地址鎖存控制信號: 在系統(tǒng)擴展時,ALE用于控制把P0口的輸出低8位地址送鎖存器鎖存起來,以實現(xiàn)低位地址和數(shù)據(jù)的隔離。(在后面關于擴展的課程中我們就會看到8051擴展 EEPROM電路,在圖中ALE與74LS373鎖存器的G相連接,當CPU對外部進行存取時,用以鎖住地址的低位地址,即P0口輸出。ALE有可能是高電平也有可能是低電平,當ALE是高電平時,允許地址鎖存信號,當訪問外部存儲器時,ALE信號負跳變(即由正變負)將P0口上低8位地址信號送入鎖存器。當ALE是低電平時,P0口上的內(nèi)容和鎖存器輸出一致。關于鎖存器的內(nèi)容,我們稍后也會介紹。在沒有訪問外部存儲器期間,ALE以1/6
57、振蕩周期頻率輸出(即6分頻),當訪問外部存儲器以1/12振蕩周期輸出(12分頻)。從這里我們可以看到,當系統(tǒng)沒有進行擴展時ALE會以1/6振蕩周期的固定頻率輸出,因此可以做為外部時鐘,或者外部定時脈沖使用。PORG為編程脈沖的輸入端:在第五課 單片機的內(nèi)部結構及其組成中,我們已知道,在8051單片機內(nèi)部有一個4KB或8KB的程序存儲器(ROM),ROM的作用就是用來存放用戶需要執(zhí)行的程序的,那么我們是怎樣把編寫好的程序存入進這個ROM中的呢?實際上是通過編程脈沖輸入才能寫進去的,這個脈沖的輸入端口就是PROG。PSEN 外部程序存儲器讀選通信號:在讀外部ROM時PSEN低電平有效,以實現(xiàn)外部R
58、OM單元的讀操作。 1、內(nèi)部ROM讀取時,PSEN不動作; 2、外部ROM讀取時,在每個機器周期會動作兩次; 3、外部RAM讀取時,兩個PSEN脈沖被跳過不會輸出; 4、外接ROM時,與ROM的OE腳相接。 參見圖2(8051擴展2KB EEPROM電路,在圖中PSEN與擴展ROM的OE腳相接)EA/VPP 訪問和序存儲器控制信號 1、接高電平時: CPU讀取內(nèi)部程序存儲器(ROM) 擴展外部ROM:當讀取內(nèi)部程序存儲器超過0FFFH(8051)1FFFH(8052)時自動讀取外部ROM。 2、接低電平時:CPU讀取外部程序存儲器(ROM)。 在前面的學習中我們已知道,8031單片機內(nèi)部是沒有
59、ROM的,那么在應用8031單片機時,這個腳是一直接低電平的。 3、8751燒寫內(nèi)部EPROM時,利用此腳輸入21V的燒寫電壓。RST 復位信號: 當輸入的信號連續(xù)2個機器周期以上高電平時即為有效,用以完成單片機的復位初始化操作,當復位后程序計數(shù)器PC=0000H,即復位后將從程序存儲器的0000H單元讀取第一條指令碼。XTAL1和XTAL2 : 外接晶振引腳。當使用芯片內(nèi)部時鐘時,此二引腳用于外接石英晶體和微調(diào)電容;當使用外部時鐘時,用于接外部時鐘脈沖信號。VCC:電源+5V輸入VSS:GND接地。思考題:1、I/O是什么?I/O口是什么?2、MCS-51單片機各引腳的功能是什么?第八課:8
60、051單片機I/O引腳工作原理一、P0端口的結構及工作原理P0端口8位中的一位結構圖見下圖: 由上圖可見,P0端口由鎖存器、輸入緩沖器、切換開關、一個與非門、一個與門及場效應管驅(qū)動電路構成。再看圖的右邊,標號為P0.X引腳的圖標,也就是說P0.X引腳可以是P0.0到P0.7的任何一位,即在P0口有8個與上圖相同的電路組成。下面,我們先就組成P0口的每個單元部份跟大家介紹一下:先看輸入緩沖器:在P0口中,有兩個三態(tài)的緩沖器,在學數(shù)字電路時,我們已知道,三態(tài)門有三個狀態(tài),即在其的輸出端可以是高電平、低電平,同時還有一種就是高阻狀態(tài)(或稱為禁止狀態(tài)),大家看上圖,上面一個是讀鎖存器的緩沖器,也就是說
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度物業(yè)人員雇用及客戶滿意度提升合同
- 二零二五年度城市安全防護系統(tǒng)抵押借款合同
- 二零二五年度股份占比合同協(xié)議書:5G通信技術股權投資合作協(xié)議
- 2025年度酒店與保險公司合作協(xié)議價合同樣本
- 2025年度二零二五年度離婚協(xié)議及財產(chǎn)分割與子女教育權益合同
- 現(xiàn)代科技展廳的節(jié)能環(huán)保材料解決方案
- 2025年度二零二五年度購物中心租賃鋪面租賃合同租賃保證金協(xié)議
- 2025年度影視演員經(jīng)紀與經(jīng)紀公司合作經(jīng)紀合同
- 2025年度銀行貸款居間服務與貸款風險防范合同
- 智慧課堂在教育領域的應用與挑戰(zhàn)
- 2025年有機肥行業(yè)發(fā)展趨勢分析報告
- 2023-2024年員工三級安全培訓考試題及參考答案(綜合題)
- 2025-2030年中國融雪劑行業(yè)運行動態(tài)及發(fā)展前景預測報告
- 2025保安部年度工作計劃
- 2024年江蘇經(jīng)貿(mào)職業(yè)技術學院單招職業(yè)適應性測試題庫
- 人居環(huán)境綜合治理項目項目背景及必要性分析
- 招標采購基礎知識培訓
- 電力系統(tǒng)分布式模型預測控制方法綜述與展望
- 2024年注冊建筑師-二級注冊建筑師考試近5年真題附答案
- 五年級口算題卡每天100題帶答案
評論
0/150
提交評論