⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 按键控制双机通讯.txt

📁 基于89s52单片机系统的单元模块电路介绍串口通信的程序。
💻 TXT
字号:
#include "reg51.h"
#include "string.h"
sbit P34=P3^4;
sbit P35=P3^5;
sbit P36=P3^6;
sbit P37=P3^7;

main()
{ unsigned int i,j,s=0;
TMOD=0x20;     // 初始化,波特率1200
TH1=230;
TL1=230;
TR1=1;
SCON=0xd0;
PCON=0;
for(;;)
{   if(P34==0)
   {   for(i=5;i>0;i--)
       for(j=248;j>0;j--);
       if(P34==0)
        { SBUF=P34;
          while(TI!=1);
            TI=0;
          while(RI!=1);
            RI=0;
            s++;
           SBUF=s;
          while(TI!=1);
            TI=0;
          while(RI!=1);
            RI=0;
          if(s==3)
             s=0;
         }
        while(P34==0);
     }
}  
}

从机接收程序:

#include "reg51.h"
#include "string.h"
sbit P34=P3^4;

main()
{ unsigned int i=0,j=0,second=0,count=0;
  unsigned char smg[]={0xfe,0xfd},display[2];
  TMOD=0x22;     // 初始化,波特率1200,定时器1用于设定波特率;定时器0用于设初值
  TH0=6;
  TL0=6;
  TH1=230;
  TL1=230;
  TR1=1;
  TR0=1;
  SCON=0xd0;
  PCON=0;
  EA=1;ET1=1;ET0=1;
 for(;;)
 {   while(RI!=1);
       RI=0;
    while(SBUF^0==0)
      {  while(RI!=1);
            RI=0;
         if(SBUF==1)
           TR0=1;
        while(RI!=1);
            RI=0;
         if(SBUF==2)
            TR0=0;
        while(RI!=1);
            RI=0;
         if(SBUF==3)
          { P2=0xfb;
            P0=0;
            TR0=1;
           }
       }
 }          
}

void time() interrupt 1 using 0  //计数部分
{ count++;
  if(count==4000)
   {count=0;
     second++;
     if(second==60)
       second=0;
       display[0]=second%10;
       display[1]=second/10;
     }
     TH0=6;
     TL0=6; 
}

void xianshi() interrupt 3    //显示部分
{    i++;
   if(i==60)
  { i=0;
   P2=smg[j];
   P0=display[j];
   j++:
    if(j==2)
     j=0;
   }
  TH1=230;
  TL1=230;
}   
   
 
      










⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -