




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第四章PIC16F877單片機(jī)概述單片機(jī)的發(fā)展和應(yīng)用4.1.1 單片機(jī)的歷史發(fā)展概況單片機(jī)技術(shù)發(fā)展十分迅速,產(chǎn)品種類已琳瑯滿目??v橫整個單片機(jī)技術(shù)發(fā)展過程,可以分為以下三個主要過程:一、單芯片微機(jī)形成過程1976年,Intel公司推出了MCS-48系列單片機(jī)。該系列單片機(jī)早期產(chǎn)品在芯片內(nèi)集成有:8位CPU1K字節(jié)程序存儲器(ROM64字節(jié)數(shù)據(jù)存儲器(RAM、27根I/O線和1個8位定時/計數(shù)器。此階段的主要特點是:在單個芯片內(nèi)完成了CPU存儲器、I/O接口、定時/計數(shù)器、中斷系統(tǒng)、時鐘等部件的集成,但存儲器的容量較小,尋址范圍?。ú淮笥?K),無串行接口,指令系統(tǒng)功能不強(qiáng)。二、性能完善提高階段
2、1980年,Intel公司推出MCS-51系列單片機(jī)。該系列單片機(jī)在芯片內(nèi)集成有:8位CPU4K字節(jié)程序存儲器(ROM128位字節(jié)數(shù)據(jù)存儲器(RAM、4個8位并行接口、1個全雙工串行接口和2個16位定時/計數(shù)器。尋址范圍為64K,并集成有控制功能較強(qiáng)的布爾處理器完成處理功能。此階段的主要特點是:結(jié)構(gòu)體系完善,性能已大大提高,面向控制的特點進(jìn)一步突出?,F(xiàn)在,MCS-51已成為公認(rèn)的單片機(jī)經(jīng)典機(jī)種。三、微控制器化階段1982年,Intel公司推出MCS-96系列單片機(jī)。該系列單片機(jī)在芯片內(nèi)部集成有:16位CPUK字節(jié)程序存儲器(ROM、232字節(jié)數(shù)據(jù)存儲器(RAM、5個8位并行接口、1個全雙工串行
3、接口和2個16位定時/計數(shù)器。尋址范圍最大為64K。片上還有8路10位ADC1路PWM;D/A)輸出及高速I/O部件等。近年來,許多半導(dǎo)體廠商以MCS-51系列單片機(jī)的8051為內(nèi)核,將許多測控系統(tǒng)中的接口技術(shù)、可靠性技術(shù)及先進(jìn)的存儲器技術(shù)和工藝技術(shù)集成到單片機(jī)中,生產(chǎn)出了多種功能強(qiáng)大、使用靈活的新一代80C51系列單片機(jī)。此階段的主要特點是:片內(nèi)面向測控系統(tǒng)的外圍電路增強(qiáng),使單片機(jī)可以方便靈活地應(yīng)用于復(fù)雜的自動測控系統(tǒng)及設(shè)備。因此,“微控制器”的稱謂更能反應(yīng)單片機(jī)的本質(zhì)。4.1.2 單片機(jī)發(fā)展趨勢縱觀單片機(jī)的發(fā)展過程,可以預(yù)示單片機(jī)的發(fā)展趨勢,大致有:1.低功耗CMOStMCS-51系列的8
4、031推出時的功耗達(dá)630mW而現(xiàn)在的單片機(jī)普遍都在100mW左右,隨著對單片機(jī)功耗要求越來越低,現(xiàn)在的各個單片機(jī)制造商基本都采用了CMOS(:補(bǔ)金屬氧化物半導(dǎo)體工藝)。像80C51就采用了HMO卸高密度金屬氧化物半導(dǎo)體工藝)和CHMOS(補(bǔ)高密度金屬氧化物半導(dǎo)體工藝)。CMOS!然功耗較低,但由于其物理特征決定其工作速度不夠高,而CHMOS具備了高速和低功耗的特點,這些特征,更適合于在要求低功耗象電池供電的應(yīng)用場合。所以這種工藝將是今后一段時期單片機(jī)發(fā)展的主要途徑。2,微型單片化現(xiàn)在常規(guī)的單片機(jī)普遍都是將中央處理器(CPU)、隨機(jī)存取數(shù)據(jù)存儲(RAM只讀程序存儲器(ROM)并行和串行通信接口
5、,中斷系統(tǒng)、定時電路、時鐘電路集成在一塊單一的芯片上,增強(qiáng)型的單片機(jī)集成了如A/D轉(zhuǎn)換器、PMWW寬調(diào)制電路)、WDT營門狗)、有些單片機(jī)將LCD儆晶)驅(qū)動電路都集成在單一的芯片上,這樣單片機(jī)包含的單元電路就更多,功能就越強(qiáng)大。甚至單片機(jī)廠商還可以根據(jù)用戶的要求量身定做,制造出具有自己特色的單片機(jī)芯片。此外,現(xiàn)在的產(chǎn)品普遍要求體積小、重量輕,這就要求單片機(jī)除了功能強(qiáng)和功耗低外,還要求其體積要小?,F(xiàn)在的許多單片機(jī)都具有多種封裝形式,其中SMD表面封裝)越來越受歡迎,使得由單片機(jī)構(gòu)成的系統(tǒng)正朝微型化方向發(fā)展。3,主流與多品種共存現(xiàn)在雖然單片機(jī)的品種繁多,各具特色,但仍以80C51為核心的單片機(jī)占主
6、流,兼容其結(jié)構(gòu)和指令系統(tǒng)的有PHILIPS公司的產(chǎn)品,ATME公司的產(chǎn)品和中國臺灣的Winbond系列單片機(jī)。所以C8051為核心的單片機(jī)占據(jù)了半壁江山。而Microchip公司的PIC精簡指令集(RISC)也有著強(qiáng)勁的發(fā)展勢頭,中國臺灣的HOLTE儂司近年的單片機(jī)產(chǎn)量與日俱增,與其低價質(zhì)優(yōu)的優(yōu)勢,占據(jù)一定的市場份額。此外還有MOTOROLA司的產(chǎn)品,日本幾大公司的專用單片機(jī),在一定時期內(nèi),這種情形將得以延續(xù),將不存在某個單片機(jī)一統(tǒng)天下的壟斷局面,走的是依存互補(bǔ),相輔相成,共同發(fā)展的道路。4.1.3單片機(jī)的應(yīng)用領(lǐng)域由于單片機(jī)具有良好的控制性能和靈活的嵌入品質(zhì),近年來單片機(jī)在各種領(lǐng)域都獲得了極為
7、廣泛的應(yīng)用。概要地分成以下幾個方面:1:智能儀器儀表單片機(jī)用于各種儀器儀表,一方面提高了儀器儀表的使用功能和精度,使儀器儀表智能花,同時還簡化了儀器儀表的硬件結(jié)構(gòu),從而可以方便地完成各種儀器儀表產(chǎn)品的升級換代。如各種智能電氣測量儀表、智能傳感器等。2:機(jī)電一體化產(chǎn)品機(jī)電一體化產(chǎn)品是集機(jī)械技術(shù)、微電子技術(shù)、自動化技術(shù)和計算機(jī)技術(shù)于一體,具有智能化特征的各種機(jī)電產(chǎn)品。單片機(jī)在機(jī)電一體化產(chǎn)品的開發(fā)中可以發(fā)揮巨大的作用。典型產(chǎn)品如機(jī)器人、數(shù)控機(jī)床、自動包裝機(jī)、點鈔機(jī)、醫(yī)療設(shè)備、打印機(jī)、傳真機(jī)、復(fù)印機(jī)等。3:實時工業(yè)控制單片機(jī)還可以用于各種物理量的采集與控制。電流、電壓、溫度、液位、流量等物理量參數(shù)的采
8、集和控制均可以利用單片機(jī)方便地實現(xiàn)。在這類系統(tǒng)中,利用單片機(jī)作為系統(tǒng)控制器,可以根據(jù)被控對象的不同特征采用不同的智能算法,實現(xiàn)期望的控制指標(biāo),從而提高生產(chǎn)效率和產(chǎn)品質(zhì)量。典型應(yīng)用如電動機(jī)轉(zhuǎn)速控制、溫度控制、自動生產(chǎn)線等。4:分布系統(tǒng)的前端模塊在較復(fù)雜的工業(yè)控制系統(tǒng)中,經(jīng)常要采用分布式測控系統(tǒng)完成大量的分布參數(shù)的采集。在這類系統(tǒng)中,采用單片機(jī)作為分布式系統(tǒng)的前端模塊。系統(tǒng)具有運(yùn)行可靠,數(shù)據(jù)采集方便靈活,成本低廉等一系列優(yōu)點。5:家用電器家用電器是單片機(jī)的又一重要領(lǐng)域,前景十分廣闊。如空調(diào)器、電冰箱、洗衣機(jī)、電飯煲、高檔洗浴設(shè)備、高檔玩具等。另外,在交通領(lǐng)域中,汽車、火車、飛機(jī)、航天器等均有單片機(jī)
9、的廣泛應(yīng)用。如汽車自動駕駛系統(tǒng)、航天測控系統(tǒng)、黑匣子等。4.2PIC16F877單片機(jī)簡介PIC16F877單片機(jī)的內(nèi)部結(jié)構(gòu)PIC16F877單片機(jī)的功能框圖如圖4.1所示。從其執(zhí)行功能考慮,可以將單片機(jī)分成兩大組件,即基本功能模塊和專用功能模塊。1: PIC16F877單片機(jī)的基本功能模塊PIC16F877單片機(jī)的基本功能區(qū)域的主要功能模塊包括以下7部分1)程序存儲器區(qū)域PIC16F877單片機(jī)帶有Flash程序存儲器結(jié)構(gòu),主要存放由用戶預(yù)先編制好的程序和一些固定不變的數(shù)據(jù)。程序存儲器共有8Kx14位程序單元空間,即0000H1FFFH由程序計數(shù)器提供13條地址線進(jìn)行單元選擇,每個單元寬14
10、位,能夠存放一條PIC單片機(jī)系統(tǒng)指令。在系統(tǒng)上電或其他復(fù)位情況下,程序計數(shù)器均從0000H地址單元開始工作。如果遇到調(diào)用子程序或系統(tǒng)發(fā)生事件中斷時,都將把當(dāng)前程序斷點處的地址送入8級X14位的堆棧區(qū)域進(jìn)行保護(hù)。堆棧是一個獨(dú)立的存儲區(qū)域,在子程序或中斷服務(wù)程序執(zhí)行完后,再恢復(fù)斷點地址,使主程序得以繼續(xù)執(zhí)行。通過14位程序總線,取出對應(yīng)程序指令的機(jī)器碼,送入指令寄存器,將組成的操作碼和操作數(shù)進(jìn)行有效分離。如果操作數(shù)為地址,則進(jìn)入地址復(fù)用器;如果操作數(shù)為數(shù)據(jù),則進(jìn)入數(shù)據(jù)復(fù)用器。而操作碼將在指令譯碼和控制單元中轉(zhuǎn)化為相應(yīng)的功能操作。2)數(shù)據(jù)存儲區(qū)域PIC16F877單片機(jī)數(shù)據(jù)存儲器主要包括特殊功能寄存
11、器和通用寄存器兩部分,用于存取CPUS執(zhí)行程序過程中產(chǎn)生的中間數(shù)據(jù)或預(yù)置的參數(shù)。RAhM據(jù)存儲器的每個存儲單元除具備普通存儲器功能之外,還能實現(xiàn)移位、置位、復(fù)位和位測試等通常只有寄存器才能完成的操作。PIC16F877共有512字節(jié)單元空間(包括無效的地址單元),即000H1FFH地址復(fù)用器組合9條地址線,實現(xiàn)512個數(shù)據(jù)存儲器單元地址的有效選擇。對于不同的數(shù)據(jù)訪問,地址復(fù)用器的組合方式也存在差異。當(dāng)采用直接尋址時,RAM*址的形成采用7加2模式,即7位數(shù)據(jù)來源于指令操作數(shù),2位數(shù)據(jù)來源于STATUS狀態(tài)寄存器RP1RP0而采用間接尋址時,RAM*址的形成采用8加1模式,即8位數(shù)據(jù)來源于文件選
12、擇寄存器FSR1位數(shù)據(jù)來源于STATUSES寄存器IRP基本功能區(qū)域配置有地址和數(shù)據(jù)兩種復(fù)用器,是一種信號的選擇開關(guān),可根據(jù)指令功能的不同而選擇其中的一個通路。3) UPRO瞰據(jù)存儲器模塊PIC16F877單片機(jī)嵌入一個256X8位E2PRO瞰據(jù)存儲器模塊。它與內(nèi)部數(shù)據(jù)存儲器最大的差異在于可在線擦/寫,存儲的內(nèi)容掉電時不會丟失。完成數(shù)據(jù)存取功能,PIC單片機(jī)指令集沒有提供現(xiàn)成的機(jī)器指令,而必須采用特殊的程序段。4)算術(shù)邏輯運(yùn)算區(qū)域PIC16F877單片機(jī)中一個非常重要的部件就是算術(shù)邏輯單元ALU主要實現(xiàn)算數(shù)運(yùn)8位從動端口通用同步,異步收發(fā)器捕捉比較脈寬調(diào)制1程序計數(shù)器卜I8級堆棧(13位)T指
13、令寄存器地址復(fù)用器0STATULJW寄存器指令譯碼和控制器端口A端口E端口B端DC定時器2定時器1Flash程序存儲器E2PR0M數(shù)據(jù)存儲器基本功能區(qū)域?qū)S霉δ軈^(qū)域步行口同串端比寬捉橘如捕較調(diào)卜由鴕時起振延時上電復(fù)位WDT欠壓復(fù)位在線調(diào)試低壓編程RAM數(shù)據(jù)存儲器FSR數(shù)據(jù)復(fù)用器時基發(fā)生器器件型OFlash程序存儲器RAM數(shù)據(jù)存儲器E2PROM數(shù)據(jù)存儲器PIC16F8778KX14368X8256X8圖4.1PIC16F877單片機(jī)的功能框圖算和邏輯運(yùn)算。一般對于雙目操作類指令,如“加”、“減”、“與”、“或”的兩個操作數(shù)將來源于工作寄存器Wft數(shù)據(jù)復(fù)用器。而執(zhí)行的結(jié)果可以送入工作寄存器W或返回
14、數(shù)據(jù)總線(進(jìn)入特定外圍模塊或給定的數(shù)據(jù)寄存器單元),同時會將運(yùn)算結(jié)果的狀態(tài)送入STATU縱態(tài)寄存器。與算術(shù)邏輯運(yùn)算區(qū)域關(guān)聯(lián)的特殊功能寄存器有以下3種(1)工作寄存器W相當(dāng)于其它單片機(jī)中的“累加器A”,是數(shù)據(jù)傳送的橋梁,是最為繁忙的工作單元。在運(yùn)算前,W可以暫存準(zhǔn)備參加運(yùn)算的一個操作數(shù)(成為源操作數(shù));(2)狀態(tài)寄存器STATUS反映最近一次算術(shù)邏輯運(yùn)算結(jié)果的狀態(tài)特征,如是否產(chǎn)生進(jìn)位、借位、結(jié)果是否為零等,共涉及3個標(biāo)志位(Z、DCn0。該寄存器在其他單片機(jī)中又稱為標(biāo)志寄存器或程序狀態(tài)字(PAW寄存器。另外,狀態(tài)寄存器還包括數(shù)據(jù)寄存器區(qū)域的選擇信息(IRP、RP1和RP0。如圖所示的狀態(tài)寄存器S
15、TATUS旨向數(shù)據(jù)存儲器地址復(fù)用器的3條控制線,配合完成間接尋址(IRP)和直接尋址(RP1和RP0o(3)文件選擇寄存器FSR是與INDF完成間接尋址的專用主題寄存器,用于存放間接地址,即預(yù)先將要訪問單元的地址存入該寄存器。5)輸入/輸出端口模式PIC16F877單片機(jī)具有豐富的接口資源,共設(shè)置有5個輸入/輸出端口,分另I為RA(6位)、RB(8位)、RC(8位)、RD(8位)和RE(3位),合計共有33個引腳。大多數(shù)引腳除了基本I/O功能外,還配置有其他特殊功能,例如模擬量輸入通道,用/并行通信線和MPLABICD專用控制線等。這些端口引腳在使用中存在著差異,特別是RA(6位)和RE(3位
16、)中所涉及的輸入/輸出通道,只有當(dāng)對ADCON進(jìn)行設(shè)置后才能用作為數(shù)字累輸入/輸出引腳。另外,RB端口的高4位具有特殊的電平變化中斷功能,為實時監(jiān)控提供了很大方便。RC端口擁有各類串行通信功能,包括主控同步串行通信MSSRSPI、I2C)和通用同步/異步收發(fā)器USART6)多功能定時器模塊PIC16F877單片機(jī)配置有3個功能較強(qiáng)的多功能定時器模塊:TMR0(8位)、TMR1(16位)和TMR2(8位)。他們都具有不同位寬的可編程定時器,出TMR2以外都可作為計數(shù)器使用。每個定時器/計數(shù)器模塊都配有不同比例的預(yù)分頻器或后分頻器。另外,還有兩個重要的專門用途;當(dāng)設(shè)置在同步計數(shù)方式下,TMR1可與
17、捕捉/比較/脈寬調(diào)制CCP1塊配合實現(xiàn)脈寬調(diào)制輸出功能。7)核心模塊PIC16F877單片機(jī)具有多種功能強(qiáng)大的系統(tǒng)復(fù)位模式:基于電容的效應(yīng),當(dāng)系統(tǒng)芯片加電后,VDD4壓會有一個逐漸上升的過程,只有達(dá)到1.51.8V后,上電復(fù)位電路將自動產(chǎn)生一個復(fù)位脈沖,使單片機(jī)復(fù)位;而為了保障系統(tǒng)程序安全,可靠運(yùn)行,當(dāng)VDDf電跌落到VBOR(:約4V)的時間大于TBOR大約100us)時,如果掉電復(fù)位功能處于使能方式,將自動產(chǎn)生一個復(fù)位信號并使芯片保持在復(fù)位狀態(tài);而此時如果VDDR復(fù)到正常范圍,上電延時電路再提供一個72ms延時,才使CPU從復(fù)位狀態(tài)返回到原正常運(yùn)行狀態(tài)。另外,核心模塊還帶有兩種特殊的延時電
18、路:上電延時和起振延時電路。在芯片加電時,上電延時定時器PWR提供一個固定的72ms正常上電延時。上電延時電路采用RC振蕩器方式工作。當(dāng)PWRTt于延時過程時,芯片就能一直保持在復(fù)位狀態(tài),以確保電源電壓在這個固定延時內(nèi)達(dá)到合適的芯片工作電壓;在上電延時電路提供一個72ms延時后,起振定時器OSTW提供1024個振蕩周期的延遲時間,以確保晶體或陶瓷諧振器能夠有合適的時間起振并產(chǎn)生穩(wěn)定的時序波形。PIC16F877單片機(jī)嵌入了一個具有較強(qiáng)功能的看門狗定時器WDT能夠有效防止因環(huán)境干擾而引起系統(tǒng)程序“飛溢”。WDT勺定時/計數(shù)脈沖是由芯片內(nèi)專用的RC振蕩器產(chǎn)生的。它的工作既不需要任何外部器件,也與單
19、片機(jī)的時鐘電路無關(guān)。這樣,即使單片機(jī)的時鐘停止,WDT0能繼續(xù)工作??撮T狗電路在實時控制系統(tǒng)有著重要的應(yīng)用價值,可以在18ms基本定時基礎(chǔ)上加入1:11:128的預(yù)分頻比例,從而達(dá)到182304ms的定時。一旦在程序中啟用看門狗電路,定時的長短將直接與看門狗復(fù)位指令CLRWD的設(shè)置有關(guān)。其原則是:程序循環(huán)或程序段內(nèi)插入CLRWDT確保正常程序運(yùn)行時看門狗電路執(zhí)行復(fù)位(CLRWDT的間隙時問小于看門狗電路設(shè)置的溢出時間。PIC16F877單片機(jī)最具特色的內(nèi)容之一就是具有強(qiáng)大的在線調(diào)試功能和低壓編程功能,為初學(xué)者提供了一個友好的操作平臺,在Microchip公司提供的集成開發(fā)環(huán)境MPLABIDE和
20、實驗板的支持下,完成在線調(diào)試程序的功能。在對PIC16F877單片機(jī)進(jìn)行在線串行編程時,該電路允許使用芯片工作電壓VDD(乍為編程(即固化)電壓,而不需要額外的高電壓(如13V)PIC16F877單片機(jī)的專用功能模塊PIC16F877單片機(jī)內(nèi)部集成了多個專用功能模塊,其功能和使用方法比較復(fù)雜。PIC16F877單片機(jī)專用功能區(qū)域主要包括了6個充分體現(xiàn)PIC16F877單片機(jī)特色的專用功能模塊。1)串行通信和并行數(shù)據(jù)傳送模塊在R5口匯集有多種串行數(shù)據(jù)傳送方式,主要包括同步串行端口SSPffi通用同步/異步收發(fā)器USARTSSP具有SPI和I2C兩種系統(tǒng)內(nèi)部進(jìn)行數(shù)據(jù)傳送的工作方式,可實現(xiàn)多機(jī)或外接
21、專用器件進(jìn)行特殊通信。USART1一種常規(guī)的二線式串行通信模式,在PC機(jī)和單片機(jī)中都有配置。它可以定義為兩種工作方式:半雙工同步方式和全雙工異步方式,以實現(xiàn)外接專用器件之間或遠(yuǎn)距離多機(jī)進(jìn)行特殊通信。另外,RD端口可作為并行從動端口PSP是一條處于被動工作方式下數(shù)據(jù)傳送的高速通道,并行數(shù)據(jù)總線的權(quán)限將由于其進(jìn)行數(shù)據(jù)交換的另一方控制。2)捕捉/比較/脈寬調(diào)制模塊PIC16F877單片機(jī)配置有兩個功能較強(qiáng),頗具特色的功能模塊CCP1ffiCCP2分別能與TMR1和TMR2配合實現(xiàn)對信號的輸入捕捉,輸出比較和脈寬調(diào)制PWM輸出功能。(1)輸入捕捉功能:主要通過TMR1定時器,及時捕捉外加信號的邊沿觸發(fā)
22、,用來間接測量信號周期,頻率,脈寬等。(2)輸出比較功能:主要通過TMR1定時器和比較電路,輸出寬度可調(diào)的方波信號,以驅(qū)動那些工作于脈沖型的電氣部件。(3)脈寬調(diào)制PW喻出功能:主要通過TMR班時器,PR2周期寄存器和比較電路,輸出周期和脈寬可調(diào)的周期性方波信號,以控制可控硅的導(dǎo)通狀態(tài),步進(jìn)電機(jī)轉(zhuǎn)動角度或調(diào)整發(fā)光器件亮度等。2: A/D轉(zhuǎn)換器(ADC模塊A/D轉(zhuǎn)換器是專門功能區(qū)域重要的器件之一。PIC16F877單片機(jī)本身就嵌入了一個10位分辨率的模/數(shù)轉(zhuǎn)換器,最多可帶有8個模擬量輸入通道,用來將外部的模擬量變換成單片機(jī)可以接受和處理的數(shù)字量。A/D轉(zhuǎn)換器采用常規(guī)的逐次比較法,參考電壓即可使用
23、標(biāo)準(zhǔn)的VDDffiVSSW號,也可使用外加參考電壓的方式。A/D轉(zhuǎn)換器內(nèi)部配置有獨(dú)立的時鐘信號,即使PIC單片機(jī)處于睡眠的情況下,照樣可以進(jìn)行模/數(shù)轉(zhuǎn)換。4.2.2PIC16F877單片機(jī)的引腳說明1: PIC16F877的弓腳如圖4.2所示MCLR/VppRAO/ANORA1/AN1RA2/AN2/Vref-RA3/AN3/Vref+RA4/TOO(1RA5/AN4,SSRE0/RD/AN5RE1屈AN6RE2/S/AN7VcoV$s0SC1/CLKIN0SC2/CLK0UTRCO/T1OSO/T1CKIRC1/T10SI/CCP2RC2/CCP1RC3/SCK/SCLRDO/PSPORD1
24、/PSP1MCLR/VppRAO/ANORA1/AN1RA2/AN2/Vref-RA3/AN3/Vref+RA4/TOO(1RA5/AN4,SSRE0/RD/AN5RE1屈AN6RE2/S/AN7VcoV$s0SC1/CLKIN0SC2/CLK0UTRCO/T1OSO/T1CKIRC1/T10SI/CCP2RC2/CCP1RC3/SCK/SCLRDO/PSPORD1/PSP1V_AIZV一"AU012345234567891111110987654321098764333333333322222221AA>-<""AVATAA_A""
25、;>-A*AY_Ay_aY_AV_AR07/PGDRBfi/PGCRB5RB4RB3/PGMRB2RBIRBO/RNTVt»VssR07/PSP7RO6/PSP6RO5/PSP5R04/PSP4RC7/RX/DTRC6/TX/CKRC5/SD0RC4/SDI/SDARC3/PSP3RC2/PSP2圖4.2PIC16F877引腳圖2: PIC16F877引腳定義PIC16F877單片機(jī)共有40個引腳,其中11、32腳是電源引腳,12、31腳是電源地,分別接到5V電源的正負(fù)極上;1腳是復(fù)位引腳,低電平復(fù)位;13、14腳時時鐘輸入引腳和時鐘輸出弓I腳,可由RC振蕩電路或晶振振蕩電路構(gòu)
26、成時鐘源;其余弓I腳分另I是RA0RA5RB0RB7RC0RC7RD0RD7RE0RE2這些弓I腳除了當(dāng)作普通端口使用外,很多引腳還有其他功能。PIC16F877單片機(jī)的每個I/O端口都配有2個相關(guān)的寄存器:一個是寄存器TRISx;另一個是端口寄存器PORTxTRISx是一個方向寄存器,用來設(shè)置端口的方向,也就是將端口設(shè)置為輸入口或者輸出口:邏輯1代表端口是輸入口,邏輯0代表端口是輸出口。需要注意的是在上電復(fù)位后,這些I/O端口的默認(rèn)狀態(tài)都是輸入。PORTA端口寄存器,在作為輸出口時,該寄存器中存放的是要輸出的數(shù)據(jù);在作為輸入口時,該寄存器中存放的是要讀取的數(shù)據(jù)。這兩個寄存器都是8位寄存器,分
27、別與每個端口的8個引腳相對應(yīng)。1:PORTA口TRISA寄存器PORTA1一個6位長度的雙向端口,相對應(yīng)的方向寄存器是TRISA設(shè)置相應(yīng)的位為1將使相對應(yīng)的PORT葡口設(shè)置為輸入口,設(shè)置相應(yīng)的位為0將使相對應(yīng)的PORT葡口設(shè)置為輸出口。當(dāng)將端口設(shè)置為輸入口時,從PORTA?存器讀取的數(shù)據(jù)表示引腳的狀態(tài);當(dāng)將端口設(shè)置為輸出口時,則將數(shù)據(jù)寫到端口鎖存器中。所有寫操作都經(jīng)過讀一修改一寫的過程。因此對端口的“寫”意味著先讀引腳,然后修改值,最后再寫入到端口鎖存器。RA4引腳同時被復(fù)用為TMR0勺時鐘輸入引腳,作為輸入時,其內(nèi)部是一個施密特觸發(fā)器;作為輸出時,則是一個漏極開路輸出。所有其他RA端口引腳的
28、輸入信號都是TTL電平,輸出信號都是CMOS區(qū)動輸出。需要注意的是,將RA4作為輸出口時一定要接上拉電壓。當(dāng)其他引腳復(fù)用為模擬參考電壓輸入時,由ADCON寄存器進(jìn)行設(shè)置。表4.1端口A功能表注:TTL=TTL俞入,ST碰密特觸發(fā)輸入引腳名稱位緩沖功能RA0/AN0第0位TTL通用輸入/輸出口,模擬輸入口RA1/AN1第1位TTL通用輸入/輸出口,模擬輸入口,RA2/AN2/VREF-第2位TTL通用軸入/軸出口,模擬軸入口,負(fù)經(jīng)美電壓RA3/AN3/VREF+第3位TTL通用軸入/軸出口,模擬軸入口,正經(jīng)美電壓RA4/TOCKI第4位ST通用輸入/輸出口,定時器0外部時鐘輸入口,漏極開路輸出R
29、A5/SS/AN4第5位TTL通用輸入/輸出口,模擬輸入口,同步串口從模式選擇輸入表4.2端口A相關(guān)寄存器地址名稱Bit7BIt6Bit5Bit4Bit3Bit2Bit1Bit0上電復(fù)位和帶電鎖定復(fù)位時的值其他復(fù)位時的值05HPOPTA一一RA5RA4RA3RA2RA1RA0-0X0000-0U000085HTRISA一一端口A方向寄存器-111111-1111119FHADCON1ADFM一一一PCFG3,PCFG2,PCFG1iPCFG0i-0-0000-0-0000表4.3ADCON1中PCFG3PCFG0作用PCFG3PCFG0AN7AN6AN5AN4AN3AN2AN1AN0VREF+
30、-VREF-RE2RE1RE0RA5RA3RA2RA1RA00000AAAAAAAAVDDVSS0001AAAAVREF+AAARA3VSS0010DDDAAAAAVDDVSS0011DDDAVREF+AAARA3VSS0100DDDDADAAVDDVSS0101DDDDVREF+DAAVDDVSS011XDDDDDDDDVDDVSS1000AAAAVREF+VREF-AARA3RA21001DDAAAAAAVDDVSS1010DDAAVREF+AAARA3VSS1011DDAAVREF+VREF-AARA3RA21100DDDAVREF+VREF-AARA3RA21101DDDDVREF+V
31、REF-AARA3RA21110DDDDDDDAVDDVSS1111DDDDVREF+VREF-DARA3RA22:PORT喇TRISB寄存器POTR%一個8位長度的雙向端口,相對應(yīng)的方向寄存器是TRISR設(shè)置TRISB相應(yīng)的值為1將使相對應(yīng)的PORT端口設(shè)置為輸入口,設(shè)置相應(yīng)的值為0將使相對應(yīng)的PORT端口設(shè)置為輸出口。PORTB®口中的三個端口RB3/PGMRB6/PGCRB7/PG/用為低電壓編程功能。端口B中的每一個引腳都有內(nèi)部的弱上拉電阻,由每一個控制位設(shè)定,即OPTION_REG存器中的第7位RBPU當(dāng)RBPU-=0寸打開所有的內(nèi)部弱上拉電阻。當(dāng)引腳配A為輸出時,自動關(guān)閉
32、所有上拉電阻。在電源上電復(fù)位時所有的弱上拉電阻被禁止。RB7RB4這四個引腳在電平變化時產(chǎn)生中斷,因此可以利用這個特點構(gòu)成電平變化中斷鍵盤。當(dāng)這些引腳配置成輸入引腳后,可以自動將鎖存器中的數(shù)值與當(dāng)前引腳電平數(shù)值進(jìn)行比較。若不一致,稱為“失配”,則會產(chǎn)生一個中斷,該中斷可將單片機(jī)從睡眠狀態(tài)中喚醒。任何一個中斷的產(chǎn)生都有一個中斷標(biāo)志位,電平變化中斷標(biāo)志位為RBIF,該位是中斷控制寄存器INTCON勺第0位。如果有中斷產(chǎn)生,標(biāo)志位RBIF=1,那么處理完中斷后將該位清零。在中斷程序中可以采用如下方法清除中斷:1)對PORTB勺任何讀或?qū)憽_@將結(jié)束不一致的條件;2)清除標(biāo)志位RBIF失配的條件將會繼續(xù)
33、設(shè)置標(biāo)志位RBIF。t賣PORTB等結(jié)束失配的條件,并允許清除標(biāo)志位RBIF“電平變化中斷”推薦用于鍵盤喚醒操作和電平變化時的中斷操作。當(dāng)使用電平變化中斷時,不建議用PORT的詢。RB0/INT是一個外部中斷輸入引腳,使用INTED%:進(jìn)行配置,INTEDG是OPTION_REG存器的第6位表4.4端口B功能表引腳名稱位緩沖功能RB0/INT第0位TTL通用輸入/輸出口,或外部中斷輸入,內(nèi)部軟件可編程弱上拉電阻RB1第1位TTL通用輸入/輸出口,內(nèi)部軟件可編程弱上拉電阻RB2第2位TTL通用輸入/輸出口,內(nèi)部軟件可編程弱上拉電阻RB3/PGM第3位TTL通用輸入/輸出口,或LVP模式可編程引腳
34、,內(nèi)部軟件可編程弱上拉電阻RB4第4位TTL通用輸入/輸出口(電平變化中斷),內(nèi)部軟件可編程弱上拉電阻RB5第5位TTL通用輸入/輸出口,內(nèi)部軟件可編程弱上拉電阻RB6/PGC第6位TTL/ST通用輸入/輸出口(電平變化中斷)或在電路調(diào)試引腳,內(nèi)部軟件可編程弱上拉電阻和串行可編程時鐘RB7/PGD第7位TTL/ST通用輸入/輸出口(電平變化中斷)或在電路調(diào)試引腳,內(nèi)部軟件可編程弱上拉電阻和串行數(shù)據(jù)口。注:(1)當(dāng)為外部中斷時,該緩沖器為施密特觸發(fā)器(2)當(dāng)用于串行可編程模式時,該緩沖器為施密特觸發(fā)器表4.5端口B相關(guān)寄存器地址名稱Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
35、電位帶鎖復(fù)時值上復(fù)和電定位的其他復(fù)位時的值06H,PORTBRB7RB6RB5RB4RB3RB2RB2RB0XXXXXUUUU3:PORTC口TRISC寄存器106HXXXUUUU86H,186HTRISB一一端口B方向寄存器111111111111111181H,181HOPTION_REGRBPUINTEDGTOCSTOSEPSAPS2PS1PS01111111111111111PORTd一個8位的雙向端口,相對應(yīng)的方向寄存器是TRISC設(shè)置TRISC相應(yīng)位為1將使該端口設(shè)置成輸入端口。將TRISC相應(yīng)位清零則將使該端口設(shè)置成輸出端口。PORTCf幾個外設(shè)的功能是復(fù)用的。PORTCI有施密
36、特觸發(fā)器輸入緩沖器。當(dāng)I2C模塊使能時,PORT®3、4引腳可以通過CKE&配置為標(biāo)準(zhǔn)的I2C電平和SMBUSI平。當(dāng)外設(shè)功能使能時,特別要注意PORTC勺方向寄存器TRISC的設(shè)置。某些外設(shè)忽略TRISC中相應(yīng)位將一個引腳設(shè)置為輸出引腳,而其他外設(shè)忽略TRISC中相應(yīng)位將一個引腳設(shè)置為輸入引腳。當(dāng)外設(shè)使能時,由于忽視TRISC中相應(yīng)位的影響,故而避免使用以TRISC為目標(biāo)的讀出一修改一寫入指令。表4.6端口B功能表表4.7端口C相關(guān)寄存器引腳名稱位緩沖功能RC0/T10S0/T1CK1第0位ST通用輸入/輸出口,或定時器/振揚(yáng)器輸出/定時器/時鐘輸入RC1/T1OSI/CC
37、P2第1位ST通用輸入/輸出口,或定時器/振揚(yáng)器輸入或capture2輸入/capture2輸出/PWM俞出RC2/CCP1第2位ST通用輸入/輸出口,或定時器/振揚(yáng)器輸入或capture1輸入/capture1輸出/PWM俞出RC3/SCK/SCL第3位ST通用輸入/輸出口,或作為SPI和I2C模式的同步串行時鐘RC4/SDI/SDA第4位ST通用輸入/輸出口,或同步串行數(shù)據(jù)輸入端口或I2C數(shù)據(jù)口RC5/SD0第5位ST通用輸入/輸出口,或同步串行數(shù)據(jù)輸出端口或I2C數(shù)據(jù)口RC6/TX/CX第6位ST通用輸入/輸出口,或USAR用步發(fā)送或同步時鐘RC7/RX/DT第7位ST通用輸入/輸出口,
38、或USAR用步接受或同步數(shù)據(jù)地址名稱Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0復(fù)帶定時電和鎖位直上位電復(fù)削其他復(fù)位時的值07HPORTCRC7RC6RC5RC4RC3RC2RC1RC0XXXXXXXX:UUUUUUUU87HTRISC端口C方向寄存器11111111111111114:PORTD口TRISDU存器POITD&是一個具有施密特觸發(fā)輸入緩沖器的8位端口,每個端口可以配置成輸入或者輸出弓唧。通過設(shè)置控制位PSPMOD地可以將PORTfflE置為8位寬的微處理器端口,在這種模式下,輸入緩沖器是TTL表4.8端口D功能表引腳名稱位緩沖功能RD0/PSP0第0
39、位ST/TTL通用/&入/輸出口或并行從端口第0位RD1/PSP1第1位ST/TTL通用/&入/輸出口或并行從端口第1位RD2/PSP2第2位ST/TTL通用/&入/輸出口或并行從端口第2位RD3/PSP3第3位ST/TTL通用/&入/輸出口或并行從端口第3位RD4/PSP4第4位ST/TTL通用/&入/輸出口或并行從端口第4位RD5/PSP5第5位ST/TTL通用/&入/輸出口或并行從端口第5位RD6/PSP6第6位ST/TTL通用/&入/輸出口或并行從端口第6位RD7/PSP7第7位ST/TTL通用/&入/輸出口或并行從端口第
40、7位表4.9端口D相關(guān)寄存器地址名稱Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0電位帶鎖復(fù)時值上復(fù)和電定位削其他復(fù)位時的值5:PORT即TRISE寄存器08HPORTDRD7RD6RD5RD4RD3RD2RD1RD0XXXXXXXXUUUUUUUU88HTRISD端口D方向寄存器111111111111111189HTRISEIBFDBFIBOVPSPMODE一POPT瞅據(jù)方向111PORT就口有3個弓I腳:RE0/RD/AN5RE1/WR/AN6口RE2/CS/AN7他們者B可以獨(dú)立地配置成輸入或輸出弓I腳。這些引腳都具有施密特觸發(fā)器輸入緩沖器
41、。當(dāng)控制位PSPMODE位時,PORT變成微處理器端口的控制輸入。在這種模式下,用戶必須確保TRISE寄存器的第26位被置位(引腳配置成數(shù)字輸入),并通過ADCON1存器將PORTEf已置為數(shù)字I/O口。表4.10端口E寄存器地址名稱RRR/WR/WUR/WR/WR/W89HTRTSEIBFOBFIBOVPAPMODE一Bit2Bit1Bit0TRISE寄存器各位含義:IBF輸入緩沖器滿狀態(tài)位1二接受到一個字等待CPU賣取0=沒有接收到字OBF輸出緩沖器滿狀態(tài)位1二輸出緩沖器仍然保持以前寫的字0二輸出緩沖器已經(jīng)讀取IBOV輸入緩沖器溢出檢測位1二當(dāng)以前寫的字還沒有讀取時發(fā)生寫溢出0二沒有溢出發(fā)生PSPMOD”行從端口模式選擇位1二并行從端口模式0=通常I/O模式一未占用,讀作0Bit2引腳RE2/CS/AN7勺方向控制位1二輸入引腳0二輸出引腳Bit1弓I腳RE1/WR/AN6勺方向控制位1二輸入引腳0二輸出引腳Bit0弓唧RE0/RD/AN5勺方向控制位1二輸入引腳0二輸出引腳4.2.3PIC16F877單片機(jī)存儲器概述PIC16F877單片機(jī)內(nèi)部配置了較完善的多個存儲器,可分為數(shù)據(jù)存儲器和程序存儲器兩種,為一般用戶提供了很大的方便。但在形式上,他們具有很豐富的內(nèi)涵1:程序存儲器PIC16F877單片機(jī)內(nèi)部配置了8Kx14位的Flash程序存儲器,可以很方便的進(jìn)行在線擦除和燒寫
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 供電公司外委管理辦法
- 虛擬展覽技術(shù)-洞察及研究
- DeepSeek與區(qū)塊鏈技術(shù)推動大灣區(qū)港群一體化發(fā)展
- 智慧教室材料管理辦法
- 養(yǎng)蜂管理辦法(試行)
- 村級資金使用管理辦法
- 公司內(nèi)部招待管理辦法
- 農(nóng)村便利設(shè)施管理辦法
- 探究《水滸傳》精彩章節(jié)
- 使用軟件考勤管理辦法
- 毀林毀草違規(guī)行為集中整治實施方案
- 日本2025年食品過敏原培訓(xùn)
- 中新天津生態(tài)城教育系統(tǒng)招聘教職人員筆試真題2024
- GB/T 45817-2025消費(fèi)品質(zhì)量分級陶瓷磚
- DB37∕T 5302-2024 既有城市橋梁現(xiàn)場檢測及承載能力評估技術(shù)標(biāo)準(zhǔn)
- 安徽省池州市貴池區(qū)2024-2025學(xué)年八年級下學(xué)期數(shù)學(xué)期末檢測試卷(含答案)
- 正畸接診標(biāo)準(zhǔn)化流程
- 中心靜脈壓(CVP)監(jiān)測與護(hù)理
- 酒店前臺接待禮儀與溝通技巧練習(xí)題
- 床上用品采購 投標(biāo)方案
- 口腔工藝管理課件
評論
0/150
提交評論