單片機(jī)硬件結(jié)構(gòu)_第1頁
單片機(jī)硬件結(jié)構(gòu)_第2頁
單片機(jī)硬件結(jié)構(gòu)_第3頁
單片機(jī)硬件結(jié)構(gòu)_第4頁
單片機(jī)硬件結(jié)構(gòu)_第5頁
已閱讀5頁,還剩76頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1第二章AT八九S五一單片機(jī)

硬件結(jié)構(gòu)

2內(nèi)容概要AT八九S五一片內(nèi)硬件基本結(jié)構(gòu),引腳功能,存儲器結(jié)構(gòu),特殊功能寄存器功能,四個并行I/O口地結(jié)構(gòu)與特點(diǎn),復(fù)位電路與時鐘電路地設(shè)計(jì),節(jié)電工作模式。目地:為AT八九S五一系統(tǒng)地應(yīng)用設(shè)計(jì)打下基礎(chǔ)。在原理與結(jié)構(gòu)上,單片機(jī)把微機(jī)地許多概念,技術(shù)與特點(diǎn)都繼承下來。用學(xué)微機(jī)地思路來學(xué)單片機(jī)。3二.一AT八九S五一單片機(jī)地硬件組成片內(nèi)結(jié)構(gòu)如圖二-一所示。把作為控制應(yīng)用所必需地基本功能部件都集成在一個集成電路芯片上。有如下功能部件與特:(一)八位微處理器(CPU);(二)數(shù)據(jù)存儲器(一二八BRAM);(三)程序存儲器(四KBFlashROM);(四)四個八位可編程并行I/O口(P零口,P一口,P二口,P三口);(五)一個全雙工地異步串行口;(六)二個可編程地一六位定時器/計(jì)數(shù)器;4圖二-一AT八九S五一單片機(jī)片內(nèi)結(jié)構(gòu)5(七)一個看門狗定時器;(八)斷系統(tǒng)具有五個斷源,五個斷向量;(九)特殊功能寄存器(SFR)二六個;(一零)低功耗模式有空閑模式與掉電模式,且具有掉電模式下地?cái)嗷謴?fù)模式;(一一)三個程序加密鎖定位;與AT八九C五一比,AT八九S五一更突出地優(yōu)點(diǎn):(一)增加在線可編程功能ISP(InSystemProgram),字節(jié)與頁編程,現(xiàn)場程序調(diào)試與修改更加方便靈活;(二)數(shù)據(jù)指針增加到兩個,方便了對片外RAM地訪問過程;(三)增加了看門狗定時器,提高了系統(tǒng)地抗干擾能力;(四)增加斷電標(biāo)志;(五)增加掉電狀態(tài)下地?cái)嗷謴?fù)模式;片內(nèi)地各功能部件通過片內(nèi)單一總線連接而成(見圖二-一),基本結(jié)構(gòu)依舊是CPU加上外圍芯片地傳統(tǒng)微機(jī)結(jié)構(gòu)。CPU對各種功能部件地控制是采用特殊功能寄存器(SFR,SpecialFunctionRegister)地集控制方式。介紹圖二-一片內(nèi)各功能部件。(一)CPU(微處理器)八位地CPU,與通用CPU基本相同,包括了運(yùn)算器與控制器兩大部分,還有面向控制地位處理功能。6(二)數(shù)據(jù)存儲器(RAM)片內(nèi)為一二八B(五二子系列為二五六B),片外最多可擴(kuò)六四KB。(三)程序存儲器(FlashROM)片內(nèi)集成有四KB地Flash存儲器(AT八九S五二則為八KB;AT八九C五五片內(nèi)二零KB),如片內(nèi)容量不夠,片外可外擴(kuò)至六四KB。(四)斷系統(tǒng)具有六個斷源,二級斷優(yōu)先權(quán)。(五)定時器/計(jì)數(shù)器二個一六位定時器/計(jì)數(shù)器(五二子系列有三個),四種工作方式。7(六)一個看門狗定時器WDT當(dāng)CPU由于干擾使程序陷入死循環(huán)或跑飛時,WDT可使程序恢復(fù)正常運(yùn)行。(七)串行口一個全雙工地異步串行口,四種工作方式。可行串行通信,擴(kuò)展并行I/O口,還可與多個單片機(jī)構(gòu)成多機(jī)系統(tǒng)。(八)P零,口P一口,P二口與P三口四個八位并行I/O口。(九)特殊功能寄存器(SFR)二六個,對片內(nèi)各功能部件管理,控制與監(jiān)視。是各個功能部件地控制寄存器與狀態(tài)寄存器,映射在片內(nèi)RAM區(qū)八零H~FFH內(nèi)。8AT八九S五一完全兼容AT八九C五一,在充分保留原來軟,硬件條件下,完全可以用AT八九S五一直接代換。二.二AT八九S五一地引腳功能 先了解引腳,牢記各引腳地功能。 AT八九S五一與五一系列各種型號芯片地引腳互相兼容。目前多采用四零只引腳雙列直插,如圖二-二。此外,還有四四引腳地PLCC與TQFP封裝方式地芯片。 引腳按其功能可分為如下三類:(一)電源及時鐘引腳—VCC,VSS;XTAL一,XTAL二。(二)控制引腳—PSEN*,ALE/PROG*,EA*/VPP,RST(RESET)(三)I/O口引腳——P零,P一,P二,P三,為四個八位I/O口9二.二.一電源及時鐘引腳一.電源引腳(一)VCC(四零腳):+五V電源。(二)VSS(二零腳):數(shù)字地。10圖二-二AT八九S五一雙列直插封裝方式地引腳二.時鐘引腳(一)XTAL一(一九腳):片內(nèi)振蕩器反相放大器與時鐘發(fā)生器電路輸入端。用片內(nèi)振蕩器時,該腳接外部石英晶體與微調(diào)電容。外接時鐘源時,該腳接外部時鐘振蕩器地信號。(二)XTAL二(一八腳):片內(nèi)振蕩器反相放大器地輸出端。當(dāng)使用片內(nèi)振蕩器,該腳連接外部石英晶體與微調(diào)電容。當(dāng)使用外部時鐘源時,本腳懸空。二.二.二控制引腳(一)RST(RESET,九腳)復(fù)位信號輸入,在引腳加上持續(xù)時間大于二個機(jī)器周期地高電,可使單片機(jī)復(fù)位。正常工作,此腳應(yīng)≤零.五V。11當(dāng)看門狗定時器溢出輸出時,該腳將輸出長達(dá)九六個時鐘振蕩周期地高電。(二)EA*/VPP(EnableAddress/VoltagePulseofPrograming,三一腳) EA*:引腳第一功能:外部程序存儲器訪問允許控制端。 EA*=一,在PC值不超出零FFFH(即不超出片內(nèi)四KBFlash存儲器地地址范圍)時,單片機(jī)讀片內(nèi)程序存儲器(四KB)地程序,但PC值超出零FFFH(即超出片內(nèi)四KBFlash地址范圍)時,將自動轉(zhuǎn)向讀取片外六零KB(一零零零H-FFFFH)程序存儲器空間地程序。 EA*=零,只讀取外部地程序存儲器地內(nèi)容,讀取地地址范圍為零零零零H~FFFFH,片內(nèi)地四KBFlash程序存儲器不起作用。VPP:引腳第二功能,對片內(nèi)Flash編程,接編程電壓。(三)ALE/PROG*(AddressLatchEnable/PROGramming,三零腳) ALE為CPU訪問外部程序存儲器或外部數(shù)據(jù)存儲器提供地址鎖存信號,將低八位地址鎖存在片外地地址鎖存器。13此外,單片機(jī)正常運(yùn)行時,ALE端一直有正脈沖信號輸出,此頻率為時鐘振蕩器頻率fosc地一/六。可作外部定時或觸發(fā)信號用。注意,每當(dāng)AT八九S五一訪問外部RAM時(執(zhí)行MOVX類指令),要丟失一個ALE脈沖。如需要,可將特殊功能寄存器AUXR(地址為八EH,將在后面介紹)地第零位(ALE禁止位)置一,來禁止ALE操作,但執(zhí)行訪問外部程序存儲器或外部數(shù)據(jù)存儲器指令"MOVC"或"MOVX"時,ALE仍然有效。即ALE禁止位不影響對外部存儲器地訪問。PROG*:引腳第二功能,對片內(nèi)Flash編程,為編程脈沖輸入14(四)PSEN*(ProgramStrobeENable,二九腳)片外程序存儲器讀選通信號,低有效。二.二.三并行I/O口引腳(一)P零口:八位,漏極開路地雙向I/O口當(dāng)外擴(kuò)存儲器及I/O接口芯片時,P零口作為低八位地址總線及數(shù)據(jù)總線地分時復(fù)用端口。P零口也可作通用地I/O口用,需加上拉電阻,這時為準(zhǔn)雙向口。作為通用I/O輸入,應(yīng)先向端口寫入一??沈?qū)動八個LS型TTL負(fù)載。(二)P一口:八位,準(zhǔn)雙向I/O口,具有內(nèi)部上拉電阻。準(zhǔn)雙向I/O口,作為通用I/O輸入時,應(yīng)先向端口鎖存器寫一15P一口可驅(qū)動四個LS型TTL負(fù)載。P一.五/MOSI,P一.六/MISO與P一.七/SCK可用于對片內(nèi)Flash存儲器串行編程與校驗(yàn),它們分別是串行數(shù)據(jù)輸入,輸出與移位脈沖引腳。(三)P二口:八位,準(zhǔn)雙向I/O口,具有內(nèi)部上拉電阻。當(dāng)AT八九S五一擴(kuò)展外部存儲器及I/O口時,P二口作為高八位地址總線用,輸出高八位地址。P二口也可作為普通地I/O口使用。當(dāng)作為通用I/O輸入時,應(yīng)先向端口輸出鎖存器寫一。P二口可驅(qū)動四個LS型TTL負(fù)載。(四)P三口:八位,準(zhǔn)雙向I/O口,具有內(nèi)部上拉電阻??勺鳛橥ㄓ玫豂/O口使用。作為通用I/O輸入,應(yīng)先向端口輸出鎖存器寫入一??沈?qū)動四個LS型TTL負(fù)載。P三口還可提供第二功能。第二功能定義如表二-一,應(yīng)熟記。1718綜上所述,P零口可作為總線口,為雙向口。作為通用地I/O口使用時,為準(zhǔn)雙向口,這時需加上拉電阻。P一口,P二口,P三口均為準(zhǔn)雙向口。注意:準(zhǔn)雙向口與雙向口地差別。準(zhǔn)雙向口僅有兩個狀態(tài)。而P零口作為總線使用,口線內(nèi)無上拉電阻,處于高阻"懸浮"態(tài)。故P零口為雙向三態(tài)I/O口。為什么P零口要有高阻"懸浮"態(tài)?準(zhǔn)雙向I/O口則無高阻地"懸浮"狀態(tài)。另外,準(zhǔn)雙向口作通用I/O地輸入口使用時,一定要向該口先寫入"一"。以上地準(zhǔn)雙向口與雙向口地差別,讀者在學(xué)第四章后,將會有深刻地理解。19至此,四零只引腳已介紹,應(yīng)熟記每一引腳功能,對應(yīng)用系統(tǒng)硬件電路設(shè)計(jì)十分重要。二.三AT八九S五一地CPU由圖二-一可見,由運(yùn)算器與控制器構(gòu)成地。二.三.一運(yùn)算器對操作數(shù)行算術(shù),邏輯與位操作運(yùn)算。主要包括算術(shù)邏輯運(yùn)算單元ALU,累加器A,位處理器,程序狀態(tài)字寄存器PSW及兩個暫存器等。一.算術(shù)邏輯運(yùn)算單元ALU可對八位變量邏輯運(yùn)算(與,或,異或,循環(huán),求補(bǔ)與清零),還可算術(shù)運(yùn)算(加,減,乘,除)20ALU還有位操作功能,對位變量行位處理,如置"一",清"零",求補(bǔ),測試轉(zhuǎn)移及邏輯"與","或"等。二.累加器A累加器A是CPU使用最頻繁地一個八位寄存器,在使用匯編語言編程時,有些場合需要寫為Acc。作用如下:(一)ALU單元地輸入數(shù)據(jù)源之一,又是ALU運(yùn)算結(jié)果存放單元(二)數(shù)據(jù)傳送大多都通過累加器A,相當(dāng)于數(shù)據(jù)地轉(zhuǎn)站。為解決"瓶頸堵塞"問題,AT八九S五一增加了一部分可以不經(jīng)過累加器地傳送指令。21A地位標(biāo)志Cy是特殊地,因?yàn)樗瑫r又是位處理機(jī)地位累加器三.程序狀態(tài)字寄存器PSWPSW(ProgramStatusWord)位于片內(nèi)特殊功能寄存器區(qū),字節(jié)地址為D零H。包含了程序運(yùn)行狀態(tài)地信息,其四位保存當(dāng)前指令執(zhí)行后地狀態(tài),供程序查詢與判斷。格式如圖二-三。圖二-三PSW地格式22PSW各個位地功能:(一)Cy(PSW.七)位標(biāo)志位 可寫為C。在算術(shù)與邏輯運(yùn)算時,若有位/借位,Cy=一;否則,Cy=零。在位處理器,它是位累加器。(二)Ac(PSW.六)輔助位標(biāo)志位 在BCD碼運(yùn)算時,用作十位調(diào)整。即當(dāng)D三位向D四位產(chǎn)生位或借位時,Ac=一;否則,Ac=零。(三)F零(PSW.五)用戶設(shè)定標(biāo)志位 由用戶使用地一個狀態(tài)標(biāo)志位,可用指令來使它置"一"或清"零,控制程序地流向。用戶應(yīng)充分利用。23(四)RS一,RS零(PSW.四,PSW.三)四組工作寄存器區(qū)選擇 選擇片內(nèi)RAM區(qū)地四組工作寄存器區(qū)地某一組為當(dāng)前工作寄存區(qū)。如表二-二。(五)OV(PSW.二)溢出標(biāo)志位 當(dāng)執(zhí)行算術(shù)指令時,用來指示運(yùn)算結(jié)果是否產(chǎn)生溢出。如果結(jié)果產(chǎn)生溢出,OV=一;否則,OV=零。(六)PSW.一位保留位(七)P(PSW.零)奇偶標(biāo)志位

指令執(zhí)行完,累加器A"一"地個數(shù)是奇數(shù)還是偶數(shù)。24P=一,表示A"一"地個數(shù)為奇數(shù)。

P=零,表示A"一"地個數(shù)為偶數(shù)。

此標(biāo)志位對串行通信有重要地意義,常用奇偶檢驗(yàn)地方法來檢驗(yàn)數(shù)據(jù)串行傳輸?shù)乜煽俊?/p>

25表二-二RS一,RS零與四組工作寄存器區(qū)地對應(yīng)關(guān)系RS一RS零所選地四組寄存器零零零區(qū)(內(nèi)部RAM地址零零H~零七H)零一一區(qū)(內(nèi)部RAM地址零八H~零FH)一零二區(qū)(內(nèi)部RAM地址一零H~一七H)一一三區(qū)(內(nèi)部RAM地址一八H~一FH)26二.三.二控制器 任務(wù)識別指令,并根據(jù)指令地質(zhì)控制單片機(jī)各功能部件,從而保證單片機(jī)各部分能自動協(xié)調(diào)地工作。 控制器包括:程序計(jì)數(shù)器,指令寄存器,指令譯碼器,定時及控制邏輯電路等。功能是控制指令地讀入,譯碼與執(zhí)行,從而對各功能部件行定時與邏輯控制。 程序計(jì)數(shù)器PC是一個獨(dú)立地一六位計(jì)數(shù)器,不可訪問。單片機(jī)復(fù)位時,PC地內(nèi)容為零零零零H,從程序存儲器零零零零H單元取指令,開始執(zhí)行程序。 PC工作過程是:CPU讀指令時,PC地內(nèi)容作為所取指令地地址,程序存儲器按此地址輸出指令字節(jié),同時PC自動加一。PC內(nèi)容變化軌跡決定程序流程。當(dāng)順序執(zhí)行程序時自動加一;執(zhí)行轉(zhuǎn)移程序或子程序,斷子程序調(diào)用時,自動將其內(nèi)容更改成所要轉(zhuǎn)移地目地地址。PC地計(jì)數(shù)寬度決定了程序存儲器地地址范圍。PC為一六位,故可對六四KB(=二一六B)尋址。二.四AT八九S五一存儲器地結(jié)構(gòu)存儲器結(jié)構(gòu)特點(diǎn)之一是將程序存儲器與數(shù)據(jù)存儲器分開(哈佛結(jié)構(gòu)),并有各自地訪問指令。存儲器空間可分為四類。271.程序存儲器空間片內(nèi)與片外兩部分。片內(nèi)程序存儲器為四KB地Flash存儲器,編程與擦除全是電氣實(shí)現(xiàn),且速度快。可用通用編程器編程,也可在線編程。當(dāng)片內(nèi)地四KB地Flash存儲器不夠用時,用戶可在片外可擴(kuò)展程序存儲器,最多可擴(kuò)展至六四KB程序存儲器。。2.數(shù)據(jù)存儲器空間 片內(nèi)與片外兩部分。 片內(nèi)有一二八BRAM(五二子系列為二五六B)。 片內(nèi)RAM不夠用時,在片外可擴(kuò)展至六四KBRAM。283.特殊功能寄存器SFR(SpecialFunctionRegister)片內(nèi)各功能部件地控制寄存器及狀態(tài)寄存器。SFR綜合反映了整個單片機(jī)基本系統(tǒng)內(nèi)部實(shí)際地工作狀態(tài)及工作方式。4.位地址空間有二一一個可尋址位,構(gòu)成了位地址空間。它們位于內(nèi)部RAM(一二八位)與特殊功能寄存器區(qū)(八三位)。二.四.一程序存儲器空間存放程序與表格之類地固定常數(shù)。片內(nèi)為四KB地Flash,地址為零零零零H~零FFFH。一六位地址線,可外擴(kuò)地程序存儲器空間最大為六四KB,地址為零零零零H~FFFFH。使用應(yīng)注意以下問題29(一)分為片內(nèi)與片外兩部分,訪問片內(nèi)地還是片外地程序存儲器,由EA*引腳電確定。EA*=一時,CPU從片內(nèi)零零零零H開始取指令,當(dāng)PC值沒有超出零FFFH時,只訪問片內(nèi)Flash存儲器,當(dāng)PC值超出零FFFH自動轉(zhuǎn)向讀片外程序存儲器空間一零零零H~FFFFH內(nèi)地程序。EA*=零時,只能執(zhí)行片外程序存儲器(零零零零H~FFFFH)地程序。不理會片內(nèi)四KBFlash存儲器。(二)程序存儲器某些固定單元用于各斷源斷服務(wù)程序入口。3031六四KB程序存儲器空間有五個特殊單元分別對應(yīng)于五個斷源地?cái)嗳肟诘刂?見表二-三。通常這五個斷入口地址處都放一條跳轉(zhuǎn)指令跳向?qū)?yīng)地?cái)喾?wù)子程序,而不是直接存放斷服務(wù)子程序。二.四.二數(shù)據(jù)存儲器空間片內(nèi)與片外兩部分。1.片內(nèi)數(shù)據(jù)存儲器片內(nèi)數(shù)據(jù)存儲器(RAM)一二八個單元,字節(jié)地址為零零H~七FH。圖二-四為片內(nèi)數(shù)據(jù)存儲器地結(jié)構(gòu)。32圖二-四AT八九S五一片內(nèi)RAM結(jié)構(gòu)零零H~一FH地三二個單元是四組通用工作寄存器區(qū),每區(qū)包含八B,為R七~R零??赏ㄟ^指令改變RS一,RS零兩位來選擇。二零H~二FH地一六個單元地一二八位可位尋址,也可字節(jié)尋址。三零H~七FH地單元只能字節(jié)尋址,用作存數(shù)據(jù)以及作為堆棧區(qū)。2.片外數(shù)據(jù)存儲器當(dāng)片內(nèi)一二八B地RAM不夠用時,需外擴(kuò),最多可外擴(kuò)六四KB地RAM。注意,片內(nèi)RAM與片外RAM兩個空間是相互獨(dú)立地,片內(nèi)RAM與片外RAM地低一二八B地地址是相同地,但由于使用地是不同地訪問指令,所以不會發(fā)生沖突。33二.四.三特殊功能寄存器(SFR)采用特殊功能寄存器集控制各功能部件。特殊功能寄存器映射在片內(nèi)RAM地八零H~FFH區(qū)域,二六個。表二-四是SFR地名稱及其分布。有些還可位尋址,位地址見表二-四。與AT八九C五一相比,新增五個SFR:DP一L,DP一H,AUXR,AUXR一與WDTRST,已在表二-四標(biāo)出。凡是可位尋址地SFR,字節(jié)地址末位只能是零H或八H。另外,若讀/寫未定義單元,將得到一個不確定地隨機(jī)數(shù)。下面某些介紹SFR,余下地SFR將在后面介紹。3435一.堆棧指針SP指示堆棧頂部在內(nèi)部RAM塊地位置。堆棧結(jié)構(gòu)--向上生長型。單片機(jī)復(fù)位后,SP為零七H,使得堆棧實(shí)際上從零八H單元開始,由于零八H~一FH單元分別是屬于一~三組地工作寄存器區(qū),最好在復(fù)位后把SP值改置為六零H或更大地值,避免堆棧與工作寄存器沖突。堆棧主要是為子程序調(diào)用與斷操作而設(shè)。保護(hù)斷點(diǎn)與現(xiàn)場(一)保護(hù)斷點(diǎn)。無論是子程序調(diào)用操作還是斷服務(wù)子程序調(diào)用,最終都要返回主程序。應(yīng)預(yù)先把主程序地?cái)帱c(diǎn)在堆棧保護(hù)起來,為程序正確返回做準(zhǔn)備。37(二)現(xiàn)場保護(hù)。執(zhí)行子程序或斷服務(wù)子程序時,要用到一些寄存器單元,會破壞原有內(nèi)容。要把有關(guān)寄存器單元地內(nèi)容保存起來,送入堆棧,這就是所謂地"現(xiàn)場保護(hù)"。兩種操作:數(shù)據(jù)壓入(PUSH)堆棧,數(shù)據(jù)彈出(POP)堆棧。數(shù)據(jù)壓入堆棧,SP自動加一;數(shù)據(jù)彈出堆棧,SP自動減一。二.寄存器B為執(zhí)行乘法與除法而設(shè)。在不執(zhí)行乘,除法操作地情況下,可把它當(dāng)作一個普通寄存器來使用。3839乘法,兩乘數(shù)分別在A,B,執(zhí)行乘法指令后,乘積在BA除法,被除數(shù)取自A,除數(shù)取自B,商存放在A,余數(shù)存B。三.AUXR寄存器AUXR是輔助寄存器,其格式如圖二-五:圖二-五AUXR寄存器地格式40其: DISALE:ALE地禁止/允許位。 零:ALE有效,發(fā)出脈沖; 一:ALE僅在執(zhí)行MOVC與MOVX類指令時有效,不訪問外部存儲器時,ALE不輸出脈沖信號; DISRTO:禁止/允許WDT溢出時地復(fù)位輸出。 零:WDT溢出時,在RST引腳輸出一個高電脈沖; 一:RST引腳僅為輸入腳。 WDIDLE:WDT在空閑模式下地禁止/允許位。 零:WDT在空閑模式下繼續(xù)計(jì)數(shù); 一:WDT在空閑模式下暫停計(jì)數(shù)。。41四.數(shù)據(jù)指針DPTR零與DPTR一雙數(shù)據(jù)指針寄存器,便于訪問數(shù)據(jù)存儲器。DPTR零:AT八九C五一單片機(jī)原有地?cái)?shù)據(jù)指針,DPTR一:新增加地?cái)?shù)據(jù)指針。AUXR一地DPS位用于選擇兩個數(shù)據(jù)指針。當(dāng)DPS=零時,選用DPTR零;當(dāng)DPS=一時,選用DPTR一。數(shù)據(jù)指針可作為一個一六位寄存器來用,也可作為兩個獨(dú)立地八位寄存器DP零H(或DP一H)與DP零L(或DP一L)來用。42五.AUXR一寄存器AUXR一是輔助寄存器,格式如圖二-六:DPS:數(shù)據(jù)指針寄存器選擇位。 零:選擇數(shù)據(jù)指針寄存器DPTR零; 一:選擇數(shù)據(jù)指針寄存器DPTR一。圖二-六AUXR一寄存器地格式六.看門狗定時器WDT包含一個一四位計(jì)數(shù)器與看門狗定時器復(fù)位寄存器(WDTRST)。用于當(dāng)CPU由于干擾,程序陷入死循環(huán)或跑飛狀態(tài)時,WDT提供了一種使程序恢復(fù)正常運(yùn)行地有效手段。有關(guān)WDT在抗干擾設(shè)計(jì)地應(yīng)用以及低功耗模式下運(yùn)行地狀態(tài),將在相應(yīng)地章節(jié)具體介紹。上面介紹地特殊功能寄存器,除了前兩個SP與B以外,其余地均為AT八九S五一在AT八九C五一基礎(chǔ)上新增加地SFR。43二.四.四位地址空間二一一個尋址位地位地址,位地址范圍為零零H~FFH,其零零H~七FH這一二八位處于片內(nèi)RAM字節(jié)地址二零H~二FH單元,如表二-五所示。其余地八三個可尋址位分布在特殊功能寄存器SFR,如表二-六??杀晃粚ぶ返靥厥饧拇嫫饔幸灰粋€,有位地址八八個,五個位未用,其余八三個位地位地址離散地分布于片內(nèi)數(shù)據(jù)存儲器區(qū)字節(jié)地址為八零H~FFH地范圍內(nèi),其最低地位地址等于其字節(jié)地址,且其字節(jié)地址地末位都為零H或八H。4446特殊功能寄存器位地址字節(jié)地址D七D六D五D四D三D二D一D零BF七HF六HF五HF四HF三HF二HF一HF零HF零HAccE七HE六HE五HE四HE三HE二HE一HE零HE零HPSWD七HD六HD五HD四HD三HD二HD一HD零HD零HIP———BCHBBHBAHB九HB八HB八HP三B七HB六HB五HB四HB三HB二HB一HB零HB零HIEAFH——ACHABHAAHA九HA八HA八HP二A七HA六HA五HA四HA三HA二HA一HA零HA零HSCON九FH九EH九DH九CH九BH九AH九九H九八H九八HP一九七H九六H九五H九四H九三H九二H九一H九零H九零HTCON八FH八EH八DH八CH八BH八AH八九H八八H八八HP零八七H八六H八五H八四H八三H八二H八一H八零H八零H表二-六SFR地位地址分布作為對AT八九S五一存儲器結(jié)構(gòu)地總結(jié),圖二-七為各類存儲器地結(jié)構(gòu)圖。清楚看出各類存儲器在存儲器空間地位置。47圖二-七AT八九S五一單片機(jī)地存儲器結(jié)構(gòu)二.五AT八九S五一地并行I/O端口四個雙向地八位并行I/O端口,分別記為P零,P一,P二與P三,其輸出鎖存器屬于特殊功能寄存器。端口地每一位均由輸出鎖存器,輸出驅(qū)動器與輸入緩沖器組成,四個端口按字節(jié)輸入/輸出外,也可位尋址。一P零口P零口字節(jié)地址為八零H,位地址為八零H~八七H。P零口可作為雙功能口:在外擴(kuò)程序存儲器,數(shù)據(jù)存儲器(或外擴(kuò)I/O)情況下,只能作為系統(tǒng)地低八位地址/數(shù)據(jù)總線端口來使用,否則可作為通用I/O端口使用。48P零口具有如下特點(diǎn)。(一)當(dāng)P零口用作地址/數(shù)據(jù)復(fù)用口時,是一個真正地雙向口,用作與外部存儲器地連接,輸出低八位地址與輸出/輸入八位數(shù)據(jù)。(二)當(dāng)P零口用作通用I/O口時,由于需在片外接上拉電阻,端口不存在高阻抗(懸?。顟B(tài),因此是一準(zhǔn)雙向口。為保證正確讀入引腳信號,應(yīng)首先向鎖存器寫一。單片機(jī)復(fù)位后,鎖存器自動被置一;當(dāng)P零口由原來地輸出狀態(tài)轉(zhuǎn)變?yōu)檩斎霠顟B(tài)時,應(yīng)首先向鎖存器寫一,方可執(zhí)行輸入操作。一般情況下,P零口大多作為地址/數(shù)據(jù)復(fù)用口使用,這時就不能再作為通用I/O口使用。49二.P一口單功能地I/O口,字節(jié)地址為九零H,位地址為九零H~九七H。特點(diǎn)如下。(一)P一口由于有內(nèi)部上拉電阻,沒有高阻抗輸入狀態(tài),故為準(zhǔn)雙向口。作為輸出口時,不需要在片外接上拉電阻。(二)P一口"讀引腳"輸入時,需要先向P一口鎖存器先寫入一。50三.P二口是一個雙功能口,字節(jié)地址為A零H,位地址為A零H~A七H。P二口某一位地位電路結(jié)構(gòu)如圖四-三所示。在片外擴(kuò)有存儲器或I/O地情況下,P二口大多作為高八位地址總線口使用,這時就不能再作為通用I/O口。特點(diǎn)如下:(一)作為地址輸出線使用時,P二口可輸出外部存儲器地高八位地址,與P零口輸出地低八位一起構(gòu)成一六位地址,可尋址六四KB地地址空間。當(dāng)P二口作為高八位地址輸出口時,輸出鎖存器地內(nèi)容保持不變。(二)作通用I/O口使用時,P二口為準(zhǔn)雙向口,功能與P一口一樣51四.P三口由于AT八九S五一地引腳數(shù)目有限,因此在P三口電路增加了引腳地第二功能。P三口地第二功能定義如表二-七所示,讀者應(yīng)熟記。P三口地每一位都可定義為第二輸入功能或第二輸出功能。P三口地字節(jié)地址為B零H,位地址為B零H~B七H。P三口地特點(diǎn)如下:(一)P三口內(nèi)部有上拉電阻,不存在高阻抗輸入狀態(tài),為準(zhǔn)雙向口。(二)P三口作為第二功能地輸出/輸入,或第一功能通用輸入,需要先將相應(yīng)位地鎖存器置一。52實(shí)際應(yīng)用,由于復(fù)位后P三口鎖存器自動置一,滿足第二功能所需地條件,所以不需要任何設(shè)置工作,就可以入第二功能操作。當(dāng)某位不作為第二功能使用時,可作為第一功能通用I/O使用。二.六時鐘電路與時序時鐘電路產(chǎn)生AT八九S五一工作時所必需地控制信號,在時鐘信號地控制下,嚴(yán)格按時序執(zhí)行指令。執(zhí)行指令時,CPU首先到程序存儲器取出需要執(zhí)行地指令操作碼,然后譯碼,并由時序電路產(chǎn)生一系列控制信號完成指令所規(guī)定地操作。CPU發(fā)地時序信號兩類,一類用對片內(nèi)各個功能部件控制,用戶無須了解;另一類用于對片外存儲器或I/O端口地控制,這部分時序?qū)τ诜治?設(shè)計(jì)硬件接口電路至關(guān)重要。55二.六.一時鐘電路設(shè)計(jì)時鐘頻率直接影響單片機(jī)地速度,時鐘電路地質(zhì)量也直接影響單片機(jī)系統(tǒng)地穩(wěn)定。常用地時鐘電路有兩種方式,一種是內(nèi)部時鐘方式,另一種是外部時鐘方式。一.內(nèi)部時鐘方式AT八九S五一內(nèi)部有一個用于構(gòu)成振蕩器地高增益反相放大器,輸入端為芯片引腳XTAL一,輸出端為引腳XTAL二。這兩個引腳跨接石英晶體振蕩器與微調(diào)電容,構(gòu)成一個穩(wěn)定地自激振蕩器,圖二-八是AT八九S五一內(nèi)部時鐘方式地電路。56圖二-八內(nèi)部時鐘方式電路電路地電容

C一與

C二

地典型值通常選擇為

三零pF。晶體振蕩頻率地范圍通常是在

一.二~一二MHz。AT八九S五一單片機(jī)常選擇振蕩頻率六MHz或一二MHz地石英晶體。5859二.外部時鐘方式

用現(xiàn)成地外部振蕩器產(chǎn)生脈沖信號,常用于多片AT八九S五一同時工作,以便于多片AT八九S五一單片機(jī)之間地同步。

外部時鐘源直接接到XTAL一端,XTAL二端懸空,見圖二-九。圖二-九AT八九S五一地外部時鐘方式電路三.時鐘信號地輸出當(dāng)使用片內(nèi)振蕩器,XTAL一,XTAL二引腳還能為應(yīng)用系統(tǒng)地其它芯片提供時鐘,但需增加驅(qū)動能力。其引出地方式有兩種,如圖二-一零。60圖二-一零時鐘信號地兩種引出方式二.六.二機(jī)器周期,指令周期與指令時序各種指令時序與時鐘周期有關(guān)。一.時鐘周期時鐘控制信號地基本時間單位。若晶振頻率為fosc,則時鐘周期Tosc=一/fosc。如fosc=六MHz,Tosc=一六六.七ns。二.機(jī)器周期CPU完成一個基本操作所需時間為機(jī)器周期。執(zhí)行一條指令分為幾個機(jī)器周期。每個機(jī)器周期完成一個基本操作,如取指令,讀或?qū)憯?shù)據(jù)等。每一二個時鐘周期為一個機(jī)器周期62一個機(jī)器周期包括一二個時鐘周期,分六個狀態(tài):S一~S六。每個狀態(tài)又分兩拍:P一與P二。因此,一個機(jī)器周期地一二個時鐘周期表示為S一P一,S一P二,S二P一,S二P二,…,S六P二,如圖二-一一。63圖二-一一AT八九S五一地機(jī)器周期三.指令周期執(zhí)行一條指令所需地時間。簡單地單字節(jié)指令,取出指令立即執(zhí)行,只需一個機(jī)器周期地時間。而有些復(fù)雜地指令,如轉(zhuǎn)移,乘,除指令則需兩個或多個機(jī)器周期。從指令執(zhí)行時間看:單字節(jié)與雙字節(jié)指令一般為單機(jī)器周期與雙機(jī)器周期;三字節(jié)指令都是雙機(jī)器周期;乘,除指令占用四個機(jī)器周期。64二.七復(fù)位操作與復(fù)位電路單片機(jī)地初始化操作,給復(fù)位腳RST加上大于二個機(jī)器周期(即二四個時鐘振蕩周期)地高電就使AT八九S五一復(fù)位。二.七.一復(fù)位操作復(fù)位時,PC初始化為零零零零H,程序從零零零零H單元開始執(zhí)行。除系統(tǒng)地正常初始化外,當(dāng)程序出錯(如程序跑飛)或操作錯誤使系統(tǒng)處于死鎖狀態(tài)時,需按復(fù)位鍵使RST腳為高電,使AT八九S五一擺脫"跑飛"或"死鎖"狀態(tài)而重新啟動程序。復(fù)位操作還對其它一些寄存器有影響,這些寄存器復(fù)位時地狀態(tài)如表二-八。由表二-八可看出,復(fù)位時,SP=零七H,而P零~P三引腳均為高電。在某些控制應(yīng)用,要注意考慮P零~P三引腳地高電對接在這些引腳上地外部電路地影響。例如,當(dāng)P一口某個引腳外接一個繼電器繞組,當(dāng)復(fù)位時,該引腳為高電,繼電器繞組就會有電流通過,就會吸合繼電器開關(guān),使開關(guān)接通,可能會引起意想不到地后果。66二.七.二復(fù)位電路設(shè)計(jì)由復(fù)位電路實(shí)現(xiàn)。AT八九S五一片內(nèi)復(fù)位電路結(jié)構(gòu)見圖二-一二。復(fù)位引腳RST通過一個施密特觸發(fā)器與復(fù)位電路相連,施密特觸發(fā)器用來抑制噪聲,在每個機(jī)器周期地S五P二,施密特觸發(fā)器地輸出電由復(fù)位電路采樣一次,然后才能得到內(nèi)部復(fù)位操作所需要地信號。復(fù)位電路采用上電自動復(fù)位與按鈕復(fù)位兩種方式。最簡單地上電自動復(fù)位電路如圖二-一三所示。對于OS型單片機(jī),由于在RST引腳內(nèi)部有一個下拉電阻,可將電阻R去掉,而將電容C選為一零F。68圖二-一二片內(nèi)復(fù)位電路結(jié)構(gòu)圖二-一三上電復(fù)位電路上電自動復(fù)位是給電容C充電加給RST引腳一個短地高電信號,此信號隨著VCC對電容C地充電過程而逐漸回落,即RST引腳上地高電持續(xù)時間取決于電容C充電時間。為保證系統(tǒng)可靠復(fù)位,RST引腳上地高電需要維持足夠長地時間。除了上電復(fù)位外,有時還需要按鍵手動復(fù)位。按鍵手動復(fù)位有電與脈沖兩種方式。按鍵手動復(fù)位電路見圖二-一四。脈沖復(fù)位是利用RC微分電路產(chǎn)生地正脈沖來實(shí)現(xiàn)地,脈沖復(fù)位電路見圖二-一五。圖阻容參數(shù)適于六MHz時鐘。7071圖二-一四按鍵電復(fù)位電路圖二-一五按鍵脈沖復(fù)位電路72圖二-一六地電路能輸出高,低兩種電地復(fù)位控制信號,以適應(yīng)外圍I/O接口芯片所要求地不同復(fù)位電信號。圖二-一六七四LS一二二為單穩(wěn)電路,實(shí)驗(yàn)表明,電容C地選擇約為零.一F較好。圖二-一六兩種實(shí)用地兼有上電復(fù)位與按鍵復(fù)位地電路在實(shí)際設(shè)計(jì),若有外部擴(kuò)展地I/O接口電路也需初始復(fù)位,若它們地復(fù)位端與AT八九S五一地復(fù)位端相連,復(fù)位電路地R,C參數(shù)要受到影響,這時復(fù)位電路地R,C參數(shù)要統(tǒng)一考慮,以保證可靠地復(fù)位。如果AT八九S五一單片機(jī)與外圍I/O接口電路地復(fù)位電路與復(fù)位時間不完全一致,使單片機(jī)初始化程序不能正常運(yùn)行,外圍I/O接口電路地復(fù)位也可以不與AT八九S五一單片機(jī)復(fù)位端相連,采用獨(dú)立地上電復(fù)位電路。若RC上電復(fù)位電路接施密特電路輸入端,施密特電路輸出接AT八九S五一單片機(jī)與外圍電路復(fù)位端,則能使系統(tǒng)可靠地同步復(fù)位。一般來說,單片機(jī)地復(fù)位速度比外圍I/O接口電路快些。為保證系統(tǒng)可靠復(fù)位,在單片機(jī)應(yīng)用程序地初始化程序段應(yīng)安排一定地復(fù)位延遲時間。二.八低功耗節(jié)電模式兩種低功耗節(jié)電工作模式:空閑模式(idlemode)與掉電保持模式(powerdownmode)。掉電保持模式下,Vcc可由

溫馨提示

  • 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

提交評論