六、串口应用实例
当串行通信的硬件连接好后,要编写串行通信程序.串行通信的编程要点归纳如下:
(一)定好波特率
串行口的波特率有两种方式,分别为固定波特率和可变波特率.当使用可变波特率时,应先计算T1的计数初值,并对T1进行初始化;如使用固定波特率(方式0、方式2),则此波特率可省略.
(二)填写控制字
即对SCON寄存器设定工作方式,如果是接收程序或双工通信程序,需要置REN=1(允许接收),同时将TI,RI进行清零.
(三)串行通信可采用两种方式
查询方式和中断方式,TI和RI是一帧发送完否或一帧数据到齐否的标志,可以用于查询;如果设置允许中断,则可引起中断.
下面分别介绍2种方式的发送和接收过程:
1.查询方式发送程序:(先发后查)
发送一个数据→查询TI→发送下一个数据
2.查询方式接收程序:(先查后收)
查询RI→读入一个数据→查询RI→读下一个数据
3.中断方式发送程序:
发送一个数据→等待中断,在中断中再发送下一个数据.
4.中断方式接收程序:
等待中断,在中断中再接收一个数据.
两种方式中,当发送或接收数据后都要注意软件对TI或RI清零.
(1)查询方式.
【例4-1】在单片机内部数据存贮器20H~3FH单元中共有32个数据,要求采用方式1串行发送到另一单片机中,要求传送速率为1200波特,设fosc=12MHz.
图4-7 查询方式程序流程图
(2)中断法.
中断法对TI和SCON的初始化同查询法,不同的是要置位EA(中断总开关),置位ES(允许串行中断),中断方式的发送和接收的流程如图4-8、图4-9所示.
【例4-2】将例4-1用中断方式编程实现.
中断方式的初始化部分同查询方式,具体程序清单如下:
中断方式发送程序:
图4-8 中断方式发送程序
图4-9 中断方式接收程序
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。