我用的51单片机的振荡频率为11.0592MHZ,此单片机的定时器能最小识别的最短定时时间可以定为多少啊?

补充:我想用此单片机发出周期为20ms的方波来控制舵机,给定时器初始化时TH0和TL0能付什么处置?即可以完成一次定时可以实现的时间越短越好,但是不知道越短之后舵机能否识别?谢谢 非常感谢

既然之前设置的定时器完成一次计时是100微秒,计200次就可以了,舵机正常工作。
后来改成50微秒,计400次舵机就不正常工作,那说明舵机不能识别那么高频率的方波,或者数据类型错了,应该定义为unsigned int。因为unsigned char 类型最大值只能是255。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-04
舵机我用过很多次,没有你想得那么麻烦的。舵机控制根本就不需要定时器,直接用延时程序(不需要太高精度,大概差不多就可以了),网上有很多延时程序(用C语言,延时1ms的程序应该很简单吧?),直接用(延时20ms)就可以了,百试不爽。
像定时器这样的珍贵资源,应该留起来,用在其它重要的地方。追问

我开始设置的定时器完成一次计时是100微秒,计200次就可以了,舵机正常工作。
后来改成50微秒,计400次舵机就不正常工作了呢?能帮忙吗?
谢谢啊

追答

是不是变量类型设置错了,如果是char的话,最多255。

第2个回答  2011-03-04
先确定舵机的最短响应时间,再用个给THO和TLO赋值的软件就可以算出来。
手算的话:1.时钟周期即晶振的单位时间发出的脉冲数,12MHZ=12×10的6次方,即每秒发出12000000个脉冲信号,那么发出一个脉冲的时间就是时钟周期,即1/12微秒。
2.一个机器周期等于12个时钟周期,所以是1微秒。如果是11.0592的话照上算。。。。追问

我开始设置的定时器完成一次计时是100微秒,计200次就可以了,舵机正常工作。
后来改成50微秒,计400次舵机就不正常工作了呢?能帮忙吗?
谢谢啊

追答

你定义次数用的CHAR还是UCHAR?

相似回答