欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      串口通信實(shí)驗(yàn)報(bào)告范文

      時(shí)間:2019-05-12 07:29:09下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《串口通信實(shí)驗(yàn)報(bào)告范文》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《串口通信實(shí)驗(yàn)報(bào)告范文》。

      第一篇:串口通信實(shí)驗(yàn)報(bào)告范文

      華南農(nóng)業(yè)大學(xué)

      實(shí)驗(yàn)報(bào)告

      ----------目錄----------

      1、實(shí)驗(yàn)任務(wù)和目的..............................................................................................................2、實(shí)驗(yàn)準(zhǔn)備..........................................................................................................................3、實(shí)驗(yàn)步驟................................................................................................................................4、實(shí)驗(yàn)分析與總結(jié)....................................................................................................................(1)、分析.............................................................................................................................(2)、總結(jié).............................................................................................................................1、實(shí)驗(yàn)任務(wù)和目的

      了解串行通信的背景知識(shí)后,通過(guò)三線制制作一條串口通信線(PC-PC),并編程實(shí)現(xiàn)兩臺(tái)PC間通過(guò)RS-232C通信。要求兩臺(tái)PC機(jī)能進(jìn)行實(shí)時(shí)的字符通信,并了解工業(yè)自動(dòng)化控制中的基本通信方式。

      2、實(shí)驗(yàn)準(zhǔn)備

      1、檢查PC是否具有串行通信接口,并按其針腳類(lèi)準(zhǔn)備一條串口通信線纜。

      2、串口包的安裝,下載javacomm20-win32.zip并解壓,將win32com.dll復(fù)制到bin目錄下;將comm.jar復(fù)制到lib;把javax.comm.properties也同樣拷貝到lib目錄下,再將上面提到的文件放到JRE相應(yīng)的目錄下就可以了。

      3、實(shí)驗(yàn)步驟

      1、將實(shí)驗(yàn)所需RS-232纜線準(zhǔn)備好,并將JAVA串口包復(fù)制到相應(yīng)地目錄下。

      2、查找有關(guān)串口通信的書(shū)籍以及在網(wǎng)上查找相應(yīng)地串口通信代碼。

      3、用JAVA編程軟件JCreator編寫(xiě)代碼。

      4、實(shí)驗(yàn)分析與總結(jié)

      (1)、分析

      (I)、對(duì)串口讀寫(xiě)之前需要先打開(kāi)一個(gè)串口并檢測(cè)串口是否被占用: public void open(){//打開(kāi)串口以及輸入輸出流

      recieve=false;

      try

      {serialPort=(SerialPort)portId.open(“Serial Communication”, 2000);}

      catch(PortInUseException e){System.out.println(“端口正被占用!”);}

      try

      {serialPort.setSerialPortParams(9600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);}

      catch(UnsupportedCommOperationException e){System.out.println(“不支持通信”);}

      try

      {

      outputStream=serialPort.getOutputStream();

      inputStream=serialPort.getInputStream();

      1-完整運(yùn)行程序如圖所示:

      圖1

      (2)、總結(jié)

      通過(guò)本次串口實(shí)驗(yàn),我對(duì)串口通信的知識(shí)了解的更透徹,這是在剛開(kāi)始對(duì)串口通信知識(shí)不了解的情況下就編程而造成許多錯(cuò)誤之后才得到的結(jié)果。在網(wǎng)上查找資料的時(shí)候也接觸到了不少其他的編程語(yǔ)言例如VB,delphi,C#等,這也讓我對(duì)這些從沒(méi)有學(xué)過(guò)的語(yǔ)言有所了解,我想這些知識(shí)對(duì)以后的實(shí)驗(yàn)工作都有幫助。

      3--

      第二篇:串口通信實(shí)驗(yàn)報(bào)告

      實(shí)驗(yàn)三

      雙機(jī)通信實(shí)驗(yàn)

      一、實(shí)驗(yàn)?zāi)康?/p>

      UART 串行通信接口技術(shù)應(yīng)用

      二、實(shí)驗(yàn)實(shí)現(xiàn)的功能

      用兩片核心板之間實(shí)現(xiàn)串行通信,將按鍵信息互發(fā)到對(duì)方數(shù)碼管顯示。

      三、系統(tǒng)硬件設(shè)計(jì)

      (1)單片機(jī)的最小系統(tǒng)部分

      (2)電源部分

      (3)人機(jī)界面部分

      數(shù)碼管部分

      按鍵部分

      (4)串口通信部分

      四、系統(tǒng)軟件設(shè)計(jì)

      #include #define uchar unsigned char #define uint unsigned int void send();uchar code0[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0-9的數(shù)碼管顯示

      sbit H1=P3^6;sbit H2=P3^7;sbit L1=P0^5;sbit L2=P0^6;sbit L3=P0^7;

      uint m=0,i=0,j;uchar temp,prt;/***y延時(shí)函數(shù)***/ void delay(uint k){ uint i,j;

      }

      /***鍵盤(pán)掃描***/ char scan_key(){ H1=0;H2=0;

      L1=1;L2=1;L3=1;if(L1==0){ delay(5);if(L1==0){ L1=0;H1=1;H2=1;if(H1==0)} //定義局部變量ij

      //外層循環(huán) for(i=0;i

      { m=1;return(m);} if(H2==0){ m=4;return(m);} } }

      //KEY1鍵按下

      //KEY4鍵按下

      if(L2==0){ delay(5);if(L2==0){ L2=0;H1=1;H2=1;if(H1==0)

      { m=2;return(m);} if(H2==0){ m=5;return(m);} } }

      //KEY5鍵按下 //KEY2鍵按下

      if(L3==0){ delay(5);if(L3==0){ L3=0;H1=1;H2=1;if(H1==0){ m=3;

      //KEY3鍵按下

      }

      return(m);} if(H2==0){ m=6;return(m);} } } return(0);

      // KEY6鍵按下

      /***主函數(shù)***/ main(){ P1M1=0x00;P1M0=0xff;

      SCON=0x50;//設(shè)定串行口工作方式1 TMOD=0x20;//定時(shí)器1,自動(dòng)重載,產(chǎn)生數(shù)據(jù)傳輸速率 TH1=0xfd;//數(shù)據(jù)傳輸率為9600 TR1=1;//啟動(dòng)定時(shí)器1 P0&=0xf0;while(1){

      //如果有按鍵按下 if(scan_key()){ SBUF=scan_key();//發(fā)送數(shù)據(jù) while(!TI);TI=0;}

      if(RI){ RI=0;}

      // //

      等待數(shù)據(jù)傳送 清除數(shù)據(jù)傳送標(biāo)志

      //是否有數(shù)據(jù)到來(lái)

      // 清除數(shù)據(jù)傳送標(biāo)志

      temp=SBUF;

      // 將接收到的數(shù)據(jù)暫存在temp中

      P1=code0[temp];// 數(shù)據(jù)傳送到P1口輸出 delay(500);} } //延時(shí)500ms

      五、實(shí)驗(yàn)中遇到的問(wèn)題及解決方法

      (1)串行口和定時(shí)器的工作方式設(shè)定是關(guān)鍵,本次是按需傳輸?shù)氖莾晌皇M(jìn)制數(shù),串行口為工作方式1,定時(shí)器為8位自動(dòng)重載;(2)采用P0&=0xf0語(yǔ)句使4個(gè)數(shù)碼管靜態(tài)點(diǎn)亮;

      (3)在發(fā)送和接受過(guò)程中,用標(biāo)識(shí)位TI和RI來(lái)檢測(cè)發(fā)送和接受是否完成;(4)在用電腦和單片機(jī)進(jìn)行串口通信測(cè)試時(shí),電腦的傳世速率一定要和單片機(jī)的傳輸速率相等,否則顯示會(huì)出現(xiàn)錯(cuò)誤。

      指導(dǎo)老師簽字:

      日期:

      第三篇:串口通訊實(shí)驗(yàn)報(bào)告

      網(wǎng)絡(luò)編程與實(shí)踐實(shí)驗(yàn)報(bào)告

      實(shí)驗(yàn)內(nèi)容:串口通信編程 學(xué)號(hào):S201502189 姓名:職榮豪 日期:2015-9-28

      一、實(shí)驗(yàn)要求

      使用VS2010編寫(xiě)基于對(duì)話框的MFC應(yīng)用程序,兩個(gè)窗口分別使用兩個(gè)串口,使得這兩個(gè)窗口可以進(jìn)行通信,包括數(shù)據(jù)的發(fā)送與接收。

      二、實(shí)驗(yàn)原理

      本實(shí)驗(yàn)使用Microsoft Communications Control控件,利用這個(gè)ActiveX控件,只需要編寫(xiě)少量代碼即可輕松進(jìn)行通信。

      該控件相關(guān)的函數(shù)如下: put__CommPort:設(shè)置串口號(hào)

      put_Settings:以字符串的形式設(shè)置波特率、奇偶校驗(yàn)位(n-無(wú)校驗(yàn),e-偶校驗(yàn),o-奇校驗(yàn))、數(shù)據(jù)位數(shù)、停止位數(shù)

      put_InputMode:設(shè)置接收數(shù)據(jù)的類(lèi)型(0-文本類(lèi)型,1-二進(jìn)制類(lèi)型)put_InputLen:設(shè)置從接收緩沖區(qū)讀取的字節(jié)數(shù),0表示全部讀取 put_InBufferSize:設(shè)置接收緩沖區(qū)大小 put_OutBufferSize:設(shè)置發(fā)送緩沖區(qū)大小

      put_RThreshold:設(shè)定當(dāng)接收幾個(gè)字符時(shí)觸發(fā)OnComm事件,0表示不產(chǎn)生事件,1表示每接收一個(gè)字符就產(chǎn)生一個(gè)事件

      put_SThreshold:設(shè)定在觸發(fā)OnComm事件前,發(fā)送緩沖區(qū)內(nèi)所允許的最少的字符數(shù),0表示發(fā)送數(shù)據(jù)時(shí)不產(chǎn)生事件,1表示當(dāng)發(fā)送緩沖區(qū)空時(shí)產(chǎn)生OnComm事件

      put_PortOpen:打開(kāi)或關(guān)閉串口,傳入?yún)?shù)為true時(shí)打開(kāi)串口,傳入?yún)?shù)為false時(shí)關(guān)閉串口 get_CommEvent:獲得串口上剛發(fā)生的事件,事件值為2表示接收到數(shù)據(jù)

      get_InBufferCount:獲得緩沖區(qū)中的數(shù)據(jù)位數(shù)

      get_Input:獲取緩沖區(qū)數(shù)據(jù),返回類(lèi)型為VARIANT put_Output:發(fā)送數(shù)據(jù)

      三、設(shè)計(jì)思路

      需要添加一個(gè)Microsoft Communications Control控件,用于進(jìn)行串口通信。由于要求同一程序可運(yùn)行兩個(gè)窗口進(jìn)行相互通信,需要兩個(gè)窗口開(kāi)啟兩個(gè)不同串口,故需要添加一個(gè)Edit Control控件用于輸入串口號(hào),并添加打開(kāi)串口按鈕,在點(diǎn)擊該按鈕時(shí)對(duì)串口控件的參數(shù)進(jìn)行設(shè)置并開(kāi)啟串口。同時(shí)添加關(guān)閉串口按鈕,點(diǎn)擊后關(guān)閉串口并可以對(duì)串口號(hào)進(jìn)行修改。

      需要添加兩個(gè)Edit Control 分別用于顯示接收到的數(shù)據(jù)以及輸入要發(fā)送的數(shù)據(jù)。需要添加一個(gè)發(fā)送按鈕,點(diǎn)擊后發(fā)送輸入的數(shù)據(jù)。

      四、實(shí)驗(yàn)步驟

      1.建立基于對(duì)話框的MFC應(yīng)用程序 2.添加界面控件并設(shè)置ID與Caption 添加Microsoft Communications Control控件,用于進(jìn)行串口通信 添加一個(gè)Edit Control控件,用于輸入串口號(hào),ID設(shè)置為IDC_PORT 添加一個(gè)Static Text控件,用于標(biāo)注端口號(hào),將Caption設(shè)置為“串口號(hào):”

      添加兩個(gè)按鈕,分別用于打開(kāi)串口、關(guān)閉串口。IDC分別設(shè)置為IDC_BTN_OPEN、IDC_BTN_CLOSE,Caption分別設(shè)置為“打開(kāi)”、“關(guān)閉” 添加兩個(gè)Edit Control,分別用于顯示接收到的數(shù)據(jù)以及輸入要發(fā)送的數(shù)據(jù),ID分別設(shè)置為IDC_RECEIVE、IDC_SEND 添加兩個(gè)Static Text控件,用于標(biāo)注接收區(qū)與發(fā)送區(qū),Caption分別設(shè)置為“接收區(qū)”、“發(fā)送區(qū)”

      添加一個(gè)按鈕用于發(fā)送數(shù)據(jù),ID設(shè)置為IDC_BTN_SEND,Caption設(shè)置為“發(fā)送” 調(diào)整控件的大小與位置。

      完成后如圖:

      3.給控件綁定變量

      右鍵單擊Microsoft Communications Control控件,選擇“添加變量”,變量名為m_com 打開(kāi)類(lèi)向?qū)Ыo控件添加變量:

      給IDC_PORT綁定變量,用于存放輸入的端口號(hào),數(shù)據(jù)類(lèi)型為int,變量名為m_port 給IDC_RECEIVE綁定變量,用于存放接收到的數(shù)據(jù),數(shù)據(jù)類(lèi)型為CString,變量名為m_strReceive 給IDC_SEND綁定變量,用于存放輸入的待發(fā)送的數(shù)據(jù),數(shù)據(jù)類(lèi)型為CString,變量名為m_strSend

      4.給控件添加事件響應(yīng)函數(shù)

      右鍵單擊Microsoft Communications Control控件,選擇“添加事件處理程序”,點(diǎn)擊“添加編輯”,生成響應(yīng)函數(shù),此函數(shù)用于接收數(shù)據(jù)。

      在函數(shù)中添加以下代碼:

      UpdateData(TRUE);if(nEvent == 2){

      } UpdateData(FALSE);//將m_strReceive的值顯示到控件中

      //更新m_strReceive的值

      //獲取事件值

      //獲取緩沖區(qū)位數(shù)

      //時(shí)間值為2,此時(shí)為收到數(shù)據(jù) int nEvent = m_com.get_CommEvent();int k = m_com.get_InBufferCount();if(k <= 0)//位數(shù)小于等于0時(shí)則返回 return;char* str =(char*)m_com.get_Input().parray->pvData;//獲取接收到數(shù)據(jù)的字*(str + k)= '