2023

您所在的位置:网站首页 MQ-9传感器msp430单片机编程 2023

2023

2023-06-03 19:10| 来源: 网络整理| 查看: 265

资料已上传在微信公众号:风吹摇铃 奔赴星海

此系统可根据开发板原理图搭配外载模块实现功能,也可以根据原理图焊接或者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 P0sbit 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;//光照上限 900LXuint 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传感器检测转换界面



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3