旋转编码器(光电编码)c程序

/*-----------------------------------------------
  名称:外部中断0边沿触发
  内容:通过中断接口P3.2连接的旋转编码器脉冲输出端,用数码管显示旋转圈数,
        INT0设置为下降沿触发。
------------------------------------------------*/
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
/*------------------------------------------------
                    主程序
------------------------------------------------*/
#define uint unsigned int
#define uchar unsigned char
uint  a=0,b=0;
uchar Duma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//段码
uchar Wema[]={0,1,2,3,4,5,6,7};//位码
uchar Qushu[4]={0,0,0,0};
main()
{ uint  x;
  uchar i;
  EA=1;          //全局中断开
  EX0=1;        //外部中断0开
  IT0=1;        //边沿触发
  P3=0xff;
增量式光电编码器  while(1)
  {
  for(i=0;i<4;i++)
  {
    P2=Wema[i];
    P0=Duma[Qushu[i]];  //在此添加其他程序
    for(x=0;x<1000;x++);
  }
  }
}
/*------------------------------------------------
                外部中断程序
------------------------------------------------*/
void in0(void) interrupt 0 using 1
{
a++;
if(a>=500)
{a=0;
  b++;
  if(b>9999)
  b=0;
  Qushu[0]=b/1000;
  Qushu[1]=b%1000/100;
  Qushu[2]=b%1000%100/10;
  Qushu[3]=b%10;
}        //s3按下触发一次,P1取反一次,这里需要切换跳帽到独立按键模式
}

本文发布于:2024-09-22 13:20:18,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/353037.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:中断   旋转   头文件   包含   需要   连接   触发   编码器
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议