|
接收機在下載程序時 請務(wù)必選擇內(nèi)部晶振頻率為6MHz.
131030gn2tgrbb52828vt7.jpg (104.85 KB, 下載次數(shù): 141)
下載附件
2017-8-19 21:39 上傳
131005y2nn2mryaeomgafz.jpg (167.3 KB, 下載次數(shù): 124)
下載附件
2017-8-19 21:38 上傳
所有資料51hei提供下載:
- #include"A_LCD.H"
- #include"A_DISPLAY.H"
- #include"A_NRF2401.H"
- #include"A_ADC.H"
- #include"A_EEPROM.H"
- #include"a_keyscan.h"
- #include"a_desktop.h"
- #include"stc12c5.h"
- #include"a_delay.h"
- sbit SPEAKER=P4^4;
- sbit PPM=P2^6; //未使用
- sbit CH8=P2^7;
- extern unsigned int poweroff;
- extern char code boot[];
- extern unsigned code hnist[];
- extern char x,y,x4;
- extern unsigned char BAT;
- extern char databuf;
- extern char canshu[10][5][5];
- unsigned char value_ch[6];
- int value_adc[6];
- int value_adc1[6];
- unsigned char bdata sta1;
- sbit RX_DR1 =sta1^6;
- sbit TX_DS1 =sta1^5;
- sbit MAX_RT1 =sta1^4;
- // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
- int time[18]={8000,610, 900, 610, 900, 610,900, 610, 900, 610, 900, 610, 900,610,900, 610,900,610};
- // 頭 一通道 二通道 三通道 四通道 五通道 六通道 七通道 八通道
- unsigned char ppm;
- char TxBuf[32]={
- 0xaa,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
- 0x04,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
- 0x0a,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
- 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04
- };
- int TxBuf1[32]={0};
- unsigned char lose=0 ,sendtime=0,signal;
- unsigned int timeset=0;
- unsigned char write_flag=0;
- unsigned char s_time;//蜂鳴器鳴叫相關(guān)計數(shù)變量
- unsigned char s_mode;//蜂鳴器鳴叫方式
- unsigned char code chacha[]=
- {
- /*-- 調(diào)入了一幅圖像:這是您新建的圖像 --*/
- /*-- 寬度x高度=8x8 --*/
- 0x00,0x82,0x44,0x28,0x10,0x28,0x44,0x82
- };
- void ADC2TXBUF();
- void main()
- {
- unsigned char i;
-
- P4SW=0xff;
- delay_ms(10);
- read_all();
- delay_ms(1000);
- LcmInit();
- adcinit();
- init_NRF24L01() ; //這里已經(jīng)設(shè)置好了為接收!
- SPI_RW(0xe1); //先將發(fā)送緩存器里的數(shù)據(jù)清除
-
- delay_ms(1000);
- TMOD=0X11;
- TH0=0;
- TL0=0;
- TH1=0;
- TL1=0;
- EA=1;
- //ET0=1;
- //ET1=1;
- TR0=1;
- TR1=1;
- for(i=120;i>0;i--)
- {
- PUTbmp(0,i,boot,0);
- }
- delay_ms(50000);
- delay_ms(50000);
-
-
- while(1)
- {
- LcmClear();
- timeset=0;
- while(y>0)
- {
- write_flag=1;
- menu_dis1();
- menu_dis11();
- menu_dis12();
- menu_dis13();
- menu_dis14();
- menu_dis15();
- menu_dis151();
- menu_dis152();
- menu_dis153();
- keyscan();
- if(timeset>500)
- y=0;
- }
- PUTbmp(0,0,hnist,0);
- write_all();
- if(canshu[databuf][2][2]==0)
- {
- ET0=1;
- ET1=0;
- }
- else
- {
- ET0=0;
- ET1=1;
- }
- while(y==0)
- {
- if(write_flag==1)
- {
-
- write_flag=0;
- }
- if(canshu[databuf][2][2]==0)
- number8x8_put(signal,0,19,5,3);
- else
- PUTchar8x8(0,12,1,chacha);
-
- keyscan();
-
- desk_display();
- }
- }
- }
- void adc_senddata() interrupt 1
- {
-
-
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- if(canshu[databuf][2][2]==0)
- {
- sta1=SPI_Read(0x07);
- SPI_Write_Reg(0x20 +0x07,0xFF); //這步很重要
- if(MAX_RT1==1)
- {
- if(lose<20)
- lose++;
- }
- if(sendtime<20)
- sendtime++;
-
- if(sendtime>19)
- {
- signal=(sendtime-lose)/2;
- sendtime=0;
- lose=0;
- }
- if(signal<7) s_mode=2;
-
- ADC2TXBUF();//數(shù)據(jù)采集與整理并匯入到TxBuf
- nRF24L01_TxPacket(TxBuf);
-
- timeset++;
-
- s_time++;
- if(s_mode==1)
- {
- if(s_time>5)
- {
- SPEAKER=0;
- }
- if(s_time>10)
- {
- s_time=0;
- SPEAKER=1;
- }
- }
-
- if(s_mode==2)
- {
- if(s_time>35&canshu[databuf][2][3]==0&signal<7&canshu[databuf][2][2]==0)
- {
- SPEAKER=0;
- }
- if(s_time>40)
- {
- s_time=0;
- SPEAKER=1;
- }
- }
- if(s_mode==0)
- {
- s_time=0;
- SPEAKER=1;
- }
- }
-
- }
- void SPEAKER_WARNING() interrupt 3
- {
-
- unsigned char h;
- if(canshu[databuf][2][2]==1)
- {
- TH1=(65536-time[ppm])/256;
- TL1=(65536-time[ppm])%256;
- if(ppm%2==1)
- PPM=0;
- else
- PPM=1;
- ppm++;
- if(ppm==14)
- {
- ppm=0;
- time[0]=36400-(time[1]+time[2]+time[3]+time[4]+time[5]+time[6]+time[7]+time[8]+time[9]+time[10]+time[11]+time[12]+time[13]);//36400
- }
- if(ppm==0)
- ADC2TXBUF();//數(shù)據(jù)采集與整理并匯入到TxBuf
-
- }
- }
- void ADC2TXBUF()
- {
- unsigned char i,j,k,h;
- int hk1,hk2;
- for(i=0;i<6;i++)
- {
- value_adc[i]=adc(i)+canshu[databuf][4][i];
- value_ch[i]=value_adc[i];
- value_adc[i]=value_adc[i]-128;
- }
- /*********************************************/
- BAT=adc(7);
- if(BAT<189)
- BAT=0; //電池電壓采集
- else
- BAT=(BAT-189)/10;
- /********************************************/
- if(canshu[databuf][2][0]==1)//副翼襟翼混控設(shè)置
- {
- hk1=value_adc[4]-value_adc[0];
- hk2=value_adc[4]+value_adc[0];
- value_adc[0]=hk1;
- value_adc[4]=hk2;
- }
-
- if(canshu[databuf][2][0]==2)//副翼升降混控設(shè)置
- {
- hk1=value_adc[1]-value_adc[0];
- hk2=value_adc[1]+value_adc[0];
- value_adc[0]=hk1;
- value_adc[1]=hk2;
- }
- if(canshu[databuf][2][1]==1&canshu[databuf][2][0]!=2)//升降尾舵混控設(shè)置(V尾混控)
- {
- hk1=value_adc[3]-value_adc[1];
- hk2=value_adc[3]+value_adc[1];
- value_adc[1]=hk1;
- value_adc[3]=hk2;
- }
-
- for(j=0;j<6;j++) //通道反向以及防止溢出
- {
- if(canshu[databuf][0][j]==1)
- value_adc[j]=0-value_adc[j];
- if(value_adc[j]>127) value_adc[j]=127;
- if(value_adc[j]<-127) value_adc[j]=-127;
- TxBuf[j+1]=value_adc[j];
- }
- if(CH8==1) TxBuf[8]=127;
- else TxBuf[8]=-127;
- for(k=0;k<4;k++)
- {
- TxBuf[k+9]=canshu[databuf][1][k];
- }
- for(h=1;h<7;h++)
- {
- time[2*h]=2000+TxBuf[h]*8;
- }
-
- }
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
|
-
-
發(fā)射和接收機原理圖.rar
2017-8-19 21:38 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
23.33 KB, 下載次數(shù): 166, 下載積分: 黑幣 -5
-
-
發(fā)射機Keil C工程.rar
2017-8-19 21:38 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
135.36 KB, 下載次數(shù): 137, 下載積分: 黑幣 -5
-
-
發(fā)射機固件.rar
2017-8-19 21:38 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
154.84 KB, 下載次數(shù): 127, 下載積分: 黑幣 -5
-
-
固件更新 .rar
2017-8-19 21:38 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
176.16 KB, 下載次數(shù): 132, 下載積分: 黑幣 -5
-
-
接收機.rar
2017-8-19 21:38 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
51.14 KB, 下載次數(shù): 171, 下載積分: 黑幣 -5
-
-
新建文件夾.rar
2017-8-19 23:51 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
1.24 KB, 下載次數(shù): 123, 下載積分: 黑幣 -5
評分
-
查看全部評分
|