当前位置:首页 > 行业发展 > 正文

单片机编程_串口指令控制LED状态

__sfr__at(0x80)P0;__bit__at(0x80)P00;__bit__at(0x81)P01;__bit__at(0x82)P02;__bit__at(0x83)P03;__bit__at(0x84)P04;__bit__at(0x85)P05;__bit__at(0x86)P06...

__sfr__at(0x80)P0;__bit__at(0x80)P00;__bit__at(0x81)P01;__bit__at(0x82)P02;__bit__at(0x83)P03;__bit_......

__sfr__at(0x80)P0;__bit__at(0x80)P00;__bit__at(0x81)P01;__bit__at(0x82)P02;__bit__at(0x83)P03;__bit__at(0x84)P04;__bit__at(0x85)P05;__bit__at(0x86)P06;__bit__at(0x87)P07;__sfr__at(0x81)SP;__sfr__at(0x82)DPL;__sfr__at(0x83)DPH;__sfr__at(0x84)S4CON;__sfr__at(0x85)S4BUF;__sfr__at(0x87)PCON;__sfr__at(0x88)TCON;__bit__at(0x88)IT0;__bit__at(0x89)IE0;__bit__at(0x8a)IT1;__bit__at(0x8b)IE1;__bit__at(0x8c)TR0;__bit__at(0x8d)TF0;__bit__at(0x8e)TR1;__bit__at(0x8f)TF1;__sfr__at(0x89)TMOD;__sfr__at(0x8a)TL0;__sfr__at(0x8b)TL1;__sfr__at(0x8c)TH0;__sfr__at(0x8d)TH1;__sfr__at(0x8e)AUXR;__sfr__at(0x8f)INTCLKO;__sfr__at(0x90)P1;__bit__at(0x90)P10;__bit__at(0x91)P11;__bit__at(0x92)P12;__bit__at(0x93)P13;__bit__at(0x94)P14;__bit__at(0x95)P15;__bit__at(0x96)P16;__bit__at(0x97)P17;__sfr__at(0x91)P1M1;__sfr__at(0x92)P1M0;__sfr__at(0x93)P0M1;__sfr__at(0x94)P0M0;__sfr__at(0x95)P2M1;__sfr__at(0x96)P2M0;__sfr__at(0x98)SCON;__bit__at(0x98)RI;__bit__at(0x99)TI;__bit__at(0x9a)RB8;__bit__at(0x9b)TB8;__bit__at(0x9c)REN;__bit__at(0x9d)SM2;__bit__at(0x9e)SM1;__bit__at(0x9f)SM0;__sfr__at(0x99)SBUF;__sfr__at(0x9a)S2CON;__sfr__at(0x9b)S2BUF;__sfr__at(0x9d)IRCBAND;__sfr__at(0x9e)LIRTRIM;__sfr__at(0x9f)IRTRIM;__sfr__at(0xa0)P2;__bit__at(0xa0)P20;__bit__at(0xa1)P21;__bit__at(0xa2)P22;__bit__at(0xa3)P23;__bit__at(0xa4)P24;__bit__at(0xa5)P25;__bit__at(0xa6)P26;__bit__at(0xa7)P27;__sfr__at(0xa2)P_SW1;__sfr__at(0xa8)IE;__bit__at(0xa8)EX0;__bit__at(0xa9)ET0;__bit__at(0xaa)EX1;__bit__at(0xab)ET1;__bit__at(0xac)ES;__bit__at(0xad)EADC;__bit__at(0xae)ELVD;__bit__at(0xaf)EA;__sfr__at(0xa9)SADDR;__sfr__at(0xaa)WKTCL;__sfr__at(0xab)WKTCH;__sfr__at(0xae)TA;__sfr__at(0xaf)IE2;__sfr__at(0xb0)P3;__bit__at(0xb0)P30;__bit__at(0xb1)P31;__bit__at(0xb2)P32;__bit__at(0xb3)P33;__bit__at(0xb4)P34;__bit__at(0xb5)P35;__bit__at(0xb6)P36;__bit__at(0xb7)P37;__sfr__at(0xb1)P3M1;__sfr__at(0xb2)P3M0;__sfr__at(0xb3)P4M1;__sfr__at(0xb4)P4M0;__sfr__at(0xb5)IP2;__sfr__at(0xb6)IP2H;__sfr__at(0xb7)IPH;__sfr__at(0xb8)IP;__bit__at(0xb8)PX0;__bit__at(0xb9)PT0;__bit__at(0xba)PX1;__bit__at(0xbb)PT1;__bit__at(0xbc)PS;__bit__at(0xbd)PADC;__bit__at(0xbe)PLVD;__bit__at(0xbf)PPCA;__sfr__at(0xb9)SADEN;__sfr__at(0xba)P_SW2;__sfr__at(0xbc)ADC_CONTR;__sfr__at(0xbd)ADC_RES;__sfr__at(0xbe)ADC_RESL;__sfr__at(0xc0)P4;__bit__at(0xc0)P40;__bit__at(0xc1)P41;__bit__at(0xc2)P42;__bit__at(0xc3)P43;__bit__at(0xc4)P44;__bit__at(0xc5)P45;__bit__at(0xc6)P46;__bit__at(0xc7)P47;__sfr__at(0xc1)WDT_CONTR;__sfr__at(0xc2)IAP_DATA;__sfr__at(0xc3)IAP_ADDRH;__sfr__at(0xc4)IAP_ADDRL;__sfr__at(0xc5)IAP_CMD;__sfr__at(0xc6)IAP_TRIG;__sfr__at(0xc7)IAP_CONTR;__sfr__at(0xc8)P5;__bit__at(0xc8)P50;__bit__at(0xc9)P51;__bit__at(0xca)P52;__bit__at(0xcb)P53;__bit__at(0xcc)P54;__bit__at(0xcd)P55;__bit__at(0xce)P56;__bit__at(0xcf)P57;__sfr__at(0xc9)P5M1;__sfr__at(0xca)P5M0;__sfr__at(0xcb)P6M1;__sfr__at(0xcc)P6M0;__sfr__at(0xcd)SPSTAT;__sfr__at(0xce)SPCTL;__sfr__at(0xcf)SPDAT;__sfr__at(0xd0)PSW;__bit__at(0xd0)P;__bit__at(0xd1)F1;__bit__at(0xd2)OV;__bit__at(0xd3)RS0;__bit__at(0xd4)RS1;__bit__at(0xd5)F0;__bit__at(0xd6)AC;__bit__at(0xd7)CY;__sfr__at(0xd1)T4T3M;__sfr__at(0xd2)T4H;__sfr__at(0xd3)T4L;__sfr__at(0xd4)T3H;__sfr__at(0xd5)T3L;__sfr__at(0xd6)T2H;__sfr__at(0xd7)T2L;__sfr__at(0xd8)CCON;__bit__at(0xd8)CCF0;//0__bit__at(0xd9)CCF1;//1__bit__at(0xda)CCF2;//2__bit__at(0xde)CR;//6__bit__at(0xdf)CF;//7__sfr__at(0xd9)CMOD;__sfr__at(0xda)CCAPM0;__sfr__at(0xdb)CCAPM1;__sfr__at(0xdc)CCAPM2;__sfr__at(0xde)ADCCFG;__sfr__at(0xdf)IP3;__sfr__at(0xe0)ACC;__sfr__at(0xe1)P7M1;__sfr__at(0xe2)P7M0;__sfr__at(0xe3)DPS;__sfr__at(0xe4)DPL1;__sfr__at(0xe5)DPH1;__sfr__at(0xe6)CMPCR1;__sfr__at(0xe7)CMPCR2;__sfr__at(0xe8)P6;__bit__at(0xe8)P60;__bit__at(0xe9)P61;__bit__at(0xea)P62;__bit__at(0xeb)P63;__bit__at(0xec)P64;__bit__at(0xed)P65;__bit__at(0xee)P66;__bit__at(0xef)P67;__sfr__at(0xe9)CL;__sfr__at(0xea)CCAP0L;__sfr__at(0xeb)CCAP1L;__sfr__at(0xec)CCAP2L;__sfr__at(0xee)IP3H;__sfr__at(0xef)AUXINTIF;__sfr__at(0xf0)B;__sfr__at(0xf1)PWMSET;__sfr__at(0xf2)PCA_PWM0;__sfr__at(0xf3)PCA_PWM1;__sfr__at(0xf4)PCA_PWM2;__sfr__at(0xf5)IAP_TPS;__sfr__at(0xf6)PWMCFG01;__sfr__at(0xf7)PWMCFG23;__sfr__at(0xf8)P7;__bit__at(0xf8)P70;__bit__at(0xf9)P71;__bit__at(0xfa)P72;__bit__at(0xfb)P73;__bit__at(0xfc)P74;__bit__at(0xfd)P75;__bit__at(0xfe)P76;__bit__at(0xff)P77;__sfr__at(0xf9)CH;__sfr__at(0xfa)CCAP0H;__sfr__at(0xfb)CCAP1H;__sfr__at(0xfc)CCAP2H;__sfr__at(0xfe)PWMCFG45;__sfr__at(0xff)RSTCFG;/*__sfr16__at(0xfea8)ADCTIM;__sfr16__at(0xfea2)TM2PS;__sfr16__at(0xfe88)I2CMSAUX;__sfr16__at(0xfe80)I2CCFG;__sfr16__at(0xfe81)I2CMSCR;__sfr16__at(0xfe82)I2CMSST;__sfr16__at(0xfe83)I2CCSLCR;__sfr16__at(0xfe84)I2CSLST;__sfr16__at(0xfe85)I2CSLADR;__sfr16__at(0xfe86)I2CTxD;__sfr16__at(0xfe87)I2CRxD;__sfr16__at(0xfe31)P1IE;__sfr16__at(0xfe33)P3IE;__sfr16__at(0xfe29)P1DR;__sfr16__at(0xfe2b)P3DR;__sfr16__at(0xfe2d)P5DR;__sfr16__at(0xfe21)P1SR;__sfr16__at(0xfe23)P3SR;__sfr16__at(0xfe25)P5SR;__sfr16__at(0xfe19)P1NCS;__sfr16__at(0xfe1b)P3NCS;__sfr16__at(0xfe1d)P5NCS;__sfr16__at(0xfe11)P1PU;__sfr16__at(0xfe13)P3PU;__sfr16__at(0xfe15)P5PU;__sfr16__at(0xfe00)CKSEL;__sfr16__at(0xfe01)CLKDIR;__sfr16__at(0xfe02)HIRCCR;__sfr16__at(0xfe03)XOSCCR;__sfr16__at(0xfe04)IRC32KCR;__sfr16__at(0xfe05)MCLKOCR;__sfr16__at(0xfe06)IRCDB;*/__bit__at(0xb3)LED1;//P3_3__bit__at(0xb2)LED2;//P3_2__bit__at(0x91)BEEP;//P1_1__bit__at(0x92)SW2;//P1_2__bit__at(0x94)ENC_A;//P1_4__bit__at(0x93)ENC_B;//P1_3__bit__at(0xcc)DIP1;//P5_4__bit__at(0x97)DIP2;//P1_7__bit__at(0x96)DIP3;//P1_6__bit__at(0x95)DIP4;//P1_5defineMAX_LEN19defineADDRESS1////;unsignedcharn2;unsignedcharrdata[20];unsignedcharsdata[20];unsignedchari;unsignedcharj;unsignedcharflag_r_ok;unsignedlongcounter_times;unsignedcharflag_led1;unsignedcharflag_led2;unsignedcharbusy;voiddelay(unsignedlongintn){unsignedlonginti;for(i=0;in;i++){}}voidUartInit(void)//9600bps@11.0592MHz{SCON=0x50;//8位数据,可变波特率AUXR|=0x01;//串口1选择定时器2为波特率发生器AUXR|=0x04;//定时器时钟1T模式T2L=0xE0;//设置定时初始值T2H=0xFE;//设置定时初始值AUXR|=0x10;//定时器2开始计时ES=1;EA=1;busy=0;}voiduart_s(unsignedchardat){while(busy);busy=1;SBUF=dat;}voids_chars(unsignedcharn){for(j=0;jn;j++){uart_s(sdata[j]);}}voiduart_isr(void)__interrupt(4)__using(1){if(TI){TI=0;busy=0;}if(RI){RI=0;rdata[i]=SBUF;counter_times=0;if(rdata[0]==TOU){i++;if((irdata[2]-1||iMAX_LEN-1)i2){i=0;flag_r_ok=1;}}}}voiddeal_cmd(void){if(flag_r_ok==1){flag_r_ok=0;i=0;if(rdata[0]==TOUrdata[1]==ADDRESSrdata[2]==0x06rdata[3]==0x01){if(rdata[4]==0x01rdata[5]==0x01){LED1=0;flag_led1=1;}if(rdata[4]==0x01rdata[5]==0x00){LED1=1;flag_led1=0;}if(rdata[4]==0x02rdata[5]==0x01){LED2=0;flag_led2=1;}if(rdata[4]==0x02rdata[5]==0x00){LED2=1;flag_led2=0;}}if(rdata[0]==TOUrdata[1]==ADDRESSrdata[2]==0x05rdata[3]==0x02){sdata[0]=0xfa;sdata[1]=0x01;sdata[2]=0x06;sdata[3]=0x02;if(rdata[4]==0x01){sdata[4]=0x01;sdata[5]=flag_led1;s_chars(6);}if(rdata[4]==0x02){sdata[4]=0x02;sdata[5]=flag_led2;s_chars(6);}}rdata[0]=0;//s_chars(5);//LED1=!LED1;}}voidmain(void){P3M1=0;//00000000P3M0=0;//00000000P1M1=0;//00000000P1M0=2;//00000010BEEP(P1_1SET01)SW1(P1_2)BEEP=1;delay(90000);BEEP=0;delay(90000);BEEP=1;delay(90000);BEEP=0;delay(90000);BEEP=1;delay(90000);BEEP=0;delay(90000);BEEP=1;delay(90000);BEEP=0;delay(90000);UartInit();n1=0;n2=0;i=0;flag_r_ok=0;counter_times=0;sdata[0]=0x30;sdata[1]=0x31;sdata[2]=0x32;sdata[3]=0x33;sdata[4]=0x34;sdata[5]=0x35;sdata[6]=0x36;sdata[7]=0x37;sdata[8]=0x38;while(1){if(i0){counter_times++;if(counter_timesMAX_TIME_OUT){i=0;rdata[0]=0;counter_times=0;}}deal_cmd();}}



下一步进阶,将增加CRC校验到指令中。

最新文章