电子说
在电子设计的领域里,一款性能卓越、功能丰富的微控制器往往是项目成功的关键。今天,我们就来深入探讨Microchip的PIC16C925/926微控制器,看看它有哪些独特之处,能为我们的设计带来怎样的便利。
文件下载:PIC16LC925T-I/PT.pdf
PIC16C925/926系列属于PIC16CXXX中低端系列的低功耗、高性能、全静态8位微控制器,集成了LCD驱动模块。该系列有两种类型,“C”型工作在标准电压范围,“LC”型则能适应更宽的电压范围。它们有64引脚和68引脚封装,以及裸片形式,不同配置在功能上基本一致,只是PIC16C926在EPROM程序内存和数据内存上更具优势。
这两款微控制器具备诸多出色特性。高性能RISC CPU仅需学习35条单字指令,除程序分支需两个周期外,其余指令均为单周期执行,工作速度范围为DC - 20 MHz时钟输入,DC - 200 ns指令周期。内存方面,PIC16C925有4K x 14位的EPROM程序内存和176字节数据内存,PIC16C926则达到8K x 14位的EPROM程序内存和336字节数据内存。
外设功能也十分强大,拥有25个I/O引脚,具备独立的方向控制,还有25 - 27个仅用于输入的引脚。具备多个定时器模块,如8位的Timer0、16位的Timer1和带预分频器和后分频器的8位Timer2。还有捕获/比较/PWM模块、同步串行端口模块(支持SPI和I²C模式)、10位5通道的模数转换器以及可编程的LCD时序模块。
特殊功能同样实用,包括上电复位、上电定时器、振荡器启动定时器、看门狗定时器、可编程代码保护、可选振荡器选项和在线串行编程等。采用CMOS技术,低功耗、高速,工作电压范围宽,适用于商业和工业温度范围。
PIC16C925/926的程序计数器为13位,可寻址8K x 14的程序内存空间。PIC16C925仅物理实现了前4K x 14(0000h - 0FFFh),超出部分会回绕。复位向量位于0000h,中断向量在0004h。
数据内存分为四个存储体,包含通用寄存器和特殊功能寄存器。通过STATUS寄存器的RP1和RP0位进行存储体选择。部分通用寄存器未物理实现,用于跨存储体的通用访问。
特殊功能寄存器分为核心和外设两类。核心相关的寄存器如STATUS、OPTION、INTCON等,用于控制CPU的状态和操作;外设相关的寄存器则用于控制各个外设模块的功能。
PIC16C925/926的I/O端口部分引脚与外设功能复用。当外设启用时,对应引脚不能作为通用I/O引脚。
RA4/T0CKI引脚为施密特触发输入和开漏输出,其他RA端口引脚为TTL输入电平和全CMOS输出驱动器。TRISA寄存器控制RA引脚的方向,RA4还可作为Timer0模块的时钟输入,其他RA引脚可作为模拟输入和模拟VREF输入。
PORTB是8位双向端口,TRISB寄存器控制其方向。PORTB引脚有内部弱上拉,可通过OPTION寄存器的RBPU位控制。部分PORTB引脚(RB7 - RB4)具有电平变化中断功能,可用于唤醒设备。
PORTC是6位双向端口,每个引脚可通过TRISC寄存器独立配置为输入或输出。PORTC引脚与多个外设功能复用,使用时需注意TRIS位的设置。
PORTD是8位端口,前五个引脚可配置为通用I/O引脚或LCD段驱动器,RD5、RD6和RD7可作为数字输入、LCD段或公共驱动器。TRISD控制PORTD作为数字端口时引脚的方向。
这三个端口均为仅数字输入端口,每个引脚与LCD段驱动器复用。要将引脚配置为数字端口,需清除LCDSE寄存器的相应位。
在使用I/O端口时,读写操作实际上是先读再写,因此在对既有输入又有输出的端口使用读 - 修改 - 写指令时需谨慎。连续对I/O端口进行写和读操作时,要确保引脚电压稳定,必要时可插入NOP指令。
Timer0是8位定时器/计数器,可读可写,具有8位软件可编程预分频器,可选择内部或外部时钟源,溢出时可产生中断。在定时器模式下,每指令周期递增;计数器模式下,根据RA4/T0CKI引脚的边沿变化递增。预分频器可在Timer0和看门狗定时器之间共享。
Timer1是16位定时器/计数器,由TMR1H和TMR1L两个8位寄存器组成。可工作在定时器或计数器模式,通过TMR1CS位选择。在定时器模式下,每指令周期递增;计数器模式下,在外部时钟输入的上升沿递增。还可通过T1OSCEN位启用内部振荡器,该振荡器在SLEEP模式下可继续运行。
Timer2是8位定时器,带有预分频器和后分频器,可作为CCP模块PWM模式的时基,也可作为主模式SPI时钟的时基。TMR2寄存器可读可写,在设备复位时清零。
CCP模块包含一个16位寄存器,可作为捕获寄存器、比较寄存器或PWM主/从占空比寄存器。
在捕获模式下,CCPR1H:CCPR1L捕获TMR1寄存器的16位值,可选择不同的触发边沿。捕获时,中断请求标志位CCP1IF置位,需软件清除。
比较模式下,16位CCPR1寄存器值与TMR1寄存器对的值不断比较,根据CCP1M3:CCP1M0位的设置,对RC2/CCP1引脚进行相应操作,并产生比较中断。
PWM模式下,CCP1引脚可产生最高10位分辨率的PWM输出。PWM周期由PR2寄存器设置,占空比由CCPR1L寄存器和CCP1CON<5:4>位指定。
SSP模块可用于与其他外设或微控制器通信,支持SPI和I²C两种模式。
SPI模式可同步传输和接收8位数据,通常使用三个引脚(SDO、SDI、SCK),在从模式下还可使用第四个引脚(SS)。通过配置SSPCON和SSPSTAT寄存器的控制位,可指定主/从模式、时钟极性、时钟边沿、时钟速率和从选择模式。
I²C模式采用两线串行接口,遵循全面的协议确保数据可靠传输。设备有地址,主设备发起数据传输,产生时钟信号。SSP模块实现了除通用调用支持外的所有从功能,并在硬件上提供START和STOP位中断,方便实现主功能。
A/D转换器模块有五个输入,通过逐次逼近产生10位数字结果。可在SLEEP模式下工作,但A/D时钟需来自内部RC振荡器。通过ADCON0和ADCON1寄存器控制操作和端口引脚功能。
LCD模块可驱动静态或多路复用LCD面板,支持最多32段和4个公共端。通过LCDCON、LCDSE和LCDPS控制寄存器定义LCD面板的时序要求,通过LCDD00 - LCDD15寄存器控制像素数据。
配置位可选择设备的各种配置,如振荡器类型、是否启用上电定时器、看门狗定时器和欠压复位等。
支持四种振荡器模式:LP(低功耗晶体)、XT(晶体/谐振器)、HS(高速晶体/谐振器)和RC(电阻/电容)。不同模式下,需根据晶体或谐振器的特性选择合适的外部元件。
PIC16C925/926可区分多种复位类型,如上电复位、MCLR复位、看门狗定时器复位和欠压复位。部分寄存器在复位时不受影响,部分寄存器会复位到特定状态。
该系列有九个中断源,包括外部中断、定时器溢出中断、端口变化中断等。中断控制寄存器记录中断请求,通过全局中断使能位GIE控制所有未屏蔽的中断。
WDT是片上自由运行的RC振荡器,可在设备正常运行时产生复位,在SLEEP模式下唤醒设备。可通过配置位WDTE永久禁用。
执行SLEEP指令进入掉电模式,此时看门狗定时器清零但继续运行,PD位清零,TO位置位,振荡器驱动器关闭。设备可通过外部复位、看门狗定时器唤醒或中断唤醒。
未编程代码保护位时,可读取片上程序内存进行验证。
四个内存位置(2000h - 2003h)可用于存储校验和或其他代码标识号,正常执行时不可访问,编程/验证时可读可写。
PIC16CXXX微控制器可在最终应用电路中进行串行编程,只需两条时钟和数据线,以及电源、地和编程电压线。
Microchip为PIC微控制器提供了丰富的硬件和软件开发工具,包括集成开发环境、汇编器/编译器/链接器、模拟器、仿真器、在线调试器、设备编程器和低成本演示板等,方便开发者进行开发和调试。
PIC16C925/926微控制器凭借其丰富的功能、高性能和低功耗等特点,在电子设计中具有广泛的应用前景。无论是工业控制、消费电子还是其他领域,它都能为我们的设计带来更多的可能性。作为电子工程师,我们可以充分利用其特性,开发出更加优秀的产品。大家在使用过程中有什么问题或者经验,欢迎在评论区分享交流。
全部0条评论
快来发表一下你的评论吧 !