最近,一個(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腳輸出或者輸入。
開發(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)試器。
推薦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。
#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.
#pragma config FEXTOSC = ECH
#pragma config RSTOSC = HFINTOSC_64MHZ
#pragma config CLKOUTEN = OFF
#pragma config CSWEN = ON
#pragma config FCMEN = ON
#pragma config MCLRE = INTMCLR
#pragma config PWRTE = OFF
#pragma config LPBOREN = OFF
#pragma config BOREN = SBORDIS
#pragma config BORV = VBOR_190
#pragma config ZCD = OFF
#pragma config PPS1WAY = ON
#pragma config STVREN = ON
#pragma config XINST = OFF
#pragma config WDTCPS = WDTCPS_31
#pragma config WDTE = OFF
#pragma config WDTCWS = WDTCWS_7
#pragma config WDTCCS = SC
#pragma config WRT0 = OFF
#pragma config WRT1 = OFF
#pragma config WRTC = OFF
#pragma config WRTB = OFF
#pragma config WRTD = OFF
#pragma config SCANE = ON
#pragma config LVP = ON
#pragma config CP = OFF
#pragma config CPD = OFF
#pragma config EBTR0 = OFF
#pragma config EBTR1 = OFF
#pragma config EBTRB = OFF
#endif
其他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所示。
由于工具包并沒有配置相應(yīng)的USB線,所以在找到一條USB線后便迫不及待連上電腦相看一下上電后的效果,其狀態(tài)如圖2所示。也就是說除了電源指示燈被點(diǎn)亮外,并無太大的變化。
但與此同時(shí),在電腦上還有著一定變化的,明顯的效果就是在安裝驅(qū)動(dòng)后,桌面上出現(xiàn)了一個(gè)虛擬的U盤,見圖3所示。
在打開U盤后,可見到里面存有3個(gè)文件,見圖4所示。
此時(shí)若打開資源管理器,則可看到不僅有虛擬的U盤,還有虛擬的串口,見圖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)亮)
2. 找到硬件的用戶使用指南,其下載網(wǎng)站為:
ww1.microchip.com/downloads/en/DeviceDoc/PIC16F15244-Curiosity-Nano-Hardware-User-Guide-DS50003045A.pdf
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呼吸燈
非常感謝論壇提供了一次難得的初次體驗(yàn)PIC單片機(jī)的機(jī)會(huì)。官網(wǎng)的資料是非常詳細(xì)的,對(duì)于這款Curiosity Nano,建議從Github上開始學(xué)起來。
github.com/microchip-pic-avr-examples/pic16f15244-pwm-led-blink
正確安裝好驅(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();
INTERRUPT_GlobalInterruptEnable();
INTERRUPT_PeripheralInterruptEnable();
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)畫:
版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系刪除。