C串行口.ppt
文本预览下载声明
8.1 串行数据通信概述 并行与串行通信 ⑵ 同步通信 同步通信用来对数据块进行传输,一个数据块中包含着许多连续的字符,在字符之间没有空闲。同步通信可以方便地实现某一通信协议要求的帧格式。 异步通信和同步通信的比较 (1)异步通信简单,双方时钟可允许一定误差。同步通信较复杂,双方时钟的允许误差较小。 (2)异步通信只适用于点-- 点,同步通信可用于点-- 多。 (3)通信效率:异步通信低,同步通信高。 8.2 80C51串行口及控制8.2.1 80C51串行口结构? 8.2.2 80C51串行口控制 串行接口输入/输出引脚:TXD(P3.1)、RXD(P3.0)按不同方式,一帧位数 8/10/11发送/接收时,数据皆低位在前。 8.3 串行口的工作方式8.3.1 串行口方式0 — 同步移位寄存器方式 串行口工作方式0工作原理图 串行口方式1接收工作原理图 8.4 多处理机通信方式 8.5 串行口的应用 8.5.1 串行口的波特率发生器及波特率计算 常用波特率查询表 8-5-2 串行口的应用 (一) 串行口初始化编程格式: SIO:MOV SCON,#控制状态字 ;写方式字且 ;TI=RI=0 (MOV PCON,#80H) ;波特率加倍 ( MOV TMOD,#20H ) ;T1作波特率发生器 ( MOV TH1,#X ) ;选定波特率 ( MOV TL1,#X ) ( SETB TR1) ( SETB EA) ;开串行口中断 ( SETB ES) 一般发送程序:先发送一个字符,等待TI=1后再发送下一个字符。 1.查询方式: TRAM: MOV A,@R0 ;取数据 MOV SBUF,A ;发送一个字符 WAIT: JBC TI,NEXT ;等待发送结束 SJMP WAIT NEXT: INC R0 ;准备下一次发送 SJMP TRAM 一般接收程序:REN=1、RI=0等待接收,当RI=1,从SBUF读取数据。 1.查询方式: WAIT: JBC RI,NEXT ;查询等待 SJMP WAIT NEXT: MOV A,SBUF ;读取接收数据 MOV @R0,A ;保存数据 INC R0 ;准备下一次接收 SJMP WAIT ORG 0023H ;串行口中断入口 AJMP TRANI TRANI: PUSH A ;保护现场 PUSH PSW CLR TI ;清发送结束标志 DJNZ R7,NEXT ;是否发送完? CLR ES ;发送完,关闭串行口中断 SJMP TEND NEXT: INC R0 ;未发送完,修改指针 MOV A,@R0 ;取下一个字符 MOV C,P ;加奇偶校验 MOV TB8,C MOV SBUF,A ;发送一个字符 POP PSW ;恢复现场 POP A TEND: RETI ;中断返回 2. 接收程序:串行输入16个字符,存入片内RAM的50H起始单元,串行口波特率为2400(设晶振为11.0592MHz),。 RECS: MOV SCON,#50H ;串行口方式1允许接收 MOV TMOD,#20H ;T1方式2定时 MOV TL1,#0F4H ;写入T1时间常数 MOV TH1,#0F4H SETB TR1 ;启动T1 MOV R0,#50H ;设数据指针 MOV R7,#10H ;接收数据长度 WAIT: JBC RI,NEXT ;等待串行口接收 SJMP WAIT NEXT: MOV A,SBUF ;读取接收字符 MOV @R0,A ;保存一个字符 INC R0 ;修改指针 DJNZ R7,WAIT ;全部字符接收完? RET 3. 接收程序:串行输入16个字符,进行奇偶校验。 74LS164/74LS165功能表 图8–1 80C51串行口结构图 图8–2 串行口工作方式0工作原理图 图8–4 串行口方式1接收
显示全部