两个单片机之间通讯,用的是串口工作方式3。
1、接好两个单片机之间的三根线:
单片机A 单片机B
GND ------- GND
TXD ------- RXD
RXD ------- TXD
2、两个单片机用相同的晶振,串行口都采用方式0。
单片机A发一个字节,单片机B收一个字节。
如果单片机B能收那个字节,硬件OK!
单片机A参考程序:
ORG 0
MOV TMOD,#0; 可以不写。
MOV SBUF,#87H; 立即数是你想发的字节。
SJMP $
END
单片机B参考程序:
ORG 0
MOV TMOD,#0; 可以不写。
SETB REN; 允许接受。
LOOP:MOV P1,SBUF; 在P1口显示接受到的数据。
SJMP LOOP ;循环等待。因为单片机A一个字节发过来需要10个机器周期。
END
单片机A不需要硬件。
单片机B硬件如下:
元件:
LED发光二极管8只,即LED0、LED1、LED2 ... LED7。
1K欧姆1/4W电阻8只,即R0、R1、R2 ... R7。
连接:
R0、R1、R2 ... R7一端连接+5V,另一端连接LED0、LED1、LED2 ... LED7阳极,
LED0、LED1、LED2 ... LED7阴极连接 P1.0、P1.1、P1.2 ... P1.7。
如此连接后,收到的数据是0的,对应的LED亮;收到的数据是1的,对应的LED灭。
3、在第二步OK的基础上调试你的程序。
单片机串口通讯要点:
1.单片机必须接成至少最小系统.
2.双方设成相同的模式,波特率.
3.分别读写通讯缓冲.
4.等待标志位翻转.
5.设置标志位.
如果是中断方式还须设置中断允许.
这样才能互相交换串口缓冲区数据.
fine,thanks!^-^
欢迎光临 弱电论坛 (http://bbs.rdzjw.com/) | Powered by Discuz! X3.2 |