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

QQ登錄

只需一步,快速開(kāi)始

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

PC與51單片機(jī)間的雙向通訊問(wèn)題

[復(fù)制鏈接]
ID:102056 發(fā)表于 2016-11-15 19:43 | 顯示全部樓層 |閱讀模式
QQ截圖20161115193311.png
本程序?qū)崿F(xiàn)的效果PC端是發(fā)送字符C,繼電器吸和;發(fā)送字符O,繼電器斷開(kāi)。并且單片機(jī)不斷向PC發(fā)送字符a。
現(xiàn)在我想PC端發(fā)送字符,同時(shí)單片機(jī)把接收到的返回給PC顯示,但是我不清楚是不是寫要中斷?#include <reg52.h>

sbit J4=P1^5;
/* ***************************************************** */
// 函數(shù)名稱:UART_Init()
// 函數(shù)功能:串口初始化
// 入口參數(shù):無(wú)
// 出口參數(shù):無(wú)
/* ***************************************************** */
void UART_Init(void)
{   
        TMOD &= 0x0f;   // 清空定時(shí)器1      
        TMOD |= 0x20;        // 定時(shí)器1工作于方式2
        TH1 = 0xfd;                // 為定時(shí)器1賦初值
        TL1 = 0xfd;                // 等價(jià)于將波特率設(shè)置為9600
        ET1 = 0;                // 防止中斷產(chǎn)生不必要的干擾
        TR1 = 1;                // 啟動(dòng)定時(shí)器1


        SCON |= 0x50;        // 串口工作于方式1,允許接收
}
/* ***************************************************** */
// 函數(shù)名稱:UART_SendOneByte()
// 函數(shù)功能:發(fā)送一個(gè)字節(jié)
// 入口參數(shù):待發(fā)送的數(shù)據(jù)(uDat)
// 出口參數(shù):無(wú)
/* ***************************************************** */
void main(void)
{
  unsigned char X;
UART_Init();
while(1)
{
if(RI)
{
   X=SBUF;
   while(!RI);
   RI=0;
   if(X=='C')
   J4=0;
   if(X=='O')
   J4=1;


  }
  else
  {
          SBUF='a';
        while(!TI);
         TI=0;
  }






  }


}
本程序?qū)崿F(xiàn)的效果PC端是發(fā)送字符C,繼電器吸和;發(fā)送字符O,繼電器斷開(kāi)。并且單片機(jī)不斷向PC發(fā)送字符a。
現(xiàn)在我想PC端發(fā)送字符,同時(shí)單片機(jī)把接收到的返回給PC顯示,但是我不清楚是不是寫要中斷?

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

ID:102056 發(fā)表于 2016-11-15 20:14 | 顯示全部樓層
#include <reg52.h>
sbit J4=P1^5;
/* ***************************************************** */
// 函數(shù)名稱:UART_Init()
// 函數(shù)功能:串口初始化
// 入口參數(shù):無(wú)
// 出口參數(shù):無(wú)
/* ***************************************************** */
void UART_Init(void)
{   
        TMOD &= 0x0f;   // 清空定時(shí)器1      
        TMOD |= 0x20;        // 定時(shí)器1工作于方式2
        TH1 = 0xfd;                // 為定時(shí)器1賦初值
        TL1 = 0xfd;                // 等價(jià)于將波特率設(shè)置為9600
        ET1 = 0;                // 防止中斷產(chǎn)生不必要的干擾
        TR1 = 1;                // 啟動(dòng)定時(shí)器1

        SCON |= 0x50;        // 串口工作于方式1,允許接收
}
/* ***************************************************** */
// 函數(shù)名稱:UART_SendOneByte()
// 函數(shù)功能:發(fā)送一個(gè)字節(jié)
// 入口參數(shù):待發(fā)送的數(shù)據(jù)(uDat)
// 出口參數(shù):無(wú)
/* ***************************************************** */
void main(void)
{
  unsigned char X;
UART_Init();
while(1)
{
if(RI)
{
   X=SBUF;
   while(!RI);
   RI=0;
   if(X=='C')
   J4=0;
   if(X=='O')
   J4=1;

  }
  else
  {
          SBUF=X;
        while(!TI);
         TI=0;
  }




  }

}
本程序?qū)崿F(xiàn)的效果PC端是發(fā)送字符C,繼電器吸和;PC不斷收到字符C。       發(fā)送字符O,繼電器斷開(kāi)PC不斷收到字符O。
想要接發(fā)次數(shù)是一致的?
QQ截圖20161115200835.png
回復(fù)

使用道具 舉報(bào)

ID:148140 發(fā)表于 2016-11-15 21:36 | 顯示全部樓層
很給力   很  有用
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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