freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

畢業(yè)設計論文單片機msp430與pc機串口通訊設計(編輯修改稿)

2024-12-13 23:05 本頁面
 

【文章內容簡介】 n switch nRes case 1 UART1_TX_BUF[0] O UART1_TX_BUF[1] K UART1_TX_BUF[2] 13 nTX1_Len 3 設置中斷標志進入發(fā)送中斷程序 IFG2 UTXIFG1 nRX1_Len 0 break case 2 for n 0n nRX1_Lenn UART1_TX_BUF[n] UART1_RX_Temp[n] UART1_TX_BUF[nRX1_Len] O UART1_TX_BUF[nRX1_Len1] K UART1_TX_BUF[nRX1_Len2] 13 nTX1_Len nRX1_Len 3 設置中斷標志進入發(fā)送中斷程序 IFG2 UTXIFG1 nRX1_Len 0 break case 1 UART1_TX_BUF[0] E UART1_TX_BUF[1] R UART1_TX_BUF[2] R UART1_TX_BUF[3] O UART1_TX_BUF[4] R UART1_TX_BUF[5] 13 nTX1_Len 6 設置中斷標志進入發(fā)送中斷程序 IFG2 UTXIFG1 nRX1_Len 0 break 在上面的程序中主要根據 ProcessCMD UART1_RX_TempnRX1_Len 對得到的結果進行處理向 PC 發(fā)送響應數據如果接收到的數據有錯誤則發(fā)送 ERROR 數據封裝完成后設置 nTx1_Len的長度并通過 IFG2 UTXIFG1發(fā)送中斷從而使中斷處理程序進行數據發(fā)送上面程序中 ProcessCMD UART1_RX_TempnRX1_Len 主要處理接收到的數據并返回相應的代碼以使主程序處理該函數的具體代碼為 int ProcessCMD char pBuf[]int nLen int nTemp 1 int i if nLen 2 return 1 if nLen 5 if pBuf[0] A pBuf[1] T pBuf[2] E pBuf[3] 0 nTemp 1 if pBuf[0] A pBuf[1] T pBuf[2] E pBuf[3] 1 nTemp 2 return nTemp 167。 322 上位機 PC 機程序設計 一上位機串口通訊編程方法的選擇 隨著 Windows在國內的普及越來越多的微機用戶轉向了 Windows操作系統(tǒng)所以在 DOS環(huán)境下利用匯編語言和 C語言對串口通信的編程方式已經不再被看好在Windows 操作系統(tǒng)下利用 VC++ 60 開發(fā)平臺對串口通信上位機編程其軟件界面非常方便友好編程工作量相對較小只需進行主要應用功能的編程和少量界面控制的編程 [12] 在 Windows 環(huán)境下利用 PC 機串口進行通信的常用方法有以下幾種一是利用Windows API 通 信 函 數 二 是 利 用 VC 的 標 準 通 信 函 數_inp_inpw_inpd_outp_outpw_outpd 等直接對串口進行操作三是使用 Microsoft Visual C 的通信控件 MSComm 四是利用第三方編寫的通信類 [13]本設計將介紹用PComm 開發(fā)PC機與單片機的通信程序的解決方案 二 Pm 主要命令碼 PComm Professional Comm Tool for PC 串口通信軟件包專門運用Windows NT2020XP 如今 WindowsNT2020XP 已被廣泛應用 而它提供的 Win32Comm API 卻復雜難用 而且沒有提供如 Zmodem 等高階應用函數 這增加了通信軟件工程師的負擔針對這種狀況 MOXA 開發(fā)了一套簡單易用的程式函數庫及功能強大的輔助工具 PCommPComm Pro 支持多種編程語言如 Visual BasicVCDelphi 等并且適用于任何在 Windows NT2020XP 下以 Win 32 COMMAPI 為基礎的驅動程式的其他品牌的多串口卡 [14] PComm 的主要命令碼有以下幾種 [15] 1 sioopen port 用于設置并打開串口其中 port的 1234分別代表 COMCOM2COM3COM4當返回值為 0時表示串口已經打開否則為串口打開出錯 2 sio close port 關閉串口當返回值為0時表示串口已經關閉否則為串口關閉出錯 3 sio ioctl port baud mode 用于設置串口波特率校驗位數據位停止位等參數 4 sio getch 從串口輸入緩沖區(qū)讀出一個字符返回值為0表示已收到數據 5 sioread port buf len 用于從串口輸入緩沖區(qū)讀出一串字符 buf代表字符串數組 len代表數組長度返回值為0表示未收到字符大于0代表收到字符的個數 6 sioSetReadTimeouts port TotalTimeouts IntervalTimeouts 在設定的等待時間內連續(xù)讀串口輸入緩沖區(qū) TotalTimeouts 代表設定的等待時間 IntervalTimeouts 代表每次讀出的間隔時間 7 sioflush port func 用于清空緩沖區(qū)當 func 為0時清空輸入緩沖區(qū)為1時清空輸出緩沖區(qū)為2時清空輸入輸出緩沖區(qū) 8 sioputch port term 用于向串口緩沖區(qū)發(fā)送一個字符返回值為0時表示發(fā)送正確否則表示 發(fā)送錯誤 9 sio write port buf len 用于從串口緩沖區(qū)發(fā)送一串字符 buf 代表字符串數組 len 代表數組長度 三上位機 PC 機通信協(xié)議 分布式控制系統(tǒng)中的每臺下位機均有唯一的地址PC機發(fā)送數據時先發(fā)送被叫單片機地址被叫單片機對地址進行判斷地址錯誤就不予理睬地址正確則向上位機發(fā)送呼叫應答信號 [16]PC 機在接收到呼叫應答信號之后將向單片機發(fā)出通信命令字符串以下是上位機 PC 機的通訊協(xié)議格式 表 32 上位機通訊協(xié)議格式 單片機號 單片機號 命令碼 命令碼 停止標志 其中單片機號代表現場 第幾臺單片機占用1個字節(jié)發(fā)送兩次的目的是為了防止干擾命令碼則代表上位機向下位機發(fā)布的工作命令它也占用1個字節(jié)發(fā)送兩次的目的也是為了防止干擾而停止標志則表明上位機一次命令發(fā)送完畢使用時可依據該標志判斷上位機的命令是否發(fā)送完畢 四上位機串口通訊實現過程 在用 PComm 處理 PC 機的串口通信時其實現過程如下 1啟動 VC60新建一個基于對話框的應用程序 TxRx同時增加靜態(tài)文本編輯框和按鈕等控件 [17]如圖 33 所示 圖 33 基于對話框的接收發(fā)送數據程序 根據實際需要還可以添加更多控件諸如串口的打開和關閉按鈕波特率選 擇框以及一些實現更加高級功能的控件等在這里僅添加基本的發(fā)送接收等按鈕控件 2 按照表 33 為每個控件添加相應的變量 表 33 TxRx 應用程序各控件的屬性 控 件 ID 變量名 類 型 按 鈕 IDC_TRSMITT 發(fā)送按鈕 Edit1 IDC_TXDATA M_TxData Cstring Edit2 IDC_RXDATA M_RxData Cstring 發(fā)送編輯控件的屬性添加過程如圖 34 所示其他屬性以及其他控件的添加方法類似 圖 34 發(fā)送編輯控件 ID 屬性設置方法 3PComm.h和 PComm. lib 加入到工程中并在 TxRxDlgcpp 文件中加入#include PComm. h 頭文件此后便可調用其提供的通信命令集 [18] 4TxRxDlgcpp 文件中添加初始化程序代碼也就是在 On InitiDialog 函數中的 TODO 語句后加入以下代碼 TODO Add extra initialization here Int ret port 1 ret sio open port 打開串口1 sio DTR port 0 置 DTR 為低電平 sio ioctl port B9600 P NONE| BIT 8| STOP 1 設置波特率 為 96008位數據位1位停止位無校驗位 添加結果入圖 35 所示 圖 35 在 TxRxDlgcpp 里添加初始化程序 四上位機通信程序 對上位機通信程序的設計除了初始化串口外剩下的就是對接收和發(fā)送程序的設計了下面是一個簡單的接收發(fā)送子程序其功能是按照一定時間間隔對串口進行讀操作并能夠每次向串口緩沖區(qū)發(fā)送 5 個字符 [19] void CTXRXDlg Send Recv 收發(fā)數據子函數 while 1 Int ret1 Sio flush port 2 清空串口輸入輸出緩沖區(qū) siowrite port15 向串口緩沖區(qū)發(fā)送5個字符 sioSetreadTimeouts port401 在40ms內每隔1ms讀一次串口 ret sioread portRecvBuf1 if ret1> 0 sio close port break 若收到數據關閉串口跳出循環(huán) else 若未收到數據對串口再一次發(fā)數據并再次查詢接收 以上只是一個簡單的接收發(fā)送程序在實際應用中根據實現功能的不同還可以設計更加復雜 可操作性更高的程序 結 論 串行通信端口在系統(tǒng)控制的范疇中一直占據著及其重要的地位它不僅沒有因為時代的進步而遭淘汰反而在規(guī)格上越來越完善應用也越來越廣泛作為一種基本而又靈活方便的通信方式串口通信被廣泛應用于 PC 與 PC 或者 PC 與單片機之間的數據交換以及其他工業(yè)控制與自動控制中 [20]本設計給出了在分布式控制系統(tǒng)中上位PC機與下位單片機 MSP430F149 之間進行異步串行通信的解決方案實現了上位機向多個最多 8 個下位機發(fā)送信息以及下位機接收上位機的數據并能夠向上位機發(fā)送數據的功能本設計方案在實際運行過程中簡單方 便穩(wěn)定可靠較好地解決了上位機與下位機之間的通信問題 本設計利用 PCOMM 開發(fā)上位機通信程序具有較大優(yōu)勢雖然上位機程序設計有多種方法包括 DOS 系統(tǒng) 下的 C 語言和匯編 Windows 系統(tǒng)下利用 Windows API通信函數或 VC 的標準通信函數 _inp_inpw_inpd_outp_outpw_outpd 直接對串口進行操作或者利用 Microsoft Visual C 的通信控件 MSComm 以及利用第三方編寫的通信類但是這幾種方法都過于復雜對程序員要求較高而且可靠性并不是很好而 PCOMM 是由第三方編寫的專門針對串口通信 的應用工具包相對于其他方法來說 PComm具有易開發(fā)易排難高兼容的特點另外 PComm提供了許多基于函數的命令集來處理串口通信可以在等多種開發(fā)工具下使用且具有傳輸速度快使用靈活方便等特點能夠滿足復雜情況下的串口通信要求 RS232C 標準規(guī)定驅動器允許有2500pF的電容負載通信距離將受此電容限制例如采用 150pFm的通信電纜時最大通信距離為 15m 若每米電纜的電容量減小通信距離可以增加傳輸距離短的另一原因是 RS232 屬單端信號傳送存在共地噪聲和不能抑制共模干擾等問題因此一般用于 20m 以內的通信 RS485 總線 通信距離幾十米到上千米 RS485 采用平衡發(fā)送和差分接收因此具有抑制共模干擾的能力加上總線收發(fā)器具有高靈敏度能檢測低至 200mV 的電壓故傳輸信號能在千米以外得到恢復 RS485 采用半雙工工作方式任何時候只能有一點處于發(fā)送狀態(tài) 2020 1 3942 [3] 胡大可 MSP430系列超低功耗 16位單片機原理與應用 北京北京航空航天大學出版社 2020 年 [4] 魏小龍 MSP430 系列單片機接口技術及系統(tǒng)設計實例 北京 北京航空航天大學出版社 2020210223 [5] 沈建華 楊艷琴 翟驍曙 MSP430 系列 16 位超低功耗單片機原理與應用 北京清華大學出版社 2020 年 [6] 胡大可 MSP系列單片機 C語言程序設計與開發(fā) 北京北京航空航天大學出版社 2020 年 157178 [7] 秦龍 MSP430 單片機應用系統(tǒng)開發(fā)典型實例 中國電力出版社 2020 年120131151169
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1