07.06.2015 Views

報告下載 - 資訊科

報告下載 - 資訊科

報告下載 - 資訊科

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

臺 北 市 立 大 安 高 工 職 業 學 校<br />

資 訊 科<br />

專 題 報 告<br />

數 位 魚 缸 控 溫 器<br />

組 別<br />

G101c03<br />

發 表 順 序 16<br />

學 生<br />

組 長 :33 洪 兆 廷<br />

組 員 :22 謝 聿 丞<br />

組 員 :23 闕 子 淵<br />

組 員 :27 江 彥 融<br />

指 導 老 師 : 黃 博 原 老 師<br />

中 華 民 國 101 年 1 月<br />

1


目 錄<br />

1. 中 文 摘 要 --------------------------------------P.3<br />

2. 工 作 分 配 --------------------------------------P.4<br />

3. 圖 目 錄 ----------------------------------------P.5<br />

4. 表 目 錄 ----------------------------------------P.6<br />

5. 理 論 探 討 --------------------------------------P.7<br />

6. 專 題 內 容 -------------------------------------P.16<br />

7. 參 考 文 獻 -------------------------------------P.26<br />

2


中 文 摘 要<br />

養 殖 觀 賞 魚 蝦 是 普 遍 的 休 閒 嗜 好 , 所 以 家 裡 也 有 養 一 些 魚 , 但 不 知 為 什 麼 裝<br />

了 養 魚 設 備 還 是 有 些 魚 死 掉 , 後 來 才 知 道 其 實 溫 度 也 是 魚 生 存 的 關 鍵 ! 而 不 同 的<br />

魚 有 不 同 的 生 存 溫 度 , 所 以 才 想 做 一 個 控 溫 器 , 藉 由 觀 察 水 溫 的 變 化 再 透 過 一 些<br />

工 具 使 溫 度 不 會 超 出 魚 能 生 存 的 溫 度 範 圍 。 另 外 一 般 對 此 的 解 決 方 法 都 會 把 加 溫<br />

燈 或 冷 卻 器 一 直 開 著 , 這 樣 也 會 浪 費 不 必 要 的 電 。 假 如 能 設 定 成 超 出 溫 度 再 開 啟<br />

控 溫 系 統 或 許 能 省 些 電 費 。<br />

市 面 上 溫 度 感 測 的 元 件 很 多 , 較 普 遍 的 有 DS18B20、AD590 和 PT100, 使 用<br />

DS1820 是 因 為 魚 對 水 溫 很 敏 感 , 一 些 溫 差 可 能 就 會 影 響 魚 的 生 態 , 所 以 用 溫 度<br />

誤 差 低 的 DS1820( 約 ±0.5℃ ), 除 此 之 外 DS18B20 內 部 有 溫 度 感 測 器 、 溫 度 警 報<br />

器 , 所 以 電 路 簡 單 不 需 要 任 何 周 邊 元 件 但 內 部 程 式 時 序 先 後 很 重 要 , 電 路 成 本 並<br />

不 會 太 高 。<br />

3


組 員 分 工<br />

職 位 組 長 組 員<br />

成 員 洪 兆 廷 謝 聿 丞<br />

工 作<br />

焊 接 電 路<br />

程 式 撰 寫<br />

焊 接 電 路<br />

文 書 報 告<br />

成 員 闕 子 淵 江 彥 融<br />

工 作<br />

程 式 撰 寫<br />

數 據 連 線<br />

組 裝 電 路<br />

文 書 報 告<br />

4


圖 目 錄<br />

1.DS1820 元 件 圖 ----------------------------------P.7<br />

2.DS1820 工 作 圖 ---------------------------------P.10<br />

3.DS1820 初 始 化 方 法 1 圖 -------------------------P.11<br />

4.DS1820 初 始 化 方 法 2 圖 -------------------------P.11<br />

5.DS1820 寫 入 圖 ---------------------------------P.12<br />

6.DS1820 讀 取 圖 ---------------------------------P.13<br />

7. 測 溫 原 理 圖 -----------------------------------P.15<br />

8. 電 路 總 圖 -------------------------------------P.16<br />

9.8 個 七 節 顯 示 器 電 路 板 圖 ------------------------P.16<br />

10.89S52 圖 -------------------------------------P.16<br />

11.RS232 圖 -------------------------------------P.16<br />

12.DS1820 圖 ------------------------------------P.22<br />

13.C# 圖 表 1-------------------------------------P.25<br />

14.C# 圖 表 2-------------------------------------P.25<br />

15.C# 圖 表 3-------------------------------------P.25<br />

5


表 目 錄<br />

0. 工 作 分 配 --------------------------------------P.4<br />

1.DS1820 特 性 表 ----------------------------------P.7<br />

2.ROM 指 令 表 -------------------------------------P.9<br />

3.RAM 指 令 表 -------------------------------------P.9<br />

4. 溫 度 值 格 式 表 --------------------------------P.15<br />

5. 功 能 架 構 圖 表 ---------------------------------P.17<br />

6


理 論 探 討<br />

DS1820 介 紹<br />

• DQ: 數 字 信 號 輸 入 / 輸 出 端<br />

• GND: 電 源 地<br />

• VDD: 外 接 供 電 電 源 輸 入 端 ( 在<br />

寄 生 電 源 接 線 方 式 時 接 地<br />

DS1820 特 性<br />

DS1820 是 美 國 DALLAS 半 導 體 公 司 生 產 的 可 組 網 數 字 式 溫 度 傳 感 器 , 在 其 內 部<br />

使 用 了 在 板 (ON-B0ARD) 專 利 技 術 。 全 部 傳 感 元 件 及 轉 換 電 路 集 成 在 形 如 一 隻<br />

三 極 管 的 集 成 電 路 內 。 與 其 它 溫 度 傳 感 器 相 比 ,DS1820 具 有 以 下 特 性 :<br />

1. DS1820 為 單 線 控 制 模 式 以 串 列 方 式 輸 入 或 輸 出 資 料<br />

2. DS1820 在 使 用 中 不 需 要 任 何 外 圍 元 件<br />

位 元 數 16bit<br />

解 析 度 ±0.5℃ (-10~+85℃)<br />

測 溫 範 圍 -55℃~+125℃<br />

電 壓 範 圍 3.0~5.5V<br />

3.DS1820 有 兩 大 工 作 模 式 , 除 了 第 一 種 溫 度 轉 換 以 外 , 可 設 定 溫 度 上 下 限 值 , 作 為<br />

溫 度 開 關 。<br />

7


4. 負 壓 特 性 : 電 源 接 反 時 , 晶 片 不 會 發 熱 而 燒 毀 , 但 不 能 正 常 工 作 。<br />

5.DS1820 不 管 在 做 任 何 事 情 都 必 須 先 經 過 初 始 化 Reset 的 動 作 。<br />

6.DS1820 使 用 中 注 意 事 項<br />

DS1820 雖 然 具 有 測 溫 係 統 簡 單 、 測 溫 精 度 高 、 連 接 方 便 、 占 用 口 線 少 等 優<br />

點 , 但 在 實 際 應 用 中 也 應 注 意 以 下 幾 方 麵 的 問 題 :<br />

(1) 較 小 的 硬 件 開 銷 需 要 相 對 複 雜 的 軟 件 進 行 補 償 , 由 於 DS1820 與 微 處 理 器 間 采<br />

用 串 行 數 據 傳 送 , 因 此 , 在 對 DS1820 進 行 讀 寫 編 程 時 , 必 須 嚴 格 的 保 證 讀 寫 時<br />

序 , 否 則 將 無 法 讀 取 測 溫 結 果 。 在 使 用 PL/M、C 等 高 級 語 言 進 行 係 統 程 序 設 計<br />

時 , 對 DS1820 操 作 部 分 最 好 采 用 彙 編 語 言 實 現 。<br />

(2) 在 DS1820 的 有 關 資 料 中 均 未 提 及 單 總 線 上 所 掛 DS1820 數 量 問 題 , 容 易 使 人<br />

誤 認 為 可 以 掛 任 意 多 個 DS1820, 在 實 際 應 用 中 並 非 如 此 。 當 單 總 線 上 所 掛 DS1820<br />

超 過 8 個 時 , 就 需 要 解 決 微 處 理 器 的 總 線 驅 動 問 題 , 這 一 點 在 進 行 多 點 測 溫 係 統<br />

設 計 時 要 加 以 注 意 。<br />

(3) 連 接 DS1820 的 總 線 電 纜 是 有 長 度 限 製 的 。 試 驗 中 , 當 采 用 普 通 信 號 電 纜 傳 輸<br />

長 度 超 過 50m 時 , 讀 取 的 測 溫 數 據 將 發 生 錯 誤 。 當 將 總 線 電 纜 改 為 雙 絞 線 帶 屏<br />

蔽 電 纜 時 , 正 常 通 訊 距 離 可 達 150m, 當 采 用 每 米 絞 合 次 數 更 多 的 雙 絞 線 帶 屏 蔽<br />

電 纜 時 , 正 常 通 訊 距 離 進 一 步 加 長 。 這 種 情 況 主 要 是 由 總 線 分 布 電 容 使 信 號 波 形<br />

產 生 畸 變 造 成 的 。 因 此 , 在 用 DS1820 進 行 長 距 離 測 溫 係 統 設 計 時 要 充 分 考 慮 總<br />

線 分 布 電 容 和 阻 抗 匹 配 問 題 。<br />

(4) 在 DS1820 測 溫 程 序 設 計 中 , 向 DS1820 發 出 溫 度 轉 換 命 令 後 , 程 序 總 要 等 待<br />

DS1820 的 返 回 信 號 , 一 旦 某 個 DS1820 接 觸 不 好 或 斷 線 , 當 程 序 讀 該 DS1820 時 ,<br />

將 沒 有 返 回 信 號 , 程 序 進 入 死 循 環 。 這 一 點 在 進 行 DS1820 硬 件 連 接 和 軟 件 設 計<br />

時 也 要 給 予 一 定 的 重 視 。<br />

8


DS1820 的 程 式 指 令<br />

ROM 指 令 表<br />

指 令 約 定 代 碼 功 能 Function<br />

讀 ROM 33H 讀 DS1820 溫 度 感 測 器 ROM 中 的 編 碼 ( 即 64 位 元 址 )<br />

符 合 ROM 55H<br />

下 達 指 令 後 , 接 著 發 出 64 位 元 ROM 編 碼 , 訪 問 單 匯<br />

流 排 上 與 該 編 碼 相 對 應 的 DS1820 使 之 做 出 回 應 ,<br />

為 下 一 步 讀 寫 動 作 準 備 。<br />

搜 索 ROM 0XFOH<br />

用 於 確 定 掛 接 在 同 一 匯 流 排 上 DS1820 的 個 數 和 識 別<br />

64 位 ROM 地 址 。 為 操 作 各 器 件 做 準 備 。<br />

跳 過 ROM<br />

忽 略 64 位 ROM 地 址 , 直 接 向 DS1820 下 溫 度 變 換 指<br />

0XCCH<br />

令 。 適 用 於 單 片 工 作 。<br />

警 告 搜 索 命 令 0XECH<br />

執 行 後 只 有 溫 度 超 過 設 定 值 上 限 或 下 限 的 準 位 才 做 出<br />

回 應 。<br />

RAM 指 令 表<br />

指 令 約 定 代 碼 功 能 Function<br />

溫 度 變 換 0X44H<br />

啟 動 DS1820 進 行 溫 度 轉 換 ,12 位 元 轉 換 時 最 長 為<br />

750ms ( 9 位 元 為 93.75ms) 結 果 存 入 內 部 9 位 元<br />

RAM 中 。<br />

讀 暫 存 器 0XBEH 讀 內 部 RAM 中 9 位 元 內 容 。<br />

寫 暫 存 器 0X4EH<br />

發 出 向 內 部 RAM 的 3 , 4 位 元 組 寫 上 , 下 限 溫 度 資<br />

料 指 令 , 緊 跟 該 指 令 後 , 是 傳 送 兩 位 元 組 的 資 料 。<br />

複 製 暫 存 器<br />

0X48H<br />

重 調 EEPROM 0XB8H<br />

將 RAM 中 第 3 , 4 位 元 組 的 內 容 複 製 到<br />

EEPROM 中 。<br />

將 EEPROM 中 的 內 容 恢 復 到 RAM 的 第 3 , 4 位 元 組 。<br />

讀 供 電 方 式<br />

0XB4H<br />

讀 DS1820 的 供 電 模 式 。 寄 生 供 電 時 DS1820 發 送 “ 0<br />

“ , 外 接 電 源 供 電 發 送 “ 1 “ 。<br />

9


INITIALIZATION 初 始 化 / 重 置<br />

DS1820 在 經 過 Reset 後 即 會 進 入 1-Wire 模 式 , 即 可 對 DS1820 下 達 指 令<br />

Initialization timing / 初 始 化 時 序 圖<br />

從 時 序 圖 上 所 見 , 粗 藍 線 為 Master Pulling low 即 為 使 用 者 送 出 的 Low 信 號<br />

粗 綠 線 部 份 則 為 DS1820 送 出 的 Pulling Low 信 號<br />

細 黑 線 部 份 他 是 寫 Resistor Pullup 但 時 繼 上 也 是 算 是 使 用 者 送 出 的 High 信 號<br />

初 始 化 方 法 1<br />

a. 先 給 DQ 腳 Low 信 號 最 少 480us 的 時 間<br />

b. 在 將 信 號 拉 至 High 準 位 15-60us 此 時 DS1820 會 去 檢 測 信 號 的 上 升 時 間<br />

c. 在 DS1820 檢 測 到 之 後 , 會 將 DQ 腳 位 拉 至 Low 準 位 60-240us 的 時 間<br />

d. 之 後 檢 查 DQ 腳 位 是 否 恢 復 High 準 位<br />

e. 檢 查 到 DQ 腳 位 回 到 High 準 位 後 即 代 表 初 始 化 完 成 , 即 可 開 始 下 達 相 關 指 令<br />

10


初 始 化 方 法 2<br />

a. 將 DQ 腳 位 拉 至 Low 準 位 480us 以 上<br />

b. 在 直 接 將 DQ 腳 位 拉 至 High 準 位 480us 以 上<br />

c. 完 成 初 始 化 可 以 開 始 下 達 相 關 指 令<br />

11


DS1820 讀 / 寫 程 序 - 時 序 圖<br />

因 為 DS1820 只 有 使 用 單 一 隻 腳 位 (DQ 腳 ) 作 為 資 料 傳 輸<br />

所 以 不 管 是 初 始 化 , 或 者 寫 入 資 料 ( 指 令 ), 讀 出 指 令 都 是 只 能 透 過 DQ 腳<br />

相 對 的 在 讀 / 寫 過 程 中 , 這 個 過 程 也 就 是 時 序 , 就 變 的 相 當 的 重 要 。<br />

a. 寫 入 0 與 1<br />

從 時 序 圖 中 我 們 看 到 當 要 寫 入 0 時 需 要 有 以 下 步 驟<br />

a.1. 將 DQ 腳 位 拉 至 Low 信 號 , 信 號 長 度 需 要 大 於 60us 小 於 120us<br />

a.2. 在 將 DQ 信 號 恢 復 High 信 號<br />

a.3. 完 成 寫 入 1bit 0 的 動 作<br />

寫 入 1 時<br />

a.4 必 須 先 將 DQ 腳 拉 至 Low 信 號 準 位 1us 的 時 間<br />

a.5 恢 復 DQ 腳 High 準 位 , 需 確 保 信 號 長 度 超 過 60us 的 時 間<br />

12


. 讀 出 0 與 1<br />

在 讀 出 信 號 的 時 候 感 覺 與 寫 入 信 號 的 時 序 不 同 ,DS1820 在 讀 取 時 都 必 須 先 將 DQ<br />

腳 信 號<br />

拉 至 Low 準 位 1us 的 時 間 , 在 將 DQ 腳 拉 至 High 準 位 , 在 拉 至 High 準 位 後 ,DS1820<br />

會 提 供 我 們<br />

14us 的 時 間 供 我 們 讀 取 信 號 , 換 句 話 說 , 如 果 當 讀 出 信 號 是 0 的 時 候 , 即 便 我 們 是 將<br />

DQ 腳 拉 至 High 準 位 時<br />

DS1820 也 會 將 DQ 腳 拉 至 Low 準 位 , 以 供 我 們 正 確 讀 取 到 0 的 信 號 . 綜 合 上 述 如<br />

下 幾 點 步 驟<br />

b.1 將 DQ 腳 拉 至 Low 準 位 1us<br />

b.2 在 將 DQ 腳 拉 至 High<br />

b.3 在 送 出 High 信 號 後 的 14us 內 檢 測 DQ 腳 電 壓 準 位 , 如 高 電 位 即 為 1, 如 低 電 位<br />

即 為 0<br />

b.4 檢 測 信 號 完 成 後 需 等 待 45us 後 的 時 間 在 讀 取 下 一 個 信 號<br />

13


也 就 是 說 , 每 讀 取 1bit 的 過 程 中 都 需 要 在 60us 內 完 成 , 並 直 到 讀 完 所 有 bit 為 止<br />

例 如 在 讀 出 溫 度 時 , 是 16bit, 就 必 須 將 16bit 讀 完 …<br />

如 果 你 問 我 , 那 讀 到 一 半 中 斷 在 跑 回 去 讀 呢 ? 我 會 回 答 你 … 不 知 道 …<br />

不 過 因 為 DS1820 在 做 任 何 動 作 時 , 都 必 須 先 經 過 初 始 化 的 動 作 , 所 以 我 想 應 該 不<br />

太 會 影 響 到 結 果<br />

但 是 讀 到 一 半 的 結 果 一 定 是 不 能 用 的 ..<br />

至 於 寫 入 的 話 應 該 也 是 一 樣 的 , 在 初 始 化 過 後 , 全 部 從 第 0 個 bit 開 始 。<br />

14


測 溫 原 理<br />

溫 度 值 格 式 表<br />

LS Byte bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0<br />

2^3 2^2 2^1 2^0 2^-1 2^-2 2^-3 2^-4<br />

MS Byte bit 15 bit 14 bit 13 bit 12 bit 11 bit 10 bit 9 bit 8<br />

S S S S S 2^6 2^5 2^4<br />

這 是 12 位 元 轉 化 後 得 到 的 16 位 元 資 料 , 储 存 在 兩 個 8bit 的 RAM 中 , 前 五<br />

位 元 是 符 號 位 元 :<br />

如 果 測 得 的 溫 度 大 於 0, 這 五 位 為 0, 只 要 將 測 到 之 數 值 乘 與 0.0625 即 可<br />

得 到 實 際 溫 度 。 T( 實 際 ) = M ( 測 得 數 值 ) x 0.0625<br />

如 果 溫 度 小 於 0 , 則 這 五 位 為 1, 將 測 到 數 值 取 反 加 1 再 乘 與 0.0625 即 可 得 到<br />

實 際 溫 度 。 T( 實 際 ) = (~M ( 測 得 數 值 ) + 1) x 0.0625<br />

15


專 題 內 容<br />

系 統 架 構<br />

8 個 七 節 顯 示 器 89S52<br />

RS232<br />

DS1820<br />

16


功 能 架 構<br />

感 測 溫 度<br />

溫 度 過 高 溫 度 過 低 溫 度 合 宜 顯 示 溫 度<br />

發 出 警 報<br />

發 出 警 報<br />

繼 續 測 溫<br />

我 們 這 組 利 用 89S52 單 晶 片 製 作 溫 度 的 感 測 器 , 利 用 DS1280 以 一 線<br />

的 控 制 並 傳 回 其 感 測 值 後 , 將 其 值 解 碼 顯 示 在 銲 好 的 8 個 七 節 顯 示 器<br />

上 面 , 前 四 位 顯 示 溫 度 , 後 四 位 顯 示 單 位 ,DQ 傳 回 的 值 同 時 也 透 過<br />

銲 好 的 RS232 板 , 串 列 傳 至 電 腦 端 利 用 C# 程 式 設 計 的 圖 表 功 能 , 顯<br />

示 其 每 秒 測 得 的 溫 度 , 超 出 貨 低 於 限 制 範 圍 揭 發 出 警 告 。<br />

17


電 路 程 式 碼<br />

#include <br />

sbit DQ = P3^3; // 定 義 DS18B20 端 口 DQ<br />

sbit BEEP=P3^7 ;<br />

unsigned char presence ;<br />

unsigned char code LEDData[ ]<br />

= { 0xc0, 0xf9, 0xa4, 0xb0, 0x99,<br />

0x92, 0x82, 0xf8, 0x80, 0x90,0xff };<br />

unsigned char data temp_data[2]<br />

= {0x00,0x00};<br />

unsigned char data display[5]<br />

= {0x00,0x00,0x00,0x00,0x00};<br />

unsigned char code ditab[16] = {0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,<br />

0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};<br />

void beep();<br />

sbit DIN = P0^7; // 小 數 點<br />

bit flash=0; // 顯 示 開 關 標 記<br />

/**********************************************************/<br />

void Delay(unsigned int num)// 延 時 函 數<br />

{<br />

while( --num );<br />

}<br />

/**********************************************************/<br />

Init_DS18B20(void)// 初 始 化 ds1820<br />

{<br />

DQ = 1;<br />

Delay(8);<br />

//DQ 復 位<br />

// 稍 做 延 時<br />

DQ = 0;<br />

Delay(90);<br />

// 單 片 機 將 DQ 拉 低<br />

// 精 確 延 時 大 於 480us<br />

18


DQ = 1;<br />

Delay(8);<br />

// 拉 高 總 線<br />

presence = DQ;<br />

Delay(100);<br />

DQ = 1;<br />

// 如 果 =0 則 初 始 化 成 功 =1 則 初 始 化 失 敗<br />

return(presence); // 返 回 信 號 ,0=presence,1= no presence<br />

}<br />

/**********************************************************/<br />

ReadOneChar(void)// 讀 一 個 字 節<br />

{<br />

unsigned char i = 0;<br />

unsigned char dat = 0;<br />

for (i = 8; i > 0; i--)<br />

{<br />

DQ = 0; // 給 脈 衝 信 號<br />

DQ = 1; // 給 脈 衝 信 號<br />

dat >>= 1;<br />

}<br />

if(DQ)<br />

dat |= 0x80;<br />

Delay(5);<br />

DQ = 1; // 給 脈 衝 信 號<br />

}<br />

return (dat);<br />

/**********************************************************/<br />

WriteOneChar(unsigned char dat)// 寫 一 個 字 節<br />

{<br />

unsigned char i = 0;<br />

for (i = 8; i > 0; i--)<br />

{<br />

19


DQ = 0;<br />

DQ = dat&0x01;<br />

Delay(6);<br />

DQ = 1;<br />

dat>>=1;<br />

}<br />

}<br />

/*********************************************************/<br />

Read_Temperature(void)// 讀 取 溫 度<br />

{<br />

Init_DS18B20();<br />

if(presence==1)<br />

{ beep();flash=1;} //DS18B20 不 正 常 , 蜂 鳴 器 發 出 警 報<br />

else<br />

{<br />

flash=0;<br />

WriteOneChar(0xCC); // 跳 過 讀 序 號 列 號 的 操 作<br />

WriteOneChar(0x44); // 啟 動 溫 度 轉 換<br />

Init_DS18B20();<br />

WriteOneChar(0xCC); // 跳 過 讀 序 號 列 號 的 操 作<br />

WriteOneChar(0xBE); // 讀 取 溫 度 寄 存 器<br />

temp_data[0] = ReadOneChar(); // 溫 度 低 8 位<br />

temp_data[1] = ReadOneChar(); // 溫 度 高 8 位<br />

}<br />

}<br />

/*********************************************************/<br />

Disp_Temperature()// 顯 示 溫 度<br />

{<br />

unsigned char n=0;<br />

//ds1820<br />

display[0]=temp_data[0]&0x01;<br />

if (display[0] != 0) display[0] =5 ;<br />

else display[0]=0;<br />

// 取 小 數 點<br />

20


display[4] = temp_data[0]>>1 ;<br />

display[3]=display[4]/100;<br />

display[1]=display[4]%100;<br />

display[2]=display[1]/10;<br />

display[1]=display[1]%10;<br />

P0 = 0xc6;<br />

P1 = ~0x04;<br />

Delay(300);<br />

// 顯 示 C<br />

P0 = 0x9c; // 顯 示 °<br />

P1 = ~0x08;<br />

Delay(300);<br />

P0 =LEDData[display[0]] ; // 顯 示 小 數 位<br />

P1 = ~0x10;<br />

Delay(300);<br />

P0 =LEDData[display[1]]; // 顯 示 個 位<br />

DIN = 0;<br />

P1 = ~0x20;<br />

Delay(300);<br />

P0 =LEDData[display[2]]; // 顯 示 十 位<br />

P1 = ~0x40;<br />

Delay(300);<br />

P0 =LEDData[display[3]]; // 顯 示 百 位<br />

P1 = ~0x80;<br />

Delay(300);<br />

P1 = 0xff;<br />

}<br />

// 關 閉 顯 示<br />

/*********************************************************/<br />

21


void beep()<br />

{<br />

unsigned char i;<br />

for (i=0;i


8 個 七 節 顯 示 器 電 路<br />

電 路 圖 如 下<br />

其 顯 示 方 式 是 將 第 一 個 七 節 顯 示 器 所 要 顯 示 的 資 料 丟 到 a、b…g 匯 流 排<br />

上 , 然 後 將 1110 掃 瞄 信 號 送 到 四 個 電 晶 體 的 基 極 , 即 可 顯 示 第 一 個 七<br />

節 顯 示 器 ; 若 要 顯 示 第 二 個 七 節 顯 示 器 , 同 樣 是 將 所 要 顯 示 的 資 料 丟 到<br />

a、b…g 匯 流 排 上 , 然 後 將 1101 掃 瞄 信 號 送 到 四 個 電 晶 體 的 基 極 , 即 可<br />

顯 示 第 二 個 七 節 顯 示 器 ; 若 要 顯 示 第 三 個 七 節 顯 示 器 , 同 樣 是 將 所 要 顯<br />

示 的 資 料 丟 到 a、b…g 匯 流 排 上 , 然 後 將 1011 掃 瞄 信 號 送 到 四 個 電 晶 體<br />

的 基 極 , 即 可 顯 示 第 三 個 七 節 顯 示 器 ; 若 要 顯 示 第 四 個 七 節 顯 示 器 , 同<br />

樣 是 將 所 要 顯 示 的 資 料 丟 到 a、b…g 匯 流 排 上 , 然 後 將 0111 掃 瞄 信 號 送<br />

到 四 個 電 晶 體 的 基 極 , 即 可 顯 示 第 四 個 七 節 顯 示 器 。 掃 瞄 一 圈 後 , 再 從<br />

頭 開 始 掃 瞄 。 雖 然 任 何 一 個 時 間 裡 , 只 顯 示 一 個 七 節 顯 示 器 , 但 只 要 從<br />

第 一 個 到 最 後 一 個 的 掃 瞄 時 間 , 不 超 過 16ms, 即 頻 率 為 60Hz 以 上 , 則<br />

因 人 類 的 視 覺 暫 態 現 象 , 而 會 同 時 看 到 這 幾 個 數 字 。<br />

23


RS232<br />

在 RS-232 標 準 中 , 字 元 是 以 一 序 列 的 位 元 串 來 一 個 接 一 個 的 串 列 (serial) 方 式 傳 輸 ,<br />

優 點 是 傳 輸 線 少 , 配 線 簡 單 , 傳 送 距 離 可 以 較 遠 。 最 常 用 的 編 碼 格 式 是 非 同 步 起 停<br />

(asynchronous start-stop) 格 式 , 它 使 用 一 個 起 始 位 元 後 面 緊 跟 7 或 8 個 資 料 位 元 (bit),<br />

然 後 是 可 選 的 奇 偶 校 驗 位 元 , 最 後 是 一 或 兩 個 停 止 位 元 。 所 以 發 送 一 個 字 元 至 少 需 要 10<br />

位 元 , 帶 來 的 一 個 好 的 效 果 是 使 全 部 的 傳 輸 速 率 , 發 送 訊 號 的 速 率 以 10 劃 分 。 一 個 最<br />

平 常 的 代 替 非 同 步 起 停 方 式 的 是 使 用 高 階 資 料 鏈 路 控 制 協 議 (HDLC)。<br />

連 結 器<br />

最 近 ,8 針 的 RJ-45 型 連 結 器 變 得 越 來 越 普 遍 , 儘 管 它 的 針 腳 配 置 相 差 很 大 。<br />

EIA/TIA 561 標 準 規 定 了 一 種 針 腳 相 容 的 方 法 , 但 是 由 Dave Yost 發 明 的 被 廣 泛<br />

使 用 在 Unix 電 腦 上 的 Yost 串 連 裝 置 配 線 標 準 ("Yost Serial Device Wiring<br />

Standard") 以 及 其 他 很 多 裝 置 都 沒 有 採 用 上 述 任 一 種 連 線 標 準 。<br />

下 表 中 列 出 的 是 被 較 多 使 用 的 RS-232 中 的 訊 號 和 接 腳 分 配 :<br />

設 定<br />

DB9 Male (Pin Side)<br />

DB9 Female (Pin Side)<br />

------------- -------------<br />

\ 1 2 3 4 5 / \ 5 4 3 2 1 /<br />

\ 6 7 8 9 / \ 9 8 7 6 /<br />

--------- ---------<br />

序 列 通 訊 在 軟 體 設 定 里 需 要 做 多 項 設 定 , 最 常 見 的 設 定 包 括 鮑 率 (Baud Rate)、 同 位 檢<br />

查 (Parity Check) 和 停 止 位 (Stop Bit)。<br />

<br />

鮑 率 : 是 指 從 一 裝 置 發 到 另 一 裝 置 的 位 元 率 , 即 每 秒 鐘 多 少 位 元 bits per second<br />

(bit/s)。 典 型 的 鮑 率 是 300, 1200, 2400, 9600, 115200, 19200 等 bit/s。 一 般 通 訊 兩 端<br />

裝 置 都 要 設 為 相 同 的 鮑 率 , 但 有 些 裝 置 也 可 以 設 定 為 自 動 檢 測 鮑 率 。<br />

→ 我 們 使 用 的 的 終 端 機 鮑 率 是 2400!!<br />

24


C# 圖 表 紀 錄<br />

藉 由 C# 圖 表 程 式 可 以 記 錄 每 固 定 時 間 點 的 溫 度 。<br />

內 設 圖 表 儲 存 功 能 , 可 以 把 圖 表 存 為 BMP 圖 片 檔 。<br />

除 此 之 外 還 能 設 定 上 下 限 溫 度 範 圍 , 可 以 選 擇 魚 種 或 是 自 己 設 定 需 要 的 溫 度 範 圍 。<br />

25


參 考 文 獻<br />

1. 微 控 實 驗 網 :<br />

http://www.mcusy.cn/Article.asp?id=45755<br />

2. 偉 納 電 子 :<br />

http://www.willar.com/<br />

3. DS18B20 特 性 :<br />

http://faculty.stut.edu.tw/~wjshieh/ds18b20.html<br />

4. 圖 表 程 式 製 作 參 考 :<br />

VISUAL C# 程 式 設 計 範 例 教 學 本 2010( 洪 國 勝 著 )<br />

5. 維 基 百 科<br />

http://zh.wikipedia.org/zh-tw/RS-232<br />

26

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!