寻51单片机高手..

来源:百度知道 编辑:UC知道 时间:2024/07/02 03:22:38
在p1.0口输入31.25KHz(32uS)的PWM信号,需要在P1.7口输出周期0.3125KHz(3200uS)的相同占空比信号.320uS内P1.0口有100个周期32uS信号,只取其中一个其余丢弃不用. 2051单片机系统时钟16MHZ.
我的思路:单片机需要计算p1.0的1个PWM周期32uS的时间内高电平或低电平时间. 然后在P1.7依此数据比例输出周期时间为3200uS的PWM信号。例如输入H=0uS L=32uS,则输出H=0,L=3200. 输入H=4uS L=28uS,则输出H=400,L=2800uS. 输入H=6uS L=26uS,则输出H=600,L=2600uS.依次类推.如何实现呢?请提供C或汇编代码.

把输入接到P3.4,用计数模式不是很好?

计数模式会有误差的吧。
纠正楼主一个错误:假如是用定时器输出的化,H是指高8位,L是指低8位,直接高低乘以一个系数是错误的!

10分太少了,飘过~~

计数100次后,执行一次就可以。

问题这么复杂,才10分.