欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

用AT89C51制作雙機通信

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:434041 發(fā)表于 2018-11-28 08:56 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
甲機:
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,                      //共陽極LEDO~F的段碼//
             0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};                  
uchar a,b;
sbit P20=P2^0;
void delayms(uint ms)
{
  uint i;
  while(ms--)
    {
   for(i=0;i<120;i++);
    }
}
void int1() interrupt 2
{
   delayms(10);
   if(INT1==0)
   {
     a++;
     if(a==9)
        {a=0;}
   }
}
void disp(void)
{
   P2=0x01;
   P0=tab[b/10];
   delayms(1);
   P2=0x02;
   P0=tab[b%10];
   delayms(1);
}
void send(uchar state)
{
   SBUF=state;                                                                        //將內(nèi)容串行發(fā)送//
   while(TI==0);                                                                //等待發(fā)送完//
   TI=0;                                                                                //發(fā)送完將TI復位//
}
void receive() interrupt 4
{
if(RI)
   {
     RI=0;
         b=SBUF;
   }
}
void INT_init(void)                                                           //INT0和INT1中斷初始化//
{
  EX1=1;                                                                           //打開外部中斷1//
  IT1=1;                                                                           //下降沿觸發(fā)中斷INT1//
  EA=1;                                                                                   //全局中斷允許//
  PX1=1;                                                                           //INT1中斷優(yōu)先//
}
void SCON_init(void)                                                   //串口初始化//
{
   SCON=0x50;                                                                   //串口工作在方式1//
   TMOD=0x20;                                                                   //T1工作在模式2//
   PCON=0x00;                                                                   //波特率不倍增//
   TH1=0xFD;                                                                   //波特率為9600//
   TL1=0xFD;
   TI=0;                                                                           //啟動TI//
   TR1=1;                                                                           //允許串行中斷//
   ES=1;
}
void main(void)
{
   SCON_init();
   INT_init();
   while(1)
      {
            send(a);
                disp();
          }
}

乙機:
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar a,b;
uchar discode1[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
void delayms(uint ms)
{
uint i;
while(ms--)
{
for(i=0;i<120;i++);
}
}
void int0() interrupt 0
{
delayms(10);
if(INT0==0)
{         
        if(a>=15)a=0;
}
}
void LED(void)
{
        P0= ~ discode1[b];
}
void send(uchar state)
{
        SBUF=state;
        while(TI==0);
        TI=0;
}
void serival(void)
{
b=SBUF;
while(RI==0);
RI=0;
}
void INT_init(void)
{
EX0=1;
IT0=1;
EA=1;
}
void SCON_init(void)
{
SCON=0x50;
TMOD=0x20;
PCON=0x00;
TH1=0xFD;
TL1=0xFD;
TI=0;
TR1=1;
ES=1;
}
void main(void)
{          int i;
i=a;
        SCON_init();
        INT_init();
        while(1)
        {
                send(i);
                serival();
                LED();
                if(INT0==0)
                {
                        i++;
                        if(i>15)i=0;
                        while(INT0==0);
                }
        }
}


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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表