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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

紅外對

[復(fù)制鏈接]
ID:918728 發(fā)表于 2024-4-12 11:11 | 顯示全部樓層 |閱讀模式
#include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義
#include "HX711.h"
sbit KEY_ADD1=P1^0;  //定義紅外輸入端口
sbit KEY_ADD2=P1^1;
sbit KEY_ADD3=P1^2;
sbit KEY_ADD4=P1^3;
sbit KEY_ADD5=P1^4;

sbit LED1=P2^0;  //定義led輸出端口
sbit LED2=P2^1;  //定義led輸出端口
sbit LED3=P2^2;  //定義led輸出端口
sbit LED4=P2^3;  //定義led輸出端口
sbit LED5=P2^4;  //定義led輸出端口

sbit Buzzer = P3^7;

bit num1=0;
bit num2=0;
bit num3=0;
bit num4=0;
bit num5=0;
long Weight_Shiwu = 0;
unsigned int GapValue;
unsigned char Tx_Buf[12];
unsigned char Rx_buf[1];
/*------------------------------------------------
uS延時函數(shù),含有輸入?yún)?shù) unsigned char t,無返回值
unsigned char 是定義無符號字符變量,其值的范圍是
0~255 這里使用晶振12M,精確延時請使用匯編,大致延時
長度如下 T=tx2+5 uS
------------------------------------------------*/
void DelayUs2x(unsigned char t)
{   
while(--t);
}
/*------------------------------------------------
mS延時函數(shù),含有輸入?yún)?shù) unsigned char t,無返回值
unsigned char 是定義無符號字符變量,其值的范圍是
0~255 這里使用晶振12M,精確延時請使用匯編
------------------------------------------------*/
void DelayMs(unsigned char t)
{

while(t--)
{
     //大致延時1mS
     DelayUs2x(245);
         DelayUs2x(245);
}
}
/**********************************************************************************************************
* @函數(shù)名稱    UartInit
* @功能描述    :串口程序
* @參數(shù)說明    None
* @創(chuàng)建日期    : 2023-04-17
**********************************************************************************************************/
void InitUART(void)                                 //這是串口的基本配置,配置他的波特率是9600.這些參數(shù)都是標準的。
{
    TMOD = 0x21;
    SCON = 0x50;
    TL0 = 0xb0;
    TH0 = 0x3c;                        //賦初值50ms
    TH1 = 0xFD;
    TL1 = TH1;
    PCON = 0x00;
    EA = 1;
    ES = 1;
    TR1 = 1;
    ET0 = 1;                                //打開定時器0中斷允許開關(guān)
    TR0 = 1;                                //打開定時器0定時開關(guān)
}
///**********************************************************************************************************
//**函數(shù)名稱 :putc_to_SerialPort(unsigned char c)
//**函數(shù)描述 :uart發(fā)送函數(shù)
//**輸    入 :buf
//**輸    出 :None
//**********************************************************************************************************/
  void putc_to_SerialPort(unsigned char c)
{
        SBUF = c;
        while(TI == 0);
        TI = 0;
}
void puts_to_SerialPort(unsigned char *s)
{
        while(*s != '\0')
        {
        putc_to_SerialPort(*s);
        s++;
        DelayMs(5);
  }
}  
void number(void)
{
    Tx_Buf[0] = 'Z';                                                //幀頭
    Tx_Buf[1] = 'L';                                                //將庫存數(shù)據(jù)送往發(fā)送數(shù)組,送給藍牙模塊讓手機APP顯示
    Tx_Buf[2] = ':';                                                //
    Tx_Buf[3] = Weight_Shiwu/100000 + 0x30;                //
    Tx_Buf[4] = Weight_Shiwu%100000/10000 + 0x30;
    Tx_Buf[5] = Weight_Shiwu%10000/1000 + 0x30;                                                //
    Tx_Buf[6] = '.';                                                //
    Tx_Buf[7] = Weight_Shiwu%1000/100 + 0x30;                                                //
    Tx_Buf[8] = Weight_Shiwu % 100 / 10 + 0x30;
    Tx_Buf[9] = Weight_Shiwu % 10 + 0x30;
    Tx_Buf[10] = 'k';                                                //幀尾
    Tx_Buf[11] = 'g';       
       
}               
/*------------------------------------------------                    紅外識別函數(shù)------------------------------------------------*/               
void hongwai_KeyPress()
{
                if(!KEY_ADD1)  //如果檢測到低電平,說明按鍵按下
                {
                         DelayMs(10); //延時去抖,一般10-20ms
                         if(!KEY_ADD1)     //再次確認按鍵是否按下,沒有按下則退出
                         {
                                        while(!KEY_ADD1);//如果確認按下按鍵等待按鍵釋放,沒有釋放則一直等待
                                         {
                                                        num1=~num1;
                                                        if(num1==1)
                                                        {
                                                                 LED1 = 0;
                                                                 LED2 = 1;
                                                                 LED3 = 1;       
                                                                 LED4 = 1;
                                                                 LED5 = 1;
                 puts_to_SerialPort("1 hao you wupin\r\n");                                       
                                                        }
                                                        else
                                                        {
                                                                 LED1 = 1;
                                                                 LED2 = 1;
                                                                 LED3 = 1;       
                                                                 LED4 = 1;
                                                                 LED5 = 1;       
                 puts_to_SerialPort("1 hao wu wupin\r\n");                                                               
                                                        }
                                         }
                         }
                }
         if(!KEY_ADD2)  //如果檢測到低電平,說明按鍵按下
         {
                 DelayMs(10); //延時去抖,一般10-20ms
                         if(!KEY_ADD2)     //再次確認按鍵是否按下,沒有按下則退出
                         {
                                        while(!KEY_ADD2);//如果確認按下按鍵等待按鍵釋放,沒有釋放則一直等待
                                         {
                                                        num2=~num2;
                                                        if(num2==1)
                                                        {
                                                                 LED1 = 1;
                                                                 LED2 = 0;
                                                                 LED3 = 1;       
                                                                 LED4 = 1;
                                                                 LED5 = 1;
                 puts_to_SerialPort("2 hao you wupin\r\n");                                                                       
                                                        }
                                                        else
                                                        {
                                                                 LED1 = 1;
                                                                 LED2 = 1;
                                                                 LED3 = 1;       
                                                                 LED4 = 1;
                                                                 LED5 = 1;       
                 puts_to_SerialPort("2 hao wu wupin\r\n");                                                                       
                                                        }
                                         }
                         }
                }

                if(!KEY_ADD3)  //如果檢測到低電平,說明按鍵按下
                {
                         DelayMs(10); //延時去抖,一般10-20ms
                         if(!KEY_ADD3)     //再次確認按鍵是否按下,沒有按下則退出
                         {
                                        while(!KEY_ADD3);//如果確認按下按鍵等待按鍵釋放,沒有釋放則一直等待
                                         {
                                                        num3=~num3;
                                                        if(num3==1)
                                                        {
                                                                 LED1 = 1;
                                                                 LED2 = 1;
                                                                 LED3 = 0;       
                                                                 LED4 = 1;
                                                                 LED5 = 1;
                 puts_to_SerialPort("3 hao you wupin\r\n");                                                                               
                                                        }

                                                        else
                                                        {
                                                                 LED1 = 1;
                                                                 LED2 = 1;
                                                                 LED3 = 1;       
                                                                 LED4 = 1;
                                                                 LED5 = 1;       
                 puts_to_SerialPort("3 hao wu wupin\r\n");                                                                       
                                                        }
                                         }
                         }
                }

                if(!KEY_ADD4)  //如果檢測到低電平,說明按鍵按下
                {
                         DelayMs(10); //延時去抖,一般10-20ms
                         if(!KEY_ADD4)     //再次確認按鍵是否按下,沒有按下則退出
                         {
                                        while(!KEY_ADD4);//如果確認按下按鍵等待按鍵釋放,沒有釋放則一直等待
                                         {
                                                        num4=~num4;
                                                        if(num4==1)
                                                        {
                                                                 LED1 = 1;
                                                                 LED2 = 1;
                                                                 LED3 = 1;       
                                                                 LED4 = 0;
                                                                 LED5 = 1;       
                 puts_to_SerialPort("4 hao you wupin\r\n");                                                                       
                                                        }

                                                        else
                                                        {
                                                                 LED1 = 1;
                                                                 LED2 = 1;
                                                                 LED3 = 1;       
                                                                 LED4 = 1;
                                                                 LED5 = 1;
                 puts_to_SerialPort("5 hao wu wupin\r\n");                                                                       
                                                        }
                                         }
                         }
                }

                if(!KEY_ADD5)  //如果檢測到低電平,說明按鍵按下
                {
                         DelayMs(10); //延時去抖,一般10-20ms
                         if(!KEY_ADD5)     //再次確認按鍵是否按下,沒有按下則退出
                         {
                                        while(!KEY_ADD5);//如果確認按下按鍵等待按鍵釋放,沒有釋放則一直等待
                                         {
                                                        num5=~num5;
                                                        if(num5==1)
                                                        {
                                                                 LED1 = 1;
                                                                 LED2 = 1;
                                                                 LED3 = 1;       
                                                                 LED4 = 1;
                                                                 LED5 = 0;
                 puts_to_SerialPort("5 hao you wupin\r\n");                                                                       
                                                        }

                                                        else
                                                        {
                                                                 LED1 = 1;
                                                                 LED2 = 1;
                                                                 LED3 = 1;       
                                                                 LED4 = 1;
                                                                 LED5 = 1;       
                 puts_to_SerialPort("5 hao wu wupin\r\n");                                                                       
                                                        }
                                         }
                         }
                }
         
}

//****************************************************
//稱重
//****************************************************
void Get_Weight()

{
          long sum = 0;
    unsigned char count = 0;       
    Weight_Shiwu = HX711_Read();
          for(count = 0;count<100;count++)
                sum += Weight_Shiwu;
          Weight_Shiwu=sum /100;
    if(Weight_Shiwu>=0)
    {
//        Weight_Shiwu = (signed long)((float)(Weight_Shiwu*100)/35);         //計算實物的實際重量
                          Weight_Shiwu = Weight_Shiwu;
        if(Weight_Shiwu >= 10000)                //超重報警
        {
            Buzzer = !Buzzer;
            puts_to_SerialPort("chaozhong\r\n");       
        }
        else
        {
             Buzzer = 1;
        }
    }
    else
    {
        Weight_Shiwu=0;
        Buzzer = 1;
    }
}
/*------------------------------------------------
                    主函數(shù)
------------------------------------------------*/
void main (void)
{
        static unsigned char i;
        P2=0XFF; //紅外輸入端口電平置高
        P1=0XFF;
        InitUART();
        while (1)         //主循環(huán)
  {
    DelayMs(10);
                i++;
                if(i>=2)
                {
            hongwai_KeyPress();
                }
                else if(i>=4)
                {
      i=0;
      Get_Weight();
                        number();
                }                       
  }
}  

void UART1_irq() interrupt 4 //處理接收的串口數(shù)據(jù)
{
   static unsigned char tmp;
    ES=0;  
    if(RI)                                      //接收到字節(jié)
    {
        tmp = SBUF;
        RI = 0;                                 //手動清零接收中斷標志位
    }
       
    ES=1;         
}


回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品电影 | 99精品在线 | 中文字幕在线剧情 | 91精品国产综合久久久久久丝袜 | 91 在线| 国产精品久久久久久久久久久久久 | 久久久久久久久久久久久9999 | av网站观看 | 亚洲国产精品99久久久久久久久 | 亚洲视频手机在线 | 国产免费一区二区三区 | 精品96久久久久久中文字幕无 | 污视频在线免费观看 | 国产欧美一区二区三区久久 | 黄色一级片aaa | 日批日韩在线观看 | 成人精品国产一区二区4080 | 91精品国产92 | 狠狠操狠狠操 | 国产小视频在线 | 免费观看一级特黄欧美大片 | 日韩精品一区二区三区在线播放 | 久久久91| 久久久久久国产精品免费免费 | 日日碰狠狠躁久久躁96avv | 国产一区二区视频免费在线观看 | 欧美1区| 久免费视频 | 婷婷五月色综合香五月 | 操人视频在线观看 | 国产一区二区三区久久久久久久久 | 国产在线一区二区 | jizz视频 | 久久久久久免费看 | 欧美日韩在线视频观看 | 久久五月婷| 国产精品久久久久久久7电影 | 国产三级| www日韩高清 | 成年人在线视频 | 天堂亚洲|