萝丽三代控及接收机源代码.zip
大小:48.93KB
价格:25积分
下载量:0
评分:
5.0
上传者:WMJTG
更新日期:2024-08-13

萝丽-三代控及接收机源代码

资源文件列表(大概)

文件名
大小
萝莉三代控及接收机源代码/萝丽三代6通接收机A10.5源码/
-
萝莉三代控及接收机源代码/萝丽三代6通接收机A10.5源码/萝丽三代6通接收机A10.5源码.c
26.11KB
萝莉三代控及接收机源代码/萝丽三代遥控器A12版(源码)/
-
萝莉三代控及接收机源代码/萝丽三代遥控器A12版(源码)/LOLI_3.h
66.77KB
萝莉三代控及接收机源代码/萝丽三代遥控器A12版(源码)/萝丽三代遥控器A12版(源码).c
149.96KB

资源内容介绍

简单易用
#include<reg51.h>//Large编译,否则xdata异常#include<math.h>#include<LOLI_3.h> //显示需要的图形数据#define u8 unsigned char#define u16 unsigned int#include<intrins.h>/*****************************************************///STC12 系列新增寄存器sfr IPH=0xb7;sfr P4=0xc0;sfr P4SW=0xbb;sfr P1ASF=0x9d;sfr P4M0=0xb4;sfr P3M0=0xb2;sfr P3M1=0xb1;sfr P2M0=0x96;sfr P0M0=0x94;sfr ADC_CONTR=0xbc;sfr ADC_RES=0xbd;sfr ADC_RESL=0xbe;sfr BRT=0x9c;sfr AUXR=0x8e;sfr WAKE_CLKO=0x8f;sfr IAP_DATA=0xc2;sfr IAP_ADDRH=0xc3;sfr IAP_ADDRL=0xc4;sfr IAP_CMD=0xc5;sfr IAP_TRIG=0xc6;sfr IAP_CONTR=0xc7;sfr CCON = 0xD8; //PCA control registersbit CCF0 = CCON^0; //PCA module-0 interrupt flagsbit CCF1 = CCON^1; //PCA module-1 interrupt flagsbit CR = CCON^6; //PCA timer run control bitsfr CMOD = 0xD9; //PCA mode registersfr CL = 0xE9; //PCA base timer LOWsfr CH = 0xF9; //PCA base timer HIGHsfr CCAPM0 = 0xDA; //PCA module-0 mode registersfr CCAP0L = 0xEA; //PCA module-0 capture register LOWsfr CCAP0H = 0xFA; //PCA module-0 capture register HIGHsfr CCAPM1 = 0xDB; //PCA module-1 mode registerssfr CCAP1L = 0xEB; //PCA module-1 capture register LOWsfr CCAP1H = 0xFB; //PCA module-1 capture register HIGH/*************************************************///LCD引脚定义sbit CS=P0^6;sbit RST=P0^7;sbit RS=P4^6; sbit SDA=P4^5; sbit CLK=P4^4;sbit LEDA=P2^5;/**************************************************///NRF24L01 引脚定义sbit CE=P0^0;sbit SCK=P0^1;sbit MDO=P0^2;sbit IRQ=P0^3;sbit MDI=P0^4;sbit CSN=P0^5;/*************************************************///I/O定义sbit buzzer=P3^4;sbit PPM=P3^3;sbit KEY=P4^7;sbit K1=P3^0;sbit K2=P3^1;sbit K3=P3^7;sbit K4=P3^6;sbit K5=P3^2;sbit K6=P3^5;sbit SA=P2^0;sbit SB1=P2^1;sbit SB2=P2^2;sbit SC1=P2^3;sbit SC2=P2^4;sbit SD=P2^6;sbit SE=P2^7;/***********************************************///数据、标志位u8 bdata DATA;sbit D_7=DATA^7;sbit D_6=DATA^6;sbit D_5=DATA^5;sbit D_4=DATA^4;sbit D_3=DATA^3;sbit D_2=DATA^2;sbit D_1=DATA^1;sbit D_0=DATA^0;//ROM存储#define Model_length 117 //模型数据 长度 宏定义#define Version 0xAC //系统版本 A13u8 Model_number=0,Model_current=0,Model_addrH=2;bit Model_change,Model_reset,reset_action;u8 TEMP_DATA[351];bit ROM_enable;bit Data_system,Data_model;bit save_action;bit calibration_action,calibration_ok;//显示u8 word[10];u8 WW[11][6];bit LCD_big;bit LCD_light=1;bit LCD_reverse;u8 LCD_vop=42;u8 boot_screen=0;bit boot_screen_en=1;//时钟bit event1,event2,event3;u8 t1=0,t2=0,t3=0;bit flag_20ms;u8 Master_clock,second=0,minute=0,hour=0;u8 clock2,second2=0,minute2=0;u8 clock_set=5,clock_switch=0;bit clock_go;u16 throttle_idle=0;u8 delay_time=0;u8 flash_time=0;//蜂鸣器bit Message_AlarmClock,Message_LowPower;u8 Message_KeyTone=0,Message_DataReturn_bad=0;u8 beep=0,sound=0; bit Sound_enable=1;//菜单模式bit PPM_OUT,PPM_IN,RC_TX,IR_TX,RC_check;bit config_change,star=1,RC_check_star;u8 menu=0,menu_1=0,menu_2=0,menu_3=0;u8 line=0,line_1=0,line_2=0,line_3=0;u8 last_line=0;//按键bit KS,KS_long_press;u8 KS_press_time;bit key1,key2,key3,key4,key5,key6;bit s1,s2,s3,s4,s5,s6;bit s1_long_press,s2_long_press,s3_long_press,s4_long_press,s5_long_press,s6_long_press;u8 s1_press_time,s2_press_time,s3_press_time,s4_press_time,s5_press_time,s6_press_time;bit key_time;bit increase,decrease,up,down,left,right;//ADCu16 data adc[8],adc_buff[8];u8 t_adc=0;u8 Battery_1s=1,VLD1=35,VLD2=70;u16 battery_voltage;char v_trim1=0,v_trim2=0;bit USB_5V;//硬件配置//u8 Right_throttle;bit throttle_lock,Throttle_check=1,Auto_lock,Trim_step;u8 tt=0;u8 middle_change_last;u16 value0,value1;u8 IN_mapping[8];bit recover;bit NRF_config_change,config_change;bit first;u16 CH1_max=600,CH2_max=600,CH3_max=600,CH4_max=600;u16 CH1_min=400,CH2_min=400,CH3_min=400,CH4_min=400;u8 CH1_offset=51,CH2_offset=51,CH3_offset=51,CH4_offset=51;u16 CH_value[4];u8 ratio_switch=0;bit use_new_ratio;//无线通信bit cancel,connecting;u8 TX_power=3;bit CD;u8 data RC_TX_state=0;u8 t_check,t_hopping,NRF_error=0;u8 CD_data[16];u8 NRF_mapping[8];u16 NRF_buff[8];u8 timer2=0,timer3=0,receive=0;u8 rx_sum,FUCK_sum=0;//坑爹的xdata,定义成rx不能用,定义成FUCK就能用了u8 address[5];u8 hopping[5];u8 code address_0[5]={'L','O','V','E','!'};//使用LOVE作为对频暗语u8 tx_buff[11],tx_data[11],rx[11]={0,0,0};u8 tx_order[11];u8 TX_protocol=3;u8 Power_V=70,Chip_V=40,TX_min=60,RX_min=60;//接收机设置u8 receiver_mode[8];bit Receiver_change;bit NRF_change;char out_control[8];u16 out_control_data[8];//PPMu8 T_l,T_h;u8 t_ppm=0,t_PPMout=0;int PPM_DATA[8]={0,0,0,0,0,0,0,0};int data PPM_buff[8];u16 data PPMout[8]={500,600,800,200,1000,0,100,300};u8 PPM_mapping[8]={0,1,2,3,4,5,6,7};u8 train_switch=0;bit train_output;u8 PPM_updata=0;char PPM_offset=0;//自动控制u8 auto_switch=0,auto_mode=2;char auto_middle=-100,auto_star=-50,auto_end=50;u8 auto_speed=10;int auto_value=0;u16 auto_max,auto_min;bit auto_h,auto_l=0;//开关u8 Switch_A,Switch_B,Switch_C,Switch_D,Switch_E;u8 Combination_Switch=0,Com_Swt_IN1=0,Com_Swt_IN2=0;u8 Com_Swt_out[6]={16,29,42,55,68,81};u8 Com_Swt_mapping=4;u8 Return_alarm_switch=0;//通道运算int data operation[8];char CH_middle[8];bit ratio_mode;u8 CH_ratio[2][8];u8 New_ratio[2][4]={60,60,60,60,60,60,60,60};u8 CH_inverted[8];u8 CH_middle_change=0;u8 mixer_name;bit mixer1,mixer2,mixer3,mixer4;u8 mixer1_same,mixer1_contrary;u8 mixer2_same,mixer2_contrary;u8 mixer3_same,mixer3_contrary;u8 mixer4_same,mixer4_contrary;//曲线运算u8 curve_buff[51];u8 index_number=0;bit index_change;char last_index;char CH_index[3];u8 point_num=3,curve_num=0;u8 turnning_point[5][7];u16 throttle;/***********************************************************///延时函数void Delay1ms()//@12.000MHz{unsigned char i, j;i = 12;j = 168;do{while (--j);} while (--i);}void delay_ms(u16 i)//延时毫秒{while(i--)Delay1ms();}/**********************************************************///ROM操作函数、数据读写控制u8 EEPROM_read(u8 address_H,u16 address_L)//读数据{IAP_CMD=0x01;if(address_L>255){IAP_ADDRH=address_H+1;IAP_ADDRL=address_L-255;}else {IAP_ADDRH=address_H;IAP_ADDRL=address_L;}IAP_TRIG=0x5a;IAP_TRIG=0xa5; _nop_();return IAP_DATA;}void EEPROM_write(u8 address_H,u16 address_L,u8 byte)//写入数据{IAP_CMD=0x02;IAP_DATA=byte;if(address_L>255){IAP_ADDRH=address_H+1;IAP_ADDRL=address_L-255;}else {IAP_ADDRH=address_H;IAP_ADDRL=address_L;}IAP_TRIG=0x5a;IAP_TRIG=0xa5; _nop_();}void EEPROM_clean(u8 address_H)//擦除数据{IAP_CMD=0x03;IAP_ADDRH=address_H;IAP_ADDRL=0;IAP_TRIG=0x5a;IAP_TRIG=0xa5;_nop_();}void Data_change(u8 m)//数据改变{if(m==1)Data_system=1;if(m==2)Data_model=1;event3=1,t3=0;//刷新事件3定时器}void DATA_read1()//读取系统参数{u8 i;u16 sum=0,sum_read;IAP_CONTR=0x83;for(i=0;i<74;i++){sum+=EEPROM_read(0,i);}sum_read=EEPROM_read(0,74);//读校验和sum_read<<=8;sum_read+=EEPROM_read(0,75);if(EEPROM_read(0,0)!=Version||sum!=sum_read) {first=1;RC_T

用户评论 (0)

发表评论

captcha