求基于51单片机的转速测量的设计(代码),最好C语言实现的,给些指导也行!
1个回答
追问
是啊 用霍尔传感器实现的,利用中断计数应该可以测得转速的,想找个C的代码学习一下
追答
名称:外部中断0边沿触发
内容:这里使用边沿触发
中断接口P3.2连接的霍尔传感器
#include
void Init_Timer1(void)
{
TMOD |= 0x10; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响
TH1=0x00; //给定初值,这里使用定时器最大值从0开始计数一直到65535溢出
TL1=0x00;
EA=1; //总中断打开
ET1=1; //定时器中断打开
TR1=1; //定时器开关打开
}
void main()
{
EA=1; //全局中断开
EX0=1; //外部中断0开
IT0=1; //边沿触发
Init_Timer1();
int flag=0;//记录高上升沿的次数
while(1)
{
//在此添加其他程序
}
}
/*------------------------------------------------
外部中断程序
------------------------------------------------*/
void ISR_Key(void) interrupt 0 using 1
{
flag++; //霍尔元件有信号输出
}
void Timer1_isr(void) interrupt 3 using 1
{
ET1=0; //当定时时间到了定时器中断关闭,此时的flag的值为定时器从0开始计数一直到65535溢出为止霍尔而元件产生的信号
}
随性编的可能不对,你可以参考下。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询