单片机串口通信及测控应用实战详解
6.2.1 使用查询方式C51程序设计
串口在发送数据和接收数据完成时均会引起串口中断,从而使接收标志位RI和发送标志位TI置1。查询方式和中断方式的区别就在于CPU查看RI和TI方式不同,以及处理数据的效率不同。
查询方式是指通过CPU定时的查询SCON串口控制寄存器中的接收标志位RI和发送标志位TI来接收和发送数据。此种方式下,当串口发送数据或接收数据完成时,仅仅将相应的标志位置1 而不会以任何形式通知主程序。主程序只能通过定时查询发现标志位状态的改变,从而进行相应的处理,如标志位的清0。这种方式下数据的发送和接收是半双工的,占用CPU时间长,工作效率低。
中断方式是在接收和发送数据时,CPU不必连续地查询接收标志位RI和发送标志位TI。当串口发送数据或接收数据完成时,CPU自动转入中断服务程序对接收到的数据进行处理,只需要在中断服务程序中通过查看是RI还是TI来判断数据是接收还是发送,从而跳转至相应的处理部分。这种方式下可以实现全双工通信,CPU可以腾出时间处理其他任务,效率高,速度快。

查询方式通信流程:当串口接收到数据时,硬件系统将RI置1。在主程序中当CPU首次查询到RI = 1时,首先判断接收的首字节是否为本机地址,如果不是则将接收缓冲区里的数据清0返回重新查询接收;如果是则驱动继电器动作、通过数码管显示数据和地址,并将数据返回给上位机;然后继续下一次循环。
各个单片机开发板C51程序基本相同,只是地址不同,在常量声明“#define”语句中体现。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !