『壹』 pic的配置位是什麼意思
設置PIC單片機運行時的一些狀態信息,例如晶體類型(XT,HS,LP),是否使用看門狗,低電平復位等相關的信息。配置位只能是在燒寫時改好,程序運行時就不能更改了。
『貳』 pic單片機上電復位後所有I/O引腳將被 成什麼工作方式
復位後IO腳為輸入狀態。默認是普通的IO口作為數字式輸入模式,就是對應tris位被配置成1。
而如果這個IO引腳復用做AD輸入的話,就默認配置為模擬輸入。如果還被復用為和比較器相關的引腳,那麼就被配置為比較器輸入。
有的IO引腳復用為MCLR上電復位引腳,那麼它會根據你程序設置的配置位來決定其復位後是作為IO輸入還是作為MCLR引腳。
簡介
單片機也被稱為單片微控器,屬於一種集成式電路晶元。在單片機中主要包含CPU、只讀存儲器ROM和隨機存儲器RAM等,多樣化數據採集與控制系統能夠讓單片機完成各項復雜的運算,無論是對運算符號進行控制,還是對系統下達運算指令都能通過單片機完成。
由此可見,單片機憑借著強大的數據處理技術和計算功能可以在智能電子設備中充分應用。簡單地說,單片機就是一塊晶元,這塊晶元組成了一個系統,通過集成電路技術的應用,將數據運算與處理能力集成到晶元中,實現對數據的高速化處理。
『叄』 PIC單片機config配置問題
我專門給你編了個PIC16F1823的C程序,用的是PICC9.8。
其配置位的含義,請把這些程序編譯後在MPLABIDE的配置位窗口看,就知道了。
程序實現對一個埠的LED閃亮功能,圖為在PROTEUS模擬的結果,證明結果是正確的,我用的是PROTEUS7.9的,低的版本沒有這個單片機。
#include<pic.h>
//第一個配置設置為:振盪器為內部RC,各種功能(看門狗,上電定時器等)
__CONFIG(0x09E4);
//第二個配置設置為:關閉PLL鎖相環,掉電復位電壓為2.4V,低電壓寫使能
__CONFIG(0x3EFF);
#defineLEDRA5
voidDELAY(unsignedint);
voidmain(void)
{ //未對ODSCCON設置,即用默認的500kHz的內部振盪器,指令周期為8us
TRISA5=0;
LED=1;
while(1)
{ DELAY(3);
LED=!LED;
}
}
voidDELAY(unsignedintn)
{ unsignedinti;
for(i=0;i<n;i++)
{ NOP();
NOP();
NOP();
NOP();
}
}
『肆』 請教PIC12/16/18系列單片機io口位操作方法種類!
PIC單片機因種類多,不同型號的晶元的對IO位操作也不完全相同。沒有統一的操作方法。
也有各種編譯器定義不同而有不同的編寫方式,比如你說的RA0是因為所寫程序所調用的頭文件已經聲明了RA0的作用:如PIC12/16系列的基本都有這個聲明:
static bit RA0 @ (unsigned)&PORTA*8+0;
這表明RA0可以標識PORTA的最低位。
還有就是,PORT寄存器就不一定是對IO口的輸出操作寄存器,比如PIC18系列的IO口操作多了一個LAT寄存器,TRIS依舊是方向配置寄存器,但PORT則變成了讀IO狀態的寄存器,如果對PORT寫,只能寫到IO口對應的鎖存器里,但並不能輸出到IO引腳上,只有用LAT寄存器才能輸出到IO上,比如LATD=0X01,則 D口的最低位輸出一個高電平(當然方向寄存器TRISD還是要設置的)
說了那麼多,其實就是想告訴你,PIC單片機種類很多,雖然內部CPU架構和指令集差不太多,但在一些外設的配置上是變化很多的,這需要你寫程序的時候,必須對照相應的數據手冊來經行開發。
『伍』 在PIC單片機中,配置位__CONFIG(XT&WDTDIS&LVPDIS) 是怎麼得到的,裡面不是數字嗎
有二種方法可以得到,
一是從相應單片機型號的頭文件中可以找到,它實際上是用宏定義的方法,把幾個常數進行與操作,如你給的例子。
二是在MPLAB IDE的界面中設置後得到的數據,這個數據如0x3F39,至於這個數據代表是什麼,還得從MPLAB IDE的配置界面中去看。
這個參考文獻里說的比較詳細。
『陸』 為什麼PIC單片機定時器0記滿低8位不會向高8位進位是不是要有特殊的配置呀
你這是那款PIC的單片機啊?如果是PIC12或者PIC16的話,定時器0本身就是八位的,沒有高位。
看程序貌似是PIC18系列的,這個你注意看數據手冊,只有在讀TMR0L的時候,才能讀出TMR0H,有可能他已經進位了,只是沒讀出來。你可以以單步跟蹤的方式,看看在TMR0L快到FF的時候,是否對TMR0IF置位了。
我以前用PIC18F4680也遇到這種情況,我當時使用ICD2進行模擬,發現ICD2模擬或者軟體模擬的時候,查看watch有時候並不能及時反映寄存器的變化。
再有就是TMR0H不一定能直接看出來的,就像前面我說過的,你看數據手冊,一開始TMR0L溢出是到了TMR0上而不是TMR0H上。只有程序讀一下TMR0L,才能讓TMR0的數值自動移存到TMR0H那裡。所以,你想看他是否有變化,需要在程序中讀一下TMR0L。
或者你看中斷標志寄存器(不是叫你開中斷)溢出後會自動置位INTCON的bit2位的TMR0IF。就是讓你看看在TMR0L=0XFE的時候,單步運行一下,然後看TMR0IF是否被置位了。如果是,就說明你設置還是在8位定時器。
『柒』 怎樣用pic單片機頭文件配置字 具體怎麼用 我是c語言 要一位一位的配置 比如PLLEN_ON = 1;
我以現在最新的XC編譯器為例:
XC8(8位單片機):C:\Program Files (x86)\Microchip\xc8\v1.10\docs\chips
XC16(16位單片機):C:\Program Files (x86)\Microchip\xc16\v1.11\docs\config_docs
XC32(32位單片機):C:\Program Files (x86)\Microchip\xc32\v1.11\docs\hlpPIC32MXConfigSet.chm
我用的是Win7 64位系統,32位系統XC默認安裝目錄在C:\Program Files文件夾下。版本號也可能不一致,比如XC8編譯器C:\Program Files (x86)\Microchip\xc8\v1.10\docs\chips,v1.10是當前我安裝的XC版本號,這個地方要改成你安裝的XC版本號。
『捌』 pic單片機標志位問題
C:進位/借位位,結果有進位或者借位,C被置1,否則為0
DC:輔助進位/借位位,執行加、減運算指令後,若結果的低四位向高四位有進位或借位,則DC置1,否則置0
Z:零標志位,零標志位運算結果為零,Z被置1;運算結果不為零,Z被清零
『玖』 PIC單片機的配裝位如何設置
匯編指令這樣寫:
在程序開頭設置玩晶元信息即:list=xxx晶元後,用「__CONFIG」來配置,注意,這里的「__」是兩個下劃線,不是一個。CONFIG後面空格接各個配置位。例如:
__CONFIG _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC
我用的晶元是16F873,配置字關閉了看門狗「_WDT_OFF」,關閉掉電檢測「_BODEN_OFF」,打開上電復位「_PWRTE_ON」,振盪電路選外部標准晶振「_XT_OSC」。PIC各個不同型號的晶元之間有不同的配置位,你用那款晶元就去microchip的網站找這晶元的數據手冊,裡面有這晶元涉及到的配置位說明。
對於C語言程序:
也是「__CONFIG」用來設置配置位,但格式稍稍不同
__CONFIG { WDTDIS & BORDIS & PWRTEN & XT };