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

QQ登錄

只需一步,快速開始

搜索
查看: 2061|回復(fù): 0
收起左側(cè)

51單片機(jī)雙機(jī)通信系統(tǒng)練習(xí)

[復(fù)制鏈接]
ID:682197 發(fā)表于 2020-6-27 17:48 | 顯示全部樓層 |閱讀模式
  1. #include "reg51.h"
  2. #define  u8 unsigned char
  3. bit busy;

  4. /*----------------------------
  5. //1、串口初始化——9600波特率
  6. ----------------------------*/
  7. void UartInit(void)                //9600bps@11.0592MHz
  8. {        
  9.         SCON = 0x50;                //8位數(shù)據(jù)
  10.         TMOD = 0x20;                //設(shè)定定時(shí)器1為8位自動(dòng)重裝方式
  11.         TL1 = 0xFD;                //設(shè)定定時(shí)初值
  12.         TH1 = 0xFD;                //設(shè)定定時(shí)器重裝值
  13.         ET1 = 0;                //禁止定時(shí)器1中斷
  14.         TR1 = 1;                //啟動(dòng)定時(shí)器1
  15.         ES=1;                        //串行口中斷允許
  16.         EA=1;

  17. }
  18. /*----------------------------
  19. 2、發(fā)送串口數(shù)據(jù)
  20. ----------------------------*/
  21. void SendData(u8 dat)
  22. {
  23.     SBUF = dat;                 //寫數(shù)據(jù)到UART數(shù)據(jù)寄存器
  24.         while(!TI);                                        //等待TI發(fā)送完
  25.         TI=0;
  26. }


  27. /*----------------------------
  28. UART 中斷服務(wù)程序  
  29. -----------------------------*/
  30. void Uart() interrupt 4
  31. {
  32.         
  33.     if (RI)          //串口接收中斷
  34.     {
  35.                
  36.                 P2=SBUF;                        //通過(guò)串口接收外部發(fā)送的字符
  37.                 RI = 0;                 //清除RI位               
  38.     }else
  39.         {
  40.                 TI=0;        //串口發(fā)送中斷
  41.                
  42.         }
  43. }

  44. void main(void)
  45. {
  46.         UartInit();
  47.          while(1)
  48.         {
  49.            SendData(P1);                //發(fā)送串口數(shù)據(jù)
  50.         }

  51. }
復(fù)制代碼

雙機(jī)通信系統(tǒng).JPG
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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