【哈爾濱工業大學】《單片機原理》(建議收藏) P33 - 33. 11.4-AT89S51單片機與DA、AD轉換器的接口(4)

长安书院_
146粉絲
1 次觀看·2026年11月2日
AI 生成·可能包含錯誤
我們上一次課介紹了單片機和AD轉航器0809
0809它的接口設計
它是八位的
那麼現在有一個問題
如果八位的分辨率不夠
我們就應當擴展十位十二位
十四位十六位
我們這一節呢
介紹51單片機和十二位AD轉航器
AD1674的接口設計
這個也是一個非常有用的
實際的設計方案
將來大家在設計一個AD轉航器
爲核心的一個數據採集系統
那麼大家呢
應當掌握這個AD的使用
這個AD轉航器呢
型號是1674
它是分辨率十二位的
AD公司生產的芯片
那麼單片機
51單片機本身是八位的
和十位十二位
十四位十六位的接口
道理上講都是一樣
都是一樣
AD1674呢
它是逐次比較的
這個大家要清楚
這個瞭解非常非常重要
逐次比較的AD轉航器
轉換時間
注意
十微秒
那麼分辨率十二位
單通道最大采集數率100K
因爲十微秒的話呢
一秒最大的採集數率呢
就可以達到100K
那麼下面大家看一下它的引腳
這是它的引腳
這個引腳冷靜看呢
有點亂
我們可能不太熟悉
一會兒呢
我們這些引腳呢
一個一個介紹給大家
那麼
這個片內呢
已經集成了
高精度的基準電壓源
還有時鐘電路
大家要注意
這兩個集成在芯片以後呢
你可以不用再做
基準電壓源的外接電路
你也不用再外接時鐘振航器
那麼不需要任何外加電路
就可以完成AD轉換
那麼AD1674
這個是一個比較經典的芯片
它的前身是什麼呢
AD574
完了AD574A
後來就發展到AD674A
它實際上是AD574和AD674A的
更新換代產品
它內部結構都一樣
那麼它可以直接替換
過去我們傳統的AD574和AD674
那麼
AD1674和這兩種芯片的
差別在哪呢
就是轉換時間呢
由25微秒提高到10微秒
那麼
與前面那兩種型號相比呢
AD1674它內部結構非常非常緊湊
集成度更高
尤其是高低溫
它的穩定性更好
那麼
1674呢
片內已經帶有采樣保持器了
這個
在集成電路不是十分發達的時候
這採樣保持器都必須自己外接
現在都已經集成在內了
1674一共有六個控制引腳
大家先稍微熟悉一下
以後我們在後面介紹接口電路設計的時候呢
我們再逐漸熟悉這六個控制引腳
1674和51單片機這個接口
它倆呢
就這個接口設計
它是最常見的一種
大於八位的AD轉換器
與八位單片機的接口設計
所以大家呢
把1674掌握好呢
就可以處理各種各樣的
高於八位的AD轉換器與單片機的接口
首先片選端
那如果這個引腳爲低的話
加到這個引腳上
電平爲低
它就是芯片被選中了
要留其次
CE呢
是片啓動信號
那麼大家注意一個問題啊
如果這個引腳高電平的話
你是啓動AD轉換呢
還是已經AD轉換完
去讀取轉換結果呢
這個還跟這個腳有關啊
這個控制引腳呢
就read和convert
這個C呢
是convert
引腳爲高是讀
引腳爲低的話呢
是convert是轉換啊
這個大家要記住
12和8非
就高電平接1的時候呢
AD轉換器
這個AD轉換器有12條數據線
定型輸出轉換結果
如果這個引腳爲低的話呢
它和A0引腳
後面我們還有個A0引腳
可以把轉換結果呢
兩次讀出來
一次是高碼位
還一次呢
低四位
再加四個零
好
這裏要注意的時候
大家設計這個電路的時候啊
這一端就12和8非端呢
就是12端和8端
它和TTL電平不兼容
那怎麼辦呢
要麼你就接政府
要麼就接D
好
那麼大家注意這個引腳啊
當爲低的時候
它轉換結果是兩次送出來
因爲一次是高碼位
還一次呢
低四位
再加四個零
A0呢
是自己選擇控制
大家注意AD轉換器呢
你啓動它以後
是先是轉換
然後呢
轉換完了結果要讀出
你要在轉換期間
如果A0等於零
這時候AD1674呢
進行全12位轉換
如果A0等於1的時候
僅僅是八位轉換
所以這個AD轉換器有什麼特點
12位和8位是可以選的
另外在讀結果的
這一段時間呢
如果這個引腳等於零
大家注意
A0等於零的時候
在十二和八角等於零的時候
A0等於零
高碼位數據有效
就轉換完的結果呢
是高碼位數據有效
然後A0等於1的時候呢
是低碼位數據有效
所以呢大家注意
A0和十二八非
這個兩個引腳呢
來控制讀出的轉換結果
分幾次讀
好
那麼大家注意啊
當讀這12位AD轉換結果的時候
什麼樣的格式呢
大家看啊
結果的高碼位
結果的低次位
再加四個零
這四個零是沒有用的啊
但是這個地方有四個零
這樣他和結果的低次位
一起湊成了八位啊
好
這五個控制信號
剛纔介紹的
他們不同組合呢
有不同功能
後面有個表
11-4
這個表非常重要
所以大家將來可能
有可能設計的時候呢
要用到單片機擴展
12位的AD轉換器
這還是逐次比較的
逐次比較
還有一個引腳
大家注意
叫輸出狀態引腳
如果你開始AD轉換的話呢
這個狀態引腳等於1
那麼在轉換過程當中呢
一直爲高電平
如果轉換完成以後
這個引腳就爲零
大家注意
我單片機怎麼知道
AD轉換器1674轉換完了呢
就靠這個引腳
如果這個引腳爲高電平的話
說明他在轉換
如果轉換完了
他由高變低
大家注意
你要檢測這個引腳
查詢的話
如果爲零
我就可以讀他結果
另外呢
當轉換完畢
他產生一個
由高爲低的負跳影
你就可以像單片機
發出一箇中斷請求信號
在中斷請求得到允許的話
單片機進入中斷
然後在中斷服務程序裏呢
讀取這個AD轉換結果
好
大家注意看這個表啊
我們將設計的話呢
這個表是非常非常重要
這個表
這五個控制信號是AD1674呢
非常重要的五個控制信號
大家注意看啊
首先你要想要AD1674工作
CE端大家看啊
這叫什麼端呢
CHIP ENABLE
就是芯片允許端
必須爲高電平
然後還得選中這個芯片
片選端爲低電平
零零零零零
這時候大家一定要注意
RAID CONVERTER這端
就是讀或者是控制轉換端
如果爲零的話
A0也爲零
它啓動的是12位轉
12位轉換
就是說一個模擬量
加到AD轉換器輸入端
得到12位數字量
如果這個引腳爲低電平
然後呢
A0端爲1
我們剛纔已經介紹了
是進行的8位轉換
所以這AD轉換器
好在好什麼地方
和單片機接口的時候
有時候你的轉換分辨率
要求不那麼高的話
你可以選用8位AD轉換就夠
但是如果要求分辨率高的話呢
你應當要12位的分辨率啊
好
這個引腳
大家注意
如果爲高的話
大家注意
這就允許12位定型輸出
就是你要讀它轉換結果的話呢
這倆引腳必須這個狀態
如果這個引腳爲高電平
這128V這引腳接D的話
那麼就是轉換結果分兩次讀
一個是高8位輸出
還有一個呢
是低4位
加剛纔那四個尾鈴輸出
兩個字減
但是有效位數呢
是12位啊
這個表對我們設計單片級與AD1674的接口呢
非常非常重要啊
好
其他引腳呢
主要是你像REF ROP
這個是10V基準電壓輸出
這個呢
是基準電壓輸入
有關基準電壓的問題
大家一定要清楚
這個我們在前面的電路里面都講過啊
轉換器的基準電壓也叫參考電壓
也是非常重要的啊
它需要穩定啊
而且要精確啊
好
這幾個引腳大家看一下啊
10VIN
這個是10V 0到10V
或-5V到正5V模擬信號輸入端
我們大家現在正在學那傳感器
大家注意很多傳感器輸出呢
可以輸出0到5V的
有些傳感器輸出電壓不是0到5V
不在這個AD轉換器電壓範圍內
那怎麼辦呢
我們還有一門測控電路課
想辦法把AD轉換器
就是傳感器輸出的信號
經過這個測控電路放大到0到5V
好
這個引腳呢
是10V輸入端
它可以雙極性的-5V到正5V模擬信號
加這模擬信號輸入
也可以呢
0到10V
好
這個是20V輸入端
它可以0到20V輸入
或者是-10V到正10V
這個是數字D
這個是模擬D
這個是電源
正電源端
這個負電源
好
那麼AD1674這個芯片
是一個最經典的
逐次比較型的12位AD轉換
是在實際設計過程當中
單片機經常使用的AD轉換器
使用AD轉換器
那麼剛纔已經說了
它有五個控制信號
這五個控制信號呢
前面表11-4
都已經列出來了
它們的不同組合是什麼樣呢
大家來看一看
好
剛纔的表裏面最重要的是
還有
這兩個條件同時滿足
這時候AD1674呢
才能處於工作狀態
它工作狀態
大家要注意啊
如果這個引腳等於0
它是啓動AD轉換
如果這個引腳等於1
它是讀出轉換結果
那麼讀出轉換結果呢
剛纔大家已經知道了
有8位讀出
有12位讀出
12位讀出實際上是兩次的8位讀出
好
下面看一下我們大家
如果設計一個51單片機
和AD1674的接口
有時候你需要單極性輸入
有時候你需要雙極性輸入
這個電路怎麼來設計啊
怎麼來設計
下面大家看單極性電路
左邊這個是單極性轉換電路
那麼大家要注意
這是模擬的數字D
把它就地連在一起
這兩個引腳
10V輸入和20V輸入
單極性的
那就輸入的是0到10V
或者是0到20V
然後呢
外邊接一些輔助的偏壓調節電路
好
這些都是電源端了
雙極性轉換電路
大家注意
這個腳是負10V到正10V
那麼還有呢
10V腳是負5V到正5V
所以大家將來一定要注意啊
我們現在學完傳感器
後邊跟的就是AD
那麼傳感器輸出的電壓
你是單極性的
還是雙極性的
你的電壓範圍是多少
一定要和這個地方
把它都聯繫起來
要聯繫起來
如果輸出的電壓範圍不對的話呢
我們不是我們AD轉換器
轉換的範圍
你要經過測控電路
把它轉換成AD轉換器
能夠接收的輸入電壓範圍
所以這個是雙極性轉換電路
這個是單極性轉換電路
究竟你用雙極性
還是單極性
與你那個傳感器有關
是吧
與你實際的現場情況有關
好
那麼
轉換完的數字量
大家注意
這個是輸入電壓
被轉換的模擬電壓
這個是什麼呢
這個是滿量乘電壓
那麼輸入的數字量
大家注意
就轉換完
給AD輸入的數字量
應當和
就是給AD給單片機的數字量
應當等於4096乘上輸入電壓
除以滿量乘電壓
所以呢
這個公式表達了什麼意思呢
你AD轉換器輸出的結果
與輸入電壓的關係
大家注意
輸入模擬量
這個電壓
它是一個變量
然後這個是滿量乘
滿量乘輸出
比如說10伏的20伏的
好
那麼
它有兩個輸入音角
一個是10伏音角
一個20伏音角
如果單極性
就0到10伏
0到20伏輸入
如果雙極性的話
這10伏音角
就是-5伏到正5伏
20伏音角
就是-10伏到正10伏
好
雙極性輸出電壓
它這個數字量
和你輸入的數字量之間的關係
這是滿量乘電壓
這是轉換完畢的數字量
它們的關係
好
下面我們就研究一下
51單片機和AD1674的接口
這是一個非常實用的方案
那麼大家注意
由於這個1674裏面
有高進度的基準源和時鐘電路
這些電路都不用你再考慮了
是吧
那麼大家想一想
我們前面學的0809
你還得需要加一個外部時鐘
基準電壓源
你也要考慮
做一個外電路
外電路
那麼下面這個例子
我們是採用雙極性的輸入接法
可以對-10伏到正10伏的模擬信號進行轉換
然後轉換結果的12位裏面的高把位
從DB11到DB4
大家注意
這個是AD1674的數字量輸出的高把位
還有D4位
D4位轉換完的結果
從AD1674的DB3到DB0輸出
所以當你A0的時候
你讀的是它輸出的這把位
單憑你要對它轉換完的結果進行讀取
如果是A0等於1的時候
讀的是這4位
另外它是左對齊的格式
大家一會看一看
好
下面我們就看這個接口電路
把這個接口電路
大家要看明白
這是3G38D儲存器
這些是參考電壓輸入端
這是偏置電壓調節端
這兩個引腳
大家注意
是10伏輸入和20伏輸入
一定要注意
這個已經給它接成雙極性電
就是雙極性輸入
雙極性
然後大家注意
這是模擬D
最重要的是什麼呢
大家注意看這12位數字量
這個就是數字量的輸出線
這12位實際上就是AD轉換器
對模擬的輸入電壓進行轉換
得到的12位數字量
大家注意
由於51單片機
它的P0口是8位的
你先看
DB11
DB4
這8位高8位
先接到P0口對應的8位
然後大家一定要注意
那D4位怎麼接的
D4位是DB3到DB0
連到P0口的P1 0.7到P0.4
這高4位
一定要把這個AD轉換器的輸出數據線
把它這個接線接法看明白
這是魚飛門
它是讀或寫的
讀寫的魚
完了再飛一下
加到這個芯片的chip enable端
這個呢
大家注意
利用P1.0這個引腳
檢測AD轉換器的這個狀態端
什麼意思呢
如果它正在進行轉換
這個引腳是高電平
如果轉換完畢以後
這個引腳爲低電平
那麼單片機呢
可以用P1.0這個IO引腳呢
檢測這個引腳的狀態
如果爲0
說明它已經轉換完畢
應當把12位的數字量輸出呢
分兩次讀到單片機的P0口
對吧
然後大家再注意看
RAID和WR就讀寫
這兩端在工作的時候呢
大家一定要注意
它倆是肯定有一個爲低
但不進行片外RAM讀寫的話呢
大家注意它倆肯定都高電平
它倆肯定高電平以後
加到這CE端呢
它低電平
就沒有啓動這個
就chip enable
就不行了
不允許了
好
所以大家注意哪幾個關鍵點呢
一個是數據輸出
一個是轉換結束這個信號
單片機用P1.0來檢測
還有一個呢
控制這個芯片
控制它幹嘛呢
兩個動作
一個是轉換開始
一個是讀轉換完的12位結果
12位結果呢
就從AD轉上去
這12位的數字量輸出呢
讀到單片機P0口
得分兩次讀啊
分兩次讀
好
下面我們把這個圖熟悉以後
我們就開始看程序
大家要把程序和這裏面的控制信號對應起來啊
好
第一個
某F8H呢
送到R0裏面
然後大家注意
爲什麼要這麼送呢
某A裏的內容送到F8的端口地址
大家注意
A裏這時候這個內容無關緊要
往端口地址一寫
這是某AX指令
那麼這個這時候對應哪個指令有效呢
哪個控制信號有效
WR非
注意WR非有效
然後大家要注意
F8是端口地址
爲什麼是F8
其實只用到了三位
大家看一眼啊
用到了這三位
看啊
F8E
那個低四位是1000
高四位1111
五個1
30
那30呢
正好加到這三個音角
幹嘛呢
就開始啓動AD
而且呢
要符合剛纔講到那個表的那個控制條件
然後大家注意看啊
什麼時候啓動它了呢
大家注意看
E執行某AX指令
WR是不是有效
WR有效
它爲低
那這個音角是什麼
輸出就高電平
加到它
那麼這個就允許這AD轉換器呢
就開始動
就是進行工作了
開始轉換了
所以大家注意
怎麼啓動的AD轉換器開始轉換呢
是這兩條指令
先把F8送到R0裏面
大家注意這是間接訊指
然後呢
A往F8這個端口地址寫一次
然後就啓動AD轉換
啓動AD轉換
然後大家注意
SideB P1.0
把P1.0呢
指爲輸入
這個P1.0幹嘛呢
是用來檢測
大家看啊
P1.0是用來檢測狀態信號的
就是你轉沒轉換結束
再往下看
然後這個地方驗試一下
下一條指令
判P1.0是否V1
如果V1的話
大家注意它就跳到loop
V1什麼意思啊
AD轉換器還在轉換
模擬量沒轉換完
沒轉換完
所以它判P1.0V1
如果它還是V1的話
它就這麼跳循環
如果V0說明什麼
轉換完畢
你要讀轉換結果
然後呢
大家注意
ANC20
把這R0這個地址
增一
增一的話
實際上大家注意
R0裏面裝的什麼
F8
增一以後變成什麼
F9
F9實際上就等於把這位置
原來這一位
大家注意看
最開始送的是什麼0
0的話是什麼
convert
就是C
有效
C什麼convert
轉換的意思
它是在轉換
然後你現在我收到了它V1
怎麼辦
開始讀
讀的話
你必須把這個引腳指成什麼
read狀態
read
把它讀進來
把狀態
把結果讀進來
好了
這個F9
大家注意
這個地方增一
大家明白以後
實際上把最低那位置
然後
這時候讀
高把位轉換結果
一共12位
對吧
分兩次讀
第一次讀
高把位轉換結果
X
R0裏面裝的F9
把它讀到A累加器裏面
大家注意
這一條指定一執行的話
哪個控制信號有效
read信號有效
read爲低
那麼這一點就爲高
選中這芯片
把這個高把位地址和P0口
高把位數據
一共12位
高把位讀到P0口裏
讀到這裏讀進來
好
下面再往下看
然後呢
把讀進來的高把位呢
存到R2裏面
暫存一下
存起來
然後把指針徵1
再徵1
徵兩次
徵兩次是什麼意思呢
徵兩次
大家想一想
實際上就是
讓他倆都爲1徵兩次
對吧
A0爲1
I爲1
對吧
那這個原來還是0
還是0
爲低點點
他倆爲1的話
大家想想
這時候就相當於
控制單片機
就是單片機控制
就讀裏面的低四位
但是低四位呢
讀一次讀八位
那裏面還有四個零
所以大家注意看這個地方
這個地方啊
徵1徵1
就讓Rc等於1
這是讀的意思
A0等於1
什麼意思啊
前面講過
讀低四位的結果
還有四個爲零
把它讀到單片機
通過P0口讀到單片機裏面
大家注意
低四位怎麼讀呢
是這
這四位讀進去
讀到單片機
通過單片機P0口的高四位
進去
讀進去了
然後大家注意
再把這個低四位轉換結果
存到R3裏面
到這兒
我們就完成了
怎麼啓動AD
這個51單片機
怎麼啓動1674轉換
怎麼知道它轉換完畢
然後怎麼讀取轉換完的12位數據
所以大家注意
這裏面有五個控制信號
大家一定要結合那個表
11-4
把那五個控制信號的作用弄明白
好
這樣的話呢
12位AD轉換結果呢
就已經都進到單片機的R2 R3裏面
這個軟件
大家一定要注意
當這些指令執行的時候
對應的這個端口
對應的端口
還有它的控制線的狀態
大家一定要注意
是哪些線的狀態變化了
尤其執行MOV X指令
一寫一讀
它有效
那麼總是它唯一
只要讀和寫有效
這個芯片總是被允許的
另外大家再注意看
這三個引腳呢
實際上就接到單片機的D3位地址總線上
所以那個端口地址初始值爲F8
那個8是1000
後邊跟砂零
那砂零正是
大家注意啊
正是加到這三個引腳
然後以後又增一
完了再增二
實際上就讓這幾個引腳發生變化
那麼這個AD1674這個芯片呢
是在設計當中經常用到的
十六位AD轉換器
十二位AD轉換器
是最經典的一個逐次比較型的
分辨率爲十二位
轉換時間爲十微秒的
這個速度還算比較快
但是它是微秒量級
轉換一次
微秒量級
所以這個方案呢
是大家以後經常遇到的一個方案
大家一定要明確
單片機接一個AD轉換器
如果再接LED數碼管
那麼你一個電壓量加到這個輸入端
這實際上就是一個數字電壓表
就是一個數字電壓表
如果前面是一個傳感器
比如說溫度壓力流量傳感器
它的輸出呢
有可能是模擬電壓
也要加到輸入端
單片機對它傳感器的輸出進行轉換
也就可以變成一個溫度計
或者是流量計
或者是壓力錶
當然得接上數碼管
就可以把這些值顯示出來
所以單片機擴AD是非常有用的
還要大家注意一個問題
什麼呢
就是一個AD轉換器
它的分辨率常用微數來表現
那麼大家一定要注意
微數越多分辨率越高
就是分得越精細
當你輸入模擬量變化很小
就能引起數字量某一位最低那位變化
AD轉換器有一個固有的量化誤差
這個大家知道吧
知道
那麼對於十位AD轉換器
大家想想
固有的量化誤差帶來的量化誤差多大呢
2的14方分之一
十位的
這個等於多少
1024分千分之一
那麼我們大家如果設計一個電壓表
人家要求你AD
從AD這塊算前向通道
說這部分電路的總的誤差要小於千分之一
要小於千分之一
這個時候你要用八位的AD
大家想想
八位的AD
它的分辨率是多少
2的八
就是量化誤差
2的八四方分之一
等於256分之一
大約等於千分之四
那麼這個AD轉換器的位數選的低了
那這本身固有的量化誤差就千分之四
那你這個設計要求就達不到
所以大家一定要注意
選AD的時候呢
有兩個非常重要的指標
就我們前面彷彿講的
一個分辨率
一個是轉換時間
好
那你要採用這個AD1674
你進行12位AD轉換的時候
它本身固有的量化誤差是多少呢
2的十二四方分之一
等於4096分之一
大約這個是萬分之2.5
所以呢
大家注意
當我們設計一個對模擬量進行測量的系統的時候
一個單片機加一個AD
那麼關鍵是AD的位數選擇
你一定要根據它的測量要求
來確定AD的位數
那麼AD本身固有的量化誤差
大家一定要注意
對於12位的AD
本身就有一個萬分之五的量化誤差
所以你要求太高的話
你AD分辨率必須能夠符合這個進出指標要求
這個是需要大家注意的
所以我們大家以後在設計AD轉換這個電路的時候
AD位數的選擇
或者叫分辨率的選擇
是非常非常重要的
這是12位AD
順便說一下
AD公司它做的集成電路芯片
它是品種比較全
基礎水平也比較高
所以是世界著名的幾大芯片公司之一
那麼我們這裏拿出最經典的是1674
大家還注意
AD轉換器在接口電路設計的時候
也要注意什麼呢
就是一些抗干擾電路
降低噪聲電路
抗干擾
這些設計都要考慮
你比如說
它的電源電壓要有較好的穩定性和較小的噪聲
另外在設計印刷電路板的時候
要注意電源具有佈線和D線的佈局
大家注意在第13章裏面
專門有個可靠性與抗干擾設計
那裏面有很多有關這方面的
你比如說D線怎麼設計
電源綠波怎麼加
我們那個教材裏都有
這部分是給大家自學的
將來你要進行設計的時候
這部分一定要事先看一看
大家想一想
一個單面機接一個AD
實際上是進行什麼
電壓測量
如果你這部分搞不好
你的測量的經路和穩定度非常差
所以大家要注意在設計的時候
要考慮電源具有
怎麼樣進行電源具有
我們第13章裏面
抗干擾設計裏面已經告訴了
怎麼佈線
也講了
怎麼進行D線的走線
D線應當怎麼來布
畫印刷電路板的時候
這些呢
大家都需要在設計的時候
要考慮的問題
13章給的資料呢
大家一定要參考一下
還有一個問題
大家注意
就說我12位調不夠
這個怎麼辦
12位調不夠呢
還有更高分辨率的AD轉接
這部分內容
大家一定要注意
還有什麼呢
14位的AD轉接
AD公司的7685
或者16位的AD轉接
7656
那麼7656是六通道逐次遞進行
每通道可以達到什麼呢
250K這個採樣率
這什麼意思
per second
就是每秒
這個是採
S是採樣
250K
大家想這一次轉換時間
多長時間
4微秒吧
對吧
4微秒
所以它可以對模擬輸入電壓
負時幅到正時幅
這個範圍
雙極性的
也可以對0-2V進行AD轉換
那同學就會提一個問題
我前面測溫測壓力測溼度
等等那些傳感器
這些傳感器輸出的電壓
不是0-10V
或者不是0-20V
怎麼辦
你要用相應的放大器
但是這部分放大電路
實際上
同學們在模擬電子線路
或者我們後面還有一個測控電路設計
在那裏面介紹
你要把傳感器輸出的電壓
你要放大到
讓AD轉換器能夠轉換的
那個電壓範圍
這又是一個設計任務
好
下面介紹另一個AD轉換器
這個也是在基電一體化裏面
用的非常多的一個AD轉換器方案
AD轉換器
雙極分型的AD轉換器
MC1433和51單片機的接口設計
雙極分
大家知道前面你們都學過
雙極分AD轉換器
它轉換的速度要慢一些
它需要兩次積分
但是它一個最大的優點是什麼呢
對週期變化的干擾信號積分爲零
它的抗干擾性非常好
尤其是對於公屏干擾
就是50赫茲的交流電干擾
它做的就非常有效
那麼大家一定要注意
它的精度還可以做得很高
但是唯一缺點是什麼呢
它速度沒有逐次比較型的快
沒有逐次比較型的快
那麼大家注意
在一些公屏干擾比較嚴重的場合
這時候你用逐次比較式的就有問題
那麼採用雙極分的
是非常非常合適的
雙極分的
好
大家知道雙極分的特點以後
我們將來在進行工業宣傳
單片機控制AD轉換
那麼這時候大家一定要注意
採用雙極分的是比較理想的
那麼雙極分爲什麼抗干擾性很好
是你們前面的電子線路里面學過的
這裏我就不多說了
那麼雙極分AD轉換器的
集成型電路芯片特別多
最常見的
就我們下面要介紹了
三位半的AD轉換器MC1433
和四位半的AD轉換器ICL7135
四位半和三位半都什麼意思
大家一定要注意
三位半
它轉換完的實際就BCD碼
000到1999
這是三位
這是半位
有的同學說這哪夠半位
半位應當是1到0到4或1到5
這才叫半位
就這麼規定的
最高位變化只是0和1
它就是半位
四位半的大家一定要注意
000到多少呢
到1999
多少個數
兩萬個數
三位半
我們上一次課計算過
它相當於二進制位數是多少呢
大約是2到11次方
這個是相當於多少
2到14次方
所以這個分辨率更高
相當的高
那麼我們剛纔大家注意
就說量化誤差多大
這麼大
這是四位半的
三位半的
我們剛纔講的AD1674
這麼大
所以大家注意
剛纔已經說了
設計的時候
分辨率是設計首先要考慮的因素
其次還有什麼
轉換速度
還有什麼
抗干擾性
雙積分的三位半四位半
這個用的特別多
尤其是一些工業現場
比如說機船控制
還有工業現場的一些測量設備
單片機加一個AD轉換器
不就是一個電壓測量裝置
好
那麼下面我說一下
MC1493 AD轉換器
它被轉換電壓量成11999
實驗是三位半
0到1999
2000個數
或者是0不到1.999伏
這個是十進制數
轉換完的這三位半
B系的D碼
三位半
它都是B系的D碼
分四次分時輸出
分時輸出
那麼大家注意
分四次輸出
每次輸出都是四位
那好辦了
個位
十位
百位
千位
尤其這個百位
十位
四位二進制的BCD碼就可以了
二進制代表的BCD碼
但最高位怎麼辦呢
最高位用
雖然輸出四位
但其中有一位代表
這個千位是0還是1
那麼其他那些位呢
就比較特殊了
要注意
它還代表了
你被測的一個電壓
被轉換的一個電壓
也就是被測電壓
是正極性還是負極
是否過良辰了
什麼叫過良辰呢
你被轉換這個電壓
超出基準電壓
過良辰了
好
下面我們看一下各個引腳
這個呢
就是MC1433引腳
大家注意
國內上海無線電元件五廠生產的芯片
叫5G14433
和這芯片是一樣
5G
MC呢
這是摩托羅拉公司的芯片
這個大家注意
有時候在國內可以用5G1433來替換
下面大家再往下看
引腳都有哪些
VDD
主工作電源
VE
這個是模擬電壓
模擬部分電路的負電源端
大家注意
這AD轉上去是一個
前面是模擬電路
後邊數字量輸出
是一個魔術電路的混合體
這個是模擬地
這是數字地
這個是基準電壓輸入端
另外大家注意
由於是雙積分
它必須有積分電容電阻
必須外接
那麼這個引腳
接一個電阻
就是積分輸入端
當你被轉換電壓
是0到2V的時候
這時候這個電阻是470歐
當轉換電壓是200毫V的時候
採用27K
這一端實際上是
積分電容的一端
外邊接的積分電容
然後大家再看這一端
這一端就是
積分電容電阻的公共端
這兩端是
外接時鐘振盪器的調節電阻
調節電阻實際上就是
你外接一個時鐘的話
你這個電路要接相應的電阻電容
好
大家注意看這個引腳非常特殊
是EOC端
我們前面學0809
已經接觸過這個引腳端
什麼意思呢
轉換結束端
它轉換結束的時候
輸出一個正脈衝
DU端大家注意
是啓動轉換端
在實際電路連接裏面
如果把DU端和EOC端連在一起
實際上當每次轉換結束的同時
不發出EOC信號嗎
EOC信號又連到這個引腳上
那就相當於什麼呢
每次AD轉換結束
自動啓動新的轉換
就是連續轉換
這個大家要注意
好
還有這個引腳
這個引腳呢
當你被測電壓大於
它的絕對值大於參考電壓的時候
過量程
你比如說我這個測的電壓範圍
兩毫伏或者是兩伏
你結果
你被測電壓超出這個量程
這個引腳就爲低了
另外大家注意
下面這四個端非常重要
一會我們講接口電路的時候
就涉及到這四個端
DS4到DS1
它分別是什麼旋通信號
分別是各時百千位輸出的旋通脈衝
也就是說這四個引腳
某一時刻只有一個脈衝輸出
這個對應的脈衝
這四個引腳對應各時百千位
哪個引腳脈衝有效輸出了
就對應的
這時候有四根BCD碼輸出線
就AD轉換器
那麼是個位的BCD碼
還是十位的BCD碼
還是百位的BCD碼
還是千位的那個半位的
當然千位的信息裏還包含
極性爲正還是爲負
過量程還是欠量程
過量程還是欠量
那麼大家注意
下面這個圖是非常非常重要的
這個是什麼信號呢
EOC
就轉換結束
你加上模擬量
你給DU端加啓動信號
就開始AD轉換
當轉換結束的時候
EOC引腳
這裏面輸出一個
EOC引腳出了一個正脈衝
正脈衝
然後大家一定要注意
DSE端是什麼呢
千位端
就那半位端
那就半位的那個選通信號
半位的選通信號
在選通信號有效期間
你去讀什麼呢
那四位BCD碼
一會兒我要講
那個引腳輸出的BCD碼
再往下看
DS2端
這個是百位的
這個是十位的
這個是個位的
大家想想
我單片機要讀
MC1433的AD轉換機的輸出
要分四次
千位
百位
十位
個位
怎麼知道這時候
那四根BCD碼輸出線上
是相應的輸出代碼呢
是千位百位
十位個位代碼呢
就看這四個選通信號
誰有效
大家注意
DS1對應的千位
DS2對應的百位
DS3對應的什麼
十位
DS4對應的個位
當他這個選通信號爲高電平的時候
你就讀取分四次
讀取他們的轉換結果的BCD碼
這個大家要清楚
那現在就有一個問題
你怎麼知道
這些選通信號有效呢
你可以用什麼呢
把這四個選通信號接到單片機P口
某一個IO端口
然後檢測這些位
如果爲高就對應的某一位的BCD碼是有效
所以你要接到單片機的定型口
就是某一個IO口上
這個信號是固定的
它設計的時候
它就持續是固定的
那麼這些就是選通信號
選通信號
那麼轉換完的結果
剛纔那選通信號有效
那結果從哪輸出呢
從這個M11433
這四個引腳往外送
這裏大家注意Q3爲最高位
Q0呢
爲最低位
那麼大家注意
剛纔的DS2
DS3
DS4
這個是百位
十位
這個選通信號有效期間呢
它這四個引腳分時輸出的都是完整的BCD碼
完整的BCD碼
那麼大家注意
最高位千位
大家知道最高位千位是半位
所以在它選通信號有效期間
除了反應
除了給出千位的結果是0還是1以外
還包含了你要轉換的這個電壓的極性
是正極性還是負極性
還包括什麼呢
限量程和過量程
那麼具體的含義
大家看一下這個表
大家一定要把這個表理解透了
大家看啊
大家看當Q0爲0的時候
Q3
Z1表示千位的數字爲0
0的話表示千位數爲1
大家注意啊
Q0和Q3的結合
這個你必須清楚
要不一會讀程序
你根本讀不懂那個程序
再看那個
Q2這兩位
它是表示你這個轉換結果
轉換電壓的極性是正還是負
如果爲1的話
結果是正的
如果爲0的話呢
是負極性的
另外大家還注意
Q3和Q0
它倆在不同的組合
如果Q0不是爲0的話
你看原來是0
它表示Q3
這時候表示的是千位數
是0還是1
如果Q0爲1的時候
那麼Q3如果爲0
表示輸入信號過兩層
什麼叫過兩層呢
就是輸入電壓大於參考電壓
沒法測量了
什麼叫千兩層呢
被測的信號太小
那麼過兩層千兩層
你們現在正在學電子測量原理吧
那什麼叫千兩層啊
有的同學對這個問題
已經給出了千兩層
在電子測量原理裏面
它的定義
所以當千兩層的時候
是這兩位結合
但是注意Q0這兩位
它是11
都是1
這時候這兩位反映的是
千兩層還是過兩層
所以大家注意
如果一個單片機
控制一個雙積分的數字電壓表
那麼可以得到這個被測電壓的
正極性負極性
還可以得到是否過兩層
千兩層
這個非常瞭解
好
那麼大家一定要注意
這四位Q3Q2Q
它們的不同組合
這四位不同組合
那麼就在這個表裏面反映出來
這個表大家必須得知道
否則一會兒我講程序的時候
你就搞不明白
這些位都什麼含義
你就沒法判斷出
它是過兩層還是千兩層
還是什麼極性
正極性負極性等等
所以這個表
對於我們使用單片機
擴展5G
就是MC1433
或者叫5G1433
是非常有用的
這就是一個非常好的數字電壓表
非常好的數字電壓表
單片機加AD
再加顯示器
好
我們一會兒就要給
休息一會兒以後
就給大家介紹這些接口
另外要結合剛纔那個表
要把這個程序給大家介紹
大家一定要把這個程序讀懂
好
我們休息五分鐘
