怎么用外部中断检测方波-www.尊龙凯时888

电子元器件 时间:2023-04-08 22:30:09 回答数:4条
怎样用单片机外部中断测方波周期

最佳答案

感动的歌曲

斯文的朋友

2023-04-08 22:30:09

这个太简单了,

//搞个外中断,中断来了就计数

void t0(void) interrupt 0

{

t0count //这是全局变量

}

//t1工作在定时状态下,每定时1秒钟到,刷新t0的计数,

void t1(void) interrupt 1

{

tr0=1//搞个计数器中断

th0=0x3c//重新初始化

tl0=0xb0//这是12m晶振的

timecount //中断一次,记个数

if(timecount==20) //一个计数器,一次记不到一秒的,只有记很多次,才能算一秒,这就一秒了

{ frequency=t0count//看看中断多少次,frequency就是你要的频率。

t0count=0//把这个清了,记下一秒的次数。

}

}

main()

{

tmod = 0x01//选择计数器0的模式

ea=1 // 打开总中断

ex0=1it0=1//开0外中断

et0=1tr0=1//开0计时器

这里你加点代码,把frequency显示出来。

}

其他答案共有3条回答

  • 陶醉的乐曲
    2023-04-08 22:30:09

    当然可以,单片机可以实现对方波频率、占空比的检测。做这个东西你得从以下方面入手:

    1、首先测出方波的频率(这个跟占空比无关),利用这个计算出周期t;

    2、利用一个独立的外部中断,在测量完频率后启动。

    (1)先开启中断,并设置为上升边沿触发;

    (2)方波从低电平跳变到高电平后,中断触发后,将其设置为下降边沿触发,同时启动定时器;

    (3)第二次触发中断后,停止计时,两次中断之间的间隔修正补偿后,就是高电平的持续时间tu。

    占空比可以计算出来,就是q=tu/t*100%,

    然后就显示即可。

  • 知性的故事
    2023-04-08 22:30:09

    1.方波频率不能过高,理论最大值是单片机周期的1/2,实际达不到

    2.方波的电平需要匹配,也就是不能直接与单片机io脚相连,最好做好接口电路

    3.方波最好做整形

    程序上

    方波进入外部中断引脚

    记录定时器数值

    计算定时器的差值

    根据时钟频率折算出时间

    频率=1/时间

  • 闪闪的镜子
    2023-04-08 22:30:09

    什么型号单片机,用stm32单片机可以方波开始和结束,因其定时器有脉冲捕获功能,可以进行上升沿和下降沿捕获。上升沿开启定时器,下降沿关闭定时器,可以测脉冲宽度。51单片机可以用外部中断功能,但只能下降沿触发,因此只能测两个下降沿之间的时间,即周期。

(c)2020-2022 名片网 system all rights reserved   powered by

备案:

网站地图