选择分类:当前分类——当前分类
本站推荐:
学习用两个单片机之间通讯
文章长度[1310] 加入时间[2007/3/7] 更新时间[2026/5/25 11:14:15] 级别[0] [评论] [收藏]

 初学者救助 本人一初学者,现在开始学习用两个单片机之间通讯,用的是串口工作方式3,程序是按要求作的,可是不行呀,调试发现数据根本就送不到SBUF中,这是怎么回事,请各位指点一下小弟吧。 

 回复:初学者救助

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、如果您拥有本文版权,并且不想在本站转载,请书面通知本站立即删除并且向您公开道歉! 以上可能是本站收集或者转载的文章,本站可能没有文章中的元件或产品,如果您需要类似的商品请 点这里查看商品列表!