久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2260|回復: 5
收起左側

計數對射傳感器

[復制鏈接]
ID:248866 發表于 2017-11-20 14:37 | 顯示全部樓層 |閱讀模式
誰有這一類的教程或程序,急求   謝謝

回復

使用道具 舉報

ID:248503 發表于 2017-11-20 16:39 | 顯示全部樓層
基于AT89 S51的雙紅外激光對射開關實現智能照明控制.rar (342.53 KB, 下載次數: 10)


名字:基于AT89 S51的雙紅外激光對射開關實現智能照明控制

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:542071 發表于 2019-5-19 15:10 | 顯示全部樓層
#include<reg51.h>
#include "uart.c"
#define uchar unsigned char
#define uint  unsigned int
//定義管腳
sbit key_1=P1^0; //計數
sbit key_2=P1^2;//頁面上翻
sbit key_3=P1^1;//頁面下翻
sbit key_4=P1^3;//清零
sbit key_5=P1^4;//回到計數模式
//--定義全局變量--//
unsigned char code wei[4] = {
0xfe,0xfd,0xfb,0xf7};//位選控制   查表的方法控制
unsigned char code duan[18] = {
0x5f,0x44,0x9d,0xd5,0xc6,0xd3,0xdb,0x47,0xdf,0xd7,0xcf,0xda,0x1b,0xdc,0x9b,0x8b,0x80};
//0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的顯示碼
uchar count,yemian,number;//分別用來記錄當前數值,顯示的頁面  以及將記錄寫到數組的哪個位置
uchar record[15]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
void display(uchar a,uchar b,uchar c); //動態顯示函數
void delay(unsigned int ms)//延時1毫秒(不夠精確的)
{
    unsigned int i,j;
    for(i=0;i<ms;i++)
    for(j=0;j<110;j++);
}
void key()
{
  if(key_1==0)
  {
   delay(5);
   if(key_1==0)
   {
    count++;
if(count>98)
count=99;
while(key_1==0)
display(yemian,count,record[yemian-1]);
   }
  }
  if(key_2==0)
  {
   delay(5);
   if(key_2==0)
   {
    if(yemian>1)
    yemian--;
else
yemian=15;
while(key_2==0)
display(yemian,count,record[yemian-1]);
   }
  }
  if(key_3==0)
  {
   delay(5);
   if(key_3==0)
   {
    if(yemian<15)
yemian++;
else
yemian=1;
while(key_3==0)
display(yemian,count,record[yemian-1]);
   }
  }
  if(key_4==0)
  {
    delay(5);
if(key_4==0)
{
  if(count!=0&&number<15)
  {
  record[number++]=count;
  
  }
  count=0;
  while(key_4==0)
  display(yemian,count,record[yemian-1]);
}
  }
  if(key_5==0)
  {
   delay(5);
   if(key_5==0)
   {
    yemian=0;
while(key_5==0)
display(yemian,count,record[yemian-1]);
   }
  }
}
/*******************************************************************************
* 函 數 名         : main
* 函數功能     : 主函數
* 輸    入         : 無
* 輸    出         : 無
*******************************************************************************/
void main(void)
{
    uchar i;
Uart_init();
while(1)
{
     
     for(i=0;i<15;i++)
  {
  display(yemian,count,record[yemian-1]);
  key();
  if(i==0)
  SendASC('$');
  display(yemian,count,record[yemian-1]);
  SendASC(record[i]/10+0x30);
  display(yemian,count,record[yemian-1]);
  SendASC(record[i]%10+0x30);

  }
  display(yemian,count,record[yemian-1]);
     SendASC(count/10+0x30);
  display(yemian,count,record[yemian-1]);
  SendASC(count%10+0x30);
  display(yemian,count,record[yemian-1]);
  SendASC('!');
  display(yemian,count,record[yemian-1]);
}   
}
/*******************************************************************************
* 函 數 名         : DigDisplay
* 函數功能     : 使用數碼管顯示
* 輸    入         : 無
* 輸    出         : 無
*******************************************************************************/
void display(unsigned char a,unsigned char b,uchar c)
{
P2=0x7f;
if(a!=0)
P0=~duan[a];
else
P0=~0x00;
delay(5);
P0=~0x00;
P2=0xbf;
if(a!=0)
P0=~duan[16];
else
P0=~0x00;
delay(5);
  P0=~0x00;
P2=0xdf;
if(a!=0)
P0=~duan[c/10];
else
P0=~duan[b/10];
delay(5);
P0=~0x00;
P2=0xef;
if(a!=0)
P0=~duan[c%10];
else
P0=~duan[b%10];
delay(5);
P0=~0x00;
}


回復

使用道具 舉報

ID:542071 發表于 2019-5-19 15:11 | 顯示全部樓層
#include<reg51.h>
#include "uart.c"
#define uchar unsigned char
#define uint  unsigned int

//定義管腳
sbit key_1=P1^0; //計數
sbit key_2=P1^2;//頁面上翻
sbit key_3=P1^1;//頁面下翻
sbit key_4=P1^3;//清零
sbit key_5=P1^4;//回到計數模式

//--定義全局變量--//
unsigned char code wei[4] = {
0xfe,0xfd,0xfb,0xf7};//位選控制   查表的方法控制
unsigned char code duan[18] = {
0x5f,0x44,0x9d,0xd5,0xc6,0xd3,0xdb,0x47,0xdf,0xd7,0xcf,0xda,0x1b,0xdc,0x9b,0x8b,0x80};
//0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的顯示碼
uchar count,yemian,number;//分別用來記錄當前數值,顯示的頁面  以及將記錄寫到數組的哪個位置
uchar record[15]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
void display(uchar a,uchar b,uchar c); //動態顯示函數
void delay(unsigned int ms)//延時1毫秒(不夠精確的)
{
    unsigned int i,j;
    for(i=0;i<ms;i++)
    for(j=0;j<110;j++);
}
void key()
{
  if(key_1==0)
  {
   delay(5);
   if(key_1==0)
   {
    count++;
        if(count>98)
        count=99;
        while(key_1==0)
        display(yemian,count,record[yemian-1]);
   }
  }

  if(key_2==0)
  {
   delay(5);
   if(key_2==0)
   {
    if(yemian>1)
    yemian--;
        else
        yemian=15;
        while(key_2==0)
        display(yemian,count,record[yemian-1]);
   }
  }

  if(key_3==0)
  {
   delay(5);
   if(key_3==0)
   {
    if(yemian<15)
        yemian++;
        else
        yemian=1;
        while(key_3==0)
        display(yemian,count,record[yemian-1]);
   }
  }

  if(key_4==0)
  {
    delay(5);
        if(key_4==0)
        {
         if(count!=0&&number<15)
         {
         record[number++]=count;
         
         }
         count=0;
         while(key_4==0)
         display(yemian,count,record[yemian-1]);
        }
  }

  if(key_5==0)
  {
   delay(5);
   if(key_5==0)
   {
    yemian=0;
        while(key_5==0)
        display(yemian,count,record[yemian-1]);
   }
  }
}
/*******************************************************************************
* 函 數 名         : main
* 函數功能                   : 主函數
* 輸    入         : 無
* 輸    出         : 無
*******************************************************************************/

void main(void)
{       
           uchar i;
        Uart_init();
        while(1)
        {
            
            for(i=0;i<15;i++)
                {
                display(yemian,count,record[yemian-1]);
                key();
                if(i==0)
                SendASC('$');
                display(yemian,count,record[yemian-1]);
                SendASC(record[i]/10+0x30);
                display(yemian,count,record[yemian-1]);
                SendASC(record[i]%10+0x30);
       
                }
                display(yemian,count,record[yemian-1]);
            SendASC(count/10+0x30);
                display(yemian,count,record[yemian-1]);
                SendASC(count%10+0x30);
                display(yemian,count,record[yemian-1]);
                SendASC('!');
                display(yemian,count,record[yemian-1]);
        }                               
}

/*******************************************************************************
* 函 數 名         : DigDisplay
* 函數功能                   : 使用數碼管顯示
* 輸    入         : 無
* 輸    出         : 無
*******************************************************************************/

void display(unsigned char a,unsigned char b,uchar c)
{
        P2=0x7f;
        if(a!=0)
        P0=~duan[a];
        else
        P0=~0x00;
        delay(5);
        P0=~0x00;
        P2=0xbf;
        if(a!=0)
        P0=~duan[16];
        else
        P0=~0x00;
        delay(5);
         P0=~0x00;
        P2=0xdf;
        if(a!=0)
        P0=~duan[c/10];
        else
        P0=~duan[b/10];
        delay(5);
        P0=~0x00;
        P2=0xef;
        if(a!=0)
        P0=~duan[c%10];
        else
        P0=~duan[b%10];
        delay(5);
        P0=~0x00;
}
回復

使用道具 舉報

ID:542218 發表于 2019-5-19 17:58 | 顯示全部樓層
代碼我跑過一遍,可以運行,很牛逼!!!!
回復

使用道具 舉報

ID:530396 發表于 2019-5-19 21:40 | 顯示全部樓層
支持分享!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线观看国产wwwa级羞羞视频 | 有码在线| 成人性视频在线播放 | 免费三级网站 | 91在线观看免费 | 国产ts一区| 国产福利视频 | 91精品久久久久久久久久小网站 | 国产精品一区二区欧美 | 成年免费大片黄在线观看一级 | 成人免费视频一区二区 | 国产亚洲一区二区三区 | 国产一区二区 | 99精品网| 日本国产高清 | 色视频免费| 麻豆久久久9性大片 | 91偷拍精品一区二区三区 | 国产精品久久久久不卡 | www国产亚洲精品久久网站 | 亚洲免费高清 | 免费九九视频 | 精品久久久久久亚洲综合网 | 一区二区三区四区在线视频 | 久久精品免费观看 | 亚洲精品免费看 | 午夜影院官网 | 99国产视频| 天天操天天射天天舔 | 亚洲成人免费观看 | 国产乱精品一区二区三区 | 精品免费观看 | 天天碰夜夜操 | 免费特黄视频 | 久久精品中文字幕 | 久久一区二区三区免费 | 女人夜夜春 | 欧美精品乱码久久久久久按摩 | 特级特黄特色的免费大片 | 久久久久久黄 | 国产成人精品午夜视频免费 |