微機原理課設報告_第1頁
微機原理課設報告_第2頁
微機原理課設報告_第3頁
微機原理課設報告_第4頁
微機原理課設報告_第5頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

微機原理及應用課程設計設計題目:基于PC機串行通信的點對點聊天系統專業計算機科學與技術班級計091學號3090911023學生孟杰指導教師王理2012年1學期實驗目的與要求:《微機原理及應用課程設計》的目的在于檢驗和提高學生在匯編語言程序設計、微機原理與接口綜合應用方面分析問題與解決問題的能力,同時也給學生提供更多、更好的訓練機會。匯編語言程序設計類題目要求采用32位匯編語言,鼓勵采用GUI界面。硬件接口類題目,要求至少選用微機實驗裝置中兩部分以上的硬件電路(還需將它們有機組合起來)并編制相應的應用軟件,要求軟件設計應盡可能利用實驗裝置資源并提高效率。為了發揮每一個同學的創造能力,每一題目依據題目均給出了設計要求(分基本要求與進一步要求兩部分)及部分設計提示。學生可根據設計要求,選擇利用合適的器件,構成有效的硬件電路來完成。對于學有余力的學生,除了完成基本要求與進一步要求的內容外,還可對同一題選擇不同的器件構成不同的硬件電路,或自行進行功能擴展,提高性能指標,盡情發揮和創造。要求完成:(1)符合設計要求的硬件和軟件設計、編碼和測試;(2)軟件運行需有版權頁,署上姓名和學號;(3)完成全部工作后,按設計要求由教師當堂驗收、提問要求,并根據基本要求、提高和探索實驗完成結果評定驗收成績,指出問題;(4)整理全部資料,總結提高,并分別撰寫課程設計報告。1)基本要求采用VB、VC、C#或其它的開發工具設計一個簡易的聊天系統,用戶可以設置波特率或采用自動協商機制。界面如下圖。2)設計提示在Windows平臺上通過API或MSComm控件二種方式實現串行通信。3)進一步設計要求采用多線程完成通信任務。二.軟件環境:本次開發環境是windowsxp,vs2008。開發語言:C#。實驗原理:串行端口的本質功能是作為CPU和串行設備間的編碼轉換器。當數據從CPU經過串行端口發送出去時,字節數據轉換為串行的位。在接收數據時,串行的位被轉換為字節數據。在Windows環境(WindowsNT、Win98、Windows2000)下,串口是系統資源的一部分。應用程序要使用串口進行通信,必須在使用之前向操作系統提出資源申請要求(打開串口),通信完成后必須釋放資源(關閉串口)。本次實驗調用C#自帶的SerialPort控件實現串口通訊。注:看了微軟的MSDN6.0,其WindowsAPI中關于串行通訊設備(不一定都是串口RS-232C或RS-422或RS-449)速率的設置,最大可支持到RS_256000,即256Kbps!也不知道到底是什么串行通訊設備?但不管怎樣,一般主機和單片機的串口通訊大多都在9600bps,可以滿足通訊需求。主要代碼:使用C#自帶的SerialPor控件。1...在“工具箱”的“組件”中選擇SerialPor控件添加。2...設置串口并打開serialPort1.PortName="COM1";serialPort1.BaudRate=9600;serialPort1.Open();3...寫入數據可以使用Write或者下面的函數serialPort1.WriteLine(str);4...添加數據接收的事件privatevoidserialPort1_DataReceived(objectsender,SerialDataReceivedEventArgse)usingSystem;usingSystem.IO.Ports;usingSystem.Linq;usingSystem.Windows.Forms;//調用C#自帶serialPort控件進行串口編程namespaceserialport{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidserialPort1_DataReceived(objectsender,System.IO.Ports.SerialDataReceivedEventArgse){//使用委托進行跨線程讀取數據Invoke(newEventHandler(delegate{txtreceived.Text+=port.ReadExisting()+"\r\n";}));}privatevoidForm1_Load(objectsender,EventArgse){foreach(stringcominSystem.IO.Ports.SerialPort.GetPortNames())//自動獲取串行口名稱cmbPortName.Items.Add(com);cmbPortName.SelectedIndex=0;}privatevoidbtnopen_Click(objectsender,EventArgse){try{if(port.IsOpen)port.Close();else{//端口設置//port.BaudRate=(BaudRate)Enum.Parse(typeof(BaudRate),cmbBaudRate.Text);//port.DataBits=(DataBits)Enum.Parse(typeof(DataBits),cmbDataBits.Text);port.BaudRate=int.Parse(cmbBaudRate.Text);//設置波特率port.DataBits=int.Parse(cmbDataBits.Text);//設置數據位port.StopBits=(StopBits)Enum.Parse(typeof(StopBits),cmbStopBits.Text);port.Parity=(Parity)Enum.Parse(typeof(Parity),cmbParity.Text);//port.Parity=(Parity)Enum.Parse(typeof(Parity),cmbParity.Text);port.PortName=cmbPortName.Text;//打開端口port.Open();}gbPortSettings.Enabled=!port.IsOpen;txtsend.Enabled=btnsend.Enabled=port.IsOpen;if(port.IsOpen)btnopen.Text="斷開連接";elsebtnopen.Text="開始連接";if(port.IsOpen)txtsend.Focus();}catch(Exceptioner){MessageBox.Show("端口連接失敗!"+er.Message,"提示");}}privatevoidbtnsend_Click(objectsender,EventArgse){for(inti=0;i<txtsend.Lines.Count();i++)port.WriteLine(txtsend.Lines[i]);txtsend.Text="";}privatevoidbtnexit_Click(objectsender,EventArgse){Close();}privatevoidcmbPortName_SelectedIndexChanged(objectsender,EventArgse){}privatevoidcmbBaudRate_SelectedIndexChanged(objectsender,EventArgse){}privatevoidcmbDataBits_SelectedIndexChanged(objectsender,EventArgse){}privatevoidcmbStopBits_SelectedIndexChanged(objectsender,EventArgse){}privatevoidcmbParity_SelectedIndexChanged(objectsender,EventArgse){}privatevoidtxtreceived_TextChanged(objectsender,EventArgse){}privatevoidtxtsend_TextChanged(objectsender,EventArgse){}privatevoidlabel4_Click(objectsender,EventArgse){}}}實驗截圖本次實驗使用了虛擬端口,因此使用軟件ConfigureVirtualSerialPortDriver虛擬了幾個用于實驗的端口,截圖如下:心得體會:短短一周的課程設計已經結束,在老師的指導下達到了基本的要求,我做的是點對點聊天系統,使用的是不是很熟悉的C#做的,所以其中出現了多多少少一些問題,但在同學與老師的幫助下,問題都得到了解決,通過本次串口實驗,我對串口通信的知識了解的更透徹,這是在剛開始對串口通信知識不了解的情況下就編程而造成許多錯誤之后才得到的結果。在網上查找資料的時候也接觸到了不少其他的編程

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論