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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最終,panxiaoyi在芯片方面選擇了PIC18F27Q10和PIC18F47Q10系列。選擇它們是因為它們有中文數(shù)據(jù)手冊,資源豐富,某寶購買方便,也不貴,包郵10多元。下載線選擇了pic kit3.5。


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

點燈例程:

#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ì)開箱測評帖:

1、[PIC?/AVR? MCU]?【CuriosityNano測評報告】初識PIC16F15244
用戶:21ic藍V作者jinglixixi

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

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

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


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

圖2??上電效果

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

圖3?虛擬U盤

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

圖4 U盤內(nèi)容

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

圖5?虛擬串口

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

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

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

由此可知,板載的2個器件與MCU的連接關(guān)系為:
LED(黃色)??--- RA2(低電平點亮)
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,因為在MPLAB? XIDE 5.30下是找不到PIC16F15244,這一點似乎不如KEIL,如果能下載個升級包把問題解決了多好!

2、[PIC?/AVR? MCU]?【CuriosityNano測評報告】+初次上手PIC單片機之PWM呼吸燈
用戶:南來之風

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

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

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



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




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



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



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


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



在例程的基礎(chǔ)上,增加了幾個不同占空比的值,目前占空比可以選擇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的波形占空比變化時候LED0的亮度也隨之變化。

3、[PIC?/AVR? MCU]?【CuriosityNano測評報告】+開箱、建立開發(fā)平臺及LED閃爍

用戶:hu9jj


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



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



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



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



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



我懶得選擇,依次升級了全部PACK,因此花了一個多小時才完成:



準備工作基本完成之后,開始新建項目:



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

?


照舊選擇標準項目(參見上圖),然后進入第二步,選擇芯片類別:

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



下一步便是選擇編譯器:



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



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



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

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



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



配置完成后,不要忘記點擊右上部的"Generate"選項來生成代碼:

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



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



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

這是測試的動畫:



END

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

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

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


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

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

嵌入式ARM

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

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

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

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

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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