/*
**********************************************************************
* 本地宏定义
**********************************************************************
*/
#define MATRIX_PORT P0 // 点阵LED负极端口
sbit M1 = P1^0; // M1接在P1.0
sbit gBuz = P1^5; // P1.5通过ULN2003放大功率后驱动BUZZER
u8 Buffer = 0;
/********************************************************************
* 名称 : UartIsr()
* 功能 : 串口中断处理程序
* 输入 : 无
* 输出 : 无
***********************************************************************/
void UartIsr(void) interrupt 4
{
// EA = 0;
if(RI == 1) //当硬件接收到一个数据时,RI会置位
{
RI = 0;
Buffer = SBUF;//将接收到的字符放入Buffer
}
// EA = 1;
}
/********************************************************************
* 名称 : UartInit()
* 功能 : 串口初始化,4800
* 输入 : 无
* 输出 : 无
***********************************************************************/
void UartInit(void)
{
TMOD = 0x20;
SCON = 0x50;
TH1 = 0xF3;
TL1 = TH1;
PCON = 0x80;
EA = 1;
ES = 1;
TR1 = 1;
}
/*********************************************************************
* 函 数 名 : BuzzerOnOff
* 函数功能 : 给蜂鸣器开关各一段时间
* 参数列表 : 无
* 函数输出 : 无
*********************************************************************/
void BuzzerOnOff(void)
{
gBuz = 1;
delay1ms(1);
gBuz = 0;
delay1ms(1);
}
/********************************************************************
* 名称 : main
* 功能 : 主函数
* 输入 : 无
* 输出 : 无
*********************************************************************/
void main(void)
{
u8 time = 0;
M1 = 0;
UartInit(); //串口初始化
Lcd1602Init();
while(1)
{
switch (Buffer) //根据手机输入的键值不同,执行不同的内容
{
case '1':
if (time == 0)
{
Lcd1602WriteCmd(0x01); // 清屏(同时清数据指针)
}
Lcd1602ShowStr(0, 0, "You are using BT");
time = 1;
break;
case '2':
if(time == 1)
{
Lcd1602WriteCmd(0x01); // 清屏(同时清数据指针)
}
Lcd1602ShowStr(0, 0, "Welcome to zhula");
Lcd1602ShowStr(0, 1, "oshi.taobao.com");
time = 0;
break;
case '3':
M1 = 1;//马达转
break;
case '4':
M1 = 0;//马达停
break;
case '5':
BuzzerOnOff();//蜂鸣器叫
break;
case '6':
//蜂鸣器静
break;
default:
break;
}
}
}