关于51单片机测方波信号占空比的问题
答案:2 悬赏:40 手机版
解决时间 2021-02-22 15:18
- 提问者网友:川水往事
- 2021-02-22 02:16
模型车的接收机输出的都是PWM信号,我想让单片机分析PWM信号不同的占空比,然后占空比大的触发点亮绿色LED信号,占空比小的触发点亮红色LED的信号程序,单片机可以完成吗?(描述的不好,还请见谅)
最佳答案
- 五星知识达人网友:低血压的长颈鹿
- 2021-02-22 02:43
当然可以,单片机可以实现对方波频率、占空比的检测。做这个东西你得从以下方面入手:
1、首先测出方波的频率(这个跟占空比无关),利用这个计算出周期T;
2、利用一个独立的外部中断,在测量完频率后启动。
(1)先开启中断,并设置为上升边沿触发;
(2)方波从低电平跳变到高电平后,中断触发后,将其设置为下降边沿触发,同时启动定时器;
(3)第二次触发中断后,停止计时,两次中断之间的间隔修正补偿后,就是高电平的持续时间Tu。
占空比可以计算出来,就是q=Tu/T*100%,
然后就显示即可。
1、首先测出方波的频率(这个跟占空比无关),利用这个计算出周期T;
2、利用一个独立的外部中断,在测量完频率后启动。
(1)先开启中断,并设置为上升边沿触发;
(2)方波从低电平跳变到高电平后,中断触发后,将其设置为下降边沿触发,同时启动定时器;
(3)第二次触发中断后,停止计时,两次中断之间的间隔修正补偿后,就是高电平的持续时间Tu。
占空比可以计算出来,就是q=Tu/T*100%,
然后就显示即可。
全部回答
- 1楼网友:廢物販賣機
- 2021-02-22 04:03
我写两个程序,占空比为50%周期为500微妙的程序 p1口输出测的话示波器直接测,干嘛那么复杂。
中断方法: org 0000h
ljmp start
org 000bh
ljmp tlint
org 001bh
start: mov sp,#30h
mov tmod,#01h
mov th0,#0ffh
mov tl0,#83h
setb ea
setb et0
setb tr0
sjmp $
tlint: mov th0,#0ffh
mov tl0,#83h
cpl p1
reti
end
查询方法: org 0000h
ljmp start
org 0100h
start: mov sp,#30h
mov tmod,#01h
setb tr0
loop:
setb p1.0
mov th0,#0ffh
mov tl0,#83h
jnb tf0,$
clr p1.0
clr tf0
mov th0,#0ffh
mov tl0,#83h
jnb tf0,$
clr p1.0
clr tf0
sjmp loop
end
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯