导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[yydnwt]兄弟们,麻烦你们看一下这个问题,我真的有



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);
   ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:16毫秒 最大:7276毫秒 查询6次