我正在为8051单片机课程的决赛做准备,我听不懂什么,需要您的帮助来解决。
我知道8051可以有一个内部振荡器和一个外部振荡器。
根据我的阅读,内部振荡器(默认情况下)设置为2 MHz,外部振荡器可以有4种类型:晶体,电容器,电阻-电容器(RC)和CMOS时钟。
我的问题是关于初始化系统时钟(到外部晶体振荡器)以及如何计算1 ms的延迟(让晶体振荡器settel)。
当我阅读以下代码(用于初始化系统时钟)时,我不明白DJNZ ACC, $
行如何给我512μs。
我想我知道如何使用公式计算延迟时间:
但是我得到了278μs的延迟,而不是513μs的延迟。
我的延迟公式计算-22.1184 MHz
我的延迟公式计算-使用12 MHz
但是当我将F_SysClk
更改为12 MHz时。一切正常,我得到了513μs。但是我不明白为什么我需要使用12 MHz而不是22.1184 MHz。
能否请您向我解释为什么我使用12 MHz?
这是我教科书遇到的问题