找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1451|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

stc89c52 雙機(jī)通信

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:812531 發(fā)表于 2021-2-1 21:09 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
單片機(jī)發(fā)送端

#include "reg52.h"                         //此文件中定義了單片機(jī)的一些特殊功能寄存器
unsigned char num;                        //全局變量 發(fā)送的就是num數(shù)據(jù)
sbit k1=P3^4;                                 //按鍵定義 定義四個(gè)按鍵
sbit k2=P3^5;
sbit k3=P3^6;
sbit k4=P3^7;
void delay(void)                             //延時(shí)函數(shù)  這里用不到 加上去以防萬一
{
     unsigned char m,n;
         for(m=0;m<200;m++)
          for(n=0;n<250;n++)
          ;
}
void Send(unsigned char dat)                         //發(fā)送數(shù)據(jù)函數(shù)
{
         SBUF=dat;                                           //發(fā)送的數(shù)據(jù)放進(jìn)sbuf寄存器中
         while(TI==0)                                        //如果TI等于0 則在此處一直等待
         ;
         TI=0;                                                       //發(fā)送完之后  手動(dòng)清零 防止影響下次發(fā)送
}
        void charnum ()
        {
         
          if(k1==0)                                       //對(duì)要發(fā)送的數(shù)據(jù)進(jìn)行賦值
          {
                  num=1;
      
                while(!k1);
          }
      
         else if(k2==0)
          {
                  num=2;
      
                while(!k2);
          }
          else if(k3==0)
          {
                  num=3;
      
                while(!k1);
          }
      
         else if(k4==0)
          {
                  num=4;
               
                while(!k2);
          }
        }
void main(void)
{                 
        TMOD=0X20;               //
        SCON=0X40;
        PCON=0X00;                  //波特率不加倍
        TH1=0Xfd;                  //波特率設(shè)置為9600
        TL1=0xfd;
        EA=1;                        //打開總中斷
        ES=1;                         //打開串口中斷
        TR1=1;                         //打開計(jì)時(shí)器
        while(1)
        {
                 charnum ();
          Send(num);
        }
}
單片機(jī)接收端
#include "reg52.h"                         //此文件中定義了單片機(jī)的一些特殊功能寄存器
unsigned char dat,num;

   

unsigned char Receive(void)

{

         

                 while(RI==0);

                 

                 RI=0;         

                 dat=SBUF;


             return dat;


}


void main(void)

{         


        TMOD=0X20;

        SCON=0X50;

        PCON=0X00;

        TH1=0Xfd;

        TL1=0xfd;

        TR1=1;

        REN=1;


        while(1)

        {  


   num=Receive();
        switch(num)
        {
        case 1:P1=0xfe; break;
        case 2:P1=0xfc; break;
        case 3:P1=0xfd; break;
        case 4:P1=0xff; break;
        }

                 

        }

}




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表