|
功能:通过温度传感和烟雾传感器侧得温度和烟雾或者可燃气体浓度经过无线通信传输给另一个单片机,另一个单片机对数据进行计算判断显示温度、烟雾浓度和安全等级(安全等级从1-3)
关键模块:24L01 MQ-2 LCD1602 18B20 STC12C5A60S2
Altium Designer画的原理图和PCB图如下:(51hei附件中可下载工程文件)
单片机源程序如下(接受部分):
- #include <reg51.h>
- #include "def.h"
- #include "sbits.h"
- #include "TC1602AFC.h"
- #include "beep.h"
- #define uchar unsigned char
- #define uint unsigned int
- uchar r1,r2,r3,r4;
- uchar RxBuf[3];
- void main()
- {
-
- uchar a,b,c,d,e,f,g;
- beep=1;
- lcd_init();
- init_NRF24L01();
- write_charstr( 0 , 1 , "TEMP " );
- write_charstr( 6 , 1 , "DENS " );
- write_charstr( 11 , 1 , "GRADE" );
- while(1)
- {
- SetRX_Mode();
- if(nRF24L01_RxPacket(RxBuf))
- {
- r1=RxBuf[0]; // 温度
- r2=RxBuf[1]; // 烟雾/气体浓度百位千位
- r3=RxBuf[2]; // 烟雾/气体浓度个位十?
- }
- a=r1/100;
- b=r1%100/10;
- c=r1%10;
- d=r2/10;
- e=r2%10;
- f=r3/10;
- g=r3%10;
-
- write_char( 1 , 2 ,a );
- write_char( 2 , 2 ,b );
- write_char( 3 , 2 ,c );
- write_char( 6 , 2 ,d );
- write_char( 7 , 2 ,e );
- write_char( 8 , 2 ,f );
- write_char( 9 , 2 ,g );
- fengming();
- }
- }
复制代码 发送部分的源程序:
- #include <reg51.h>
- #include"defines.h"
- #include "18b20.h"
- #include "def.h"
- #include "sbits.h"
- #include "60s2ad.h"
- #include "mq2.h"
- uchar TxBuf[3];
- extern uint ppm; //浓度单位 用于表示浓度
- extern uint vol; //采集的电压值
- extern uchar warning; //警告标志位
- uchar a,b,c;
- void main()
- {
-
- double temp;
- extern uint ppm; //浓度单位 用于表示浓度
- extern uint vol; //采集的电压值
- /**********************************************/
- ppm=0;
- INputchange(0x01); //用的是P1.0端口
- beep=1;
- ppm=0;
- vol=0;
- /************************************************/
- init_NRF24L01() ;
- nRF24L01_TxPacket(TxBuf); // Transmit Tx buffer data
- Delay3(6000);
- while(1)
- {
-
- /*************************************************/
- temp=ReadTemperature();
- temp=temp*0.0625;
- a=(int)temp*10/10;
- /***************************************************/
-
- value_TTL();
- value_analog();
-
- b=ppm/100;
- c=ppm%100;
-
-
- TxBuf[0]=a; //温度
- TxBuf[1]=b; // 烟雾/气体浓度百位千位
- TxBuf[2]=c; // 烟雾/气体浓度个位十位
-
- nRF24L01_TxPacket(TxBuf); // Transmit Tx buffer data
- Delay3(20000);
- SPI_RW_Reg(WRITE_REG+STATUS,0XFF);//clear RX_DR or TX_DS or MAX_RT interrupt
- }
- }
复制代码
所有资料51hei提供下载:
|
-
-
MQ-2.pdf
150.27 KB, 下载次数: 133, 下载积分: 黑币 -5
-
-
STC12C5A60S2单片机的AD转换(8位).pdf
276.16 KB, 下载次数: 96, 下载积分: 黑币 -5
-
-
接受.rar
7.85 MB, 下载次数: 136, 下载积分: 黑币 -5
-
-
发送.rar
7.85 MB, 下载次数: 116, 下载积分: 黑币 -5
-
-
接收程序.rar
47.94 KB, 下载次数: 103, 下载积分: 黑币 -5
-
-
发送程序.rar
60.44 KB, 下载次数: 114, 下载积分: 黑币 -5
评分
-
查看全部评分
|