资料已上传在微信公众号:风吹摇铃 奔赴星海
此系统可根据开发板原理图搭配外载模块实现功能,也可以根据原理图焊接或者PCB焊接。
注意:根据开发板搭载外部模块实现功能,需根据开发板原理图修改代码
0、整理及编写了19个常用的51单片机Proteus仿真,如下所示(可在压缩包第十个文件夹中的链接中下载):
1、系统功能:(系统内的AD传感器可根据需要自行选择)
(0)系统共有5个模式:日期闹钟模式、温湿度模式、光照检测模式、AD类传感器I类模数、AD类传感器II类模式。
(1)采用DS1302模块,实现日期和时间的读取,日期和时间均可通过独立按键设置。内设一个闹钟,闹钟可以通过按键设置,打开或者关闭等。日期、时间、闹钟等数据通过蓝牙模块上传至手机端显示。(闹钟响时显示屏显示当前是闹钟时间,时间是XXXXX字样,以英文呈现,手机端以中文呈现)
(2)通过DHT11温湿度传感器采集环境的温湿度,同时设有温湿度上限,上限可通过按键设置,当转换的温湿度超过阈值,则启动风扇降温降湿,蜂鸣器报警,温湿度数据通过蓝牙上传在手机端显示。
(3)通过BH1750光照传感器采集环境光照强度,设有上限阈值,可通过按键设置,超过阈值报警,同时显示屏显示:请注意光照过高字样,以英文形势呈现。
(4)通过ADC0832转换3和4路AD类传感器采集的数据,设有上限值,可通过按键设置,超过上限阈值,报警,风扇排风。数据通过蓝牙上传手机端显示。
(5)通过ADC0832转换1和2路AD类传感器采集的数据,设有上限值,可通过按键设置,超过上限阈值,报警,风扇排风。数据通过蓝牙上传手机端显示。
2、系统组成:单片机最小系统、LCD1602液晶显示屏、独立按键、高电平有效蜂鸣器,AD类传感器模块4个、ADDC0832模数转换芯片2块、DS1302、DHT11温湿度传感器、蓝牙模块、小风扇、S8050三极管、BH1750光照传感器、LED等等。
3、下载后请认真阅读下列文档,此文档包含了大量问题及解决方法:
4、文末的链接中下载全套资料,全套资料包括如下内容:(请详细阅读使用前必读和必读文件)
4.1、程序,附有注释:
4.2、仿真:
(1)系统初始界面
(2)日期闹钟界面
(3)温湿度界面
(4)BH1750光照检测界面(此界面无法仿真)
(5)AD传感器I类检测
(6)AD传感器II类检测
4.3、参考文献包含以下内容:
4.4、嘉立创EDA原理图,包含以下内容:
4.4.0、工程源文件
4.4.1、PCB制版文件为一压缩包文件,可直接制版:
4.4.2、PDF为原理图:
4.4.3、工程源文件下包含工程的原理图和PCB工程,可解压后由嘉立创EDA软件直接打开进行编辑:
4.4.4、PCB3D预览图:(注意给大家的PCB制板文件打出来的板如下排版,和我手里的排版略微不同,但都是一样的,只是元器件放的位置有所变化,大家也可以自己打开源文件工程修改自己想要的排版,这个在视频里面有讲到)
5、51单片机学习资料内包含了51单片机使用手册,1602使用手册以及C语言手册等大量学习资料:
6、器件清单:(请参照下面的元器件购买视频购买)
7、51单片机烧录软件说明,此资料为将程序烧录到开发板或者芯片的说明,内含下载链接:
8、主要软件下载链接,内部包含了Proteus各版本,KEIL、字模取模等单片机类各设计软件:
9、模块资料:包含传感器使用说明,原理图等:
10、下面是部分代码:
/*此处是头文件 内部包含一些定义及寄存器*/
#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
/**********************************
1602PIN口定义 P0口数据驱动 P2引脚驱动
**********************************/
#define LCD1602_DATAPINS P0
sbit LCD1602_RS=P2^7; //1602引脚
sbit LCD1602_RW=P2^6;
sbit LCD1602_E=P2^5;
/*DS1302IO口定义引脚*/
//---定义ds1302使用的IO口---//
sbit DSIO=P3^3;//DS1302的引脚接口
sbit RST=P3^4;
sbit SCLK=P3^2;
/*1302初始化部分数组*/
//---DS1302写入和读取时分秒的地址命令---//
//---秒分时日月周年 最低位读写位;-------//
uchar code READ_RTC_ADDR[7] = {0x81, 0x83, 0x85, 0x87, 0x89, 0x8b, 0x8d};
uchar code WRITE_RTC_ADDR[7] = {0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c};
//---DS1302时钟初始化2023年5月17日星期3 22点44分00秒。---//
//---存储顺序是秒分时日月周年,存储格式是用BCD码---//
uchar TIME[7] = {0, 0x39, 0x08, 0x20, 0x05, 0x07, 0x23};
unsigned int ti=0,alarm=0; //修改第几个时间参数 、修改第几个闹钟参数
unsigned char alarm_hour=0x17,alarm_min=0x47; //闹钟时、分参数
enum Mode //定义枚举、三种模式
{
DISPLAYDATA,MODIFYDATA,SETALARMCLOCK,NONE,ALARMCLOCK
}mode;
enum Alarmswitch //定义闹钟开关
{
OFF,ON
}alarmswitch;
/*DHT11温湿度传感器数据端口*/
sbit Data=P1^7; //DHT11数据线接口P17
/*独立按键驱动定义,此处按键为多功能按键 在不同的界面下实现不同的功能*/
sbit k1 = P1^0; //时间和闹钟切换 //按键
sbit k2 = P1^1; // 时分秒年月日切换
sbit k3 = P1^2; // 加
sbit k4 = P1^3; // 减
sbit k5 = P1^4; // 界面的选择
/*BH1750光照传感器IIC引脚驱动定义*/
sbit SCL=P3^6; //IIC时钟引脚定义
sbit SDA=P3^7; //IIC数据引脚定义
#define SlaveAddress 0x46 //定义器件在IIC总线中的从地址,根据ALT ADDRESS地址引脚不同修改
//ALT ADDRESS引脚接地时地址为0x46,接电源时地址为0xB8
/*定义1750的位以及存储变量 读取变量 上限变量*/
typedef unsigned char BYTE;
typedef unsigned short WORD;
BYTE BUF[8];
int dis_data; //变量
uint light_data_H=900;//光照上限 900LX
uint light_data; //读取光照强度的变量
/*蜂鸣器和风扇的引脚*/
sbit buzz = P1^6; //蜂鸣器
sbit motor = P1^5; //风扇
/*切换 温湿度 各类变量*/
uchar k5_flag=0; //多种界面的显示切换变量
uchar humi_value;//湿度
uchar temp_value;//温度
uchar TH=30,RH=70;//温湿度的上限值
bit DHT11_H_flag=0; //温湿度上限切换标志
/*各AD传感器驱动引脚*/
sbit ADCS1 =P2^0; //ADC0832 片选
sbit ADCLK1 =P2^1; //ADC0832 时钟
sbit ADDI1 =P2^2; //ADC0832 数据输入 /*因为单片机的管脚是双向的,且ADC0832的数据输入输出不同时进行,
sbit ADDO1 =P2^2; //ADC0832 数据输出 /*为节省单片机引脚,简化电路所以输入输出连接在同一个引脚上
sbit ADCS2 =P2^3; //ADC0832 片选
sbit ADCLK2 =P2^4; //ADC0832 时钟
sbit ADDI2 =P3^5; //ADC0832 数据输入 /*因为单片机的管脚是双向的,且ADC0832的数据输入输出不同时进行,
sbit ADDO2 =P3^5; //ADC0832 数据输出 /*为节省单片机引脚,简化电路所以输入输出连接在同一个引脚上
/*AD转换的各类变量*/
// AD传感器1 2上限阈值初始值
uint GasH1=600,GasH2=700;
uint Gas1=0,Gas2=0; //AD传感器1 2读取变量
bit ADC1_H_flag=0; //ADC1上限切换标志
// AD传感器3 4上限阈值初始值
uint GasH3=800,GasH4=3000;
uint Gas3=0,Gas4=0; //AD传感器3 4读取变量
bit ADC2_H_flag=0; //ADC2上限切换标志
/*1602驱动函数定义*/
/*蓝牙模块 串口驱动*/
void UART_Init(void);//串口初始化
void uartSendByte(unsigned char dat);//发送数据
void uartSendStr(unsigned char *s,unsigned char length);//发送字符串字符串
11、元器件购买视频(请认真看,购买正确的元器件)
公众号或者B站查看(名称已放在文章开头)
12、仿真功能演示视频:
公众号或者B站查看(名称已放在文章开头)
13、程序讲解视频
公众号或者B站查看(名称已放在文章开头)
14、硬件实物展示视频
公众号或者B站查看(名称已放在文章开头)
15、下面是实物展示图:
(1)硬件原图
(2)初始界面
(3)日期时间界面
(4)闹钟界面
(5)温湿度检测界面
(6)光照强度检测界面
(7)ADC1传感器检测转换界面
(8)ADC2传感器检测转换界面