打印
[学习资料]

PIC 入门须知

[复制链接]
54944|189
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
XIEYUANBIN|  楼主 | 2010-4-17 12:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 XIEYUANBIN 于 2013-11-29 19:53 编辑

芯片数据手册:可在www.microchip.com 查找及下载,目前大多数新的芯片均有中文数据手册


免费的集成开发环境MPLAB IDE及MPLAB X IDE
免费的集成编译调试环境:集成了工程管理、语法高亮显示的文本文件编辑器、汇编编译器、功能强大的软仿真调试器等,同时可外挂多种C编译器、硬件仿真调试器、烧写器等。
MPLAB IDE下载地址:http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002
MPLAB X IDE 下载地址:http://www.microchip.com/pagehandler/zh-cn/family/mplabx/

注意事项:必须安装在C:盘,工程及文件夹名、文件名不能有中文及其他双字节文字。MPLAB X IDE 需安装 JAVA 6.0以上。适用于跨平台应用。


主要的C语言编译器
介绍及下载网址:http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en534868&page=wwwCompilers
目前MPLAB支持所列的所有C编译器的内嵌调试,单步,全速都没问题。
注意事项:不同的单片机系列必须使用不同的编译器,目前大多数编译器都有免费的试用版或限制版本下载,正版的也不贵。

低成本下载器、在线调试器

目前有ICD2,KIT2,ICD3,KIT3,推荐ICD3,KIT3,
介绍网址:http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2519¶m=en534451

ICD3,KIT3特点:成本低,速度快,集成了编程器(或称下载器)和在线调试器,支持多断点,调试、下载速度非常快,而且KIT2、KIT3支持脱机烧写,这对一些不方便拿到电脑边调试的项目很有用,而且可以作为小批量量产的选择方案。

注意事项:缺点是要占用一定的单片机资源,包括引脚、部分程序和数据寄存器等,而且要特别注意引脚上面零件不能影响电平及数据通讯,20PIN及以下的单片机需要用一个专门制作的DEBUG转接头才能仿真,否则只能烧写程序后盲调。
引脚的接法及注意事项在每种产品的用户手册里均有特别说明。


使用低成本在线调试器(ICD2,ICD3,KIT2,KIT3)调试之前须知
首先请确认:
1.MCLR上不能有大于104的电容,不能有钳位二极管,PGD,PGC上不能有任何电容电感性负载,不得有上拉电阻。连线不得超过0.5米。USB线也很重要,大街上买的3块一根的线不能用,这些都将导致通讯不畅,容易死机等毛病。
2.在MPLAB中连上在线调试器之前,最好确认选择由目标板供电。连上之后请确认是否识别出目标芯片。
3.建立工程,加入源文件之后,用C的必须选择DEBUG模式编译,用汇编的必须留出一定的资源给DEBUG模块使用,具体什么资源,请参考MPLAB帮助。每次修改程序编译成功之后必须重新烧写(或叫下载)。

常见问题,也是最需要注意又常常被忽略的问题:
ICD2,KIT2,ICD3,KIT3常常掉线或连接不上,这都是USB惹的祸,请使用原装的USB线或到市场上买一根20块钱的有屏蔽层的USB线,这样会省很多麻烦



PIC单片机系列介绍
PIC单片机目前有8位系列、16位系列和32位系列,简单介绍如下:

8位机系列
早期一次性编程的有PIC12Cxxxx系列、PIC16CXXX系列,目前不推荐使用,但还有一些老产品在用,所以还有出货。
目前的FLASH系列产品,PIC10FXXX、PIC12FXXX、PIC16FXXX,PIC18FXXXX等,PIC10F/PIC12F属于低档8位单片机,某些系列带8BIT AD口,价格低,体积小,适合一些小应用,PIC16F属于中档8位单片机,大多数带10BIT AD口,还有诸如CCP,SPI,I2C,UART等外设端口,价格适中,出货量大,PIC18F系列属于高档8位单片机,价格偏高,小批量购买的价格和16位单片机差不多。当然外设功能丰富。
8位机的C编译器,PIC10,12,16系列目前的主流编译器是HI-TECH的PICC,18系列的主流编译器有HI-TECH的PICC18及PICC18MCHP自己的PICC18,均为收费软件,但有评估板或限制版供免费下载使用。现在还有XC8/XC16/XC32等等。
单片机介绍网址:http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2696¶m=en537796



16位单片机系列
有dsPIC30F系列,dsPIC33FJ系列,dsPIC33EP系列,PIC24F系列,PIC24H系列等等
dsPIC30F及dsPIC33FJ、dsPIC33EP系列是MCHP推出的带DSP内核的高性能数字信号控制器,被称为"DSC",dsPIC30F是5V供电系统,33FJ系列是3.3V供电系统。适合需要一些高速处理AD信号的场合,其中33FJXXXGPXXX系列适合音频数字信号处理,33FJXXXMCXXX及30F系列适合马达控制场合。

PIC24F系列及PIC24H系列是普通的16BIT MCU,适合一些要求较高的应用场合

16位单片机共用一种C编译器:MCHP自己的PICC30及HI-TECH的PICC30,收费软件,同样有限制版或试用版供下载免费使用。

16位DSC及MCU介绍网址:http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2629¶m=en533465


32位单片机系列
PIC32系列为MCHP在2007年发布的一个系列高端单片机系列,最高工作频率80MHz,
以下文字是我从网站说明直译,有错请指出:
其特点:



80 MHz, 1.56 DMIPS/MHz CPU core
80MHz,每MHz的工作频率可提供1.56MIPS的整数运算能力的内核。

Single cycle multiply and divide hardware
单指令周期的乘法和除法运算器
Flash pre-fetch module, 256Byte cache
FLASH预取指令技术,256字节深度缓存
Fast context switch and interrupt response
高速切换及中断响应
8 ch. DMA controller
8通道 直接存储器存取控制器
Key peripherals have dedicated DMA channels
键周边设备有专用的 直接存储器存取通道
Atomic bit manipulation
最小单位的二进制处理?


PIC单片机的特点及与51系列单片机的区别:

这里仅以使用广泛的中低档PIC16/PIC12/10系列为例说明。
PIC系列单片机采用哈佛总线结构,程序空间总线和数据总线分开,地址长度也不一样,也同样不在一个连续的空间,程序为单字结构,一句程序占用一个程序字长,这与51不一样,51系列则采用冯.诺依曼结构,程序空间和数据空间共用一组8BIT的总线,程序空间和数据空间共用一个连续的地址空间;程序为多字节结构,根据不同指令及数据每句程序有不同的长度,这种结构有可能在程序跑飞的时候让系统把数据当做指令执行。
PIC系列单片机使用精简指令集,总共不超过35条指令,采用预取指令的做法使绝大多数指令只要一个指令时钟周期,51则采用复杂指令集,需要4个或更多指令周期才能执行一条指令。
PIC中低档单片机只有一个中断入口,一些低档单片机甚至没有中断,中断发生后需要用软件清除中断标志,并且需要用软件来判断中断源,这与51系列有丰富的中断入口相比有一些局限,而且由于指令长度的局限,PIC 程序和数据寻址采用分页(PAGE)和分块(BANK)的做法,在程序跳转和数据查找方面需要注意页面和块的跳转。
PIC系列单片机采用硬件堆栈,堆栈只储存程序跳转前的程序地址,而且堆栈深度最多8级,不能支持程序的无限嵌套,不能使用51系列PUSH,POP等方便的数据堆栈指令来保护现场。在中断中保护现场比较繁琐。


PIC单片机汇编语言编程基础
https://bbs.21ic.com/icview-86137-1-1.html


关于内置或外置EEPROM E2ROM 容易丢数据的一些问题讨论https://bbs.21ic.com/icview-85555-1-1.html





PICC中的ram和rom的一定空间,如何让编辑器保留?
https://bbs.21ic.com/icview-220292-1-1.html

dsPIC 及PIC30的C 编译器用户手册:
PICC30用户手册.pdf (1.9 MB)


后面内容在陆续补充中:
评分
参与人数 1威望 +1 收起 理由
jeffwoo + 1
沙发
大荣纺仪| | 2010-4-18 14:02 | 只看该作者
好东东

使用特权

评论回复
板凳
yewuyi| | 2010-4-19 00:01 | 只看该作者
关于调试工具:
一般可以选择ICD2、PICKIT2、ICD3、PICKIT3、REALICE等几个工具,20PIN封装及20PIN以下的芯片,一般都需要使用一个DEBUG转换头,需要单独购买,不包含在工具中。

使用特权

评论回复
地板
iaiwork21| | 2010-4-19 20:40 | 只看该作者
Kit2和kit3才有离线烧写,看了一下,除了容量不一样,还有个serialized usb,这是干嘛用的?

使用特权

评论回复
5
XIEYUANBIN|  楼主 | 2010-4-20 12:49 | 只看该作者
就是全速的USB口

使用特权

评论回复
6
playstation2| | 2010-4-20 19:52 | 只看该作者
谢工~~顶下,,,正在学习pic

使用特权

评论回复
7
headwolf_83| | 2010-4-21 12:10 | 只看该作者
KIT3已经支持脱机烧写了。从MPLAB IDEV840开始就支持了。

使用特权

评论回复
8
headwolf_83| | 2010-4-21 12:10 | 只看该作者
目前就是PIC32系列的脱机,PICKIT3还不支持.

使用特权

评论回复
9
martial| | 2010-4-21 15:35 | 只看该作者
做个标志回头学习!

使用特权

评论回复
10
XIEYUANBIN|  楼主 | 2010-4-22 08:58 | 只看该作者
KIT2、KIT3目前均支持脱机烧写,这对一些不方便拿到电脑边调试的项目很有用,而且可以作为小批量量产的选择方案之一。
麻烦大斑竹将此贴长期置顶,我只有3个月的期限。

使用特权

评论回复
11
phenix01| | 2010-4-24 17:12 | 只看该作者
:)

使用特权

评论回复
12
yewuyi| | 2010-4-24 17:27 | 只看该作者
好像我也只有3个月的置顶权限哦,超过3个月的时间设置不了

使用特权

评论回复
13
XIEYUANBIN|  楼主 | 2010-4-26 20:44 | 只看该作者
呵呵,没办法。。。。。。继续更新中

使用特权

评论回复
14
兴隆| | 2010-4-29 16:22 | 只看该作者
想用16f676,手里有ICD2,不支持676咋办啊?

使用特权

评论回复
15
ym2008| | 2010-4-29 17:12 | 只看该作者
非常感谢!!!

使用特权

评论回复
16
XIEYUANBIN|  楼主 | 2010-4-30 16:02 | 只看该作者
15# 兴隆
676需要一个转接头,上面有一个带676内核的芯片。如果实在不想买那个转接头,可以直接烧写调试+SIM,或者申请其他芯片仿真移植。

使用特权

评论回复
17
兴隆| | 2010-5-11 18:38 | 只看该作者
本帖最后由 兴隆 于 2010-5-11 18:42 编辑

请推荐个ICD2(KIT3)支持的芯片,作为调使用,和PIC676接近的,方便以后移植到PIC676上去。我记得ICD2不太好用,经常连不上,有没有必要再买一个KIT3,淘宝网上有买的280元的。比ICD2好用吗?

使用特权

评论回复
18
XIEYUANBIN|  楼主 | 2010-5-12 10:21 | 只看该作者
kit3 比较好用,676要找还真不好找接近的又不用适配头的,你可以用772替代
但脚位不太一样

使用特权

评论回复
19
兴隆| | 2010-5-13 20:56 | 只看该作者
772偏冷,不好找啊。

使用特权

评论回复
20
calm_lrc| | 2010-5-21 13:33 | 只看该作者
盖个章

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

56

主题

2078

帖子

16

粉丝