首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

关于51单片机串行中断的初学者级有关问题

2013-03-04 
关于51单片机串行中断的菜鸟级问题!中断标志TI和RI需要软件置0,但在进行怎样的操作后会被置1呢?还有就是串

关于51单片机串行中断的菜鸟级问题!
中断标志TI和RI需要软件置0,但在进行怎样的操作后会被置1呢?

还有就是串行通信的两台机子波特率是否要相同?

谢谢!!
[解决办法]
在发送成功 或接受成功后TI或 RI会被置1
波特率必须相同
[解决办法]
是的,这个是硬件自动置位的。
波特率必需相同才能保证正常通信,你用什么速度发,我就用什么样的速度接收。
[解决办法]
波特率可以不完全相同,有个误差范围,一般不超过3%的,因为你的使用的晶振加上一些分频后,可能不会刚好是常见的9600的整数倍。
 中断标志一般都是中断触发了,就由硬件置1啊,如果执行完中断服务,自然就会由硬件清零了
[解决办法]
从发起MOV SBUF,#03H 到TI被置位,有个较大的时间差,依波特率大小,费时不同,超始位、8个数据位、TB8,停止位,全部完成时才置位TI,波特率越低,这个时间就越长
TI不会被硬软件自动清零,必需由软件主动清(一般在中断函数里),当收到一个串口字节时RI被硬件置位,它也不被硬件自动清零,接收数据后也必需由软件主动清零.

热点排行