模拟EC11系列数字旋转编码器旋转方向改变数值让数码管显示一个数值

站长

发表文章数:4335

为什么大公司不喜欢用第三方框架?难道是因为……

#include<reg51.h>//单片机头文件
#define SMG P0//自定义单片机P0组端口为变量SMG
#define uchar unsigned char//自定义变量uchar为unsigned char
unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳数码管段码显示0~9数字的数组
int num;//共阳数码管段码数组下标数字变量
sbit AA = P1^0;//接编码器A端
sbit BB = P1^1;//接编码器B端
  void delay(uchar z)//延时函数
{
    uchar i,j;
    for(i = 0; i < z; i++)
    for(j = 0; j < 120; j++);
 }
  void main()//主函数
{
    while(1)//死循环
  {  
       if(num<0)//判断共阳数码管段码数组下标数字变量是否小于0
     {
        num=9;//共阳数码管段码数组下标数字变量变为9
      }
       if(num>9)//判断共阳数码管段码数组下标数字变量是否大于9
     {
        num=0;//共阳数码管段码数组下标数字变量变为0
      }
       SMG=table[num];//共阳数码管段码显示0~9数字的数组赋值给变量SMG,相当于赋值给单片机P0组端口,从而让数码管显示出0~ 9数字。            
       if(AA == 0)//开始检测是否旋转了开关
     {
        delay(10);//消除抖动
        if(AA == 0) //确实是旋转了,进行正反转判断。
      {
         delay(10);//消除抖动
         while(!AA);//等待开关A端复位(断开),防止出现乱加减的现象。
         if(BB == 1)//正转,进行正转处理。
       {
          num++;//数码管数值增加
        }
         if(BB == 0)//反转,进行反转处理。
       {
          num--;//数码管数值减少
        }
       }
      }
     }
    }

netty的调优 及 献上写过注释的源码工程

模拟EC11系列数字旋转编码器旋转方向改变数值让数码管显示一个数值

模拟EC11系列数字旋转编码器旋转方向改变数值让数码管显示一个数值

WebMagic 实现爬虫入门教程

分享到:
赞(0) 打赏 生成海报

长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

投稿赚钱
2020年在家赚取零花钱
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册