APP发送字符“1”至“7”数字。比如第一组定时发送的是字符“1”。第二组定时发送字符“2”.....一共7组。可用串口助手测试,电脑与蓝牙模块通信连接,如图1.所示。
单片机源程序如下:
#include #include #define uchar unsigned char #define uint unsigned int uchar tmp; uint c=0; sbit led1=P1^0; //指示灯0 sbit led2=P1^1; //指示灯1 sbit led3=P1^2; //指示灯3 sbit led7=P1^7; //指示灯3 sbit P2_0 = P2^0; sbit P2_1 = P2^1; sbit P2_2 = P2^2; sbit P2_3 = P2^3; uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82, 0xf8,0x80,0x90}; void delay1(uint z)//1ms { uint x,y; for(x=z;x>0;x--) for(y=120;y>0;y--); } void display(uchar value) { uchar shu1,value1; value1=value-48; //bai=value1/16; shu1=value1%16; P0=table[shu1]; P2_0 = 0; delay1(1); P2_0 = 1; } void init(); //串口初始化 void send(unsigned char a); //单字节发送函数 void ctrl(); //接收处理函数 void main() { init(); while(1) { display(SBUF); if(RI==1) // 是否有数据到来 { RI = 0; ctrl(); } } } void init() //串口初始化 { ES=0; //关中断 SCON = 0x50; // REN=1允许串行接受状态,串口工作模式1, //10位UART(1位起始位,8位数据位,1位停止位,无奇偶校验),波特率可变 TMOD = 0x20; // 定时器1工作于方式2,8位自动重载模式, 用于产生波特率 TH1=TL1=0xFD; // 波特率9600 (本次测试采用晶振为11.0592) PCON &= 0x7f; // 波特率不倍增 TR1 = 1; //定时器1开始工作,产生波特率 //发送标志位置0 TI=0; //接收标志位置0 RI=0; //EA=0; ES=1; } void send(unsigned char a) //单字节数据发送 { //注意:若单片机TXD(P3.1)无上拉能力,必须在P3.1端接上拉电阻。本次测试需要接上拉电阻 TI=0; SBUF=a; while(TI==0); TI=0; if(c%2) //发送指示灯标志,每接收一次,此灯亮灭交替 led7=1; else led7=0; c++; } void ctrl() //接收处理函数 { switch(tmp) { case '1': led1=1; //收到字符1,指示灯0灭 send(tmp); break; case '2': //收到字符2,指示灯1灭 led2=1; send(tmp); break; case '3': //收到字符3,指示灯0、1亮 led1=0; led2=0; send(tmp); break; case '4': //收到字符4,指示灯0、1灭 led1=1; led2=1; send(tmp); break;
上一篇:单片机DAC0832波形发生器实验报告
下一篇:stc12c5a60s2 0-30电压测量 有注释
推荐阅读最新更新时间:2024-11-11 01:48
设计资源 培训 开发板 精华推荐
- 【深大电赛】简易电压表2
- EVAL-AD5933EBZ,评估 AD5933、1 MSPS、12 位阻抗转换器网络分析仪的评估板
- DC2491A,基于 LT3045EDD 20V、500mA、超低噪声、超高 PSRR RF LDO 稳压器的演示板
- C2929938-STM32G030C8T6方案验证板
- CYUSBS236DVK,USB 串行开发套件
- 使用 Microchip Technology 的 LR8N3GP002 的参考设计
- CPU复位电路AZ7025RTR电压检测器典型应用电路
- 采用 1mm 高单片电感器的 LTC3525ISC6-5 单节电池至 3V 升压转换器的典型应用电路
- REF198 升压型 3.3V 基准的典型应用电路,具有限流电压基准
- 紧凑、多功能、准确、三态可编程电源监控器