1. 1、本文档共50页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章串口

2 串行口方式1 方式1是10位为一帧的异步串行通信方式。共包括1个起始位,8个数据位和1个停止位。其帧格式如下。 数据发送时是由一条写发送寄存器(SBUF)的指令开始,随后在串行口由硬件自动加起始位和停止位,构成一个完整的帧格式,然后在移位脉冲的作用下,由TXD端串行输出。一个字符帧发送完后,使TXD输出线维持在“1”状态下,并将SCON寄存器的TI置“1”,通知CPU可以接着发送下一个字符。 接收数据时,SCON的REN位应处于允许接收状态(REN=1)。在此前提下,串行口采样RXD端,当采样到从1向0的状态跳变时,就认定是接收到起始位。随后在移位脉冲的控制下,把接收到的数据位移入接收寄存器中。直到 停止位到来之后把停止位送入RB8中,并置位中断标志位RI,通知CPU从SBUF取走接收到的一个字符。 2 波特率的设定 例题1 编写串行口方式1发送程序:将片外ROM中00H~3FH的数据通过串行口发送出去,不倍增,外接晶振频率为6MHz,比特率为1200 bps (查询方式) 计算初值: 程序: START: MOV R0, #00H MOV R2, #40H MOV TMOD, #20H MOV TL1, #0F3H MOV TH1, #0F3H SETB TR1 MOV SCON, #40H NEXT: MOVX A,@R0 MOV SUBF,A JNB TI, $ CLR TI INC R0 DJNZ R2, NEXT 3 串行工作方式2 方式2和方式3以11位数据为一帧输入,设有1个起始位“0”,8个数据位和1个附加第9位和1个停止位“1”,其帧格式如下。 附加第9位(D8)由软件置1或清0。发送时在TB8中,接收时送RB8中。功能由用户确定,是一个可编程位。 在发送数据时,应预先在SCON的TB8位中把第9个数据位的内容准备好。 用 SETB TB8 ;TB8位置1 CLR TB8 ;TB8位置0 发送数据(D0~D7)由MOV指令向SBUF写入,而D8位的 内容则由硬件电路从TB8中直接送到发送移位寄存器的第九位,并以此来启动串行发送。一个字符帧发送完毕后,将TI位置1,其它过程与方式1相同。 方式2的接收过程也与方式1基本类似,所不同的只在第9数据位上,串行口把接收到的前8个数据位送入SBUF,而把第9个数据位送入RB8。 方式2的波特率是固定的,且有两种。 即与PCON寄存器中SMOD位的值有关。当SMOD=0时,波特率为晶振频率的六十四分之一;当SMOD=1时,波特率为晶振频率的三十二分之一。 例题 设计一个串行通信的数据发送程序,发送片外RAM 00H~3FH中的数据,串行口设定为方式2,采用查询方式,偶校验,波特率不加倍。设晶振频率为6MHZ MOV SCON, #80H MOV PCON, #00H MOV R0, #00H MOV R7, #40H LOOP: MOVX A, @R0 MOV C, P MOV TB8, C MOV SBUF, A JNB TI, $ CLR TI INC R0 DJNZ R7, LOOP SJMP $ 4串行工作方式3 方式3同样是11位为一帧的串行通信方式,其通信过程与方式2完全相同,所不同的仅在于波特率。方式2的波特率只有固定的两种,而方式3的波特率可由用户根据需要设定,其设定方式与方式1相同,即通过设置定时器1的初值来设定波特率。 例题 设计一个串行通信的数据发送程序,发送片外RAM 00H~3FH中的数据,串行口设定为方式3,采用查询方式,偶校验,波特率为1200BPS,波特率倍增。设晶振频率为6MHZ 程序: START: MOV R0, #00H MOV R2, #40H MOV TMOD, #20H MOV TL1, #0E6H MOV TH1, #0E6H SETB TR1 MOV SCON,#C0H MOV PCON,#80H NEXT:

您可能关注的文档

文档评论(0)

didala + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档