找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3211|回复: 2
收起左侧

利用串口进行双机通讯+pro仿真

[复制链接]
ID:154402 发表于 2016-12-13 13:31 | 显示全部楼层 |阅读模式
微信截图_20161213132648.png
乙机的K1,K2,K3分别控制甲机的LED1和LED2 ,数码管则显示乙机的K4按下次数
附件中有程序与仿真图(8.0画的)
副本是乙机,不是副本的是甲机
7).rar (78.48 KB, 下载次数: 59)

回复

使用道具 举报

ID:154463 发表于 2016-12-13 16:55 | 显示全部楼层
串行通讯把时间传输出去怎么弄?
回复

使用道具 举报

ID:1 发表于 2017-1-7 01:19 | 显示全部楼层
程序:
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. sbit K1=P2^0;
  4. sbit K2=P2^1;
  5. sbit K3=P2^2;
  6. sbit K4=P2^3;
  7. uchar deng=0x01;
  8. unsigned int kon=0;



  9. void delay(uchar x)
  10. {
  11.         while(x--);
  12. }

  13. void UART_Init()
  14. {
  15.         SCON= 0x40;               //串口方式1        //REN=1; 允许接收
  16.         PCON=0x00;                //SMOD=0
  17.         TMOD= 0x20;               //定时器1定时方式2
  18.         TH1= 0xFD;                //11.0592MHz  模块默认波特率为9600bps
  19.         TL1= 0xFD;                                                                                 
  20.         TR1= 1;                   //启动定时器
  21.         EA=1;        
  22. }
  23. void shuchu(uchar deng)
  24. {  
  25.    SBUF=deng;       
  26.    while(TI==0);
  27.    TI=0;
  28.    
  29. }
  30. void main(void)
  31. {        UART_Init();
  32.         while(1)
  33.         { delay(1000);
  34.         delay(1000);
  35.           if(K1==0){shuchu(0x01);}
  36.           if(K2==0){shuchu(0x02);}
  37.           if(K3==0){shuchu(0x03);}
  38.                   if(K4==0){
  39.                           delay(10);
  40.                           if(K4==0){
  41.                                   shuchu(0x04);
  42.                           }while(!K4);
  43.                 }
  44.          }
  45. }





复制代码



回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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