C單片機的結(jié)構(gòu)及原理實用_第1頁
C單片機的結(jié)構(gòu)及原理實用_第2頁
C單片機的結(jié)構(gòu)及原理實用_第3頁
C單片機的結(jié)構(gòu)及原理實用_第4頁
C單片機的結(jié)構(gòu)及原理實用_第5頁
已閱讀5頁,還剩84頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

會計學1C單片機的結(jié)構(gòu)及原理實用2.180C51單片機的結(jié)構(gòu)與原理

2.1.180C51單片機系列

Intel公司推出的80C51是MCS-51系列單片機中以CHMOS為生產(chǎn)工藝的一個典型產(chǎn)品;其它廠商以8051為基核開發(fā)出的CMOS工藝單片機產(chǎn)品統(tǒng)稱為80C51系列。當前常用的80C51系列單片機主要產(chǎn)品有:

1、Intel公司的:80C31、80C51、87C51、80C32、80C52、87C52等。

2、ATMEL公司的:89C51、89C52、89C2051、89S51等。

3、Philips公司的80C51、80C550、80C552系列。

4、Motorola公司M68HC05系列。

5、華邦公司的W78C51、W77C51高速低價系列。

6、Maxim公司的DS89C420高速(50MIPS)系列。

7、Cygnal公司的C8051F系列高速SOC單片機。

8、ADI公司的ADμC8xx高精度ADC系列。

9、LG公司的GMS90/97低壓高速系列。

第1頁/共89頁2.1.280C51單片機的結(jié)構(gòu)

80C51單片機的結(jié)構(gòu)框圖如圖2-1所示,可以看出,在一塊芯片上集成了一個微型計算機的主要部件,它包括以下幾部分:

(1)8位CPU1個。(2)時鐘電路(振蕩電路和時序OSC)。(3)4KB程序存儲器(ROM/EPROM/Flsh),可外擴展到64KB。(4)128B數(shù)據(jù)存儲器RAM,可外擴展到64KB。(5)2個16位定時/計數(shù)器。(6)64KB總線擴展控制電路。(7)4個8位并行I/O接口P0~P3。(8)1個全雙工異步串行I/O接口。(9)中斷系統(tǒng):5個中斷源,其中包括2個優(yōu)先級嵌套中斷。第2頁/共89頁第3頁/共89頁2.1.380C51單片機的內(nèi)部結(jié)構(gòu)

80C51單片機的內(nèi)部結(jié)構(gòu)如圖2-2所示,它由CPU、存儲器、I/O口及SFR(特殊功能寄存器)等組成。具體說明如下:

1、80C51CPU80C51CPU即微處理器,是一8位CPU,是單片機的核心部件,是計算機的控制指揮中心。同微型計算機CPU類似,80C51內(nèi)部CPU由運算器和控制器兩部分組成。

(1)運算器組成:由算術(shù)運算/邏輯運算單元ALU(ArithmeticLogicUnit)為核心,由暫存器1、暫存器2、累加器ACC(Accumulator)、寄存器B及程序狀態(tài)寄存器PSW(ProgramStatusWord)組成。主要任務:是完成算術(shù)運算、邏輯運算、位運算和數(shù)據(jù)傳送等操作,運算結(jié)果的狀態(tài)由程序狀態(tài)寄存器(PSW)保存。第4頁/共89頁圖2-280C51單片機的內(nèi)部結(jié)構(gòu)第5頁/共89頁

(2)控制器組成:由程序計數(shù)器(PC)、PC增1寄存器、指令寄存器(IR)、指令譯碼器(ID)、數(shù)據(jù)指針(DPTR)、堆棧指針(SP)、緩沖器及定時控制電路等組成。主要任務:完成指揮控制工作,協(xié)調(diào)單片機各部分正常工作。

2、80C51的片內(nèi)存儲器

80C51的片內(nèi)存儲器與一般微機的存儲器的配置不同。一般微機的ROM和RAM安排在同一空間的不同范圍(稱為普林斯頓結(jié)構(gòu))。而80C51單片機的存儲器在物理上設(shè)計成程序存儲器和數(shù)據(jù)存儲器兩個獨立的空間(稱為哈佛結(jié)構(gòu))。第6頁/共89頁2.1.480C51單片機的引腳及功能

80C51單片機的封裝是采用雙列直插式(DIP)封裝,引腳圖如圖2-3(a)所示。80C51的40個引腳及功能描述如下:

1、電源引腳(2根)

(1)VCC(40腳):電源端,接+5V電源。(2)VSS(20腳):接地端。

2、時鐘引腳(2根)

(1)XTAL1(19腳):晶體振蕩器接入的一個引腳。采用外部時鐘電路時,此引腳應接地。(2)XTAL2(18腳):晶體振蕩器接入的另一個引腳。使用外部時鐘時,此引腳應接外部時鐘的輸入端。

3、控制引腳(4根)

(1)RST/VPD(9腳):復位信號輸入引腳/備用電源輸入引腳。

說明:當RST引腳保持兩個機器周期的高電平后,就可以使80C51完成復位操作。該引腳的第二功能是VPD,即備用電源的輸入端,具有掉電保護功能。若在該引腳接+5V備用電源,在使用中若主電源VCC掉電,可保護片內(nèi)RAM中的信息不丟失。

第7頁/共89頁第8頁/共89頁

(2)ALE/PROG(30腳):地址鎖存允許信號輸出引腳/編程脈沖輸入引腳。

說明:在系統(tǒng)擴展時,ALE用于控制把P0口輸出的低8位地址鎖存起來,以實現(xiàn)低位地址和數(shù)據(jù)的隔離。此外,由于ALE是以晶振fosc/6的固定頻率輸出的正脈沖(fosc代表振蕩器的頻率),因此,可作為外部時鐘或外部定時脈沖使用。該引腳的第二功能是對8751內(nèi)部4KBEPROM編程寫入時,作為編程脈沖的輸入端。(3)EA/VPP(31腳):外部程序存儲器地址允許輸入信號引腳/編程電壓輸入信號引腳。

說明:當EA接高電平時,CPU執(zhí)行片內(nèi)ROM指令,當PC值超過0FFFH時,將自動轉(zhuǎn)去執(zhí)行片外ROM指令;當EA接低電平時,CPU只執(zhí)行片外ROM指令。該引腳的第二功能VPP是對8751片內(nèi)EPROM編程寫入時,作為21V編程電壓的輸入端。(4)PSEN(29腳):片外ROM讀選通信號。

說明:在讀片外ROM時,為低電平(有效),以實現(xiàn)對片外ROM的讀操作。

第9頁/共89頁4、并行I/O引腳(32根,由4個8位口構(gòu)成)

其中:(1)P0.0~P0.7(39~32腳):一般的8位雙向I/O口引腳或數(shù)據(jù)/地址總線低8位復用引腳。

說明:P0口即可作數(shù)據(jù)/地址總線使用,又可作一般的I/O口使用。當CPU訪問片外存儲器時,P0口分時先作低8位地址總線,后作雙向數(shù)據(jù)總線,此時,P0口就不能再作一般I/O口使用。(2)P1.0~P1.7(1~8腳):P1口作為一般的8位準雙向I/O口使用。(3)P2.0~P2.7(21~28腳):一般8位準雙向I/O口引腳或高8位地址總線引腳。

說明:P2口即可作為一般的I/O口使用,也可作為片外存儲器的高8位地址總線,與P0口配合,組成16位片外存儲器單元地址,可訪問64KB的存儲空間。(4)P3.0~P3.7(10~17腳):一般8位準雙向I/O口引腳或第二功能引腳。

說明:P3口除了作為一般的I/O口使用之外,每個引腳還具有第二功能,P3的8條口線都定義有第二功能,詳見表2-1(a)第10頁/共89頁表2-1P3口各引腳與第二功能表第11頁/共89頁2.280C51單片機的存儲器組織

80C51的存儲器在物理結(jié)構(gòu)為哈佛結(jié)構(gòu),它將程序存儲器和數(shù)據(jù)存儲器分開,如圖2-4所示。從物理地址空間看,80C51單片機有四個存儲器地址空間,即片內(nèi)數(shù)據(jù)存儲器(簡稱片內(nèi)RAM)、片內(nèi)程序存儲器(片內(nèi)ROM)、片外數(shù)據(jù)存儲器(片外RAM)和片外程序存儲器(片外ROM)。第12頁/共89頁

但從使用的角度來看,80C51的存儲器又分為三個邏輯空間,如圖2-5所示。

1、片內(nèi)外統(tǒng)一尋址的64KB程序存儲器空間,地址范圍為0000H~FFFFH(訪問用指令MOVC)。

2、64KB的片外數(shù)據(jù)存儲器空間,地址范圍也為0000H~FFFFH(訪問用指令MOVX)。

3、80C51的片內(nèi)數(shù)據(jù)存儲器RAM只有128B,地址范圍為00H~7FH;80C52的片內(nèi)數(shù)據(jù)存儲器RAM為256B,地址范圍為00H~FFH(訪問用指令MOV)。第13頁/共89頁2.2.180C51單片機的程序存儲器ROM

80C51內(nèi)部有4KB的掩膜ROM。80C51的片外最多能擴展64KB程序存儲器,片內(nèi)外的ROM是統(tǒng)一編址的。

80C51程序存儲器ROM空間地址分布圖如圖2-6(a)所示。

第14頁/共89頁

對圖2-6(a)ROM空間地址分布圖作如下說明:

1、80C51片內(nèi)有4KB的ROM存儲單元,地址為0000H~0FFFH。

2、80C51片外最多可擴60KB的ROM,地址為1000H~FFFFH。

第15頁/共89頁2.2.280C51ROM低地址特殊單元

80C51的程序存儲器低地址單元中有6個單元具有特殊功能,見圖2-6(b)所示,使用時應予以注意其含義。

1、0000H~0002H:單片機復位后的程序入口地址

(3個單元)。

2、0003H~000AH:外部中斷0的中斷服務程序入口地址

(8個單元)。

3、000BH~0012H:定時器0的中斷服務程序入口地址

(8個單元)。

4、0013H~001AH:外部中斷1的中斷服務程序入口地址

(8個單元)。

5、001BH~0022H:定時器1的中斷服務程序入口地址

(8個單元)。

6、0023H~002AH:串行口的中斷服務程序入口地址

(8個單元)。第16頁/共89頁

具體應用時注意:第一組特殊單元是0000H~0002H,3個單元不可能安排長程序,因此,系統(tǒng)復位后(PC)=0000H,80C51單片機從0000H單元開始取指令執(zhí)行程序。如果程序不從0000H單元開始,應在這3個單元中存放一條無條件轉(zhuǎn)移指令,以便直接轉(zhuǎn)去執(zhí)行指定的程序。第二組特殊單元是0003H~002AH,共40個單元。這40個單元被均勻地分為5段,作為5個中斷源的中斷地址區(qū)。中斷響應后,按中斷種類,自動轉(zhuǎn)到各中斷區(qū)的首地址去執(zhí)行程序,因此在中斷地址區(qū)中應存放中斷服務程序。但通常情況下,8個單元難以存下一個完整的中斷服務程序,因此通常也是從中斷地址區(qū)首地址開始存放一條無條件轉(zhuǎn)移指令,以便中斷響應后,通過中斷地址區(qū),再轉(zhuǎn)到中斷服務程序的實際入口地址。

第17頁/共89頁2.2.380C51單片機的數(shù)據(jù)存儲器RAM80C51數(shù)據(jù)存儲器RAM主要用來存放運算的中間結(jié)果和數(shù)據(jù)等。80C51單片機數(shù)據(jù)存儲器RAM分為片內(nèi)RAM和片外RAM兩大部分,如圖2.7所示。80C51的片內(nèi)數(shù)據(jù)存儲器RAM只有128B,地址范圍為00H~7FH;80C52的片內(nèi)數(shù)據(jù)存儲器RAM為256B,地址范圍為00H~FFH。片外數(shù)據(jù)存儲器RAM最多可擴至64KB存儲單元,地址范圍為0000H~FFFFH。說明兩點:①80C52的片內(nèi)RAM地址空間共有256B,又分為兩個部分:●低128B(00H~7FH)RAM區(qū)與80C51的RAM區(qū)相同(訪問時采用直接或間接尋址方式均可)?!窀?28B(80H~FFH)RAM區(qū),在訪問這個區(qū)只能用寄存器間接尋址。需要注意是該地址范圍與特殊功能寄存器(SFR)區(qū)相重疊,區(qū)別是訪問特殊功能寄存器區(qū)采用直接尋址方式。②片內(nèi)RAM和片外RAM的低端地址0000H~007FH區(qū)是相重疊的,因此,就需要采用不同的尋址方式來解決。訪問片內(nèi)RAM時用指令MOV,而訪問片外RAM時用指令MOVX,另外片外RAM不能進行堆棧操作。第18頁/共89頁

在80C51單片機中,盡管片內(nèi)RAM的容量不大,但它的功能多,使用靈活。下面分別對低128BRAM區(qū)和高128B特殊功能寄存器(SFR)區(qū)進行討論。

一、內(nèi)部數(shù)據(jù)存儲器低128單元內(nèi)部數(shù)據(jù)存儲器低128單元是指地址為00H~7FH單元,如圖2-8所示。低128單元是單片機的真正RAM存儲器,按其用途劃分為工作寄存器區(qū)、位尋址區(qū)和用戶RAM區(qū)三個區(qū)域。

1、工作寄存器區(qū)

80C51單片機內(nèi)部RAM的00H~1FH地址單元,共32B,分成4組工作寄存器,每組8個工作寄存單元。

寄存器0組:地址00H~07H(R0~R7)寄存器1組:地址08H~0FH(R0~R7)寄存器2組:地址10H~17H(R0~R7)寄存器3組:地址18H~1FH(R0~R7)各組都以R0~R7作工作寄存單元編號。由于它們的功能及使用不作預先規(guī)定,因此稱之為通用寄存器。4組通用寄存器在任一時刻,CPU只能使用其中的一組工作寄存器,并且把正在使用的那組寄存器稱之為當前寄存器組。到底是哪一組,由程序狀態(tài)字寄存器PSW中RS1、RS0位的狀態(tài)組合來決定。第19頁/共89頁30H~7FH數(shù)據(jù)緩沖區(qū)20H~2FH位尋址區(qū)(00H~7FH)18H~1FH工作寄存器3區(qū)(R0~R7)10H~17H工作寄存器2區(qū)(R0~R7)08H~0FH工作寄存器1區(qū)(R0~R7)00H~07H工作寄存器0區(qū)(R0~R7)圖2-880C51片內(nèi)RAM的配置第20頁/共89頁

2、位尋址區(qū)

內(nèi)部RAM的20H~2FH地址單元,既可作為一般RAM單元使用,進行字節(jié)操作,也可以對單元中每一位進行位操作,因此把該區(qū)稱之為位尋址區(qū)。位尋址區(qū)共有16個RAM單元,計128位,地址為00H~7FH,見表2-2。程序設(shè)計時,常將程序狀態(tài)標志、位控制變量設(shè)在位尋址區(qū)內(nèi)。這種位尋址能力是80C51的一個重要特點。

3、用戶RAM區(qū)

地址為30H~7FH,共計80個字節(jié),這就是供用戶使用的一般RAM區(qū)。這個區(qū)域的操作指令非常豐富,數(shù)據(jù)處理方便靈活。對用戶RAM區(qū)的使用沒有任何規(guī)定或限制,但在一般應用中常把堆棧設(shè)置在此區(qū)中。

第21頁/共89頁表2-2片內(nèi)RAM及位尋址區(qū)的位地址表第22頁/共89頁二.內(nèi)部數(shù)據(jù)存儲器RAM高128單元

在80C51內(nèi)部RAM的高128單元是供給專用寄存器使用的,它們分布在其單元地址為80H~FFH的空間。因這些寄存器的功能已作專門規(guī)定,故稱之為專用寄存器(SpecialFunctionRegister),也可稱為特殊功能寄存器(簡稱為SFR寄存器)。訪問SFR寄存器只允許使用直接尋址方式。

1、特殊功能寄存器(SFR)簡介

80C51共有21個特殊功能寄存器(SFR),其中的11個SFR還具有位尋址功能,見表2-3用“*”表示的?,F(xiàn)把其中部分SFR簡單介紹如下:

1)與運算器有關(guān)的特殊功能寄存器有3個

(1)累加器ACC(Accumulator)。累加器為8位寄存器,是最常用的專用寄存器,用于向ALU提供操作,因此,功能較多,地位重要。它既可用于存放操作數(shù),也可用來存放運算的中間結(jié)果。第23頁/共89頁表2-380C51SFR中位地址分布表第24頁/共89頁(2)B寄存器。B寄存器是一個8位寄存器,主要用于乘、除運算。也可以作為RAM的一個單元使用。

(3)程序狀態(tài)字PSW(ProgramStatusWord)。程序狀態(tài)字是一個8位寄存器,用于存放程序運行中的各種狀態(tài)信息,作為程序查詢或判斷的條件。PSW有些位的狀態(tài)是根據(jù)程序執(zhí)行結(jié)果,由硬件自動設(shè)置的,而有些位的狀態(tài)則使用軟件方法設(shè)定。

PSW的各位定義見表2-4。各位的定義及使用作如下說明:

CY(PSW.7)——進位(借位)標志位。其功能有二:一是存放算術(shù)運算的進位()時,CY由硬件置“1”,否則清“0”;二是在進行位操作時,CY作為累加器借位)標志,在作加法(減法)運算時,如果操作結(jié)果的最高位有進位(借位C使用,可進行位傳送、位與位的邏輯運算等位操作,會影響該標志位。

AC(PSW.6)——輔助進位標志位。在進行加法(減法)運算中,當?shù)?位向高4位進位(借位)時,AC由硬件置“1”,否則AC位被清“0”。AC位常用于調(diào)整BCD碼運算結(jié)果。PSW位地址PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位標志

CYACF0RS1RS0OVF1P第25頁/共89頁

F0(PSW.5)——用戶標志位。這是一個留給用戶自己定義的標志位,可以根據(jù)自己的需要通過軟件方法置位或復位F0位,用以控制程序的轉(zhuǎn)向。

RS1和RS0(PSW.4,PSW.3)——工作寄存器組選擇位。工作寄存器共有4組,對應關(guān)系見表2-5。RS1和RS0這兩位的狀態(tài)是由軟件置“1”或清“0”來設(shè)置的,被選中的工作寄存器組即為當前工作寄存器組。注意:當單片機上電或復位后,RS1RS0=00,選中第0組。

OV(PSW.2)——溢出標志位。在帶符號數(shù)的算術(shù)運算時,如果運算結(jié)果超出了8位二進制數(shù)所能表示的符號數(shù)有效范圍(-128~+127),這產(chǎn)生了溢出OV=1,表示運算結(jié)果是錯誤的;否則,OV=0即無溢出產(chǎn)生,表示運算結(jié)果正確。

PSW.1位——保留未用。

P(PSW.0)——奇偶標志位。表明運算結(jié)果累加器A中內(nèi)容的奇偶性。如果A中有奇數(shù)個“1”,則P置“1”,否則置“0”。凡是改變累加器A中內(nèi)容的指令均會影響P標志位。注意:P標志位對串行通信中的數(shù)據(jù)傳輸有重要的意義。在串行通信中常采用奇偶校驗的辦法來校驗數(shù)據(jù)傳輸?shù)目煽啃浴?/p>

RS1RS0寄存器組片內(nèi)RAM地址00第0組00H~07H01第1組08H~0FH10第2組10H~17H11第3組18H~1FH第26頁/共89頁2)與指針有關(guān)的特殊功能寄存器有3個

(1)數(shù)據(jù)指針DPTR。數(shù)據(jù)指針為16位寄存器,用來存放16位地址。DPTR既可以按16位寄存器使用,也可以按兩個8位寄存器分開使用,即:

DPH——DPTR高8位字節(jié)

DPL——DPTR低8位字節(jié)

DPTR通常在訪問片外RAM或ROM存儲器時作地址指針使用,用間接尋址或變址尋址可對片外的64KB范圍的RAM或ROM數(shù)據(jù)進行操作。

(2)堆棧指針SP(StackPointer)。SP是一個8位寄存器,它總是指向棧頂。80C51單片機在編程序時常將堆棧設(shè)在內(nèi)部RAM30H~7FH中。80C51單片機系統(tǒng)復位后,SP的內(nèi)容為07H,從而復位后堆棧實際上是從08H單元開始的。但08H~1FH單元分別屬于工作寄存器1~3組,如程序要用到這些區(qū),最好把SP值改為1FH或更大的值。

(3)程序計數(shù)器PC(ProgramCounter)。PC是一個16位的計數(shù)器,它的作用是控制程序的執(zhí)行順序。其內(nèi)容為將要執(zhí)行指令的地址,尋址范圍達64KB。PC有自動加1功能,從而實現(xiàn)程序的順序執(zhí)行。第27頁/共89頁3)與接口有關(guān)的特殊功能寄存器有7個(1)并行I/O口P0、P1、P2、P3(4個),均為8位;可實現(xiàn)數(shù)據(jù)在接口輸入/輸出。(2)串行口數(shù)據(jù)緩沖器SBUF(詳見串行口章節(jié))。(3)串行口控制寄存器SCON(詳見串行口章節(jié))。(4)串行通訊波特率倍增寄存器PCON(詳見串行口章節(jié))4)與中斷相關(guān)的寄存器(2個)(1)中斷允許控制寄存器IE(詳見中斷章節(jié))。(2)中斷優(yōu)先級控制寄存器IP(詳見中斷章節(jié))。5)與定時器/計數(shù)器相關(guān)的寄存器(6個)(1)定時/計數(shù)器T0的兩個8位計數(shù)初值寄存器TH0、TL0,它們可以構(gòu)成16位的計數(shù)器,TH0存放高8位,TL0存放低8位(詳見定時/計數(shù)器章節(jié))。(2)定時/計數(shù)器T1的兩個8位計數(shù)初值寄存器TH1、TL1,它們可以構(gòu)成16位的計數(shù)器,TH1存放高8位,TL1存放低8位(詳見定時/計數(shù)器章節(jié))。第28頁/共89頁

(3)定時/計數(shù)器的工作方式寄存器TMOD(詳見定時/計數(shù)器章節(jié))。(4)定時/計數(shù)器的控制寄存器TCON(詳見定時/計數(shù)器章節(jié))。注意:在80C52子系列中,高128字節(jié)RAM和SFR的地址是重疊的,究竟訪問哪一塊可通過不同的尋址方式加以區(qū)分,訪問高128字節(jié)RAM采用寄存器間址,訪問SFR則只能采用直接尋址,訪問低128字節(jié)RAM時,兩種尋址均可采用。

第29頁/共89頁2.380C51的并行輸入/輸出端口結(jié)構(gòu)與操作

80C51單片機有4個8位并行I/O端口,稱為P0、P1、P2和P3口,每個端口都各有8條I/O口線,每條I/O口線都能獨立地用作輸入或輸出。每個口都包含一個鎖存器、一個輸出驅(qū)動器和輸入緩沖器。實際上,它們已被歸入專用寄存器之列,并且具有字節(jié)尋址和位尋址功能。

2.3.180C51P0~P3接口功能簡見大多數(shù)口線都有雙重功能,介紹如下:

1、P0口具有雙重功能:(1)作為通用I/O,外接I/O設(shè)備。(2)作為地址/數(shù)據(jù)總線。在有片外擴展存儲器的系統(tǒng)中,低8位地址和數(shù)據(jù)由P0口分時傳送。

2、P1口是唯一的單功能口:作為輸入/輸出口,P1口的每一位都可作為輸入/輸出口。

3、P2口具有雙重功能:(1)作為輸入/輸出口。(2)作為高8位地址總線。在有片外擴展存儲器的系統(tǒng)中,高8位地址由P2口傳送。

4、P3口具有雙重功能:

(1)作第一功能使用時,其功能為輸入/輸出口。(2)作第二功能使用時,每一位功能定義如表2.1所示。

80C51單片機的4個I/O口都是8位雙向口,這些口在結(jié)構(gòu)和特性上是基本相同的,但又各具特點,以下將分別介紹之。第30頁/共89頁2.3.2P0口

P0口某一位的結(jié)構(gòu)圖如圖2-9所示,由圖可見,電路是由一個輸出鎖存器(D觸發(fā)器)、兩個三態(tài)輸入緩沖器(1和2)、一個轉(zhuǎn)換開關(guān)MUX、一個輸出驅(qū)動電路(T1和T2)、一個與門及一個反向器組成。

1、P0口用作通用I/O口當系統(tǒng)不擴展片外的ROM和不擴展片外RAM時,P0用作通用I/O口。CPU發(fā)控制電平“0”封鎖與門,使上拉場效應管T1處于截止狀態(tài)。因此,輸出驅(qū)動級工作在需外接上拉電阻的漏極開路方式。同時使MUX開關(guān)同下面的觸點接通,使鎖存器的端與T2柵極接通。(1)P0口用作輸出口時

CPU在執(zhí)行輸出指令時,內(nèi)部數(shù)據(jù)總線的數(shù)據(jù)在“寫鎖存器”信號的作用下,由D端進入鎖存器,經(jīng)鎖存器的端送至場效應管T2,再經(jīng)T2反向,在P0.X引腳出現(xiàn)的數(shù)據(jù)正好是內(nèi)部總線的數(shù)據(jù)。由于輸出驅(qū)動級是漏極開路電路(因T1截止),在作I/O口使用時應外接10K的上拉電阻。第31頁/共89頁圖2-9P0口某位的結(jié)構(gòu)第32頁/共89頁(2)P0口用作輸入口時數(shù)據(jù)可以讀自端口的鎖存器,也可以讀自端口的引腳,這要看輸入操作執(zhí)行的是“讀鎖存器”指令還是“讀引腳”指令。①讀引腳:CPU在執(zhí)行“MOV”類輸入指令時(如:MOVA,P0),內(nèi)部產(chǎn)生的操作信號是“讀引腳”。P0.X引腳上的數(shù)據(jù)經(jīng)過三態(tài)輸入緩沖器2讀入到內(nèi)部總線。注意:在讀引腳時,必須先向電路中的鎖存器寫入1,使場效應管T2截止,P0.X引腳處于懸浮狀態(tài),可作為高阻抗輸入。否則,在作為輸入方式之前若向鎖存器輸出過“0”,則T2導通會使引腳箝位在“0”電平,使輸入高電平“1”無法讀入。所以,P0口在作為通用I/O口時,屬于準雙向口。②讀鎖存器:CPU在執(zhí)行“讀—修改—寫”類輸入指令時(如:ANLP0,A),內(nèi)部產(chǎn)生的操作信號是“讀鎖存器”,鎖存器中的數(shù)據(jù)經(jīng)過三態(tài)輸入緩沖器1送到內(nèi)部總線,然后與A的內(nèi)容進行邏輯“與”,結(jié)果送回P0的端口鎖存器并出現(xiàn)在引腳。除了MOV類指令外,其他的讀口操作指令都屬于這種情況。第33頁/共89頁(3)P0口用作地址/數(shù)據(jù)總線

當系統(tǒng)需要擴展片外的ROM或擴展片外RAM時,P0口就作地址/數(shù)據(jù)總線用。

CPU及內(nèi)部控制信號為“1”,使轉(zhuǎn)換開關(guān)MUX打向上面的觸點,使反相器的輸出端和T2管柵極接通。若地址/數(shù)據(jù)線為1,則T1導通,T2截止,P0口輸出為1;反之T1截止,T2導通,P0口輸出為0。當數(shù)據(jù)從P0口輸入時,讀引腳使三態(tài)緩沖器2打開,端口上的數(shù)據(jù)經(jīng)緩沖器2送到內(nèi)部總線。

P0口作為地址/數(shù)據(jù)總線使用時是一個真正的雙向口。(4)P0口小結(jié)

①P0口既可作地址/數(shù)據(jù)總線使用,也可作通用I/O口使用。當P0口作地址/數(shù)據(jù)總線使用時,就不能再作通用I/O口使用了。②P0口作輸出口使用時,輸出級屬漏極開路,必須外接上拉10K電阻,才有高電平輸出。③P0口作輸入口讀引腳時,應先向鎖存器寫1,使V2截止,不影響輸入電平。第34頁/共89頁P1口某一位的結(jié)構(gòu)圖如圖2-10所示,由圖可見,電路是由一個輸出鎖存器(D觸發(fā)器)、兩個三態(tài)輸入緩沖器(1和2)、一個輸出驅(qū)動電路(T和上拉電阻)組成。

P1口作為通用I/O口使用。由于在其輸出端接有上拉電阻,故可以直接輸出而無需外接上拉電阻。

當P1口作輸入口時,必須先向鎖存器寫“1”,使場效應管T截止。圖2-10P1口某位的結(jié)構(gòu)2.3.3P1口第35頁/共89頁2.3.4P2口

P2口某一位的結(jié)構(gòu)圖如圖2-11所示,由圖可見,電路是由一個輸出鎖存器(D觸發(fā)器)、兩個三態(tài)輸入緩沖器(1和2)、一個轉(zhuǎn)換開關(guān)MUX、一個反向器、一個輸出驅(qū)動電路(T和上拉電阻)組成。

1、P2用作通用I/O口當系統(tǒng)不在片外擴展程序存儲器ROM時,只擴展256B的片外RAM時,僅用到了地址線的低8位,P2口仍可以作為通用I/O口使用。圖2.11中的控制信號C決定轉(zhuǎn)換開關(guān)MUX的位置:當C=0時,MUX撥向下方,P0口為通用I/O口。

P2口在作為通用I/O口時,屬于準雙向口。

2、P2用作地址總線

當系統(tǒng)需要在片外擴展程序存儲器ROM或擴展RAM的容量超過256字節(jié)時,單片機內(nèi)硬件自動使控制C=1,MUX開關(guān)接向地址線,這時P2.X引腳的狀態(tài)正好與地址線的信息相同。在實際應用中,P2口通常作為高8位地址總線使用。第36頁/共89頁圖2-11P2口某位的結(jié)構(gòu)第37頁/共89頁2.3.5P3口

P3口某一位的結(jié)構(gòu)圖如圖2-12所示,由圖可見,電路是由一個輸出鎖存器(D觸發(fā)器)、3個三態(tài)輸入緩沖器(1、2和3)、一個與非門和一個輸出驅(qū)動電路(T和上拉電阻)組成。

1、P3用作第一功能(通用I/O口)

P3口用作通用I/O口時,第二輸出功能信號W=1,P3口的每一位都可定義為輸入或輸出,其工作原理同P1口類似。

P3口作為通用I/O口時,屬于準雙向口。

2、P3用作第二功能使用

當CPU不對P3口進行字節(jié)或位尋址時,內(nèi)部硬件自動將口鎖存器的Q端置1。這時,P3口作為第二功能使用。在真正的應用電路中,P3口的第二功能顯得更為重要。第38頁/共89頁圖2-12P3口某位的結(jié)構(gòu)第39頁/共89頁2.3.6P0~P3口使用時應注意事項

1、如果80C51單片機內(nèi)部程序存貯器ROM夠用,不需要擴展外部存貯器和I/O接口,80C51的四個口均可作I/O口使用。

2、四個口在作輸入口使用時,均應先對其寫“1”,以避免誤讀。

3、P0口作I/O口使用時應外接10K的上拉電阻,其它口則可不必。

4、P2可某幾根線作地址使用時,剩下的線不能作I/O口線使用。5、P3口的某些口線作第二功能時,剩下的口線可以單獨作I/O口線使用。

第40頁/共89頁2.3.7I/O端口帶負載能力1、P0、P1、P2、P3口的電平與CMOS和TTL電平兼容。2、P0口的每一位能驅(qū)動8個LSTTL負載。在作為通用I/O口使用時,輸出驅(qū)動電路是開漏的,所以,驅(qū)動集電極開路(OC門)電路或漏級開路電路需外接上拉電阻。當作為地址/數(shù)據(jù)總線使用時(T1可以提供上拉電平),口線不是開漏的,無需外接上拉電阻。3、P1~P3口的每一位能驅(qū)動4個LSTTL負載。它們的輸出驅(qū)動電路有上拉電阻,所以可以方便地由集電極開路(OC門)電路或漏級開路電路所驅(qū)動,而無需外接上拉電阻。4、對于80C51單片機(CHMOS),端口只能提供幾毫安的輸出電流,故當作輸出口去驅(qū)動一個普通晶體管的基極時,應在端口與晶體管基極間串聯(lián)一個電阻,以限制高電平輸出時的電流。第41頁/共89頁80C51單片機帶負載能力1、最大灌電流每個P口平均10mA。P0口26mA;P1、P2、P3口15mA。2、拉電流80μA。第42頁/共89頁2.3.8P口應用實例【例1】點亮LED0燈。用C語言實現(xiàn)方法1:#include<reg51.h>//包含51單片機寄存器定義的頭文件voidmain(void){P1=0xfe;//P1=11111110B,即P1.0輸出低電平

}方法2:用位操作#include<reg51.h>//包含51單片機寄存器定義的頭文件SbitD1=P1^0;//位操作voidmain(void){D1=0;//P1.0=0,即P1.0輸出低電平

}第43頁/共89頁第44頁/共89頁【例2】點亮LED0燈。

用匯編語言實現(xiàn)方法1:ORG0000HMOVP1,#0FEH;即P1.0輸出低電平END方法2:用位操作ORG0000HSETBP1.0;即P1.0輸出低電平END第45頁/共89頁【例3】點亮LED0~LED7燈。用C語言實現(xiàn)#include<reg51.h>//包含51單片機寄存器定義的頭文件voidmain(void)//兩個void意思分別為無需返回值,沒有參數(shù)傳遞

{P1=0x00;//P1=00000000B,即P1口輸出低電平

}用匯編語言實現(xiàn)ORG0000HMOVP1,#00H;即P1口輸出低電平END第46頁/共89頁//實例4:用單片機控制一個燈LED0閃爍:認識單片機的工作頻率#include<reg51.h>//包含單片機寄存器的頭文件/****************************************函數(shù)功能:延時一段時間*****************************************/voiddelay(void)//兩個void意思分別為無需返回值,沒有參數(shù)傳遞{unsignedinti;//定義無符號整數(shù),最大取值范圍65535for(i=0;i<20000;i++)//做20000次空循環(huán)

;//什么也不做,等待一個機器周期}/*******************************************************函數(shù)功能:主函數(shù)(C語言規(guī)定必須有也只能有1個主函數(shù))********************************************************/voidmain(void){while(1)//無限循環(huán)

{ P1=0xfe;//P1=11111110B,P1.0輸出低電平

delay();//延時一段時間

P1=0xff;//P1=11111111B,P1.0輸出高電平

delay();//延時一段時間

}}第47頁/共89頁//實例5:將P1口狀態(tài)分別送入P0、P2、P3口:認識I/O口的引腳功能

#include<reg51.h>//包含單片機寄存器的頭文件/*******************************************************函數(shù)功能:主函數(shù)(C語言規(guī)定必須有也只能有1個主函數(shù))********************************************************/voidmain(void){while(1) //無限循環(huán)

{ P1=0xf7; //P1=11110111B,燈亮LED3其余熄滅

P0=P1; //將P1口狀態(tài)送入P0口

P2=P1; //將P1口狀態(tài)送入P2口

P3=P1; //將P1口狀態(tài)送入P3口

}}第48頁/共89頁//實例6:使用P3口流水點亮8位LED#include<reg51.h>//包含單片機寄存器的頭文件/****************************************函數(shù)功能:延時一段時間*****************************************/voiddelay(void){ unsignedchari,j;定義無符號字符型變量,單字節(jié)數(shù)據(jù),值域0~255 for(i=0;i<250;i++) for(j=0;j<250;j++) ;}/*******************************************************第49頁/共89頁函數(shù)功能:主函數(shù)********************************************************/voidmain(void){while(1) { P3=0xfe;//第一個燈亮

delay();//調(diào)用延時函數(shù)

P3=0xfd;//第二個燈亮

delay();//調(diào)用延時函數(shù)

P3=0xfb;//第三個燈亮

delay();//調(diào)用延時函數(shù)

P3=0xf7;//第四個燈亮

delay();//調(diào)用延時函數(shù)

P3=0xef;//第五個燈亮

delay();//調(diào)用延時函數(shù)

P3=0xdf;//第六個燈亮

delay();//調(diào)用延時函數(shù)

P3=0xbf;//第七個燈亮

delay();//調(diào)用延時函數(shù)

P3=0x7f;//第八個燈亮

delay();//調(diào)用延時函數(shù)

}}第50頁/共89頁/實例7:通過對P3口地址的操作流水點亮8位LED#include<reg51.h>//包含單片機寄存器的頭文件sfrx=0xb0;//P3口在存儲器中的地址是b0H,通過sfr可定義8051內(nèi)核單片機

//的所有內(nèi)部8位特殊功能寄存器,對地址x的操作也就是對P1口的操作/****************************************函數(shù)功能:延時一段時間*****************************************/voiddelay(void){ unsignedchari,j; for(i=0;i<250;i++) for(j=0;j<250;j++) ;//利用循環(huán)等待若干機器周期,從而延時一段時間

}第51頁/共89頁/*****************************************函數(shù)功能:主函數(shù)******************************************/voidmain(void){while(1) {x=0xfe;//第一個燈亮

delay();//調(diào)用延時函數(shù)

x=0xfd;//第二個燈亮

delay();//調(diào)用延時函數(shù)

x=0xfb;//第三個燈亮

delay();//調(diào)用延時函數(shù)

x=0xf7;//第四個燈亮

delay();//調(diào)用延時函數(shù)

x=0xef;//第五個燈亮

delay();//調(diào)用延時函數(shù)

x=0xdf;//第六個燈亮

delay();//調(diào)用延時函數(shù)

x=0xbf;//第七個燈亮

delay();//調(diào)用延時函數(shù)

x=0x7f;//第八個燈亮

delay();//調(diào)用延時函數(shù)

}}第52頁/共89頁【例】設(shè)計一電路,監(jiān)視某開關(guān)K,用發(fā)光二極管LED顯示開關(guān)狀態(tài),如果開關(guān)合上,LED亮、開關(guān)打開,LED熄滅。

分析:根據(jù)題意設(shè)計電路如圖2-13如示。開關(guān)接在P1.1口線,LED接P1.0口線,當開關(guān)斷開時,P1.1為+5V,對應數(shù)字量為“1”,開關(guān)合上時P1.1電平為0V,對應數(shù)字量為“0”,這樣就可以用JB指令對開關(guān)狀態(tài)進行檢測。

LED正偏時才能發(fā)亮,按電路接法,當P1.0輸出“1”,LED正偏而發(fā)亮,當P1.0輸出“0”,LED的兩端電壓為0而熄滅。

第53頁/共89頁LED+5VVcc--EARST10uF1KP1.089S51P1.11K30P30PXTAL1XTAL2GND89C51+5VVcc--EARST10uF

1KP1.089S51+5VP1.11K30P30PXTAL1XTAL2GND89C51K圖2-13仿真鏈接第54頁/共89頁編程如下:

ORG0000H

LJMPMAIN

ORG1000H

MAIN:CLRP1.0;使發(fā)光二極管滅

LOOP:SETBP1.1;先對P1口寫入“1”

JBP1.1,L1;開關(guān)開,轉(zhuǎn)LIG

SETBP1.0;開關(guān)合上,二極管亮

SJMPAGA

L1:CLRP1.0;開關(guān)開,二極管滅

SJMPLOOP

END

注意:在上述電路圖中二極管亮度不夠,按下面兩種電路接法,增加了驅(qū)動能力,二極管更亮些。第55頁/共89頁+5VP1.0LEDDP1.0+5VLED11、接成灌電流形式:2、加驅(qū)動電路:第56頁/共89頁2.480C51時鐘電路與時序

2.4.1時鐘電路

80C51單片機的時鐘信號用來提供單片機內(nèi)各種微操作時間基準。80C51單片機的時鐘信號通常有兩種電路形式:內(nèi)部振蕩方式和外部振蕩方式。

1、內(nèi)部振蕩方式在引腳XTAL1和XTAL2外接晶體振蕩器(簡稱晶振)如圖2-14所示。

電容器C1、C2起穩(wěn)定振蕩頻率、快速起振的作用。電容值一般為5~30PF(常用30PF)。晶振的振蕩頻率范圍在1.2MHZ~12MHZ(一般取12MHZ或6MHZ)。由于單片機內(nèi)部有一個高增益運算放大器,當外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生振蕩時鐘脈沖。XTAL1XTAL2GND80C51C1C2圖2.14內(nèi)部振蕩方式第57頁/共89頁2、外部振蕩方式

是把已有的時鐘信號引入單片機。這種方式適宜用于使單片機的時鐘與外部信號保持一致。外部振蕩方式如圖2-15所示。對HMOS的單片機(8051)外部時鐘信號由XTAL2引入,對于CHMOS的單片機(80C51),外部時鐘由XTAL1引入。外部時鐘信號為高電平持續(xù)時間要大于20ns,且頻率低于12MHz的方波。外部時鐘XTAL1XTAL2GND80C51懸空外部時鐘XTAL1XTAL2GND懸空CHMOSHMOS8051圖2.15外部振蕩方式第58頁/共89頁2.4.2時序

80C51的時序就是80C51在執(zhí)行指令時所需控制信號的時間順序。80C51單片機的時序定時單位從小到大依次為:時鐘周期、狀態(tài)周期、機器周期和指令周期。

1、時鐘周期把晶振周期定義為節(jié)拍(用P表示)。晶振脈沖經(jīng)過二分頻后,就是單片機的時鐘周期(即一個時鐘周期是晶振周期的2倍),時鐘周期也稱為狀態(tài)(用S表示)。這樣,一個狀態(tài)就包含兩個節(jié)拍,具前半周期對應的拍節(jié)叫節(jié)拍1(P1),后半周期對應的節(jié)拍叫節(jié)拍2(P2)。

2、狀態(tài)周期狀態(tài)周期(或狀態(tài)S)是晶振周期的兩倍,它分為P1節(jié)拍和P2節(jié)拍。第59頁/共89頁3、機器周期

80C51采用定時控制方式,因此它有固定的機器周期。規(guī)定一個機器周期的寬度為6個狀態(tài),并依次表示為S1~S6。由于一個狀態(tài)又包括兩個節(jié)拍,因此,一個機器周期總共有12個節(jié)拍,分別記作S1P1、S1P2、…、S6P2。由于一個機器周期共有12個晶振周期,因此機器周期就是晶振脈沖的十二分頻。當晶振脈沖頻率為12MHz時,一個機器周期為1μs;當晶振脈沖頻率為6MHz時,一個機器周期為2μs。4、指令周期

指令周期是最大的時序定時單位,執(zhí)行一條指令所需要的時間稱為指令周期。它一般由若干個機器周期組成。不同的指令,所需要的機器周期數(shù)也不相同。通常,包含一個機器周期的指令稱為單周期指令,包含兩個機器周期的指令稱為雙周期指令。指令的運算速度與指令所包含的機器周期有關(guān),機器周期數(shù)越少的指令執(zhí)行速度越快。80C51單片機通常可以分為單周期指令、雙周期指令和四周期指令等三種。四周期指令只有乘法和除法指令兩條,其余均為單周期和雙周期指令。第60頁/共89頁

單片機執(zhí)行任何一條指令時都可以分為取指令階段和執(zhí)行指令階段。80C51的取指/執(zhí)行時序如圖2-16所示。由圖2.16可見,ALE引腳上出現(xiàn)的信號是周期性的,在每個機器周期內(nèi)出現(xiàn)兩次高電平。第一次出現(xiàn)在S1P2和S2P1期間,第二次出現(xiàn)在S4P2和S5P1期間。ALE信號每出現(xiàn)一次,CPU就進行一次取指操作,但由于不同指令的字節(jié)數(shù)和機器周期數(shù)不同,因此取指令操作也隨指令不同而有小的差異。按照指令字節(jié)數(shù)和機器周期數(shù),80C51的111條指令可分為6類,分別是:單字節(jié)單周期指令、單字節(jié)雙周期指令、單字節(jié)四周期指令、雙字節(jié)單周期指令、雙字節(jié)雙周期指令、三字節(jié)雙周期指令,可以參見附錄A。圖2-16(a),(b)所示分別給出了單字節(jié)單周期和雙字節(jié)單周期指令的時序。單周期指令的執(zhí)行始于S1P2,這時操作碼被鎖存到指令寄存器內(nèi)。若是雙字節(jié),則在同一機器周期的S4讀第二字節(jié)。若是單字節(jié)指令,則在S4仍有讀操作,但被讀入的字節(jié)無效,且程序計數(shù)器PC并不增量。圖2-16(c)給出了單字節(jié)雙周期指令的時序,兩個機器周期內(nèi)進行4次讀操作碼操作。因為是單字節(jié)指令,所以,后三次讀操作都是無效的。第61頁/共89頁圖2-1680C51的典型時序第62頁/共89頁5、80C51單片機的時序小結(jié)晶振周期:晶振的振蕩周期,又稱時鐘周期,為最小的時序單位。狀態(tài)周期:振蕩頻率經(jīng)單片機內(nèi)的二分頻器分頻后提供給片內(nèi)CPU的時鐘周期。因此,一個狀態(tài)周期包含2個晶振周期。機器周期(MC):1個機器周期由6個狀態(tài)周期及12個晶振周期組成。是計算機執(zhí)行一種基本操作的時間單位。指令周期:執(zhí)行一條指令所需的時間。一個指令周期由1~4個機器周期組成,依據(jù)指令不同而不同。

4種時序單位中,晶振周期和機器周期是單片機內(nèi)計算其他時間值(例如,波特率、定時器的定時時間等)的基本時序單位。例:單片機外接晶振頻率12MHZ時的各種時序換算:晶振周期=1/fosc=1/12MHZ=0.0833us

狀態(tài)周期=2/fosc=2/12MHZ=0.167us

機器周期=12/fosc=12/12MHZ=1us

指令周期=(1~4)機器周期=1~4us。第63頁/共89頁2.580C51復位電路

2.5.180C51復位電路

80C51單片機復位的目的是使CPU和系統(tǒng)中的其他功能部件都處在一個確定的初始狀態(tài),并從這個狀態(tài)開始工作,例如復位后PC=0000H,使單片機從第一個單元取指令。

80C51單片機復位的條件是:必須使RST端(9腳)加上持續(xù)兩個機器周期(即24個晶振周期)的高電平。例如,若時鐘頻率為12MHz,每機器周期為1?μs,則只需2μs以上時間的高電平,在RST引腳出現(xiàn)高電平后的第二個機器周期執(zhí)行復位。單片機常見的復位電路如圖2-17(a)、(b)所示。圖2-17(a)為上電復位電路,它是利用電容充電來實現(xiàn)的。在接電瞬間,RST端的電位與VCC相同,隨著充電電流的減少,RST的電位逐漸下降。只要保證RST為高電平的時間大于兩個機器周期,便能正常復位。第64頁/共89頁

圖2-17(b)為按鍵復位電路。該電路除具有上電復位功能外,若要復位,只需按圖2-17(b)中的RESET鍵,此時電源VCC經(jīng)電阻R1、R2分壓,在RESET端產(chǎn)生一個復位高電平。

電路中通常選擇:C=10f,R=10K。圖2-17復位電路(a)上電自動復位(b)按鍵手動復位第65頁/共89頁2.5.280C51單片機復位后的狀態(tài)

80C51單片機的復位功能是把PC初始化為0000H,使CPU從0000H單元開始執(zhí)行程序;復位操作同時使SFR寄存器進入初始化,但內(nèi)部RAM的數(shù)據(jù)是不變的。幾個主要特殊功能寄存器復位狀態(tài)歸納如表2-6。對個別特殊功能寄存器作如下說明:

PC=0000H:

程序計數(shù)器為零表明單片機復位后程序從0000H地址單元開始執(zhí)行。

A=00H:

表明累加器已被清零。

PSW=00H:

表明選寄存器0組為工作寄存器組。

SP=07H:

表明堆棧指針指向片內(nèi)RAM07H單元,根據(jù)堆棧操作的先加后壓法則,第一個被壓入的數(shù)據(jù)被寫入08H單元中,一般需重新設(shè)置SP值。

P0~P3=FFH:P0~P3口用作輸入口時,必須先寫入“1”。單片機在復位后,已使P0~P3口每一端線為“1”,為這些端線用作輸入口做好了準備。

第66頁/共89頁

其中,×表示無關(guān)位。

記住一些特殊功能寄存器復位后的主要狀態(tài),對于熟悉單片機操作,減短應用程序中的初始化部分是十分必要的。表2-6主要特殊功能寄存器復位狀態(tài)第67頁/共89頁2.6常用8位單片機系列介紹

2.6.1AT系列單片機

Atmel公司是美國著名的高性能,低功耗,非易失性存儲器和數(shù)字集成電路的一流半導體制造公司。AT系列單片機主要有AT89、AT90、AT91和智能IC卡等四種產(chǎn)品系列。產(chǎn)品主要特點是:E2PROM存儲技術(shù)和Flash閃速存儲器技術(shù)世界領(lǐng)先。

一、AT89系列單片機

AT89系列8位單片機可分為標準型、低檔型和高檔型三類。低檔型單片機有AT89C51和AT89C2051兩種型號;標準型單片機有AT89C51、AT89LV51、AT89C52、AT89LV52、AT89C55、AT89LV55六種型號;高檔型單片機有AT89S53、AT89S8252和AT89S4D12等型號。其中,數(shù)字9表示內(nèi)含F(xiàn)lash存儲器,C表示CMOS工藝,LV表示低電壓,S表示含有串行下載Flash存儲器,51、52和8252等表示型號。

AT89系列的主要單片機性能指標見表2-7所示。第68頁/共89頁表2-7AT89系列的主要單片機性能指標第69頁/共89頁

二、AT90系列單片機

AT90系列單片機是Atmel公司1997年推出的RISC(精簡指令系統(tǒng)計算機)8位單片機,也稱為AVR系列單片機。

AVR片機的I/O接口具有很強的驅(qū)動能力,灌電流可直接驅(qū)動繼電器、LED等器件,從而省去驅(qū)動電路,節(jié)約系統(tǒng)成本。

AVR單片機除具有低功耗、高密度的特點外,還支持低電壓的聯(lián)機Flash,EEPROM寫入功能。

AVR單片機還支持Basic、C等高級語言編程。

AVR單片機系列齊全,可適用于各種不同場合的要求。

AT90S系列:主要有AT90S1200/2313/4414/8515/8535等。

見表2-8所示。

第70頁/共89頁表2-8AT90系列單片機特性表第71頁/共89頁2.6.2Motorola公司的8位單片機

一、Motorola公司的8位單片機

Motorola公司于1979年推出真正的單片機M6801,采用NMOS工藝,內(nèi)含2.5萬只晶體管。

Motorola的M6805系列,M68HC05系列和M68HC11系列單片機是國際上應用最廣泛的8位主流機型之一,約占8位市場的30%份額。

M68HC05系列單片機的基本結(jié)構(gòu)和M6805相似,但功能更為強大。M68HC05比M6805增加了乘法和低功耗控制制指令,指令執(zhí)行速度比M6805要快3~4倍。

M68HC11系列單片機是Motorola公司的8位高性能單片機,1984年推出,采用HCMOS工藝制造,具有靈活的CPU、大量面向控制的外圍接口以及更加復雜的I/O功能,工作溫度范圍廣、可靠性高、抗干擾能力強,內(nèi)部資源豐富。第72頁/共89頁其主要特點為:(1)CPU有兩個8位或一個16位累加器和兩個16位變址寄存器,新增了可用于16位變址運算、16位乘除運算、位操作和功耗操作等指令,共有指令91條,總線速度高達4MHZ。(2)片內(nèi)ROM存儲器為0~32KB,片內(nèi)RAM存儲器為192~1250B,EPROM容量為4~32KB,E2PROM為0~2KB。(3)片內(nèi)I/O功能豐富而且靈活。(4)片內(nèi)定時器具有輸入捕捉和輸出比較功能,Watchdog功能。(5)4路DMA可以加速存儲器和外部設(shè)備間的數(shù)據(jù)傳送,一個MMU可以使原來尋址64KB的物理空間擴展到1MB。第73頁/共89頁二、Motorola公司單片機命名的方法第74頁/共89頁2.6.3Microchip(微芯)PIC系列單片機

PIC是由美國Microchip(微芯)公司推出的8位高性能單片機,該系列單片機是業(yè)內(nèi)首先采用RISC結(jié)構(gòu)的單片機系列,其總線結(jié)構(gòu)采用指令線和數(shù)據(jù)線分離的哈佛(Harvard)結(jié)構(gòu),使之具有很高的流水處理速度。

PIC8位系列單片機的主要特點:精簡了指令集,使得指令少,執(zhí)行速度快,內(nèi)部采用雙總線的哈佛結(jié)構(gòu),便于實現(xiàn)雙流水線或多流水線以提高處理速度。同時PIC系列單片機的功耗低,驅(qū)動能力強,有的型號單片機還具有I2C和SPI串行總線端口,有利于用單片機串行總線來擴充外圍器件。PIC系列單片機的產(chǎn)品分高、中、基本三個檔次。PIC系列單片機的特性見表2-9所示。第75頁/共89頁表2-9PIC系列單片機的特性第76頁/共89頁2.6.4臺灣Winbond(華邦)公司W(wǎng)78E51系列單片機

W78E系列單片機是臺灣Winbond(華邦)公司推出的CMOS型單片機系列,它具有較好的性價比、功能強、型號多等可滿足不同的應用場合的需求。華邦的系列單片機分為標準系列型、寬工作電壓系列型、渦輪-51系列型和工作級別系列型四個檔次。

1、標準型系列單片機片內(nèi)程序存儲器采用閃存EPROM,容量從4KB~64KB不等;片內(nèi)數(shù)據(jù)存儲器容量從128B~1KB;I/O口線有32位、36位及40位;2~3個定時計數(shù)器,中斷源5~8個;具有CMOS通用功能、可多次編程、可在線編程、4流水線功能、具有特殊的I/O端口、外部中斷增加了個,;外部存儲器可從64KB~1MB。

2、寬工作電壓系列型,其工作電壓可從1.8V~5.5V范圍內(nèi)工作。渦輪-51系列型工作電壓從2.7V~5.5V范圍,4時鐘/機器周期,提供了兩個UART接口和兩個DPTR寄存器,提供了等待狀態(tài)信號WDT等特殊功能。

3、工作級別系列型有3個定時計數(shù)器和看門狗等多種功能。

4、標準型系列單片機的性能參數(shù)見表2-10

第77頁/共89頁表2-10華邦W78標準型系列單片機性能指標第78頁/共89頁2.716位單片機介紹

16位單片機內(nèi)部的CPU是16位的,它對數(shù)據(jù)處理的能力通常比8位單片機強。下面介紹Intel和Motorola兩家公司的16位單片機。

2.7.1Intel公司的16位單片機

Intel公司于1984年推出16位高性能MCS-96系列單片機,該系列包括8096BH、8096和8098三個子系列。主要性能有:①一個16位CPU可以直接面向256字節(jié)寄存器空間;②16位乘16位和32位除以16位的乘除操作速度為6.25微秒;③8路10位A/D轉(zhuǎn)換器;④9個中斷源和5個8位I/O口;⑤一個8KB和ROM存儲器;⑥一個

溫馨提示

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

評論

0/150

提交評論