题目::以2400bps从计算机发送任一字节数据,当单片机收到该数据后,在此数据前加上一序号然后连同此数据一起发送至计算机,当序号超过255时归零。求哪位大侠指点一下……我的程序是这样的:
#include<reg52.h> unsigned char flag,a; unsigned char num=0; void main() { TMOD=0x20; TH1=0xF4; TL1=0xF4; TR1=1; SCON=0x50; EA=1; ES=1; while(1) { if(flag==1) { ES=0; flag=0; num++; if(num==255) num=0; SBUF=num; while(!TI); TI=0; SBUF=a; while(!TI); TI=0; ES=1; } } } void ser() interrupt 4 { RI=0; a=SBUF; flag=1; }
如果采用16进制发送时,虽然可以,但是不能将序号与发到单片机上的数据连在一起,如果不采用十六进制发送的话,将会产生乱码!
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |