使用STC14F104W单片机捕获PWM脉宽

本文介绍了如何利用STC15F104W单片机捕获20ms周期、1~2ms高电平的PWM脉冲。通过外部中断0和定时器,当检测到P3.2引脚的上升沿时启动定时器计时,下降沿时停止计时,从而计算高电平时间。程序中详细展示了中断服务函数的实现,这种方式被作者认为简单可靠。
摘要由CSDN通过智能技术生成

最近做了个小东西,使用的是很简单的一个单片机STC15F104W,但是功能很好用。这里简单介绍下本人使用STC15F104W实现的PWM脉冲高电平方式。

本人要捕获的PWM脉冲周期是20ms,高电平介于1~2ms。

主要使用的是外部中断和定时器,STC15F104W有4个外部中断,这里采用外部中断0,可以响应上升沿和下降沿。

(P3.2)外部中断0捕获引脚P3.2的上升沿和下降沿:上升沿开启定时器0计时,下降沿终止定时器0计时,这样读取计时寄存器的值即可获得高电平时间:TH0*256+TL0;

具体程序段:

//*******************************************************
//函数名称:void exint0() interrupt 0 
//函数功能:外部中断0;上升沿和下降沿触发中断
void exint0() interrupt 0       //INT0中断入口(P3.2)
{
  
if(P32 == BIT001)   //上升沿
{
  TL0 = 0x00;             //设置定时初值;0 0x00=0=(65536-65536)%256 
       TH0 = 0x00;

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值