|
功能:通過溫度傳感和煙霧傳感器側得溫度和煙霧或者可燃氣體濃度經過無線通信傳輸給另一個單片機,另一個單片機對數據進行計算判斷顯示溫度、煙霧濃度和安全等級(安全等級從1-3)
關鍵模塊:24L01 MQ-2 LCD1602 18B20 STC12C5A60S2
Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
0.jpg (65.13 KB, 下載次數: 109)
下載附件
2018-1-18 17:47 上傳
0.jpg (45.2 KB, 下載次數: 97)
下載附件
2018-1-18 17:47 上傳
0.png (43 KB, 下載次數: 94)
下載附件
2018-1-18 17:48 上傳
單片機源程序如下(接受部分):
- #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
2018-1-18 13:33 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
150.27 KB, 下載次數: 133, 下載積分: 黑幣 -5
-
-
STC12C5A60S2單片機的AD轉換(8位).pdf
2018-1-18 13:33 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
276.16 KB, 下載次數: 96, 下載積分: 黑幣 -5
-
-
接受.rar
2018-1-18 13:32 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
7.85 MB, 下載次數: 136, 下載積分: 黑幣 -5
-
-
發送.rar
2018-1-18 13:32 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
7.85 MB, 下載次數: 116, 下載積分: 黑幣 -5
-
-
接收程序.rar
2018-1-18 13:27 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
47.94 KB, 下載次數: 103, 下載積分: 黑幣 -5
-
-
發送程序.rar
2018-1-18 13:27 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
60.44 KB, 下載次數: 114, 下載積分: 黑幣 -5
評分
-
查看全部評分
|