找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機串行通信接口的C51編程實驗

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:583040 發(fā)表于 2020-2-11 11:39 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
原理:
1.兩個AT89c51單片機各自P0口接一個數(shù)碼管,P1.0接一個按鈕,單片機的TXD和RXD與對方單片機的RXD和TXD連接。
2.編程實現(xiàn)單片機的數(shù)碼管顯示另一個單片機的按鈕按動次數(shù)。
步驟:
1.利用Proteus仿真軟件按設計題目要求繪制電路。
2.按題目要求編寫程序。
3.將程序下載到單片機中,進行調(diào)試運行。

#include<reg51.h>
#define ucharunsigned char
#define uintunsigned int
#define SegPort P0
sbit bit0=P2^0;
sbit bit1=P2^1;
uchar codetab[16]=
      {0x3F,0x06,0x5B,0x4F,0x66,
      0x6D,0x7D,0x07,0x7F,0x6F};
//0~9共陰極字型碼
uchar datadisplaybuf[2];//定義顯示緩沖區(qū)
bit Commflag;//定義通信標志
ucharReceiveData;//接收的數(shù)據(jù)
uchar counter;//按鍵的按動次數(shù)計數(shù)
ucharOldKey,NewKey;
//通信中斷函數(shù)
void Txd_Rxd()interrupt 4
{
     if(TI)TI=0;
      else
      {
           RI=0;
               ReceiveData=SBUF;
           Commflag=1;
      }
}
voidDataChange(uchar m)
{
      displaybuf[1]=m/10;
      displaybuf[0]=m%10;
}
void delay()
{
      int i;
      for(i=500;i>0;i--);
}
void display()
{   
      SegPort=0xff;
      SegPort=~tab[displaybuf[0]];
      bit0=0;bit1=1;
      delay();
      SegPort=0xff;
      SegPort=~tab[displaybuf[1]];
      bit0=1;bit1=0;
      delay();
      SegPort=0xff;
}
void Key()
{
     NewKey=P1&0x01;
      if((OldKey==0x01)&&(NewKey==0x00))
      {
           counter++;
           SBUF=counter;
      }
      OldKey=NewKey;
}
void main()
{
      SCON=0x50;
      TMOD=0x20;
      TH1=0xFD;
      TL1=0xFD;
      TR1=1;
      ES=1;
      EA=1;
      while(1)
      {
           Key();
           if(Commflag)
           {
                 Commflag=0;
                 DataChange(ReceiveData);
           }
           display();
      }
}

1.左數(shù)碼管顯示且紀錄右按鍵按動次數(shù)
2.右數(shù)碼管顯示且紀錄左按鍵按動次數(shù)



串行通信接口的C51編程實驗報告.rar

45.41 KB, 下載次數(shù): 18, 下載積分: 黑幣 -5

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規(guī)則

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

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

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