當(dāng)前位置:首頁 > 公眾號(hào)精選 > 嵌入式微處理器
[導(dǎo)讀]開發(fā)、學(xué)習(xí)PIC單片機(jī),會(huì)用到哪些軟硬件工具?


最近,一個(gè)帖子上了21ic論壇的熱榜。名為panxiaoyi的網(wǎng)友在論壇咨詢了關(guān)于入門PIC的技巧,背景是這樣的:

1:8位的PIC,選什么型號(hào)來學(xué)比較好?要求這個(gè)芯片是近幾年【新推出】的【大眾化】的,有LQFP32以下封裝甚至有PID封裝的。

2:MPLAB IDE ,MPLAB X IDE ,MPLAB? XC8 ,它們之間是什么關(guān)系?需要注冊(cè)或者購買版權(quán)的嗎?我只會(huì)用C語言,我需要安裝什么軟件?

3:需要購買下載線嗎?還是有USB轉(zhuǎn)串口即可下載?仿真工具暫時(shí)就不考慮了(如果是一體化的便宜的也可以考慮)。

4:我之前就喜歡玩AVR的ATmega48-88-168,沒有選擇M128來玩是因?yàn)橛X得它比較老款,而且它沒有LQFP32以下的封裝,再說我也不需要太大的資源

5:最重要的是我不懂得E文,之前的AVR有少量的中文,后來出的基本沒有中文數(shù)據(jù)手冊(cè)了,而我這幾天發(fā)現(xiàn)原來PIC【官網(wǎng)】有大量的中文數(shù)據(jù)手冊(cè),而且 MPLAB X IDE 也是中文界面的,既然它對(duì)中文這么友好,所有我就想學(xué)一下它。這幾天我還在【芯圣】單片機(jī)那里購買了3塊HC89F0541的51系列1T的開發(fā)板,正準(zhǔn)備來玩一下的,突然發(fā)現(xiàn)這個(gè)PIC有個(gè)中文社區(qū),里面有大量的中文資料,所以,就不想了解HC89F0541了,估計(jì)PIC比較可靠是嗎?

另外也想說一下這個(gè)HC89F0541芯圣單片機(jī),看【芯圣】資料他家的所有單片機(jī)都有一個(gè)很好的特色,就是:外設(shè)功能引腳全映射模塊。它允許大部分功能端口可任意映射到任意I/O 端口,比如說UASRT的TXD,RXD,它可以指定由任意的IO腳輸出或者輸入。

熱心的網(wǎng)友是這樣推薦的:

開發(fā)、學(xué)習(xí)PIC單片機(jī)要用到以下軟硬件工具:

1. MPLAB IDE 老的集成開發(fā)環(huán)境軟件,這個(gè)是所有PIC單片機(jī)的開發(fā)平臺(tái),2016年以后推出單片機(jī)基本上已經(jīng)不支持了;

2. MPLAB X IDE 新的集成開發(fā)環(huán)境軟件,支持全部的8位、16位和32位芯片(部分比較老的芯片不支持);

3. MPLAB? XC8是8位單片機(jī)C語言編譯器,你用C語言編程必須要用此編譯器,需要單獨(dú)安裝配合 MPLAB X IDE 使用;

4. 另外還要用到PIC單片機(jī)開發(fā)板、編寫器(如KIT4或ICD3、ICD4);

5.建議買一個(gè) MPLABPICKit4在線調(diào)試器。

以上是最基本的開發(fā)配置。

推薦MPLAB X IDE(集成開發(fā)環(huán)境) + XC8(編譯器), 硬件可以直接選擇一塊curiosity nano開發(fā)板。PIC系列8位單片機(jī)為適應(yīng)各種不同的用途,推薦PIC16F722/3/4/6/7。另外,PIC16F1946和PIC16F877A是8位單片機(jī)中性價(jià)比較高的一種。

最終,panxiaoyi在芯片方面選擇了PIC18F27Q10和PIC18F47Q10系列。選擇它們是因?yàn)樗鼈冇兄形臄?shù)據(jù)手冊(cè),資源豐富,某寶購買方便,也不貴,包郵10多元。下載線選擇了pic kit3.5。


軟件環(huán)境方面,現(xiàn)在已經(jīng)安裝了 MPLAB X IDE v4.20 沒有安裝5.x版本,因?yàn)?.x的中文界面更好,同時(shí)也安裝了xc8。

點(diǎn)燈例程:

#include #include #include #include "CONFIGURATION.h"
int main(int argc, char** argv){ unsigned long i; for(i=1000000;i>0;i--) { TRISA=0; PORTA=0; }
for(i=1000000;i>0;i--) { TRISA=0; PORTA=255; } return (EXIT_SUCCESS);}


#ifndef XC_CONFIGURATION_H#define XC_CONFIGURATION_H#include  // include processor files - each processor file is guarded. // PIC18F24Q10 Configuration Bit Settings
// 'C' source line config statements
// CONFIG1L#pragma config FEXTOSC = ECH // External Oscillator mode Selection bits (EC (external clock) above 8 MHz; PFM set to high power)#pragma config RSTOSC = HFINTOSC_64MHZ// Power-up default value for COSC bits (HFINTOSC with HFFRQ = 64 MHz and CDIV = 1:1)
// CONFIG1H#pragma config CLKOUTEN = OFF // Clock Out Enable bit (CLKOUT function is disabled)#pragma config CSWEN = ON // Clock Switch Enable bit (Writing to NOSC and NDIV is allowed)#pragma config FCMEN = ON // Fail-Safe Clock Monitor Enable bit (Fail-Safe Clock Monitor enabled)
// CONFIG2L#pragma config MCLRE = INTMCLR // Master Clear Enable bit (If LVP = 0, MCLR pin (RE3) is an input; If LVP =1, MCLR pin (RE3) is MCLR)#pragma config PWRTE = OFF // Power-up Timer Enable bit (Power up timer disabled)#pragma config LPBOREN = OFF // Low-power BOR enable bit (Low power BOR is disabled)#pragma config BOREN = SBORDIS // Brown-out Reset Enable bits (Brown-out Reset enabled , SBOREN bit is ignored)
// CONFIG2H#pragma config BORV = VBOR_190 // Brown Out Reset Voltage selection bits (Brown-out Reset Voltage (VBOR) set to 1.90V)#pragma config ZCD = OFF // ZCD Disable bit (ZCD disabled. ZCD can be enabled by setting the ZCDSEN bit of ZCDCON)#pragma config PPS1WAY = ON // PPSLOCK bit One-Way Set Enable bit (PPSLOCK bit can be cleared and set only once; PPS registers remain locked after one clear/set cycle)#pragma config STVREN = ON // Stack Full/Underflow Reset Enable bit (Stack full/underflow will cause Reset)//#pragma config DEBUG = OFF // Debugger Enable bit (Background debugger disabled)#pragma config XINST = OFF // Extended Instruction Set Enable bit (Extended Instruction Set and Indexed Addressing Mode disabled)
// CONFIG3L#pragma config WDTCPS = WDTCPS_31// WDT Period Select bits (Divider ratio 1:65536; software control of WDTPS)#pragma config WDTE = OFF // WDT operating mode (WDT Disabled)
// CONFIG3H#pragma config WDTCWS = WDTCWS_7// WDT Window Select bits (window always open (100%); software control; keyed access not required)#pragma config WDTCCS = SC // WDT input clock selector (Software Control)
// CONFIG4L#pragma config WRT0 = OFF // Write Protection Block 0 (Block 0 (000800-001FFFh) not write-protected)#pragma config WRT1 = OFF // Write Protection Block 1 (Block 1 (002000-003FFFh) not write-protected)
// CONFIG4H#pragma config WRTC = OFF // Configuration Register Write Protection bit (Configuration registers (300000-30000Bh) not write-protected)#pragma config WRTB = OFF // Boot Block Write Protection bit (Boot Block (000000-0007FFh) not write-protected)#pragma config WRTD = OFF // Data EEPROM Write Protection bit (Data EEPROM not write-protected)#pragma config SCANE = ON // Scanner Enable bit (Scanner module is available for use, SCANMD bit can control the module)#pragma config LVP = ON // Low Voltage Programming Enable bit (Low voltage programming enabled. MCLR/VPP pin function is MCLR. MCLRE configuration bit is ignored)
// CONFIG5L#pragma config CP = OFF // UserNVM Program Memory Code Protection bit (UserNVM code protection disabled)#pragma config CPD = OFF // DataNVM Memory Code Protection bit (DataNVM code protection disabled)
// CONFIG5H
// CONFIG6L#pragma config EBTR0 = OFF // Table Read Protection Block 0 (Block 0 (000800-001FFFh) not protected from table reads executed in other blocks)#pragma config EBTR1 = OFF // Table Read Protection Block 1 (Block 1 (002000-003FFFh) not protected from table reads executed in other blocks)
// CONFIG6H#pragma config EBTRB = OFF // Boot Block Table Read Protection bit (Boot Block (000000-0007FFh) not protected from table reads executed in other blocks)
// #pragma config statements should precede project file includes.// Use project enums instead of #define for ON and OFF.#endif /* XC_HEADER_TEMPLATE_H */



其他PIC網(wǎng)友優(yōu)質(zhì)開箱測(cè)評(píng)帖:

1、[PIC?/AVR? MCU]?【CuriosityNano測(cè)評(píng)報(bào)告】初識(shí)PIC16F15244
用戶:21ic藍(lán)V作者jinglixixi

最近,如愿地收到了PIC16F15244Curiosity Nano評(píng)估工具包。其實(shí)說是工具包會(huì)有些誤解,它其實(shí)是由一塊PIC16F15244開發(fā)板和2排插針構(gòu)成。

除去包裝后,將開發(fā)板與排針連接后,則如圖1所示。

圖1??PIC16F15244開發(fā)板


由于工具包并沒有配置相應(yīng)的USB線,所以在找到一條USB線后便迫不及待連上電腦相看一下上電后的效果,其狀態(tài)如圖2所示。也就是說除了電源指示燈被點(diǎn)亮外,并無太大的變化。

圖2??上電效果

但與此同時(shí),在電腦上還有著一定變化的,明顯的效果就是在安裝驅(qū)動(dòng)后,桌面上出現(xiàn)了一個(gè)虛擬的U盤,見圖3所示。

圖3?虛擬U盤

在打開U盤后,可見到里面存有3個(gè)文件,見圖4所示。

圖4 U盤內(nèi)容

此時(shí)若打開資源管理器,則可看到不僅有虛擬的U盤,還有虛擬的串口,見圖5所示。

圖5?虛擬串口

觀察到這里,似乎能做的也就這些了,那我們就為后續(xù)的工作先做些準(zhǔn)備把。

1.找到那張器件聯(lián)絡(luò)圖(原理圖),下載為:

ww1.microchip.com/downloads/en/DeviceDoc/PIC16F15244_Curiosity_Nano_Schematics.pdf,該原理圖給我們的關(guān)鍵內(nèi)容如圖6所示。

由此可知,板載的2個(gè)器件與MCU的連接關(guān)系為:
LED(黃色)??--- RA2(低電平點(diǎn)亮)
SW(用戶鍵)--- RC2(按下為低電平)
此外,串口的占用引腳為:
TX(發(fā)送)??--- RC1
RX(接收)??--- RC0

2. 找到硬件的用戶使用指南,其下載網(wǎng)站為:

ww1.microchip.com/downloads/en/DeviceDoc/PIC16F15244-Curiosity-Nano-Hardware-User-Guide-DS50003045A.pdf

圖6?關(guān)鍵內(nèi)容

3. 了解PIC16F15244為我們具有哪些特色,其主要內(nèi)容為:


4. 開發(fā)工具的配備,其主要內(nèi)容為:


隨后的工作就是下載軟件來構(gòu)建開發(fā)環(huán)境了,由于手頭的開發(fā)環(huán)境是基于MPLAB? XIDE 5.30,所以需要重新下載安裝MPLAB? X IDE 5.40,因?yàn)樵贛PLAB? XIDE 5.30下是找不到PIC16F15244,這一點(diǎn)似乎不如KEIL,如果能下載個(gè)升級(jí)包把問題解決了多好!

2、[PIC?/AVR? MCU]?【CuriosityNano測(cè)評(píng)報(bào)告】+初次上手PIC單片機(jī)之PWM呼吸燈
用戶:南來之風(fēng)

非常感謝論壇提供了一次難得的初次體驗(yàn)PIC單片機(jī)的機(jī)會(huì)。官網(wǎng)的資料是非常詳細(xì)的,對(duì)于這款Curiosity Nano,建議從Github上開始學(xué)起來。

github.com/microchip-pic-avr-examples/pic16f15244-pwm-led-blink

首先是環(huán)境的搭建:



正確安裝好驅(qū)動(dòng)后,在端口中應(yīng)該可以看到“Curiosity Virtual COM Port”




開發(fā)環(huán)境安裝好后,首先打開MPLAB XIDE5.40,軟件是自動(dòng)識(shí)別我們這款板子,而且硬件資料,軟件demo一應(yīng)俱全,非常的便利!



轉(zhuǎn)到Git上,試著運(yùn)行一個(gè)pwm-led-blink-master的項(xiàng)目,下載后先build一個(gè)工程。



成功后,把程序下載到板子上。


與此同時(shí),把GND和RA2引腳引出,連接到一個(gè)簡(jiǎn)易示波器的輸入端,可以看到PWM的方波驅(qū)動(dòng)LED閃爍,在簡(jiǎn)易示波器上顯示出響應(yīng)的波形。



在例程的基礎(chǔ)上,增加了幾個(gè)不同占空比的值,目前占空比可以選擇0,12,25,37,50,62,75,88,100。代碼比較糙,但還是貼出來了:


uint16_t Array_dutyCycle[] ={0x0000,0x007F,0x00FA,0x177,0x01F4, 0x0271,0x02EE,0x036A,0x03E7};
uint16_t i;uint8_t index = 0;int8_t direction = 1;
void main(void){ SYSTEM_Initialize(); // Initialize the device INTERRUPT_GlobalInterruptEnable(); // Enable the Global Interrupts INTERRUPT_PeripheralInterruptEnable(); // Enable the Peripheral Interrupts
while(1){ if(direction == 1){ if(index != 8) PWM3_LoadDutyValue(Array_dutyCycle[++index]); else{ direction = -1; PWM3_LoadDutyValue(Array_dutyCycle[--index]); } } else{ if(index != 0) PWM3_LoadDutyValue(Array_dutyCycle[--index]); else{ direction = 1; PWM3_LoadDutyValue(Array_dutyCycle[++index]); } } for(i = 5120; i!=0;i--); }}



可以看出PWM的波形占空比變化時(shí)候LED0的亮度也隨之變化。

3、[PIC?/AVR? MCU]?【CuriosityNano測(cè)評(píng)報(bào)告】+開箱、建立開發(fā)平臺(tái)及LED閃爍

用戶:hu9jj


周末收到本次評(píng)測(cè)的主角PIC18F57Q43核心板,鮮紅的外包裝依舊那么惹人喜愛:



兩個(gè)防靜電包裝袋中分別是排針和PIC18F57Q43核心板:



核心板上的焊盤依舊的交叉錯(cuò)位,稍加用力將排針插入核心板,就可以直接使用,省略焊接步驟。我之前曾打樣了幾塊擴(kuò)展板,本次依然派上用場(chǎng):



上電之后,打開MPLAB X IDE,系統(tǒng)自動(dòng)識(shí)別核心板,通過鏈接就可以下載PIC18F57Q43的相關(guān)資料:



電路圖、硬件用戶手冊(cè)及數(shù)據(jù)表下載完之后,照例先升級(jí)PACK包:



我懶得選擇,依次升級(jí)了全部PACK,因此花了一個(gè)多小時(shí)才完成:



準(zhǔn)備工作基本完成之后,開始新建項(xiàng)目:



我安裝的是中文版IDE,但不知怎么回事,有時(shí)菜單不出現(xiàn)中文,不過這無傷大雅,選擇“New Project”就是:

?


照舊選擇標(biāo)準(zhǔn)項(xiàng)目(參見上圖),然后進(jìn)入第二步,選擇芯片類別:

類別選擇正確之后,在設(shè)備欄中輸入“PIC18F57",然后從下拉列表框中選擇對(duì)應(yīng)的核心板型號(hào),當(dāng)然,您愿意錄入完整的核心板型號(hào)也行,然后在工具欄中選擇您的核心板編號(hào),這樣項(xiàng)目便會(huì)與核心板掛鉤:



下一步便是選擇編譯器:



新建項(xiàng)目的最后一步是輸入項(xiàng)目名稱、選擇項(xiàng)目文件存放的位置等:



至此,項(xiàng)目新建完畢,下一步就是通過MCC來配置代碼,完善必要的代碼文件:



可以從Window下拉菜單中點(diǎn)擊進(jìn)入(或退出)代碼配置器MCC,也可以直接點(diǎn)擊工具欄上的圖標(biāo)進(jìn)入或退出MCC:

點(diǎn)擊之后,首先需要確定MCC配置文件存放的位置,我通常按默認(rèn)的位置,直接點(diǎn)擊“保存”按鈕:



通過下載的電路圖,我們知道LED是接在RF3引腳、KEY是接在RB4引腳,因此在引腳圖表中將RF3設(shè)置成output,將RB4設(shè)置成input,為了容易理解,點(diǎn)擊右上部分的Pin Module選項(xiàng),然后在對(duì)應(yīng)引腳的名稱設(shè)置成KEY和LED:



配置完成后,不要忘記點(diǎn)擊右上部的"Generate"選項(xiàng)來生成代碼:

退出MCC之后,打開main.c文件,添加一個(gè)計(jì)時(shí)用的全局變量ms,并在主循環(huán)中寫入下列代碼,用于計(jì)時(shí)和控制LED引腳電平翻轉(zhuǎn):



編譯并下載程序到核心板上:



稍等片刻,程序燒錄完畢,黃色LED燈便閃爍起來了,開發(fā)平臺(tái)也順利建立了。

這是測(cè)試的動(dòng)畫:



END

資源:21ic論壇,整理:付斌

版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系刪除。

推薦閱讀
你怎樣選擇開源免費(fèi)RTOS?
GD32也開始假貨翻新泛濫了
工程師姓什么很重要!別再叫我“X工”?。?!


→點(diǎn)關(guān)注,不迷路←

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問題,請(qǐng)聯(lián)系我們,謝謝!

嵌入式ARM

掃描二維碼,關(guān)注更多精彩內(nèi)容

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉