c51单片机的定时器1
是16位定时器
那么就是最大是65536
如果晶振频率是12MHZ
那么
最大定时时间是65536毫秒
你定时一秒
就可以把定时器装初值
是15536
15536加到65536
正好是50毫秒
经过20次50毫秒
那么就是1s
了程序中出现的delay(n),表示该函数内的while(i--);循环语句的循环体执行n次。
至于执行n次究竟是多少时间,那就要看:您用的是什么CPU、晶振的频率是多少、您的C语言用的是哪个版本,其中的优化方式是什么、……。
这些因素,都会影响一个语句的执行时间,当然总时间也就受影响了。
不过有一点可以肯定:同一个环境下,n越大,延迟时间越长,大致呈正比。
不过我这里说“大致呈正比”,是假定系统中不存在可以打断它的“中断服务程序”。如果有中断来不定期打断它,那时间就很不确定了。
因为n的类型是unsigned int ,在常见的环境下最大可取65535。若n取65535,现在常见的单片机或计算机的条件下,这个时间少则若干毫秒,多则也就几秒。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)