No.70922 作者:yydnwt 邮件:yydnwt@tom.com ID:29815 登陆:2次 文章数:2篇 最后登陆IP:211.160.163.70 最后登陆:2005/1/21 11:33:46 注册:2005/1/10 16:07:25 财富:108 发帖时间:2005/1/10 16:26:57 发贴者IP:211.160.163.70 标题:yydnwt:兄弟们,麻烦你们看一下这个问题,我真的有太多的疑惑! 摘要:No.70922兄弟们,麻烦你们看一下这个问题,我真的有太多的疑惑! 刚刚开始学习单片机的C51编程,老师跟我出了一个串口编程的题目:把PC键盘上输入的字符通过串口传给单片机去处理,处理的方式很简单,就是把你原先输入的顺序倒过来,把它的逆序通过串口再传给PC。 我做了几个程序,用keil uvision2 编译仿真后都出现同样的结果(能够逆序输出、但是之后又不停的输出其它字符),百思不得其解,希望广大同仁能助我一臂之力,下面我把我写的两个程序贴出来,麻烦大家帮我分析一下错误,谢谢大家! (1) #include <reg51.h> unsigned char xdata i=0,j=0; unsigned char xdata input[50]; //把输入的字符存在这个数组里 bit read_flag=0; //为了控制输出的次数 serial() interrupt 4 using 1 { if (RI) { while (RI==0) ; RI=0; input[i]=SBUF; if (input[i]==0x20) //遇到空格键就开始向PC发送输入字符的逆 序 { j=i-1; //发送的时候不把最后输入的那个字符算在内 i=0; read_flag=1; } else { i++; } } } void send(unsigned char *tserial,unsigned int number) { unsigned int n; for (n=number;n> =0;n--) { SBUF=*(tserial+n); ......
>>返回讨论的主题
|