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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5973|回復: 1
打印 上一主題 下一主題
收起左側

光電傳感器計數程序源代碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:168123 發表于 2017-3-4 15:24 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include < reg51.h >         // 實現光電門計數  
#include <intrins.h>

sbit LS138A=P2^2;  
sbit LS138B=P2^3;
sbit LS138C=P2^4;

unsigned int LedNumVal = -1 ,LedOut[8];
unsigned char code Disp_Tab[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,0x80,0x7c,0x39,0x5e,0x79,0x71,0x00};

void display()
{  
        unsigned char i;
    unsigned int j;
        unsigned int v;
               
        v = LedNumVa;
       
        if (v>=1000) LedOut[4]=Disp_Tab[v%10000/1000];          
        if (v>=100)  LedOut[5]=Disp_Tab[v%1000/100];
        if (v>=10)   LedOut[6]=Disp_Tab[v%100/10];
        if (v>=0)    LedOut[7]=Disp_Tab[v%10];

        for( i=0; i<8; i++)
        {
               
                switch(i)                                          
                {            
                        case 0:LS138A=0; LS138B=0; LS138C=0; break;         
                        case 1:LS138A=1; LS138B=0; LS138C=0; break;                    
                        case 2:LS138A=0; LS138B=1; LS138C=0; break;
                        case 3:LS138A=1; LS138B=1; LS138C=0; break;
                        case 4:LS138A=0; LS138B=0; LS138C=1; break;
                        case 5:LS138A=1; LS138B=0; LS138C=1; break;
                        case 6:LS138A=0; LS138B=1; LS138C=1; break;
                        case 7:LS138A=1; LS138B=1; LS138C=1; break;
                }
                P0 = LedOut[i];                  //發送段碼
                j=10;                                                 //掃描間隔時間設定
                while(j--);       
                P0 = 0x00;  //消隱
        }

}


void main(void)
{  
        P0=0xff;
        P1=0xff;
        P2=0xff;   
       
        // IT0=0;       //低電平觸發
        IT0=1;       //下降沿觸發
        EA=1;
        EX0=1;

        while(1)
        {  
             
           display();
          
        }
}
/********************************************************
* INT0中斷函數                                          *
********************************************************/
void  counter(void) interrupt 0
{
        //   unsigned char  x;
        EX0=0;
        LedNumVal++;     //中斷計數  
        EX0=1;
}
/********************************************************/




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:926023 發表于 2021-6-8 14:16 | 只看該作者
v = LedNumVa;應該為v = LedNumVal;
不然運行有一處錯誤
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表