首页 > 范文大全 > 正文

基于单片机的串口调试方法与技术

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于单片机的串口调试方法与技术范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

一、89C51单片机的串行接口结构

89C51单片机通过引脚RXD(P3.0,串行数据接收端)和引脚TXD(P3.1,串行数据发送端)与外界通讯。SBUF是串行口缓冲寄存器,包括发送寄存器和接收寄存器。它们有相同名字和地址空间,但不会出现冲突,因为它们其中一个只能被CPU读出数据,另一个只能被CPU写入数据。

二、串行口的控制与状态寄存器

SCON用于定义串行口的工作方式及实施接收和发送控制。其各位定义如表1:

SM2:多机通讯控制位。本文不使用,编程时置0即可。

REN:接收允许控制位。由软件置位以允许接收,又由软件清0来禁止接收。

TB8:要发送数据的第9位。可约定作为奇偶校验位。

RB8:接收到的数据的第9位。在方式0中不使用RB8。在方式1中,若SM2=0,其为接收到的停止位。

TI:发送中断标志。在方式0中,第8位发送结束时,由硬件置位。在其它方式的发送停止位前,由硬件置位。必须用软件清0。

RI:接收中断标志位。在方式0,当接收完第8位数据后,由硬件置位。在其它方式中,在接收到停止位的中间时刻由硬件置位。RI也必须用软件清0。

1:方式1,3波特率=定时器1溢出率/16;方式2波特率为Fosc/32。

0:方式1,3波特率=定时器1溢出率/32;方式2波特率为Fosc/64

四种工作方式分别为方式0、方式1、方式2、方式3:

(1)方式0为移位寄存器输入/输出方式。(2)方式1为波特率可变的10位异步通讯接口方式。(3)方式2为固定波特率的11位异步通讯接口方式。(4)方式3为波特率可变的11位异步通讯接口方式。

三、波特率的选择

在串行通讯中,收发双方的数据传送率(波特率)要有一定的约定。在89C51串行口的四种工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可变的,由定时器T1的溢出率控制。

A、方式0:波特率固定为晶振频率的1/12。B、方式2:波特率由PCON中的选择位SMOD来决定:SMOD=1:波特率为1/32fosc,SMOD=0:波特率为1/64fosc。C、方式1和方式3:定时器T1作为波特率发生器,其公式如下:波特率=定时器T1溢出率乘2的SMOD次方除以32;T1溢出率=T1计数率/产生溢出所需的周期数。当时钟频率选用11.0592MHZ时,容易获得标准的波特率,所以很多单片机系统选用这个频率的晶振。

四、串口调试实验

我们首先要做的是串口的初始化:(1)确定定时器1的工作方式―――编程TMOD寄存器;(2)计算定时器1的初值―――装载TH1,TL1;(3)启动定时器1―――编程TCON中的TR1位;(4)确定串行口的工作方式―――编程SCON;(5)串行口在中断方式工作时,须开CPU和源中断―――编程IE寄存器。

初始化以后就进行串口与PC机的通讯实验,本实验是在PC端向单片机发送数据,然后单片机把PC发送的数据送回PC端,同时单片机控制一个led灯闪烁。这里我们使用基于VC++编写的PC端串口工具来完成调试。

五、结束语

串口通信因简单高效而得到了广泛的应用,本文介绍了89C51单片机串口通信原理,对其内部结构如串行口控制寄存器SCON和电源控制寄存器PCON进行了详细剖析,研究了4种工作方式下的波特率选择问题,最后进行了实际的RS232串口通信实验,利用中断方式灵活地实现了单片机与PC机的串口通信。