《單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)(32頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、第 七 講 :單 片 機(jī) 應(yīng) 用 系 統(tǒng) 設(shè) 計(jì)本 講 重 點(diǎn) : 正 確 認(rèn) 識(shí) 系 統(tǒng) 設(shè) 計(jì) 的 基 本 原 則 ,掌 握 簡 單 任 務(wù) 分 析 的 一 般 流 程 , 嘗 試 自 己 制 定 方 案 ; 對 所 舉 應(yīng) 用 實(shí) 例 能 消 化 理 解 , 對 部 分 模 塊 能 獨(dú) 立 編 程 實(shí) 現(xiàn) . 第 七 章 單 片 機(jī) 應(yīng) 用 系 統(tǒng) 設(shè) 計(jì) 與 開 發(fā)系 統(tǒng) 設(shè) 計(jì) 應(yīng) 當(dāng) 考 慮 的 主 要 技 術(shù) 性 能速 度 精 度 功 耗 可 靠 性 驅(qū) 動(dòng) 能 力 基 本 設(shè) 計(jì) 原 則 應(yīng) 當(dāng) 考 慮 : 功 能 需 求 , 應(yīng) 用 需 求 , 開 發(fā) 條 件 , 市 場 情
2、 況 , 可 靠 性 需 求 , 成 本 需 求 , 盡 量 以 軟 代 硬 基 本 設(shè) 計(jì) 原 則 從 系 統(tǒng) 功 能 需 求 出 發(fā) 設(shè) 計(jì) 功 能 模 塊 顯 示 , 鍵 盤 , 數(shù) 據(jù) 采 集 , 檢 測 , 通 信 , 控 制 , 驅(qū) 動(dòng) , 供 電 方 式 從 系 統(tǒng) 應(yīng) 用 需 求 定 位 元 器 件 資 源 分 配 定 時(shí) /計(jì) 數(shù) 器 , 中 斷 , 串 口 , I/O引 腳 , A/D, D/A, 信 號(hào) 調(diào) 理 , 晶 振 頻 率 從 開 發(fā) 條 件 與 市 場 情 況 出 發(fā) 選 擇 元 器 件 仿 真 機(jī) , 編 程 器 , 元 器 件 , 熟 悉 程 度 , 編 程
3、 語 言 從 系 統(tǒng) 可 靠 性 需 求 確 定 系 統(tǒng) 設(shè) 計(jì) 工 藝 去 耦 , 光 隔 , 屏 蔽 , 印 制 板 , 低 功 耗 , 散 熱 , 傳 輸 距 離 /速 度 , 節(jié) 電 方 式 , 掉 電 保 護(hù) , 軟 件 措 施 基 本 設(shè) 計(jì) 原 則 ( 續(xù) ) 從 系 統(tǒng) 成 本 需 求 選 擇 合 理 電 路 方 案 元 器 件 , 外 殼 , 面 板 , 鍵 盤 , 顯 示 , 單 /雙 面 PCB, 驅(qū) 動(dòng) 功 能 滿 足 系 統(tǒng) 要 求 的 前 提 下 盡 量 以 軟 代 硬 邏 輯 功 能 , 濾 波 功 能 , 譯 碼 功 能 , 動(dòng) 態(tài) 顯 示 , 模 擬 I2C、
4、 SPI總 線 , 軟 ADC, 加 密 220VJP1.0 P1.1 P1,2 P1.3 P1.4 P1.5 P1.6 P1.7 語 音芯 片語 音 輸 出話 音 輸 入 振 鈴檢 測 DTMF 譯 碼 8870 模 擬摘 機(jī) 電 話 機(jī)P0.0 P0.3 P2,0 P2.1 P2.2 P2.3 P2.4 遠(yuǎn) 距 離 電 話 遙 控 裝 置 ( 與 書 上 P.235類 似 的 一 種 應(yīng) 用 )89C51 晶 振復(fù) 位電 路 電 話 外 線 單 片 機(jī) 應(yīng) 用 系 統(tǒng) 設(shè) 計(jì) 與 開 發(fā) 實(shí) 例 1: 1.座 機(jī) 在 無 人 值 守 情 況 下 首 先 要 通 過 光 耦 檢 測 鈴 流
5、, 確 定有 電 話 打 進(jìn) 。2.振 鈴 響 過 設(shè) 定 次 數(shù) 后 , 由 三 極 管 組 成 的 模 擬 摘 機(jī) 電 路 執(zhí)行 摘 話 筒 動(dòng) 作 , 給 座 機(jī) 及 相 應(yīng) 電 路 供 電 。3.通 過 APR9600語 音 電 路 發(fā) 出 “ 請 輸 入 密 碼 ” 提 示 后 , 根據(jù) 撥 叫 方 輸 入 的 密 碼 經(jīng) MT8870譯 碼 后 進(jìn) 行 身 份 判 識(shí) 。 身 份不 符 則 執(zhí) 行 掛 機(jī) 操 作 。4.相 符 則 繼 續(xù) 提 示 對 方 輸 入 控 制 設(shè) 備 號(hào) ( 此 處 為 0 7, 可外 連 8個(gè) 電 器 開 關(guān) ) 和 開 /關(guān) 動(dòng) 作 類 別 ( 開
6、1, 關(guān) 0) ,依 此 對 相 應(yīng) 執(zhí) 行 電 路 輸 出 控 制 信 號(hào) 。 然 后 再 提 示 對 方 輸 入下 個(gè) 要 控 制 的 設(shè) 備 號(hào) 和 開 /關(guān) 動(dòng) 作 類 別 5.直 至 對 方 發(fā) 出 操 作 結(jié) 束 信 號(hào) ( ) , 就 執(zhí) 行 掛 機(jī) 操 作 。任 務(wù) 分 析 : 1.振 鈴 檢 測 電 路 是 以 光 耦 817為 主 構(gòu) 成 的 。 當(dāng) 有 振 鈴 信 號(hào) 時(shí) ,鈴 流 進(jìn) 入 817輸 入 端 1、 2腳 , 4腳 輸 出 脈 沖 方 波 信 號(hào) , 送 至AT89C51的 /INT1端 , 由 于 語 音 信 號(hào) 和 雙 音 多 頻 信 號(hào) 電 壓 遠(yuǎn) 低
7、于 振 鈴 信 號(hào) 電 壓 , 該 電 路 不 會(huì) 引 起 誤 判 。 2.模 擬 摘 機(jī) 電 路 是 由 兩 個(gè) 高 壓 三 極 管 組 成 , AT89C51輸 出 高低 電 平 , 使 三 極 管 導(dǎo) 通 或 截 止 , 從 而 改 變 掛 接 在 電 話 線 上 的阻 抗 來 模 擬 摘 機(jī) 和 掛 機(jī) 。 3.雙 音 多 頻 解 碼 電 路 由 電 橋 B1、 電 容 C1、 電 阻 R1及 雙 音 多 頻識(shí) 別 集 成 電 路 MT8870等 組 成 。 電 橋 起 極 性 校 正 作 用 , 信 號(hào) 經(jīng)RC送 至 MT8870解 碼 , 最 后 輸 出 相 應(yīng) 的 8421碼 ,
8、 供 單 片 機(jī) 判 識(shí) 。4.語 音 芯 片 SP+,SP-端 受 控 將 預(yù) 先 錄 好 的 語 音 提 示 送 至 LM386進(jìn) 行 放 大 , 再 經(jīng) 變 壓 器 T1耦 合 至 電 話 回 路 , 用 戶 可 從 電 話 里聽 到 系 統(tǒng) 控 制 語 音 芯 片 發(fā) 出 的 提 示 , 進(jìn) 行 相 應(yīng) 操 作 。 功 能 電 路 模 塊 : 雙 音 多 頻 DTMF Double Tone Multi Frequency: 每 一 個(gè) 撥 號(hào) 音 是 由 兩 個(gè) 正 弦 波 單 音 混 合 而 成 。 4個(gè) 高 音 和 4個(gè) 低 音 ,有 16種 組 合 。 在 電 信 信 令 中
9、: “ *” “ #” 僅 作 為 開 放 電 信 新 型 業(yè) 務(wù) 中 作 特 殊 識(shí) 別 碼 。 而 “ A” “ B” “ C” “ D” 作 為 備 用 碼 。 雙 音 多 頻 解 碼 芯 片 MT8870D特 性 :完 全 的 DTMF接 收 /解 碼 器低 功 耗內(nèi) 建 增 益 設(shè) 置 放 大 器可 調(diào) 警 衛(wèi) 時(shí) 間 提 供 掉 電 模 式 和 禁 止 模 式與 MT8870C/MT8870C-1兼 容 MT8870D片 內(nèi) 集 成 了 裂 帶 濾 波 器 和 數(shù) 字 解 碼 功 能 ,濾 波器 針 對 高 音 頻 和 低 音 頻 采 用 了 開 關(guān) 電 容 式 濾 波 技 術(shù) ;
10、 譯 碼器 通 過 數(shù) 字 計(jì) 數(shù) 器 對 全 部 16個(gè) DTMF音 頻 組 合 進(jìn) 行 探 測 和 譯碼 。 片 上 的 差 分 輸 入 放 大 器 、 時(shí) 鐘 振 蕩 電 路 和 帶 鎖 存 地 三態(tài) 接 口 僅 需 要 極 少 的 外 接 元 件 。 語 音 芯 片 APR9600 APR9600語 音 錄 放 芯 片 , 是 繼 美 國 ISD公 司 以 后采 用 模 擬 存 儲(chǔ) 技 術(shù) 的 又 一 款 音 質(zhì) 好 、 噪 音 低 、 不怕 斷 電 、 可 反 復(fù) 錄 放 的 新 型 語 音 電 路 , 單 片 電 路可 錄 放 32-60秒 , 串 行 控 制 時(shí) 可 分 256段
11、 以 上 , 并行 控 制 時(shí) 最 大 可 分 8段 。 與 ISD同 類 芯 片 相 比 它 具有 : 價(jià) 格 便 宜 , 有 多 種 手 動(dòng) 控 制 方 式 , 分 段 管 理方 便 、 多 段 控 制 時(shí) 電 路 簡 單 、 采 樣 速 度 及 錄 放 音時(shí) 間 可 調(diào) 、 每 個(gè) 單 鍵 均 有 開 始 停 止 循 環(huán) 多 種 功 能等 特 點(diǎn) 。 APR9600的 全 功 能 應(yīng) 用 電 路 圖 單 片 機(jī) 應(yīng) 用 系 統(tǒng) 設(shè) 計(jì) 與 開 發(fā) 實(shí) 例 2:電 話 鎖 +IP電 話 號(hào) 碼 自 動(dòng) 撥 號(hào) 器 任 務(wù) 分 析 :1、 能 限 撥 用 戶 自 己 設(shè) 定 的 電 話 號(hào)
12、碼 能 設(shè) 定 和 清 除 限 撥 號(hào) 碼 ( 可 存 40個(gè) 號(hào) 碼 ) 可 開 鎖 和 上 鎖 ( 啟 動(dòng) 限 撥 ) 能 設(shè) 置 和 修 改 密 碼 忘 記 密 碼 時(shí) 可 恢 復(fù) 默 認(rèn) 密 碼2、 能 快 速 撥 出 事 先 存 入 的 IP卡 號(hào)3、 無 須 另 外 為 其 供 電 , 有 “ 竊 電 ” 功 能 IP電 話 自 動(dòng) 撥 號(hào) SDA=1; DELAY(1); /* 在 SCL為 “ 1” 的 情 況 下 */ SDA=0; DELAY(1); /* 令 SDA產(chǎn) 生 負(fù) 跳 變 */ SCL=0; void STOP() /* 由 SDA,SCL發(fā) 結(jié) 束 信 號(hào)
13、*/SCL=1; SDA=0; DELAY(1); /* 在 SCL為 “ 1” 的 情 況 下 */ SDA=1; DELAY(50); /* 令 SDA產(chǎn) 生 正 跳 變 */ SCL=0 ; 約 100S 的 整 數(shù) 倍 的 延 時(shí) 子 程 序void DELAY(unsigned int value) value=value*2; while (value!=0) value-; void WByte(char cw) /* 寫 一 個(gè) 字 節(jié) 進(jìn) 24C02 */ char i; /* 變 量 cw放 著 待 寫 進(jìn) 24C02的 數(shù) 據(jù) */ for(i=0; i8; i+) if
14、( cw/*寫 一 個(gè) “ bit” 進(jìn)24C02*/ else SDA=0; cw=cw1; DELAY(1); /* 將 cw左 移 一 次 */ SCL=1; DELAY(1); /* SCL端 送 出 一 個(gè) 時(shí) 鐘 下 跳 沿 */ SCL=0; DELAY(1); /* SDA端 送 出 一 個(gè) 字 節(jié) 后 延 時(shí) 10uS */ SCL=1; DELAY(1); /* 再 發(fā) 送 一 個(gè) 時(shí) 鐘 下 跳 沿 */ SCL=0; DELAY(1); char RByte() /* 從 24C02讀 一 個(gè) 字 節(jié) 進(jìn) MCU */ char r, i; /* 變 量 r 存 放 讀
15、 進(jìn) 的 字 節(jié) */ for(i=0; i8; i+) /* 讀 8個(gè) 位 進(jìn) 單 片 機(jī) */ r = r 1; /* 變 量 r 左 移 一 次 */ if(SDA=1) r= r|0 x01; /*若 SDA端 =1則 r最 低 位 =1*/ else r = r /* 若 SDA端 =0則 r最 低 位 =0 */ SCL=1; DELAY(1); /* 讀 進(jìn) 一 個(gè) 位 后 SCL發(fā) 下 跳 沿 */ SCL=0; DELAY(1); return r; /* 返 回 r 的 值 */ /* 寫 6個(gè) 字 節(jié) 進(jìn) 24C02的 address到 address+5單 元 中 */
16、void WT2402(char address) char i; for(i=0; i6; i+) START(); /* 發(fā) 送 起 始 信 號(hào) */ WByte(0 xA0); /* 寫 入 寫 地 址 的 標(biāo) 志 0 xA0 */ WByte(address+i); /* 寫 地 址 */ WByte(WDatai); /* 將 數(shù) 據(jù) 寫 入 上 述 地 址 中 */ STOP(); /* 發(fā) 送 結(jié) 束 信 號(hào) */ void RD2402(char addr) /*從 24C02的 addr地 址 讀 6個(gè) 字 節(jié) */ char i; for(i=0; i6; i+) STAR
17、T(); /* 發(fā) 送 起 始 信 號(hào) */ WByte(0 xA0); /* 寫 入 寫 地 址 的 標(biāo) 志 0 xA0 */ WByte(addr+i); /* 寫 地 址 */ START(); /* 發(fā) 送 起 始 信 號(hào) */ WByte(0 xA1); /* 寫 入 讀 數(shù) 據(jù) 的 標(biāo) 志 0 xA1 */ RDatai=RByte(); /* 讀 出 一 個(gè) 字 節(jié) 數(shù) 據(jù) */ STOP(); /* 發(fā) 送 結(jié) 束 信 號(hào) */ 單 片 機(jī) 控 制 步 進(jìn) 電 機(jī)單 片 機(jī) 的 P1口 直 接 按 時(shí) 序 ( 相 位 ) 輸 出 控 制信 號(hào) 到 功 率 電 路 , 再 驅(qū) 動(dòng)
18、 步 進(jìn) 電 機(jī) 。單 片 機(jī) 應(yīng) 用 系 統(tǒng) 設(shè) 計(jì) 與 開 發(fā) 實(shí) 例 3: 步 進(jìn) 電 機(jī) 工 作 原 理三 相 單 3拍 : A B C A B C三 相 雙 3拍 : AB BC CA AB BC三 相 單 、 雙 6拍 : AABBBCCCAA四 相 單 4拍 : A B C D A B四 相 雙 4拍 : AB BC CD DA AB各 相 繞 組 順 序 輪 流 通 電 , 令 轉(zhuǎn) 子 與 定 子 帶 槽的 小 磁 機(jī) 極 依 次 對 齊 , 從 而 受 控 旋 轉(zhuǎn) 。 A A BB C C 定 子定 子轉(zhuǎn) 子A CB步 進(jìn) 電 機(jī) 結(jié) 構(gòu) :A B C 三 點(diǎn)共 地定 子 磁
19、 極 端 面 開 槽轉(zhuǎn) 子 園 柱 面 也 開 槽 轉(zhuǎn) 子 四 相 雙 4拍 :AB BC CD DA AB BC CD DA (P1.0) AC (P1.2)(P1.1) (P1.3) P1.3 P1.2 P1.1 P1.0 B D 03 06 0C 09 03 06 步 進(jìn) 電 機(jī) 工 作 原 理 步 進(jìn) 電 機(jī) 工 作 原 理四 相 雙 4拍 : AB BC CD DA AB P1.3 P1.2 P1.1 P1.0 03H06H0CH09H硬 件 實(shí) 驗(yàn) 16(P1.0) AC (P1.2)(P1.1) (P1.3)B D 主 程 序 流 程 圖 : SUNSZ: MOV P1,#03H
20、 FANSZ: MOV P1,#03H LCALL DELAY LCALL DELAY MOV P1,#06H MOV P1,#06H LCALL DELAY LCALL DELAY MOV P1,#0CH MOV P1,#0CH LCALL DELAY LCALL DELAY MOV P1,#09H MOV P1,#09H LCALL DELAY LCALL DELAY SJMP SUNSZ SJMP FANSZ順 時(shí) 針 轉(zhuǎn) 動(dòng) 模 塊 : 依 次 對 P1口 送 03H, 06H, 0CH,09H反 時(shí) 針 轉(zhuǎn) 動(dòng) 模 塊 : 依 次 對 P1口 送 09H, 0CH, 06H,03H轉(zhuǎn) 動(dòng) 的 快 慢 決 定 于 延 時(shí) 模 塊 DELAY延 時(shí) 長 短 。 得 到 AANL C,P1.0CPL C ;得 到 BMOV F0,C ;暫 存 BMOV C,P1.3ANL C,/P1.4 ;得 到 DORL C,F0 ;得 到 結(jié) 果MOV P1.5,C ;輸 出RETAC BD書 上 例 題 : 以 軟 件 實(shí) 現(xiàn) 電 梯 中 的 某 邏 輯 電 路 功 能單 片 機(jī) 應(yīng) 用 系 統(tǒng) 設(shè) 計(jì) 與 開 發(fā) 實(shí) 例 4: OVER !