单片机中,12M的晶振是什么意思?

来源:百度知道 编辑:UC知道 时间:2024/06/25 07:16:15
单片机中,12M的晶振是什么意思?就是说,它能提供12MHZ的频率?那么,一条指令呢?难道就是用了这里边的1个时钟周期?用C编的程序,是不是一条就用一个这个周期就行了?最好大家帮点忙,用数码管相应的秒数记数器C编的程序,帮忙解答一下

我的回答和你的问号是相对应的:
1.这个晶振可以提供数值为12Mhz的振荡频率
2.是的
3.看来你是用C语言来编程序,那么我来解释一下。C语言在编译时要先将你的C语言代码转换为汇编语言的指令,具体的转换方法我不说,很麻烦。如果你想知道具体的一条C语句的指令要执行多长时间,那么你得看汇编中的代码是多长。汇编语言里一条语句要执行多长时间,是可以通过技术手册查到的。
4.哦,看来我上面的回答已经把下面的回答完了。(*^__^*)
5.还有一点,老式的51单片机,比如Atmel的89S51,它的机器周期是将你晶振的频率进行12分频的。也就是说如果你的晶振频率是12Mhz,那么实际上芯片的执行速度只有1Mhz,因为芯片内部的硬件将其12分频了。目的是为了确保芯片时钟的准确性。

就是机器周期的频率,单片机每个动作的最小周期就是12M倒数。指令周期和时钟周期(机器周期)是不同的,这要看指令类型和处理器架构。老的51一般的最小指令周期是12个机器周期,很多指令要多个指令周期。现在的高速单片机就快很多。要编定时程序最好用单片机的内部定时器,需要了解你用的单片机的定时器工作情况,程序很简单。

问题好多呀……
首先,12M的晶振就是提供12MHZ的频率,它的倒数就是时钟周期。
其次,一条指令会占多个时钟周期,不同的指令耗时是不一样的。
最后,没看懂你表达个啥“用数码管相应的秒数记数器C编的程序”

指令周期不同 所占用的系统周期也不同