九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

項目9 信號發(fā)生器的設(shè)計

  • 資源ID:28395354       資源大小:1.66MB        全文頁數(shù):78頁
  • 資源格式: PPT        下載積分:8積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要8積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

項目9 信號發(fā)生器的設(shè)計

2021/6/16 1電子工業(yè)出版社 單 片 機 控 制 技 術(shù) 項 目 式 教 程 ( C語 言 版 ) 2021/6/16 2電子工業(yè)出版社 項 目 9 信 號 發(fā) 生 器 的 設(shè) 計 2021/6/16 3 l 能 了 解 D/A轉(zhuǎn) 換 器 的 相 關(guān) 技 術(shù) 指 標(biāo) ; l 能 理 解 DAC0832的 工 作 原 理 與 應(yīng) 用 方 法 ; l 能 掌 握 DAC0832與 51單 片 機 的 接 口 方 法 ;l 能 掌 握 信 號 發(fā) 生 器 的 硬 件 電 路 的 分 析 與 設(shè) 計 方 法 ;l 能 熟 練 編 寫 信 號 發(fā) 生 器 產(chǎn) 生 各 種 波 形 信 號 的 單 片 機 控 制程 序 。 學(xué) 習(xí) 目 標(biāo) 2021/6/16 4 l 敘 述 D/A轉(zhuǎn) 換 器 的 技 術(shù) 指 標(biāo) 要 求 ;l 敘 述 DAC0832的 工 作 原 理 ;l 設(shè) 計 單 片 機 控 制 的 信 號 發(fā) 生 器 的 工 作 電 路 ;l 編 寫 信 號 發(fā) 生 器 產(chǎn) 生 各 種 波 形 信 號 的 單 片 機 控 制 程 序 。 工 作 任 務(wù) 2021/6/16 5 任 務(wù) 9.1 燈 光 亮 度 調(diào) 節(jié) 器 的 設(shè) 計任 務(wù) 9.2 信 號 發(fā) 生 器 的 設(shè) 計項 目 拓 展 串 行 D/A轉(zhuǎn) 換 芯 片 PCF8591在 實 驗 板 上 的 應(yīng) 用項 目 小 結(jié)思 考 與 訓(xùn) 練項 目 9 信 號 發(fā) 生 器 的 設(shè) 計 2021/6/16 6 任 務(wù) 9.1 燈 光 亮 度 調(diào) 節(jié) 器 的 設(shè) 計l D/A轉(zhuǎn) 換 的 功 能 就 是 將 數(shù) 字 量 轉(zhuǎn) 換 成 模 擬 量 。l 基 本 的 D/A轉(zhuǎn) 換 器 由 電 壓 基 準 或 電 流 基 準 、 精 密 電 阻 網(wǎng) 絡(luò) 、電 子 開 關(guān) 及 全 電 流 求 和 電 路 構(gòu) 成 。9.1.1 D/A轉(zhuǎn) 換 器 的 基 本 原 理1 D/A 轉(zhuǎn) 換 器 的 分 類按 工 作 方 式 分 : 并 行 D/A轉(zhuǎn) 換 器 ( 權(quán) 電 阻 D/A轉(zhuǎn) 換 器 、 R- 2R T型 D/A轉(zhuǎn) 換 器 ) 串 行 D/A轉(zhuǎn) 換 器 間 接 D/A轉(zhuǎn) 換 器 2021/6/16 7 按 D/A轉(zhuǎn) 換 的 分 辨 率 分 : 低 分 辨 率 D/A轉(zhuǎn) 換 器 中 分 辨 率 D/A轉(zhuǎn) 換 器 高 分 辨 率 D/A轉(zhuǎn) 換 器按 模 擬 量 輸 出 方 式 分 : 電 流 輸 出 D/A轉(zhuǎn) 換 器 電 壓 輸 出 D/A轉(zhuǎn) 換 器按 模 擬 電 子 開 關(guān) 電 路 的 不 同 分 : CMOS開 關(guān) 型 D/A轉(zhuǎn) 換 器 ( 速 度 要 求 不 高 ) 雙 極 型 開 關(guān) D/A轉(zhuǎn) 換 器 電 流 開 關(guān) 型 ( 速 度 要 求 較 高 ) ECL電 流 開 關(guān) 型 ( 轉(zhuǎn) 換 速 度 更 高 ) 2021/6/16 8 2 D/A 轉(zhuǎn) 換 器 的 組 成 D/A轉(zhuǎn) 換 器 由 數(shù) 碼 寄 存 器 、 模 擬 電 子 開 關(guān) 電 路 、 解 碼 網(wǎng)絡(luò) 、 求 和 電 路 及 基 準 電 壓 等 幾 部 分 組 成 。 以 R-2R T型 D/A轉(zhuǎn) 換 器 為 例 , 其 由 基 準 電 壓 Vref、 T型( R-2R) 電 阻 網(wǎng) 絡(luò) 、 位 切 換 開 關(guān) 和 運 算 放 大 器 組 成 。 2021/6/16 9 3 D/A 轉(zhuǎn) 換 器 的 工 作 原 理 數(shù) 字 量 是 用 代 碼 按 數(shù) 位 組 合 起 來 表 示 的 , 對 于 有 權(quán) 碼 ,每 位 代 碼 都 有 一 定 的 位 權(quán) 。 為 了 將 數(shù) 字 量 轉(zhuǎn) 換 成 模 擬 量 ,必 須 將 每 1位 的 代 碼 按 其 位 權(quán) 的 大 小 轉(zhuǎn) 換 成 相 應(yīng) 的 模 擬 量 ,然 后 將 這 些 模 擬 量 相 加 , 即 可 得 到 與 數(shù) 字 量 成 正 比 的 總 模擬 量 , 實 現(xiàn) 數(shù) 字 模 擬 轉(zhuǎn) 換 。 2021/6/16 10 R-2R T型 D/A轉(zhuǎn) 換 器 工 作 原 理 : 圖 9.1 R-2R T型 D/A轉(zhuǎn) 換 器 原 理 電 路 2021/6/16 11 圖 示 的 電 路 是 一 個 3位 二 進 制 數(shù) 的 D/A轉(zhuǎn) 換 電 路 , 每 位 二進 制 數(shù) 控 制 一 個 開 關(guān) S。 當(dāng) 第 i位 的 數(shù) 碼 為 “ 0”時 , 開 關(guān) Si打在 左 邊 ; 當(dāng) 第 i位 的 數(shù) 碼 為 “ 1”時 , 開 關(guān) Si打 在 右 邊 。 當(dāng) S0接通 時 , I0 I0 I0 , I1 I0+ I0 2I0同 理 I1 I1 I1 , I2 2I1 I2 I2 I2 , I 2I2推 出 I0 I/8 , I1 I/4 , I2 I/2 I I0 + I1 + I2 ( 1/8 + 1/4 + 1/2) I - Uref( 1/8 + 1/4 + 1/2) /R 2021/6/16 12 將 上 式 推 廣 到 n位 二 進 制 數(shù) 的 轉(zhuǎn) 換 , 可 得 一 般 表 達 式 I - Uref( a0/2n + a1/2n-1 + + an-1/21 +an/20) /R則 輸 出 電 壓 為 Uo ( I) Rf -Uref( a0/2n+ a1/2n-1+ +an-1/21+an/20) Rf/R 輸 出 電 壓 會 因 器 件 誤 差 、 集 成 運 放 的 非 理 想 特 性 而 產(chǎn) 生一 定 的 轉(zhuǎn) 換 誤 差 。 2021/6/16 13 一 般 D/A轉(zhuǎn) 換 器 : OUT B Ur其 中 : Ur為 常 量 , 由 參 考 Uref決 定 。 B為 輸 入 數(shù) 字 量 , 為 二 進 制 數(shù) 。 B可 為 8位 、 12位 、 16 位 等 , 由 DAC芯 片 型 號 決 定 。當(dāng) B為 n位 時 : B bn-1bn-2b1b0 bn-1 2 n-1+ bn-2 2n-2+ b1 21+b0 20 式 中 , bn-1為 最 高 位 ; b0為 最 低 位 。 2021/6/16 14 1 分 辨 率 分 辨 率 是 D/A轉(zhuǎn) 換 器 對 輸 入 量 變 化 敏 感 程 度 的 描 述 , 與輸 入 數(shù) 字 量 的 位 數(shù) 有 關(guān) 。 如 果 數(shù) 字 量 的 位 數(shù) 為 n, 則 D/A轉(zhuǎn)換 器 的 分 辨 率 為 1/2n。 即 數(shù) /模 轉(zhuǎn) 換 器 能 對 滿 刻 度 的 1/2n輸 入量 作 出 反 應(yīng) 。 9.1.2 D/A轉(zhuǎn) 換 器 的 技 術(shù) 性 能 指 標(biāo)分 辨 率 輸 出 模 擬 量 的 滿 量 程 值 2n如 : 8位 數(shù) 的 分 辨 率 為 1/256, 10位 數(shù) 分 辨 率 為 1/1024通 常 用 D/A轉(zhuǎn) 換 器 輸 入 數(shù) 字 量 的 位 數(shù) 來 表 示 分 辨 率 。D/A轉(zhuǎn) 換 器 常 可 分 為 8位 、 10位 、 12位 三 種 。 2021/6/16 15 2 精 度 如 果 不 考 慮 D/A的 轉(zhuǎn) 換 誤 差 , D/A轉(zhuǎn) 換 的 精 度 為 其 分 辨率 的 大 小 。 因 此 , 要 獲 得 一 定 精 度 的 D/A轉(zhuǎn) 換 結(jié) 果 , 首 要 條件 是 選 擇 有 足 夠 分 辨 率 的 D/A轉(zhuǎn) 換 器 。 轉(zhuǎn) 換 速 度 是 DAC每 秒 可 以 轉(zhuǎn) 換 的 次 數(shù) , 其 倒 數(shù) 為 轉(zhuǎn) 換時 間 。 轉(zhuǎn) 換 時 間 是 指 從 輸 入 數(shù) 字 量 到 轉(zhuǎn) 換 為 模 擬 量 輸 出 所需 的 時 間 。 當(dāng) D/A轉(zhuǎn) 換 器 的 輸 出 形 式 為 電 流 時 , 轉(zhuǎn) 換 時 間 較短 ; 當(dāng) D/A轉(zhuǎn) 換 器 的 輸 出 形 式 為 電 壓 時 , 轉(zhuǎn) 換 時 間 要 加 上 運算 放 大 器 的 延 遲 時 間 而 長 一 點 , 一 般 在 幾 十 微 秒 內(nèi) 。3 轉(zhuǎn) 換 速 度 2021/6/16 16 4 建 立 時 間 建 立 時 間 是 指 從 輸 入 數(shù) 字 量 變 化 到 輸 出 達 到 終 值 誤 差 (1/2)LSB(最 低 有 效 位 )時 所 需 的 時 間 , 即 輸 入 的 數(shù) 字 量 變 化后 , 輸 出 模 擬 量 穩(wěn) 定 到 相 應(yīng) 的 數(shù) 字 范 圍 內(nèi) 所 需 的 時 間 。 通 常 以 建 立 時 間 來 表 示 轉(zhuǎn) 換 速 度 。 輸 入 編 碼 形 式 是 指 D/A轉(zhuǎn) 換 電 路 輸 入 的 數(shù) 字 量 的 形 式 。如 二 進 制 碼 、 BCD碼 等 。5 輸 入 編 碼 形 式 2021/6/16 17 6 線 性 度 線 性 度 是 指 D/A轉(zhuǎn) 換 器 的 實 際 轉(zhuǎn) 移 特 性 與 理 想 直 線 之 間 的最 大 誤 差 , 或 最 大 偏 移 。 通 常 給 出 在 一 定 溫 度 下 的 最 大 非 線性 度 , 一 般 為 0.01% 0.03 。 大 部 分 D/A轉(zhuǎn) 換 芯 片 是 電 壓 型 輸 出 , 一 般 為 5 10V; 也有 高 壓 輸 出 型 的 , 為 24 30V。 有 一 些 是 電 流 型 的 輸 出 , 低者 為 20mA左 右 , 高 者 可 達 3A。7 輸 出 電 平 8 尖 峰 尖 峰 是 輸 入 的 數(shù) 字 量 發(fā) 生 變 化 時 產(chǎn) 生 的 瞬 時 誤 差 。 通 常尖 峰 的 轉(zhuǎn) 換 時 間 很 短 , 但 幅 度 很 大 。 在 許 多 場 合 是 不 允 許有 尖 峰 存 在 的 , 應(yīng) 采 取 措 施 予 以 消 除 。 2021/6/16 18 正 確 了 解 D/A轉(zhuǎn) 換 器 件 的 技 術(shù) 性 能 參 數(shù) , 對 于 合 理 選 用轉(zhuǎn) 換 芯 片 、 正 確 設(shè) 計 接 口 電 路 十 分 重 要 。 D/A轉(zhuǎn) 換 器 的 性 能 指 標(biāo) 很 多 , 但 在 選 用 合 適 的 芯 片 型 號時 主 要 考 慮 的 是 它 的 分 辨 率 、 精 度 和 轉(zhuǎn) 換 速 度 。 2021/6/16 19 目 前 單 片 機 系 統(tǒng) 常 用 的 D/A轉(zhuǎn) 換 器 的 轉(zhuǎn) 換 精 度 有 8位 、 10位 、 12位 等 , 與 單 片 機 的 接 口 方 式 有 并 行 接 口 、 串 行 接 口 。9.1.3 DAC0832芯 片 及 其 與 單 片 機 接 口 電 路 1 DAC0832芯 片 介 紹( 1) DAC0832的 性 能 8位 D/A轉(zhuǎn) 換 器 , 單 電 源 供 電 , 在 +5 +15 V范 圍 均 可 正 常工 作 。 基 準 電 壓 的 范 圍 為 10V; 電 流 建 立 時 間 為 1 s; CMOS工 藝 , 低 功 耗 (僅 為 20 mW)。 2021/6/16 20 DAC0832主 要 特 性 : 輸 出 電 流 線 性 度 可 在 滿 量 程 下 調(diào) 節(jié) ; 轉(zhuǎn) 換 時 間 ( 電 流 建 立 時 間 ) 為 ; 數(shù) 據(jù) 輸 入 可 采 用 雙 緩 沖 、 單 緩 沖 或 直 通 方 式 ; 增 益 溫 度 補 償 為 0.02%FS/ ; 每 次 輸 入 數(shù) 字 為 8位 二 進 制 數(shù) ; 低 功 耗 , 20mW; 邏 輯 電 平 輸 入 與 TTL兼 容 ; 基 準 電 壓 的 范 圍 為 10V; 單 電 源 供 電 , 可 在 5 15V 內(nèi) 正 常 工 作 。 2021/6/16 21 ( 2) DAC0832的 內(nèi) 部 結(jié) 構(gòu) 2021/6/16 22 該 轉(zhuǎn) 換 器 由 輸 入 寄 存 器 和 DAC寄 存 器 構(gòu) 成 兩 級 數(shù) 據(jù) 輸 入鎖 存 。 使 用 時 數(shù) 據(jù) 輸 入 可 以 采 用 兩 級 鎖 存 (雙 鎖 存 )形 式 , 或單 級 鎖 存 (一 級 鎖 存 , 一 級 直 通 )形 式 , 或 直 接 輸 入 (兩 級 直通 )形 式 。 此 外 , 由 3個 與 門 電 路 可 組 成 寄 存 器 輸 出 控 制 邏 輯 電 路 ,該 邏 輯 電 路 的 功 能 是 進 行 數(shù) 據(jù) 鎖 存 控 制 。 當(dāng) =0時 , 輸 入數(shù) 據(jù) 被 鎖 存 ; 當(dāng) =1時 , 鎖 存 器 的 輸 出 跟 隨 輸 入 的 數(shù) 據(jù) 。 D/A轉(zhuǎn) 換 電 路 是 一 個 R-2R T型 電 阻 網(wǎng) 絡(luò) , 可 實 現(xiàn) 8位 數(shù) 據(jù)的 轉(zhuǎn) 換 。 ILE ILE 2021/6/16 23 ( 3) DAC0832的 引 腳 DAC0832為 20引 腳 、 雙 列 直 插 式 封 裝 。Vcc: 電 源 線 。 DAC0832的 電 源 可 以在 5 15V內(nèi) 變 化 。 典 型 使 用 時 用+15V電 源 。AGND和 DGND: AGND為 模 擬 量 地 線 ,DGND為 數(shù) 字 量 地 線 。 使 用 時 , 這 兩 個接 地 端 應(yīng) 始 終 連 在 一 起 。CS: 片 選 輸 入 信 號 , 低 電 平 有 效 。 只 有 當(dāng) CS=0時 ,這 片 DAC0832才 被 選 中 。DI0 DI7: 8位 數(shù) 字 量 輸 入 端 。 應(yīng) 用 時 , 如 果 數(shù) 據(jù) 不足 8位 , 則 不 用 的 位 一 般 接 地 。 2021/6/16 24 ILE: 輸 入 鎖 存 允 許 信 號 , 高 電 平 有 效 。 只 有 當(dāng) ILE=1時 , 輸 入 數(shù) 字 量 才可 能 進 入 8位 輸 入 寄 存 器 。WR1: 寫 信 號 1, 低 電 平 有 效 , 控 制 輸 入 寄 存 器 的 寫 入 。 ILE和 WR1信號 控 制 輸 入 寄 存 器 是 數(shù) 據(jù) 直 通 方 式 還 是 數(shù) 據(jù) 鎖 存 方 式 : 當(dāng) ILE=1且WR1=0時 , 為 輸 入 寄 存 器 直 通 方 式 ; 當(dāng) ILE=1且 WR1=1時 , 為 輸 入 寄存 器 鎖 存 方 式 。WR2: 寫 信 號 2, 低 電 平 有 效 , 控 制 DAC寄 存 器 的 寫 入 。XFER: 數(shù) 據(jù) 傳 送 控 制 輸 入 信 號 , 低 電 平 有 效 , 控 制 數(shù) 據(jù) 從 輸 入 寄 存 器到 DAC寄 存 器 的 傳 送 。 WR2和 XFER信 號 控 制 DAC寄 存 器 是 數(shù) 據(jù) 直 通 方式 還 是 數(shù) 據(jù) 鎖 存 方 式 : 當(dāng) WR2=0且 XFER =0時 , 為 DAC寄 存 器 直 通 方式 ; 當(dāng) WR2=1或 XFER =1時 , 為 DAC寄 存 器 鎖 存 方 式 。 2021/6/16 25 Vref: 參 考 電 壓 線 。 Vref接 外 部 的 標(biāo) 準 電 源 , 與 芯 片 內(nèi) 的電 阻 網(wǎng) 絡(luò) 相 連 接 , 該 電 壓 可 正 可 負 , 范 圍 為 10 10V。Iout1和 Iout2: 電 流 輸 出 端 。 Iout1為 DAC電 流 輸 出 1, 當(dāng)DAC寄 存 器 中 的 數(shù) 據(jù) 為 0 xFF時 , 輸 出 電 流 最 大 , 當(dāng) DAC寄存 器 中 的 數(shù) 據(jù) 為 0 x00時 , 輸 出 電 流 為 。 Iout2為 DAC電流 輸 出 2。 DAC轉(zhuǎn) 換 器 的 特 性 之 一 是 Iout1 Iout2=常 數(shù)。 在 實 際 使 用 時 , 總 是 將 電 流 轉(zhuǎn) 為 電 壓 來 使 用 , 即 將Iout1和 Iout2加 到 一 個 運 算 放 大 器 的 輸 入 端 。 2021/6/16 26 Rfb: 運 算 放 大 器 的 反 饋 電 阻 端 , 電 阻 ( 15k ) 已 固 化 在芯 片 中 。 因 為 DAC0832是 電 流 輸 出 型 D/A轉(zhuǎn) 換 器 , 為 得 到電 壓 的 轉(zhuǎn) 換 輸 出 , 使 用 時 需 在 兩 個 電 流 輸 出 端 接 運 算 放大 器 , Rfb即 為 運 算 放 大 器 的 反 饋 電 阻 。 圖 9.5 運 算 放 大 器 的 接 法 2021/6/16 27 ( 4) DAC0832的 工 作 原 理 將 數(shù) 字 量 的 每 一 位 按 權(quán) 值 分 別 轉(zhuǎn) 換 成 模 擬 量 , 再 通 過運 算 放 大 器 求 和 相 加 , D/A轉(zhuǎn) 換 器 內(nèi) 部 有 一 個 解 碼 網(wǎng) 絡(luò) ,以 實 現(xiàn) 按 權(quán) 值 分 別 進 行 D/A轉(zhuǎn) 換 。( 5) DAC0832的 輸 出 DAC0832是 電 流 輸 出 型D/A轉(zhuǎn) 換 器 。 圖 9.6 DAC0832單 極 性 電 壓 輸 出 電 路單 極 性 輸 出 運 放 :Vout Iout1 Rfb B Vref/256 2021/6/16 28 雙 極 性 輸 出 運 放 :Vout ( Vout1/R Vref/2R ) 2R 2Vout1 Vref 2B Vref/256 Vref B Vref/128 Vref Vref (B 128)/128 圖 9.7 DAC0832雙 極 性 電 壓 輸 出 電 路 當(dāng) Vref為 正 , 數(shù) 字量 在 0 x01 0 x7F之間 變 化 時 , Vout為負 值 ; 當(dāng) 數(shù) 字 量 在0 x80 0 xFF之 間變 化 時 , Vout為 正值 。 2021/6/16 29 ( 1) 直 通 方 式 下 的 接 口 電 路 直 通 方 式 是 數(shù) 據(jù) 直 接 輸 入 (兩 級 直 通 )的 形 式 。 兩 個 8位 數(shù) 據(jù) 寄 存 器 都 處 于 數(shù) 據(jù) 接 收 狀 態(tài) , LE1=1,LE2=1, ILE=1, 而 WR1、 WR2、 CS和 XFER均 為 0。 輸 入 數(shù) 據(jù) 直接 送 到 內(nèi) 部 D/A轉(zhuǎn) 換 器 去 轉(zhuǎn) 換 。 2 DAC0832與 51單 片 機 的 接 口 電 路 DAC0832的 工 作 方 式 : 直 通 方 式 、 單 緩 沖 方 式 和 雙 緩 沖 方 式 2021/6/16 30圖 9.8 直 通 方 式 下 89C51與 DAC0832的 連 接 圖 2021/6/16 31 ( 2) 單 緩 沖 方 式 下 的 接 口 電 路 單 緩 沖 方 式 是 單 級 鎖 存 (一 級 鎖 存 , 一 級 直 通 )形 式 ,就 是 使 DAC0832的 兩 個 8位 數(shù) 據(jù) 寄 存 器 中 有 一 個 處 于 直 通 方式 , 而 另 一 個 處 于 受 控 的 鎖 存 方 式 , 或 者 兩 個 8位 數(shù) 據(jù) 寄 存器 處 于 同 時 受 控 的 方 式 , 即 同 時 送 數(shù) , 同 時 鎖 存 。 在 單 緩 沖 工 作 方 式 下 , 可 以 將 8位 DAC寄 存 器 置 于 直 通方 式 。 為 此 , 應(yīng) 將 WR2和 XFER接 地 , 而 輸 入 寄 存 器 的 工 作 狀態(tài) 受 單 片 機 的 控 制 。 2021/6/16 32 WR=0, P2.7=0, DAC0832的 地 址 為 0 x7FFF,將 數(shù) 字 量 0 x08轉(zhuǎn) 換 為 模 擬 量 的 程 序 :#define DAC0832 XBYTE0 x7FFFDAC0832=0 x08;或 output(0 x7FFF, 0 x08); 2021/6/16 33 兩 個 輸 入 寄 存 器 同 時 受 控 的 連 接 方 法 , WR1和 WR2一 起接 89C51的 WR, CS和 XFER共 同 接 89C51的 P2.7, 因 此 兩 個寄 存 器 的 地 址 相 同 。 2021/6/16 34 ( 3) 雙 緩 沖 方 式 下 的 接 口 電 路 雙 緩 沖 方 式 的 數(shù) 據(jù) 輸 入 可 以 采 用 兩 級 鎖 存 (雙 鎖 存 )的 形 式 ,就 是 把 DAC0832的 兩 個 鎖 存 器 都 接 成 受 控 鎖 存 方 式 。 DAC0832的WR1、 WR2、 CS和 XFER都 受 單 片 機 送 來 的 信 號 的 控 制 。 當(dāng) WR=0, P2.7=0, P2.6=1, 8位 輸 入 寄 存 器 處 于 送 數(shù) 狀 態(tài) , 8位 DAC寄 存 器 處 于 鎖 存 狀 態(tài) , 不 能 進 行 D/A轉(zhuǎn) 換 。 2021/6/16 35 雙 緩 沖 方 式 下 89C51與 兩 片 DAC0832的 連 接 圖 2021/6/16 36 如 DAC0832的 8位 輸 入 寄 存 器 地 址 為 0 x7FFF, WR=0,P2.7=1, P2.6=0, 8位 DAC寄 存 器 處 于 送 數(shù) 據(jù) 狀 態(tài) , 開 始 進行 D/A轉(zhuǎn) 換 。 DAC0832的 8位 DAC寄 存 器 的 地 址 為 0 xBFFF, 將一 個 數(shù) 字 量 轉(zhuǎn) 換 為 模 擬 量 的 程 序 : #define DAC0832_1 XBYTE0 xBFFF#define DAC0832_2 XBYTE0 x7FFFDAC0832_1=0 x08;DAC0832_2=0 x08;或 output(0 xBFFF, 0 x08) ; output(0 x7FFF, 0 x08) ; 2021/6/16 37 1 任 務(wù) 要 求9.1.4 燈 光 亮 度 調(diào) 節(jié) 器 的 設(shè) 計 用 AT89C51單 片 機 和 DAC0832控 制 一 個 發(fā) 光 二 極 管 , 使發(fā) 光 二 極 管 的 亮 度 逐 漸 變 暗 , 再 逐 漸 變 亮 , 不 斷 循 環(huán) 。 2 任 務(wù) 分 析 改 變 發(fā) 光 二 極 管 的 亮 度 , 就 要 改 變 通 過 發(fā) 光 二 極 管的 電 流 。 方 法 很 多 , 利 用 AT89C51控 制 DAC0832數(shù) 模 轉(zhuǎn) 換芯 片 , DAC0832的 輸 出 轉(zhuǎn) 換 成 電 壓 去 驅(qū) 動 發(fā) 光 二 極 管 。 當(dāng)DAC0832的 輸 入 數(shù) 字 量 變 化 時 , 輸 出 電 壓 改 變 , 通 過 發(fā) 光二 極 管 的 電 流 變 化 , 發(fā) 光 二 極 管 的 亮 度 就 改 變 。 2021/6/16 38 3 任 務(wù) 設(shè) 計 ( 1) 器 件 選 擇器 件 名 稱 數(shù) 量 ( 只 )AT89C51 16MHz 晶 體 122pF瓷 片 電 容 210uF電 解 電 容 110k電 阻 1470電 阻 1uA471 1DAC0832 1 發(fā) 光 二 極 管 LED 1 2021/6/16 39 ( 2) 硬 件 原 理 圖 設(shè) 計 DAC0832單 緩 沖 方 式 , P2和 P0決 定 地 址 , 片 選 信 號 CS低 電 平有 效 , P2.7為 0, DAC0832的 地 址 為 0 x7FFF。 8 123 456 7 123 4 876 5 XTAL218 XTAL119 ALE30 EA31 PSEN29 RST9 P0.0/AD0 39P0.1/AD1 38P0.2/AD2 37 P0.3/AD3 36P0.4/AD4 35P0.5/AD5 34 P0.6/AD6 33P0.7/AD7 32 P1.01 P1.12 P1.23 P1.34 P1.45 P1.56 P1.67 P1.78 P3.0/RXD 10P3.1/TXD 11P3.2/INT0 12 P3.3/INT1 13P3.4/T0 14 P3.7/RD 17P3.6/WR 16P3.5/T1 15 P2.7/A15 28 P2.0/A8 21P2.1/A9 22P2.2/A10 23 P2.3/A11 24P2.4/A12 25P2.5/A13 26 P2.6/A14 27 U1 AT89C51 C1 22pFC2 22pF C3 10uF R110k VREF8 GND3 VCC 20CS1 WR12 DI34 DI2 5 DI16 DI07 RFB9 GND10 IOUT1 11IOUT2 12DI7 13DI6 14 DI5 15DI4 16XFER 17 WR2 18ILE(BY1/BY2) 19 U2 DAC0832 32 67 4 1 5 U3 UA741 WR WRXF R2470 +12V X16MHz 7 4 1 5 XF -5V -12V D1LED-GREEN 2021/6/16 40 ( 3) 軟 件 程 序 設(shè) 計 :#include #include #define uint unsigned int#define uchar unsigned char#define DAC0832 XBYTE0 x7FFF/延 時 子 程 序void DelayMS(uint x) uchar t; while(x-) for(t=0;t0;i-) AC0832=i; DelayMS(1); for(i=0;i256;i+) AC0832=i; DelayMS(1); 2021/6/16 41 ( 4) 軟 硬 件 聯(lián) 合 調(diào) 試 在 Protus環(huán) 境 下 , 將 編 譯 好 的 軟 件 下 載 到 AT89C51中運 行 , 可 以 看 到 LED燈 如 任 務(wù) 要 求 的 一 樣 先 由 亮 逐 漸 變 暗 ,再 由 暗 逐 漸 變 亮 。 2021/6/16 42 1 任 務(wù) 要 求任 務(wù) 9.2 信 號 發(fā) 生 器 的 設(shè) 計 用 單 片 機 AT89C51和 D/A轉(zhuǎn) 換 芯 片 DAC0832組 成 的 信 號發(fā) 生 器 生 成 要 求 周 期 和 幅 度 ( 0V+5V) 的 鋸 齒 波 、 三 角 波 、方 波 或 正 弦 波 。 2 任 務(wù) 分 析 鋸 齒 波 : 向 DAC0832反 復(fù) 送 入 0 x000 xFF數(shù) 據(jù) , 就 會 生 成 幅 度 為 0V+5V的 鋸 齒 波三 角 波 : 向 DAC0832反 復(fù) 送 入 0 x000 xFF和 0 xFF 0 x00數(shù) 據(jù) , 就 會 生 成 幅 度 為 0V+5V的 三 角 波方 波 : 向 DAC0832送 入 一 定 時 長 的 0 x00和 一 定 時 長 的 0 xFF, 就 會 生 成 幅 度 為 0V+5V的 方 波 2021/6/16 43 波 形 的 周 期 與 單 片 機 的 機 器 周 期 和 程 序 中 的 延 時 長 短 相 關(guān) 。正 弦 波 : 等 時 間 間 隔 分 割 正 弦 信 號 , 計 算 出 分 割 時 刻 的 信 號 幅 值 , 將 幅 值 對 應(yīng) 的 數(shù) 字 量 存 儲 到 ROM中 , 然 后 用 查 表 的 方 法 取 出 這 些 取 樣 值 , 送 到 DAC0832轉(zhuǎn) 換 后 輸 出 , 那 么 輸 出 信 號 就 是 正 弦 波 形 。 如 : 波 形 頻 率 為 50Hz的 正 弦 波 信 號 , 正 弦 波 信 號 以 5 作 為 1個 階 梯 , 則 分 成 360 5 72份 , 時 間 間 隔 為 20 72 0.278ms。 當(dāng) 參 考 電 壓 為 5V時 , 72個 采 樣 值 、 輸 出 電 壓 值 、 正 弦 值 、 角 度 如 表 9.2所 示 。 2021/6/16 44 X sinX 輸 出 電 壓 輸 入 數(shù) 字 量0 90 90 180 180 270 270 3600 0.0000 2.500V 0 x7F 0 xFF 0 x7F 0 x005 0.0872 2.718V 0 x8A 0 xFE 0 x75 0 x0110 0.1736 2.934V 0 x95 0 xFD 0 x6A 0 x0215 0.2588 3.147V 0 xA0 0 xFA 0 x5F 0 x0420 0.3420 3.355V 0 xAB 0 xF7 0 x54 0 x0725 0.4226 3.557V 0 xB5 0 xF3 0 x4A 0 x0C30 0.5000 3.750V 0 xBF 0 xED 0 x40 0 x11 35 0.5736 3.934V 0 xC8 0 xE7 0 x36 0 x1740 0.6428 4.107V 0 xD1 0 xE1 0 x2D 0 x1E45 0.7071 4.268V 0 xD9 0 xD9 0 x25 0 x2550 0.7660 4.415V 0 xE1 0 xD1 0 x1E 0 x2D55 0.8192 4.548V 0 xE7 0 xC8 0 x17 0 x3660 0.8660 4.665V 0 xED 0 xBF 0 x11 0 x4065 0.9093 4.773V 0 xF3 0 xB5 0 x0C 0 x4A70 0.9397 4.849 V 0XF7 0 xAB 0 x07 0 x5475 0.9659 4.915V 0 xFA 0 xA0 0 x04 0 x5F 80 0.9848 4.962V 0 xFD 0 x95 0 x02 0 x6A85 0.9962 4.991V 0 xFE 0 x8A 0 x01 0 x7590 1.0000 5.000V 0 xFF 0 x7F 0 x00 0 x7F 表 9.2 正 弦 波 數(shù) 據(jù) 表 2021/6/16 45 3 任 務(wù) 設(shè) 計 ( 1) 器 件 選 擇器 件 名 稱 數(shù) 量 ( 只 )AT89C51 16MHz 晶 體 122pF瓷 片 電 容 210uF電 解 電 容 110k電 阻 110k可 變 電 阻 11k電 阻 1 uA471 1DAC0832 1數(shù) 字 電 壓 表 1示 波 器 1 2021/6/16 4681234567 123 4 876 5 XTAL218 XTAL119 ALE30 EA31 PSEN29 RST9 P0.0/AD0 39P0.1/AD1 38P0.2/AD2 37 P0.3/AD3 36P0.4/AD4 35P0.5/AD5 34 P0.6/AD6 33P0.7/AD7 32 P1.01 P1.12 P1.23 P1.34 P1.45 P1.56 P1.67 P1.78 P3.0/RXD 10P3.1/TXD 11P3.2/INT0 12 P3.3/INT1 13P3.4/T0 14 P3.7/RD 17P3.6/WR 16P3.5/T1 15 P2.7/A15 28 P2.0/A8 21P2.1/A9 22P2.2/A10 23 P2.3/A11 24P2.4/A12 25P2.5/A13 26 P2.6/A14 27 U1 AT89C51 C1 22pFC2 22pF C3 10uF R110k VREF8 GND3 VCC 20CS1 WR12 DI34 DI25 DI16 DI07 RFB9 GND10 IOUT1 11IOUT2 12DI7 13DI6 14 DI5 15DI4 16XFER 17 WR2 18ILE(BY1/BY2) 19 U2 DAC0832 32 67 4 1 5 U3 UA741 WR WR XF XF -5V R21K +12V -12V ABC D 10k +88.8AC Volts X16M 7 4 1 5 -12V ( 2) 硬 件 原 理 圖設(shè) 計 DAC0832工 作于 單 緩 沖 方 式 , 地址 為 0 x7FFF。 Vref接 5V電 壓 , 輸 出的 單 極 性 電 壓 在0 5V之 間 變 化 。 2021/6/16 47 ( 3) 軟 件 程 序 設(shè) 計 : 產(chǎn) 生 鋸 齒 波 的 源 程 序 如 下 :#include #include #define uint unsigned int#define uchar unsigned char#define DAC0832 XBYTE0 x7FFF/延 時 子 程 序void DelayMS(uint x) uchar t; while(x-) for(t=0;t120;t+); / 主 程 序 生 成 鋸 齒 波void main() uchar i; while(1) for(i=0;i256;i+) DAC0832=i; DelayMS(1); 2021/6/16 48 產(chǎn) 生 三 角 波 的 源 程 序 如 下 : #include #include #define uint unsigned int#define uchar unsigned char#define DAC0832 XBYTE0 x7FFF/延 時 子 程 序void DelayMS(uint x) uchar t; while(x-) for(t=0;t120;t+); / 主 程 序 生 成 三 角 波void main() uchar i; while(1) for(i=0;i0;i-) DAC0832=i; DelayMS(1); 2021/6/16 49 產(chǎn) 生 正 弦 波 的 源 程 序 如 下 :#include #include #define uint unsigned int#define uchar unsigned char#define DAC0832 XBYTE0 x7FFF 2021/6/16 50 /初 始 化 正 弦 波 波 形 數(shù) 據(jù) 數(shù) 組uchar code data =0 x7F, 0 x8A, 0 x95, 0 xA0, 0 xAB, 0XB5, 0 xBF, 0 xC8, 0 xD1, 0 xD9, 0 xE1, 0 xE7, 0 xED, 0 xF3, 0 xF7, 0 xFA, 0 xFD, 0 xFE, 0 xFF, 0 xFE, 0 xFD, 0 xFA, 0 xBF, 0 xF3, 0 xED, 0 xE7, 0 xE1, 0 xD9, 0 xD1, 0 xC8, 0 xBF, 0 xB5, 0 xAB, 0 xA0, 0 x95, 0 x8A, 0 x7F, 0 x75, 0 x6A, 0 x5F, 0 x54, 0 x4A, 0 x40, 0 x36, 0 x2D, 0 x25, 0 x1E, 0 x17, 0 x11, 0 x0C, 0 x07, 0 x04, 0 x02, 0 x01, 0 x00, 0 x01, 0 x02, 0 x04, 0 x07, 0 x0C, 0 x11, 0 x17, 0 x1E, 0 x25, 0 x2D, 0 x36, 0 x40, 0 x4A, 0 x54, 0 x5F, 0 x6A, 0 x75; 2021/6/16 51 /延 時 子 程 序void DelayMS(uint x) uchar t; while(x-) for(t=0;t120;t+);/主 程 序 生 成 正 弦 波void main() uchar i; while(1) for(i=0;i72;i+) DAC0832= datai; DelayMS(1); 2021/6/16 52 ( 4) 軟 硬 件 聯(lián) 合 調(diào) 試 將 上 面 相 應(yīng) 波 形 的 程 序 編 譯 為 *.hex文 件 后 , 在 Proteus繪 制 的 原 理 圖 中 , 將 *.hex文 件 加 載 到 單 片 機 AT89C51中 運 行 ,在 虛 擬 示 波 器 上 可 以 看 到 對 應(yīng) 的 波 形 圖 。 在 Proteus仿 真 運行 過 程 中 可 能 會 提 示 CPU過 載 , 這 時 虛 擬 示 波 器 可 能 會 無 法實 時 顯 示 波 形 , 可 將 虛 擬 示 波 器 通 道 A中 指 向 1的 黃 色 旋 鈕 從1開 始 先 正 向 旋 轉(zhuǎn) 一 圈 , 再 反 向 旋 轉(zhuǎn) 一 圈 , 這 樣 會 使 虛 擬 示波 器 盡 快 刷 新 顯 示 波 形 。 2021/6/16 53 1 PCF8591簡 介項 目 拓 展 串 行 D/A轉(zhuǎn) 換 芯 片 PCF8591在 實 驗 板 上 的 應(yīng) 用 PCF8591是 一 個 單 片 集 成 的 具 有 I2C總 線 接 口 的 8位 A/D及 D/A轉(zhuǎn) 換 器 , 有 4路 A/D輸 入 , 1路 D/A輸 出 。 PCF8591的 輸入 輸 出 地 址 、 控 制 和 數(shù) 據(jù) 信 號 都 是 通 過 I2C總 線 以 串 行 的 方式 進 行 傳 輸 。 2021/6/16 54 PCF8591的 主 要 特 性 : 單 獨 供 電 PCF8591的 操 作 電 壓 范 圍 +2.5V+6V 低 待 機 電 流 通 過 IC總 線 串 行 輸 入 /輸 出 PCF8591通 過 3個 硬 件 地 址 引 腳 尋 址 PCF8591的 采 樣 率 由 IC總 線 速 率 決 定 4個 模 擬 輸 入 可 編 程 為 單 端 型 或 差 分 輸 入 自 動 增 量 頻 道 選 擇 PCF8591的 模 擬 電 壓 范 圍 從 VSS到 VDD PCF8591內(nèi) 置 跟 蹤 保 持 電 路 8-bit逐 次 逼 近 A/D轉(zhuǎn) 換 器 通 過 1路 模 擬 輸 出 實 現(xiàn) DAC增 益 2021/6/16 55 2 PCF8591內(nèi) 部 結(jié) 構(gòu) 框 圖 2021/6/16 56 3 PCF8591引 腳 功 能 引 腳 序 號 引 腳 名 稱 引 腳 功 能1 AIN0 模 擬 量 輸 入 端 口2 AIN13 AIN24 AIN35 A0 模 擬 通 道 選 擇 地 址6 A17 A28 VSS 負 電 源 電 壓9 SDA IC總 線 數(shù) 據(jù) 信 號10 SCL IC總 線 時 鐘 信 號11 OSC 外 部 時 鐘 輸 入 端 , 內(nèi) 部 時 鐘 輸 出 端 12 EXT 內(nèi) 部 、 外 部 時 鐘 選 擇 線 , 使 用 內(nèi) 部 時 鐘 時 EXT 接 地13 AGND 模 擬 信 號 地14 Vref 基 準 電 源 電 壓15 AOUT D/A 轉(zhuǎn) 換 模 擬 量 輸 出 端16 VDD 正 電 源 電 壓 2021/6/16 57 4 PCF8591工 作 原 理 PCF8591采 用 典 型 的 I2C總 線 接 口 器 件 尋 址 方 法 , 即 總線 地 址 由 器 件 地 址 ( 1001) 、 引 腳 地 址 ( 由 A0A2接 地 或+5V來 確 定 , 接 地 代 表 0, 接 +5V代 表 1) 、 方 向 位 ( 即 R/W)組 成 。 在 I2C總 線 系 統(tǒng) 中 最 多 可 接 8個 這 樣 的 器 件 。D7 D6 D5 D4 D3 D2 D1 D01 0 0 1 A2 A1 A0 R/W表 9.5 PCF8591總 線 地 址 2021/6/16 58 R/W=1表 示 讀 操 作 , R/W=0表 示 寫 操 作 。 如 果 將 A0A2接地 , 則 讀 地 址 為 91H; 寫 地 址 為 90H。 地 址 字 節(jié) : 由 器 件 地 址 、 引 腳 地 址 、 方 向 位 組 成 , 它 是 通 信時 主 機 發(fā) 送 的 第 一 字 節(jié) 數(shù) 據(jù) 。 控 制 字 節(jié) : 用 于 控 制 PCF8951的 輸 入 方 式 、 輸 入 通 道 、D/A轉(zhuǎn) 換 等 , 是 通 信 時 主 機 發(fā) 送 的 第 二 字 節(jié) 數(shù) 據(jù) , 其 格 式 如 下表 。 D7 D6 D5 D4 D3 D2 D1 D0 未 用 ( 寫 0 ) D/A輸 出 允許 位 0 為 禁 止 1 為 允 許 A/D輸 入 方 式 選 擇 位0 0 : 4 路 單 端 輸 入 0 1 : 3 路 差 分 輸1 0 : 單 端 與 差 分 1 1 : 2 路 差 分 輸 入 未 用 ( 寫 0 ) 自 動 增 益選 擇 位 0 為 禁 用 1 為 啟 用 AD通 道 選 擇 位 0 0 : 選 擇 通 道 0 0 1 : 選 擇 通 道 1 1 0 : 選 擇 通 道 2 1 1 : 選 擇 通 道 3 2021/6/16 59 D/A轉(zhuǎn) 換 的 數(shù) 據(jù) 輸 入 和 A/D轉(zhuǎn) 換 的 數(shù) 據(jù) 輸 出 都 是 通 過 I2C總 線串 行 輸 入 和 輸 出 的 。 因 此 PCF8951中 I2C總 線 的 通 信 格 式 包 括 寫數(shù) 據(jù) 格 式 和 讀 數(shù) 據(jù) 格 式 。PCF8591的 I2C總 線 寫 數(shù) 據(jù) 格 式 :第 一 字 節(jié) 第 二 字 節(jié) 第 三 字 節(jié)寫 入 器 件 地 址 ( 9 0 H) 寫 入 控 制 字 節(jié) 要 寫 入 的 數(shù) 據(jù)向 PCF8 5 9 1 寫 入 格 式 ( 高 位 在 前 )PCF8591的 I2C總 線 讀 數(shù) 據(jù) 格 式 :第 一 字 節(jié) 第 二 字 節(jié) 第 三 字 節(jié) 第 四 字 節(jié) 寫 入 器 件 地 址 (9 0 H寫 ) 寫 入 控 制 字 節(jié) 寫 入 器 件 地 址 (9 1 H讀 ) 讀 出 一 字 節(jié) 數(shù)據(jù)從 PCF8 5 9 1 讀 數(shù) 據(jù) 格 式 ( 高 位 在 前 ) 2021/6/16 60 5 I2C總 線 ( 1) I2C總 線 數(shù) 據(jù) 位 的 傳 輸 I2C總 線 上 每 傳 輸 一 個 數(shù) 據(jù) 位 必 須 產(chǎn) 生 一 個 時 鐘 脈 沖 , I2C總線 上 數(shù) 據(jù) 傳 輸 的 有 效 性 要 求 SDA線 上 的 數(shù) 據(jù) 必 須 在 時 鐘 線 SCL的高 電 平 期 間 保 存 穩(wěn) 定 , 數(shù) 據(jù) 線 的 改 變 只 能 在 時 鐘 線 為 低 電 平 期間 。 I2C總 線 由 2根 線 : 串 行 數(shù) 據(jù) 線 ( SDA) 和 串 行 時 鐘 線 ( SCL) 。總 線 上 的 每 一 個 器 件 都 有 一 個 唯 一 的 地 址 。 2021/6/16 61 ( 2) I2C總 線 數(shù) 據(jù) 的 傳 輸數(shù) 據(jù) 傳 輸 中 的 應(yīng) 答 : 相 應(yīng) 的 應(yīng) 答 位 由 接 收 方 ( 從 機 ) 產(chǎn) 生 , 在應(yīng) 答 的 時 鐘 脈 沖 期 間 , 發(fā) 送 方 ( 主 機 ) 應(yīng) 釋 放 SDA線 ( 使 其 為高 電 平 ) 。 在 應(yīng) 答 過 程 中 , 接 收 方 ( 從 機 ) 必 須 將 數(shù) 據(jù) 線 SDA拉 低 , 使 它 在 這 個 時 鐘 脈 沖 的 高 電 平 期 間 保 持 穩(wěn) 定 的 低 電 平 。數(shù) 據(jù) 傳 輸 的 字 節(jié) 格 式 : 發(fā) 送 到 SDA線 上 的 每 一 個 字 節(jié) 必 須 為 8位 ,每 次 發(fā) 送 的 字 節(jié) 數(shù) 量 不 受 限 制 , 從 機 在 接 收 完 一 個 字 節(jié) 后 向 主機 發(fā) 送 一 個 應(yīng) 答 位 , 主 機 在 收 到 從 機 應(yīng) 答 后 才 會 發(fā) 送 第 二 字 節(jié)數(shù) 據(jù) , 發(fā) 送 數(shù) 據(jù) 時 先 發(fā) 數(shù) 據(jù) 的 最 高 位 。 2021/6/16 62 ( 3) I2C總 線 的 傳 輸 協(xié) 議主 機 寫 數(shù) 據(jù) 到 從 機 的 通 信 格 式 :1 2 3 4 5 6 7 N N-1主 機產(chǎn) 生起 始位 發(fā) 從機 地址90H 等 待從 機應(yīng) 答 發(fā) 送數(shù) 據(jù) 等 待從 機應(yīng) 答 發(fā) 送數(shù) 據(jù) 等 待從 機應(yīng) 答 。 。 。 停 止位 2021/6/16 63 主 機 從 從 機 中 讀 數(shù) 據(jù) 的 通 信 格 式 :1 2 3 4 5 6 7 N N-1主 機 產(chǎn)生 起 始位 發(fā) 從 機地 址 91H 等 待 從機 應(yīng) 答 接 收 從機 發(fā) 出的 數(shù) 據(jù) 向 從 機應(yīng) 答 接 收 從機 發(fā) 出的 數(shù) 據(jù) 向 從 機應(yīng) 答 。 。 。 主 機 產(chǎn)生 停 止位 2021/6/16 64 6. 實 驗 板 上 鋸 齒 波 信 號 的 輸 出( 1) STC89C52控 制 PCF8591生 成 鋸 齒 波 信 號 的 電 路 設(shè) 計將 U15的 J23的 19和 20腳 用 杜 邦 線 與 J8的 SDA和 SCL腳 連 接 。 2021/6/16 65 ( 2) 生 成 鋸 齒 波 的 軟 件 設(shè) 計 主 程 序 main.c:/ PCF8591 的 DA轉(zhuǎn) 換 程 序 #include #include i2c.h#define AddWr 0 x90 /寫 數(shù) 據(jù) 地 址 #define AddRd 0 x91 /讀 數(shù) 據(jù) 地 址/鋸 齒 波 數(shù) 據(jù) 表 , 表 格 數(shù) 值 越 多 , 波 形 越 平 滑unsigned char code tab = 0,10,20,30,40,50,60,70,80,90, 100, 110,120,130,140,150,160,170,180, 190,200, 210,220,230,240,250 ; /定 義 全 局 變 量extern bit ack; 2021/6/16 66 /寫 入 DA轉(zhuǎn) 換 數(shù) 值 , dat表 示 需 要 輸 入 轉(zhuǎn) 換 的 DA數(shù) 值 , 從 0-255bit WriteDAC(unsigned char dat,unsigned char num) unsigned char i; Start_I2c(); /啟 動 總 線 SendByte(AddWr); /發(fā) 送 器 件 地 址 if(ack=0) return(0); SendByte(0 x40); /發(fā) 送 器 件 子 地 址 if(ack=0) return(0); for(i=0;inum;i+) SendByte(dat); /發(fā) 送 數(shù) 據(jù) if(ack=0) return(0); Stop_I2c(); 2021/6/16 67 /主 程 序main() unsigned char i; while (1) for(i=0;i26;i+) WriteDAC(tab1i,1); 2021/6/16 68 I2C頭 文 件 i2c.h:#ifndef _I2C_H_#define _I2C_H_ #include /頭 文 件 的 包 含#include #define _Nop() _nop_() /定 義 空 指 令/啟 動 總 線void Start_I2c();/結(jié) 束 總 線void Stop_I2c();/字 節(jié) 數(shù) 據(jù) 傳 送 函 數(shù) void SendByte(unsigned char c);#endif 2021/6/16 69 I2C程 序 i2c.c:/函 數(shù) 是 采 用 軟 件 延 時 的 方 法 產(chǎn) 生 SCL脈 沖 , 晶 振 頻 率 是 12MHz,即 機 器 周 期 為 1us#include i2c.h#define _Nop() _nop_() /定 義 空 指 令bit ack; /應(yīng) 答 標(biāo) 志 位sbit SDA=P21;sbit SCL=P20;、/啟 動 總 線void Start_I2c() SDA=1; /發(fā) 送 起 始 條 件 的 數(shù) 據(jù) 信 號 _Nop(); SCL=1; _Nop(); /起 始 條 件 建 立 時 間 大 于 4.7us,延 時 _Nop(); _Nop(); _Nop(); _Nop(); 2021/6/16 70 SDA=0; /發(fā) 送 起 始 信 號 _Nop(); /起 始 條 件 鎖 定 時 間 大 于 4 _Nop(); _Nop(); _Nop(); _Nop(); SCL=0; /鉗 住 I2C總 線 , 準 備 發(fā) 送 或 接 收 數(shù) 據(jù) _Nop(); _Nop();/結(jié) 束 總 線void Stop_I2c() SDA=0; /發(fā) 送 結(jié) 束 條 件 的 數(shù) 據(jù) 信 號 _Nop(); /發(fā) 送 結(jié) 束 條 件 的 時 鐘 信 號 SCL=1; /結(jié) 束 條 件 建 立 時 間 大 于 4 _Nop(); _Nop(); _Nop(); _Nop(); _Nop(); SDA=1; /發(fā) 送 I2C總 線 結(jié) 束 信 號 _Nop(); _Nop(); _Nop(); _Nop(); 2021/6/16 71 /字 節(jié) 數(shù) 據(jù) 傳 送 函 數(shù) void SendByte(unsigned char c) unsigned char BitCnt; for(BitCnt=0;BitCnt8;BitCnt+) /要 傳 送 的 數(shù) 據(jù) 長 度 為 8位 if(cBitCnt) /判 斷 發(fā) 送 位 else SDA=0; _Nop()

注意事項

本文(項目9 信號發(fā)生器的設(shè)計)為本站會員(優(yōu)***)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!