#include #include #define uchar unsigned char #define uint unsigned int uchar tang[20]="woshitangqun"; uint i,j;uint count=0; uchar temp,qun,bao,m,n; void t();void a(); void main() {j=0; TMOD=0x20; TH1=0xfd; TL1=0xfd; SM0=0;SM1=1; ET0=1; TR1=1;ES=1; REN=1; while(1) { if(j==0) //单片机问候,向电脑发送一个字符串,表示单片机已经准备好工作了 { for(i=0;i<20;) { SBUF=tang[i]; while(TI==0); i++; TI=0; j++; } } t(); } } void t() { while(RI==0); RI=0; if(SBUF=='s') { /* SBUF='s'; while(TI==0); TI=0;*/ while(RI==0);RI=0; if(SBUF=='s')a(); //调用a(),是为了解决ssstart和sstart的问题 if(SBUF=='t') { /*SBUF='t'; //发送到屏幕 while(TI==0);TI=0;*/ while(RI==0);RI=0; if(SBUF=='a') { /*SBUF='a'; //发送到屏幕 while(TI==0); TI=0;*/ while(RI==0);RI=0; //接收字符,并用下面的if语句判断 if(SBUF=='r') { /*SBUF='r'; //发送到屏幕,如果想要讲命令显示在屏幕上的话,就可以将这一句用上 while(TI==0);TI=0;*/ while(RI==0);RI=0; if(SBUF=='t') { /*SBUF='t'; //发送到屏幕 while(TI==0);TI=0;*/ while(1) {n=0; while(RI==0);RI=0;temp=SBUF; //接收一个字符,赋值给temp; if(SBUF=='e') //判断是否是e,若否则用else输出,是则近入if语句 { while(RI==0) {for(m=0;m<100;m++);count++;} RI=0; //若传输完毕,则给RI赋值, bao=SBUF; //把传入的值赋给bao #include #include #define uchar unsigned char #define uint unsigned int uchar tang[20]="woshitangqun"; uint i,j;uint count=0; uchar temp,qun,bao,m,n; void t();void a(); void main() {j=0; TMOD=0x20; TH1=0xfd; TL1=0xfd; SM0=0;SM1=1; ET0=1; TR1=1;ES=1; REN=1; while(1) { if(j==0) { for(i=0;i<20;) { SBUF=tang[i]; while(TI==0); i++; TI=0; j++; } } t(); } } void t() { while(RI==0); RI=0; if(SBUF=='s') { /* SBUF='s'; while(TI==0); TI=0;*/ while(RI==0);RI=0; if(SBUF=='s')a(); if(SBUF=='t') { /*SBUF='t'; //发送到屏幕 while(TI==0);TI=0;*/ while(RI==0);RI=0; if(SBUF=='a') { /*SBUF='a'; //发送到屏幕 while(TI==0); TI=0;*/ while(RI==0);RI=0; if(SBUF=='r') { /*SBUF='r'; //发送到屏幕 while(TI==0);TI=0;*/ while(RI==0);RI=0; if(SBUF=='t') { /*SBUF='t'; //发送到屏幕 while(TI==0);TI=0;*/ while(1) {n=0; while(RI==0);RI=0;temp=SBUF; //接收一个字符,赋值给temp; if(SBUF=='e') //判断是否是e,若否则用else输出,是则近入if语句 { while(RI==0) RI=0; //若传输完毕,则给RI软件清零, bao=SBUF; //把传入的值赋给bao while(SBUF=='n') //判断第二个字符是否是 RI=0; qun=SBUF; if(SBUF=='d') {; break; }else{SBUF='e';while(TI==0);TI=0;SBUF='n';while(TI==0);TI=0;SBUF=qun;while(TI==0);TI=0;} }else{SBUF='e';while(TI==0);TI=0;SBUF=bao;while(TI==0);TI=0;} }else{ SBUF=temp;while(TI==0);TI=0;} } } } } } } } void a() { if(SBUF=='s') { /* SBUF='s'; while(TI==0); TI=0;*/ while(RI==0);RI=0; if(SBUF=='s')a(); //递归调用,重复使用a() if(SBUF=='t') { /*SBUF='t'; //发送到屏幕 while(TI==0);TI=0;*/ while(RI==0);RI=0; if(SBUF=='a') { /*SBUF='a'; //发送到屏幕 while(TI==0); TI=0;*/ while(RI==0);RI=0; if(SBUF=='r') { /*SBUF='r'; //发送到屏幕 while(TI==0);TI=0;*/ while(RI==0);RI=0; if(SBUF=='t') { /*SBUF='t'; //发送到屏幕 while(TI==0);TI=0;*/ while(1) { while(RI==0);RI=0; if(SBUF=='e') { while(RI==0);RI=0; bao=SBUF; if(SBUF=='n') { while(RI==0);RI=0; qun=SBUF; if(SBUF=='d') { //SBUF='d';while(TI==0);TI=0; break; }else{SBUF='e';while(TI==0);TI=0;SBUF='n';while(TI==0);TI=0;SBUF=qun;while(TI==0);TI=0;} }else{SBUF='e';while(TI==0);TI=0;SBUF=bao;while(TI==0);TI=0;} } temp=SBUF; SBUF=temp; while(TI==0); TI=0; } } } } } } } (SBUF=='n') //判断第二个字符是否是 { RI=0; qun=SBUF; if(SBUF=='d') {n++; break; }else{SBUF='e';while(TI==0);TI=0;SBUF='n';while(TI==0);TI=0;SBUF=qun;while(TI==0);TI=0;} }else{SBUF='e';while(TI==0);TI=0;SBUF=bao;while(TI==0);TI=0;} }else{ SBUF=temp;while(TI==0);TI=0;} } } } } } } } void a() { if(SBUF=='s') { /* SBUF='s'; //此行可以将字符输出到屏幕 while(TI==0); TI=0;*/ while(RI==0);RI=0; if(SBUF=='s')a(); if(SBUF=='t') { /*SBUF='t'; //发送到屏幕 while(TI==0);TI=0;*/ while(RI==0);RI=0; if(SBUF=='a') { /*SBUF='a'; //发送到屏幕 while(TI==0); TI=0;*/ while(RI==0);RI=0; if(SBUF=='r') { /*SBUF='r'; //发送到屏幕 while(TI==0);TI=0;*/ while(RI==0);RI=0; if(SBUF=='t') { /*SBUF='t'; //发送到屏幕 while(TI==0);TI=0;*/ while(1) { while(RI==0);RI=0; if(SBUF=='e') { while(RI==0);RI=0; bao=SBUF; if(SBUF=='n') { while(RI==0);RI=0; qun=SBUF; if(SBUF=='d') { break; }else{SBUF='e';while(TI==0);TI=0;SBUF='n';while(TI==0);TI=0;SBUF=qun;while(TI==0);TI=0;} }else{SBUF='e';while(TI==0);TI=0;SBUF=bao;while(TI==0);TI=0;} }else{temp=SBUF;SBUF=temp;while(TI==0);TI=0} } } } } } } } }