全球主流8位MCU芯片详细解剖No.3:微芯 PIC16F877
往期系列文章推荐:
全球主流8位MCU芯片详细解剖No.1:飞思卡尔 MC9S08AC60
全球主流8位MCU芯片详细解剖No.2:英飞凌 XC866
PIC16F877简介
PIC16F877是由Microchip公司所生产开发的8位MCU,属于PICmicro系列单片微机,具有Flash program程序内存功能,可以重复烧录程序,适合教学、开发新产品等用途;而其内建ICD(In Circuit Debug)功能,可以让使用者直接在单片机电路或产品上,进行如暂停微处理器执行、观看缓存器内容等,让使用者能快速地进行程序除错与开发。
如图为PIC16F877的40根引脚图,PDIP是指一般最常见的DIP(Dual In Line Package)包装,而PIC单片机也有PLCC(Plastic Leaded Chip Carrier)与QFP(Quad Flat Package)两种形式的包装,依照不同的需求,寻找不同的包装形式。如图所示,每根接脚都有其特定功能,例如Pin11与Pin32(VDD)为正电源接脚,Pin12与Pin31(VSS)为地线接脚;而有些接脚有两种甚至三种以上功能,例如Pin2(RA0/AN0)代表PORTA的第一支接脚,在系统重置(Reset)后,可自动成为模拟输入接脚,接收模拟讯号,也可经由程序规划为数字输出输入接脚。
图1. PDIP40引脚PIC16F877接脚说明
图2. PDIP28和SOIC28引脚PIC16F877接脚图说明
图3. PLCC44引脚PIC16F877脚位图说明
图4. QFP44引脚PIC16F877引脚图说明
PIC16F877属于闪控式(Flash)单片机,可以重复烧录,其ROM的容量总共是8K words,以2K为一个page,区分为4个pages;内部RAM总共有512个字节(00f~1FFh),以128个字节为一个Bank,共区分为4个Bank,如图5所示,每个Bank的前半段都有其特殊用途,分别连接到其特殊功能模块,例如I/O、CCP、Timer、USART、MSSP等。
图5. PIC16F877的RAM配置
特殊内嵌功能
PIC16F877属于内嵌功能较多的单片机,除了CPU、POM、RAM、I/O等基本构造外,还包括以下各种功能,简介如下:
A/D converter:模拟数字转换器,最多可以读取8组模拟输入讯号。
CCP:Capture、Compare、PWM,用于控制直流马达。
Timer,内部定时器,有Timer0、Timer1、Timer2等。
USART:Universal Synchronous Asynchronous Receiver Transmitter,同步/异步串行传输,如RS232、RS485等。
MSSP;Master Synchronous Serial Port,两线式(I2C)与三线式(SPI)标准同步串行传输协定,常用于EEPROM内存资料的烧录与读取,或是与其它集成电路沟通与联系,形成多芯片网络。
PIC16F877基本电路
PIC振荡频率电路
单片机振荡电路与整体系统工作速度有直接的关系,例如同步∕异步串行传输、定时器等,都与振荡频率有关,不同系列单片机有不同振荡频率,根据产品资料手册,PIC16F877振荡频率最高可到20MHz;在图1中,振荡电路接于Pin13(OSC1/CLKIN)与Pin14(OSC2/CLKOUT),而振荡电路有以下四种形式:
LP:使用低功率振荡晶体(Low Power Crystal)
XT:使用振荡器∕谐振器(Crystal/Resonator)
HS:使用高速振荡器(High Speed Crystal/Resonator)
RC:使用电阻∕电容(Resister/Capacitor)
一般常用振荡晶体或是谐振器作为单片机振荡源,外接电路及PIC内部电路说明如图6所示。图中电容C1与C2规格大小是根据Crystal或Resonator而有所不同,表1列出电容建议值,使用其它振荡源的电路说明请参考产品资料手册。
图6. 振荡源电路图
表1. 建议电容值
外加电源与重置电路
PIC16F877的工作电压为5V,连接Pin11与Pin32,Pin12与Pin31为地线接脚;重置电路连接Pin1,按下Reset后,内部指令重头开始执行,系统重新运作。
图7. 电源与重置电路
输入输出接口
PIC16F877除了上述基本电路所占用的7支接脚外,其余的33支接脚都可当成输出、输入接脚,输入输出端口是单片机基本界面,可以与周边电路进行电路控制和信号传输与检测。PIC是8位的单片机,以接脚特性分组,每组尽量凑满8支接脚,并将I/O命名为PORTA(RA0~RA5)、PORTB(RB0~RB7)、PORTC(RC0~RC7)、PORTD(RD0~RD7)和PORTE(RE0~RE2)等,各分组接口特性说明如下:
PORTA
PIC16F877的PORTA总共有6个位(RA0~RA5),PORTA的接脚可作为数字输出输入端口,而系统重置后,PORTA自动成为模拟输入状态,可读取模拟输入讯号。
PORTB
PORTB总共有8个位(RB0~RB7),可以撰写程序规划输入输出方向、状态,其中,要进行烧录时,使用到三支接脚,分别是Pin36(RB3/PGM)、Pin39(RB6/PGC)与Pin40(RB7/PGD)。
PORTC
- 如何使创新的MCU实现高效节能电机控制?(07-07)
- 全球主流8位MCU芯片详细解剖No.2:英飞凌 XC866(07-26)
- 全球主流8位MCU芯片详细解剖No.1:飞思卡尔 MC9S08AC60(07-22)
- 开发工程师的创意变戏法:8位MCU变身32位MCU?!(04-30)
- 8位MCU(微控制器)体系架构特征及设计原则(11-03)
- 替代8位MCU,Cortex-M3成最强杀手锏?(07-09)