标题:
蓝牙家电控制系统单片机程序
[打印本页]
作者:
SaltedFish_Kun
时间:
2019-6-8 17:06
标题:
蓝牙家电控制系统单片机程序
STC89C51+HC05
我做的设计
手机装个蓝牙助手,实现指定串口内容控制LED开关。
单片机源程序如下:
#include "main.h"
void main(void)
{
EA = 1;
LED1 = 0;
LED2 = 0;
Delay = 0;
ConfigTimer0();
ConfigUART(9600);
LCD_INIT();
// Write_String(0,0,"Hello");
// Write_String(0,1,"1602113");
string(0x83,"Welcome",7);//写入welcome
string(0xc3,"1602113",7);//写入Harbin China
while(1);
}
//main
void delay(int ms)
{
int i,j;
for(i=0;i<ms;i++)
for(j=0;j<125;j++);
}
/* 串口配置函数,baud-通信波特率 */
void ConfigUART(unsigned int baud)
{
SCON = 0x50; //配置串口为模式1
TMOD &= 0x0F; //清零T1的控制位
TMOD |= 0x20; //配置T1为模式2
TH1 = 256 - (11059200/12/32)/baud; //计算T1重载值
TL1 = TH1; //初值等于重载值
ET1 = 0; //禁止T1中断
ES = 1; //使能串口中断
TR1 = 1; //启动T1
}
/* 配置并启动T0,ms-T0定时时间 */
void ConfigTimer0()
{
TMOD &= 0xF0; //清零T0的控制位
TMOD |= 0x01; //配置T0为模式1
TH0 = T0RH; //加载T0重载值
TL0 = T0RL;
ET0 = 1; //使能T0中断
TR0 = 1; //启动T0
}
//1602
void LCD_INIT(void)
{
LCD_RW=0;
write_com(0x38); //显示模式设置:16×2显示,5×7点阵,8位数据接口
delay(20);
write_com(0x0f); //显示模式设置
delay(20);
write_com(0x06); //显示模式设置:光标右移,字符不移
delay(20);
write_com(0x01); //清屏幕指令,将以前的显示内容清除
delay(20);
}
void write_com(uchar com)
{
P0=com;
LCD_RS=0;
LCD_EN=0;
delay(10);
LCD_EN=1;
delay(10);
LCD_EN=0;
}
void write_date(uchar date)
{
P0=date;
LCD_RS=1;
LCD_EN=0;
delay(10);
LCD_EN=1;
delay(10);
LCD_EN=0;
}
void string(uchar ad,uchar *p,uchar n)//显示字符函数
{
uchar i;
write_com(ad);
for(i=0;i<n;i++)
{
write_date(*p++);
delay(50);
}
}
void UART_INT(void) interrupt 4
{
EA = 0;
while(RI)
{
RxdByte = SBUF;
SBUF = SBUF;
switch(RxdByte)
{
case 0x31:LED1 = 1;//LED1开
//Write_String(0,0,"LED1 ON ");
write_com(0x01);
string(0x80,"Controling",10);
string(0xc0,"LED1 ON ",9);
break;
case 0x32:LED1 = 0;//LED1关
//Write_String(0,0,"LED1 OFF ");
write_com(0x01);
string(0x80,"Controling",10);
string(0xc0,"LED1 OFF",9);
break;
case 0x33:LED2 = 1;//LED2开
//Write_String(0,0,"LED2 ON ");
write_com(0x01);
string(0x80,"Controling",10);
string(0xc0,"LED2 ON ",9);
break;
case 0x34:LED2 = 0;//LED2关
//Write_String(0,0,"LED2 OFF ");
write_com(0x01);
string(0x80,"Controling",10);
string(0xc0,"LED2 OFF",9);
break;
case 0x35:Delay = 1;//继电器开
//Write_String(0,0,"Delay ON ");
write_com(0x01);
string(0x80,"Controling",10);
string(0xc0,"Delay ON ",10);
break;
case 0x36:Delay = 0;//继电器关
//Write_String(0,0,"Delay OFF ");
write_com(0x01);
string(0x80,"Controling",10);//写入welcome
string(0xc0,"Delay OFF",10);//写入Harbin China
break;
default://Write_String(0,0,"Error ");
write_com(0x01);
string(0x85,"Error",5);//写入welcome
string(0xc1,"Please Retry",12);//写入Harbin China
break;
}
RI = 0;
}
while(TI)
{
TI=0;
}
EA=1;//开启串口中断
}
复制代码
所有程序51hei提供下载:
蓝牙家电控制.zip
(320.7 KB, 下载次数: 20)
2019-6-8 17:06 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1