|
原理圖
51hei.png (43.51 KB, 下載次數(shù): 51)
下載附件
2021-6-8 17:14 上傳
單片機(jī)源程序如下:
- #include<reg52.h>
- #include"global_define.h"
- #include"NRF24L01.h"
- #include"Delay.h"
- sbit LED = P2^0 ;
- sbit DJ = P2^6 ;
- unsigned int baojingzhi = 200;//默認(rèn)50cm
- unsigned char baojing[8];
- unsigned char ge,shi,bai;
- unsigned int shuiwei ;
- idata unsigned char TxDate[TX_DATA_WITDH]={0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,11,12};
- sbit bADcs=P2^5;
- sbit bADcl=P2^4;
- sbit bADda=P2^3;
- unsigned char data1;
- unsigned char flag_1s;
- long Value;
- unsigned char Value_buff[8];
- /*------------------------------------------------
- 定時(shí)器初始化子程序
- ------------------------------------------------*/
- void Init_Timer0(void)
- {
- TMOD |= 0x01; //使用模式1,16位定時(shí)器,使用"|"符號(hào)可以在使用多個(gè)定時(shí)器時(shí)不受影響
- TH0=(65536-1000)/256; //重新賦值 1ms
- TL0=(65536-1000)%256;
- EA=1; //總中斷打開
- ET0=1; //定時(shí)器中斷打開
- TR0=1; //定時(shí)器開關(guān)打開
- PT0=1; //優(yōu)先級(jí)打開
- }
- long ad()//采樣煙霧傳感器的信號(hào)函數(shù)
- {
- unsigned char i;
- //data1=0;
- bADcs = 0;//當(dāng)ADC0832未工作時(shí)其CS輸入端應(yīng)為高電平,此時(shí)芯片禁用.
- bADcl=0;
- bADda=1;
- bADcl=1;
- bADcl=0;//i down
- bADda=1;
- bADcl=1;
- bADcl=0; // 2 down
- bADda=0;
- bADcl=1;
- bADcl=0; // 3 down
- bADda=1;
- bADcl=1;
- bADcl=0; // 4 down
- for(i=8;i>0;i--)
- {
-
- data1<<=1;
- bADcl=0;
- bADcl=1;
- if(bADda==1) data1|=0x01;
- bADda=1;
- }
- bADcs=1;
-
- Value=data1*1.0/256*500;
-
- // Value=Value*K_MG_MV;
- // Value=Value-5;
- if(Value<0)Value=0;
- return Value;
- }
- void DelayMs(uint time)
- {
- uint i,j;
- for(i=time;i>0;i--)
- for(j=112;j>0;j--);
- }
-
-
- void main()
- {
- // unsigned char buff[8];
- uint num=0 ;
- unsigned int Value_1;
- DJ = 1;
- Init_Timer0();
- NRF24L01Int();
- RevTempDate[0] = '2';
- RevTempDate[1] = '0';
- RevTempDate[2] = '0';
- while(1)
- {
- ad();
- Value_1 = Value;
- if(Value_1<baojingzhi) // 當(dāng)距離小于報(bào)警值時(shí)報(bào)警
- DJ = 0 ;
- else
- DJ = 1;
- NRFSetRXMode();//設(shè)置為接收模式
- Delay_x_ms(20);
- GetDate(); //開始接收數(shù)據(jù)
- Delay_x_ms(20);
- bai = RevTempDate[0]-'0'; //提取百位
- shi = RevTempDate[1]-'0'; //提取十位
- ge = RevTempDate[2]-'0'; //提取個(gè)位
- baojingzhi = bai*100+shi*10+ge; //計(jì)算
-
-
- if(flag_1s==1) //一秒發(fā)送一次水位值
- {
- flag_1s = 0;
- Value_buff[0]=Value/100+'0';
- Value_buff[1]=Value/10%10+'0';
- Value_buff[2]=Value%10+'0';
- Value_buff[3]= '\0';
- NRFSetTxMode(Value_buff); //發(fā)送
- while(CheckACK_RP()); //檢測(cè)是否發(fā)送完畢,檢測(cè)應(yīng)答信號(hào)
- Delay_x_ms(200);
- }
- }
-
- // else num = 0;
-
- }
- /*------------------------------------------------
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
新建文件夾.7z
(237.84 KB, 下載次數(shù): 112)
2019-12-24 19:45 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|