PIC单片机入门必看
扫描二维码
随时随地手机看文章
芯片数据手册:可在www.microchip.com查找及下载,目前大多数新的芯片均有中文数据手册。
免费的集成开发环境MPLAB IDE
免费的集成编译调试环境:集成了工程管理、语法高亮显示的文本文件编辑器、汇编编译器、功能强大的软仿真调试器等,同时可外挂多种C编译器、硬件仿真调试器、烧写器等。
注意事项:必须安装在C:盘,工程及文件夹名、文件名不能有中文及其他双字节文字。
扩展阅读:PIC单片机是什么
主要的C语言编译器:
目前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,均为收费软件,但有评估板或限制版供免费下载使用。
单片机介绍网址:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2696¶m=en537796
16位单片机系列:
有dsPIC30F系列,dsPIC33FJ系列,PIC24F系列,PIC24H系列
dsPIC30F及dsPIC33FJ系列是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单片机汇编语言编程基础
http://bbs.21ic.com/icview-86137-1-1.html
关于内置或外置EEPROM E2ROM 容易丢数据的一些问题讨论
http://bbs.21ic.com/icview-85555-1-1.html
PICC中的ram和rom的一定空间,如何让编辑器保留?