随笔 - 733  文章 - 2  评论 - 12  阅读 - 92万

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;   //禁止看门狗定时器。

posted on   杰瑞鼠  阅读(637)  评论(0编辑  收藏  举报
编辑推荐:
· .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 中如何实现缓存的预热?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示