试题详情
简答题 试设计一个8051单片机双机通信系统,编程将A机片内RAM中60H—6FH的数据块传送到B机机片内RAM中60H—6FH单元中。
  • 甲机发送(采用查询方式):
    M.OV  SCON,  #80H   ; 设置工作方式2
    M.OV PCON,  #00; 置SMOD=0, 波特率不加倍
    M.OV R0,  #60H ; 数据区地址指针
    M.OVR2,  #10H ; 数据长度
    L.OOP: MOV  A,   @R0  ; 取发送数据
    M.OV  C, P  ; 奇偶位送TB8
    M.OVTB8, C
    M.OV SBUF, A ; 送串口并开始发送数据
    W.AIT:  JBCTI,  NEXT  ; 检测是否发送结束并清TI
    S.JMP  WAIT
    N.EXT: INC  R0; 修改发送数据地址指针
    D.JNZR2,  LOOP
    R.ET
    乙机接收(查询方式):
    M.OV  SCON, #90H; 模作模式2, 并允许接收
    M.OV  PCON, #00H; 置SMOD=0
    M.OV  RO,   #60H   ; 置数据区地址指针
    M.OV  R2,   #10H    ; 等待接收数据长度
    L.OOP: JBC  RI,   READ   ; 等待接收数据并清RI
    S.JMP LOOP
    R.EAD:// MOV  A, SBUF   ; 读一帧数据
    M.OV  C, P
    J.NC  LP0  ; C不为  1 转LP0
    J.NB  RB8, ERR ; RB8=0, 即 RB8不为 P转ERR
    A.JMP LP1
    L.P0:     JB  RB8, ERR ; RB8=1, 即 RB8不为 P转ERR
    L.P1:     MOV @R0, A ; RB8=P, 接收一帧数据
    I.NC R0
    D.JNZ R2, LOOP
    RET 
    ERR:    …                              ; 出错处理程序 
  • 关注下方微信公众号,在线模考后查看

热门试题