模型车的接收机输出的都是PWM信号,我想让单片机分析PWM信号不同的占空比,然后占空比大的触发点亮绿色LED信号,占空比小的触发点亮红色LED的信号程序,单片机可以完成吗?(描述的不好,还请见谅)
楼主,你的回答真的很完美,谢谢。
但还是有一个问题在“2(3)高电平的持续时间Tu”话中,这个持续时间是定时器,它不溢出你怎么知道高电平持续的时间。期待您的精彩回答
你用外部中断控制定时器的起停,还记得TMOD中的那个GATE吗?
追问知道gate,但是TU的数值不知道,怎么用公式 q=Tu/T*100%
追答我前面说过了,你先把方波加到外部中断里面。首先设置上升沿触发,一旦开启后,下一个方波上升沿,外部中断就会被触发。在处理中断服务的时候,把这个外部中断重新设置为下降边沿触发,然后启动定时器。下一个下降边沿到来的时候,中断会被触发,而这个下降边沿,刚好就是方波高电平结束的地方。
启动定时器后(初值都是0),第二次外部中断的时候,停止定时器。这时候TH和TL寄存器肯定有值(如果超过65536,就增加一个变量a暂存)。所以高电平的时间就是a*65536+TH0*256+TL0,这个是计数值,然后乘以机器周期,就是高电平持续时间。
感谢已经不能表达我此时的心情,真的谢谢
关于51单片机测方波信号占空比的问题
当然可以,单片机可以实现对方波频率、占空比的检测。做这个东西你得从以下方面入手:1、首先测出方波的频率(这个跟占空比无关),利用这个计算出周期T;2、利用一个独立的外部中断,在测量完频率后启动。(1)先开启中断,并设置为上升边沿触发;(2)方波从低电平跳变到高电平后,中断触发后,将其设置...
51单片机用定时器形成占空比问题
如果使P1.0口输出5个T0高电平,5个T低电平,则得到占空比=50%,周期=10T=10mS的方波信号;使P1.0口输出3个T0高电平,7个T低电平,则得到占空比=30%,周期=3T+7T=10T=10mS的方波信号;如果想得到占空比=33%,那么取输出信号周期\/定时器周期=100,即定时器周期取 T=0.1mS=100uS ...
51单片机测占空比和周期程序求解
1、首先测出方波的频率(这个跟占空比无关),利用这个计算出周期T;2、利用一个独立的外部中断,在测量完频率后启动。(1)先开启中断,并设置为上升边沿触发;(2)方波从低电平跳变到高电平后,中断触发后,将其设置为下降边沿触发,同时启动定时器;(3)第二次触发中断后,停止计时,两次中断之间...
如何用c51 单片机测量方波的占空比
用中断检测下降沿,开始计时t1,同时信号进入高电平后开始计时t2,信号变为低电平t1t2结束计时。占空比=高电平时间\/周期=t2\/t1.单片机开发问题或许我这可以帮助的。
用的是51单片机,晶振11.0592,请问怎么算出占空比,和pwm波频率,求具体...
反之则输出低电平 一个周期后(假设中断20次)a清0,再次输出高电平 那么占空比=(20-b)\/20 改变b的值即可改变占空比 周期=20*定时器定时长 由于中断程序要占用一定时间,因此定时器中断间隔时间不能太短,造成PWM的频率不能太高,或者占空比的调节精度较低 所以有的单片机具有硬件PWM功能 ...
用51单片机的定时器产生一种方波,频率60HZ,但是占空比只有约0.5%...
不知道LZ用什么单片机,使用多少T 模式指令时钟,按标准51系列单片机计算,指令周期为 12个系统时钟周期;24MHz晶振,系统时钟周期 t =1\/24 us;单片机指令周期(机械周期)T=12t=0.5us;16位定时器的最大计数为 65536个机械周期,即 32768us=32.768ms,足够产生 16.67ms 的脉冲了。程序思路:①...
51单片机的占空比和频率的关系
51单片机所能输出的PWM的最大频率是由单片机的时钟周期决定的。51单片机所能输出的PWM的频率在25Hz以上肉眼就基本看不出来了。占空比是可以0%~100%调整的,这个是由程序决定。
你好,请问51单片机产生的PWM波形占空比是否只能是50%的?然后如果是,那 ...
可以产生任意占空比的,虽然51定时器本身没有PWM模式,但是可以通过交替改变初始值的方式,也就是说,中断后,写入高电平时间对应的初值,再中断后,写入低电平时间对应的初值,如此循环。如果是驱动电机的话,PWM频率建议到5至10kHz,不要太高也不要太低。另外注意,PWM调速时,速度不是线性的,占空比太...
用C51单片机和内部定时器来产生矩形波,要求频率为100HZ,占空比为2:1...
100HZ的矩形波,周期就是10ms,占空比2:1,就是高的部分占10ms的2\/3,低的部分占10ms的1\/3。理解了吗?
51单片机输出PWM的最高频率和占空比
51所能输出的PWM的最大频率 是由单片机的时钟周期决定的,25Hz以上肉眼就基本看不出来了 占空比是可以0%~100%调整的,这个是由程序决定 include <REGX52.H> define uchar unsigned char define uint unsigned int sbit PWM_OUT=P3^0; \/\/PWM输出 void DelayMS(uint ms){ uchar i,j;for(j=ms;...