51单片机串行通信程序的设计及调试
[09-14 01:26:53] 来源:http://www.88dzw.com 电子制作 阅读:8619次
文章摘要:在很多应用场合下,我们都希望单片机应用系统能够与其它系统(计算机、PLC或另一个单片机应用系统)进行通信,51单片机内部集成了一个异步串行通信口(UART),应用这个UART,我们可以很方便地与一切具有UART接口的其它系统进行通信。要在两个不同的系统中进行通信,必须保证它们具有相同的通信协议和相同的波特率,而且能够按照通信的协议发送和接收数据,为此需要设计串行通信程序。1.51单片机的UART接口 51单片机的UART接口是一个全双工的串行接口,它能同时发送和接收数据。51单片机的UART接口有4种工作方式,需要通过对特殊功能寄存器SCON的设置来定义串行口的操作方式和控制它的某
51单片机串行通信程序的设计及调试,标签:电子小制作,http://www.88dzw.com在很多应用场合下,我们都希望单片机应用系统能够与其它系统(计算机、PLC或另一个单片机应用系统)进行通信,51单片机内部集成了一个异步串行通信口(UART),应用这个UART,我们可以很方便地与一切具有UART接口的其它系统进行通信。
要在两个不同的系统中进行通信,必须保证它们具有相同的通信协议和相同的波特率,而且能够按照通信的协议发送和接收数据,为此需要设计串行通信程序。
1.51单片机的UART接口
51单片机的UART接口是一个全双工的串行接口,它能同时发送和接收数据。51单片机的UART接口有4种工作方式,需要通过对特殊功能寄存器SCON的设置来定义串行口的操作方式和控制它的某些功能。
SM0 SM1=00为移位寄存器方式(串行口工作方式0),SM0SM1=01为8位UART方式(串行口工作方式1),SM0 SM1=10为9位UART方式(串行口工作方式2),SM0SM1=11为9位UART方式(串行口工作方式3)。
不同的工作方式还具有不同的波特率,串行口以方式0工作时,波特率固定为振荡器频率的1/12。为方式2时波特率为振荡器频率的l/64或1/32。它取决于特殊功能寄存器PEON中的SMOD位的状态。如果SMOD=0(复位时SMOD=0),波特率为振荡器频率的1/64。如果SMOD=1,波特率为振荡器频率的1/32。
方式1和3的波特率由定时器1的溢出率所决定。当定时器1作波特率发生器时,波特率由下式确定:
波特率=(定时器l溢出率)/n式中:定时器1溢出率=定耐器1的溢出次数/秒,n为32或16,取决于特殊功能寄存器PCON中的SMOD位的状态,若SMOD=0,则n=32,若SMOD=1,则n=16。
对于定时器的不同工作方式,得到的波特率的范围是不一样的,这主要由定时器1的计数位数不同所决定。
2、串行通信程序的设计要素
51单片机串行通信程序的设计包括4项基本内容:
◆初始化程序
通过对特殊功能寄存器SOON和PEON的设置,来选择串行口的工作方式,设置通信的波特率。如果通信采用中断方式,则还要对中断系统进行设置。
◆发送数据的程序
51单片机串行口发送数据的条件是串行口已准备好,此时标志位TI的状态为“1”,串行口发送数据的方法很简单,只要由一条写SBUF指令(例:MOV SBUF,A)将待发数据传送到发送数据缓冲器SBUF,即启动一次发送。
◆接收数据的程序
51单片机串行口接收数据的条件是SOON中的REN为“1”,接收时,在接收控制逻辑的作用下,按确定的波特率进行移位操作。将RXD脚输入的状态逐位移入移位寄存器中,待接收完一个字节的数据后,自动将其并行地装入接收缓冲寄存器SBUF中,同时将SCON中的RI置“1”。标志位RI的状态为“1”,表明串行口已经收到一个字节的数据,此时用一条读SBUF指令(例:MOV A,SBUF)即可取得收到的数据。
◆通信控制程序
用来控制发送与接收的进行,一般将其融合在收发程序中。
3、初始化程序的设计
在51汇编集成开发环境下,初始化程序的设计可以借助于其中的辅助工具很方便地完成。从[辅助工具]-[初始化设置]-[波特率设置]我们可以打开这个辅助工具(见图3)。
你只要设置好晶振频率;选择工作方式1或工作方式夏设定好所需的波特率,就自动地选择好了定时器l的工作方式,计算出了初值,并给出了参考的初始化程序。你只要将这个参考程序复制到你的应用程序中就可以了。
- 上一篇:用无磁变压器制作去硫化充电器
《51单片机串行通信程序的设计及调试》相关文章
- › 51单片机教程
- › 用AT89C2051单片机制作八路定时自控电路
- › 51单片机串行通信程序的设计及调试
- › 用AT89C51单片机的LED汉字显示屏设计与制作
- › 基于AT89C2051单片机的电子温度计
- › MAX813L工作原理及其在51单片机系统抗干扰中的应用
- 在百度中搜索相关文章:51单片机串行通信程序的设计及调试
- 在谷歌中搜索相关文章:51单片机串行通信程序的设计及调试
- 在soso中搜索相关文章:51单片机串行通信程序的设计及调试
- 在搜狗中搜索相关文章:51单片机串行通信程序的设计及调试
编辑推荐
- · 自制教室照明节电控制器
- · 双色音乐彩灯的制作
- · 三相交流电机缺相保护器
- · 声光控节能灯的制作
- · 同线电话转呼及互通器电路
- · 超低频信号发生器的制作
- · 自制热转印电路板
- · 警笛发声生器电路
- · 一款节能电路
- · 利用太阳能充电的旅行充电器