串行通讯接收数据手法 点击:968 | 回复:9



猎隼

    
  • 精华:1帖
  • 求助:1帖
  • 帖子:151帖 | 1661回
  • 年度积分:0
  • 历史总积分:8983
  • 注册:2005年9月28日
发表于:2007-01-08 20:17:00
楼主
请教各位高手,我在51单片机中有一段通过串行口接收数据的程序段,请各位帮我分析一下这段程序有没有什么好的编程方法比这段效率高,且占用系统资源少,本人是一个初学者。
#include<at89x51.h>
#include<stdio.h>
char IND[13];
void main()
{
SCON=0x50;
TMOD=0x20;
TCON=0x40;
TH1=0xfd;
T1=1;
TR1=1;
while(1)
{if(RI==1) scanf("%S",&IND);
}
}



猎隼

  • 精华:1帖
  • 求助:1帖
  • 帖子:151帖 | 1661回
  • 年度积分:0
  • 历史总积分:8983
  • 注册:2005年9月28日
发表于:2007-01-09 19:34:00
1楼
有没有比这种方法时效性更佳的通讯代码,我所做的程序不光要通过通讯口接收数据,还要动态的在三块7段数码管上显示,这就造成了这两个部分的互相竞争,而造成单片机的暂时性停顿,而且单片机CPU的使用率几乎为100%。
有好的办法的话希望指出,先谢谢了。

NEWBRIDGE

  • 精华:0帖
  • 求助:0帖
  • 帖子:20帖 | 650回
  • 年度积分:0
  • 历史总积分:1212
  • 注册:2005年3月05日
发表于:2007-02-28 12:38:00
2楼
我是门外汉。不过我猜,用双系统是个好方法,一个处理显示,一个处理通讯

想起时正是忘记

  • 精华:0帖
  • 求助:0帖
  • 帖子:42帖 | 1651回
  • 年度积分:0
  • 历史总积分:1960
  • 注册:2007年1月26日
发表于:2007-02-28 14:28:00
3楼
对于普通单片机,如果不睡眠节电,本身它就是需要不间断运转的。

  数码管显示一般输出用锁存就节省软件资源了。

周公

  • 精华:10帖
  • 求助:0帖
  • 帖子:119帖 | 5549回
  • 年度积分:0
  • 历史总积分:6446
  • 注册:2002年11月26日
发表于:2007-03-01 14:47:00
4楼
加大显示的驱动电流、缩短时间。或者把通讯程序设置成高优先级就可以了。

猎隼

  • 精华:1帖
  • 求助:1帖
  • 帖子:151帖 | 1661回
  • 年度积分:0
  • 历史总积分:8983
  • 注册:2005年9月28日
发表于:2007-03-03 19:20:00
5楼
用我所写上去的这种编程方法可行吗?
8255有没有锁存的功能?
增加驱动功率就可以加快显示的频率吗?

想起时正是忘记

  • 精华:0帖
  • 求助:0帖
  • 帖子:42帖 | 1651回
  • 年度积分:0
  • 历史总积分:1960
  • 注册:2007年1月26日
发表于:2007-03-04 11:28:00
6楼
节约主循环的代码,通讯用了中断,不必在主循环中轮询。

  增大驱动电流会使你的数码管更亮,在同样的扫描周期下,考虑视觉暂留和电流的平均值,对于显示效果会有一定帮助。

  问题的根本可能在于你的通讯处理程序过于冗长低效,有可能100mS级以上,会让人感觉有时显示顿停。考虑一下优化程序。
  如果优化之后仍然不行,锁存还是最简捷有效的方法。如果你软件水平高,也可以不变硬件,在软件上做分时多任务。

猎隼

  • 精华:1帖
  • 求助:1帖
  • 帖子:151帖 | 1661回
  • 年度积分:0
  • 历史总积分:8983
  • 注册:2005年9月28日
发表于:2007-03-04 12:58:00
7楼
谢谢你帮我分析,我的软件水平还是有一定的差距的,书是看了不少,但却联系不到实际,说白了就是不会用,看看得多看看这方面的实例了。

andy fau

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 262回
  • 年度积分:0
  • 历史总积分:604
  • 注册:2006年3月21日
发表于:2008-06-06 16:23:31
8楼

通讯的例子我还没有做过,要是有更系统性的代码就好了!

沙漠的风雨

  • 精华:0帖
  • 求助:0帖
  • 帖子:24帖 | 461回
  • 年度积分:0
  • 历史总积分:1069
  • 注册:2003年10月23日
发表于:2008-06-14 14:10:54
9楼

这帖子太早了, 用中断方式接收数据


热门招聘
相关主题

官方公众号

智造工程师