電腦上的串列阜



Similar documents
Microsoft Word - 第四章.doc

Microsoft Word doc

<4D F736F F D D313032A7DEC075BAC2BC66B56EB04FB44EC5AAA7D3C440A7C7A874B2CEBEDEA740A4E2A5552E646F63>

6-1-1極限的概念

Microsoft Word 網頁設計.doc

xls

證 券 簡 易 下 單 :2121 證 券 簡 易 下 單 1. 主 工 具 列 的 視 窗 搜 尋 器 直 接 輸 入 點 擊 主 選 單 證 券 專 區 下 單 特 殊 下 單 2121 證 券 簡 易 下 單 畫 面 說 明 1. 下 單 區 2. 個 股 行 情 資 訊 與

<4D F736F F D20B773AAA9ADBBB4E4BAF4B8F4BBC8A6E6BEDEA740A4E2A5555FABC8A4E1BADD2DADD3A448AAA95F2E646F63>

<4D F736F F D20B0EAA5C1A470BEC7BB50B0EAA5C1A4A4BEC7AF5AAFC5BD73A8EEA4CEB1D0C2BEADFBADFBC342BD73A8EEB1F8A4E5B9EFB7D3AAED A14B>

Microsoft Word - ch01.doc

e-Submission System Quick Reference Guide for Publication Related Matters (Chinese version)

Microsoft Word - 全華Ch2-05.doc

如何加強規管物業管理行業

Microsoft Word - ch07

<30332EAAFEA5F3A440A142A447A142A454A142A57CA147BEC7A5CDB14DB77EC3D2B7D3BEC7B2DFA661B9CF2E786C73>

實德證券網上交易系統示範

第一章 緒論

目 錄 項 目 內 容 頁 數 1 手 機 要 求 3 2 登 記 程 序 3 3 登 入 程 序 4 4 輸 入 買 賣 指 示 6 5 更 改 指 示 14 6 取 消 指 示 18 7 查 詢 股 票 結 存 21 8 查 詢 買 賣 指 示 23 9 更 改 密 碼 查 詢 股

四 修 正 幼 兒 園 師 資 類 科 應 修 學 分 數 為 四 十 八 學 分, 並 明 定 學 分 數 抵 免 之 相 關 規 定 及 規 範 修 習 幼 兒 園 教 育 專 業 課 程 之 最 低 年 限 ( 修 正 條 文 第 五 條 ) 五 發 給 修 畢 師 資 職 前 教 育 證 明

鍵 標 準 型 數 位 話 機 來 電 指 示 燈 會 談 暫 留 鈴 聲 跟 隨 靜 音 禁 鈴 可 程 式 鍵 喇 叭 6 ABC DEF 暫 切 4 GHI 5 JKL 6 MNO 重 撥 固 定 功 能 鍵 7 PQRS 8 TUV 9 WXYZ 功 能 聽 筒 0

Microsoft PowerPoint - 使用 Word 編輯與排版文件 (II).ppt

目 錄 壹 題 目 1: 新 增 商 品 ( 商 品 名 稱 為 玉 井 芒 果 乾 禮 盒 )... 3 貳 題 目 2: 新 增 商 品 ( 商 品 名 稱 為 紅 磚 布 丁 精 選 禮 盒 )... 5 參 題 目 3: 新 增 商 品 ( 商 品 名 稱 為 晶 鑽 XO 醬 禮 盒 ).

101年度社會福利方案 網路線上操作手冊


<4D F736F F D20A4A4B0EAA4E5A4C6A46ABEC7C0B3A5CEBCC6BEC7A874BEC7B873C3D2AED1B1C2BB50BFECAA6B F F2E646F63>

目 錄 頁 1. 歡 迎 使 用 網 上 預 約 面 談 訪 問 系 統 新 用 戶 新 用 戶 登 入 帳 戶 程 序 啟 動 網 上 預 約 面 談 訪 問 帳 戶 核 對 帳 戶 的 地 址 資 料

所 3 學 分 課 程, 及 兩 門 跨 領 域 課 程 共 6 學 分 以 上 課 程 學 生 在 修 課 前, 必 須 填 寫 課 程 修 課 認 定 表, 經 班 主 任 或 指 導 教 授 簽 名 後 始 認 定 此 課 程 學 分 ) 10. 本 規 章 未 盡 事 宜, 悉 依 學 位

PowerPoint 簡報

(Microsoft Word - MOODLE990201\266i\266\245\244\342\245U )

(DP_MFP_Training

<BDC6A5BB204B BBA1A9FAAED12E786C73>

NCKU elearning Manual

<4D F736F F D20B3E6A4B830312D2D2DBCC6BD75BB50BEE3BCC6AABAA55BB4EEB942BAE22E646F6378>

授 課 老 師 章 節 第 一 章 教 學 教 具 間 3 分 鐘 粉 筆 CNC 銑 床 教 學 內 容 CNC 銑 床 之 基 本 操 作 教 材 來 源 數 值 控 制 機 械 實 習 Ⅰ 1. 了 解 CNC 銑 床 的 發 展 2. 了 解 CNC 銑 床 刀 具 的 選 用 3. 了 解

第二組掃描器規範書

Microsoft PowerPoint - 資料庫正規化(ccchen).ppt

關 於 教 育 部 學 習 拍 立 得 教 育 部 於 (103) 年 度 整 合 各 縣 市 政 府 部 屬 機 構 大 學 及 民 間 的 數 位 資 源 與 服 務, 依 不 同 類 型, 分 別 匯 集 於 教 育 大 市 集 教 育 百 科 教 育 媒 體 影 音 教 育 部 學 習 拍

骨 折 別 日 數 表 1. 鼻 骨 眶 骨 ( 含 顴 骨 ) 14 天 11. 骨 盤 ( 包 括 腸 骨 恥 骨 坐 骨 薦 骨 ) 40 天 2. 掌 骨 指 骨 14 天 12. 臂 骨 40 天 3. 蹠 骨 趾 骨 14 天 13. 橈 骨 與 尺 骨 40 天 4. 下 顎 ( 齒


目 錄 一 系 統 登 入... 2 ( 一 ) 系 統 登 入 畫 面... 2 ( 二 ) 首 次 登 入 請 先 註 冊... 3 ( 三 ) 忘 記 單 位 帳 號... 8 ( 四 ) 忘 記 密 碼 ( 五 ) 健 保 卡 更 換 ( 六 ) 重 寄 確 認 信.

簽 呈

投影片 1


壹、組織編制 代碼:C0101意見反映

Microsoft Word - 立法會十四題附件.doc

一、模型資訊

Microsoft Word - 雲林區_免試平台_國中模擬選填_操作手冊.doc

Microsoft Word - BM900HD-2F電腦設定.doc

章節

( 三 ) 走 道 與 建 築 物 結 構 空 間 不 符 規 定 者, 得 降 低 走 道 設 置 位 置 或 空 間 不 足 處 之 部 分 走 道 高 度, 並 視 需 要 採 階 梯 式 設 計, 使 建 築 物 與 其 走 道 間 保 持 1.8 公 尺 以 上, 確 保 人 員 走 行

前 項 第 三 款 所 定 有 機 農 產 品 及 有 機 農 產 加 工 品 驗 證 基 準, 如 附 件 一 第 七 條 驗 證 機 構 受 理 有 機 農 產 品 及 有 機 農 產 加 工 品 之 驗 證, 應 辦 理 書 面 審 查 實 地 查 驗 產 品 檢 驗 及 驗 證 決 定 之

校 長 遴 選 者 就 相 關 遴 選 事 項, 有 程 序 外 之 接 觸 遴 選 會 委 員 在 任 期 間 因 故 無 法 執 行 任 務 或 有 不 適 當 之 行 為 者, 由 各 該 主 管 機 關 解 聘 之 ; 其 缺 額, 依 第 一 項 至 第 五 項 規 定 聘 ( 派 ) 委

Microsoft PowerPoint - Arduino_18堂課_DEMO.ppt

貳、研究動機

CONTENTS 訓 練 內 容 設 計 法 056 淡 季 期 的 訓 練 058 旺 季 期 的 訓 練 060 針 對 爬 坡 賽 的 訓 練 內 容 062 賽 後 的 資 料 分 析 PART4/ 鏑 木 毅 先 生 的 建 言 活 用 於 越 野 路 跑 的 心 跳 訓

Microsoft Word - ATTCH4.docx

網 路 請 購 操 作 手 冊 目 錄 (95~154) 壹 使 用 網 路 請 購 系 統 資 格...95~95 貳 如 何 進 入 網 路 請 購 系 統...96~96 參 網 路 請 購 / 查 詢 系 統 功 能 簡 介...97~111 肆 受 款 人 填 法 範 例...112~11

1公告[1].rtf

BSP 烤箱 - 封面-2


128 提 示 樞 紐 分 析 表 的 用 途 樞 紐 分 析 表 是 指 可 以 用 來 快 速 合 併 和 比 較 大 量 資 料 的 互 動 式 表 格, 透 過 它 可 以 詳 細 分 析 數 值 資 料, 特 別 適 用 於 下 列 情 況 : 需 要 從 含 有 大 量 資 料 的 清

投影片 1

版 本 記 錄 版 本 日 期 作 者 版 本 版 本 變 更 說 明 2012/08/27 Iden 1.0 初 版 2012/09/18 Iden 1.1 加 入 付 款 流 程 等 章 節 2014/11/03 Iden 1.2 加 入 憑 證 管 理 - 憑 證 二 代 卡 放 行 流 程

<4D F736F F D A7DEC075AB4FB065A44ABEC7BAF4B8F4ADD3A74FB3F8A657A740B77EB0D1A6D2A4E2A5552DA6D2A5CDBADD2E646F63>

LP 電腦週邊設備用品_第一組印表機規範書

55202-er-ch03.doc

教 學 活 動 教 學 元 件 時 間 編 號 類 型 時 間 元 件 內 容 說 明 ( 請 填 入 8-9 個 元 件 ) 準 引 起 動 機 動 畫 1 分 鐘 請 製 作 一 動 畫 備 活 以 動 畫 方 式 向 學 生 闡 述 運 算 放 大 器 的 基 本 應 用

國立台灣大學

Microsoft PowerPoint - 02 Virtual Box (new)


2 工 礦 衛 生 技 師 證 明 文 件 者 火 災 學 消 防 法 規 警 報 系 統 消 防 安 全 設 備 專 技 人 員 專 門 職 業 及 技 術 人 員 高 等 考 試 技 師 考 試 高 考 ( 專 技 ) 專 科 三 高 等 檢 定 相 當 類 科 及 格 者 四 消 防 設 備

A2: 國 中 基 測 是 一 種 標 準 化 測 驗, 測 驗 結 果 是 以 量 尺 分 數 表 示 量 尺 分 數 是 透 過 統 計 方 法, 由 答 對 題 數 轉 換 而 來, 其 目 的 是 要 呈 現 每 一 位 考 生 的 每 一 測 驗 學 科 在 所 有 考 生 中 的 相 對

度 ph 度 降 量 量 phph 糖 ph 度 更 3 說 酪 不 不 什 參 度 識 不 度 1

研究一:n人以『剪刀、石頭、布』猜拳法猜拳一次,決定一人勝

Microsoft PowerPoint - sp2 [相容模式]

<4D F736F F D20B773BC572D2BACE3B56FB4C0A54EA7D0A7D0A86BA558B9D2A740B77EB357A97728BAC2BFEFB2D529>

食 生 系 碩 士 生 學 位 考 試 申 請 說 明 ( 一 ) 申 請 步 驟 說 明 : 步 驟 一 : 準 備 紙 本 文 件 (1) 論 文 考 試 申 請 書 (2) 教 師 擔 任 碩 士 班 研 究 生 論 文 口 試 明 細 表 及 聘 函 (3) 歷 年 成 績 單 ( 系 上

<4D F736F F D20BAF4A457B3F8A657A874B2CEA8CFA5CEABFCA4DE2D >

第 6. 節 不 定 積 分 的 基 本 公 式 我 們 可 以 把 已 經 知 道 反 導 函 數 之 所 有 函 數 都 視 為 不 定 積 分 的 基 本 公 式 基 本 公 式 涵 蓋 的 範 圍 愈 大, 我 們 求 解 積 分 就 愈 容 易, 但 有 記 憶 不 易 的 情 事 研 讀

寫 作 背 景 導 讀 [98] L Lyman Frank Baum

Microsoft Word - 4.關鍵教學--陳秀湘new.doc

瑞興銀行

投影片 1

PART 2 系 統 篇 仔 細 檢 查 記 憶 體 和 顯 示 卡 AIDA64 Everest 操 作 : 使 用 AIDA64 檢 測 主 機 溫 度 AIDA64 DirectX AIDA

第 二 章 登 入 交 易 系 統 統 在 您 上 網 後, 可 輸 入 網 路 證 券 ebroker 交 易 網 網 址 到 達 網 路 下 單 交 易 系 首 先 您 將 會 進 入 到 客 戶 登 入 身 份 確 認 畫 面 Step 1. 直 接 輸 入 身 份 字 號, 第 一 位 英

二 兒 歌 選 用 情 形 ( ) 2 ( ) ( )

七 同 意 主 管 機 關 委 請 相 關 機 關 ( 構 ) 查 詢 申 請 登 記 人 之 債 信 刑 案 素 行 及 考 核 資 料 之 同 意 書 前 項 各 款 文 件 應 於 登 記 時 備 齊, 交 付 受 理 登 記 機 關 文 件 不 齊 者, 不 予 受 理 登 記 ; 其 需

內 政 統 計 通 報

<4D F736F F D20BB4FC657B4E4B0C8AAD1A5F7A6B3ADADA4BDA571B773B669A448ADFBBAC2BFEFB357BD64>

虛擬交易所97年GVE3簡易版.doc

桃園市104年國民中學新進教師甄選各校複試方式及需求表

互 補 : 若 兩 個 角 的 和 是 一 個 平 角 ( ), 我 們 稱 這 兩 個 角 互 補, 如 圖, + = 80, 故 我 們 稱 與 互 補 互 餘 : 若 兩 個 角 的 和 是 一 個 直 角, 我 們 稱 這 兩 個 角 互 餘, 如 圖, + =90 0, 故 我

會 員 專 區 使 用 手 冊 目 錄 一 基 本 介 紹 會 員 專 區 登 入 位 置 主 畫 面 與 網 站 架 構 : 功 能 導 覽 列 說 明 :... 3 二 DOI 查 詢 與 維 護... 4 三 DOI 註 冊 期 刊 類 型...

臺灣省教師申訴評議委員會再申訴評議書(草案)

(Microsoft Word -

2016年中國語文科試卷三聆聽及綜合能力考核樣本試卷示例及說明

Microsoft Word - 作業手冊0928 _含QA_.doc

Microsoft Word - B4.doc

網 路 請 購 操 作 手 冊 目 錄 (117~181) 壹 網 路 請 購 系 統 開 放 對 象...117~117 貳 如 何 進 入 網 路 請 購 系 統...118~118 參 網 路 請 購 / 查 詢 系 統 功 能 簡 介...119~134 肆 受 款 人 填 法 範 例...

( 五 ) 財 務 會 計 理 論 研 討 3 學 分 ( 六 ) 審 計 理 論 研 討 3 學 分 ( 七 ) 管 理 會 計 理 論 研 討 3 學 分 第 四 條 選 修 科 目 : ( 一 ) 數 量 方 法 3 學 分 ( 二 ) 財 務 會 計 專 題 研 討 ( 一 ) 3 學 分

Transcription:

何 謂 串 列 通 訊 串 列 通 訊 (Serial Communication) bit8 bit7 bit1 bit0 1 0 0 1 0 0 1 1 data 1 0 0 1 0 0 1 1 bit7 bit8 bit1 bit0 並 列 轉 串 列 1 1 0 0 1 0 0 1 clk Time

串 列 傳 輸 方 式 及 比 較 RS-232,RS-422,RS-485 發 送 接 收 接 收 發 送 共 地 RS-232 單 點 接 (Single-Ended), 傳 輸 距 離 :15m 發 送 接 收 接 收 發 送 共 地 RS-422,485 差 動 訊 號 傳 輸 距 離 :1200m

串 列 埠 的 參 數 串 列 埠 的 參 數 ( 通 訊 協 定 ) 資 料 位 元 : 日 本 PLC 多 用 JIS 字 元 碼 只 用 7 位 元 (ASCII 0~127) 歐 美 多 用 ASCII 碼 8 位 元 起 始 位 元 : 開 始 傳 輸 電 位 從 Hi 變 Low( 固 定 為 1 個 位 元 ) 同 位 位 元 : 防 錯 機 制 分 偶 同 位 (Even Parity) 及 奇 (Odd) 同 位 或 不 加 入 停 止 位 元 : 有 1,1.5,2 位 元 一 般 為 1 個 位 元 傳 送 速 度 : 設 資 料 為 1 個 起 始 位 元 +7 個 資 料 位 元 +1 個 同 位 位 元 +1 個 停 止 位 元 =10 位 元 傳 送 速 度 為 :19200bps(Bit Per Second) 則 每 秒 可 傳 送 1920 byte

電 腦 上 的 串 列 埠 電 腦 上 的 串 列 埠 控 制 台 系 統 裝 置 管 理 員 連 接 埠 串 列 通 訊 方 式 同 步 : 共 同 clk 非 同 步 : 個 自 具 有 獨 立 clk 非 同 步 串 列 通 訊 協 定 傳 輸 率 - 鮑 率 (baud) 每 秒 位 元 bps( bit per second), 資 料 位 元 同 位 位 元 起 始 位 元 停 止 位 元

串 列 埠 的 接 腳 (9 pin) 腳 位 簡 寫 / 出 入 意 義 Pin 1 CD /in 振 鈴 載 波 Pin 2 RXD /in 接 收 資 料 Pin 3 TXD /out 傳 送 資 料 Pin 4 DTR /out Data Terminal Ready Pin 5 GND 接 地 Pin 6 DSR /in Data Set Ready Pin 7 RTS /out Ready To Send Pin 8 CTS /in Clear To Send Pin 9 RI /in Ringing 振 鈴

各 種 串 列 接 線 法 1 2 3 4 6 7 8 9 5 DcD RxD TxD DTR DSR RTS CTS RI GND DcD RxD TxD DTR DSR RTS CTS RI GND 1 2 3 4 6 7 8 9 5 1 2 3 4 6 7 8 9 5 DcD RxD TxD DTR DSR RTS CTS RI GND DcD RxD TxD DTR DSR RTS CTS RI GND 1 2 3 4 6 7 8 9 5 RS-232 最 簡 易 連 接 RS-232 虛 擬 連 接 1 2 3 4 6 7 8 9 5 DcD RxD TxD DTR DSR RTS CTS RI GND DcD RxD TxD DTR DSR RTS CTS RI GND 1 2 3 4 6 7 8 9 5 為 使 兩 台 電 腦 完 成 全 雙 工 交 握 協 定, 須 將 RS-232 連 接 線 之 一 端 打 開 並 將 第 2 腳 與 第 3 腳 4 腳 與 6 腳 第 7 腳 與 第 8 腳 對 調 RS-232 全 雙 工 交 握 協 定

VB2005 串 列 通 訊 類 別 元 件 SerialPort 位 於 System.IO.Port 使 用 方 法 在 程 式 最 前 面 加 入 Imports System.IO.Ports SerialPort 建 構 方 式 名 稱 說 明 SerialPort() SerialPort(IContainer) SerialPort(Str) SerialPort(str,Int32) SerialPort(str,Int32,Parity) SerialPort(str,Int32,Parity,In t32) SerialPort(str,Int32,Parity,In t32,stopbits) 初 始 化 SerialPort 使 用 指 定 的 IContainer 初 始 化 SerialPort 使 用 指 定 的 連 接 埠 初 始 化 SerialPort 上 項 加 上 傳 輸 率 上 項 加 上 同 位 檢 查 初 始 化 SerialPort 上 項 加 上 資 料 位 元 上 項 加 上 停 止 位 元

使 用 工 具 箱 之 SerialPort

SerialPort 常 用 屬 性 BaseStream BaudRate BreakState ByteToRead ByteToWrite CDHolding CtsHolding DataBits DsrHolding DtrEnable Encding Handshake IsOpen NewLine Parity ParityReplace PortName ReadBufferSize ReadTimeOut ReceveBytesThreshold RtsEnable StopBit

公 用 方 法 Close createobref DiscardInBuffer DiscardOutBuffer Dispose Equals GetHashCode GetPortName GetType Open Read Read Byte ReadChar ReadExisting ReadLine ReadTo ToString Write WriteLine

公 用 事 件 DataReceived Disposed ErrorReceived PinChanged 通 訊 錯 誤 事 件 1. Frame: 框 架 錯 誤 一 般 為 傳 輸 協 定 設 定 不 符 2. Overrun: 字 元 緩 衝 區 發 生 滿 溢 下 一 個 字 元 將 遺 失 3. RXOver: 輸 入 緩 衝 區 發 生 溢 位 或 在 EOF 後 還 收 到 字 元 4. RXParity: 硬 體 偵 測 到 同 位 檢 查 錯 誤 5. TXFull: 輸 出 緩 衝 區 已 滿 但 程 式 企 圖 傳 送 字 元

Write 的 多 載 (Overload) SerialPort.Write(str) 將 參 數 字 元 寫 入 並 傳 出 SerialPort.Write(Byte[],Int32,Int32) 將 指 定 位 元 組 數 寫 入 輸 出 緩 衝 區 ( 陣 列 處 理 ) SerialPort.Write(Char[],Int32,Int32) 將 指 定 的 字 元 寫 入 緩 衝 區 WriteLine 將 指 定 字 串 和 NewLine 值 寫 入 緩 衝 區

通 訊 步 驟 方 法 一 IMPORTS System.IO.Port Dim Rs232 as SerialPort 方 法 二 選 擇 工 具 箱 之 SerialPort 元 件 並 將 name 改 成 Rs232 使 用 Open 方 法 打 開 通 訊 埠 ( 須 選 擇 通 訊 埠 編 號 ) 使 用 PinChanged 事 件 判 別 CDHolding CtsHolding DsrHolding 使 用 DtrEnable RtsEnable 達 成 交 握 使 用 Write ReadExisting 傳 送 及 接 收 使 用 完 畢 以 close 關 閉 通 訊 埠

串 列 埠 開 啟 及 使 用 流 程 開 始 加 入 Imports System.IO.Port 宣 告 通 訓 物 件 Dim Rs232 as SerialPort 設 定 通 訊 參 數 進 行 通 訊 埠 操 作 以 Open 方 法 打 開 通 訊 埠 失 敗 成 功 以 Close 關 閉 通 訊 埠 顯 式 錯 誤 訊 息 結 束 串 列 埠 開 啟 及 使 用 流 程

讀 取 電 腦 Com Port 名 稱 方 法 一 : 使 用 My.Computer.Ports.SerialPortName For Each sp As String In My.Computer.Ports.SerialPortName ListBox.Items.add(sp) Next 方 法 二 : 使 用 GetProtNmae 公 用 方 法 For Each sp As String in SerialPort.GetPorttName() CobCom.Iterms.Add(sp) Next 方 法 一 使 用 ListBox 方 法 二 使 用 ComboBox

開 啟 通 訊 埠 1. Rs232.PortName=CmbCom.SelectedItem.Tostring 2. If (Not Rs232.Isopen) Then 3. Rs232.Open() 4. Else 5. MsgBox( 通 訊 埠 已 開 啟 ", MsgBoxStyle.Critical Or _ 6. MsgBoxStyle.OkCancel) 7. end 8. End if 1 使 用 ComboBox 選 取 通 訊 埠 後 以 Rs232.PortNmae 設 定 通 訊 埠 2~8 檢 查 是 否 以 開 啟 通 訓 埠 若 未 開 啟 則 以 Open 方 法 打 開, 若 已 開 啟 則 傳 回 錯 誤 訊 息 並 結 束 程 式

串 列 埠 基 本 實 驗 目 的 : 練 習 通 訊 埠 傳 輸 資 料 步 驟 : 使 用 以 改 裝 之 Rs232 延 長 線 (9 pin 母 / 母 ), 將 pin2, pin3 以 導 線 短 路 開 啟 Vb2005 專 案 使 化 面 如 下 btnopenporton cmbcom btncloseporton picdtr btndtr btndtr picrts picoff picon

將 兩 顆 發 光 二 極 體 分 別 接 在 pin4,pin5 及 pin7 pin5 Pin4(DTR) Pin7(RTS) Pin5(GND) 將 下 列 程 式 鍵 入 執 行 程 式

Imports System.IO.Ports Public Class Form1 ' 表 單 的 Load 事 件 中 先 將 所 有 的 通 訊 埠 先 列 出 來 ' 將 通 訊 埠 排 序, 並 將 第 一 個 通 訊 埠 設 為 預 設 值 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load For Each sp As String In SerialPort.GetPortNames() cmbcom.items.add(sp) Next cmbcom.sorted = True ' 排 序 cmbcom.selectedindex = 0 ' 第 一 個 是 預 設 選 項 btndtr.enabled = False btnrts.enabled = False

'************************************************************* ' 開 啟 通 訊 埠 按 鈕 的 Click 事 件 ' 此 事 件 將 設 定 通 訊 埠 參 數, 並 開 啟 通 訊 埠 '************************************************************* Private Sub btnopenport_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnopenport.click Dim mportname As String mportname = cmbcom.selecteditem.tostring ' 欲 開 啟 的 通 訊 埠 RS232.PortName = mportname ' 指 定 通 訊 埠 If Not RS232.IsOpen Then ' 尚 未 開 啟 RS232.Open() ' 開 啟 通 訊 埠 RS232.DtrEnable = False RS232.RtsEnable = False picdtr.image = picoff.image picrts.image = picoff.image btndtr.enabled = True btnrts.enabled = True Else MsgBox("~~ 通 訊 埠 開 啟 錯 誤 ( 通 訊 埠 已 被 開 啟 )~~", MsgBoxStyle.Critical Or MsgBoxStyle.OkCancel) End End If

'************************************************************* ' 關 閉 通 訊 埠 按 鈕 的 Click 事 件 ' 以 Close 方 法 關 閉 通 訊 埠, 並 釋 放 物 件 所 佔 用 的 資 源 '************************************************************* Private Sub btncloseport_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btncloseport.click If RS232 Is Nothing OrElse Not RS232.IsOpen Then ' 尚 未 開 啟 MsgBox("~~ 通 訊 埠 尚 未 開 啟 ~~", MsgBoxStyle.Critical Or MsgBoxStyle.OkCancel) Else RS232.Close() btndtr.enabled = False btnrts.enabled = False End If '************************************************************* ' 結 束 程 式 按 鈕 的 Click 事 件 ' 此 事 件 將 設 定 通 訊 埠 參 數, 並 開 啟 通 訊 埠 '************************************************************* Private Sub btnend_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnend.click If Not RS232 Is Nothing Then ' 判 斷 是 否 已 建 立 通 訊 物 件 If RS232.IsOpen Then RS232.Close() ' 若 已 開 啟, 就 將 其 關 閉 End If End

' DTR 控 制 按 鈕 的 Click 事 件 ' 此 事 件 將 使 得 DTR 線 路 狀 態 發 生 改 變 Private Sub btndtr_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btndtr.click RS232.DtrEnable = Not RS232.DtrEnable ' 變 更 狀 態 If RS232.DtrEnable Then picdtr.image = picon.image ' 變 更 為 白 色 圖 示 Else picdtr.image = picoff.image ' 變 更 為 紅 色 圖 示 End If ' RTS 控 制 按 鈕 的 Click 事 件 ' 此 事 件 將 使 得 RTS 線 路 狀 態 發 生 改 變 Private Sub btnrts_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnrts.click RS232.RtsEnable = Not RS232.RtsEnable ' 變 更 狀 態 If RS232.RtsEnable Then picrts.image = picon.image ' 變 更 為 白 色 圖 示 Else picrts.image = picoff.image ' 變 更 為 紅 色 圖 示 End If

'************************************************************* ' 通 訊 埠 的 KeyPress 事 件, 在 此 不 讓 使 用 者 輸 入 資 料 '************************************************************* Private Sub cmbcom_keypress(byval sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles cmbcom.keypress e.keychar = ChrW(0) ' 禁 止 使 用 者 在 其 中 輸 入 任 何 的 文 字 End Class 習 題 8-1: 串 列 埠 Digital Out 練 習 增 加 Timer 使 兩 LED 輪 流 閃 滅 使 用 HScrollBar 控 制 閃 動 速 度

串 列 埠 Digital In/Out 實 驗 目 的 : 練 習 串 列 埠 中 Digital IN/Out 步 驟 : 完 成 右 邊 表 單 畫 面 完 成 SerialPinChange 事 件 程 式 執 行 程 式 將 DTR 接 到 DSR 及 CTS 將 RTS 接 到 DCD 及 RI 觀 察 輸 入 情 況 提 示 : 利 用 Timer 使 DTR 及 RTS 自 動 閃 滅

' 通 訊 埠 物 件 的 PinChanged 事 件 程 式 ' 當 有 硬 體 線 路 電 位 發 生 變 化 時, 會 引 發 此 事 件 ' 接 收 的 程 式 可 以 寫 在 此 事 件 程 序 中 Private Sub RS232_PinChanged(ByVal sender As Object, ByVal e As System.IO.Ports.SerialPinChangedEventArgs) Handles RS232.PinChanged Dim pinstate As SerialPinChange = e.eventtype ' 那 一 個 事 件 發 生 Timer1.Enabled = False Select Case pinstate Case SerialPinChange.CDChanged 'CD 發 生 變 化 If RS232.CDHolding Then ' 判 斷 電 位 高 低 picdcd.image = picon.image fdcd = True Else picdcd.image = picoff.image fdcd = False End If Case SerialPinChange.CtsChanged 'CTS 發 生 變 化 If RS232.CtsHolding Then ' 判 斷 電 位 高 低 piccts.image = picon.image fcts = True Else piccts.image = picoff.image fcts = False End If 註 :fdcd,fcts,fdsr 為 布 林 變 數 當 成 旗 標 (flag) 使 用

Case SerialPinChange.DsrChanged 'DSR 發 生 變 化 If RS232.DsrHolding Then ' 判 斷 電 位 高 低 picdsr.image = picon.image fdsr = True Else picdsr.image = picoff.image fdsr = False End If Case SerialPinChange.Ring 'RI 發 生 變 化 If picri.tag = 0 Then ' 由 於 沒 有 相 應 的 屬 性 可 用, 故 以 狀 態 予 以 辨 認 picri.image = picon.image picri.tag = 1 ' 狀 態 記 錄 fri = True Else picri.image = picoff.image picri.tag = 0 ' 狀 態 記 錄 fri = False End If End Select Timer1.Enabled = True

串 列 傳 輸 及 I/O 實 驗 目 的 : 學 習 串 列 資 料 傳 輸 及 I/O 步 驟 : 完 成 以 下 表 單 btnsend btnrec

增 加 下 列 程 式 Private Sub Btnsend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnsender.Click Rs232.Write(Txtsender.Text.ToString) Private Sub BtnRec_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnRecive.Click TxtRecive.Text = Rs232.ReadExisting 將 Rxd(Pin2),TxD(Pin3) 連 接,DTR,DSR 連 接 RTS,CTS 連 接 執 行 程 式, 觀 察 資 料 是 否 正 確 傳 輸 作 業 8-2: 交 握 協 定 通 訊 (p2p 之 bbs): 完 成 兩 台 電 腦 交 握 協 定 通 訊 (1) 以 DTR 通 知 對 方 可 送 資 料 (2) 以 收 到 DSR 才 傳 送 資 料 (3) 在 TxT 顯 示 雙 方 傳 送 資 料

使 用 Timer 自 動 接 收 資 料 實 驗 目 的 : 利 用 Timer 自 動 檢 查 輸 入 緩 衝 區 並 讀 回 資 料 步 驟 : 安 排 表 單 畫 面 如 下

' 開 啟 通 訊 埠 按 鈕 的 Click 事 件 ' 此 事 件 將 設 定 通 訊 埠 參 數, 並 開 啟 通 訊 埠 Private Sub btnopenport_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnopenport.click Dim mportname As String mportname = cmbcom.selecteditem.tostring ' 欲 開 啟 的 通 訊 埠 RS232.PortName = mportname RS232.Encoding = Encoding.ASCII ` 限 定 為 ASCII 字 元 0~127 If Not RS232.IsOpen Then ' 尚 未 開 啟 RS232.Open() ' 開 啟 通 訊 埠 btnsend.enabled = True ' 致 能 傳 送 按 鈕 Timer1.Interval = 100 Timer1.Enabled = True ` 啟 動 Timer Else MsgBox("~~ 通 訊 埠 開 啟 錯 誤 ( 通 訊 埠 已 被 開 啟 )~~", MsgBoxStyle.Critical Or MsgBoxStyle.OkCancel) End End If

' 計 時 器 控 制 項 的 Timer 事 件 ' 將 接 收 的 動 作 放 於 其 中, 只 要 有 資 料 就 會 被 接 收 進 來 Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Dim InString As String InString = "" Try ` 使 用 try Catch End Try RS232.ReadTimeout = 1000 ` 加 入 TimeOut 若 超 時 仍 無 資 料 則 為 錯 誤 InString = RS232.ReadExisting() If InString.Length = 0 Then ' 若 無 資 料 則 跳 出 Exit Sub Else txtreceive.text += InString ' 若 有 資 料 則 加 到 接 收 的 文 字 框 End If Catch ex As Exception MessageBox.Show(" 讀 取 錯 誤 :" + ex.tostring, " 錯 誤 通 知 ", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) End Try

接 收 事 件 處 理 實 驗 目 的 : 利 用 接 收 事 件 完 成 資 料 接 收 步 驟 : 安 排 表 單 如 上 一 實 驗 但 不 使 用 Timer 利 用 DataReceived 配 合 ReceivedBytesThreshold 表 單 畫 面 如 下 鍵 入 以 下 程 式

Imports System.IO.Ports Imports System.Text Public Class Form1 ' 宣 告 一 個 委 派 類 別, 並 宣 告 符 合 函 式 參 數 有 一 個, 而 其 型 態 是 字 串 Delegate Sub SetTextCallback(ByVal InputString As String) ' 表 單 的 Load 事 件 中 先 將 所 有 的 通 訊 埠 先 列 出 來 ' 將 通 訊 埠 排 序, 並 將 第 一 個 通 訊 埠 設 為 預 設 值 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load For Each sp As String In SerialPort.GetPortNames() cmbcom.items.add(sp) Next cmbcom.sorted = True ' 排 序 cmbcom.selectedindex = 0 ' 第 一 個 是 預 設 選 項

' 開 啟 通 訊 埠 按 鈕 的 Click 事 件 ' 此 事 件 將 設 定 通 訊 埠 參 數, 並 開 啟 通 訊 埠 Private Sub btnopenport_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnopenport.click Dim mportname As String mportname = cmbcom.selecteditem.tostring ' 欲 開 啟 的 通 訊 埠 RS232.PortName = mportname RS232.Encoding = Encoding.ASCII If Not RS232.IsOpen Then ' 尚 未 開 啟 RS232.Open() ' 開 啟 通 訊 埠 Else MsgBox("~~ 通 訊 埠 開 啟 錯 誤 ( 通 訊 埠 已 被 開 啟 )~~", MsgBoxStyle.Critical Or MsgBoxStyle.OkCancel) End End If ' 關 閉 通 訊 埠 按 鈕 的 Click 事 件 ' 以 Close 方 法 關 閉 通 訊 埠, 並 釋 放 物 件 所 佔 用 的 資 源 Private Sub btnclose_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnclose.click If RS232 Is Nothing OrElse Not RS232.IsOpen Then ' 尚 未 開 啟 MsgBox("~~ 通 訊 埠 尚 未 開 啟 ~~", MsgBoxStyle.Critical Or MsgBoxStyle.OkCancel) Else RS232.Close() End If

Imports System.IO.Ports Imports System.Text Public Class Form1 ' 宣 告 一 個 委 派 類 別, 並 宣 告 符 合 函 式 參 數 有 一 個, 而 其 型 態 是 字 串 Delegate Sub SetTextCallback(ByVal InputString As String) ' 表 單 的 Load 事 件 中 先 將 所 有 的 通 訊 埠 先 列 出 來 ' 將 通 訊 埠 排 序, 並 將 第 一 個 通 訊 埠 設 為 預 設 值 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load For Each sp As String In SerialPort.GetPortNames() cmbcom.items.add(sp) Next cmbcom.sorted = True ' 排 序 cmbcom.selectedindex = 0 ' 第 一 個 是 預 設 選 項

' 開 啟 通 訊 埠 按 鈕 的 Click 事 件 ' 此 事 件 將 設 定 通 訊 埠 參 數, 並 開 啟 通 訊 埠 Private Sub btnopenport_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnopenport.click Dim mportname As String mportname = cmbcom.selecteditem.tostring ' 欲 開 啟 的 通 訊 埠 RS232.PortName = mportname RS232.Encoding = Encoding.ASCII If Not RS232.IsOpen Then ' 尚 未 開 啟 RS232.Open() ' 開 啟 通 訊 埠 Else MsgBox("~~ 通 訊 埠 開 啟 錯 誤 ( 通 訊 埠 已 被 開 啟 )~~", MsgBoxStyle.Critical Or MsgBoxStyle.OkCancel) End End If

************************************************************** ' 關 閉 通 訊 埠 按 鈕 的 Click 事 件 ' 以 Close 方 法 關 閉 通 訊 埠, 並 釋 放 物 件 所 佔 用 的 資 源 Private Sub btnclose_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnclose.click If RS232 Is Nothing OrElse Not RS232.IsOpen Then ' 尚 未 開 啟 MsgBox("~~ 通 訊 埠 尚 未 開 啟 ~~", MsgBoxStyle.Critical Or MsgBoxStyle.OkCancel) Else RS232.Close() End If ' 結 束 程 式 按 鈕 的 Click 事 件 ' 此 事 件 將 設 定 通 訊 埠 參 數, 並 開 啟 通 訊 埠 Private Sub btnend_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnend.click If Not RS232 Is Nothing Then ' 判 斷 是 否 已 建 立 通 訊 物 件 If RS232.IsOpen Then RS232.Close() ' 若 已 開 啟, 就 將 其 關 閉 End If End

' 通 訊 埠 的 KeyPress 事 件, 在 此 不 讓 使 用 者 輸 入 資 料 Private Sub cmbcom_keypress(byval sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles cmbcom.keypress e.keychar = ChrW(0) ' 禁 止 使 用 者 在 其 中 輸 入 任 何 的 文 字 ' 通 訊 埠 物 件 的 DataReceived 事 件 程 式 ' 當 有 資 料 超 過 ReceivedBytesThreshold 屬 性 設 定 值 會 引 發 此 事 件 ' 接 收 的 程 式 可 以 寫 在 此 事 件 程 序 中 ' 由 於 此 事 件 的 引 發 是 在 另 一 個 執 行 緒, 因 此 必 須 使 用 委 派 來 處 理 Private Sub RS232_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles RS232.DataReceived If e.eventtype <> SerialData.Chars Then Exit Sub ' 判 斷 接 收 的 資 料 是 否 為 字 元 Dim InString As String InString = RS232.ReadExisting ' 取 得 字 串 DisplayText(InString) ' 顯 示 資 料

' 委 派 副 程 式 ' 處 理 上 述 通 訊 埠 的 接 收 事 件 ' 由 於 欲 將 資 料 顯 示 到 接 收 文 字 框 中, 因 此 必 須 檢 查 是 否 由 另 外 的 Thread ' 所 呼 叫 的, 若 是, 則 必 須 先 建 立 委 派 物 件 'Invoke 用 於 在 擁 有 控 制 項 基 礎 視 窗 控 制 代 碼 的 執 行 緒 上 執 行 委 派 Private Sub DisplayText(ByVal comdata As String) ' 如 果 呼 叫 txtreceive 的 是 另 外 的 執 行 緒, 傳 回 True If Me.txtReceive.InvokeRequired Then ' 利 用 委 派 型 別 建 立 委 派 物 件, 並 指 定 委 派 的 函 式 Dim d As New SetTextCallback(AddressOf DisplayText) ' 用 大 括 號 {} 括 住 初 始 值, 藉 以 初 始 化 陣 列 的 值 Me.Invoke(d, New Object() {comdata}) ' 以 指 定 的 引 數 清 單 叫 用 函 式 Else ' 相 同 的 執 行 緒 txtreceive.text += comdata ' 將 收 到 的 資 料 入 接 收 文 字 框 中 End If ************************************************************** ' 傳 送 按 鈕 的 Click 事 件 ' 以 Write 方 法 送 出 文 字 框 內 的 資 料 Private Sub btnsend_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnsend.click RS232.Write(txtSend.Text & vbcr) End Class

' 結 束 程 式 按 鈕 的 Click 事 件 ' 此 事 件 將 設 定 通 訊 埠 參 數, 並 開 啟 通 訊 埠 Private Sub btnend_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnend.click If Not RS232 Is Nothing Then ' 判 斷 是 否 已 建 立 通 訊 物 件 If RS232.IsOpen Then RS232.Close() ' 若 已 開 啟, 就 將 其 關 閉 End If End ' 通 訊 埠 的 KeyPress 事 件, 在 此 不 讓 使 用 者 輸 入 資 料 Private Sub cmbcom_keypress(byval sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles cmbcom.keypress e.keychar = ChrW(0) ' 禁 止 使 用 者 在 其 中 輸 入 任 何 的 文 字 ' 通 訊 埠 物 件 的 DataReceived 事 件 程 式 ' 當 有 資 料 超 過 ReceivedBytesThreshold 屬 性 設 定 值 會 引 發 此 事 件 ' 接 收 的 程 式 可 以 寫 在 此 事 件 程 序 中 ' 由 於 此 事 件 的 引 發 是 在 另 一 個 執 行 緒, 因 此 必 須 使 用 委 派 來 處 理 Private Sub RS232_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles RS232.DataReceived If e.eventtype <> SerialData.Chars Then Exit Sub ' 判 斷 接 收 的 資 料 是 否 為 字 元 Dim InString As String InString = RS232.ReadExisting ' 取 得 字 串 DisplayText(InString) ' 顯 示 資 料

' 委 派 副 程 式 ' 處 理 上 述 通 訊 埠 的 接 收 事 件 ' 由 於 欲 將 資 料 顯 示 到 接 收 文 字 框 中, 因 此 必 須 檢 查 是 否 由 另 外 的 Thread ' 所 呼 叫 的, 若 是, 則 必 須 先 建 立 委 派 物 件 'Invoke 用 於 在 擁 有 控 制 項 基 礎 視 窗 控 制 代 碼 的 執 行 緒 上 執 行 委 派 Private Sub DisplayText(ByVal comdata As String) ' 如 果 呼 叫 txtreceive 的 是 另 外 的 執 行 緒, 傳 回 True If Me.txtReceive.InvokeRequired Then ' 利 用 委 派 型 別 建 立 委 派 物 件, 並 指 定 委 派 的 函 式 Dim d As New SetTextCallback(AddressOf DisplayText) ' 用 大 括 號 {} 括 住 初 始 值, 藉 以 初 始 化 陣 列 的 值 Me.Invoke(d, New Object() {comdata}) ' 以 指 定 的 引 數 清 單 叫 用 函 式 Else ' 相 同 的 執 行 緒 txtreceive.text += comdata ' 將 收 到 的 資 料 入 接 收 文 字 框 中 End If