資源描述:
《看完這篇文章,PIC單片機(jī)就能入門(mén)了.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、看完這篇文章,PIC單片機(jī)就能入門(mén)了 可能很多網(wǎng)友奇怪,在數(shù)字芯片高速發(fā)展的今天,32位單片機(jī)價(jià)格低廉,功能強(qiáng)大,芯片成本已經(jīng)不是產(chǎn)品開(kāi)發(fā)的主要問(wèn)題,那為什么還要普及PIC單片機(jī),這樣一款中低端的單片機(jī)呢?原因很簡(jiǎn)單,既然現(xiàn)在還沒(méi)有被淘汰的,總有它存在的理由,PIC單片機(jī)號(hào)稱(chēng)穩(wěn)定性極好,可以在十分惡劣的環(huán)境下穩(wěn)定工作,因此在工業(yè)領(lǐng)域受到工程師們的偏愛(ài),而且目前來(lái)看,任何一個(gè)系列的單片機(jī)都在不斷的推陳出新,產(chǎn)品性能也在不斷的提升,PIC單片機(jī)也一樣,高端的PIC單片機(jī)也有32位的,主頻高達(dá)上百兆,詳細(xì)介紹大家可以去官網(wǎng)查看?! 〈偈刮覍?xiě)這樣一片文章的另外一個(gè)原因是,網(wǎng)上關(guān)于PIC單片機(jī)
2、的入門(mén)或者學(xué)習(xí)資料相對(duì)較少,不像STM32或者51單片機(jī)那樣豐富,如果是有一定單片機(jī)基礎(chǔ)的,想學(xué)習(xí)PIC單片機(jī),看完這篇文章,應(yīng)該就可以入門(mén)了。 來(lái)介紹一下我所使用的平臺(tái)信息、調(diào)試工具?! IC單片機(jī)型號(hào):dsPIC30F6014A 開(kāi)發(fā)環(huán)境:MPLABXIDEv3.05 下載工具:PICKit3.5 PICKit3.5下載器 一、安裝開(kāi)發(fā)環(huán)境 我是直接在官網(wǎng)(www.microchip.com)上下載的MPLABXIDEv3.05版本,400多兆,應(yīng)該是最新版本了,安裝過(guò)程中使用推薦選項(xiàng)就可以,還安裝了一個(gè)C30編譯器(MPLAB_C30_V3.0)?! 《?、新建項(xiàng)
3、目 我安裝開(kāi)發(fā)環(huán)境的時(shí)候,選擇了中文版本,進(jìn)入開(kāi)發(fā)環(huán)境后,點(diǎn)擊:文件à新建項(xiàng)目,彈出如下界面:選擇獨(dú)立項(xiàng)目,然后點(diǎn)下一步?! 〔襟E一 點(diǎn)擊下一步后彈出如下界面:選擇你使用的單片機(jī)型號(hào),這里我使用的是dsPIC30F6014A16位單片機(jī)?! 〔襟E二 繼續(xù)點(diǎn)下一步,這里選擇調(diào)試/下載工具,我使用的是PICkit3?! 〔襟E三 下一步,這一步選擇的是編譯器,選擇C30編譯器。 步驟四 最后一步,選擇項(xiàng)目的保存目錄,編碼這里選擇的是GB2312,這樣做的目的是使項(xiàng)目中的中文字符能夠被識(shí)別,否則,添加中文注釋時(shí)會(huì)出現(xiàn)亂碼。 步驟五 至此,項(xiàng)目新建完畢,界面如
4、下,項(xiàng)目目錄里面,我們目前只需要關(guān)注頭文件和源文件即可,在頭文件上右鍵可以選擇添加現(xiàn)有的頭文件,源文件同理。 文件添加完成后,點(diǎn)擊編譯按鈕進(jìn)行編譯,編譯通過(guò)后會(huì)在環(huán)境下方提示編譯信息, 編譯成功后,可以進(jìn)行下載和在線調(diào)試,下載按鈕用于將程序下載到單片機(jī)內(nèi)部,調(diào)試按鈕用于在線調(diào)試程序,注意,點(diǎn)擊調(diào)試按鈕程序不會(huì)下載到單片機(jī)內(nèi)?! 〗酉聛?lái)以閃燈測(cè)試程序來(lái)講解這款單片機(jī)的使用,在此之前先來(lái)了解一下《配置位》,在開(kāi)發(fā)環(huán)境中,點(diǎn)擊運(yùn)行àSetConfiguraTIonBits,即可在環(huán)境下方調(diào)出配置窗口,OpTIon下面的定義可以修改, 這里說(shuō)一下時(shí)鐘配置和看門(mén)狗配置,F(xiàn)OSC
5、用于配置系統(tǒng)時(shí)鐘,F(xiàn)WDT用于看門(mén)狗的配置,如果你想使用外部晶振、內(nèi)部進(jìn)行16倍頻,就選擇XT_PLL16即可,如果是內(nèi)部時(shí)鐘、4倍頻,就在選項(xiàng)中選擇FRC_PLL4,同理,看門(mén)狗的開(kāi)啟和關(guān)閉,以及開(kāi)啟后的設(shè)置也可以通過(guò)FWDT來(lái)配置,這里我們選擇關(guān)閉看門(mén)狗,只需將WDT選項(xiàng)選擇為WDT_OFF即可,注意,這里選擇好之后,必須點(diǎn)擊輸出生成源代碼,會(huì)自動(dòng)生成源碼,生成的源碼拷貝到你的項(xiàng)目文件中才有效?! ≈劣谝恍┰敿?xì)的配置請(qǐng)自行參見(jiàn)手冊(cè)?! ∩纱a 下面貼出LED閃燈的源碼,并逐語(yǔ)句進(jìn)行講解?! ”疚囊玫刂罚篽ttp://www.eepw.com.cn/arTIcle/2794
6、41.htm #include“p30f6014A.h”//包含頭文件 _FOSC(CSW_FSCM_OFF&XT_PLL16);//配置時(shí)鐘 _FWDT(WDT_OFF);//關(guān)閉看門(mén)狗 假設(shè)使用的外部晶振為5Mhz,系統(tǒng)指令周期的計(jì)算方法為: 5M*16/4=20MIPS 16為16倍頻,每執(zhí)行一條指令要4個(gè)時(shí)鐘周期,因此要除四,就得到了實(shí)際的系統(tǒng)時(shí)鐘?! O端口的配置 IO端口使用很簡(jiǎn)單,和51相比只是多了一個(gè)方向控制,在使用端口之前,先設(shè)置好方向。假設(shè)我們使用的端口A的第十位作為L(zhǎng)ED的控制位,首先設(shè)置該管腳的方向, TRISAbits.TRISA10=0
7、;//該位置零為輸出,置1位輸入 控制端口實(shí)際輸出高低電平的寄存器位LATAbits,將該寄存器的LATA10位進(jìn)行置1置0操作,即可輸出高、低電平?! ?defineLEDLATAbits.LATA10 值得注意的是,當(dāng)進(jìn)行讀引腳操作時(shí),要讀PORTAbits寄存器,而不是LATAbits寄存器。 我們是采用定時(shí)500ms中斷的方式來(lái)進(jìn)行LED的亮滅控制,因此需要進(jìn)行定時(shí)器的配置,這里使用的是16位定時(shí)器TImer1。涉及到兩個(gè)函數(shù)。