【51毕业设计案例】【027】智能家居语音控制-基于51/52单片机

一、设计介绍

模块说明:

  • 1、STC89C52:主控芯片  单片机
  • 2、LCD12864(带字库版本):用于显示数据信息
  • 3、独立按键:用于设置系统数据或控制
  • 4、ADC0832: 数模转换芯片,用于将模拟量转换为数字量
  • 5、继电器:通过小电流来驱动大电流,也就是单片机引脚控制外部设备通断电
  • 6、光敏电阻:用于测量环境光强,通过ADC模块测量电压模拟量转换为具体数值
  • 7、MQ138空气质量检测:用于测量空气质量
  • 8、ASRPRO语音识别播放模块:用于识别语音、播放语音的模块,通过串口进行数据交互

功能介绍:

  • 1、设计具有手动自动模式,并且可以通过语音进行控制
  • 2、自动模式下根据温度、湿度、光强控制制冷设备、加热设备、加湿器、以及灯光
  • 3、手动模式下可以语音控制制冷设备、加热设备、加湿器、灯光以及窗帘开关
  • 4、语音控制可以切换各个设备开关,手动自动模式的切换以及播报空气质量报警语音
  • 5显示屏可以显示各种信息,包括室内温度、湿度、光照等环境参数,设备状态、警报信息等。
  • 6.可通过按键进行设备控制、模式切换、参数阈值设置

原理图:

使用立创EDA格式打开,打开方式为将文件夹内 .json 后缀文件拖入嘉立创EDA(标准版) - 免费、易用、强大的在线电路设计软件 立创EDA编辑网站中即可

本次原理图使用立创EDA画出的,对于新手较为方便,全中文易上手,不需要安装任何软件。另,Altium Designer 格式打开后标注会有所丢失,建议使用立创EDA

Proteus仿真图:

实物图:

元器件清单:

如果您不能独自完成焊接,我这边也提供付费焊接服务以及调试,完成后第一时间通过快递寄给您。

三、代码资料展示

主要代码展示:


/********************* 宏定义 *******************/
#define MENU_NUM_LIMIT			8

//设置 计数器计数次数  可以看做 后面单位是微妙 这个XXX微妙间隔进入一次中断
#define T0_SET_NUM    5000
//算出一秒需要进入中断几次
#define T0_1S_NUM      (1000000/T0_SET_NUM)

#define PLAYALARM_INTERVAL        10

/********************* 引脚定义 *******************/

sbit RelayJs = P2 ^ 4;
sbit RelayZl = P1 ^ 6;
sbit RelayZr = P1 ^ 5;
sbit RelayDg = P1 ^ 4;

/********************* 变量定义 *******************/
//显示页面的页码存储变量
uchar menu = 0;
//定时器计时计数作用变量
uint Time0_Cnt[2];
//数据获取显示标志位
bit Flag_Get;
uchar Dis_DatStr[17];//用于sprintf显示

//温湿度变量
uchar Temp, Humi;
uchar Temp_H = 40, Temp_L = 15, Humi_H = 70, Humi_L = 50;
//光强和空气质量变量
uchar Light, Air;
uchar Light_H = 120, Light_L = 50, Air_H = 150;

bit Mode;//模式  0-- 手动 1--自动

// 窗帘 加湿 制热 制冷 灯光  设备开关标志位
bit Flag_RelayCl, Flag_RelayJs, Flag_RelayZr, Flag_RelayZl, Flag_RelayDg;

//语音报警间隔
uchar PlayTimeCountDown;
//播报提醒当前为自动模式的语音标志位
uchar Flag_PlayAuto;

/********************* 函数声明 *******************/
//显示 数据
void Dis_Dat();
//获取数据
void Get_Dat();
//按键扫描
void Key_Scan();
//定时器0初始化
void timer0_init();
//使用串口需要你的芯片晶振是11.0592M hz 的 记住!!!
//注意   定时器1 和 串口 都是使用同一个计数器,所以不能同时使用!!!
//串口初始化---9600bps
void Uart_init();
//发送一个字节的数据  也就是一个单词或者数字
void UartSendByte(uchar byte);
//发送字符串
void UartSendString(uchar* string);
//发送数字
void UartSendNumber(uint Number);
//处理外部设备
void Proc_Device();
//读取掉电保存的内容
void Read_e2();
//将数据保存在芯片中
void Write_e2();




void main()
{
  DelayMs(100);//等待系统稳定
  timer0_init();//定时器0初始化
  Uart_init();//串口初始化---9600bps
  Read_e2();//读取掉电保存数据
  LcmInit();//液晶显示初始化
  LcmClearTXT();//清屏
  Dis_Dat();//显示数据
  while (1)
  {
    Get_Dat();//获取数据
    Key_Scan();//按键扫描处理函数
    Proc_Device();//处理外部设备
  }
}

工程管理展示:

下载内容展示:

更多详细功能与代码视频讲解请B站搜索:易佳电子设计 主页搜索该设计编号或名称

视频链接:【51毕业设计案例】【027】智能家居语音控制系统-基于51/52单片机_哔哩哔哩_bilibili

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值