找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3437|回复: 6
打印 上一主题 下一主题
收起左侧

单片机双机通讯程序

[复制链接]
跳转到指定楼层
楼主
实现一个单片机串行接口双机通讯测试系统。系统中,发送和接收各用一个单片机实现,成为甲机和乙机。甲机作为发送端,连接一个按键,乙机作为接收端,连接一个LED数码管。将甲机的按键次数发送给乙机。(0-9,如果按键次数超过9,从0继续)。要求在乙机上显示发送的数据。甲机的发送程序:
#include<reg51.h>
sbit S=P0^0;
unsigned char count;
key()
{
unsigned int k;
if(S==0)
{
for(k=0;k<1200;k++);
if(S==0){
count++;
if(count==10)count=0;
while(!S);
}
}
}

main()
{

TMOD=0X20;
TH1=0XFD;
TL1=0xfd;
TR1=1;
SCON=0x40;
PCON=0x00;
count=0;
while(1)
{
key();
SBUF=count;
while(!TI);
TI=0;

}
}
乙机接收的程序:
#include <reg51.h>
code unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
main()
{
unsigned char i;
SCON=0x40;
PCON=0X00;
TMOD=0X20;
TH1=0XFD;
TL1=0XFD;
TR1=1;
while(1)
{
REN=1;
while(RI==0);

i=SBUF;
P0=tab[ i];
RI=0;

}
}

图片.jpg (124.21 KB, 下载次数: 46)

图片.jpg
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:419909 发表于 2020-5-10 09:32 | 只看该作者
不错。正需要这种方案。先测试一下。
回复

使用道具 举报

板凳
ID:751978 发表于 2020-5-14 19:01 | 只看该作者
本帖最后由 whaless 于 2020-5-14 19:04 编辑

请问为什么我的程序运行没有反应,是哪里出了问题呀

启.png (7.33 KB, 下载次数: 58)

启.png
回复

使用道具 举报

地板
ID:747500 发表于 2020-5-15 10:24 | 只看该作者
whaless 发表于 2020-5-14 19:01
请问为什么我的程序运行没有反应,是哪里出了问题呀

程序无误的话,可能是数码管出现问题,换一个数码管
回复

使用道具 举报

5#
ID:747500 发表于 2020-5-15 10:28 | 只看该作者
whaless 发表于 2020-5-14 19:01
请问为什么我的程序运行没有反应,是哪里出了问题呀

7SEG-MPX1-CA或者CC都试试,程序,电路图都没问题的情况下,只能是数码管选错造成。
回复

使用道具 举报

6#
ID:755709 发表于 2020-5-19 14:43 | 只看该作者
请问这样的怎么写?
实现双单片机通信,一个单片机有4按键输入,分别代表数字1,2,3,4。按下按键后识别并通过串口发送给另一个单片机,另一个单片机收到后在LED上显示,并将数据再回传。
回复

使用道具 举报

7#
ID:599521 发表于 2021-3-9 10:27 | 只看该作者
感谢楼主分享,双机通讯仿真成功!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表