STC15單片機基礎(chǔ)解析_第1頁
STC15單片機基礎(chǔ)解析_第2頁
STC15單片機基礎(chǔ)解析_第3頁
STC15單片機基礎(chǔ)解析_第4頁
STC15單片機基礎(chǔ)解析_第5頁
已閱讀5頁,還剩88頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《增加型8051單片機原理與系統(tǒng)開發(fā)》

C51電子教案-01

單片機基礎(chǔ)一、課程的性質(zhì)和目的

機電類專業(yè)學(xué)生必修、專業(yè)基礎(chǔ)課;強調(diào)應(yīng)用實踐,理論結(jié)合實際,理解基本概念,能利用單片機解決實際問題;駕馭單片機的結(jié)構(gòu)、C51語言程序設(shè)計、調(diào)試方法;能調(diào)試程序,駕馭常見故障的檢測方法、故障解除方法,具備初步的程序設(shè)計實力二、課時支配及教學(xué)內(nèi)容序號課題(或項目)教學(xué)時數(shù)講授實踐復(fù)習(xí)測驗1項目準(zhǔn)備1222流水燈的設(shè)計與制作6223時鐘的設(shè)計與制作14224設(shè)計制作紅外報警器12225設(shè)計制作串行通訊小系統(tǒng)62小計50106機動2合計課時68學(xué)

分4三、考核方式和成果評價標(biāo)準(zhǔn)考核內(nèi)容比例考核方法備注作業(yè)15%正確性、工整性和按時完成(預(yù)計作業(yè)次數(shù)10次)5分制,加權(quán)平均課堂提問10%加分體制,主動發(fā)言加1分,正確加4分,課代表記錄實驗報告(成績)20%正確性、完成速度、創(chuàng)新性,報告工整性(4次實驗報告)5分制,加權(quán)平均出勤率5%扣分法,每次1分(校、院集體活動和有假條除外),課代表記錄超過三次,不能參加考試考試(期終)50%參加全校統(tǒng)考,成績低于60分(卷面總分100分),需補考統(tǒng)一試卷、按課改調(diào)整課程特點①學(xué)問點既分散又連貫,結(jié)構(gòu)和指令系統(tǒng)是基礎(chǔ);②與電子線路尤其是數(shù)字電子線路關(guān)系親密;學(xué)習(xí)方法①預(yù)習(xí)、復(fù)習(xí);②多動手(硬件、軟件試驗);③多看參考書(包括利用網(wǎng)上資料);④其它(上課、作業(yè)、答疑)。答疑和相關(guān)資料,愛好小組第1章單片機系統(tǒng)基礎(chǔ)學(xué)問1.1概述1.1.1單片機的基本概念1.微處理器的概念MPU是微處理器的縮寫(Microprocessor),簡稱為MP。MPU是集成在同一塊芯片上的具有運算和限制功能邏輯的中心處理器。微處理器不僅是構(gòu)成微型計算機、單片微型計算機系統(tǒng)、嵌入式系統(tǒng)的核心部件,而且也是構(gòu)成多微處理器系統(tǒng)和現(xiàn)代并行結(jié)構(gòu)計算機的基礎(chǔ)。1.1.1單片機的基本概念2.微型計算機的概念微型計算機(microcomputer)是指由微處理器加上接受大規(guī)模集成電路制成的程序存儲器和數(shù)據(jù)存儲器,以及與輸入/輸出設(shè)備相連接的I/O接口電路,微型計算機簡稱MC。1.1.1單片機的基本概念3.單片機的基本概念單片機SCMC(SingleChipMicroComputer)—屬于微型機的一種—具有一般微機的基本組成和功能其它名稱:微限制器MCU(MicroControllerUnit)嵌入式微限制器(embeddedmicrocontroller)單片機是單片微型計算機的簡稱,也就是把微處理器(CPU)、確定容量的程序存儲器(ROM)和數(shù)據(jù)存儲器(RAM)、輸入/輸出接口(I/O)、時鐘及其它一些計算機外圍電路,通過總線連接在一起并集成在一個芯片上,構(gòu)成的微型計算機系統(tǒng)。1.1.1單片機的基本概念4.嵌入式系統(tǒng)的基本概念

嵌入式系統(tǒng)泛指嵌入于宿主設(shè)備的系統(tǒng)中,嵌入的目的主要是用智能化提升宿主設(shè)備的功能。嵌入式系統(tǒng)是以應(yīng)用技術(shù)產(chǎn)品為核心,以計算機技術(shù)為基礎(chǔ),以通信技術(shù)為載體,以消費類產(chǎn)品為對象,引入各類傳感器加入,進入Internet網(wǎng)絡(luò)技術(shù)的連接,而適應(yīng)應(yīng)用環(huán)境的產(chǎn)品。特點:(1)嵌入式微處理器對實時多任務(wù)有很強的支持實力;(2)嵌入式微處理器具有功能很強的存儲區(qū)疼惜功能。(3)嵌入式微處理器功耗很低,1.1.1單片機的基本概念5.SOC的基本概念SOC是片上系統(tǒng)的簡稱。所謂SOC是一種高度集成化、固件化的系統(tǒng)集成技術(shù)。運用SOC技術(shù)設(shè)計系統(tǒng)的核心思想,就是要把整個應(yīng)用電子系統(tǒng)全部集成在一個芯片中。在運用SOC技術(shù)設(shè)計應(yīng)用系統(tǒng)時,除了那些無法集成的外部電路或機械部分以外,其他全部的系統(tǒng)電路全部集成在一起。1.1.2單片機的發(fā)展概況1.單片機的發(fā)展階段(1)單片機的初級階段(2)單片機的中級(成熟)階段(3)單片機的高級(發(fā)展)階段1.1.3單片機的特點和應(yīng)用

1.單片機的特點(1)體積小、運用靈敏、成本低、易于產(chǎn)業(yè)化。(2)牢靠性好,適應(yīng)溫度范圍寬。(3)易擴展,很簡潔構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng)、限制功能強。(4)系統(tǒng)內(nèi)無監(jiān)控或系統(tǒng)管理程序。2.單片機的應(yīng)用

(1)測控系統(tǒng)(2)智能儀器儀表(3)通訊產(chǎn)品(4)民用產(chǎn)品(5)軍用產(chǎn)品(6)計算機外部設(shè)備1.2.1MCS-51單片機的功能結(jié)構(gòu)及特點

圖1-1MCS-51(增加型)單片機功能結(jié)構(gòu)圖時鐘信號源外部事件信號BUS時鐘電路8KBFlashROM256BRAM128BSFR16位×3個定時/計數(shù)器64KB總線擴展控制器可編程并行口可編程全雙工串行口CPU中斷控制器外中斷8位×4個并行口串行通信總線控制BUS1.2.1MCS-51單片機的功能結(jié)構(gòu)及特點

MCS-51單片機內(nèi)部主要包括9個部分:一個8位的微處理器CPU8KB的片內(nèi)程序存儲器FlashROM256B的片內(nèi)數(shù)據(jù)存儲器RAM、128B特殊功能寄存器(SFR)3個16位的定時器/計數(shù)器有一個管理6個中斷源的中斷限制器4個8位并行I/O端一個全雙工的串行接口(UART)片內(nèi)振蕩電路和時鐘發(fā)生器可擴展64KB程序、64KB數(shù)據(jù)存儲器的三總線限制電路1.2.2MCS-51單片機的內(nèi)部原理結(jié)構(gòu) MCS-51單片機的內(nèi)部原理結(jié)構(gòu)如圖1-2所示。 與圖1-1比較,主要的區(qū)分是畫出了CPU的內(nèi)部結(jié)構(gòu),圖中的中間部分除了“定時器、串行口”大方框之外都屬于CPU部件。 下面先介紹CPU部分,對于其它部件,將在本章和后面的章節(jié)講解。

圖1-2MCS-51(增加型)單片機原理結(jié)構(gòu)圖XTAL2XTAL1P3.0~P3.7P1.0~P1.7RAM地址端口0驅(qū)動器端口2驅(qū)動器8KBFlashROM端口0鎖存器端口2鎖存器端口1驅(qū)動器端口3驅(qū)動器端口1鎖存器端口3鎖存器暫存器1SPPSWB寄存器暫存器2ACC256BRAM128BSFR緩沖器PC加1PC程序地址寄存器DPTR定時器、串行口中斷部件及特殊功能寄存器地址總線∕數(shù)據(jù)總線P2.0~P2.7VccGND指令寄存器指令譯碼器指令限制器P0.0~P0.7PSENALEEARSTALU1.2.3MCS-51單片機的CPU MCS-51單片機內(nèi)部有一個功能強大的8位CPU,它包含兩個基本部分,運算器和限制器。 一、運算器 運算器包括:算術(shù)和邏輯運算部件ALU(ArithmeticLogicUnit) 以及累加器ACC、寄存器B、暫存器1、暫存器2、程序狀態(tài)字寄存器PSW、布爾處理器等。1.2.3MCS-51單片機的CPU

1、算術(shù)邏輯運算部件ALU ALU可以對4位(半字節(jié))、8位(一字節(jié))和16位(雙字節(jié))數(shù)據(jù)進行操作。

這些操作可以是:

算術(shù)運算:加、減、乘、除、加1、減1、BCD碼數(shù)的十進制調(diào)整及比較等;

邏輯運算:與、或、異或、求補及循環(huán)移位等。1.2.3MCS-51單片機的CPU 2、累加器ACC ACC在CPU結(jié)構(gòu)中占有特殊的位置,所以ACC在指令中運用的特殊多。 ACC既做源操作數(shù)又做目的操作數(shù),如在加、減、乘、除算術(shù)運算指令中,在與、或、異或、循環(huán)移位邏輯運算指令等。 ACC也作為通用寄存器運用,并且可以按位操作,所以ACC是一個用處最多、最勞碌的寄存器。 在指令中用助記符A來表示。1.2.3MCS-51單片機的CPU 4、程序狀態(tài)字PSW 功能:用于設(shè)定CPU的狀態(tài)和指示指令執(zhí)行后的狀態(tài)。 PSW相當(dāng)于其它微處理器中的標(biāo)記寄存器。格式如下:PSW(D0H)D7D6D5D4D3D2D1D0CYACF0RS1RS0OVF1P圖1-3程序狀態(tài)字PSW格式1.2.3MCS-51單片機的CPU CY(PSW.7):進位、借位標(biāo)記 在做位操作(布爾操作)時CY作 為位累加器。在指令中用C代替CY AC(PSW.6):半進位、半借位標(biāo)記,也稱為幫助進位標(biāo)記 F0、F1(PSW.5、PSW.1):用戶標(biāo)記位,留給用戶運用D7D6D5D4D3D2D1D0CYACF0RS1RS0OVF1P1.2.3MCS-51單片機的CPU OV(PSW.2):溢出標(biāo)記位 有以下幾種狀況: ①加減運算: OV=1表示結(jié)果超出了8位有符號數(shù)的有效范圍(-128~+127),對無符號數(shù)OV沒有意義。 ②無符號數(shù)乘法運算: OV=1表明結(jié)果超出了8位數(shù) ③無符號數(shù)除法運算: OV=1表明除數(shù)為01.2.3MCS-51單片機的CPU P(PSW.0):累加器A的奇偶標(biāo)記位 P表示累加器A中1的個數(shù)的奇偶性 P=1,A中有奇數(shù)個1 P=0,A中有偶數(shù)個12.1.3MCS-51單片機的CPU RS1、RS0(PSW.4和PSW.3):工作寄存器組選擇限制位。 工作寄存器:R0、R1、……、R7表2-1RS1、RS0的組合關(guān)系RS1RS0工作寄存器組片內(nèi)RAM地址00第0組00H~07H01第1組08H~0FH10第2組10H~17H11第3組18H~1FH1.2.3MCS-51單片機的CPU 5、布爾處理器 布爾處理器以PSW中的進位標(biāo)記位CY作為位累加器(用C表示)。 功能:特地用于處理位操作。 MCS-51單片機有豐富的位處理指令:如置位、位清0、位取反、推斷位值(為1或為0)轉(zhuǎn)移,以及通過C(指令中用C代替CY)做位數(shù)據(jù)傳送、位邏輯與、位邏輯或等位操作。1.2.3MCS-51單片機的CPU 二、限制器 限制器包括程序計數(shù)器PC、指令寄存器IR、指令譯碼器ID,以剛好鐘限制邏輯、堆棧指針SP、地址指針DPTR等。 1、程序計數(shù)器PC PC是一個具有自加1功能的16位的計數(shù)器 PC的內(nèi)容是將要執(zhí)行的下一條指令的地址 變更PC的內(nèi)容就變更了程序執(zhí)行的依次2.1.3MCS-51單片機的CPU 2、指令寄存器IR和指令譯碼器ID IR:存放從FlashROM中讀取的指令 ID:進行譯碼,產(chǎn)生確定序列的限制信號,完成指令所規(guī)定的操作。 3、堆棧 (1)堆棧的概念 堆棧是在RAM中特地開拓的一個特殊用途的存儲區(qū)。 (2)堆棧的訪問原則:“先進后出”、“后進先出”。即先進入堆棧的數(shù)據(jù)后移出堆棧,即后進入堆棧的數(shù)據(jù)先移出堆棧。2.1.3MCS-51單片機的CPU (3)堆棧的結(jié)構(gòu) 堆棧的一端的地址是固定的,稱為棧底;另一端的地址是動態(tài)變更的,稱為棧頂。 (4)堆棧的操作方式 堆棧有兩種操作方式:數(shù)據(jù)進棧和數(shù)據(jù)出棧。 進棧和出棧都是在棧頂進行,這就必定是依據(jù)“先進后出”、“后進先出”的方式存取數(shù)據(jù)。2.1.3MCS-51單片機的CPU (5)堆棧的應(yīng)用 主要是用來短暫存放數(shù)據(jù),有兩種狀況運用堆棧: 一是CPU自動運用堆棧,當(dāng)調(diào)用子程序或響應(yīng)中斷,處理中斷服務(wù)程序時,CPU自動將返回地址存放到堆棧中; 通過堆棧傳遞參數(shù)。 二是程序員運用堆棧,用堆棧短暫存放數(shù)據(jù)。1.2.3MCS-51單片機的CPU

4、堆棧指針SP

堆棧指針SP(StackPointer)中為棧頂?shù)牡刂罚碨P指向棧頂。

SP是訪問堆棧的間址寄存器

SP具有自動加1、自動減1功能。當(dāng)數(shù)據(jù)進棧時,SP先自動加1,然后CPU將數(shù)據(jù)存入; 當(dāng)數(shù)據(jù)出棧時,CPU先將數(shù)據(jù)送出,然后SP自動減1。1.2.3MCS-51單片機的CPU 下圖是數(shù)據(jù)進棧的狀況數(shù)據(jù)從棧頂進入

開始狀態(tài)58進棧后的狀態(tài)A6,7B進棧后的狀態(tài)E7E7E7E6E6E6SPE5SPE5SPE5E1E4E2E4E4E4E3E3E3E2E258E236E136E136E121E021E021E058A67B1.2.3MCS-51單片機的CPU

由于進棧時SP的值增加,即堆棧向地址大的方向生長,并且棧頂是有效數(shù)據(jù),這種堆棧是滿遞增型堆棧。

7B出棧后的狀態(tài)A6、58、36出棧后的狀態(tài)E7E7E6E6SPE5SPE5E37BE4E07BE4A6E3A6E358E258E236E136E121E021E07BA658361.2.3MCS-51單片機的CPU 5、數(shù)據(jù)指針DPTR DPTR是唯一的16位寄存器。 DPTR既可以作為一個16位寄存器運用,也可以作為兩個獨立的8位寄存器運用。其高字節(jié)寄存器用DPH表示,低字節(jié)寄存器用DPL表示。 DPTR的用途:(1)主要用于存放16位地址,以便對64KB的片外RAM和64KB的程序存儲空間作間接訪問。(2)其次用于存放數(shù)據(jù),作為一般寄存器運用。

圖1-2MCS-51(增加型)單片機原理結(jié)構(gòu)圖XTAL2XTAL1P3.0~P3.7P1.0~P1.7RAM地址端口0驅(qū)動器端口2驅(qū)動器8KBFlashROM端口0鎖存器端口2鎖存器端口1驅(qū)動器端口3驅(qū)動器端口1鎖存器端口3鎖存器暫存器1SPPSWB寄存器暫存器2ACC256BRAM128BSFR緩沖器PC加1PC程序地址寄存器DPTR定時器、串行口中斷部件及特殊功能寄存器地址總線∕數(shù)據(jù)總線P2.0~P2.7VccGND指令寄存器指令譯碼器指令限制器P0.0~P0.7PSENALEEARSTALU1.2.3STC15W4K單片機的內(nèi)部結(jié)構(gòu)1.2.3STC15W4K單片機的引腳圖供電1.3MCS-51單片機的存儲器結(jié)構(gòu)主要內(nèi)容1.3.1程序存儲器結(jié)構(gòu)1.3.2片內(nèi)數(shù)據(jù)存儲器結(jié)構(gòu)1.3.3片外數(shù)據(jù)存儲器結(jié)構(gòu)(略)

MCS-51單片機存儲器概述

1、單片機的哈佛結(jié)構(gòu)存儲器

MCS-51單片機為哈佛結(jié)構(gòu):程序存儲器ROM和數(shù)據(jù)存儲器RAM分開編址

PC機為偌依曼:ROM和RAM統(tǒng)一編址

程序存儲器:固化程序、常數(shù)和數(shù)據(jù)表

數(shù)據(jù)存儲器:存放程序運行中產(chǎn)生的各種數(shù)據(jù)、用作堆棧等

2、單片機的存儲器空間及分類 MCS-51單片機有4個存儲空間: 片內(nèi)程序存儲器、片內(nèi)數(shù)據(jù)存儲器,片外程序存儲器、片外數(shù)據(jù)存儲器。 4個存儲空間可以分成三類: 片內(nèi)數(shù)據(jù)存儲空間(256B的RAM和128B的特殊功能寄存器)、片外數(shù)據(jù)存儲空間(64KB)、片內(nèi)和片外統(tǒng)一編址的程序存儲空間(64KB) 不同類型的存儲空間,有各自的尋址方式和訪問指令。1.3.1程序存儲器結(jié)構(gòu) 一、程序存儲器結(jié)構(gòu) 51基本型片內(nèi)有4KB的FlashROM,地址為0000H~0FFFH,片外最多可以擴展60KB,地址為1000H~FFFFH。 增加型片內(nèi)有8KB的FlashROM,地址為0000H~1FFFH,片外最多可以擴展56KB,地址為2000H~FFFFH,片內(nèi)外是統(tǒng)一編址的。 程序存儲器空間的配置如圖1-7所示1.3.1程序存儲器結(jié)構(gòu)圖1-7MCS-51單片機程序存儲空間的配置片外ROM片內(nèi)ROMEA=1片外ROMEA=00000H0FFFH1000HFFFFH(a)片內(nèi)有4KB的ROM(b)片內(nèi)有8KB的ROM片外ROM片內(nèi)ROMEA=1片外ROMEA=00000H1FFFH2000HFFFFH1.3.1程序存儲器結(jié)構(gòu) 單片機在執(zhí)行指令時,對于低地址部分,原委是從片內(nèi)程序存儲器取指令,還是從片外程序存儲器取指令? 確定于程序存儲器選擇引腳EA的電平: EA接低電平,讀片外程序存儲器 EA接高電平,CPU從片內(nèi)程序存儲器取指令。 當(dāng)取指令的地址大于片內(nèi)存儲器的最大地址時,CPU自動轉(zhuǎn)到片外程序存儲器取指令。1.3.1程序存儲器結(jié)構(gòu)

二、程序存儲器的專用區(qū)域 用作復(fù)位和中斷入口表2-3ROM中專用存儲區(qū)域存儲單元應(yīng)用0000H~0002H復(fù)位后引導(dǎo)程序地址0003H~000AH外中斷0000BH~0012H定時器0中斷0013H~001AH外中斷1001BH~0022H定時器1中斷0023H~002AH串行口中斷002BH~0032H定時器2中斷(增強型機)2.3.1程序存儲器結(jié)構(gòu) 中斷向量:即中斷入口地址。如下表 留意區(qū)分:中斷入口地址、中斷服務(wù)程序入口地址、中斷服務(wù)程序。表2-4中斷向量表中斷源中斷入口地址外中斷00003H定時器0中斷000BH外中斷10013H定時器1中斷001BH串行口中斷0023H定時器2中斷(增強型機)002BH2.3.1程序存儲器結(jié)構(gòu) C語言編程所考慮的問題 假如用C語言編寫程序,不須要考慮以上這些問題,即不用考慮引導(dǎo)程序問題,中斷入口與跳轉(zhuǎn)問題,這些問題均由編譯系統(tǒng)支配好。 main()函數(shù)起到引導(dǎo)程序的作用。 對于中斷處理,只要依據(jù)格式編寫中斷處理函數(shù)即可(見第4章)。2.3.2片內(nèi)數(shù)據(jù)存儲器結(jié)構(gòu) 片內(nèi)數(shù)據(jù)存儲器依據(jù)尋址方式,可以分為三個部分:低128字節(jié)數(shù)據(jù)區(qū),高128字節(jié)數(shù)據(jù)區(qū),特殊功能寄存器區(qū)。如下圖所示。低128BRAM

data區(qū)特殊功能寄存器80HFFH00H7FH(a)89C51片內(nèi)RAM低128BRAM

data區(qū)高128BRAMidata區(qū)特殊功能寄存器00H7FH80HFFH80HFFH(b)增加型單片機片內(nèi)RAM2.3.2片內(nèi)數(shù)據(jù)存儲器結(jié)構(gòu) 一、低128字節(jié)RAM 地址范圍:00H~7FH,128字節(jié) 應(yīng)用特點:有多種用途、且運用最頻繁 功能作用:分為三個區(qū)域,即工作寄存器區(qū)、位找尋區(qū)、通用數(shù)據(jù)區(qū)。 尋址方式:干脆、間接、位尋址 低128字節(jié)RAM的配置如圖1-9所示。

7F30堆棧和數(shù)據(jù)緩存通用數(shù)據(jù)區(qū)2F20位地址為00H~7FH(128位)位尋址區(qū)1F18R0、R1…R7(第3組)工1710R0、R1…R7(第2組)作寄0F08R0、R1…R7(第1組)存器0700R0、R1…R7(第0組)區(qū)圖1-9低128字節(jié)RAM區(qū)1.3.1片內(nèi)數(shù)據(jù)存儲器結(jié)構(gòu) 1、工作寄存器區(qū) 范圍:地址從00H到1FH,共32字節(jié)。 分4個組:第0組、第1組、第2組、第3組 工作寄存器名:R0、R1……R7。 不同的組對應(yīng)的8個寄存器的地址不同,如表2-1所示。 工作寄存器組的選擇:確定于程序狀態(tài)字PSW的RS1和RS0位。見表2-1。 C語言下選寄存器組:在定義函數(shù)時,通過運用關(guān)鍵字“using”來選擇(如usingm)。1.3.1片內(nèi)數(shù)據(jù)存儲器結(jié)構(gòu)

2、位尋址區(qū)

范圍:字節(jié)地址從20H到2FH,16字節(jié)。

位地址:00H到7FH,128位。

用途:既可以做位操作,也可以字節(jié)操作。

C語言編程:用關(guān)鍵字“bit”定義的位變量在該區(qū)域;用關(guān)鍵字“bdata”將一般變量定義在該區(qū)域,并且定義的變量還可以進行位尋址。

1.3.1片內(nèi)數(shù)據(jù)存儲器結(jié)構(gòu) 3、通用數(shù)據(jù)區(qū) 范圍:地址從30H到7FH,共80字節(jié)。 用途:用于堆棧、存放數(shù)據(jù)、存放程序運行時的中間結(jié)果等。 4、尋址方式 干脆、間接、位尋址方式訪問 干脆、間接范圍:字節(jié)地址從00H到7FH 位尋址范圍:字節(jié)地址從20H到2FH,16字節(jié);位地址00H到7FH、128位1.3.1片內(nèi)數(shù)據(jù)存儲器結(jié)構(gòu) 二、高128字節(jié)RAM 地址范圍:80H~FFH,128字節(jié) 用途:與低128字節(jié)中的30H到7FH完全一樣,用于堆棧、存放程序運行時的數(shù)據(jù)和中間結(jié)果等。 尋址方式:間接訪問。 C語言編程:運用關(guān)鍵字“idata”定義變量1.3.1片內(nèi)數(shù)據(jù)存儲器結(jié)構(gòu) 三、特殊功能寄存器(SFR) 也稱為專用寄存器,是單片機中最重要的部分。 地址范圍:80H~FFH,128字節(jié) 功能作用: 限制單片機各個部件的運行 反映各部件的運行狀態(tài) 存放數(shù)據(jù)或地址 尋址方式:干脆訪問1.3.1片內(nèi)數(shù)據(jù)存儲器結(jié)構(gòu) 1、具體特殊功能寄存器 SFR的數(shù)量:基本型只有21個,增加型有27個;分別有11個、12個可以按位操作。 (1)與CPU相關(guān)的(7個) PWS*:程序狀態(tài)寄存器 A*:累加器 B*:幫助運算寄存器 SP:堆棧指針 PCON:電源限制寄存器 DPL、DPH:數(shù)據(jù)指針的低字節(jié)、高字節(jié)1.3.1片內(nèi)數(shù)據(jù)存儲器結(jié)構(gòu) (2)與定時器相關(guān)的(12個) TMOD:模式寄存器 TCON*:限制寄存器 TL0、TH0:T0低8位、高8位計數(shù)器 TL1、TH1:T1低8位、高8位計數(shù)器 T2MOD:T2模式寄存器 T2CON*:T2限制寄存器 TL2、TH2:T2低8位、高8位計數(shù)器 RCAP2L、RCAP2H:T2捕獲寄存器1.3.1片內(nèi)數(shù)據(jù)存儲器結(jié)構(gòu) (3)與中斷相關(guān)的(2個) IE*:中斷允許(限制)寄存器 IP*:中斷優(yōu)先級寄存器 (4)與串行口相關(guān)的(2個) SCON*:串行口限制寄存器 SBUF:串行口數(shù)據(jù)緩沖寄存器,2個 (5)與I/O口相關(guān)的(4個) P0*、P1*、P2*、P3* 4個并行口映射寄存器1.3.2片內(nèi)數(shù)據(jù)存儲器結(jié)構(gòu) 2、一些最重要的寄存器 在表2-5中有格式的特殊功能寄存器最重要,它們是(9個): PSW*、IE*、IP*、TCON*、TMOD PCON、SCON*、T2CON*、T2MOD 應(yīng)用單片機,主要就是駕馭這9個有格式的特殊功能寄存器,對基本型僅有7個。表格2?2特殊功能寄存器表符號單元地址名稱位地址符號地址*ACCE0H累加器ACC.7~ACC.0E7H~E0H*BF0H乘法寄存器B.7~B.0F7H~F0H*PSWD0H程序狀態(tài)字PSW.7~PSW.0D7H~D0H

SP81H堆棧指針

DPL82H數(shù)據(jù)存儲器指針(低8位)

DPH83H數(shù)據(jù)存儲器指針(高8位)

*IEA8H中斷允許控制器IE.7~IE.0AFH~A8H*IPB8H中斷優(yōu)先控制器IP.7~IP.0BFH~B8H*P080H通道0P0.7~P0.087H~80H*P190H通道1P1.7~P1.097H~90H*P2A0H通道2P2.7~P2.0A7H~A0H*P3B0H通道3P3.7~P3.0B7H~B0H

PCON87H電源控制及波特率選擇

*SCON98H串行口控制SCON.7~SCON.09FH~98H

SBUF99H串行數(shù)據(jù)緩沖器

*TCON88H定時控制TCON.7~TCON.08FH~88H

TMOD89H定時器方式選擇

TL08AH定時器0低8位

TL18BH定時器1低8位

TH08CH定時器0高8位

TH18DH定時器1高8位

*:可位尋址的特殊功能寄存器內(nèi)部數(shù)據(jù)存儲器高128單元表2?3MCS-51專用寄存器一覽表1.3.1片內(nèi)數(shù)據(jù)存儲器結(jié)構(gòu) 3、特殊功能寄存器在C語言中的表示 這些特殊功能寄存器及各位位名在匯編語言中能夠識別,但在C語言中并不識別。 為了在C語言中運用,必需先做定義,它們多數(shù)在“reg51.h”、“reg52.h”等頭文件做了定義。 但有一些未做定義,如4個并行口P0~P3各位,累加器A,寄存器B等,在運用時須要用戶定義。1.3.3片外數(shù)據(jù)存儲器結(jié)構(gòu) 地址范圍:0000H~FFFFH 容量:共64KB 訪問指令:“MOVX”(片內(nèi)用MOV) 運用“MOVX”指令對片外RAM進行讀/寫操作時,會自動產(chǎn)生讀/寫限制信號RD和WR,作用于片外RAM實現(xiàn)讀/寫操作。1.3.3片外數(shù)據(jù)存儲器結(jié)構(gòu) 片外RAM的用途: (1)沒有特殊的用途,不像片內(nèi)RAM,不劃分區(qū)域。 (2)片外RAM做通用RAM運用,主要存放大量采集的或接收的數(shù)據(jù)、運算的中間數(shù)據(jù)、最終結(jié)果、用作堆棧等。 C語言編程:運用關(guān)鍵字“xdata”或“pdata”將變量、數(shù)組、堆棧定義到片外RAM區(qū)。作為外部存儲訪問STC15W4K單片機—結(jié)構(gòu)1.4單片機并行I/O口

8051單片機有4個I/O端口,每個端口都是8位準(zhǔn)雙向口,共占32根引腳。每個端口都包括一個鎖存器(即專用寄存器P0~P3)、一個輸出驅(qū)動器和輸入緩沖器。通常把4個端口籠統(tǒng)地表示為P0~P3。1.4.1P0口的結(jié)構(gòu)及特點

P0口的某位P0.n(n=0~7)結(jié)構(gòu)圖,它由一個輸出鎖存器、兩個三態(tài)輸入緩沖器和輸出驅(qū)動電路及限制電路組成。從圖中可以看出,P0口既可以作為I/O用,也可以作為地址/數(shù)據(jù)線用。DQCLKQMUXP0.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制VCCT1T2P0口引腳1、P0口作為一般I/O口①輸出時CPU發(fā)出限制電平“0”封鎖“與”門,將輸出上拉場效應(yīng)管T1截止,同時使多路開關(guān)MUX把鎖存器與輸出DQCLKQMUXP0.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制VCCT1T2P0口引腳驅(qū)動場效應(yīng)管T2柵極接通。故內(nèi)部總線與P0口同相。由于輸出驅(qū)動級是漏極開路電路,若驅(qū)動NMOS或其它拉流負載時,須要外接上拉電阻。P0的輸出級可驅(qū)動8個LSTTL負載。DQCLKQMUXP0.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制VCCT1T2P0口引腳②輸入時----分讀引腳或讀鎖存器讀引腳:由傳送指令(MOV)實現(xiàn);下面一個緩沖器用于讀端口引腳數(shù)據(jù),當(dāng)執(zhí)行一條由端口輸入的指令時,讀脈沖把該三態(tài)緩沖器打開,這樣端口引腳上的數(shù)據(jù)經(jīng)過緩沖器讀入到內(nèi)部總線。DQCLKQMUXP0.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制VCCT1T2P0口引腳DQCLKQMUXP0.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制VCCT1T2P0口引腳讀鎖存器:有些指令如:ANLP0,A稱為“讀-改-寫”指令,須要讀鎖存器。上面一個緩沖器用于讀端口鎖存器數(shù)據(jù)。**緣由:假如此時該端口的負載恰是一個晶體管基極,且原端口輸出值為1,那么導(dǎo)通了的PN結(jié)會把端口引腳高電平拉低;若此時干脆讀端口引腳信號,將會把原輸出的“1”電平誤讀為“0”電平?,F(xiàn)接受讀輸出鎖存器代替讀引腳,圖中,上面的三態(tài)緩沖器就為讀鎖存器Q端信號而設(shè),讀輸出鎖存器可避開上述可能發(fā)生的錯誤。**DQCLKQMUXP0.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制VCCT1T2P0口引腳DQCLKQMUXP0.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制VCCT1T2P0口引腳準(zhǔn)雙向口:從圖中可以看出,在讀入端口數(shù)據(jù)時,由于輸出驅(qū)動FET并接在引腳上,假如T2導(dǎo)通,就會將輸入的高電平拉成低電平,產(chǎn)生誤讀。所以在端口進行輸入操作前,應(yīng)先向端口鎖存器寫“1”,使T2截止,引腳處于懸浮狀態(tài),變?yōu)楦咦杩馆斎搿_@就是所謂的準(zhǔn)雙向口。2、P0作為地址/數(shù)據(jù)總線在系統(tǒng)擴展時,P0端口作為地址/數(shù)據(jù)總線運用時,分為:P0引腳輸出地址/數(shù)據(jù)信息。DQCLKQMUXP0.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制VCCT1T2P0口引腳CPU發(fā)出限制電平“1”,打開“與”門,又使多路開關(guān)MUX把CPU的地址/數(shù)據(jù)總線與T2柵極反相接通,輸出地址或數(shù)據(jù)。由圖上可以看出,上下兩個FET處于反相,構(gòu)成了推拉式的輸出電路,其負載實力大大增加。DQCLKQMUXP0.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制VCCT1T2P0口引腳1.4.2P1口的結(jié)構(gòu)及特點

它由一個輸出鎖存器、兩個三態(tài)輸入緩沖器和輸出驅(qū)動電路組成----準(zhǔn)雙向口。DQCLKQP1.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳VCCRTP1口引腳1.4.3P2口的結(jié)構(gòu)及特點

1.P2口作為一般I/O口DQCLKQMUXP2.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址控制VCCRTP2口引腳CPU發(fā)出限制電平“0”,使多路開關(guān)MUX倒向鎖存器輸出Q端,構(gòu)成一個準(zhǔn)雙向口。其功能與P1相同。2.P2口作為地址總線在系統(tǒng)擴展片外程序存儲器擴展數(shù)據(jù)存儲器且容量超過256B(用MOVX@DPTR指令)時,CPU發(fā)出限制電平“1”,使多路開關(guān)MUX倒內(nèi)部地址線。此時,P2輸出高8位地址。DQCLKQMUXP2.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址控制VCCRTP2口引腳1.4.4P3口的結(jié)構(gòu)及特點

DQCLKQP3.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳VCCRTP3口引腳其次輸入功能其次輸出功能一、作為通用I/O口與P1口類似----準(zhǔn)雙向口(W=1)WP3的內(nèi)部結(jié)構(gòu)DQCLKQP3.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳VCCRTP3口引腳其次輸入功能其次輸出功能二、P3其次功能(Q=1)此時引腳部分輸入(Q=1、W=1),部分輸出(Q=1、W輸出)。WP3第二功能各引腳功能定義:P3.0:RXD串行口輸入P3.1:TXD串行口輸出P3.2:INT0外部中斷0輸入P3.3:INT1外部中斷1輸入P3.4:T0定時器0外部輸入P3.5:T1定時器1外部輸入P3.6:WR外部寫控制P3.7:RD外部讀控制1.4.6STC15F4KIO模式準(zhǔn)雙向口工作模式下,I/0口可用干脆輸出而不需重新配置口線輸出狀態(tài)。這是因為當(dāng)口線輸出為“1”時驅(qū)動實力很弱,允許外部裝置將其拉低電平。當(dāng)引腳輸出為低電平常,它的驅(qū)動實力很強,可吸取相當(dāng)大的電流。推挽輸出工作模式下,I/O口輸出的下拉結(jié)構(gòu)、輸入電路結(jié)構(gòu)與準(zhǔn)雙向口模式是一樣的,不同的是推挽輸出工作模式下I/O口的上拉是持續(xù)的“強上拉”,若輸出高電平,輸出拉電流最大可達20mA;若輸出低電平常,輸出灌電流最大可達20mA。1.4.6STC15F4KIO模式僅為輸入(高阻)工作模式下,可干脆從端口引腳讀入數(shù)據(jù),而不須要先對端口鎖存器置“1”。1.4.6STC15F4KIO模式開漏輸出工作模式下,I/O口輸

溫馨提示

  • 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

提交評論