89C52串口中断程序,两个地方不明白,请各位大哥大姐给指导

[复制链接]
3868|6
 楼主| ccjchen 发表于 2007-6-28 19:54 | 显示全部楼层 |阅读模式
89C52串口中断程序,有两个地方不明白,请各位大哥大姐给指导一下:我将ADC0816采集进来的数据放在一个数组中(ad[16]),要把它发送到计算机,下面是我编写的中断程序:<br />serial()&nbsp;&nbsp;interrupt&nbsp;4&nbsp;&nbsp;using&nbsp;3<br />{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(TI)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TI=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SBUF=ad[num];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(num==16)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />}<br />一、我的中断程序很简单,但是我看到书上和网上要用到什么循环数组,接收缓冲区,发送缓冲区,满、空等标志,可是我的就没有啊,大家看看下面这个程序,请各位大哥大姐能不能给我介绍一下编程思想好吗?不懂它是什么意思http://www.mcublog.com/blog/user1/10383/archives/2006/17272.html<br />二、我如果想对我的程序做校验来验证是否发送正确应该怎么办呢?就是校验程序应该怎么写呢?
focus_fcs 发表于 2007-6-28 23:28 | 显示全部楼层

检测

用串口线接到PC上就可以看到你发送的数据。
 楼主| ccjchen 发表于 2007-6-29 08:15 | 显示全部楼层

我的意思是说奇偶校验啊

  
HQGBOY 发表于 2007-6-29 11:00 | 显示全部楼层

先发一个看看.在循环发.

  
ayb_ice 发表于 2007-6-30 16:59 | 显示全部楼层

这个程序思路有问题...

一旦进入中断,一直不停的发送数据...
lbx_00 发表于 2007-7-1 20:23 | 显示全部楼层

发送是主动的,为什么要用中断

  
gouki_s 发表于 2007-7-1 21:35 | 显示全部楼层

1111

用循环数组之类的,是为了通用考虑,因为很多通信协议,一个数据包长度都会很大。你不用循环数组,就必须开一个最大长度的空间。<br />如果只是用自己定的协议,也无所谓。<br /><br />至于用中断发送,是为了不占用cpu。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

175

主题

446

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部