《微控制器原理及应用》第四章功能单元.ppt

《微控制器原理及应用》第四章功能单元.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* (2) 甲机中断服务程序。 INTSE1: JB RI,LOOP1 ;检测是否是接收中断,是则转 CLR TI ;是发送中断,则先清除该标志 SJMP ENDT1 ;转至ENDT1处 LOOP1: CLR RI ;是接收中断,则先清除该标志 MOV A,SBUF ;取乙机的应答信息 CJNE A,#00H,LOOP2;发送不正确转 INC R1 ;修改地址指针 * MOV A,@R1 ;取下1个发送数据 MOV C,P MOV TB8,C ;将奇偶校验位送TB8 MOV SBUF,A ;启动串行口,发送新的数据 DJNZ R0,ENDT1 ;数据发送完否,未完返回 CLR ES ;发送完毕,禁止串行口中断 SJMP ENDT1 ;转至中断返回处 LOOP2: MOV A,@R1 ;准备重发1次数据 MOV C,P * MOV TB8,C ;奇偶校验位送TB8 MOV SBUF,A ;启动串行口,重发1次数据 ENDT1: RETI ;中断返回 END * (3) 乙机主程序。 ADDR2 EQU 40H ;数据块首地址 NUM EQU 10H ;发送字节数 ORG 0000H LJMP MAIN ORG 0023H LJMP INTSE2 MAIN: MOV SP,#60H MOV SCON,#0D0H ;置工作方式3,允许接收 * MOV TMOD,#20H ;置定时器方式2,自动重装载 MOV TH1, #0FDH ;波特率设置 MOV TL1, #0FDH ;9600@11.0592MHz SETB TR1 ;启动定时器 SETB EA ;CPU开中断 SETB ES ;允许串行口中断 MOV R1,#ADDR2 ;置数据指针 MOV R0,#NUM ;传送16个字节 SJMP $ ;等待中断 * (4) 乙机中断服务程序。 INTSE2: JNB RI,LOOP6 ;不是接收中断则转 CLR RI ;是,则清接收中断标志 MOV A,SBUF ;接收数据 MOV C,P ;判奇偶标志 JC LOOP4 ;为奇数时转 ORL C,RB8 ;为偶数时判RB8 JC LOOP5 ;RB8为1时(出错)转 LOOP3: * 3.串行数据寄存器(SBUF) 串行数据(缓冲)寄存器SBUF包含在物理上隔离的两个8位寄存器,发送数据寄存器(发送缓冲寄存器)和接收数据寄存器(接收缓冲寄存器),但是它们共用一个地址99H,其格式如图4-36所示。 写SBUF(MOV A,SBUF),访问发送数据寄存器;读SBUF(MOV SBUF,A),访问接收数据寄存器。 图4-36 串行数据寄存器SBUF格式 * 4.4.3 串行口的工作方式和多机通信方式 在控制寄存器中,SM0和SM1位决定串行口的工作方式,SM2位决定串行口应用于多机通信方式。 1.方式0 串行口的工作方式0为同步移位寄存器输入/输出方式。这种方式不能用于两个单片机之间的串行通信,常用于串行口外接串行输入/并行输出移位寄存器,以扩展并行I/O口。例如外接74HC164,驱动数码管显示数据。这种方式下,数据传输波特率固定为fosc/12。数据由RXD(P3.0)引脚输入/输 * 出,同步移位时钟由TXD(P3.1)引脚输出。接收/发送的是8位数据,传输时首先发送/接收最低位(LSB),最后发送/接收最高位(MSB)。帧格式如图4-37所示。 图4-37 串行口工作方式0的帧格式 1) 方式0发送 当CPU执行一条将数据写入SBUF的指令时,串行口开始把SBUF中的8位数据以fosc/12的固定波特率从RXD引脚串行输出,TXD引脚输出同步移位脉冲,发送完8位数据后由硬件置位中断标志位TI。若再次发送数据,必须用指令将TI清0。 * 2) 方式0接收 在方式0接收时,首先将接收中断标志位RI清0。然后置位REN,允许串口接收数据,CPU即启动一次接收过程。在接收方式,RXD为数据输入端,TXD为移位脉冲信号输出端,接收电路以fosc/12的固定波特率采样RXD引脚的数据,当接收完8位数据后,中断标志置位RI,表示一帧数据接收完毕,可以进行下一帧数据的接收。若要再次接收一帧数据,必须将上一帧数据取走,并使用指令将RI清0。 复位时,SCON被清0,因此,默认

文档评论(0)

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

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

1亿VIP精品文档

相关文档