51单片机编程:双机串行通信


利用 2 个实验系统通过 232 通信,实现双机串行通信功能。


用汇编或 C 语言编写一个 51 单片机程序,


用本侧的 K0~K3 能控制对侧的 L0~L3,

用对侧的 K0~K3 能控制本侧的 L0~L3。


通信线断开后,不需重启,接上通信线后,应能自动重新建立通信联系。


题目链接:http://zhidao.baidu.com/question/1638691003454166820.html


;=========================================================


做而论道早就回答了这个问题,也不知道是那个字眼违规了,百度知道又抽风了,不给显示。


申诉已经很多天了,也没有反应。


时间,已经耽误了,就发表在这里吧。


程序虽然是用汇编语言编写的,也非常简单,20几行而已。


;=========================================================


    ORG   0000H

    JMP   START

    ORG   0023H

    JB    TI, S_END

    CLR   RI

    MOV   P0, SBUF    ;读串口, 送P0显示

S_END:    RETI

;----------------------------------------

START:

    MOV   SCON, #50H  ;方式1,8-n-1

    MOV   TMOD, #20H

    MOV   TH1, #0FDH  ;波特率设置

    MOV   TL1, #0FDH  ;9600@11.0592MHz

    SETB  TR1 

    MOV   IE, #90H    ;开放中断

LOOP:

    MOV   A, P2       ;读拨码开关

    DJNZ  R7, $       ;延时

    DJNZ  R6, $ - 2

    MOV   B, P2       ;再读

    CJNE  A, B, LOOP  ;消抖

    MOV   SBUF, A     ;向串口发送

    MOV   P1, A       ;在本机显示

    JNB   TI, $

    CLR   TI

    SJMP  LOOP

;----------------------------------------

END

;=========================================================


两台单片机系统,都使用上面给出的同一个程序。


做实验时,也可以用软件仿真,电路如下:


51单片机编程:双机串行通信 - 非著名博主 - 电子信息角落


用一个单片机,也可以自发自收,电路如下:


51单片机编程:双机串行通信 - 非著名博主 - 电子信息角落


断开通信线路的开关,拨动开关就不能控制对方的 LED 了。


接通通信线路的开关,不需重启,自动就能重新建立通信联系。


  • 5
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值