分控制板和动作板,控制板上连接主机蓝牙,转动控制板上的电位器,动作板上连接的LED变亮
蓝牙仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序(发射)如下:
- #include <reg51.h>
- #include <I2C.H>
- #define uchar unsigned char
- #define uint unsigned int
- uchar ad;
- #define PCF8591 0x90 //PCF8591 地址
- 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;
- while(1)
- {
- ISendByte(PCF8591,0x43);
- ad=IRcvByte(PCF8591);
- SBUF=ad;
- while(!TI);
- TI=0;
- delay(200);
- delay(200);
- delay(200);
- delay(200);
- delay(200);
-
- }
- }
复制代码
所有资料51hei提供下载(接收程序):
串口通信-双机.rar
(293.07 KB, 下载次数: 148)
|