有网友求助双机串行通信的方法,做而论道以前曾经发表过这方面的博文,但是当时没有配发电路图,不太好理解和仿制。
做而论道过去一直使用硬件的仿真器,在最近,把 PROTEUS 软件逐渐的熟悉起来了,用这个“纸上谈兵”的东西,也有一定的好处,就是便于和没有硬件条件的网友进行交流。
下面是一个最基本、最简单的串口通信电路,图中的两个单片机,使用同一个程序,双机的硬件配置也完全相同。
图片链接:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/album/item/719a2589b2501aaca5c272ed.html
在程序控制下,本方拨码开关的信息,可以在对方的LED上显示。
编制软件时,使用了汇编语言,针对按键和串行通信,都采用了中断方式,这样就可以取得最快的反应速度。
在实际的硬件实验中,双方都显得十分灵敏。

两个单片机,使用同一个程序,源代码如下:
;----------------------------------------
    ORG 0000H
    SJMP START
    ORG 0003H
    LJMP INT0_INT
    ORG 0023H
    LJMP UART_INT
;----------------------------------------
START:
    MOV SP, #60H
    MOV SCON,#50H   ;方式1,8-n-1
    MOV TMOD,#20H
    MOV TH1, #0FDH ;波特率设置
    MOV TL1, #0FDH ; 9600@11.0592MHz
    SETB TR1
    SETB IT0         ;P3.2下降沿触发中断
    SETB EX0
    SETB ES          ;开放中断
    SETB EA

SJMP $
;----------------------------------------
INT0_INT:
    MOV P2, #0FFH
    MOV A, P2      ;读出的拨码开关信息
;    MOV P0, A       ;调试的时候,可在本方显示,以证明中断正常
;    JB   TI, $
    MOV SBUF,A      ;向串口发送
    RETI
;----------------------------------------
UART_INT:
    JB   TI, _FA_
    MOV A, SBUF    ;读出串口收到的信息
    MOV P0, A       ;送到P0口进行显示
    CLR RI
    RETI
;--------------------
_FA_:
    CLR TI
    RETI
;----------------------------------------
   END
;----------------------------------------

做成了本实验,只是说明电路、软件基本上都可以正常工作。如果真正的用到实际工作中,传输信息,还需要编制通信协议。

比如说想要传输四个数据字节,那么在前面,应该先发送一些字节,来呼叫对方,待对方正确回答了,再向对方传送有效的数据,最后再向对方传送一些校验信息,等到收到对方的确认信息之后,一次通信,才算结束。

双机(51单片机)串行通信最基本的方法相关推荐

  1. protues仿真扩展51单片机片外RAM的方法

    protues仿真扩展51单片机片外RAM的方法 由于protues仿真stc89c52的单片机时,是使用相近的at89c52.而AT89C52只有256B的RAM,并不能储存巨大的变量.所以,需要更 ...

  2. STC 51单片机 多位数码管动态显示方法

    51单片机多位数码管动态显示方法 1.数码管显示原理 2.多位数码管动态显示 3.示例程序 3.结语 1.数码管显示原理 相比学习单片机的同学一定对显示器,屏幕如OLED,LCD并不陌生,而在这些显示 ...

  3. 51单片机——串行通信

    目录 1 概述 1.1 并行通信和串行通信 1.2 串行通信的两种方式 1.2.1 异步通信 1.2.2 同步通信 1.3 串行通信的数据传送方向 2 串行通信口的结构与原理 2.1 串行通信口的结构 ...

  4. 51单片机串行通信(UART)

    介绍:STC89C51RC/RD+系列单片机内部集成了一个全双工的串行口通信,有俩个互相独立的接收.发送缓存器,可以同时接受和发送数据.发送缓存器只能发送而不能接收,接收缓存器只能接收而不能发送,因为 ...

  5. 双机之间的串行通信设计 c语言编程,双机串行通信设计精品.doc-资源下载人人文库网...

    双机串行通信设计 精品.doc 所属课程名称 单片机原理与接口技术 题 目 双机串行通信 二 总体设计2.1 设计目的 通过本次课题设计,应用单片机原理及其接口技术等所学相关知识及查阅资料,完成简易双 ...

  6. 如何高效地使用51单片机串口输入输出

    51单片机一般使用串口的方法都是这样的 #include<reg52.h> #define uint unsigned int void UART_Init(); uint num ; / ...

  7. 如何用多种代码实现51单片机流水灯

    用51单片机实现流水灯的方法有多种:普通电灯法,位移法,数组法.其次模拟电路的电流图也与点一盏LED相似.具体如下: 一   首先是最简单的代码: #include <reg52.h>   ...

  8. 基于51单片机的双机串口通信排队叫号系统(LCD显示)设计

    基于51单片机的双机串口通信排队叫号系统(LCD显示)设计 1 开发环境 视频讲解 2 功能说明介绍 3 仿真图 4 程序 5 原理图 6 视频讲解 7 设计报告 7.1 设计目的 7.2 设计要求及 ...

  9. 51单片机双机串口数码管显示排队叫号仿真设计( proteus仿真+程序+报告+讲解视频)

    51单片机双机串口数码管显示排队叫号仿真设计 1.主要功能: 2.仿真 3.程序 4.设计报告 1.1 设计背景与意义 1.2 设计目的 1.3 设计要求及内容 1.4 本文结构安排 2 总体设计方案 ...

最新文章

  1. c# 持续集成 单元测试_如何在不进行单元测试的情况下设置持续集成
  2. 人工智能的“天罗地网”
  3. java 内存回收参数_JVM常用参数(内存分配 内存回收日志)(七)
  4. 腾讯,字节,阿里,小米,京东大厂Offer拿到手软!分享一点面试小经验
  5. Vue 教程第四篇—— Vue 实例化时基本属性
  6. 监督学习 | 朴素贝叶斯原理及Python实现
  7. OBS直播如何连麦和多人连麦
  8. SQL Server 数据库维护计划
  9. 知识图谱基础代码构建(医疗向)
  10. DBCO-C6-NHS ester,1384870-47-6二苯基环辛炔-碳6-琥珀酰亚胺酯仅用于科研,不用于人体和生产
  11. Unity学习场景、模型和粒子资源包,总有一款你能用到,亲测可使用,第一波来袭
  12. 基于Echarts实现可视化数据大屏分析大屏监控系统
  13. 【毕业设计】STM32单片机的智能手环 - 蓝牙手环 物联网
  14. 【大数据入门核心技术-HBase】(九)Hbase协处理器coprocessor
  15. linux cadaver 命令,备份Linux系统的数据到坚果云
  16. 在visual studio中出现Error spawning的原因及解决思路
  17. 案例 | 客户关系管理数字化升级,侨鑫集团如何做到“心中有数”?
  18. 分析U盘文件系统(以FAT32为例)
  19. 实现模板自由?阿里妈妈全自动无模板图文创意生成
  20. 6.Linux复制文件和目录

热门文章

  1. MySQL——INSERT INTO
  2. openpyxl更改字体类型、字体颜色
  3. NTC热敏电阻原理及应用
  4. linux给内存卡分区,Android系统手机内存卡分区详解
  5. mysql记录锁、间隙锁、临键锁
  6. Linux dirname命令
  7. 支持向量机(一)——线性可分支持向量机
  8. Android实现计时器(Handle+Runable)
  9. HashMap与HashSet
  10. string.Equals和tring.Compare比较字符串(并且忽略大小写)