實際操作PC端串口調試助手軟件與實際51單片機相互通信


一、實際操作PC端串口調試助手軟件與實際51單片機相互通信原理

51單片機的TXD(發送數據)和RXD(接收數據)先分別與USB轉TTL的RXD(接收數據)和TXD(發送數據)交叉對應連接來相互發送和接收數據,USB轉TTL再通過激活的串口與PC端串口調試助手軟件連接,從而實現相互通信。 

二、實際操作PC端串口調試助手軟件與實際51單片機相互通信原理

三、USB轉TTL串口與實際51單片機相互通信接線

四、燒寫PC端串口調試助手軟件與實際51單片機相互通信的單片機C語言程序

#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar flag,a,i,j;
uchar code table0[]="I get ";
uchar code table1[]="\r\n";//回車換行
  void String_Timer2_init()//串口定時器初始化函數
{
   TMOD=0x20;//0010 0000定時器工作方式為方式2,8位自動重裝。
   TH1=0xfd;//初始化計數器高8位:1111 1101
   TL1=0xfd;//初始化計數器低8位
   TR1=1;//啟動定時器1
   SM0=0;//設定串口工作方式為方式1(10位異步通信)
   SM1=1;//設定串口工作方式
   REN=1;//打開串口中斷接收允許
   EA=1;//打開全局中斷
   ES=1;//打開串口中斷允許位
  }
  void main()
{
   String_Timer2_init();//串口定時器初始化函數
   while(1)//固定循環
 {
    if(flag==1)//判斷檢測發送數據標志位變量flag是否為1,若為1則運行以下單片機發送數據緩存寄存器給PC端串口調試助手發送數據。
  {
     ES=0;//關閉串口中斷允許位,阻止進入串口中斷服務程序。為什么要設置ES=0?由於接下來單片機發送數據緩存寄存器給PC端串口調試助手發送數據結束后,TI(即串口發送中斷標志位)=1,申請串口中斷,若ES不設置為0,在TI(即串口發送中斷標志位)=1時,申請串口中斷進入串口中斷服務程序執行flag=1,又得回來再次判斷if(flag==1),形成固定循環,導致無法運行其他程序。          
     for(i=0;i<6;i++)//循環發送數據個數
   {
      SBUF=table0[i];//將table0數組中的數據存入單片機發送數據緩存寄存器
      while(!TI);//判斷串口發送中斷標志位是否為1,若為1則單片機發送數據緩存寄存器給PC端串口調試助手發送數據結束。為什么在此編寫while(!TI)?由於需要把單片機發送數據緩存寄存器保存的數據發送給PC端串口調試助手。
      TI=0;//TI(即串口發送中斷標志位)=0,表示單片機發送數據緩存寄存器可重新給PC端串口調試助手發送數據,不可申請串口中斷。
     }
     SBUF=a;//表示單片機接收數據緩存寄存器把從串口中斷服務程序獲取的某數據(用數值變量a表示)賦給單片機發送數據緩存寄存器。為什么?由於串口定時器初始化函數中REN(串口中斷接收允許)=1與ES(串口中斷允許位)=1被初始化后,就可以進入串口中斷服務程序獲取PC端串口調試助手給單片機發送某數據,然后單片機接收數據緩存寄存器接收PC端串口調試助手發來的某數據。       
     while(!TI);//判斷串口發送中斷標志位是否為1,若為1則單片機發送數據緩存寄存器給PC端串口調試助手發送數據結束。為什么在此編寫while(!TI)?由於需要把單片機發送數據緩存寄存器保存的數據發送給PC端串口調試助手。
     TI=0; //TI(即串口發送中斷標志位)=0,表示單片機發送數據緩存寄存器可重新給PC端串口調試助手發送數據,不可申請串口中斷。
     for(j=0;j<3;j++)//循環發送數據個數
   {
      SBUF=table1[j];//將table1數組中的數據存入單片機發送數據緩存寄存器
      while(!TI);//判斷串口發送中斷標志位是否為1,若為1則單片機發送數據緩存寄存器給PC端串口調試助手發送數據結束。為什么在此編寫while(!TI)?由於需要把單片機發送數據緩存寄存器保存的數據發送給PC端串口調試助手。
      TI=0;//TI(即串口發送中斷標志位)=0,表示單片機發送數據緩存寄存器可重新給PC端串口調試助手發送數據,不可申請串口中斷。
     }
     ES=1;//打開串口中斷允許位,允許進入串口中斷服務程序。
     flag=0;//發送數據標志位變量flag置0
   } 
  }
 }
  void string() interrupt 4//串口中斷服務程序(函數)
{
   RI=0;//表示單片機接收數據緩存寄存器可重新接收PC端串口調試助手發送數據,不可申請串口中斷。
   a=SBUF;//表示PC端串口調試助手給單片機接收數據緩存寄存器發送某數據,然后單片機接收數據緩存寄存器接收PC端串口調試助手發來的某數據,並賦給數值變量a。
   flag=1;//發送數據標志位變量flag置1。
  }

五、USB轉TTL串口與實際51單片機相互通信接線后再與電腦連接

六、PC端串口調試助手軟件操作(有兩種PC端串口調試助手軟件

1、第一種PC端串口調試助手軟件操作

(1)、下載PC端串口調試助手軟件,安裝完成后的圖標,如下所示。

(2)、雙擊打開PC端串口調試助手軟件圖標,彈出以下界面。

(3)、USB轉TTL串口與實際51單片機相互通信接線后再與電腦連接后,右鍵點擊電腦上的計算機,在彈出列表中選中屬性,會彈出一個關於電腦控制面板的信息界面,點擊左上邊設備管理器,彈出設備管理器界面,找到端口項點開,出現新增一個通信串口:COM3。

(4)、在PC端串口調試助手軟件界面串口處將通信串口COM1改為通信串口COM3,在波特率處將4800改為9600,點擊“打開串口”。

(5)、在PC端串口調試助手軟件界面點擊“打開串口”彈出的界面

七、PC端串口調試助手軟件與實際51單片機相互通信。

2、第二種PC端串口調試助手軟件操作

(1)、下載PC端串口調試助手軟件,安裝完成后的圖標,如下所示。

(2)、雙擊打開PC端串口調試助手軟件圖標,彈出以下界面。

(3)、USB轉TTL串口與實際51單片機相互通信接線后再與電腦連接后,右鍵點擊電腦上的計算機,在彈出列表中選中屬性,會彈出一個關於電腦控制面板的信息界面,點擊左上邊設備管理器,彈出設備管理器界面,找到端口項點開,出現新增一個通信串口:COM3。

(4)、在PC端串口調試助手軟件界面串口處將通信串口COM1改為通信串口COM3,選擇串口助手項,在串口處改為COM3,在波特率處將4800改為9600,點擊“打開串口”。

(5)、在PC端串口調試助手軟件串口助手項界面的接收緩沖區和發送緩沖區分別選中文本模式

(6)、在PC端串口調試助手軟件界面點擊“打開串口”彈出的界面

 

七、PC端串口調試助手軟件與實際51單片機相互通信。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM