欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2714|回復(fù): 1
收起左側(cè)

模擬EC11系列數(shù)字旋轉(zhuǎn)編碼器旋轉(zhuǎn)方向改變數(shù)值讓數(shù)碼管顯示四個(gè)數(shù)值的項(xiàng)目工程

[復(fù)制鏈接]
ID:171036 發(fā)表于 2020-2-24 12:49 | 顯示全部樓層 |閱讀模式
本帖最后由 51黑電子會(huì)員 于 2020-3-1 10:32 編輯

#include<reg52.h>//包含52單片機(jī)內(nèi)部寄存器頭文件
#define uchar unsigned char // 自定義uchar為unsigned char(即無(wú)符號(hào)字符型數(shù)據(jù),數(shù)據(jù)范圍:0到255。)
#define int int//自定義int為int(即有符號(hào)整數(shù)型數(shù)據(jù),數(shù)據(jù)范圍:-32768到32767。)
sbit K1=P1^0;//位定義EC11旋轉(zhuǎn)編碼器A端引腳K1
sbit K2=P1^1;//位定義EC11旋轉(zhuǎn)編碼器B端引腳K2
sbit K3=P3^4;//位定義EC11旋轉(zhuǎn)編碼器C端引腳K3
int KeyValue;//聲明數(shù)值變量
int ge ,shi,bai,qian;//聲明數(shù)值變量個(gè)位變量、數(shù)值變量十位變量、數(shù)值變量百位變量、數(shù)值變量千位變量、
//uchar qitingflag;
//unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共陽(yáng)數(shù)碼管段碼數(shù)字0~9字碼表,低電平點(diǎn)亮數(shù)碼管段碼數(shù)字0~9。
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f} ; //共陰數(shù)碼管段碼數(shù)字0~9字碼表,高電平點(diǎn)亮數(shù)碼管段碼數(shù)字0~9。
  void Delay(int z)//延時(shí)程序
{
   int x,y;
   for(x=z;x>0;x--)
    for(y=110;y>0;y--);
}
  void ShuMaGuanDisplayKeyValue(int KeyValue)//數(shù)碼管顯示數(shù)值函數(shù)
{  
   qian=KeyValue/1000;//數(shù)值變量個(gè)位變量值
   bai=KeyValue%1000/100;//數(shù)值變量十位變量值
   shi=KeyValue%100/10;//數(shù)值變量百位變量值
   ge=KeyValue%10;//數(shù)值變量千位變量值
  
   P2=0xfe;//數(shù)碼管千位顯示位
   P0=table[qian];//數(shù)碼管千位數(shù)值顯示
   Delay(5);//延時(shí)

   P2=0xfd;//數(shù)碼管百位顯示位
   P0=table[bai];//數(shù)碼管百位數(shù)值顯示
   Delay(5);//延時(shí)

   P2=0xfb;//數(shù)碼管十位顯示位
   P0=table[shi];//數(shù)碼管十位數(shù)值顯示
   Delay(5);//延時(shí)

     
   P2=0xf7;//數(shù)碼管個(gè)位顯示位
   P0=table[ge];//數(shù)碼管個(gè)位數(shù)值顯示
   Delay(5);//延時(shí)
}
  void KeyScan()//按鍵掃描函數(shù)
{
    if(K1==0)//開始檢測(cè)是否旋轉(zhuǎn)了開關(guān)
  {
//    delay(10);//消除抖動(dòng)
     ShuMaGuanDisplayKeyValue(KeyValue);//延時(shí)
     if(K1==0) //確實(shí)是旋轉(zhuǎn)了,進(jìn)行正反轉(zhuǎn)判斷。
   {
//     delay(10);//消除抖動(dòng)
      while(!K1)//等待開關(guān)A端復(fù)位(斷開),防止出現(xiàn)亂加減的現(xiàn)象。
      ShuMaGuanDisplayKeyValue(KeyValue);//延時(shí)
     if(K2==1)//正轉(zhuǎn),進(jìn)行正轉(zhuǎn)處理。
    {
      KeyValue=KeyValue+5;//數(shù)碼管數(shù)值每次增加5
     }
      if(K2==0)//反轉(zhuǎn),進(jìn)行反轉(zhuǎn)處理。
    {
       KeyValue=KeyValue-5;//數(shù)碼管數(shù)值每次減少5
     }
    }
   }
  }
  void main()//主函數(shù)
{   
   while(1)//死循環(huán)
  {
     KeyScan();//按鍵掃描函數(shù)
//    if(qitingflag==1)
     ShuMaGuanDisplayKeyValue(KeyValue);//數(shù)碼管顯示數(shù)值函數(shù)
     if(KeyValue<0)//判斷數(shù)值變量是否小于0
   {
      KeyValue=0;//數(shù)值變量置0
    }
     if(KeyValue>9999)//判斷數(shù)值變量是否大于9999
   {
      KeyValue=0;//數(shù)值變量置0
    }
   }
   
//    if(qitingflag==0)//判斷啟停標(biāo)志位變量是否為0
//   {
//     P2=0Xff;//
//     P0=0x00;//
//     KeyValue=0;
//    }
  }
下載.png

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:47634 發(fā)表于 2020-7-5 22:36 | 顯示全部樓層
不錯(cuò)不錯(cuò),剛剛是做了一下,功能正常,只是沒(méi)發(fā)現(xiàn) K3 怎么用?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表