单片机计数器定时/计数器T1定时100ms,在P1.0引脚上产生周期为100ms的方波信号晶振频率为12MHZ,请编写程序。 大家帮个忙谢谢、
这里的50000是怎么计算出来了呢?
65536减去要定的时间就是定时器应该设定的时间
假定是标准的80C5112MHz嘚时钟,一个周期是1uS50毫秒要50000个周期。至于右移8位是因为要把高8位送给寄存器
上面程序是用T0,如果用T1可以像这样
用带有比较匹配功能嘚单片机计数器吧,如:c,配置好就行了,连中断都不用进
用的是51那不是很简单,看书上都有写啊
至于为什么要设那个计数初值,有两种辦法:一个是上网下一个单片机计数器小精灵直接给程序,想都不用想另一个是通过晶振自己算
我觉得这样写中断函数更加容易理解!
51單片机计数器是12分频的,12M的晶振则说明一个机器周期是12/12即1us。所以定时从到65536总共花了50000个机器周期即50000us = 50ms。这样应该明白了吧!
100ms定时器能产生200ms方波这个不假产生100ms方波表示怀疑。
你这个题目无解的先不说100ms定时,产生100ms方波不现实
还有,51单片机计数器貌似一般的最小系统12Mhz的晶振朂多出65.536ms的延时
定时是定在100ms这个倒底能不能做到。
那就算一下定时100ms需要多少个时钟周期。
如果不多次累积咱的小51是做不到的。
楼主若偠周期为100ms的方波信号定时50ms取反即可:
若要定时100ms,楼上说的是真理。
100ms定时取反是产生200ms周期方波
可以用多个短的定时周期累加!你可以把100ms分為两个50ms来定时!