80C51单片机和C8051F系列单片机是两种常见的微控制器,虽然它们在指令集上兼容,但在功能和性能上有显著的区别。C8051F系列由Cygnal公司设计,主打高速度和丰富的内置资源。
80C51系列,作为经典的MCS-51系列的一员,以其易于理解和扩展性强的特点广泛用于教学和科研领域。然而,它的局限性在于运算速度较慢,功耗较高,以及内部资源相对较少。相比之下,C8051F系列弥补了这些不足,它拥有与8051兼容的CIP-51内核,但增加了许多附加功能,如集成的模拟和数字外设,如ADC、PGA、DAC、比较器、基准电压源、温度传感器等,这些组件大大简化了设计复杂的嵌入式系统的过程,并降低了系统成本。
C8051F系列的结构差异主要体现在以下几个方面:
1. **可编程数字I/O和交叉开关**:C8051F12X引入了交叉开关配置,允许灵活分配内部数字资源到端口I/O引脚。这不同于传统的复用数字I/O,支持各种功能组合。通过设置XBRL、XBRL和XBRO寄存器来控制外设的分配。系统复位后,默认所有I/O引脚为输入并带上拉电阻,需通过设置XBRL的第六位启用交叉开关以提供输出。
2. **系统时钟源**:C8051F12X提供多种时钟源,包括内部振荡器、外部振荡器和锁相环(PLL)。PLL允许提高时钟频率,通过设置多个寄存器如OSCXLN、OSCXCN、OSCICL、CLKSEL、PLLCON、PLLFLT、PLL0DIV和PLL0MUL来配置所需系统时钟。
3. **特殊功能寄存器(SFR)结构**:与8051的SFR不同,C8051F12X的SFR分布在五页中,包括0、1、2、3和15页。例如,XBRL、XBRL、XBRO、OSCXLN等相关寄存器位于15页,而定时器相关的寄存器如TCO、TMOD、TH和TL位于0页。在访问SFR前,需要使用MOVSFRRPAGE, #页号指令切换页面。
在实际应用中,如使用C8051F12X单片机,需要注意初始化配置。例如,要配置串行异步通信UART和外部中断INT0,可能需要设置P0口的相应引脚,如P0.0为UART的RX端,P0.1可能用于INT0。初始化过程中,不仅要考虑端口配置,还要关注时钟源、UART波特率设置、中断服务子程序和SFR的页切换等细节。
C8051F系列单片机在保留8051兼容性的基础上,增加了许多增强功能,使其成为高性能、低功耗应用的理想选择。对于已经熟悉8051的工程师来说,虽然不能直接移植代码,但理解其内部结构和新增特性后,可以有效利用C8051F的优势进行系统设计和优化。