第七章89C51串行通信及应用.ppt
文本预览下载声明
7 串行口;7 串行口;3;9.3 串行口;9.3 串行口;异步通信数据格式;9.3 串行口;9.3 串行口;9.3 串行口;9.3 串行口;9.3 串行口;串行通信中的数据传送方式; 串行口内部结构示意简图;7.1 与串行口有关的特殊功能寄存器;7.1 与串行口有关的特殊功能寄存器;串行口控制寄存器SCON;7.1 与串行口有关的特殊功能寄存器;7.1 与串行口有关的特殊功能寄存器;7.1 与串行口有关的特殊功能寄存器;7.2 串行口的工作方式;方式0 :移位寄存器输入/输出方式(同步)
可外接移位寄存器以扩展I/O口,也可以外接同步输入/输出设备。8位串行数据是从RXD输入或输出,TXD用来输出同步脉冲。
输出串行数据从RXD引脚输出,TXD引脚输出移位脉冲。CPU将数据写入发送寄存器时,立即启动发送,将8位数据以fos/12的固定波特率从RXD输出,低位在前,高位在后。发送完一帧数据后,发送中断标志TI由硬件置位。
输入串行数据从RXD引脚输入,先置位允许接收控制位REN。此时,RXD为串行数据输入端,TXD仍为同步脉冲移位输出端。当(RI)=0和(REN)=1同时满足时,开始接收。当接收到第8位数据时,将数据移入接收寄存器,并由硬件置位RI。;7.2 串行口的工作方式;7.2 串行口的工作方式;7.2 串行口的工作方式;7.3 串行口初始化;7.3 串行口初始化;7.3 串行口初始化;7.3 串行口初始化;7.4 串行通信应用;7.4 串行通信应用;9.3.4 串行通信应用;9.3.4 串行通信应用;9.3.4 串行通信应用;例7-4:89C51串行口按双工方式收发ASCII字符,最高位用来作奇偶校验位,采用可校验方式,要求传送的波特率为1200b/s。编写有关的通信程序。
解:7位ASCII码加1位奇校验共8位数据,故可采用串行口方式1。
89C51单片机的奇偶校验位P是当累加器A中1的数目为奇数时,P=1。如果直接把P的值放入ASCII码的最高位,恰好成了奇偶校验,与要求不符。因此,要把P的值取反以后放入ASCII码最高位,才是要求的奇校验。; 双工通信要求收、发能同时进行。实际上,收、发操作主要是在串行接口进行,CPU只是把数据从接收缓冲器读出和把数据写入发送缓冲器。数据传送用中断方式进行,响应中断以后,通过检测是RI置位还是TI置位来决定CPU是进行发送操作还是接收操作。发送和接收都通过调用子程序来完成,设发送数据区的首地址为20H,接收数据区的首地址为40H,fosc为6MHz,通过查波特率初值(表7-2)可知定时器的初装值为F3H。定时器T1采用工作模式2,可以避免计数溢出后用软件重装定时初值的工作。;程序清单:
主程序
MOV TMOD ,#20H ;定时器1设为模式2
MOV TL1 , #0F3H ;定时器初值
MOV TH1 ,#0F3H ;8位重装值
SETB TR1 ;启动定时器1
MOV SCON ,#50H ;设置为方式1,
;REN=1
MOV R0 ,#20H ;发送数据区首址
MOV R1 ,#40H ;接收数据取首址
ACALL SOUT ;先输出一个字符
SETB ES
SETB EA
SJMP $ ;等待中断
;发送子程序
SOUT: CLR TI
MOV A ,@R0 ;取发送数据到A
MOV C ,P ;奇偶标识赋予C
CPL C ;奇校验
INC R0 ;修改发送数据指针
MOV SBUF ,A ;发送ASCII码
RET ;返回
;例7-5:采用查询方式由串行口发送带奇偶校验位的数据块。
解:由内部RAM单元20H-3FH取出ASCII码数据,在最高位上加奇偶校验位后由串行口发出。采用8位异步通信方式,波特率为1200b/s,fosc=11.059MHz。
由要求可知,应把串行口设置为方式1,采用定时器1模式2作为波特率发生器,预置值(TH1)=0E8H。;程序清单:
主程序;
MOV
显示全部