当前位置:首页 > 公众号精选 > 嵌入式微处理器
[导读]开发、学习PIC单片机,会用到哪些软硬件工具?


最近,一个帖子上了21ic论坛的热榜。名为panxiaoyi的网友在论坛咨询了关于入门PIC的技巧,背景是这样的:

1:8位的PIC,选什么型号来学比较好?要求这个芯片是近几年【新推出】的【大众化】的,有LQFP32以下封装甚至有PID封装的。

2:MPLAB IDE ,MPLAB X IDE ,MPLAB® XC8 ,它们之间是什么关系?需要注册或者购买版权的吗?我只会用C语言,我需要安装什么软件?

3:需要购买下载线吗?还是有USB转串口即可下载?仿真工具暂时就不考虑了(如果是一体化的便宜的也可以考虑)。

4:我之前就喜欢玩AVR的ATmega48-88-168,没有选择M128来玩是因为觉得它比较老款,而且它没有LQFP32以下的封装,再说我也不需要太大的资源

5:最重要的是我不懂得E文,之前的AVR有少量的中文,后来出的基本没有中文数据手册了,而我这几天发现原来PIC【官网】有大量的中文数据手册,而且 MPLAB X IDE 也是中文界面的,既然它对中文这么友好,所有我就想学一下它。这几天我还在【芯圣】单片机那里购买了3块HC89F0541的51系列1T的开发板,正准备来玩一下的,突然发现这个PIC有个中文社区,里面有大量的中文资料,所以,就不想了解HC89F0541了,估计PIC比较可靠是吗?

另外也想说一下这个HC89F0541芯圣单片机,看【芯圣】资料他家的所有单片机都有一个很好的特色,就是:外设功能引脚全映射模块。它允许大部分功能端口可任意映射到任意I/O 端口,比如说UASRT的TXD,RXD,它可以指定由任意的IO脚输出或者输入。

热心的网友是这样推荐的:

开发、学习PIC单片机要用到以下软硬件工具:

1. MPLAB IDE 老的集成开发环境软件,这个是所有PIC单片机的开发平台,2016年以后推出单片机基本上已经不支持了;

2. MPLAB X IDE 新的集成开发环境软件,支持全部的8位、16位和32位芯片(部分比较老的芯片不支持);

3. MPLAB® XC8是8位单片机C语言编译器,你用C语言编程必须要用此编译器,需要单独安装配合 MPLAB X IDE 使用;

4. 另外还要用到PIC单片机开发板、编写器(如KIT4或ICD3、ICD4);

5.建议买一个 MPLABPICKit4在线调试器。

以上是最基本的开发配置。

推荐MPLAB X IDE(集成开发环境) + XC8(编译器), 硬件可以直接选择一块curiosity nano开发板。PIC系列8位单片机为适应各种不同的用途,推荐PIC16F722/3/4/6/7。另外,PIC16F1946和PIC16F877A是8位单片机中性价比较高的一种。

最终,panxiaoyi在芯片方面选择了PIC18F27Q10和PIC18F47Q10系列。选择它们是因为它们有中文数据手册,资源丰富,某宝购买方便,也不贵,包邮10多元。下载线选择了pic kit3.5。


软件环境方面,现在已经安装了 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网友优质开箱测评帖:

1、[PIC®/AVR® MCU] 【CuriosityNano测评报告】初识PIC16F15244
用户:21ic蓝V作者jinglixixi

最近,如愿地收到了PIC16F15244Curiosity Nano评估工具包。其实说是工具包会有些误解,它其实是由一块PIC16F15244开发板和2排插针构成。

除去包装后,将开发板与排针连接后,则如图1所示。

图1  PIC16F15244开发板


由于工具包并没有配置相应的USB线,所以在找到一条USB线后便迫不及待连上电脑相看一下上电后的效果,其状态如图2所示。也就是说除了电源指示灯被点亮外,并无太大的变化。

图2  上电效果

但与此同时,在电脑上还有着一定变化的,明显的效果就是在安装驱动后,桌面上出现了一个虚拟的U盘,见图3所示。

图3 虚拟U盘

在打开U盘后,可见到里面存有3个文件,见图4所示。

图4 U盘内容

此时若打开资源管理器,则可看到不仅有虚拟的U盘,还有虚拟的串口,见图5所示。

图5 虚拟串口

观察到这里,似乎能做的也就这些了,那我们就为后续的工作先做些准备把。

1.找到那张器件联络图(原理图),下载为:

ww1.microchip.com/downloads/en/DeviceDoc/PIC16F15244_Curiosity_Nano_Schematics.pdf,该原理图给我们的关键内容如图6所示。

由此可知,板载的2个器件与MCU的连接关系为:
LED(黄色)  --- RA2(低电平点亮)
SW(用户键)--- RC2(按下为低电平)
此外,串口的占用引脚为:
TX(发送)  --- RC1
RX(接收)  --- RC0

2. 找到硬件的用户使用指南,其下载网站为:

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

图6 关键内容

3. 了解PIC16F15244为我们具有哪些特色,其主要内容为:


4. 开发工具的配备,其主要内容为:


随后的工作就是下载软件来构建开发环境了,由于手头的开发环境是基于MPLAB® XIDE 5.30,所以需要重新下载安装MPLAB® X IDE 5.40,因为在MPLAB® XIDE 5.30下是找不到PIC16F15244,这一点似乎不如KEIL,如果能下载个升级包把问题解决了多好!

2、[PIC®/AVR® MCU] 【CuriosityNano测评报告】+初次上手PIC单片机之PWM呼吸灯
用户:南来之风

非常感谢论坛提供了一次难得的初次体验PIC单片机的机会。官网的资料是非常详细的,对于这款Curiosity Nano,建议从Github上开始学起来。

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

首先是环境的搭建:



正确安装好驱动后,在端口中应该可以看到“Curiosity Virtual COM Port”




开发环境安装好后,首先打开MPLAB XIDE5.40,软件是自动识别我们这款板子,而且硬件资料,软件demo一应俱全,非常的便利!



转到Git上,试着运行一个pwm-led-blink-master的项目,下载后先build一个工程。



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


与此同时,把GND和RA2引脚引出,连接到一个简易示波器的输入端,可以看到PWM的方波驱动LED闪烁,在简易示波器上显示出响应的波形。



在例程的基础上,增加了几个不同占空比的值,目前占空比可以选择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测评报告】+开箱、建立开发平台及LED闪烁

用户:hu9jj


周末收到本次评测的主角PIC18F57Q43核心板,鲜红的外包装依旧那么惹人喜爱:



两个防静电包装袋中分别是排针和PIC18F57Q43核心板:



核心板上的焊盘依旧的交叉错位,稍加用力将排针插入核心板,就可以直接使用,省略焊接步骤。我之前曾打样了几块扩展板,本次依然派上用场:



上电之后,打开MPLAB X IDE,系统自动识别核心板,通过链接就可以下载PIC18F57Q43的相关资料:



电路图、硬件用户手册及数据表下载完之后,照例先升级PACK包:



我懒得选择,依次升级了全部PACK,因此花了一个多小时才完成:



准备工作基本完成之后,开始新建项目:



我安装的是中文版IDE,但不知怎么回事,有时菜单不出现中文,不过这无伤大雅,选择“New Project”就是:

 


照旧选择标准项目(参见上图),然后进入第二步,选择芯片类别:

类别选择正确之后,在设备栏中输入“PIC18F57",然后从下拉列表框中选择对应的核心板型号,当然,您愿意录入完整的核心板型号也行,然后在工具栏中选择您的核心板编号,这样项目便会与核心板挂钩:



下一步便是选择编译器:



新建项目的最后一步是输入项目名称、选择项目文件存放的位置等:



至此,项目新建完毕,下一步就是通过MCC来配置代码,完善必要的代码文件:



可以从Window下拉菜单中点击进入(或退出)代码配置器MCC,也可以直接点击工具栏上的图标进入或退出MCC:

点击之后,首先需要确定MCC配置文件存放的位置,我通常按默认的位置,直接点击“保存”按钮:



通过下载的电路图,我们知道LED是接在RF3引脚、KEY是接在RB4引脚,因此在引脚图表中将RF3设置成output,将RB4设置成input,为了容易理解,点击右上部分的Pin Module选项,然后在对应引脚的名称设置成KEY和LED:



配置完成后,不要忘记点击右上部的"Generate"选项来生成代码:

退出MCC之后,打开main.c文件,添加一个计时用的全局变量ms,并在主循环中写入下列代码,用于计时和控制LED引脚电平翻转:



编译并下载程序到核心板上:



稍等片刻,程序烧录完毕,黄色LED灯便闪烁起来了,开发平台也顺利建立了。

这是测试的动画:



END

资源:21ic论坛,整理:付斌

版权归原作者所有,如有侵权,请联系删除。

推荐阅读
你怎样选择开源免费RTOS?
GD32也开始假货翻新泛滥了
工程师姓什么很重要!别再叫我“X工”!!!


→点关注,不迷路←

免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

嵌入式ARM

扫描二维码,关注更多精彩内容

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭