找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机多机通信仿真程序 Protues 7.8+ Keil 4.0

[复制链接]
跳转到指定楼层
楼主
Protues 7.8+ Keil 4.0以上版本可用。
自己搭建的电路,亲测代码可用。主要功能是实现了三机网络中两两单片机之间的通信功能,并通过数码管实时显示。

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  1. #include <reg52.h>
  2. #include <intrins.h>

  3. #define read 0
  4. #define wite 1
  5. unsigned char cort = 3;
  6. sbit BusAccess = P3 ^ 5;

  7. key_serial() interrupt 0 using 1
  8. {
  9.         cort++;
  10.         cort = cort%3;
  11. }

  12. void main()
  13. {
  14.         P2 = 0xC0;
  15.         TMOD = 0x20;                         //20H = 0010 0000
  16.         TH1 = 0xFD;
  17.         TL1 = 0xFD;
  18.         PCON = 0x00;
  19.         TR1 = 1;
  20.         SCON = 0xF8;                         //F8 = 1111 1000,SM0SM1=11B=3,SM2=1,REN=1,TB8=1,RB8=0
  21.         EA = 1;
  22.         EX0 = 1;
  23.         IT0 = 1;
  24.         while(1)
  25.         {
  26.                 if (cort == 1)
  27.                 {
  28.                         BusAccess = wite;                 //写总线
  29.                         SBUF = 0x01;
  30.                         while(TI != 1) {;}
  31.                         TI = 0;
  32.                         BusAccess = read;                  //读总线
  33.                         while(RI != 1) {;}
  34.                         RI = 0;
  35.                         P2 = SBUF;
  36.                         BusAccess = wite;                  //写总线
  37.                 }
  38.                 if(cort == 2)
  39.                 {
  40.                         BusAccess = wite;                 //写总线
  41.                         SBUF = 0x02;
  42.                         while(TI != 1) {;}
  43.                         TI = 0;
  44.                         BusAccess = read;
  45.                         while(RI != 1) {;}
  46.                         RI = 0;
  47.                         P2 = SBUF;
  48.                         BusAccess = wite;
  49.                 }
  50.                 if(cort == 0)
  51.                 {
  52.                         BusAccess = wite;                 //写总线
  53.                         SBUF = 0x00;
  54.                         while(TI != 1) {;}
  55.                         TI = 0;
  56.                         P2 = 0xC0;
  57.                         BusAccess = wite;                  //写总线
  58.                         cort = 3;
  59.                 }
  60.        
  61.         }
  62. }
复制代码

所有资料51hei提供下载:
所有源文件.rar (32.27 KB, 下载次数: 44)




评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:745845 发表于 2020-5-15 12:27 | 只看该作者
附件里没有仿真
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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