第6章80C51单片机的串行口课件_第1页
第6章80C51单片机的串行口课件_第2页
第6章80C51单片机的串行口课件_第3页
第6章80C51单片机的串行口课件_第4页
第6章80C51单片机的串行口课件_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2023/7/231第6章80C51单片机的串行口计算机串行通信基础6.180C51单片机的串行口6.280C51单片机的串行口应用6.32023/7/2326.1计算机串行通信基础通信:并行通信与串行通信

并行通信特点:传送控制简单、速度快,但传输线较多,成本高。2023/7/233

串行通信特点:传送控制复杂、速度慢,传输线少,成本低。2023/7/234异步通信与同步通信收、发设备时钟独立,以字符(帧)为单位传输。

6.1.1串行通信的基本概念异步通信

2023/7/235

异步通信帧格式起始位(1位);数据位(8位);奇偶校验位(1位,可无校验位);停止位(1位)。

特点易于实现效率不高同步通信(发、收时钟直接连接,效率高。板内元件间的SPI接口)

2023/7/236串行通信的传输方向单工

半双工

全双工80C51有1个全双工串行口

2023/7/237信号的调制与解调DTE:数据终端设备DCE:数据通信设备调制解调器调制解调2023/7/238串行通信的错误校验奇偶校验

发送字符:数据位尾随1位奇偶校验位(1或0)。奇校验时,数据中“1”的个数与校验位“1”的个数之和应为奇数;偶校验时,数据中“1”的个数与校验位“1”的个数之和应为偶数。接收字符:对“1”的个数进行校验,若发现不一致,则说明传输数据过程中出现了差错。

2023/7/239代码和校验

发送方将所发数据块求和(或各字节异或),产生的校验和字节附加到数据块的末尾。接收方在接收数据时要对数据块(除校验字节外)求和(或各字节异或),将所得的结果与收到的“校验和”进行比较,相符则无差错,否则就认为传送过程出现了差错。2023/7/2310传输速率与传输距离传输速率比特率:每秒钟传送的信息量。单位:位/秒(bps)波特率:每秒钟传送码元数目,单位:波特(Baud)

基带传输(每个码元带有“1”或“0”这1bit信息,传码率与传信率相同),波特率和比特率是相同的。

常用波特率为:2400、4800、9600、14.4K、19.2K等

传输距离与传输速率的关系传输距离随波特率的增加而减小。2023/7/23116.1.2串行通信接口标准RS-232C定义的是DTE与DCE间的接口标准。机械特性DB-25连接器DB-9连接器2023/7/2312功能特性插针序号信号名称功能信号方向1

PGND保护接地

2(3)TXD发送数据(串行输出)DTE→DCE

3(2)RXD接收数据(串行输入)DTE←DCE

4(7)RTS请求发送DTE→DCE

5(8)CTS允许发送DTE←DCE

6(6)DSRDCE就绪(数据建立就绪)DTE←DCE

7(5)

SGND信号接地

8(1)DCD载波检测DTE←DCE

20(4)DTRDTE就绪(数据终端准备就绪)DTE→DCE

22(9)RI振铃指示DTE←DCE2023/7/2313电气特性RS-232C采用负逻辑电平,规定(-3~-25V)为逻辑“1”,(+3~+25V)为逻辑“0”。-3V~+3V是未定义的过渡区。试比较:电平转换电路(如MAX232)2023/7/2314过程特性远程通信,需要调制解调器2023/7/2315近程通信,不需要调制解调器无联络线方式联络线短接(伪连接)方式

2023/7/2316

RS-232C电平与TTL电平转换驱动电路早期常用MC1488、MC1489

近期常用MAXM232:

片内带有自升压电路仅需+5V电源内含2个发送器,2个接收器

2023/7/2317采用RS-232C接口存在的问题传输距离短、速率低

通常不超过15米,速率20Kbps

有电平偏移

RS-232收发共地,地电流会使电平偏移出现逻辑错误。抗干扰能力差

RS-232常用单端输入,易混入干扰。(故用大摆幅)新标准RS-485改善了传输特性,应用广泛!

2023/7/23186.2

80C51单片机的串行口6.2.180C51串行口的结构1个全双工串口:通信或接口扩展

接收发送缓冲器逻辑同名、物理分开;接收双缓冲。

2023/7/23196.2.280C51串行口的控制寄存器串行口控制寄存器SCONSM0和SM1:工作方式选择位76543210SCONSM0SM1SM2RENTB8RB8TIRI字节地址:98HSM0SM1方式说明波特率000移位寄存器fosc/1201110位UART(8位数据)可变10211位UART(9位数据)fosc/64或fosc/3211311位UART(9位数据)可变2023/7/2320SM2:多机通信控制位SM2=1时,接收机处于地址帧筛选状态。若RB8=1,该地址帧信息可进入SBUF,并使RI为1,进而在中断服务中再进行地址号比较;若RB8=0,该帧不是地址帧,应丢掉,且保持RI=0。SM2=0时,接收机处于地址帧筛选被禁止状态。不论收到的RB8为0或1,均可以使收到的信息进入SBUF,并使RI=1。此时的RB8通常为校验位。REN:串行接收使能位,软件置1时,启动接收过程2023/7/2321TB8:多机方式发送的第9位多机方式的地址/数据帧标志。也可作为奇偶校验位。

RB8:多机方式接收的第9位多机方式的地址/数据帧标志。也可作为奇偶校验位。

TI:发送中断标志位,要由软件清0RI:接收中断标志位,要由软件清02023/7/2322电源控制寄存器PCONSMOD:波特率倍增位。在串行口方式1、方式2、方式3时,波特率与SMOD有关,当SMOD=1时,波特率提高一倍。复位时,SMOD=0。

76543210PCONSMOD字节地址:97H2023/7/23236.2.380C51串行口的工作方式方式0:同步移位寄存器,用于扩展并行口RXD:输入或输出引脚TXD:移位脉冲输出接收和发送都为8位波特率固定为:fosc/122023/7/2324数据输出:

CLR用于对74LS164清0

2023/7/2325数据输入:

S/L负脉冲将并行数据装入,高电平时启动单片机进行数据输入。

2023/7/2326方式1:10位帧,用于双机通信起始位:1位数据位:8位停止位:1位2023/7/2327串行发送:(写SBUF启动发送过程)

串行接收:(置REN=1启动接收过程)

2023/7/2328方式2和方式3:11位帧,用于多机通信起始位:1位数据位:9位停止位:1位2023/7/2329串行发送:(写SBUF启动发送过程)

串行接收:(置REN=1启动接收过程)

2023/7/23306.2.480C51波特率确定与初始化步骤波特率的确定波特率的计算固定波特率:

方式0波特率=fosc/12

方式2波特率=(2SMOD/64)*

fosc可变波特率:

方式1波特率=(2SMOD/32)*(T1溢出率)

方式3波特率=(2SMOD/32)*(T1溢出率)

T1溢出率=fosc/{12×[256-(TH1)]}2023/7/2331波特率的选择波特率要选择标称值,由于TH1的初值是整数,为了减小波特率计算误差,晶振频率要选为11.0592MHz。

方式1和方式3波特率与TH1初值的对应关系:

波特率/(b/s)19.2k9600480024001200TH1初值FDHFDHFAHF4HE8HSMOD100002023/7/2332串行口初始化步骤确定T1的工作方式(TMOD)计算T1的初值,装载TH1、TL1启动T1(置位TR1)确定串行口工作方式(SCON)串口中断设置(IE、IP)2023/7/23336.3

80C51单片机的串行口应用6.3.1利用单片机串口的并行I/O扩展串口无通信需求时!2023/7/2334显示子程序:DIR:SETBP3.3;允许同步移位脉冲输出MOVR7,#02H;送出的段码个数MOVR0,#79H;显示数据缓冲区DL0:MOVA,@R0;待显示数据送AADDA,#0DH;加偏移量MOVCA,@A+PC;获得段码值MOVSBUF,A;将段码送SBUFDL1:JNBTI,DL1;输出段码,查询TI状态CLRTI;1个字节的段码输出完,清TI标志DECR0;指向下一个显示数据单元DJNZR7,DL0;判断2个段码显示完CLRP3.3;2个段码显示完,关闭显示输出RET;返回SEGTAB:DB共阳极七段码表2023/7/2335键盘扫描子程序:KEYI:MOVA,#00H;判断有无键按下,使所有列线为0的编码送AMOVSBUF,A;扫描键盘输出为00H,使所有列线为0KL0:JNBTI,KL0;串行输出完?CLRTI;串行输出完,清TIKL1:JNBP3.4,PK1;第一行有闭合键吗,如有,转PK1JBP3.5,PL1;第二行有闭合键吗,无闭合键跳KL1PK1:ACALLDL10;调10ms延时子程序,放抖动JNBP3.4,PK2;判断是否抖动,否转PK2JBP3.5,KL1;PK2:MOVR7,#08H;MOVR6,#0FEH;判断是哪一个键按下MOVR3,#00H;R3为列号寄存器

MOVA,R6;

KL5:MOVSBUF,A

;

列扫描码从串行口输出2023/7/2336KL2:JNBTI,KL2;等待串行口输出CLRTI;串行口发送完,清TIJNBP3.4,PKONE;读第一行线状态,有闭合,转PKONEJBP3.5,NEXT;读第二行线状态,是第二行键?MOVR4,#08H;第二行有键按下,行首键号08H送R4AJMPPK3PKONE:MOVR4,#00H;第一行键中键按下,行首键号00H送R4

PK3:MOVSBUF,#00H;等按键释放,发送00H使所有列线为低KL3:JNBTI,KL3CLRTI;发送完毕,清TIKL4:JNBP3.4,KL4;判行线状态JNBP3.5MOVA,R4;两行线均为高,说明键已释放2023/7/2337

ADDA,R3;计算的键码送ARET;列扫描码左移一位,判下一键是否按下NXT:MOVA,R6RLAMOVR6,A;存列扫描码于R6中INCR3;列号加1DJNZR7,KL5;列计数器R7减1;8列均检查完?AJMPKEYI;8列键扫描完毕,开始下一个键扫描周期DL10:MOVR7,#0AH;延时10ms子程序DL:NOVR6,#0EFHDL6:DJNZR6,DL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论