51 单片机 C 语言异步串行双机通信多字节传输

通过89C51单片机,A机产生时、分、秒数据并利用C语言进行串行通信传输给B机显示。B机接收数据并解析显示,每秒更新一次。通信协议中使用ASCII码的美元符($)作为数据头,确保数据正确分隔。程序包含中断服务函数,实现了多字节传输。
摘要由CSDN通过智能技术生成

用两个 89C51 单片机实现双机通讯来做一个时钟,A 机用来产生数据,B 机用来显示。

具体思路是 A 机产生 a、b、c 的具体值,然后把 abc 传给 B 机显示数据。

A 机发送 a, b, c 给 B 机,B 机拿来用。

写出了双方的通信部分,代码可见该问题的网址:

 http://zhidao.baidu.com/question/1731754753643347587.html

为此,从网上找来这张图,显示函数、定时函数...,也都编写出来,供参考。



 
PROTEUS 仿真电路图如下: 



图片链接:

http://xiangce.baidu.com/picture/detail/8d7c506b7ade7f0feb49f353e22d81dfef5453dc

 

//============================================

 

B 机(显示数据)的程序如下:

 

//--------------------------------

 

#include<reg52.h>

 

unsigned char  re_i = 0, r_buf[7] = {0,0,0,0,0,0,0};

unsigned char  a = 13, b = 57, c = 40, d;

 

//--------------------------------

void delayms(unsigned int xms)

{

    unsigned  int i, j;

    for(i = xms; i > 0; i--)  for(j = 110; j > 0; j--);

//--------------------------------

void display()

{   

    char  i, dis[6];

    char code table[] = {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值