实验06·串口通信实验 座位号:37 09300720286 王梦硕
实验06·串口通信实验
王梦硕
09300720286
实验目的:
学会使用单片机的串行口。
实验原理:
1·概要: 串行通信是将数据按二进制形式,利用一条信号线一位一位顺序传送的通信。其优点是用于通信的线路少,因而特别适合远距离通信。同时,串行通信也常用于速度要求不高的近距离数据传送。要实现单片机间的串行通信,必须要利用相应的接口,该类接口就被称为串行接口。 MSC-51系列单片机内的串行接口是一个可编程的全双工串行通信接口,通过软件编程,既可作为通用异步接受和发射器UART,也可作为同步移位寄存器。其帧格式可有8位,10位或11位,并可以设置多种不同的波特率。
2·串行口的工作方式:
方式0(移位寄存器的输入输出方式): 该方式下,数据有RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。该方式多用于外接移位寄存器以扩展I/O端口,波特率固定为fosc/12。其输入输出时序如下图所示:
1 / 10
实验06·串口通信实验 座位号:37 09300720286 王梦硕
方式1(波特率可变10位异步通信方式) 该方式为标准的异步通信方式,其通信格式为:起始位1位,数据位8位,停止位1位。且工作在全双工方式下,以TXD为串行数据的发送端,以RXD为串行数据的接收端,波特率由定时器T1的溢出率和SMOD位的状态确定。其输入输出时序如下图所示:
方式2、3(11位异步通信方式) 方式2和方式3的操作过程与方式1基本相同,其输入输出时序如下图所示。他们的主要区别在于方式2和方式3有第九位数据,改为数据的主要作用是用作数据的奇偶校验位,活在多机通信中作为地址/数据的特征位,该数据保存在RB8(接收时)或TB8(发送时)中。
2 / 10
实验06·串口通信实验 座位号:37 09300720286 王梦硕
3·SBUF SBUF为串行接口接受/发送数据缓冲器(其映像字节地址为99H)。接收数据时,它是一个串入并出移位寄存器,执行一条读SBUF的指令,可读得接收到的8位数据;发送数据时,它是一个并入传出移位寄存器,由指令写入SBUF的数据将转换为串行数据发送出去。通过SBUF寄存器可以实现对串行数据的输入输出操作。
4·SCON
SCON是串行口控制寄存器,格式如上图所示,各位功能如下: a·SM0和SM1,选择串行口的工作方式。
b·SM2,主要用于多机通信中标明被选通的从机。 c·REN,允许串行接收位,通过软件置1或置0。
d·TB8、RB8,方式2、3下分别存放发送/接受数据的第9位。 e·TI,发送中断标志位,必须由软件清零。 f·RI,接收终端标志位,必须由软件清零。
5·PCON
PCON是电源控制寄存器(其映像字节为87H)。它主要是为CHMOS型单片机的电源控制而设置的专用寄存器。与串行口初始化编程相关的只有最高位,其格式及各位作用如上图所示。
6·串行口波特率的选择 方式1下:波特率 = fosc / 12; 方式2下:波特率 = (2^SMOD) x fosc / 64; 方式1、3下:波特率 = (2^SMOD) x 定时器T1的溢出率 / 64。
= (2^SMOD) x fosc / (32 x 12 x ( 2^8 – N ) )
3 / 10
实验06·串口通信实验 座位号:37 09300720286 王梦硕
7·串行通信结束的查询与中断 查询方式:
中断方式:
4 / 10
实验06·串口通信实验 座位号:37 09300720286 王梦硕
实验内容:
电原理图: 本实验两个部分的电原理图是一样的,不须改动。
1·编写程序,利用单片机的串口用查询方式发送英文字符的ASCII码,波特率为9600,在示波器上正确显示时序波形。
流程图: 这一部分是很简单的查询方式串行通信,流程图参考查询方式程序流程图(a)查询发送。
程序代码及注释: ORG 0000H LJMP MAIN ORG 00F0H MAIN: MOV SP, #60H ;给堆栈指针赋初值 MOV TMOD, #20H ;设置T1为方式2 MOV TH1, #0FDH ;设置波特率为9600 (256 – ( 11.0592e6) / (9600 x 32 x 12)) MOV TL1, #0FDH
MOV MOV
SCON, #50H PCON, #00H TR1
;设置串口位方式1 ;定时器1开始计数
;开始发送,发送字母为K(4BH)
SETB LOOP: MOV WAIT: JBC AJMP ; END
仿真效果:
5 / 10
SBUF, #4BH TI, LOOP WAIT