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

正文內(nèi)容

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

2024-12-13 23:05 本頁(yè)面
 

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