单片机课件 串口程.docVIP

  • 9
  • 0
  • 约2.01万字
  • 约 19页
  • 2016-08-21 发布于贵州
  • 举报
串口编程 1、串行口方式1应用编程 补充例1 本例采用方式1进行双机通信,收发双方均采用6MHz晶振,波特率为2400,每一帧信息为10位,第0位为起始位,1~8位为数据位,最后1位为停止位。发送方将78H、77H单元的内容为首地址,以76H、75H单元内容减1为末地址的数据块内容通过串行口发送给接收方。 发送方要发送的数据块的地址为2000H~201FH。发送时先发送地址帧,再发送数据帧;接收方在接收时,使用一个标志位来区分接收的数据是地址还是数据,然后将其分别存放在指定的单元中。发送方可采用查询方式或中断方式发送数据,接收方采用中断或查询方式接收。本例子仅给出中断方式的发送和接收的程序。 1)甲机发送程序 中断方式的发送程序如下: ORG 0000H LJMP MAIN ORG 0023H LJMP COM_INT ORG 1000H MAIN:MOV SP,#53H ;set stock top pointer MOV 78H,#20H ;set sending data first-bottom address MOV 77H,#00H MOV 76H,#20H MOV 75H,#40H ACALL TRANS ;call send prog SJMP $ TRANS:MOV TMOD,#20H ;set timer/counter working model MOV TH1,#0F3H ;set counter initial value MOV TL1,#0F3H MOV PCON,#80H ;set baud rate double SETB TR1 ;open counter MOV SCON,#40H ;set serial working model MOV IE,#00H ;First close interrupt,use query model sending address CLR F0 MOV SBUF,78H ;send first-address high 8bit WAIT1:JNB TI,WAIT1 CLR TI MOV SBUF,77H ;send first-address low 8bit WAIT2:JNB TI,WAIT2 CLR TI MOV SBUF,76H ;send end-address high 8bit WAIT3:JNB TI,WAIT3 CLR TI MOV SBUF,75H ;send end-address low 8bit WAIT4:JNB TI,WAIT4 CLR TI MOV IE,#90H ;open interrupt,interrupt model send data MOV DPH,78H MOV DPL,77H MOVX A,@DPTR MOV SBUF,A ;send first data WAIT: JNB F0,WAIT ;wait sending RET COM_INT: CLR TI ;close sending-interrupt flag bit TI INC DPTR ;data pointer add 1,intend sending next data MOV A,DPH ;determine current sending data address wether or not bottom address CJNE A,76H,END1 ;no bottom address,jump MOV A,DPL CJNE A,75H

文档评论(0)

1亿VIP精品文档

相关文档