




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Microchip的產(chǎn)品均達(dá)到Microchip中所述的技術(shù)指標(biāo)目前,仍存在著、甚至是破壞代碼保護(hù)功能的行為。就我們所知,所有這些行為都不是以Microchip中規(guī)定的操作規(guī)范來使用Microchip產(chǎn)品的。這樣做的人極可能了知識(shí)。為了《數(shù)字器件千年法案(DigitalMillenniumCopyrightAct)》。如果這種行為導(dǎo)致他人在的情況下,能您的軟件或其他受保護(hù)的成果,您有權(quán)依據(jù)該法案提訟,從而制止這種行為。MicrochipTechnologyInc.及其和相關(guān)公司、各級(jí)主管與員工及事務(wù)機(jī)構(gòu)對(duì)譯文中可能存在的任何差錯(cuò)不承擔(dān)任何責(zé)任。建議參考MicrochipTechnologyInc.的英文原版文檔。本物中所述的器件應(yīng)用信息及其他類似內(nèi)容僅為您提供便是您自身應(yīng)負(fù)的責(zé)任。Microchip對(duì)這些信息不作任何明示或暗示、或口頭、法定或其他形式的或擔(dān)保,包括但不性的或擔(dān)保。Microchip對(duì)因這些信息及使用這些信息而引起的不承擔(dān)任何責(zé)任。Microchip批準(zhǔn),不得Microchip的產(chǎn)品用作生命維持系統(tǒng)中的關(guān)鍵組件。在Microchip知識(shí)保護(hù)下,不得暗中或以其他方式轉(zhuǎn)讓任
MicrochipMicrochipAccuron、dsPIC、KEELOQ、microID、MB、PIC、PICmicro、PICSTART、PROMATE、PowerSmart、rfPIC和Amb、FilterLab、MigratableMemory、MXDEV、EmbeddedControlSolutions 均為MicrochipTechnologyInc.在的 og-for-the-DigitalAge、ApplicationMaestro、dsPICDEM、dsPICDEM.net、dsPICworks、ECAN、ECONOMONITORFanSenseFlexROMfuzzyLAB、In-CircuitSerialProgramming、ICSP、ICEPIC、LinearPICkit、PICDEM、PICDEM.net、PICLAB、PICtail、EnduranceWiperLockMicrochipTechnologyInc.在在此提及的所有其他商標(biāo)均為各持有。?2005,MicrochipTechnologyInc.Microchip位于亞利桑那州Chandler和Tempe及位于加利福尼亞MountainView的全球總部、設(shè)計(jì)中心和晶圓生產(chǎn)廠均于2003年10ISO/TS-16949:2002PICmicro8性器和模擬產(chǎn)品方面的質(zhì)量體系流程均符合ISO/TS-系也已通過了ISO9001:2000認(rèn)證。第ii 2005MicrochipTechnology準(zhǔn)為±1%串行編程(In-CircuitSerial
121201.2的8位定時(shí)器/計(jì)數(shù)器-10位(1有21有21有2
8989 捕捉/比較/()模 致客戶致客戶 器件/ 所有PICmicro?單片機(jī)均采用先進(jìn)的RISC架構(gòu)。PIC16F627A/628A/648A具有增強(qiáng)的內(nèi)核功能、8級(jí)深指令總線和數(shù)據(jù)總線,允許同時(shí)取14位寬指令字與獨(dú)PIC16F627A/628A/648A單片機(jī)與同類的其他8位單片
1-1PIC16F627A/628A/648A中檔單片機(jī)系圖序(如檢測(cè)電平、脈沖產(chǎn)生、定時(shí)器等)變得十分便用第C編譯器支持工具。TMR0TMR0TMR0TMR0TMR0TMR0222222111111有有有有有有30-20-有有有有有有SOIC20SOIC20SOIC20SOIC20SOIC20SOIC20SSOP28SSOP28SSOP28SSOP28SSOP28SSOP28 類有多種頻率和封裝類型可供選擇。根據(jù)應(yīng)用和生產(chǎn)要求,可以通過器件最末的“PIC16F627A/628A/648A產(chǎn)品識(shí)別體系”來選擇適當(dāng)?shù)钠骷T谟嗁徠骷臅r(shí)候,也請(qǐng)使用的這一頁來指定正確的II編程器)進(jìn)行擦除或重新編程。ProductionQTP)器件是所有的編程單元和配置已在出廠前設(shè)定。Microchip細(xì)信息,請(qǐng)聯(lián)系當(dāng)?shù)豈icrochip銷售辦事處。ProductionSQTPSM)器件Microchip提供一種獨(dú)特的編程服務(wù),可用不同的序列 系列的高性能可以歸功于 微處理器中普遍采用的架構(gòu)特點(diǎn)。首先,PIC16F627A/628A/648A采用了哈佛架構(gòu),在這個(gè)架構(gòu)中,分別使用獨(dú)立的總線從獨(dú)立的器中存取程序和數(shù)據(jù)。與傳統(tǒng)的程序和數(shù)據(jù)器合二為一的馮·的程序和數(shù)據(jù)器允許指令寬度超過8位。由于指令14位寬的程序器總線可以在單周期內(nèi)取一條14位的指令。兩級(jí)流水線可以使取指和執(zhí)行指令同時(shí)進(jìn)行。因此,除了程序轉(zhuǎn)移指令以外,所有指令(35條)都可以在單周期(時(shí)鐘頻率為20MHz時(shí)為200ns)內(nèi)執(zhí)行。 器1024x224x128x2048x224x128x4096x256x256x1024x224x128x2048x224x128x4096x256x256x
中,操作數(shù)放在W寄存器中或某個(gè)文件寄存器中。位。例如指令SUBLW和SUBWF。3-13-2器。所提供的非易失性EEPROM數(shù)據(jù)器用長(zhǎng)期數(shù)據(jù),例如校準(zhǔn)值、查表數(shù)據(jù)以及其他可能需失。所提供的另一個(gè)數(shù)據(jù)器是常規(guī)的RAM數(shù)據(jù)存RAM數(shù)據(jù)器用于對(duì)正常操作中的數(shù) 雙向I/O—雙向I/O—雙向I/O——Vref雙向I/O——雙向I/O————件正常運(yùn)行時(shí)MCLR/VPP上的電壓過Vdd——雙向I/O——雙向I/O——雙向I/O端口。可以軟件編程實(shí)現(xiàn)內(nèi)部弱上—雙向I/O端口。可以軟件編程實(shí)現(xiàn)內(nèi)部弱上—同步數(shù)據(jù)雙向I/O端口。可以軟件編程實(shí)現(xiàn)內(nèi)部弱上—同步時(shí)鐘雙向I/O端口。可以軟件編程實(shí)現(xiàn)內(nèi)部弱上1捕捉/比較/O==CMOS =—=I=STTTL=TTL=AN= PIC16F627A/628A/648A引腳配置描述(續(xù)雙向I/O端口。引腳電平變化可觸發(fā)中斷。可—雙向I/O端口。引腳電平變化可觸發(fā)中斷。可雙向I/O端口。引腳電平變化可觸發(fā)中斷。可———ICSPTM雙向I/O端口。引腳電平變化可觸發(fā)中斷。可——邏輯和I/O—邏輯和I/OO==CMOS =—=I=STTTL=TTL=AN=時(shí)鐘輸入(OSC1/CLKIN/RA7引腳)信號(hào)在器件內(nèi)部Q2、Q3Q4。在此過程中,程序計(jì)數(shù)器(PC)在每Q1Q4周期中進(jìn)3-2所示為時(shí)鐘和指令執(zhí)行流
4Q(Q1Q2Q3和了程序計(jì)數(shù)器,則需要兩個(gè)指令周期來完成指令Q1周期,將所取指令鎖存到指令寄存器(IR)Q2、Q3和Q4周期中進(jìn)行指令的譯周期,寫操作發(fā)生在Q4周期(寫入目標(biāo)單元)。 MOVLWMOVLWMOVWFPORTA, PIC16F627A/628A/648A13位的程序計(jì)數(shù)器,能尋址8Kx14的程序器空間。物理實(shí)現(xiàn)的只有1Kx14(PIC16F627A)2Kx14空間 器PIC16F627A、
數(shù)據(jù)器(圖4-2和圖4-3)被劃分為4塊區(qū),其中包含通用寄存器(GeneralPurposeRegister,SFR)。SFR位于每個(gè)區(qū)的前32個(gè)單元。每個(gè)區(qū)中的通用寄存器都是以靜態(tài)RAM的形式實(shí)現(xiàn)的。表4-1列出了這4個(gè)區(qū)中可用作通用寄存器的4-1:RAM7Fh的單元。這4個(gè)區(qū)中的寄存器。表4-2:區(qū)中的寄存區(qū)000101210311PIC16F648A256x8??芍苯踊蛲ㄟ^指針寄存器(FileSelectRegisterFSR)間接每4.4節(jié)“間接尋址、INDFFSR寄 15h16h17h
通用寄存器48字節(jié)
1:非物理寄存器。 15h16h17h
1:非物理寄存器。SFRCPU和外設(shè)功能,控制器件執(zhí)行期望操作的寄存器(表4-3)。這些寄存器是靜態(tài)RAM。關(guān)的SFR將外設(shè)功能部件章節(jié)中描述。表4-3:特殊功能寄存器綜述區(qū)BitBitBitBitBitBitBitBit(頁xxxxxxxx0000ZC0001xxxxxxxxxxxx————————————---00000—0000-———16位TMR1xxxx16位TMR1xxxx——--000000—-000——————xxxxxxxx——--00000000000000————————————0000 陰影=未實(shí)現(xiàn) BitBitBitBitBitBitBitBit(頁xxxx11110000ZC0001xxxx11111111————————————---00000—0000-———————— —————————1111————————————————0000-0000xxxxxxxx————-----------————000- 1:如需了解寄存器表的初始化狀態(tài),請(qǐng)參見表14-6和表1-7。 BitBitBitBitBitBitBitBit(頁xxxxxxxx0000ZC0001xxxx———xxxx————————————---00000———————————————————————————————————————————————————————————— 1:如需了解寄存器表的初始化狀態(tài),請(qǐng)參見表14-6和表1-7。 BitBitBitBitBitBitBitBit(頁xxxx11110000ZC0001xxxx———1111————————————---00000———————————————————————————————————————————————————————————— -=未實(shí)現(xiàn)單元,讀作0,u=未改變,x=未知,q=值隨條件變化,陰影=未實(shí)現(xiàn) 1:如需了解寄存器表的初始化狀態(tài),請(qǐng)參見表14-6和表1-7。Status(4-1所示)ALU的算術(shù)C標(biāo)志位的指令的目標(biāo)寄存器,則會(huì)寫入這三個(gè)標(biāo)志位。根據(jù)器件邏輯,這些位會(huì)置位或。而且,TO
結(jié)果為000uu1uu(其中u表示未變化)。注注1CDC位分別作為借位 ZCbit bitbit 23(100h 01(00hbit6- 0(00h 1(80h 2(100h 3(180hbit bit bit bit1 bit 的。對(duì)于移位指令(RRF和RLF),此位值來自源寄存器的最或最低位。10=注:要使TMR01:1注:要使TMR01:1,應(yīng)將預(yù)分節(jié)“切換預(yù)分頻器的分配”。OPTION寄存器是可讀寫的寄存器,它包含各個(gè)控制斷、TMR0和PORTB弱上拉。 bit bitbit 1=PORTB上bit bit bit bit bit2- TMR0分頻比WDT分頻1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:10=注:當(dāng)一個(gè)中斷條件發(fā)生時(shí),不管相應(yīng)的中斷允注:當(dāng)一個(gè)中斷條件發(fā)生時(shí),不管相應(yīng)的中斷允寄存器”和第節(jié)“PIR1寄存器”。 bit bitbit bit bit 0=TMR0中bit 0=RB0/INT外部中bit 0=RB端口電平變化中bit 1=TMR0寄存器已經(jīng)溢出(必須用軟件bit bit RW=U10= —bitbitbit0=EE寫操作完成中bitbit0=USART接收中bit0=USART發(fā)送中bitbit bit0=TMR2與PR2匹配中bit0=TMR1溢出中R=可讀 W=可寫 1=置0=x=未注:當(dāng)一個(gè)中斷條件發(fā)生時(shí),不管相應(yīng)的中斷IE注:當(dāng)一個(gè)中斷條件發(fā)生時(shí),不管相應(yīng)的中斷IE)件應(yīng)在允許一個(gè)中斷之前,確保先將相應(yīng)的中斷標(biāo)志位。 —bit bitbit bit =bit bit bit bit2 模式bit bit 1=TMR1寄存器溢出(必須用軟件10=注:BOR在上電復(fù)位時(shí)未知。它必須在上電復(fù)注:BOR在上電復(fù)位時(shí)未知。它必須在上電復(fù)BOR位是否為狀態(tài),從而指示是否發(fā)生的是欠壓復(fù)位。如果了欠壓電路 PCONMCLR復(fù)位、WDT復(fù)位或欠壓復(fù)位的標(biāo)志位。 —————bit bitbit7- bit bit bit =bit =10=程序計(jì)數(shù)器(PC)13位寬。它的低字節(jié)來自可讀寫PCL寄存器。高字節(jié)(PC<12:8>)不可直接讀寫,來自PCLATH。任何復(fù)位時(shí),PC都會(huì)被。圖4-4PC4-4中上面的示例給出 885作時(shí),要注意表地址是否超過了PCL的邊界(每aTableRead”(DS00556)。PIC16F627A/628A/648A813位作不會(huì)影響PCLATH。
RETFIE指令,或轉(zhuǎn)到中斷向量地址時(shí)發(fā)INDFINDF寄存器的指令實(shí)際問的是由指針寄存器(FSR)所INDF00h。而使用INDF寄存器進(jìn)行寫操作將導(dǎo)致執(zhí)行一個(gè)空的,如圖4-5所示。例4-1所示為一個(gè)使用間接尋址RAM單元20h- ;initialize;to ;clearINDF;inc;all;noclear;yes I/OPIC16F627A/628A/648APORTA就可能無法用作一般的I/O引腳。PORTA是一個(gè)8位寬的鎖存器。RA4為觸發(fā)器RA5(1)只是觸發(fā)器輸入,沒有輸出驅(qū)動(dòng)器。所有其他的RA端口引腳都有觸發(fā)器輸入電平和完整的CMOS輸出驅(qū)動(dòng)器。所有引腳都有數(shù)據(jù)方向控制位讀PORTA寄存器是引腳上的電平狀態(tài),而寫PORTA寄存器是將數(shù)據(jù)寫入端口鎖存器。所有寫操作就意味著總是先端口引腳電平,然后修改這個(gè)值,PORTA引腳與比較器和參考電壓功能復(fù)用。這些引腳0。注注1:RA5VPPRA5VPP電輸入。數(shù)字輸入(RA<3:0>)并強(qiáng)制3TRISA<6:7>。當(dāng)改寫TRISA<6:7>位。TRISARA輸出方向,即使引腳作為RA2引腳也能作為參考電壓的輸出。當(dāng)處于此模式時(shí),VREF引腳是極高阻抗的輸出。用戶必須配置TRISA<2>
能,必須將TRISA<4:3>位。 ;InitializePORTA;outputdata;Turncomparatorsoff;enablepinsforSTATUS,STATUS,RP0;Select ;Valueusedto;data;SetRA<4:0>as;TRISA<5>;readas;dependonDQ DQ QDRD DQ QDRD DQ1 0 QDRD DQ1 0 N RDQDRD 10 011,100,110 RD 下,RA6=I/O。 DQWRQDQWRQRDFOSC=QDRD 雙向I/O—雙向I/O—雙向I/O——Vref雙向I/O——雙向I/O—————雙向I/O——雙向I/O——O==CMOS =—=I=ST=TTL=AN= BitBitBitBitBitBitBitBitxxxxqqqu1111111100000000—000-000- 陰影單元表示PORTA未使用。 TRISB寄存器的某位清輸出復(fù)用。其標(biāo)準(zhǔn)端口功能和備用端口功能如5-3TRIS設(shè)通過將RBPU(OPTION<7>)位實(shí)現(xiàn)的。當(dāng)將PORTB端口的引腳配置為輸出時(shí),其弱上拉電路會(huì)自>該引腳就不會(huì)具有電平變化觸發(fā)中斷的功能)。當(dāng)前RB7:RB4輸入引腳上的電平與上次讀PORTB時(shí)鎖存的RB7:RB4RBIF中斷(INTCON<0>RBIFPORTB將結(jié)束失配狀態(tài),并且允許將RBIF標(biāo)志位。失配觸發(fā)中斷這個(gè)功能和這四個(gè)引腳上的可軟件配置從而實(shí)現(xiàn)按鍵喚醒功能(參見應(yīng)用筆記AN552“ImplementingWake-uponKeyStrokes”
PORTB的狀態(tài)。 PDQWR DQWR RD RD注:如果注:如果I/O引腳的電平在執(zhí)行操作時(shí)(Q2 P1 0WRCK WR RD RD P0 11WRCK WR RD RD P WR WR RDRD P WR WR RDQDRD WR WR RDRD > WR WR RDRD 雙向I/O—雙向I/O—同步數(shù)據(jù)雙向I/O—同步時(shí)鐘I/O雙向I/O1捕捉/比較/雙向I/O端口。引腳電平變化觸發(fā)中斷??梢攒浖幊獭p向I/O端口。引腳電平變化觸發(fā)中斷??梢攒浖幊屉p向I/O端口。引腳電平變化觸發(fā)中斷??梢攒浖幊獭p向I/O端口。引腳電平變化觸發(fā)中斷??梢攒浖幊獭狾==CMOS =—=I=ST=TTL=AN= BitBitBitBitBitBitBitBit其他復(fù)位xxxxuuuu1111111111111111 1:RB4的功能由LVP配置位設(shè)置。時(shí)必須。例如,對(duì)PORTB的bit5執(zhí)行BSF操作PORTB8CPUbitPORTBI/O(bit則不會(huì)有問題。但是,如果bit0隨后切換為輸出模式,寫指例5-2給出了對(duì)I/O端口連續(xù)執(zhí)行兩個(gè)讀修改或“線與”)。產(chǎn)生的高輸出電流可能會(huì)損壞。
例5-2: ;Initial;InitialPORTsettings:PORTB<7:4> PORTB<3:0>;PORTB<7:6>haveexternalpull-upand;notconnectedtoother;;BCFSTATUS,RP0BCFPORTB,7BSFSTATUS,RP0BCFTRISB,7BCFTRISB,PORTlatchPORT-------------------;;01pppppp11pp;;10pppppp11pp;10pppppp10pp;;Notethattheusermayhaveexpected;pinvaluestobe00pppppp.The2nd;causedRB7tobelatchedasthepinI/O(圖5-)。因此,如果進(jìn)行寫操作之后,接著對(duì)同一個(gè)U(U可能是引腳的前一個(gè)狀態(tài)而非新狀態(tài)。當(dāng)狀態(tài)不確定個(gè)P指令或其他不該I/O令隔開這些指令。 Q1Q1Q2Q3Q4Q1Q2Q3Q4Q2Q3Q4Q1Q2Q3 1:此例為寫PORTB后,接著讀PORTB2:數(shù)據(jù)建立時(shí)間=(0.25TCY-TPD),其中TCY=指令周期,TPD=Q1周期到輸出有效的 圖6-1是Timer0模塊的簡(jiǎn)化框圖。信息,可查《 中檔單片機(jī)系列參考手冊(cè) 可通過將T0CS位(OPTION<5>)選擇定時(shí)器模TMR0RA4/T0CKI/CMP2引腳的每個(gè)(T0SE)控制位(OPTION<4>)T0SE位清Timer0模塊和看門狗共用。預(yù)分頻器的分配可通過軟件設(shè)置PSA控制位(OPTION<3>)來控制。PSA位可將預(yù)分頻器分配給Timer0。預(yù)分頻6.3Timer0預(yù)分頻器”。TMR0FFh00h的溢出時(shí),即產(chǎn)生Timer0T0IF1。中斷可以通過清零T0IE位(INTCON<5>)來。在重新允許中斷Timer0模塊的中斷服務(wù)程序中用軟件方法時(shí)器被關(guān)閉,所以Timer0中斷無法喚醒單片機(jī)。
Timer0用于外部時(shí)鐘輸入的計(jì)數(shù)時(shí),必須滿足一定Timer0仍然要經(jīng)過一段延時(shí)才會(huì)真正Q2Q4周期對(duì)預(yù)分頻器輸出1)T0CKI引腳上的信號(hào)高、低電平都至?xí)r鐘滿足采樣要求,必須考慮計(jì)數(shù)器。因此,要求T0CKI引腳上信號(hào)的周期至少為4TOSC(加上一小段40nsRC延時(shí))T0CKI引腳的高10ns的要求。具體請(qǐng)參考。參見表提供了一個(gè)8位的計(jì)數(shù)器作為Timer0模塊的預(yù)分頻器,或作為看門狗的后分頻器。如果把預(yù)分頻器分配給Timer0模塊就意味著看門狗無后分頻器可用,反之亦
PSA和PS<2:0>位(OPTION<3:0>)決定預(yù)分頻器的存器執(zhí)行的寫操作指令(CLRF1MOVWF1和BSF1,x等)都將預(yù)分頻器。當(dāng)將預(yù)分頻器分配 0811001810注 T0SET0CSPSA和PS<2:0>位在Option寄存器中WDT6-1中所示的指令序列,以
所示的指令序列。即使WDT被也要采取該預(yù)防措 ;ClearWDT STATUS,STATUS,;Skipifalready;Bank ;SelectTMR0,;prescalevalue;Clear;clock;Bank ;arerequired;ifdesired;000or;SetPostscaler;desiredWDT;ReturntoBank BitBitBitBitBitBitBitBitPORxxxxuuuu000000001111111111111111 1:Option寄存器在MB?IDE中用OPTION_REG表示。Timer18位寄存器(TMR1H和TMR1L)16TMR1寄存器(TMR1H:TMR1L)0000h開始遞增計(jì)數(shù),一直FFFFh0000h重新開始遞增計(jì)數(shù)。如果允許Timer1中斷,那么當(dāng)用于鎖存中斷標(biāo)志位TMR1IF(PIR1<0>)TMR1寄存器對(duì)發(fā)生溢出時(shí)就Timer1Timer1中斷允許位
在定時(shí)器模式下,TMR1寄存器對(duì)的值在每個(gè)指令周期TMR1ON(T1CON<0>)清零來使能/Timer1。模塊產(chǎn)生。(參見第9.0節(jié)“捕捉/比較/()模塊”)寄存器7-1中是Timer1控制寄存器。RB6/T1OSO/T1CKI/PGC引腳就變?yōu)檩斎胍_。即 ——bitbitbit7-bit5-bit0=關(guān)閉振蕩器bitbit1RB6/T1OSO/T1CKI/PGC引腳的外部時(shí)鐘(上升沿有效bit R=可讀 W=可寫 U=未實(shí)現(xiàn)位,讀作 1=置 0=通過將TMR1CS(T1CON<1>)位選擇定時(shí)器模內(nèi)部時(shí)鐘總是同步的,所以同步控制位T1SYNCTMR1CS1選擇計(jì)數(shù)器模式。在這種模式TMR1寄存器對(duì)的值在引腳RB7/T1OSI/PGD(T1OSCEN1時(shí))(T1OSCEN位時(shí))上的每個(gè)輸入時(shí)鐘上升沿到來時(shí)遞增1。以即使使用外部時(shí)鐘,TMR1寄存器對(duì)的值也不能遞增
經(jīng)過一段延時(shí)才會(huì)進(jìn)行遞增1操作。1:1時(shí),外部時(shí)鐘輸入和預(yù)分頻器的輸出Q2Q4周期,對(duì)預(yù)分頻器考電氣規(guī)范章節(jié)中的參數(shù)45、46和47。當(dāng)使用的預(yù)分分頻比不是1:1時(shí),外部時(shí)鐘輸入要先經(jīng)因此,必須要求T1CKI引腳上信號(hào)的周期至少為4Tosc(加上一小段40nsRC延時(shí))供預(yù)分頻器分頻。T1CKI引腳上信號(hào)的高低電平時(shí)間只需滿足最小脈寬為10ns的要求。具體請(qǐng)參考適用電氣規(guī)范中的參數(shù)45、46和47。 0 111,2,4,02 17-8以及時(shí)序參數(shù)45、46和47。當(dāng)計(jì)數(shù)器工作在外部異步時(shí)鐘下時(shí),讀TMR1H或816位定時(shí)器會(huì)對(duì)于寫操作,建議用戶停止計(jì)數(shù)器后再寫入需要的數(shù)法預(yù)知的值。
例7-1: ;;Allinterruptsaredisabled TMR1H,W TMR1L, TMPH,W ;Readhigh;;Readlow;;Readhigh;Sub1stread;2nd;Isresult=;Good16-bit;;TMR1Lmayhaverolledoverbetween;readofthehighandlowbytes.;thehighandlowbytesnowwillreada;; TMR1H,W ;Readhighbyte TMR1L,W ;Readlowbyte ;Re-enabletheInterrupts(ifrequired) 內(nèi)接有晶振電路。通過將控制位T1OSCEN(T1CON<3>)1使能該電路。它在休眠狀態(tài)下可以32.768kHz的時(shí)鐘晶振。表7-1給出了Timer1振蕩器的電容選擇。7-1:TIMER132.7681515 想要獲取有關(guān)晶振/電容選擇的信息,請(qǐng)查AN826“CrystalOscillatorBasicsandCrys-talSelectionforrfPIC?andPICmicro?Devices
TMR1IF(PIR1<0>)1Timer1在異步計(jì)數(shù)器模式下運(yùn)行,該當(dāng)對(duì)Timer1的寫操作與1的特殊觸發(fā)信號(hào)同在這種工作方式下,寄存器對(duì)RxH:RxL實(shí)際上變成了Timer1的周期寄存器。除了1特殊觸發(fā)信號(hào)(參見第9.2.4節(jié)“特殊觸發(fā)”)PORTMR1H和TMR1L復(fù)位至00h。1:1的預(yù)分頻比。在所有其他TMR1HTMR1L寄存器進(jìn)行寫操作時(shí),預(yù)分頻 BitBitBitBitBitBitBitBitPOR0Bh10Bh00000000—0000-0000-—0000-0000-16位TMR1xxxxuuuu16位TMR1xxxxuuuu——--00--uu 輸入時(shí)鐘(Fosc/4)1:11:4或1:16,可通過控制位00hPR2寄存器的值PR2寄存器初始化為(PIR1<1>)中)。通過控制位TMR2ON(T2CON<2>)可以關(guān)
1:1,1:4,1:124 —bit bitbit bit6- 00001:100011:2???11111:16bit bit1- 001:1011:41x1:160= BitBitBitBitBitBitBitBitPOR0Bh8Bh00000000—0000-0000-—0000-000-00011111111 捕捉/比較/()模16位捕捉寄存器、16位比較寄存器或作為主/從占空比寄存器。表9-1所示為模塊模捕捉/比較/寄存器1(R1)由兩個(gè)8位寄存器組成,這兩個(gè)寄存器為:R1L(低字節(jié))和R1H(高字節(jié))。1CON寄存器控制1
捕捉1CON ——bit bitbit7- bit5-4 bit3- x模式選擇 1000=比較模式,相符時(shí)置位輸出位(置 1IF位1001=比較模式,相符時(shí)輸出位(置 1IF位1010=比較模式,相符時(shí)產(chǎn)生軟件中斷(置 1011=比較模式,觸發(fā)特殊(置 1IF位;1復(fù)位10=在捕捉模式下,RB3/1引腳上發(fā)生時(shí),控制位1M<3:0>(1CON<3:0>)選擇。當(dāng)捕捉發(fā)生時(shí),中斷請(qǐng)求標(biāo)志位1IF(PIR1<2>)置位。此位必須用軟件。如果在寄存器R1中的值之前發(fā)生另一個(gè)捕捉,那么之前捕捉的在捕捉模式下,應(yīng)該通過置位TRISB<3>位將RB3/1引腳配置為輸入。 如果 31,4,欲使模塊使用捕捉功能,Timer1必須工作在定時(shí)應(yīng)該保持1IE(PIE1<2>)位為零以避免產(chǎn)生錯(cuò)誤位1IF。
通過設(shè)置1M<3:0>可以選擇四種預(yù)分頻比設(shè)置。只要模塊被關(guān)閉或者模塊不工作在捕捉模式,就將預(yù)分頻器的計(jì)數(shù)器。這就意味著任何復(fù)位都可以將預(yù)分頻器計(jì)數(shù)器。生中斷。而且,也不會(huì)將預(yù)分頻器的計(jì)數(shù)器,因此第一個(gè)捕捉可能是從一個(gè)非零的預(yù)分頻比開始的。9-1是切換捕捉預(yù)分頻比時(shí)建議采用的方法。該例也使預(yù)分頻器的計(jì)數(shù)器且不會(huì)產(chǎn)生“錯(cuò)誤”中斷。 moduleNEW_CAPT_PS;LoadtheWreg;thenew;modevalue 1CONwith;引腳上的操作取決于控制 Q SRTMR1H TMR1IF(PIR1<0>) 用戶必須通過TRISB<3>位將RB3/1引腳配注:注:1CON寄存器將強(qiáng)制 當(dāng)選擇了產(chǎn)生軟件中斷時(shí),1引腳上的電平不受影響。只會(huì)產(chǎn)生一個(gè)中斷(允許該中斷時(shí))。
觸發(fā)一個(gè)操作。參見寄存器9-1。1的特殊觸發(fā)輸出引起TMR1寄存器對(duì)復(fù)位。這使R1Timer116位可編程當(dāng)TMR1H、TMR1L寄存器對(duì)與 R1H、R1L寄存器對(duì)相符時(shí),立即產(chǎn)生特殊 器對(duì)才被復(fù)位。這使R1寄存器對(duì)實(shí)際上等同于特殊觸發(fā)輸出還可以啟動(dòng)A/D轉(zhuǎn)換。注:在產(chǎn)生特殊觸發(fā)的時(shí)鐘邊沿和產(chǎn)生 TMR1復(fù)位的時(shí)鐘邊沿之間,通過改變 BitBitBitBitBitBitBitBitPOR0Bh,10Bh,——86h,——11—— 在脈寬調(diào)制()模式下,1引腳產(chǎn)生的10位分辨率。由于1PORTB數(shù)注:1CON1O數(shù)據(jù)鎖存器。圖9-3所示為模塊在模式時(shí)的簡(jiǎn)化框圖 模塊,請(qǐng)參閱第9.3.3節(jié)“
一個(gè)輸出(圖9-4)包含一個(gè)時(shí)基(周期)和一段輸出保持高電平的時(shí)間(占空比)。頻率是周期的倒數(shù)(頻率=1/周期)。 出TMR2==PR214ToscTMR2TMR21引腳置位(例外:如果占空比注注 Timer2后分頻器對(duì)于確可以利用后分頻器來產(chǎn)生頻率與輸出 分辨率 中高8R1L中,而低2位是1CON<5:4>。由R1L:1CON<5:4>表示注 如注 如 PR2TMR2中的值相符(即當(dāng)周期結(jié)束時(shí)),占空比的值才被鎖存到R1H。在模式下,R1H占空比。雙重緩沖對(duì)于減少的毛刺是極
通過以下步驟配置模塊的操作 R1L寄存器和 TRISB<3>位將1引腳配置為輸通過寫T2CON設(shè)置TMR2 1.224.8819.5378.12156.3208.34111187 BitBitBitBitBitBitBitBit0Bh,10Bh,——86h,——— RA0RA3引腳復(fù)用。片上參考電壓(11.0節(jié)
入和輸出選擇。圖10-1是比較器的框圖。 bit bitbit7 當(dāng)C2INV=0時(shí):1=C2VIN+>C20=C2VIN+<C2C2INV11=C2VIN+<C20=C2VIN+>C2bit6 當(dāng)C1INV=0時(shí):1=C1VIN+>C10=C1VIN+<C1C1INV11=C1VIN+<C10=C1VIN+>C1bit 1C2bit 1C1bit3 CM<2:0>=001時(shí)CM<2:0010C2VINC2VINbit2- R-nPORW10 x=
CM<2:0>=000 CM<2:0>= CM<2:0>= CIS= RA3/AN3/CMP1 CIS= V N CIS= CIS=1 VN+ CM<2:0>=AAAACM<2:0>=CM<2:0>=A A V A RA4/T0CKI/CMP2CM<2:0>= CIS= VRA3/AN3/CMP1 CIS= V CM<2:0>=DDAAD=數(shù)字輸入 例10-1中的代碼描述了配置比較器模塊所必需的步10-1: CMCON,W;Initflag;Init;Loadcomparator;MaskcomparatorFLAG_REG,F;Storebitsinflag;Initcomparator;CM<2:0>=STATUS,RP0;Select;Initializedata;SetRA<2:0>as;RA<4:3>as;TRISA<7:5>always STATUS,RP0;SelectBank0 ;ReadCMCONtoend PIR1,CMIF;Clearpendinginterrupts STATUS,RP0;SelectBank1 PIE1,CMIE;Enablecomparatorinterrupts STATUS,RP0;SelectBank0 10-2所示為單比較器及模擬輸入電平與數(shù)字輸出之VINVIN時(shí),比VIN+端的模擬輸入電壓高于VIN-10-2中比較器輸起的不確定區(qū)。關(guān)于共模電壓,請(qǐng)參見表17-2。VINVIN上的信號(hào)相整(圖10-2)。
10-2:+-VssVdd之間,且可施比較器模塊也可以為比較器選擇使用內(nèi)部產(chǎn)生的參考1.0節(jié)“參考電壓模塊”對(duì)提供這一信號(hào)CM<2:0=010(圖10-1)下,比較器使用內(nèi)部參考電壓信號(hào)。這種模式下,內(nèi)部參考電壓加到兩個(gè)比較器的IN引腳上。的最大延遲(142頁的表17-2)。I/ORA3RA4CM<2:0>=110001同步輸出。每個(gè)比較器輸出的不確定區(qū)與規(guī)范中給出10-3為比較器的注1:當(dāng)讀端口寄存器時(shí),所有配置為模擬輸入引腳將根據(jù)觸發(fā)器輸入規(guī)范對(duì)模擬注1:當(dāng)讀端口寄存器時(shí),所有配置為模擬輸入引腳將根據(jù)觸發(fā)器輸入規(guī)范對(duì)模擬將導(dǎo)致輸入緩沖器的電流消耗超出規(guī)定10-3:CnICnINV QDRD 1CMCON<7:6>讀判斷實(shí)際發(fā)生的變化。CMIFPIR1<6>是比較器中斷標(biāo)志位。CMIF位必須通過復(fù)位。因?yàn)橐部梢园盐恢械娜魏我晃槐?,雖然當(dāng)有中斷條件產(chǎn)生時(shí)CMIF位仍會(huì)置位,但卻仍然不允許中斷。(Q2周期開始時(shí)),如任何對(duì)CMCON寄存器的讀寫操作都將結(jié)束失配
CM<2:0>111,關(guān)斷比較器。器件從休眠狀態(tài)中喚醒時(shí),CMCON寄存器的內(nèi)容不受較器模塊處于比較器復(fù)位模式(CM<2:0>000)。確圖10-4是一個(gè)簡(jiǎn)化的模擬輸入電路。由于模擬引腳和VDDVSS之間加有反向偏置二極管。因此模擬輸入電壓被限制在VSS和VDD之間。如果輸入電壓在任一方向上偏離這個(gè)范圍超過10k。任何連接到模擬 RS<10VT=5VT=±500 =閥值電壓 =引腳上的泄漏電流 BitBitBitBitBitBitBitBitPOR000000000Bh,10Bh,00000000—0000-0000-—0000注 x=未知,u=未改變,-=未實(shí)現(xiàn),讀作016級(jí)的梯形電阻網(wǎng)絡(luò)組成,提11-1為該參考電壓模塊16種不同的電
如果VRR=1:VVref=Vdd-- 1VR<3:VREF輸出時(shí),必需考慮參考電壓模塊的穩(wěn)定時(shí)獲得輸出電壓1.25V,如何配置參考電壓模塊。 —bit bit 1=VREF電0VREF電路斷電,無IDD 1VREFRA20VREFRA2 當(dāng)VRR1時(shí):VREFVR<3:024*當(dāng)VRR0時(shí):VREF1/4*VDDVR<3:032*R-nPORW10 x 16RRRR16選1(由VRCON<3:0>指定 ;4Inputs;to2STATUS,RP0;gotoBank;RA3-RA0;enable;lowrangesetSTATUS,RP0;gotoBank;10msVss(11-1)VrefVss或Vdd。由于參VddVrefVdd的如果因中斷或看門狗超時(shí)將器件從休眠模式下喚醒,VRCON寄存器內(nèi)容將不受影響。為了使休眠模式下的零,從而使參考電壓與RA2引腳斷開;同時(shí)通過將VRR位(VRCON<5>)選擇高電壓范圍。VREF值選擇位VRCON<3:0>也被。
參考電壓模塊的操作是獨(dú)立于比較器模塊的。如果信號(hào),將會(huì)增大電流消耗。使能VREFRA2作VREF輸出端外接一個(gè)緩沖器。圖11-2舉例說明了這一緩沖技術(shù)。 + BitBitBitBitBitBitBitBit—000-000-0000000011111111圖注 -=未實(shí)現(xiàn),讀作0異步收發(fā)器(UniversalSynchronousAsyn-chronousReceiverTransmitter,USART)也是一種串A/DD/A集成電路以及串行EEPROM等外設(shè)進(jìn)行通信。
主模式(半雙工從模式(半雙工要將RB2/TX/CK引腳和RB1/RX/DT引腳配置為通用同位和TRISB<2:1>位。 —bit bitbit7 1主模式(BRG產(chǎn)生時(shí)鐘信號(hào)0從模式(由外部時(shí)鐘源提供時(shí)鐘信號(hào)bit bit 0=發(fā)bit bit bit2 1bit 1TSR0TSRbit RW-nPOR10=x bit bitbit 0=串行端bit bit5 0=單字節(jié)接bit4 0=連續(xù)接收0=連續(xù)接bit bit bit 1=有溢出錯(cuò)誤(CREN位可將此位bit RW-nPOR10=x64x+64x+1x=6425+ 波特率發(fā)生器(BaudRateGeneratorBRG)支持USART的同步模式和異步模式。這是一個(gè)的8位SPBRG8位12-1(內(nèi)部時(shí)鐘)下的不同USART工作模式的波特率計(jì)算。FOSC=16MHzBRGH=SYNC=01圖注 X為SPBRG寄存器中的值(0到
即使對(duì)于低波特率時(shí)鐘,使用特率公(BRGH=1)也可能會(huì)有好處。這是因?yàn)镕OSC/(16(X+1))在某些情況下會(huì)降低波特率誤差。SPBRGBRG定時(shí)器復(fù)BitBitBitBitBitBitBitBitPOR—0000-0000-0000000000000000圖注 x=未知,-=未實(shí)現(xiàn),讀作0。陰影部分表示未被BRG使用 FOSC=20 值16值10值——————————————————————7090704高—0—0—0低 ——FOSC=7.15909 值5.0688值4值——————————————————00953————————高—0—0—0低———FOSC=3.579545 值1值32.768值——————6————————2——8————2——————————高 0—0 0低 — FOSC=20值16值10值——————73212————0——————————高 0—0 0低 ——FOSC=7.15909 值5.0688值4值—— 7——53————0————————————————————高 0 0—0低 ——FOSC=3.579545 值1值32.768值1——6——5————2————————————————————————————高 0 0 0低——— FOSC=20值16值10值840403——01——0000————FOSC=7.16 值5.068值4值76753321——00————————————FOSC=3.579 值1值32.768值6251301——0——————————8T首先發(fā)送和接收LAT的發(fā)送器和接收器在功能上是獨(dú)立的,但采用相同的數(shù)據(jù)格式和波特BRH位(TXSA<64T硬件不支持奇偶校驗(yàn),但該功能可由軟件實(shí)現(xiàn)(串行)移位寄存器(TSR)/TSR寄存器裝入數(shù)據(jù)。一旦停止位發(fā)送完TSR就會(huì)自動(dòng)裝入TXREG中的新數(shù)據(jù)(如果TXIF(PIR1<4>)置位??梢酝ㄟ^置位或TXIE使能位(PIE1<4>)來使能或都將置位,且無法用軟件。只有向TXREG寄存器裝入新數(shù)據(jù)此位才會(huì)復(fù)位。標(biāo)志位TXIF表示TXREG寄TSRTRMTTSRTSR寄存器是否為
是只有在TXREG寄存器裝入數(shù)據(jù)和波特率發(fā)生器(BRG)產(chǎn)生移位時(shí)鐘之后才能實(shí)際進(jìn)行數(shù)據(jù)發(fā)送寄存器的數(shù)據(jù)會(huì)被立即送到TSR寄存器,從而導(dǎo)致時(shí)復(fù)位發(fā)送器。因此TX/CK引腳會(huì)恢復(fù)到高阻態(tài)。為選擇9位數(shù)據(jù)發(fā)送方式,應(yīng)將發(fā)送位TX9(TXSTA<6>)置1,并且第9位應(yīng)寫入TX9DTXREGTSR寄存器為TSR9位數(shù) 1:TSR寄存器并未映射到數(shù)據(jù) 8220 TRISB<1>TRISB<2>位,將要高速波特率,應(yīng)將BRGH位置位。(參見第12.1節(jié)“USART波特率發(fā)生器”)。將TXIF位置位。wordwordbitbitwordbit TRMTword word word bitbitwordbit wordbitwordword BitBitBitBitBitBitBitBit—0000-0000-0000000000000000—0000-0000-—0000圖12-4所示為框圖。在RB1/RX/DT引腳上接收16倍頻,但是主接收串行移位寄存器工作頻率為位速率或FOSC。CREN位(RCSTA<4>)置位將當(dāng)采樣到停止位之后,RSR中接收到的數(shù)據(jù)被送到標(biāo)志位RCIF是只讀位,由硬件。在讀RCREG寄存器且RCREG寄存器為空時(shí),它會(huì)被硬件。RCREG寄存器是一個(gè)雙緩沖寄存器(即兩級(jí)深度的
FIFO)。因此可以實(shí)現(xiàn)接收兩個(gè)字節(jié)的數(shù)據(jù)并傳送到RCREGFIFORSR寄存存器仍然是滿的,則溢出錯(cuò)誤標(biāo)志位OERR(RCSTA<1>)會(huì)被置位。RSR寄存器中的數(shù)據(jù)將會(huì)丟RCREGFIFO中的如果OERR位被置位,則將RSR寄存器中的數(shù)據(jù)必須將它。如果檢測(cè)到停止位為零,則幀出錯(cuò)標(biāo)志FERR(RCSTA<2>)將被置位。FERR位和接收到9RCREG器前讀RCSTA寄存器。 或停止7 088 8 bit0bitbit bitbit8 word111 此時(shí)序圖顯示了地址字節(jié)后跟一個(gè)數(shù)據(jù)字節(jié)的情況。因?yàn)锳DEN=1且bit8=0,數(shù)據(jù)字節(jié)不會(huì)被讀入 bit0bitbit bitbit8 word1 11 此時(shí)序圖顯示了數(shù)據(jù)字節(jié)后跟一個(gè)地址字節(jié)的情況。因?yàn)锳DEN沒有更新(仍然為1)且bit8=0,數(shù)據(jù)字節(jié)不會(huì)被讀入RCREG(接收緩沖器)。 bit0bitbit8停 bit位bit8 word1 word2 TRISB<1>TRISB<2>位,將要高速波特率,應(yīng)將BRGH位置位。(參見第12.1節(jié)“USART波特率發(fā)生器”)。RCSTA9(如果已使 BitBitBitBitBitBitBitBitPOR—0000-0000-0000000000000000—0000-0000-—0000具有多處理器通信的特殊功能。將ADEN位個(gè)。它必須首先發(fā)出一個(gè)地址字節(jié)來標(biāo)識(shí)目標(biāo)從處理9位S1標(biāo)識(shí)的0A寄ADENRX99位為1,即表示接收到的字節(jié)是地址,此時(shí)從處理器會(huì)被中RSR寄存器的內(nèi)容將被移入接收緩沖器。這使從處理器僅被地址中斷,因此,從處理器可以檢查接收到的字節(jié)以查看自己的地址是否與該地址匹配。地址匹的N來RSR寄存器,那么以
位才起作用。當(dāng)ADEN位(=0)時(shí),會(huì)接收所有的數(shù)據(jù)字節(jié),并且第9位可作為奇偶校驗(yàn)位。12-4TRISB<1>TRISB<2>位,將要高速波特率,應(yīng)將BRGH位置位。能位RCIE已置位,將會(huì)產(chǎn)生一個(gè)中斷。OERRCREN清(如果已經(jīng)置位)以清除錯(cuò)誤。如果器件被尋址(RSR<8>=1,使能地址匹節(jié)和地址字節(jié)讀入接收緩沖器并中斷CPU。 BitBitBitBitBitBitBitBitPOR—0000-0000-0000000000000000—0000-0000-—0000(TXSTA<4>)置位可進(jìn)入同步模式。此外為了把RB2/TX/CKRB1/RX/DTI/O引腳分別配置為時(shí)鐘線CK時(shí)鐘線上發(fā)送主時(shí)鐘圖12-1所示是USART發(fā)送器的框圖。發(fā)送器的是(串行)移位寄存器(TSR)/TXREGTXREG寄存器要用軟件裝入數(shù)據(jù)。一次裝入數(shù)據(jù)的最后一位發(fā)位發(fā)送完成,就會(huì)將TXREG寄存器中的新數(shù)據(jù)裝入TSR(TXREG中有新數(shù)據(jù)的話)TXREG寄TSR(T周期內(nèi)完成)允許或該中斷。不管使能位TXIE的狀態(tài)如何,都TXREG寄存器裝入新數(shù)據(jù)此位才會(huì)復(fù)位。TXIF標(biāo)志位TSRTRMT位是一個(gè)只讀位,當(dāng)TSRTRMT位相關(guān)的中斷邏輯,所以用戶必須通過查詢TRMT位來判斷TSR寄存器是否為空。TSR并未映射到數(shù)據(jù)器中,所以TXREG寄存器裝入數(shù)據(jù)之后才開始實(shí)際上的CK線上下一個(gè)有效時(shí)鐘上升沿被移出。數(shù)據(jù)輸出在同步時(shí)鐘下降沿前后是穩(wěn)定的(12-8)TXREG寄TXEN(12-CREN和SREN位時(shí)BRG保持復(fù)位狀態(tài)。將TXEN寄存器的數(shù)據(jù)會(huì)被立即送到TSR寄存器,從而導(dǎo)致TXREG寄存器為空??梢赃M(jìn)行背對(duì)背發(fā)送。
在發(fā)送過將TXEN位會(huì)導(dǎo)致發(fā)送中止,同時(shí)發(fā)在收到一個(gè)字后,SREN位會(huì)被,由于TXEN位仍DT線將立即這種情況,必須將TXEN位。9TX9(TXSTA<6>)應(yīng)被置98位數(shù)據(jù)寫入TXREG寄TSR寄存器。如果TSR空且在TX9DTXREG寄存器,此時(shí)送入TSR的第9位數(shù)據(jù)是TX9D的“當(dāng)前”值。TRISB<1>TRISB<2>位,將SPBRG(參見第12.1節(jié)“USART波特率發(fā)生器”)。TXEN BitBitBitBitBitBitBitBit—0000-0000-0000000000000000—0000-0000-—0000 bitbitbitbitbitTXENCREN位(RCSTA<4>)兩者之一被置位都可以使RB1/RX/DT引腳上的數(shù)RCIF(PIR1<5>)會(huì)置位。該中斷。RCIF標(biāo)志位是只讀位,由硬件復(fù)位。它在RCREG寄存器被讀之后或?yàn)榭諘r(shí)被復(fù)位。RCREG可以允許在接收到兩個(gè)字節(jié)的數(shù)據(jù)并傳送給RCREG (將CREN位)。如果OERR 9位數(shù)據(jù)以與其他接收數(shù)據(jù)同樣的方式被緩沖。讀RCREG寄存器將會(huì)給RX9D位裝入新值,因此為了不器之前讀RCSTA寄存器。
TRISB<1>TRISB<2>位,將SPBRG(參見第12.1節(jié)“USART波特率發(fā)生器”)。SREN果需要連續(xù)接收,則將CREN位置位。能位RCIE置位,則會(huì)產(chǎn)生一個(gè)中斷。RCSTA9(如果已使 BitBitBitBitBitBitBitBit—0000-0000-0000000000000000—-000-000-—0000 Q2Q3Q4Q1Q2Q3Q4Q1Q2Q3Q4Q2Q3Q4Q1Q2Q3Q4Q1Q2Q3Q4Q1Q2Q3Q4Q1Q2Q3Q4Q1Q2Q3Q4Q1Q2Q3Q4Q1Q2Q3Q4Q1Q2Q3Q4Q1Q2Q3Q4RB1/RX/DTbitbitbitbitbitbitbitbitRB2/TX/CK引 SRENSRENCRENRCIF00 TX/CK(主模式由內(nèi)部提供移二個(gè)字送入TSR,標(biāo)志位TXIF置位。如果中斷允許位TXIE為1,中斷將把從休到中斷矢量(0004h)。
TRISB<1>TRISB<2>位,將通過將SYNC和SPEN位置位并CSRC位,將CREN和SREN位 的。另外,SREN位在從模式下未使用。如果在執(zhí)行SLEEP指令之前已使能接收模式(即將CREN位置位),那么在休眠狀態(tài)下仍可以接收一個(gè)數(shù)斷,那么程序?qū)⑻D(zhuǎn)至中斷失量(0004h)。
TRISB<1>TRISB<2>位,將通過將SYNC和SPEN位置位并CSRC位,能位RCIE置位,將會(huì)產(chǎn)生一個(gè)中斷。RCSTA9(如果已使 BitBitBitBitBitBitBitBit—0000-0000-0000000000000000—0000-0000-—0000 BitBitBitBitBitBitBitBit—0000-0000-0000000000000000—0000-0000-—0000EEPROM數(shù)據(jù)器在正常工作狀態(tài)下(整個(gè)VDD范EECON2(不是物理實(shí)現(xiàn)的寄存器128EEPROM0h到7Fh;PIC16F648A器件具有256字節(jié)的數(shù)據(jù)EEPROM,地址范圍從0h到FFh。
EEPROM數(shù)據(jù)器允許字節(jié)讀寫。字節(jié)寫操作會(huì)自數(shù)據(jù)器以其高擦/寫次數(shù)而聞名。寫入時(shí)間由片上定時(shí)器控制。它會(huì)隨著電壓、溫度以及具體的不同而變化。如需了解具體的限制,請(qǐng)參見AC規(guī)范。當(dāng)器件被代碼保護(hù)時(shí),CPU仍可繼續(xù)讀寫數(shù)據(jù)EEPROM器。但器件編程器將再也無法此存有關(guān)數(shù)據(jù)EEPROM的信息,可參見《PICmicro? bit7- RW10=x bit bit6- RW-nPOR10=xPIC16F648AEEADREEPROM的PIC16F627A/628A的EEADR寄存器只尋址數(shù)據(jù)EEPROM1288
EECON1控制寄存器的低4位是物理實(shí)現(xiàn)的。其高4位為不存在,讀作0。被。正常工作時(shí),當(dāng)寫操作被MCLR復(fù)位或WDT超時(shí)復(fù)位中斷時(shí),WRERR位置位。在這些情況下,復(fù)位后用戶可以檢查WRERR位的狀態(tài)并重寫該單元。EEDATA和EEADR寄存器中的數(shù)據(jù)和地址將保持不EECON2EECON20。EECON2寄存器僅在數(shù)據(jù)EEPROM寫過使用。 ————bit bitbit7- bit 1=提前終止寫操作(由于正常操作過的任何MCLR復(fù)位、WDT復(fù)位或BOR復(fù)位0=bit 1=0=寫數(shù)據(jù)bit 0=EEPROMbit 0=EEPROMRW-nPOR10=x要數(shù)據(jù)器單元,用戶必須將地址寫入EEADRRD(EECON1<0>)。隨后可在下一條指令中。EEDATA將把此值保存至下一次用戶向該單元或?qū)懭霐?shù)據(jù)時(shí)(在寫操作過) STATUS,RP0 STATUS,RP0 ;Addresstoread EECON1,RD ;EERead EEDATA,W ;W=EEDATA STATUS,RP0 ;Bank0EEPROM數(shù)據(jù)單元,用戶必須首先將地址寫入STATUS,RP0INTCON,GIESTATUS,RP0INTCON,GIE;Bank;Enable;Disable;See;;Write;;Write;SetWR如果未完全按照上例中的順序(55h寫入代碼段中中斷。在執(zhí)行必需的指令序列時(shí)也會(huì)執(zhí)行期數(shù)不等,那么數(shù)據(jù)將不會(huì)寫入EEPROM。EECON1中的WREN位置位以使能寫操作。這種機(jī)制可防止由于執(zhí)行錯(cuò)誤(不期望的)代碼(例如程序跑飛)導(dǎo)致誤寫入EEPROM。除了更新EEPROM時(shí)以外,用戶應(yīng)該始終保持WREN位。硬件不能WREN位。一個(gè)寫過程開始后,將WREN位將不會(huì)影響此寫WRENWR位將無法置位。
,WR件且E斷標(biāo)志位(EEWreCmpeInterrtFlagt,EEIF)置位。用戶可以使能此中斷或查詢此位。的EEIF位必須用軟件。視應(yīng)用而定,好的編程習(xí)慣可能規(guī)定將寫入數(shù)據(jù)EEPROM(13-3)EEPROM的數(shù)據(jù)位擦寫次數(shù)接近規(guī)范極限值的應(yīng)用13-3: STATUS,RP0;Bank1MOVFEEDATA,W EECON1,RD;Read;value;;Isthevaluewritten(inWreg);read(inEEDATA)the; BTFSSSTATUS,Z;Isdifference0?GOTOWRITE_ERR;NO,Writeerror ;YES,Good ;ContinueEEPROM寫入數(shù)據(jù)。為了防止誤寫EEPROM,器件內(nèi)建了各種保護(hù)機(jī)制。在上電(72ms)EEPROM。EEPROM是高耐用性,通過字節(jié)尋址的陣列,優(yōu)經(jīng)常更新的數(shù)據(jù))。如果一個(gè)段中的變量經(jīng)常發(fā)生改
注:如果數(shù)據(jù)注:如果數(shù)據(jù)EEPROM僅用于常量和/或刷新。請(qǐng)參見規(guī)范D124。 EECON1,;retrievedatainto;firststepof;...required;secondstepof;...requiredEECON1,;startwriteEECON1,;waitforwrite$-EEADR,;testforendof;128bytesinEEADR,;nextEEADR,;testforendof;endofconditional BitBitBitBitBitBitBitBitxxxxuuuuxxxxuuuu————-------- x=未知,u=未改變,-=未實(shí)現(xiàn),讀作0,q=值隨條件變化。陰影單元表示未被數(shù)據(jù)EEPROM使用。 是單片機(jī)與其他處理器的區(qū)分。PIC16F627A/628A/648A系列具有以下功能,旨在最大限度地提高系統(tǒng)可ID串行編程(In-Circuit Programming?,ICSP?)蕩器起振定時(shí)器(OST),旨在確保在晶振達(dá)到穩(wěn)定前處于復(fù)位狀態(tài)。另外一個(gè)是上電延時(shí)定時(shí)器(PWRT)72ms(標(biāo)稱值)的固定LP晶振模式可降低系統(tǒng)功耗??梢允?/p>
可以通過對(duì)配置位編程(讀作“0”)(讀作用戶會(huì)注意到地址2007h超出了用戶程序空間范圍。事實(shí)上,它屬于特殊配置空間(2000h-3FFFh),僅可在編程時(shí)對(duì)其進(jìn)行。信息參見PIC16F627A/628A/648AEEPROMMemory ————bit bitbit bit12- bit 1=數(shù) 0=數(shù) bit bit 0=BOR復(fù)bit bit 1=bit 0=bit41- ======== 整個(gè)閃存程序器。詳情參見PIC16F627A/628A/648AEEPROMMemoryProgrammingSpecification(DS41196)。ProgrammingSpecification(DS41196)。U=4552.04.04552.04.022-10015-6815-6822-10015-6815-688.016.010-6810-2210-6810-22PIC16F627A/628A/648A8
XT、LPHS模式下,OSC1OSC2引腳連接一個(gè)晶振或陶瓷諧振器以產(chǎn)生振蕩(圖14-1)。模式下,器件可用一個(gè)外部時(shí)鐘源來驅(qū)動(dòng)OSC1引腳
3220015-300-1515-300-151002468-15015-3015-30150-20015-3015-308102015-3015-3015-3015-3015-3015-30注:采用較大的電容值雖然可以提高振蕩器的穩(wěn)定性,但是同時(shí)會(huì)延長(zhǎng)振蕩器的起振時(shí)間。這些值設(shè)計(jì)參考。為避免對(duì)要求低驅(qū)動(dòng)電壓的晶振造成過串聯(lián)電阻(RS)。由于晶振的特性圖14-2為并聯(lián)諧振振蕩電路的實(shí)現(xiàn)原理。該電路設(shè)計(jì)74AS04反相器提供并聯(lián)振蕩器所穩(wěn)定性。10k電位器將74AS04偏置性工作區(qū)。圖14-2: 14-3為串聯(lián)諧振振蕩電路。該電路也設(shè)計(jì)為使用晶振的基頻。反相器為串聯(lián)諧振振蕩電路提供180°相
圖14-3: 330330330 0.1VDD5V、25C條件下,高精度內(nèi)部振蕩器提供一PIC16F627A/628A/648A14-4說明了應(yīng)當(dāng)如何配置外部時(shí)鐘電14-4:RCRCCEXT值較小時(shí)。用戶還需要考慮外部元件(RC)14-5顯示了如何外接R/C電路。14-5:RC推薦值:3kREXT100k(VDD10kREXT100k(VDD<3.0V)CEXT20pFI/O端口。另一個(gè)選擇把Fosc信(內(nèi)部時(shí)鐘的四分頻)。
4MHz48計(jì)數(shù)器和時(shí)鐘輸出CLKOUT停止。POR時(shí)它們的狀MCLRWDT喚醒的影響,因?yàn)檫@被視為恢14-7對(duì)所有寄存器的復(fù)位圖 SQRQ PORVDDMCLR、BORPWRT保持在復(fù)位狀態(tài),直到滿足工作條件為PWRTVDD上升到適當(dāng)?shù)碾娖?。配置位PWRTE可以(如果被置位)或使能PWRT。DC(表
(OSC1輸入)OST延時(shí)完成,才開OST延時(shí)。參見17-7。PIC16F627A/628A/648ABOR電路。配置位BOREN可以(如果被或編程)或使能(如果被置位)BORVDDVBOR以下的持TBORVDDVBORTBOR,不能保證是否會(huì)發(fā)生復(fù)(14-7)。如果使能了上電延時(shí)定時(shí)器,此時(shí)它將啟動(dòng),并且會(huì)使器件保持復(fù)位狀態(tài)的時(shí)間延長(zhǎng)72ms。VDDVBOR以下,VDDVBOR以上,上電延時(shí)定72ms14-7所示為典 VBOR72 VBOR <72ms7272注 PORPWRT配置和PWRTE位的狀態(tài)。例如,在RC模式且PWRTE位置1(PWRT)的情況下,根本不會(huì)出現(xiàn)延時(shí)。圖14-8、圖14-9和圖14-10說明了延時(shí)過程。POR脈沖延時(shí),因此若MCLR引腳保持足夠長(zhǎng)時(shí)PIC16F627A/628A/648A器件非常有用。
態(tài)未知。然后,用戶必須將該位置1,并在隨后的復(fù)位欠壓復(fù)位。如果欠壓電路(通過在配置字中設(shè)表示一定發(fā)生過上電復(fù)位(VDD可能曾經(jīng)處于過低的狀 72ms+72ms+282.8—282.8——72—72—6 0X110X0XPORTO0XX0PORPD10XX110u110011uu正常工作期間MCLR1110休眠狀態(tài)下MCLR圖注 u=未改變,x=未 BitBitBitBitBitBitBitBit03h,103h,ZC0001000q————— ----u- x=未知,u=未改變,-=未實(shí)現(xiàn),讀作0,q=值隨條件變化。 0001 000u 0001 0000 uuu0----u-000x uuu1----u- MCLRMCLRWDTWDTW—xxxxuuuuuuuu00h,100h,———01h,xxxxuuuuuuuu02h,102h,00000000PC+03h,103h,0001000quuuq04h,104h,xxxxuuuuuuuuxxxxxxxxuuuu06h,xxxxuuuuuuuu0Ah,10Ah,---0---0---u0Bh,00000000uuuu0000-0000-qqqq-xxxxuuuuuuuuxxxxuuuuuuuu--00--uu--uu00000000uuuu-000-000-uuuxxxxuuuuuuuuxxxxuuuuuuuu--00--00--uu00000000uuuu00000000uuuu00000000uuuu00000000uu--11111111uuuu11111111uuuu86h,11111111uuuu0000-0000-uuuu- ----u-11111111uuuu0000-0000-uuuu-00000000uuuuxxxxuuuuuuuuxxxxuuuuuuuu------------———000-000-uuu- u=未改變,x=未知,-=未實(shí)現(xiàn)位,讀作0,q=值隨條件變化。 1:如果VDD過低,上電復(fù)位將被激活,寄存器將受到不同的影響。2INTCONPIR1(而引起喚醒)414-65bit0=0bit0=u7 圖14-11: DRC ,(ElectricalOverstress,EOS)導(dǎo)致MCLR/VPP引腳 ,R1=100至1k
注1體管Q1將關(guān)閉。VDDR1+=0.7 注1VDD(Vz+0.7V)時(shí),該電Vz等于穩(wěn)壓二極GIE(INTCON<7>)在置位時(shí)允許個(gè)中斷。復(fù)位時(shí)GIE。執(zhí)行“中斷返回”指令RETFIE,將退出中斷服務(wù)程INTCONINTRB端口電平變換中斷和TMR0溢出中斷標(biāo)志。特殊的PTR1
免RB0/INT重復(fù)請(qǐng)求中斷。對(duì)于外部中斷,例如INT引腳中斷或者PORTB輸確切的延時(shí)時(shí)間取決于中斷何時(shí)發(fā)生(圖14-注注1:各中斷標(biāo)志位的設(shè)置不受對(duì)應(yīng)的中斷位和GIE位的狀態(tài)影響。2:當(dāng)執(zhí)行一條GIE位的指令時(shí),將忽略行了GIE位的指令之后,CPU立即在 系統(tǒng)時(shí)鐘工作的外設(shè)才能將器件從休眠狀態(tài)喚醒。參見第14.8.1節(jié)“從休眠狀態(tài)喚RB0/INTINTEDGINTF(INTCON<1>)置位。可以通過INTE控制位(INTCON<4>)來該中斷。在重新允許該中斷前,必須在中斷服務(wù)程序中先用軟件將INTF位。如果INTE位在進(jìn)入休眠狀態(tài)前被置位,則RB0/INT中斷能把處理器從休眠狀態(tài)中喚醒。GIE位的14.8(休喚醒的時(shí)序請(qǐng)參閱圖14-17。TMR0寄存器中的溢出(FFh00h)將置位(INTCON<2>)位。可以通過置位/(INTCON<5>)位來允許/中斷。有關(guān)Timer0模塊的工作,請(qǐng)參閱第6.0節(jié)“Timer0模塊”。
的輸入電平變化將置 (INTCON<0>)位。可以通過置位 RBIE注:如果注:如果I/O引腳上的電平在執(zhí)行讀操作時(shí)(在Q2Q3周期開始前結(jié)束)發(fā)Q1Q2Q3Q4Q1Q2Q3Q4Q1Q2Q3Q4Q1Q2Q3Q4Q1Q2Q3Q1Q2Q3Q4Q1Q2Q3Q4Q1Q2Q3Q4Q1Q2Q3Q4Q1Q2Q3 hInstInst—InstInstInst(PC-InstInst BitBitBitBitBitBitBitBit(1)0Bh,10Bh,00000000—0000-0000-—0000-0000- 14-1Status寄存器和W寄存(W_TEMPBank00x70,因此它0xF00x1700x1F0都可進(jìn)行存?。?4-1:14-1:RAMStatusSWAPF ;copyWtotemp;couldbeinany;swapstatustobe;into;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國鋁擠壓行業(yè)市場(chǎng)運(yùn)營狀況及發(fā)展趨勢(shì)分析報(bào)告
- 2025-2030年中國金屬波紋補(bǔ)償器市場(chǎng)發(fā)展?fàn)顩r及前景趨勢(shì)分析報(bào)告
- 2025天津市安全員《B證》考試題庫及答案
- 2025-2030年中國聚對(duì)苯二甲酸丁行業(yè)投資戰(zhàn)略決策研究報(bào)告
- 2025-2030年中國紡織機(jī)械制造產(chǎn)業(yè)十三五規(guī)劃及投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國石斑魚市場(chǎng)運(yùn)行狀況與十三五規(guī)劃研究報(bào)告
- 2025-2030年中國電熱水器行業(yè)競(jìng)爭(zhēng)格局及投資戰(zhàn)略研究報(bào)告
- 2025年江西省建筑安全員A證考試題庫附答案
- 欽州幼兒師范高等??茖W(xué)?!缎履茉雌嚱Y(jié)構(gòu)與原理》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025浙江省安全員考試題庫
- 集裝箱七點(diǎn)檢查表
- 7S管理標(biāo)準(zhǔn)目視化管理標(biāo)準(zhǔn)
- 籃球場(chǎng)改造工程投標(biāo)方案(技術(shù)方案)
- 茉莉花的生長(zhǎng)習(xí)性及栽培管理辦法
- 蛤蟆先生去看心理醫(yī)生
- 懸挑式卸料平臺(tái)安拆作業(yè)安全技術(shù)交底
- 疾病診斷編碼庫ICD-10
- 腦血管造影病人的護(hù)理-課件
- 阿里巴巴管理精髓管理者必修的24招
- 西漢-北京大學(xué)歷史學(xué)系教學(xué)課件
- DB3202-T 1026-2022 無錫市安全生產(chǎn)技術(shù)服務(wù)單位等級(jí)評(píng)定規(guī)范
評(píng)論
0/150
提交評(píng)論