📄 c_main.i
字号:
#line 1 "c_main.c" /0 #line 1 "Reg935.h" /0 sfr P0 = 0x80; sfr P1 = 0x90; sfr P2 = 0xA0; sfr P3 = 0xB0; sfr PSW = 0xD0; sfr ACC = 0xE0; sfr B = 0xF0; sfr SP = 0x81; sfr DPL = 0x82; sfr DPH = 0x83; sfr PCON = 0x87; sfr TCON = 0x88; sfr TMOD = 0x89; sfr TL0 = 0x8A; sfr TL1 = 0x8B; sfr TH0 = 0x8C; sfr TH1 = 0x8D; sfr IEN0 = 0xA8; sfr IP0 = 0xB8; sfr SCON = 0x98; sfr SBUF = 0x99; sfr AUXR1 = 0xA2; sfr SADDR = 0xA9; sfr SADEN = 0xB9; sfr TL2 = 0xCC; sfr TH2 = 0xCD; sfr BRGR0 = 0xBE; sfr BRGR1 = 0xBF; sfr BRGCON = 0xBD; sfr CCCRA = 0xEA; sfr CCCRB = 0xEB; sfr CCCRC = 0xEC; sfr CCCRD = 0xED; sfr CMP1 = 0xAC; sfr CMP2 = 0xAD; sfr DEECON = 0xF1; sfr DEEDAT = 0xF2; sfr DEEADR = 0xF3; sfr DIVM = 0x95; sfr I2ADR = 0xDB; sfr I2CON = 0xD8; sfr I2DAT = 0xDA; sfr I2SCLH = 0xDD; sfr I2SCLL = 0xDC; sfr I2STAT = 0xD9; sfr ICRAH = 0xAB; sfr ICRAL = 0xAA; sfr ICRBH = 0xAF; sfr ICRBL = 0xAE; sfr IEN1 = 0xE8; sfr IP1 = 0xF8; sfr IP1H = 0xF7; sfr KBCON = 0x94; sfr KBMASK = 0x86; sfr KBPATN = 0x93; sfr OCRAH = 0xEF; sfr OCRAL = 0xEE; sfr OCRBH = 0xFB; sfr OCRBL = 0xFA; sfr OCRCH = 0xFD; sfr OCRCL = 0xFC; sfr OCRDH = 0xFF; sfr OCRDL = 0xFE; sfr P0M1 = 0x84; sfr P0M2 = 0x85; sfr P1M1 = 0x91; sfr P1M2 = 0x92; sfr P2M1 = 0xA4; sfr P2M2 = 0xA5; sfr P3M1 = 0xB1; sfr P3M2 = 0xB2; sfr PCONA = 0xB5; sfr PT0AD = 0xF6; sfr RSTSRC = 0xDF; sfr RTCCON = 0xD1; sfr RTCH = 0xD2; sfr RTCL = 0xD3; sfr SSTAT = 0xBA; sfr SPCTL = 0xE2; sfr SPSTAT = 0xE1; sfr SPDAT = 0xE3; sfr TAMOD = 0x8F; sfr TCR20 = 0xC8; sfr TCR21 = 0xF9; sfr TICR2 = 0xC9; sfr TIFR2 = 0xE9; sfr TISE2 = 0xDE; sfr TOR2H = 0xCF; sfr TOR2L = 0xCE; sfr TPCR2H = 0xCB; sfr TPCR2L = 0xCA; sfr TRIM = 0x96; sfr WDCON = 0xA7; sfr WDL = 0xC1; sfr WFEED1 = 0xC2; sfr WFEED2 = 0xC3; sfr IP0H = 0xB7; sbit CY = PSW^7; sbit AC = PSW^6; sbit F0 = PSW^5; sbit RS1 = PSW^4; sbit RS0 = PSW^3; sbit OV = PSW^2; sbit F1 = PSW^1; sbit P = PSW^0; sbit TF1 = TCON^7; sbit TR1 = TCON^6; sbit TF0 = TCON^5; sbit TR0 = TCON^4; sbit IE1 = TCON^3; sbit IT1 = TCON^2; sbit IE0 = TCON^1; sbit IT0 = TCON^0; sbit EA = IEN0^7; sbit EWDRT = IEN0^6; sbit EBO = IEN0^5; sbit ES = IEN0^4; sbit ESR = IEN0^4; sbit ET1 = IEN0^3; sbit EX1 = IEN0^2; sbit ET0 = IEN0^1; sbit EX0 = IEN0^0; sbit EADEE= IEN1^7; sbit EIEE = IEN1^7; sbit EST = IEN1^6; sbit ECCU = IEN1^4; sbit ESPI = IEN1^3; sbit EC = IEN1^2; sbit EKBI = IEN1^1; sbit EI2C = IEN1^0; sbit PWDRT = IP0^6; sbit PB0 = IP0^5; sbit PS = IP0^4; sbit PSR = IP0^4; sbit PT1 = IP0^3; sbit PX1 = IP0^2; sbit PT0 = IP0^1; sbit PX0 = IP0^0; sbit SM0 = SCON^7; sbit FE = SCON^7; sbit SM1 = SCON^6; sbit SM2 = SCON^5; sbit REN = SCON^4; sbit TB8 = SCON^3; sbit RB8 = SCON^2; sbit TI = SCON^1; sbit RI = SCON^0; sbit I2EN = I2CON^6; sbit STA = I2CON^5; sbit STO = I2CON^4; sbit SI = I2CON^3; sbit AA = I2CON^2; sbit CRSEL = I2CON^0; sbit KB7 = P0^7; sbit T1 = P0^7; sbit KB6 = P0^6; sbit KB5 = P0^5; sbit KB4 = P0^4; sbit KB3 = P0^3; sbit KB2 = P0^2; sbit KB1 = P0^1; sbit KB0 = P0^0; sbit OCC = P1^7; sbit OCB = P1^6; sbit RST = P1^5; sbit INT1 = P1^4; sbit INT0 = P1^3; sbit SDA = P1^3; sbit T0 = P1^2; sbit SCL = P1^2; sbit RxD = P1^1; sbit TxD = P1^0; sbit ICA = P2^7; sbit OCA = P2^6; sbit SPICLK = P2^5; sbit SS = P2^4; sbit MISO = P2^3; sbit MOSI = P2^2; sbit OCD = P2^1; sbit ICB = P2^0; sbit XTAL1= P3^1; sbit XTAL2= P3^0; sbit PLLEN = TCR20^7; sbit HLTRN = TCR20^6; sbit HLTEN = TCR20^5; sbit ALTCD = TCR20^4; sbit ALTAB = TCR20^3; sbit TDIR2 = TCR20^2; sbit TMOD21= TCR20^1; sbit TMOD20= TCR20^0; sfr ADCON0 =0x8E; sfr ADCON1 =0x97; sfr ADMODA =0xC0; sfr ADMODB =0xA1; sfr ADINS =0xA3; sfr AD0BH =0xBB; sfr AD0BL =0xA6; sfr AD0DAT0 =0xC5; sfr AD0DAT1 =0xC6; sfr AD0DAT2 =0xC7; sfr AD0DAT3 =0xF4; sfr AD1BH =0xC4; sfr AD1BL =0xBC; sfr AD1DAT0 =0xD5; sfr AD1DAT1 =0xD6; sfr AD1DAT2 =0xD7; sfr AD1DAT3 =0xF5; sbit BNDI1 =ADMODA^7; sbit BURST1 =ADMODA^6; sbit SCC1 =ADMODA^5; sbit SCAN1 =ADMODA^4; sbit BNDI0 =ADMODA^3; sbit BURST0 =ADMODA^2; sbit SCC0 =ADMODA^1; sbit SCAN0 =ADMODA^0; #line 3 "c_main.c" /0 #line 1 "C:\KEIL\C51\INC\INTRINS.H" /0 extern void _nop_ (void); extern bit _testbit_ (bit); extern unsigned char _cror_ (unsigned char, unsigned char); extern unsigned int _iror_ (unsigned int, unsigned char); extern unsigned long _lror_ (unsigned long, unsigned char); extern unsigned char _crol_ (unsigned char, unsigned char); extern unsigned int _irol_ (unsigned int, unsigned char); extern unsigned long _lrol_ (unsigned long, unsigned char); extern unsigned char _chkfloat_(float); #line 4 "c_main.c" /0 #line 1 "cewen.h" /0 sbit LED_red = P1^7 ; sbit LED_green = P1^6 ; sbit RFC = P2^0; sbit KF = P2^7; sbit RX = P1^0; sbit TX = P1^1; sbit key1 = P0^0; sbit key2 = P0^5; sbit CTRL485 = P2^4; unsigned char BRGR1_DATA; unsigned char BRGR0_DATA ; unsigned char Time_M; unsigned char Time_S; unsigned char Time_x; unsigned char Load_x; unsigned char Load_M; unsigned char Load_S; unsigned char sdk; unsigned char Readnum; unsigned char kcount=0; unsigned char botelv=0; unsigned char WorkMode; unsigned char idata ser_dat[60]={0};#line 5 "c_main.c" /0 #line 1 "UART2.H" /0 sbit uart2txd=P0^7; sbit uart2rxd=P0^6; void uart2send(unsigned char s); unsigned char uart2read(void); #line 6 "c_main.c" /0 #line 1 "W_R_E2RAM.h" /0 void Write_Datato_E2RAM (unsigned char Count,unsigned char Addr,unsigned char *Wdata_Addr ); void Read_Datato_E2RAM (unsigned char Count,unsigned char Addr,unsigned char *Wdata_Addr ); void Write_Datato_00E2RAM (unsigned char Count,unsigned char Addr ); #line 7 "c_main.c" /0 unsigned char sendRQ=0; unsigned char ch=0; char text[]="response at 9600 baud"; void delayms(int i) { unsigned int k; while(i>0) { for(k=0;k<670;k++); i--; } } void InitTimer(void) { AUXR1=0x10; TMOD = 0x12; TAMOD = 0x01; TR0=0; ET1=1; EA=1; } void Init_Serial(void) { SSTAT=0x60; PCON&=0x3f; if(WorkMode==0x01) SCON=0x50; else SCON=0xd0; BRGCON=0x00; if(botelv==1) BRGR1_DATA=0x17; else if(botelv==2)BRGR1_DATA=0x0b; else if(botelv==3)BRGR1_DATA=0x05; else if(botelv==4)BRGR1_DATA=0x02; BRGR0_DATA=0xf0; BRGR1=BRGR1_DATA; BRGR0=BRGR0_DATA; BRGCON=0x03; EST=0; ESR=1; ES = 1; EA=1; } void UART_ISR(void) interrupt 4 { RI = 0; TI = 0; ser_dat[ch]=SBUF; ch++; if(sendRQ==0) sendRQ=1; } void Send_Data(unsigned char Serial_data) { ACC=Serial_data; TB8=P;TI=0; SBUF=Serial_data; while(!TI); TI=0; } void sendtoPCa(void) { int j=0; if(WorkMode==1) {while(ch--) { TI=0; SBUF=ser_dat[j]; while (!TI); j++; } } else { while(ch--) {Send_Data(ser_dat[j]);j++; } } } void Init_cpuio(void) { P0M1=0x5e; P0M2=0x80; P1M1=0x3e; P1M2=0xff; P2M1=0x6c; P2M2=0xff; KF=1; RFC=1; uart2txd=0; CTRL485=1; LED_red=1; LED_green=1; ES = 1; EA=1; } void RTC_Init() { Time_S=0; Time_M=0; IEN0|=0xC0; WDCON=0xE0; RTCH=0xE0; RTCL=0xFF; RTCCON=0x63; } void Inc_time() { Time_S++; if(Time_S>59) { Time_S=0; Time_M++; if(Time_M>59) { Time_M=0; Time_x++; if(Time_x>23) Time_x=0; } } } void RTC_ISR() interrupt 10 { EA=0; RTCCON&=0x63; Inc_time(); EA=1; } unsigned char Int_System(void) { unsigned char count,num=0,i; unsigned char idata work_dat[16]={0}; Read_Datato_E2RAM(16,0,work_dat); if(work_dat[0]==0x36) { count=work_dat[1]; for(i=0;i<count+1;i++) { num+=work_dat[1+i]; } if(num==0) { WorkMode=work_dat[3]; botelv=work_dat[8]; Readnum=work_dat[13]; return(0x01);} else return(0x00); } else return(0x00); } void Wait_Code1(void) { unsigned char idata work_dat[16]={0}; unsigned char i1,ki1,j1; LED_red=1; LED_green=0; KF=0; RFC=0; uart2txd=0; delayms(100); KF=1; RFC=1; while(1){ while(1){ if(uart2read()==0x55)ki1++; else ki1=0; if(ki1>5)break; } while(1){if(uart2read()==0x36) {work_dat[0]=0x36;break;} } ki1=uart2read(); work_dat[1]=ki1; for(i1=0;i1<ki1;i1++)work_dat[i1+2]=uart2read(); j1=0; for(i1=1;i1<ki1+2;i1++)j1+=work_dat[i1]; if(j1==0) {Write_Datato_E2RAM(16,0,work_dat); botelv=work_dat[8]; for(i1=0;i1<botelv;i1++) { LED_red=!LED_red; delayms(600); LED_red=!LED_red; delayms(600); } WorkMode=work_dat[3]; for(i1=0;i1<work_dat[3];i1++) { LED_green=!LED_green; delayms(600); LED_green=!LED_green; delayms(600); } break; } } } unsigned char Wait_Code2(void) { unsigned char idata work_dat[16]={0}; unsigned char ki1; Time_S=0; while(Time_S<3){ if(uart2read()==0x55)ki1++; else ki1=0; if(ki1>5)break; } while(Time_S<4){ if(uart2read()==0xff)break; } while(Time_S<5){ if(uart2read()==0x35) { work_dat[0]=0x35;break; } } ki1=uart2read(); if(ki1==1)return(0x01); else return(0x00); } void SendDatatowless_a() {unsigned char i_3,i; for(i_3=0;i_3<3;i_3++) { LED_red=!LED_red; delayms(600); LED_red=!LED_red; uart2txd=0; RFC=0; delayms(10); for(i=0;i<10;i++)uart2send(0x55); for(i=0;i<2;i++)uart2send(0x00); uart2send(0x06);uart2send(ch); for(i=0;i<ch;i++){uart2send(ser_dat[i]);} delayms(2); uart2txd=0; RFC=1; delayms(15); } } void SendDatatowless_b() { Time_S=0;Time_M=0; while(Time_S>1); LED_green=!LED_green; delayms(300); LED_green=!LED_green; SendDatatowless_a(); delayms(10); uart2txd=0; RFC=1; sendRQ=0;ch=0; } void Taking_overDataWelss(void) { unsigned char i; while(uart2read()!=0x06); ch=uart2read(); for(i=0;i<ch;i++)ser_dat[i]=uart2read(); LED_green=!LED_green; delayms(300); LED_green=!LED_green; sendtoPCa(); delayms(10); uart2txd=0; RFC=1; sendRQ=0;ch=0; } main() { unsigned char ki1,ip=50; Init_cpuio(); InitTimer(); Init_Serial(); RTC_Init(); while(1){ if(Int_System()==0x00)Wait_Code1(); else { Init_Serial(); LED_red=0; LED_green=1; uart2txd=0; RFC=1; CTRL485=1;RI=0; while(1) { if(key1==0){Write_Datato_00E2RAM (16,0 );break;} if (sendRQ)SendDatatowless_b(); while(--ip){ if(uart2read()==0x55)ki1++; else ki1=0; if(ki1>5)break; } ip=50; if(ki1>5)Taking_overDataWelss(); } } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -