51单片机编程:教你实现双机串行通信功能
扫描二维码
随时随地手机看文章
利用 2 个实验系统通过 232 通信,实现双机串行通信功能。
用汇编或 C 语言编写一个 51 单片机程序,
用本侧的 K0~K3 能控制对侧的 L0~L3,
用对侧的 K0~K3 能控制本侧的 L0~L3。
通信线断开后,不需重启,接上通信线后,应能自动重新建立通信联系。
;=========================================================
做而论道早就回答了这个问题,也不知道是那个字眼违规了,百度知道又抽风了,不给显示。
申诉已经很多天了,也没有反应。
时间,已经耽误了,就发表在这里吧。
程序虽然是用汇编语言编写的,也非常简单,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
;=========================================================
两台单片机系统,都使用上面给出的同一个程序。
做实验时,也可以用软件仿真,电路如下:
用一个单片机,也可以自发自收,电路如下:
断开通信线路的开关,拨动开关就不能控制对方的 LED 了。
接通通信线路的开关,不需重启,自动就能重新建立通信联系。