附录III 系统源程序
#include "main.h"
#include "LCD12864.h"
#include "uart.h"
//定义变量
//****************************************************
//主函数
//****************************************************
void main()
{
LCD12864_Reset(); //初始化液晶
LCD12864_HAIZI_SET(); //设置为普通模式
Relay1 = Relay2 = Relay3 = Relay4 = 0; //初始化设置为0,不吸合
Delay_ms(100);
Uart_Init();
while(1)
{
Relay1 = Flag_Relay1;
Relay2 = Flag_Relay2;
Relay3 = Flag_Relay3;
Relay4 = Flag_Relay4;
if(Flag_Relay1 == 1)
{
LCD12864_NoWaitIdle_COM_Write(0x80); //设置指针
LCD12864_write_word("冰箱状态:开");
}
else
{
LCD12864_NoWaitIdle_COM_Write(0x80); //设置指针
LCD12864_write_word("冰箱状态:关");
}
if(Flag_Relay2 == 1)
{
LCD12864_NoWaitIdle_COM_Write(0x90); //设置指针
LCD12864_write_word("空调状态:开");
}
else
{
LCD12864_NoWaitIdle_COM_Write(0x90); //设置指针
LCD12864_write_word("空调状态:关");
}
if(Flag_Relay3 == 1)
{
LCD12864_NoWaitIdle_COM_Write(0x88); //设置指针
LCD12864_write_word("电视状态:开");
}
else
{
LCD12864_NoWaitIdle_COM_Write(0x88); //设置指针
LCD12864_write_word("电视状态:关");
}
if(Flag_Relay4 == 1)
{
LCD12864_NoWaitIdle_COM_Write(0x98); //设置指针
LCD12864_write_word("灯泡状态:开");
}
else
{
LCD12864_NoWaitIdle_COM_Write(0x98); //设置指针
LCD12864_write_word("灯泡状态:关");
}
}
}
//****************************************************
//MS延时函数(12M晶振下测试)
//****************************************************
void Delay_ms(unsigned int n)
{
unsigned int i,j;
for(i=0;i<n;i++)
for(j=0;j<123;j++);
}
#include "uart.h"
//unsigned char RX_Buffer[30];
unsigned char Num = 0;
bit Flag_Relay1 = 0;
bit Flag_Relay2 = 0;
bit Flag_Relay3 = 0;
bit Flag_Relay4 = 0;
unsigned char temp = 0;
void Uart_Init()
{
SCON = 0X50; //UART方式1;8位UART
REN = 1; //不允许串行口接收数据
PCON = 0x00; //SMOD=0;波特率不加倍
TMOD = 0x20; //T1方式2,用于产生波特率
TH1 = 0xFD; //装初值
TL1 = 0xFD;
TR1 = 1; //启动定时器1
EA = 1; //打开全局中断控制
ES = 1; //串行口中断
}
void UartPrintf(unsigned char *p) //发送字符串
{
while(*p)
{
SBUF=*(p++);
while(TI==0)
{
;
;
;
};
TI=0;
}
}
void UartPrintASCII(unsigned char c) //发送一个字符
{
TI=0;
SBUF=c;
while(TI==0);
TI=0;
}
void RECEIVE_DATA(void) interrupt 4 using 1 //串口中断
{
if(RI == 1)
{
temp = SBUF;
if(temp == 'A')
{
Flag_Relay1 = !Flag_Relay1;
UartPrintf("Receive A");
}
else if(temp == 'B')
{
Flag_Relay2 = !Flag_Relay2;
UartPrintf("Receive B");
}
else if(temp == 'C')
{
Flag_Relay3 = !Flag_Relay3;
UartPrintf("Receive C");
}
else if(temp == 'D')
{
Flag_Relay4 = !Flag_Relay4;
UartPrintf("Receive D");
}
RI = 0;
}
}
基于51单片机的智能手机蓝牙控制家电开关源码.zip
版权申诉
150 浏览量
2023-06-17
13:21:16
上传
评论
收藏 4KB ZIP 举报
老歪不歪
- 粉丝: 31
- 资源: 4041
最新资源
- 农村信用社联合社计算机信息系统投产与变更管理办.docx
- 农村信用社联合社计算机信息系统数据管理办法.docx
- 利用SPSS作临床效度分析线上计算网站介绍-医学研究部统计谘.(医学PPT课件).ppt
- 利用Zabbix监控mysqldump定时备份数据库状态.docx
- 利用计算机解决问题的基本过程.doc
- 化工铁路通信工程总结.doc
- 北京大学网络教育软件工程作业.docx
- 医药公司(连锁店)计算机操作规程未新系统的自行按照旧制修改-新系统过制的编号加修模版.doc
- 医药公司(连锁店)计算机系统操作规程模版.doc
- 医药连锁门店计算机系统的操作和管理程序未新系统的自行按照旧制修改-新系统过制的编号加修模版.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈