- 1、本文档共61页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章单片机的串行口原理及应用 课 堂 复 习 例6-4 两台单片机进行串行通信,采用查询方式工作。发送单片机为串行工作方式2, TB 8作为奇偶位。待发数据位于片内40H-4FH单元中。 发送方每发送一个字节后紧接着接收回送字节,只有收到标志数据00H后才继续发送下一个数据,同时将发送的数据送往P1口显示,否则停止发送。 接收方也为工作方式2,每接收到一个数据都要进行校验,接收正确则向发送方回送标志数据00H,同时将收到的数据送往P1口显示;接收错误则向发送方回送标志数据FFH,同时将数据FFH送往Pl口显示。 ORG 0000H LJMP TRS ORG 0030H TRS: MOV R7,#10H MOV R0,#40H MOV A, #0 TRS1: MOV @R0,A INC A INC R0 DJNZ R7,TRS1 MOV SCON, #90H ;设置串行口工作方式2 MOV PCON, #80H;波特率为fosc/ 32 MOV R0,#40H ;设置片内数据指针 MOV R2,#10H ;数据长度 LOOP: MOV A, @R0 ;取数据送A MOV C,P;奇偶位送TB8 MOV TB8,C MOV SBUF, A;启动发送 MOV P1,A ;数据送P1口显示 LCALL DELAY;延时 WAIT: JBC TI,CONT;查询发送标志位 SJMP WAIT CONT: JBC RI,RE ;准备接收回送标志 SJMP CONT RE: MOV A, SBUF ;接收回送标志 CJNE A, #00H, L ;回送标志错误,结束 INC R0 ;回送标志正确,继续 DJNZ R2,LOOP;发送16个数据 L: SJMP L;结束 发送方源程序清单如下: ;复位入口 ;主程序入口 ;设置串行口工作方式2,允许接收 ;波特率为fosc/ 32 ;查询接收标志位 ;读入一帧数据 ;判接收端奇偶位 ;判发送端奇偶位 ;接收正确 ;送往P1显示 ;延时 ;回送正确标志 ;接收未完,继续 ;接收出错,显示FF ;回送出错标志 ;结束 ORG 000H LJMP REV ORG 0030H REV: MOV SCON, #90H MOV PCON, #80H MOV R7,#10H LOOP: JBC RI,READ SJMP LOOP READ: MOV A, SBUF JNB PSW.0,ONE JB RB8,RIGHT SJMP ERR ONE: JB RB8,ERR RIGHT: SWAP A MOV P1,A LCALL DELAY MOV SBUF, #00H DJNZ R7,LOOP L: SJMP L ERR: MOV P1,#0FFH MOV SBUF, #0FFH LL: SJMP LL 接收方源程序如下: 多处理机通信方式 在串行口控制寄存器SCON中,设有多处理机通信位SM2。 当串行口以方式2或方式3接收时: 在主机发地址时,置第9位数据(TB8)为1,表示主机发送的是地址帧; 当主机呼叫某从机联络正确后,主机发送命令或数据帧时,将第9位数据(TB8)清0。 若SM2=1,只有当接收到的第9位数据(RB8)为1时,才将数据送入接收缓冲器SBUF,并使RI置1,申请中断,否则数据将丢失; 若SM2=0,则无论第9位数据(RB8)是1还是0,都能将数据装入SBUF,并且发中断。 在主机发地址时,置TB8为1;各从机由于SM2置1,将接受主机发来的信息。 若从机的地址
文档评论(0)