找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 793|回复: 0
打印 上一主题 下一主题
收起左侧

求问大佬,我想用蓝牙和电位器控制led的开关和亮灭,但是实物连接不能用,求指导

[复制链接]
跳转到指定楼层
楼主
ID:683811 发表于 2020-4-3 18:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*发送程序*/
#include <reg51.h>
#include <I2C.H>
#include <intrins.h>
#define uchar unsigned char
#define uint  unsigned int
uchar ad1;
/*uchar ad2;
uchar ad3;*/
#define  PCF8591 0x90    //PCF8591 ???
sbit p1=P2^0;
/*sbit p2=P2^6;
sbit p3=P2^7;*/
void delay(uchar x)         
{
uchar i,j;
for(j=0;j<x;j++)  
for(i=0;i<110;i++);
}
/*******************************************************************
ADC???????[????]???????               
*******************************************************************/
bit ISendByte(unsigned char sla,unsigned char c)
{
   Start_I2c();              //???????
   SendByte(sla);            //???????????
   if(ack==0)return(0);
   SendByte(c);              //????????
   if(ack==0)return(0);
   Stop_I2c();               //????????
   return(1);
}
/*******************************************************************
ADC????????????               
*******************************************************************/
unsigned char IRcvByte(unsigned char sla)
{  unsigned char c;
   Start_I2c();          //???????
   SendByte(sla+1);      //???????????
   if(ack==0)return(0);
   c=RcvByte();          //???????0
   Ack_I2c(1);           //???????λ
   Stop_I2c();           //????????
   return(c);
}  

/************??????**********************/
void main()
    {
  TMOD=0x20;
  SCON=0x50;
TH1=0xFD;
TL1=0xFD;
TR1=1;
if(p1==0)
  {SBUF=0x32;
   while(!TI);
    TI=0;
  while(1)
   {
    ISendByte(PCF8591,0x40);
       ad1=IRcvByte(PCF8591);
    SBUF=ad1;
    while(!TI);
    TI=0;
    delay(200);
    delay(200);
    } }
  /*if(p2==0){SBUF=0x01;
   while(!TI);
    TI=0;
    while(1)
    {ISendByte(PCF8591,0x41);
       ad2=IRcvByte(PCF8591);
    SBUF=ad2;
    while(!TI);
    TI=0;
    delay(200);
    delay(200);
    }}
  if(p3==0){SBUF=0x02;
   while(!TI);
    TI=0;
    while(1){
    ISendByte(PCF8591,0x42);
       ad3=IRcvByte(PCF8591);
    SBUF=ad3;
    while(!TI);
    TI=0;
    delay(200);
    delay(200);
    } } */
    delay(200);
    delay(200);
    delay(200);
   
   }

/*接收程序*/
  #include <reg51.h>
#define uchar unsigned char
#define uint  unsigned int
uchar ad;//?????????????
uint ms;
unsigned char Rx_buf[4],Rxnum=0;
sbit led1=P3^7;
sbit led2=P3^6;
sbit led3=P3^5;
/********************************************************************
* ???? : Delay_1ms()
* ???? : ??????????????? 1ms * x
* ???? : x (????????????)
* ??? : ??
***********************************************************************/
void delay(uint i)//1ms???
{
uchar x,j;
for(j=0;j<i;j++)
for(x=0;x<5;x++);
}

/************* ???? : Com_Init()
* ???? : ??????????????11.0592,??????9600????????ж?**********************/
void Com_Init()
    {
  TMOD=0x21;
  SCON=0x50;
  TH1=0xFD;
  TL1=0xFD;
  EA=1;
  ES=1;
  TH0=(65536-50000)/256;
  TL0=(65536-50000)%256;
  TR1=1;
   }
void LED1()
{
while(1)
   {
    //ad=255;
    ms++;
    delay(2);
    if(ms>=256)
    {ms=0;}
    if(ms<ad)
     {
   led1=0;
  }
    else
     {
      led1=1;
     }
   }
    }
void LED2()
{ while(1)
   {
    //ad=255;
    ms++;
    delay(2);
    if(ms>=256)
    {ms=0;}
    if(ms<ad)
     {
   led2=0;
  }
    else
     {
      led2=1;
     }
   }
    }
void LED3()
{
while(1)
   {
    //ad=255;
    ms++;
    delay(2);
    if(ms>=256)
    {ms=0;}
    if(ms<Rx_buf[Rxnum])
     {
   led3=0;
  }
    else
     {
      led3=1;
     }
   }
    }
void main()
{
delay(100);
Com_Init();

}
  /*********** ?????ж????????? *****/
void ser() interrupt 4
  {
if(RI)
{
  RI=0;
  ad=SBUF;
    switch(ad)
    {case 0x30:LED1();break;
    case 0x31:LED2();break;
    case 0x00:LED3();break;
    }
   }
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表