C8051特点
C8051与传统51的区别在于优先权交叉开关、系统时钟、SFR寄存器几个方面:
一 优先权交叉开关:传统的51外设功能是固定分配或者复用分配到指定引脚,而C8051则是通过优先权交叉开关设置,即要想分配外设到正确引脚不断要对应XBR使能,而且前面的外设也要按顺序正确使能(优先权使能)。交叉开关都是要使能的,否则引脚都被默认设置成弱上拉输入,引脚和内部外设功能是隔离的。
二 系统时钟:可以来自外部晶体、内部晶体、PLL(可来对外部或内部时钟源进行倍频或分频),满足各种需要。
三 SFR寄存器:C8051扩展了C51的寄存器(128字节不够用),外扩的寄存器分在不同页地址的空间里,要想对相应的寄存器进行正确操作,就要正确切换寄存器页(先保存当前页,在切换相应的页,最后在恢复原来保存的页),这和交叉开关是新手最容易忘记和出错的地方。
unsigned char SFRPAGE_save=SFRPAGE;
SFRPAGE=XXX_PAGE;
....操作相应寄存器
。。。
SFRPAGE=SFRPAGE_save;
四其它的一些问题:
IO:默认是开漏,若上拉输入(当当输出0时若上拉自动关闭以避免冲突,推挽:输出0到GND,输出1到VCC;开漏:输出0到GND,输出1是高阻)
看门狗:默认是开启的,调试时应关闭
SFRPAGE = CONFIG_PAGE
WDTCN = 0xde;
WDTCN = 0xad; //禁止看门狗定时器。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?