
#include<reg52h>
//#include<stdioh>
sbit LED = P2^0;
unsigned char ReceiveData;
void main()
{
TMOD = 0x20;
SCON = 0x50;
TH1 = 0xfd;//baud 9600bit/s
//TI = 1;
TR1 = 1;
ES = 1;
EA = 1;
while(1)
{
}
}
void UART1_Routine()interrupt 4
{
if(RI)
{
RI = 0;
ReceiveData = SBUF;
//此处视上位机发过来的指令而定(将0x01改成对应字节命令即可),只适用于单字节命令,数据包格式需另改代码
if(ReceiveData==0x01)
{
LED =~LED;//实现按一下灯亮,再次按下灯灭
}
}
}
///如有问题,可再咨询
1、低电压33v工作,蓝牙模块RXD接51单片机TXD(P31),蓝牙模块TXD接单片机RXD(P30)。
注意:给51单片机烧写程序时不要先连接超声波模块。烧写完程序后再接线。
2、学习单片机与蓝牙模块通信,实质上是学习单片机串口通信编程,手机将数据发送给蓝牙,蓝牙通过串口发给单片机。
3、蓝牙模块程序编写步骤:先不接蓝牙模块,编写程序,用电脑串口工具测试,如果测试成功再接蓝牙模块。
用STC-ISP软件的串口助手设置蓝牙模块AT参数:
1、将开发板上的单片机取下来,然后蓝牙模块的RXD和开发板上USB转TTL电路的TXD(P30)相接,蓝牙模块TXD与开发板上USB转TTL电路的RXD(P31)相接,然后再接GND和33V。
2、接好线,蓝牙模块蓝灯和绿灯闪烁,则位AT模式。
3、将STC-ISP软件中串口助手发送接收改为文本模式,然后发送AT,接受区会收到OK,即进入成功。
你看一看芯片手册,芯片有个一8位的移位寄存器,每个移位寄存器都对应带一个锁存器输出,在更新输出的时候,将锁存器锁存,保存输出不变,然后串行输入8位数据到移位寄存器,然后将锁存控制端关闭,这时新输入的8位数据就直接由移位寄存器更新至锁存寄存器,再然后将输出锁存,输出完成。下次更新的时候,同样 *** 作即可。
下位机的程序就是串口接收,单片机处理后再返回,这只能满足玩玩,一个实用的发送~接收~处理~返回,还要保证传输数据的可靠,准确,是一个较大的程序,不过我有一个现成的,你可以看看
以上就是关于51单片机怎么写程序用hc05 控制led的亮灭全部的内容,包括:51单片机怎么写程序用hc05 控制led的亮灭、汇编语言程序编写HC-06蓝牙模块控制指示灯在哪里、为什么我的HC595输出会偶尔乱本来控制一个,结果别的也跟着乱变,HC595程序中该怎么控制等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)