加100分 串口 TI中断问题
字体:
小
中
大 |
打印
发表于: 2008-7-21 17:23 作者: tssing 来源: proteus仿真社区
当RI发生时会进入....串口中断...
1.但是我想要TI发生时,,,进入串口中断,,,
2.TI是怎样发生...
我现在很乱,,没想好怎么问....
我想在51中做跟以下一样的东西....
跟visual basic mscomm的
CommEvent() 中的comEvSend一样...
我会加分,,请帮忙
[ 本帖最后由 tssing 于 2008-7-21 18:31 编辑 ]
最新回复
panhearii (2008-7-21 21:45:29)
直接用LJMP到串口的中断地址行不????
以上言论不负任何责任
hgjinwei (2008-7-21 22:16:34)
当 TI 和 RI 都开启时, 在中断服务程序判断标志位 TI 和 RI 即可执行想要执行的中断服务程序 ,
如果 TI = 1, 表示发送完毕中断, 同理 RI = 1 表示接收中断.
两个都等于一(很难遇上的) 表示两者都有效.
hgjinwei (2008-7-21 22:21:57)
tssing (2008-7-21 22:23:19)
你为什么懒得动脑
tssing (2008-7-21 22:24:07)
hgjinwei (2008-7-21 22:42:42)
hgjinwei (2008-7-21 22:45:41)
hgjinwei (2008-7-21 22:46:25)
hgjinwei (2008-7-21 22:56:28)
TI 是发送结束中断标志. 初始化串行口后, 在 TI 位为 0 的情况下, 将发送数据写入"发送缓冲器", 会立即启动串行发送过程 : 自动在数据位前插入起始位, 在数据位后插入停止位, 形成发送帧; 并按设定的波特率依次将起始位,数据位,停止位输出到发送引脚TXD上, 当发送完最后一个数据位时 TI 自动置 1 ,表明当前数据帧已经发送完毕.
摘自: <<新编单片机原理与应用>> 第二版 潘永雄 编著 西安电子科技大学出版社 2007年
第126页 第二段
tssing (2008-7-22 20:44:30)
fatqi (2008-7-23 21:12:28)
程序当中如果没有4楼所说的mov sbuf,a 这句发送指令,单片机系统不会进入发送过程,也就不会产生发送中断了。也就是说只有认为进行串口发送才会产生发送中断。
再有串口中断比较特殊,无论是串口接收还是发送都是使用同一个中断标志进入中断服务程序。要求程序自己判断是发送中断TI还是接收中断RI。这是单片机硬性规定的。
longten (2008-7-24 01:10:37)