从51到PIC单片机
一、选择器件型号
PIC系列单片机的型号很多,不同型号的引脚是兼容的,这样可以根据项目的需要在不改变硬件电路的情况下进行优化。PIC系列主要有28脚和40脚两大类。可以从下面几个方面选择具体型号。
1.
根据器件性能选择器件型号
表1列出PIC16系列和PIC18系列8位单片机的一些典型型号的主要特性,各器件的具体性能请参见相应的数据手册。
型号
| PIC16F876A
| PIC16F886
| PIC18F252
| PIC18F2520
| PIC18F458
| 最高晶振频率
| 20M
| 20M
| 40M(4-10M可实现4倍频)
| 40M(4-10M可实现4倍频)
| 40M(4-10M可实现4倍频)
| 对应指令周期
| 200ns
| 200ns
| 100ns
| 100ns
| 100ns
| 串口通信
| RS232
| RS232,RS485
| RS232,RS485
| RS232,RS485
| RS232,RS485
| PWM
| 2通道
| 4通道
| 4通道
| 4通道
| 4通道
| 复位引脚复用(1)
| 无
| RE3
| 无
| RE3
| 无
| 10位A/D通道数
| 5
| 11
| 5
| 10
| 5
| CCP/ECCP
| CCP-2个
| CCP-1个/ECCP-1个
| CCP-2个
| CCP-2个
| CCP-1个
| 8/16位定时器
| 2/1
| 2/1
| 1/3
| 1/3
| 1/3
| C语言代码
| PIC16代码
| PIC16代码
| PIC16代码,代码兼容PIC16,PIC17
| PIC18代码
| PIC18代码
| 其他特性
|
|
|
|
| CAN总线
| 注:1. 配置位中有MCLRE位,此位置1时,MCLR引脚功能为复位(MCLR),此位置0时,MCLR引脚功能为数字输入,MCLR在内部被连接到VDD。
2.
根据编译器选择器件型号
PIC单片机开发软件一般是用Microchip公司自主开发的MPLAB软件,但用C语言开发时一般不使用软件自带的编译软件,而是另外再安装HI-TECH公司开发的PICC编译器。PICC编译器是收费软件,可在其公司网站下载试用版软件。现在Microchip公司已经收购HI-TECH,在MPLAB的最新版本中已经集成了PICC编译器。
不同版本的PICC编译软件支持的器件是有限制的,所以如果用的不是PICC的最新版本(至少是V9.65),在选择器件的时候必须先要看该版本的PICC支持哪些器件,具体可以查看PICC安装目录下的相关文档。
在此列出PICC相关版本对表1中器件的支持情况进行说明。
PICC V8.05——支持PIC10/12/16/17部分器件,支持PIC16F87X型号,不支持性能高于此型号的器件,不支持PIC16F886;
PICC18 V8.03——PIC18系列的单片机要选用此编译器。支持PIC18F252,PIC18F452型号,不支持PIC18F2520;
PICC V9.65——支持PIC16系列绝大部分器件,不支持PIC18系列。对于PIC18系列的其他型号要选择PICC18 V9.65版本。
二、软件编程
PIC的汇编语言与51相比有很大的区别,对此不作叙述。单片机的C语言形式上都是类似的,都是用寄存器名称。
不同型号的PIC单片机有使用的时候相关寄存器也是有区别的,在此列出几例。
1.
IO端口使用
PIC单片机的PORTA一般也是作为AD转换的输入通道,复位后PORTA的默认状态是模拟输入,要把POTRA作为数字端口时先要对ADCON1进行设置。
对于PIC16F876A型号,C程序如下:
ADCON1 = 0x06;
//配置PORTA所有引脚为数字引脚
TRISA
= 0xCF;
//RA<3:0>为高阻输入,RA<5:4>为输出
PORTA
= 0xF5;
//RA<5:4>输出为高,RA<3:0>为高阻态
当引脚配置为输入状态时,为高阻状态。如果引脚外部接有电路,该引脚的电压由外部电路决定,没有接电路时,引脚的电压为0。
特别要注意的是,RA4为开漏输出,要配置此引脚为输出功能时,要外接上拉电阻。
对于PIC16F886型号,程序如下:
ANSEL = 0x00;
//配置PORTA为数字输入
ANSELH = 0x00;
//配置PORTB为数字输入
其他型号可对照数据手册进行设置。在有些文档中对ADCON1设置为0x07,设置为0x06也一样可行。
2.
串行通信设置
不同型号PIC单片机实现串行通信时,相关寄存器的设置基本不变,要注意波特率设置。要查对对应器件数据手册中关于寄存器SPBRG的值。不同型号的单片机设置不同。尽可能选择误差值小的设置方式。
3.
器件配置位
这是PIC单片机与51单片机的最大区别。通过设置配置位可以提供以下功能:选择振荡器类型、复位功能、程序代码保护、看门狗设置等。不同型号的配置位数量和配置值不同,依对应数据手册而定。
|