时钟频率是由晶振频率决定的,产生对应晶振频率的时钟频率。
当晶振频率是11.0592MHz的时候,时钟等于
((1/11.0592)=0.090422) 微秒 ,也就是时钟每震荡一次的的时间是0.090422微妙
单片机内部每执行一条语句需要花费12个时钟频率。也就机器周期=12*时钟频率
这是因为,执行一条语句单片机需要内部很多步骤,正好消耗12个时钟频率,所以规整成一,叫做机器周期,但操作某些变量也有自己的机器周期。如下图。
计算过程:
需要知道对应晶振的时钟周期11.0952MZH的时钟周期为:
也就是执行一条语句得用1.085微秒
利用for循环执行一定次数可以实现自己的延时程序,如果需要一个延时1ms功能的函数可以这样做。
所以使用unsigned int变量实现for循环,大约执行115次即为1ms;
void delay(unsigned int n){
unsigned int i,j;
for (i=0;i<n;i++)
for(j=115;j>=0;j--);
//以上是带形式参数的延时函数n=1时为1ms
如果对你有帮助,点赞支持一下吧。
转载联系本人。
联系客服