📄 编码器.c
字号:
//-----------------------函数声明,变量定义--------------------------------------------------------
#include <reg51.h>
sbit INT_0 =P3^2; // 将p3.2外部中断0
sbit pulse_A=P1^2; // P1.2为脉冲A输入
bit real_direction; //电机实际运行方向
unsigned char pulseB_count; //脉冲计数
//-----------------------变量声明---------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
// 函数名称: INT0_init()
// 函数功能: 初始化设置
// 设定INT0的工作方式
//--------------------------------------------------------------------------------------------------
void INT0_init(void )
{
IT0=1; //选择INT0为沿触发方式
EX0=1; //外部中断允许
EA=1; //系统中断允许
}
//--------------------------------------------------------------------------------------------------
// 函数名称: INT0_intrupt
// 函数功能: 外部中断0处理程序
//--------------------------------------------------------------------------------------------------
void INT0_intrupt() interrupt 0 using 1
{
if(pulse_A==0)
{
real_direction=1; //若P1.2为低电平,则电机为正转,计数器N的值加1
pulseB_count++;
}
else //若为高电平,则电机为反转,计数器N值减l。
{
real_direction=1;
pulseB_count++;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -