《单片机原理与实验教程》课件第2章.ppt

《单片机原理与实验教程》课件第2章.ppt

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

1)方式2和方式3发送方式2和方式3的发送过程是由执行任何一条以SBUF作为目的的寄存器的指令来启动的。由“写入SBUF”信号把8位数据装入SBUF,同时还把TR8装到发送移位寄存器的第9位上(可由软件赋TR8的值为0或1),并通知发送控制寄存器要求进行一次发送。发送开始,把第一个起始位(0)放到TXD端。经过一位时间后,数据由移位寄存器送到TXD端,通过第1位数据,出现第1个移位脉冲,在第一次移位时,把一个停止位1由控制器的停止位送到移位寄存器的第9位。此后,每次移位时,把0送入第9位。因此,当TR8的内容移到移位寄存器的输出位置时,其左面一位是停止位1,再往左的所有位全为0。这种状态由零检测器检测到后,就通知发送控制器做最后一次移位,然后置TI=1,请求中断。第9位数据(即SCON中的TR8的值)由软件置位或清0,可以作为数据的奇偶校验位,也可以作为多机通信中的地址、数据标志位。如果把TB8作为奇偶校验位,可以在发送中断服务程序中,在数据写入SBUF之前,先将数据的奇偶位写入TB8。数据从串行接口输出的编程举例如下。设内部RAM的50H~5FH单元中的数据从串行接口输出,串行接口以方式2工作,TB8作为奇偶校验位。在数据写入发送缓冲器之前先要将数据的奇偶位写入TB8。程序的流程图如图2-26所示。图2-26发送程序流程图源程序如下:LOOP0:MOVSCON,#80H;数80H送至串行接口控制寄存器,使串行接口以方式2;工作MOVPCON,#80H;设波特率为1/32振荡频率(即设PCON寄存器中的D7;位为1)MOVR0,#50H;50H送R0MOVR7,#10H;数据长度10H送R7LOOP1:MOVA,@R0;把数据送至累加器AMOVC,P;奇偶位(PSW寄存器中的D0位)送至进位位(PSW中的;D7位)MOVTB8,P;奇偶位送TB8MOVSBUF,A ;数据送SBUF,启动发送WAIT:JBCTI,LOOP2;判断发送中断标志是否为1,直到TI=1时转至执行;LOOP2指示的指令SJMPWAIT;循环判断LOOP2:INCR0 ;R0中的内容+1,使R0内容指向下一数据地址单元DJNZR7,LOOP1 ;R7内容减1,若R7内容不为0,转至执行LOOP1;指示的指令END ;程序返回2)方式2和方式3接收 方式2和方式3的接收过程与方式1类似。数据从RXD端输入,接收过程由RXD端检测到负跳变时开始(CPU对RXD不断采样,采样速率为所建立的波特率的16倍)。当检测到负跳变时,16分频计数器就立即复位,同时把1FFH写入输入移位寄存器。计数器的16个状态把一位时间等分成16位,在每一位的第7、8、9个状态时,位检测器对RXD端的值采样。如果所接收到的起始位不是0,则复位接收电路,等另一个负跳变的到来。若起始位有效(=0),则起始位移入输入移位寄存器,并开始接收这一帧的其余位。当起始位0移到最左面时,通知接收控制器进行最后一次移位,把8位数据装入接收缓冲器,第9位数据装入SCON中的RB8,并置中断标志RI=1。数据装入接收缓冲器和RB8,并置位RI的操作。只在产生最后一个移位脉冲时发生,并且要满足下列条件:①RI=0,SM2=0;②接收到的第9位数据为1。如果不满足上述条件,则接受到的数据信息就会丢失,而且中断标志RI也不置1。请注意与方式1的区别:在方式2和方式3中装入RB8的是第9位的数据,而不是停止位(方式1中装入的是停止位)。所接收的停止位的值可用于多机处理(多机通信中的地址/数据标志位),也可作奇偶校验位。下面以RB8作奇偶校验位为例编制接收程序。

文档评论(0)

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

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

1亿VIP精品文档

相关文档