- 1、本文档共74页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
串行口方式0数据的接收,用SCON寄存器中的REN位来控制,采用查询RI的方式来判断数据是否输入。程序如下: 汇编程序: ORG 0000H LJMP MAIN ORG 0100H MAIN: SETB P1.1 START:JB P1.1,START SETB P1.0 CLR P1.0 MOV SCON,#10H LOOP:JNB RI,LOOP CLR RI MOV A,SBUF …… C语言程序: # include reg51.h //包含特殊功能寄存器库 sbit P1_0=P1^0; sbit P1_1=P1^1; void main() { unsigned char i; P1_1=1; while (P1_1= =1) {;} P1_0=1; P1_0=0; SCON=0x10; while (!RI) {;} RI=0; i=SBUF; …… } 2.利用方式1实现点对点的双机通信 要实现甲与乙两台单片机点对点的双机通信,线路只须将甲机的TXD与乙机的RXD相连,将甲机的RXD与乙机的TXD相连,地线与地线相连。 【例8-8】 用汇编语言编程通过串行实现将甲机的片内RAM中30H~3FH单元的内容传送到乙机的片内RAM的40H~4FH单元中。 8051 8051 甲机 RXD TXD GND TXD RXD GND 乙机 线路连接如图 甲、乙两机都选择方式1:8位异步通信方式,最高位用作奇偶校验,波特率为1200bps,甲机发送,乙机接收,因此甲机的串口控制字为40H,乙机的串口控制字为50H。 由于选择的是方式1,波特率由定时/计数器T1的溢出率和电源控制寄存器PCON中的SMOD位决定。则须对定时/计数器T1初始化。 设SMOD=0,甲、乙两机的振荡频率为12MHZ,由于波特率为1200。定时/计数器T1选择为方式2,则初值为: 初值=256 - fosc×2SMOD /(12×波特率×32) =256(12×1200×32)≈230=E6H 根据要求定时/计数器T1的方式控制字为20H。 甲机的发送程序: TSTART:MOV TMOD,#20H MOV TL1,#0E6H MOV TH1,#0E6H MOV PCON,#00H MOV SCON,#40H MOV R0,#30H MOV R7,#10H SETB TR1 LOOP:MOV A,@R0 MOV C,P MOV A.7,C MOV SBUF,A WAIT: JNB TI,WAIT CLR TI INC R0 DJINZ R7,LOOP RET 乙机接收程序: RSTART:MOV TMOD,#20H MOV TL1,#0E6H MOV TH1,#0E6H MOV PCON,#00H MOV R0,#40H MOV R7,#10H SETB TR11 LOOP:MOV SCON,#50H WAIT: JNB RI,WAIT MOV A,SBUF MOV C,P JC ERROR ANL A,#7FH MOV @R0,A INC R0 DJINZ R7,LOOP RET 3.多机通信 通过MCS-51单片机串行口能够实现一台主机与多台从机进行通信,主机和从机之间能够相互发送和接收信息。但从机与从机之间不能相互通信。 MCS-51单片机串行口的方式2和方式3是9位异步通信,发送信息时,发送数据的第9位由TB8取得,接收信息的第9位放于RB8中,而接收是否有效要受SM2位影响,当SM2=0时,无论接收的RB8位是0还是1,接收都有效,RI都置1;当SM2=1时,只有接收的RB8位等于1时,接收才有效,RI才置1。利用这个特性便可以实现多机通信。 多机通信时,主机每一次都向从机传送两个字节信息,先传送从机的地址信息,再传送数据信息,处理时,地址信息的TB8位设为1,数据信息的TB8位设为0。 多机通信过程如下: (1)所有从机的SM2位开始都置为1,都能够接收主机送来的地址。 (2)主机发送一帧地址信息,包含8位的从机地址,TB8置1,表示发送的为地址帧。 (3)由于所有从机的SM2位都为1,从机都能接收主机发送来的地址,从机接收到主机送来的地址后与本机的地址相比较,如接收的地址与本机的地址相同,则使SM0位为0,准备接收主机送来的数据,如果不同,则不作处理。 (4)主机发送数据,发送数据时TB8置为0,表示为数据帧。 (5)对于从机,由于主机发送的第9位TB8为0,那么只有SM2位为0的从机
文档评论(0)