PIC(Peripheral Interface Controller)系列单片机是由美国微型公司(Microchip Technolo-gy Inc.)推出的一种用于开发控制外围设备的集成电路(IC),它是一种具有分散作用(多任务)功能的CPU。
PIC系列单片机的CPU采用RISC指令集,使用Harvard(哈佛)双总线结构,具有指令集简洁、简单易学、速度快、功能强、功耗低、价格低廉、体积小巧、适用性好及抗干扰能力强等特点。PIC系列单片机大量应用于汽车电气控制、电动机控制、工业控制和仪表、通信、家电、玩具等领域。
当今,单片机厂商繁多,产品性能各异。与其他系列单片机相比,PIC单片机主要具有以下优势。
【型号多种,满足各种需求】 PIC不搞单纯的功能堆积,而是从实际出发,重视产品的性价比,靠发展多种型号来满足不同层次的应用要求。PIC单片机分为8位、16位和32位,每种类型又有很多型号供用户选择。例如,一个摩托车的点火器需要一个I/O较少、RAM及ROM存储空间不大、可靠性较高的小型单片机,若采用40脚且功能强大的单片机,会造成资源浪费,使用起来也不方便。PIC12C508单片机仅有8个引脚,是世界上最小的单片机。该型号有512B ROM、25B RAM、一个8位定时器、一根输入线、5根I/O线,正适合像摩托车点火器这样的应用场合。PIC16C74(尚不是其最高档型号)有40个引脚,其内部资源为ROM共4KB、192B RAM、8路A/D、3个8位定时器、2个CCP模块、3个串行口、1个并行口、11个中断源、33个I/O引脚,这样一个型号的单片机可以和其他品牌的高档型号单片机相媲美。
【精简指令集,执行效率高】 基于8051内核的微控制器采用了复杂指令系统CISC(Complex Instruction Set Computing)体系。CISC结构的单片机是传统的冯·诺依曼(VonNeumann)结构,这种结构又称为普林斯顿(Princeton)体系结构。其片内程序空间和数据空间合在一起,取指令和操作数都是通过同一簇总线分时进行,当高速运算时,取指令和操作数不能同时进行,否则会造成传输通道上的瓶颈现象。
PIC单片机采用精简指令集RISC(Reduced Instruction Set Computing)的Harvard(哈佛)双总线结构。该结构的数据总线和指令总线分离,使指令具有单字长的特性,且允许指令码的位数可多于8位的数据位数,这与传统的采用CISC结构的8位单片机相比,可以实现2颐1的代码压缩,速度可以提高4倍。
【产品上市零等待】 采用PIC的低价OPT(One Time Programmable,一次性可编程)芯片,可使单片机在其应用程序开发完成后立刻使产品上市。
【开发环境优越,实时性好】 OTP单片机开发系统的实时性是一个重要的指标。普通51单片机的开发系统大都采用高档型号仿真低档型号,其实时性不尽理想。PIC在推出一款新型号的同时推出相应的仿真芯片,所有的开发系统由专用的仿真芯片支持,实时性非常好。就作者个人的经验来看,还没有出现过仿真结果与实际运行结果不同的情况。
【引脚具有瞬态抑制能力】 PIC单片机的引脚具有防瞬态能力,通过限流电阻可以接至220V交流电源,可以直接与继电器控制电路相连,不需要加光耦合器进行隔离,抗干扰能力强。
【保密性强】 PIC以保密熔丝来保护代码,用户在烧入代码后熔断熔丝,其他人再也无法读出程序代码,除非恢复熔丝。目前,PIC采用熔丝深埋工艺,恢复熔丝的可能性极小。
【内置看门狗】 PIC单片机的片内带看门狗定时器,可用于提高程序运行的可靠性。
【睡眠和低功耗模式】 PIC单片机可以工作在睡眠和低功耗模式下,特别是在便携式设备中,可以满足电池供电场合的应用。虽然PIC在这方面不能与新型的MSP430单片机相比,但也能满足一些低功耗场合的应用。
PIC单片机型号较多,但是这些单片机的命名均遵循一定的规则。PIC单片机的命名由前缀、系列号、器件类型等部分组成,如下所示。
【前缀】 PIC Microchip公司产品代号。注意,“dsPIC”为集成DSP功能的新型PIC单片机。
【系列号】 10、12、16、18、24、30、33,其中PIC10、PIC12、PIC16、PIC18为8位单片机;PIC24、dsPIC30、dsPIC33为16位单片机;PIC32为32位单片机。
【器件类型】 C表示CMOS电路;CR表示CMOS ROM;LC表示小功率CMOS电路;LCS表示小功率保护;AA表示工作电压为1.8V;LCR表示小功率CMOS ROM;LV表示低电压;F表示快闪可编程存储器;HC表示高速CMOS;FR表示FLEX ROM。
【改进类型或选择】 主要有54A、58A、61、62、620、621、622、63、64、65、71、73、74、42、43、44等。
【晶体标示】 LP为小功率晶体;RC为电阻电容;XT为标准晶体/振荡器。
【工作频率】 -02表示2MHz;-04表示4MHz;-10表示10MHz;-16表示16MHz;-20表示20MHz;-25表示25MHz;-33表示33MHz。
【温度范围】 空白表示0~70益;1表示-45~85益;E表示-40~125益。
【封装形式】 L表示PLCC封装;JW表示陶瓷熔封双列直插,有窗口;P表示塑料双列直插;PQ表示塑料四面引线扁平封装;W表示大圆片;SL表示14引脚微型封装,引脚间隔为150mil;JN表示陶瓷熔封双列直插,无窗口;SM表示8引脚微型封装,引脚间隔为207mil;SN表示8引脚微型封装,引脚间隔为150mil;VS表示超微型封装8mm×13.4mm;SO表示微型封装,引脚间隔为300mil;ST表示薄型缩小的微型封装,引脚间隔为4.4mm;SP表示横向缩小型塑料双列直插;CL表示68引脚的陶瓷四面引线,有窗口;SS表示缩小型微型封装;PT表示薄型四面引线扁平封装;TS表示薄型微型封装8mm×20mm;TQ表示薄型四面引线扁平封装。
Microchip公司的PIC系列单片机分为8位单片机、16位单片机、32位单片机和超低功耗单片机,本书仅介绍8位单片机的相关知识。
8位单片机在其整个8位机家族中分为基本级、中级、高级3档,对应的内部指令宽度分别是12位、14位、16位。
★ 12位指令宽度的低档单片机结构简单、价格低廉。如PIC16C5x系列的PIC16C54C、PIC16C57C等,适用于一些控制任务相对简单且对价格敏感的家电产品。又如PIC12C5xx系列的PIC12C508A、PIC12C509等,是世界上较早出现的8引脚低价单片机,因其体积小,完全可以适用于以前不能使用单片机的家电产品中。
★ 14位指令宽度的中档单片机是目前型号最丰富的品种系列,其片内功能模块种类齐全,组合灵活多变,如内部带有A/D变换器、E 2 PROM数据存储器、比较器输出、PWM输出、I2 C和SPI等接口;外部结构形式较丰富,有8引脚到68引脚的各种封装。该档产品性能很高,适用于各种高、中和低档电子产品的设计。代表型号如PIC16F7x系列的PIC16F73、PIC16F74、PIC16F76、PIC16F77;PIC16F87xA系列的PIC16F873A、PIC16F874A、PIC16F876A、PIC16F877A等。
★ 16位指令宽度的高档单片机在命名上以PIC18开头,整个内核体系在PIC16系列基础上有很大提高,最高指令流可达10MIPS(单条指令执行时间为100ns),达到部分16位单片机的性能,适用于要求高速数字运算的高端产品。
由于实际项目对单片机的功能要求不同,所以在使用前要根据实际需求选择合适的PIC单片机型号。本节以引脚(pin)数目为索引列出PIC系列8位单片机的产品列表。
表1-1所示是8/14引脚的单片机选型表,该类单片机的突出特点是体积微小、功能丰富,主要用于低成本、体积敏感型应用领域。
表1-2所示是18/20引脚的单片机选型表,这类单片机是产品设计中常用的,其特点是体积小,不同型号的功能特色明显,主要应用于低成本控制领域。
表1-3所示是28引脚单片机选型表,这类单片机也是产品中常用的,其特点是体积小、功能强,不同型号的功能特色明显。
表1-1 8/14引脚单片机选型表
表1-2 18/20引脚单片机选型表
表1-3 28引脚单片机选型表
表1-4所示是40/44引脚单片机选型表,这是PIC单片机中主要用于教学、科研的一类型号,其特点是功能齐全,性价比高。
表1-4 40/44引脚单片机选型表
表1-5所示是64/68引脚单片机选型表,这类单片机主要用于液晶显示模块、CAN总线控制等领域。
表1-5 64/68引脚单片机选型表
表1-6所示是80/84引脚单片机选型表,这类单片机主要应用于LCD控制、高精度A/D转换、CAN总线等多输入/输出(Input/Output,I/O)引脚控制领域。
表1-6 80/84引脚单片机选型表
尽管PIC单片机种类很多,但不同家族、不同型号之间的源代码移植非常方便。这完全得益于PIC单片机内核设计的一致性,使其指令上下兼容,具备相同的功能模块操作方式,更重要的是其表现出的电气特性也一致。目前,国内单片机的应用方向还主要定位在中低端的产品设计中,自然PIC16系列成为广大设计工程师关注的焦点。本书就以PIC家族中最典型的中档产品PIC16F877/PIC16F877A为立足点展开深入讨论。
PIC16F877是Microchip公司于1998年年底推出的一款Flash单片机,这款单片机以高性价比、适合于学习研究而著称。后来Microchip公司又推出了改进版本PIC16F877A,对PIC16F877做了细微的优化和改进,但二者的使用方法基本相同。本书所述内容同时适用于PIC16F877和PIC16F877A单片机,书中对这两款单片机不作区分。