《單片機原理及應用》課件-第2章 AT89C51單片機的結(jié)構(gòu)_第1頁
《單片機原理及應用》課件-第2章 AT89C51單片機的結(jié)構(gòu)_第2頁
《單片機原理及應用》課件-第2章 AT89C51單片機的結(jié)構(gòu)_第3頁
《單片機原理及應用》課件-第2章 AT89C51單片機的結(jié)構(gòu)_第4頁
《單片機原理及應用》課件-第2章 AT89C51單片機的結(jié)構(gòu)_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

ChapterTwoAT89C51單片機的結(jié)構(gòu)目錄CONTENT2.1AT89C51單片機的基本結(jié)構(gòu) 2.2AT89C51單片機的存儲器配置 2.3AT89C51的時鐘電路與CPU時序2.4AT89C51復位與復位電路2.5AT89C51單片機的最小系統(tǒng)2.1AT89C51單片機的基本結(jié)構(gòu)AT89C51是具有MCS-51內(nèi)核、片內(nèi)帶有4KB的flashROM的單片機,圖2-1為AT89C51基本結(jié)構(gòu)示意圖。從圖中可以看出,單片機有一條內(nèi)部總線,各個功能模塊都掛在這條總線上,通過內(nèi)部總線傳送數(shù)據(jù)信息和控制信息。AT89C51主要由以下部件組成。AT89C51單片機基本結(jié)構(gòu)示意圖AT89C51主要組成部件CPU是單片機的核心部分,是單片機的指揮和執(zhí)行機構(gòu)。AT89C51是8位單片機,CPU的各種運算和操作都是以單字節(jié)8位為基礎(chǔ)進行的。從功能上看,CPU包括兩個基本部分:運算器和控制器。(1)運算器運算器即算術(shù)邏輯運算單元ALU(ArithmeticLogicUnit),是進行算術(shù)或邏輯運算的部件,可以對單字節(jié)(8位)數(shù)據(jù)進行操作。例如可實現(xiàn)加、減、乘、除等算術(shù)運算和與、或、異或、取反、移位等邏輯運算。操作的結(jié)果一般送回累加器ACC(Accumulator),而其狀態(tài)信息送至程序狀態(tài)寄存器PSW(ProgramStatusWord)。(2)控制器控制器是用來控制單片機工作的部件??刂破鹘邮諄碜源鎯ζ鞯闹噶?,進行譯碼,并通過定時和控制電路,在規(guī)定時刻發(fā)出指令所需的各種控制信息和CPU外部所需的各種控制信號,使各部分協(xié)調(diào)工作,完成指令所規(guī)定的操作。CPU1內(nèi)部數(shù)據(jù)存儲器2AT89C51芯片內(nèi)共有256B(地址為:00H~FFH)的數(shù)據(jù)存儲器,其中高128B(地址為:80H~FFH)被專用寄存器SFR占用,能作為數(shù)據(jù)存儲器供用戶使用的只是低128B(地址為:00H~7FH),用于存放可讀寫的數(shù)據(jù),如程序執(zhí)行過程中的變量等。內(nèi)部程序存儲器3AT89C51共有4KB(地址為:0000H~0FFFH)的flash程序存儲器,用于存放程序、原始數(shù)據(jù)或表格常數(shù)。定時/計數(shù)器4AT89C51共有兩個16位的定時/計數(shù)器,每個定時/計數(shù)器都可以設置成計數(shù)方式,用于對外部事件進行計數(shù);也可以設置成定時方式,并可以根據(jù)計數(shù)或定時的結(jié)果實現(xiàn)對單片機運行的控制。并行I/O口5AT89C51共有4個8位的I/O口(P0、P1、P2、P3)。每個8位的口,既可用作輸入口,也可用作輸出口,每個口即可以8位同步讀寫,又可對每一位進行單獨的操作,十分的方便。串行口6AT89C51單片機有一個全雙工的串行接口,實現(xiàn)單片機和其他設備之間的串行數(shù)據(jù)交換。該串行口功能較強,既可作為全雙工異步通信使用,也可作為同步移位器使用。中斷控制系統(tǒng)7AT89C51單片機有較強的中斷系統(tǒng),可以滿足控制應用的需要。AT89C51的中斷系統(tǒng)有5個中斷源,包括兩個外中斷、兩個定時/計數(shù)中斷和一個串行口中斷。時鐘電路8AT89C51芯片的內(nèi)部有時鐘電路,但石英晶體和微調(diào)電容需外接。時鐘電路為單片機產(chǎn)生時鐘脈沖序列。2.1AT89C51單片機的基本結(jié)構(gòu)AT89C51單片機采用40腳雙列直插式的DIP40封裝,還提供較小尺寸表面封裝形式的PQFP/TQFP44,其引腳排列如右圖所示。為使結(jié)構(gòu)更加緊湊,單片機的許多引腳具有雙重功能。封裝引腳功能40個引腳大致可分為4類:電源、時鐘、控制和I/O引腳。AT89C51主電源引腳Vcc和VssVcc:接主電源+5V。Vss:電源接地端GND,是單片機的公共參考地。時鐘電路引腳XTAL1和XTAL2為了產(chǎn)生時鐘信號,在AT89C51內(nèi)部設置了一個反相放大器,XTAL1是片內(nèi)振蕩器反相放大器的輸入端;XTAL2是片內(nèi)振蕩器反相放大器的輸出端,也是內(nèi)部時鐘發(fā)生器的輸入端。當使用自激振蕩方式時,XTAL1和XTAL2外接石英晶振和微調(diào)電容,構(gòu)成穩(wěn)定的自激振蕩器,產(chǎn)生與石英晶振同頻率的時鐘振蕩信號。當使用外部時鐘源時,XTAL1接外部信號源,XTAL2應懸空??刂凭€:控制線共有4根ALE/PROG:地址鎖存允許/片內(nèi)EPROM編程脈沖

①ALE功能:用來鎖存P0口送出的低8位地址

②PROG功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,此引腳輸入編程脈沖。PSEN:外ROM讀選通信號。RST/VPD:復位/備用電源。①RST(Reset)功能:復位信號輸入端。②VPD功能:在Vcc掉電情況下,接備用電源。EA/Vpp:內(nèi)外ROM選擇/片內(nèi)EPROM編程電源。①EA功能:內(nèi)外ROM選擇端。②Vpp功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,施加編程電源Vpp。并行I/O口P0~P4端口引腳MCS-51單片機有4個并行的8位輸入輸出I/O雙向端口,分別是P0~P3,每個并行端口有8個引腳,對應端口的第0位到第7位,每1位可以作為輸入或者輸出單獨操作,因此共有32位的I/O端口。P1~P3口內(nèi)部有上拉電阻,而P0口是漏極開路型端口,沒有內(nèi)部上拉電阻,使用時大多需要外加上拉電阻。P1口其中1位的結(jié)構(gòu)圖P3口還具有第二功能,用于特殊信號輸入輸出和控制信號(屬控制總線)。P3.0——RXD:串行口輸入端;P3.1——TXD:串行口輸出端;P3.2——INT0:外部中斷0請求輸入端;P3.3——INT1:外部中斷1請求輸入端;P3.4——T0:定時/計數(shù)器0外部信號輸入端;P3.5——T1:定時/計數(shù)器1外部信號輸入端;P3.6——WR:外RAM寫選通信號輸出端;P3.7——RD:外RAM讀選通信號輸出端。表2-1P3口的第二功能表端口引腳(DIP40封裝)第二功能P3.010RXD(串行輸入口)P3.111TXD(串行輸出口)P3.212INT0(外部中斷0輸入)P3.313INT1(外部中斷1輸入)P3.414T0(定時/計數(shù)器0的外部計數(shù)輸入)P3.515T1(定時/計數(shù)器1的外部計數(shù)輸入)P3.616WR(外部數(shù)據(jù)存儲器寫脈沖輸出)P3.717RD(外部數(shù)據(jù)存儲器讀脈沖輸出)P3口的第二功能表2.2AT89C51單片機的存儲器配置一般微機通常是程序和數(shù)據(jù)共用一個存儲空間,屬于“馮.諾依曼”(VonNeumann)結(jié)構(gòu)。而單片機的存儲器組織結(jié)構(gòu)則把程序存儲空間和數(shù)據(jù)存儲空間嚴格區(qū)分開來,屬于“哈佛”(Harvard)結(jié)構(gòu)。AT89C51單片機存儲器在物理結(jié)構(gòu)上分成四個存儲空間:片內(nèi)程序存儲器、片外程序存儲器、片內(nèi)數(shù)據(jù)存儲器和片外數(shù)據(jù)存儲器。從用戶使用的角度,即從邏輯上考慮,則有三個存儲空間:片內(nèi)外統(tǒng)一編址的64KB程序存儲器地址空間(0000H~FFFFH)、256B的片內(nèi)數(shù)據(jù)存儲器地址空間(00H~FFH)及片外數(shù)據(jù)存儲器地址空間(0000H~FFFFH)。CPU在訪問三個不同的邏輯空間時,通過采用不同形式的指令,來產(chǎn)生相應的存儲器選通信號。訪問程序存儲器使用MOVC指令、訪問片內(nèi)數(shù)據(jù)存儲器使用MOV指令、訪問片外數(shù)據(jù)存儲器使用MOVX指令2.2.1AT89C51存儲器配置的特點特殊功能寄存器(21個SFR)內(nèi)部RAM128B00H7FH80HFFH外部RAM(64KB)0000HFFFFHWERD外部ROM(60KB)EA=0/1內(nèi)部ROM(4KB)EA=1外部ROM(4KB)EA=0PSEN0000H0FFFH1000HFFFFH89C51單片機內(nèi)部有4K的程序存儲器,0000H~0FFFH;程序從0000H開始;有一些特殊功能的區(qū)域,如中斷入口地址。2.2.2AT89C51的程序存儲器在程序存儲器中,AT89C51定義了6個地址單元用于特殊用途:0000H:CPU復位后,PC=0000H,程序從程序存儲器的0000H單元開始執(zhí)行;0003H:外部中斷0中斷服務程序入口地址;000BH:定時器/計數(shù)器0溢出中斷服務程序的入口地址;0013H:外部中斷1中斷服務程序入口地址;001BH:定時器/計數(shù)器1溢出中斷服務程序的入口地址;0023H:串行口中斷服務程序的入口地址;2.2.2AT89C51的程序存儲器片內(nèi)數(shù)據(jù)存儲器-片內(nèi)RAM

內(nèi)部數(shù)據(jù)存儲器在物理上分為兩個不同的存儲空間:數(shù)據(jù)存儲器空間(低128單元)特殊功能寄存器空間(高128單元)。這兩個空間是相連的。從用戶角度而言,低128單元才是真正的數(shù)據(jù)存儲器。2.2.3AT89C51低128B的片內(nèi)數(shù)據(jù)存儲器低128B的片內(nèi)數(shù)據(jù)存儲器數(shù)據(jù)存儲器由RAM構(gòu)成,一旦掉電,其數(shù)據(jù)將丟失。低128B的數(shù)據(jù)存儲器(地址范圍:00H~7FH)用于存放程序運算的中間結(jié)果的暫存,用作緩存、堆棧等。低128B的數(shù)據(jù)存儲器的存儲器配置如下圖。數(shù)據(jù)存儲器空間(低128單元)按功能劃分為:位尋址區(qū)通用寄存器區(qū)用戶區(qū)2.2.3AT89C51低128B的片內(nèi)數(shù)據(jù)存儲器用戶RAM區(qū)工作寄存器區(qū)位尋址區(qū)00H2FH30H7FH1FH20H工作寄存器3區(qū)工作寄存器2區(qū)工作寄存器1區(qū)工作寄存器0區(qū)07H00H08H0FH10H17H18H1FHAT89C51低128B的片內(nèi)數(shù)據(jù)存儲器2.2.3AT89C51低128B的片內(nèi)數(shù)據(jù)存儲器工作寄存器區(qū):字節(jié)地址:00H~1FH位尋址區(qū):字節(jié)地址:20H~2FH位地址為:00H~7FH數(shù)據(jù)緩沖區(qū)/堆棧區(qū):字節(jié)地址:00H~7FH一般使用30H~7FH片內(nèi)RAM2.2.3AT89C51低128B的片內(nèi)數(shù)據(jù)存儲器工作寄存器區(qū)在低128B的RAM區(qū)中,將地址00H~1FH共32個單元設為工作寄存器區(qū),分為4組,每組由8個單元按序組成通用寄存器R0~R7。

通用寄存器R0~R7不僅用于暫存中間結(jié)果,而且是CPU指令中尋址方式不可缺少的工作單元。任一時刻CPU只能選用一組工作寄存器為當前工作寄存器。CPU復位后,自動選中第0組工作寄存器,即R0的地址為00H、R1的地址為01H、R7的地址為07H。同理當選擇寄存器組1時,R0的地址為08H。可以通過程序?qū)Τ绦驙顟B(tài)字PSW中的RS1、RS0位進行設置,以實現(xiàn)工作寄存器組的切換,對應關(guān)系如下表。表2-2工作寄存器選擇RS1RS0寄存器組片內(nèi)RAM地址00第0組00H~07H01第1組08H~0FH10第2組10H~17H11第3組18H~1FH位尋址區(qū)RAM中的20H~2FH的16個單元除了可作為一般RAM單元進行字節(jié)尋址外,還可進行位尋址,稱作位尋址區(qū)。位尋址區(qū)共有16個RAM單元,合計128位,位地址為00H~7FH。AT89C51單片機具有位處理機(又稱布爾處理機)功能,位處理機的存儲空間就包括這個位尋址區(qū)。下表為位尋址區(qū)的位地址表。2.2.3AT89C51低128B的片內(nèi)數(shù)據(jù)存儲器位尋址區(qū)(20H—2FH)16個字節(jié)。16*8=128位,每一位都有一個位地址,范圍為:00H—7FH,位地址區(qū)也可作為一般RAM使用。用戶RAM區(qū)在30H~7FH區(qū)的80個RAM單元為用戶RAM區(qū),只能按字節(jié)存取。30H~7FH區(qū)是真正的數(shù)據(jù)緩沖區(qū)。由于工作寄存器區(qū)、位尋址區(qū)、數(shù)據(jù)緩沖區(qū)統(tǒng)一編址,使用同樣的指令訪問,這三個區(qū)的單元既有自己獨特的功能,又可統(tǒng)一調(diào)度使用。因此,前兩區(qū)未使用的單元也可用為一般的用戶RAM單元,使容量較小的片內(nèi)RAM得以充分利用。程序設計時,將中間的計算結(jié)果,作為變量存放在該區(qū)域。對這部分區(qū)域的使用不作任何規(guī)定和限制,但應當說明的是,堆棧一般開辟在此區(qū)。2.2.3AT89C51低128B的片內(nèi)數(shù)據(jù)存儲器用戶RAM區(qū)堆棧區(qū)域與堆棧指針SP在應用程序中,往往需要一個后進先出的RAM緩沖區(qū),用于子程序調(diào)用和中斷響應時保護斷點及現(xiàn)場數(shù)據(jù)。這種后進先出的RAM緩沖區(qū)稱之為堆棧。編程時,需要預留足夠的堆棧RAM空間,在RAM中需開辟一個區(qū)域作為堆棧區(qū)。堆棧區(qū)可設在內(nèi)部RAM的00H~7FH的任意區(qū)域,但由于00H~1FH及20H~2FH區(qū)域的特殊作用,堆棧區(qū)一般設在30H~7FH的范圍內(nèi)。習慣上將堆棧設置在靠近7FH的內(nèi)部RAM的頂端。由堆棧指針SP指向棧頂單元,在程序設計時,應對SP初始化來設置堆棧區(qū)。2.2.3AT89C51低128B的片內(nèi)數(shù)據(jù)存儲器關(guān)于堆棧堆棧:是一個特殊的存儲區(qū)域特點:“后進先出”單片機的堆棧是地址增加型,即壓入數(shù)據(jù)時地址指針增加。堆站的操作有壓入:PUSH彈出:POP堆棧操作示意圖利用堆棧將30H單元和31H單元的數(shù)據(jù)交換。假設當前的SP等于60H。解:PUSH30H PUSH31H POP30H POP31H例AT89C51的特殊功能寄存器SFR(高128單元)內(nèi)部RAM的高128單元是給特殊寄存器使用的,因此稱之為專用寄存器區(qū),其單元地址為80H~FFH。因為這些寄存器的功能已作專門規(guī)定,所以稱其為專用寄存器或特殊功能寄存器(SpecialFunctionRegisters)。特殊功能寄存器的總數(shù)為21個,僅占用了80H~FFH中的很小一部分。表中給出了這些特殊功能寄存器的符號、名稱和地址等。特殊功能寄存器SFR占用字節(jié)地址:80H~FFH2.2.4AT89C51的特殊功能寄存器2.2.4AT89C51的特殊功能寄存器2.2.4AT89C51的特殊功能寄存器AT89C51的特殊功能寄存器SFR(高128單元)21個特殊功能寄存器是不連讀地分散在內(nèi)部RAM的高128單元之中,盡管其中還有許多空閑地址,但用戶不能使用。程序計數(shù)器PC是獨立于SFR之外的唯一的一個不可尋址的專用寄存器。PC不占RAM單元,在物理上是獨立存在的。它不包括在21個特殊功能寄存器中。在21個特殊功能寄存器中,有11個寄存器不僅可以字節(jié)尋址,也可以進行位尋址。凡是能進行位尋址的SFR,其特征是字節(jié)地址都能被8整除(字節(jié)地址的末位是0或8)。IP中有3位、IE中有2位、PSW中有一位對用戶無實際意義,所以直接尋址位為82位;再加上數(shù)據(jù)存儲器中的128位,AT89C51共計有210位可尋址位。12341.程序狀態(tài)字寄存器PSWPSW是8位寄存器,用作程序運行狀態(tài)的標志,字節(jié)地址D0H,位地址格式如表2-5所示。P:奇偶標志該位始終跟蹤累加器A的內(nèi)容中1的個數(shù)的奇偶性。如果有奇數(shù)個1,則置P為1,否則P為0。例如,A=01100010B(3個1),則P=1;A=01000010B(2個1),則P=0;在AT89C51的指令系統(tǒng)中,凡是改變累加器A中內(nèi)容的指令均影響奇偶標志位P。F1:用戶標志由用戶置位或復位。OV:溢出標志有符號數(shù)運算時,如果發(fā)生溢出,OV置1,否則清0。對于1字節(jié)的有符號數(shù),如果用最高位表示正、負號,則只有7位有效位,能表示-128~+127之間的數(shù)。如果運算結(jié)果超出了這個數(shù)值范圍,就會發(fā)生溢出,此時,OV=1,否則OV=0。在乘法運算中,OV=1表示乘積超過255;在除法運算中,OV=1表示除數(shù)為0。RS0、RS1:工作寄存器組選擇位選擇當前的工作寄存器組。單片機在復位后,RS0=RS1=0,CPU選中第0組為當前工作寄存器組??衫脭?shù)據(jù)傳送指令或位操作指令來改變RS0和RS1的值,以切換當前選用的工作寄存器組。F0:用戶標志位用法同F(xiàn)1。AC:半進位標志當進行加法(或減法)運算時,如果低半字節(jié)(位3)向高半字節(jié)(位4)有進位(或借位),AC置1,否則清0。AC亦可用于BCD碼調(diào)整時的判別位。CY:進位標志在進行加法(或減法)運算時,如果操作結(jié)果最高位(位7)有進位(或借位),CY置1,否則清0。在進行位操作時,CY又作為位操作累加器C。2.累加器ACC累加器ACC(Accumulator)是8位的寄存器,是最重要的特殊功能寄存器,許多指令的操作數(shù)取自ACC,大部分運算結(jié)果也存放在ACC中。在指令系統(tǒng)中,累加器ACC的助記符記為A,作為直接地址時助記符為ACC。3.寄存器B寄存器B是8位寄存器,主要用于乘法和除法操作指令。對于其他指令,寄存器B可作為一般數(shù)據(jù)寄存器使用。4.堆棧指針SP堆棧指針SP(StackPointer)是一個8位寄存器,用它存放棧頂?shù)牡刂?。進棧時,SP自動加1,將數(shù)據(jù)壓入SP所指向的單元;出棧時,則將SP所指向單元的內(nèi)容彈出,然后SP自動減1。因此,SP總是指向棧頂5.數(shù)據(jù)指針寄存器DPTR由于AT89C51可以外接64KB的數(shù)據(jù)存儲器和I/O接口電路,因此在控制器中設置了一個16位的專用地址指針。它主要用以存放16位地址,作為間址尋址寄存器使用。它可對外部存儲器和I/O口進行尋址。DPTR由高字節(jié)DPH和低字節(jié)DPL兩個獨立的8位寄存器組成,在CPU內(nèi)分別占據(jù)83H和82H兩個地址。6.程序計數(shù)器PC程序計數(shù)器PC(ProgramCounter)是16位專用寄存器,其內(nèi)容就是下一條要執(zhí)行的指令首地址。PC具有自動加1的功能。PC實際上是一個地址指示器,改變PC的內(nèi)容就可以改變指令執(zhí)行的次序,即改變程序執(zhí)行的路線。當系統(tǒng)復位后,PC=0000H,CPU便從這一固定的入口地址0000H開始執(zhí)行程序。PC客觀存在于單片機中,但不在上述的RAM存儲器內(nèi),這意味著不能對PC直接用指令進行讀和寫,是不可尋址的專用寄存器。但可以用跳轉(zhuǎn)等流程控制方式改變PC的值。7.電源控制寄存器PCON電源控制寄存器PCON位于SFR區(qū)的地址87H,不能位尋址,各位的定義如表2-6。8.端口P0~P3特殊功能寄存器P0~P3分別是I/O端口P0~P3的鎖存器。AT89C51單片機是把I/O當作一般的特殊功能寄存器使用,不專設端口操作指令,使用方便。一個單片機的簡單應用系統(tǒng)特殊功能寄存器P0~P3分別是I/O端口P0~P3的鎖存器。AT89C51單片機是把I/O當作一般的特殊功能寄存器使用,不專設端口操作指令,使用方便。當I/O端口某一位用于輸入信號(讀端口)時,對應的鎖存器必須先置1。例如在例1-1中P32作為輸入端口,在判斷P32狀態(tài)前必須先將P32置1。P32=1; //P32作為輸入端口必須先置1if(P32==0){ //P32是低電平?如果S1按下,P32為低

P20=1; //S1按下,則P20輸出高電平,報警燈亮}else{ //如果S1沒有按下

P20=0; //則P20輸出低電平,報警燈滅}AT89C51的片外數(shù)據(jù)存儲器外部數(shù)據(jù)存儲器又稱外部RAM,當片內(nèi)RAM的容量不能滿足要求時,可通過總線端口和其他I/O口擴展外部數(shù)據(jù)RAM,其最大容量可達64K字節(jié)。外部數(shù)據(jù)存儲器和內(nèi)部數(shù)據(jù)存儲器的功能基本相同,但外部數(shù)據(jù)存儲器不能用于堆棧操作,對外部外部數(shù)據(jù)存儲器的訪問只能使用間接尋址方式。2.2.5AT89C51的片外數(shù)據(jù)存儲器內(nèi)部RAM128B特殊功能寄存器(21個SFR)00H7FH80HFFH外部RAM(64KB)0000HFFFFHWERD外部ROM(60KB)EA=0/1內(nèi)部ROM(4KB)EA=1外部ROM(4KB)EA=0PSEN0000H0FFFH1000HFFFFHAT89C52的存儲器配置AT89C52相當于MCS-51單片機中的52子系列,與51子系列的AT89C51相比,片內(nèi)的程序存儲器flashROM增加到了8KB,片內(nèi)的數(shù)據(jù)存儲器增加了128B。AT89C52的存儲器結(jié)構(gòu)如圖所示。外部ROM(56KB)EA=0/1內(nèi)部ROM(8KB)EA=1外部ROM(8KB)EA=0PSEN0000H1FFFH2000HFFFFH特殊功能寄存器(27個SFR)內(nèi)部RAM低128B00H7FH80HFFH內(nèi)部RAM高128B內(nèi)部數(shù)據(jù)存儲器內(nèi)、外程序存儲器2.2.6AT89C52的存儲器配置AT89C51的存儲器配置小結(jié)從物理上分,AT89C51的存儲器有4個存儲空間:片內(nèi)程序存儲器、片外程序存儲器、片內(nèi)數(shù)據(jù)存儲器和片外數(shù)據(jù)存儲器。從邏輯上分,AT89C51有3個存儲器地址空間:片內(nèi)外統(tǒng)一的64KB的程序存儲器地址空間、256B的內(nèi)部數(shù)據(jù)存儲器地址空間(其中128B的專用寄存器地址空間,僅有部分字節(jié)有實際意義)和64KB的外部數(shù)據(jù)存儲器地址空間。為了區(qū)分不同的存儲器空間,在用指令訪問這三個不同的邏輯空間時采用了不同形式的指令。AT89C51的片內(nèi)集成有一定容量的程序存儲器4K和數(shù)據(jù)存儲器(128B)。當然,還可以根據(jù)需要對存儲器進行外部擴展。

2.3AT89C51的時鐘電路與CPU時序晶體振蕩器時鐘方式利用芯片內(nèi)部的振蕩器,然后在引腳XTAL1和XTAL2兩端跨接晶體振蕩器(簡稱晶振),就構(gòu)成了穩(wěn)定的自激振蕩器。外接晶振通常為石英晶體振蕩器或振蕩器。使用石英晶體振蕩器時,C1和C2的值為30pF左右;選用晶振的頻率也就是單片機的時鐘頻率,AT89C51最高時鐘頻率可達到24MHz。晶振和電容要盡可能安裝得與單片機引腳XTAL1和XTAL2靠近。XTAL1XTAL2AT89C51C1C2

2.3AT89C51的時鐘電路與CPU時序外部時鐘方式

從單片機外部直接引入振蕩時鐘脈沖。振蕩時鐘脈沖從AT89C51的XTAL1輸入,XTAL2應懸空。XTAL1XTAL2AT89C51懸空外部時鐘CPU時序單片機的時序是指CPU在執(zhí)行指令時所需控制信號的時間順序。時序信號是以時鐘脈沖為基準產(chǎn)生的。CPU發(fā)出的時序信號有兩類:一類用于片內(nèi)各功能部件的控制,由于這類信號在CPU內(nèi)部使用,用戶無須了解;另一類信號通過單片機的引腳送到外部,用于片外存儲器或I/O端口的控制,這類時序信號對單片機系統(tǒng)的硬件設計非常重要。時鐘周期也稱為振蕩周期,定義為時鐘脈沖頻率(fosc)的倒數(shù),是計算機中最基本的、最小的時間單位。對同一種機型的計算機,時鐘頻率越高,計算機的工作速度就越快,但是,由于不同的計算機硬件電路和器件不完全相同,所以其所要求的時鐘頻率范圍也不一定相同。時鐘周期完成一個基本操作所需要的時間稱為機器周期。AT89C51有固定的機器周期,規(guī)定一個機器周期就有12個時鐘周期,也就是說一個機器周期共包含12個振蕩脈沖,即機器周期就是振蕩脈沖的12分頻,顯然,如果使用6MHz的時鐘頻率,一個機器周期就是2μs,而如果使用12MHz的時鐘頻率,一個機器周期就是1μs。機器周期指令周期是執(zhí)行一條指令所需要的時間一般由若干個機器周期組成,指令不同,所需要的機器周期數(shù)也不同。對于一些簡單的單字節(jié)指令,在取指令周期中,指令取出到指令寄存器后,立即譯碼執(zhí)行,不再需要其他的機器周期。對于一些比較復雜的指令,例如,

溫馨提示

  • 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

提交評論