項目2 數(shù)字電壓表設計與調試_第1頁
項目2 數(shù)字電壓表設計與調試_第2頁
項目2 數(shù)字電壓表設計與調試_第3頁
項目2 數(shù)字電壓表設計與調試_第4頁
項目2 數(shù)字電壓表設計與調試_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

項目2

數(shù)字電壓表設計與調試

子項目1

并行ADC實現(xiàn)數(shù)字電壓表子項目2

串行ADC實現(xiàn)數(shù)字電壓表項目2

數(shù)字電壓表設計與調試子項目1并行ADC實現(xiàn)數(shù)字電壓表教學目標掌握ADC0808用法;完成程序設計與調試。任務1十六進制顯示電壓表利用單片機控制ADC0808,對變阻器電壓進行實時數(shù)據采集,并將電壓數(shù)據按照兩位十六進制形式顯示在數(shù)碼管上。一、任務說明任務1十六進制顯示電壓表1.硬件分析(1)關于ADC0808*概述:ADC0808是8位8模擬量輸入通道的逐次逼近型A/D轉換器。8通道多路轉換器能直接連通8個單端模擬信號中的任何一個,輸出8位二進制數(shù)字量。二、任務分析任務1十六進制顯示電壓表*ADC0808的引腳ADDCADDBADDA通道000001010011100101110111IN0IN1IN2IN3IN4IN5IN6IN7任務1十六進制顯示電壓表ADC0808為28腳雙列直插式封裝,各引腳功能如下:IN0~IN7:8路模擬量輸入端,信號電壓范圍為0~5V。ADDA、ADDB、ADDC:模擬輸入通道地址選擇線,其8種編碼分別對應IN0~IN7。ALE:地址鎖存允許輸入信號線,該信號的上升沿將地址選擇信號A、B、C地址狀態(tài)鎖存至地址寄存器。START:A/D轉換啟動信號,其下降沿啟動內部控制邏輯開始A/D轉換。EOC:A/D轉換結束信號,當進行A/D轉換時,EOC輸出低電平,轉換結束后,EOC引腳輸出高電平,可作中斷請求信號或供CPU查詢。任務1十六進制顯示電壓表OUT1~OUT8:8位數(shù)字量輸出端,接單片機并行口。OE:輸出允許控制端,高電平有效。高電平時將A/D轉換后的8位數(shù)據送出。CLOCK:時鐘輸入端,它決定A/D轉換器的轉換速度,其頻率范圍為10~1280KHz,500KHz時對應轉換速度約為128us。VREF(+)、VREF(-):內部D/A轉換器的參考電壓輸入端。Vcc:+5V電源輸入端,GND為接地端地。一般REF(十)與VCC連接在一起,REF(一)與GND連接在一起。任務1十六進制顯示電壓表*ADC0808的工作過程選擇模擬量輸入通道ALE、START置1START清0,啟動AD轉換判斷EOC信號轉換完成,OE置1讀取數(shù)字量OE清0EOC=0EOC=1任務1電路圖共陽極數(shù)碼管500K信號源generators滑線變阻器POT-HG電位器(參照)模擬量通道1任務1十六進制顯示電壓表任務要求對變阻器電壓進行實時采集和顯示,設計的程序應該不斷將采集到的模擬電壓轉換為數(shù)字量并按照兩位十六進制數(shù)顯示在數(shù)碼管上。

所以程序應該是數(shù)碼管動態(tài)顯示模塊(voiddisplay())和AD轉換模塊(voidadc0808())的無限循環(huán)。2.軟件分析任務1十六進制顯示電壓表#include“reg51.h“//51單片機頭文件

sbitADDA=P2^0;//定義關鍵引腳sbitADDB=P2^1;sbitADDC=P2^2;sbitSTART=P2^3;sbitOE=P2^4;sbitEOC=P2^5;unsignedchardat=0;//數(shù)字量電壓值unsignedcharseg[16]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};//共陽極七段碼0~f2.軟件分析—變量定義部分任務1十六進制顯示電壓表voiddisplay()//2位動態(tài)顯示子函數(shù){ unsignedchark; P3=0x01;//通過P3口選中個位數(shù)碼管

P1=seg[dat%16];//電壓值對16取余,余數(shù)就是個位顯示值,//從數(shù)組seg中取對應的七段碼送字型口P1

for(k=0;k<150;k++);//總線延時

P3=0x02;//通過P3口選中十位數(shù)碼管

P1=seg[dat/16];//電壓值除以16,商就是十位顯示值,從數(shù)//組seg中取對應的七段碼送字型口P1

for(k=0;k<150;k++);//總線延時}2.軟件分析—數(shù)碼管動態(tài)顯示部分任務1十六進制顯示電壓表2.軟件分析—AD轉換部分選擇模擬量輸入通道ALE、START置1START清0,啟動AD轉換判斷EOC信號轉換完成,OE置1讀取數(shù)字量OE清0EOC=0EOC=1任務1十六進制顯示電壓表voidmain()//主函數(shù){ while(1) { display(); adc0808(); }}2.軟件分析—主函數(shù)任務1十六進制顯示電壓表三、任務實施步驟1:在Proteus軟件中建立仿真電路文件。步驟2:在Keil中設計AD轉換部分程序,匯編無誤后,生成目標文件(.HEX)。步驟3:在Proteus軟件中加載目標文件,仿真運行觀察結果。步驟4:結果無誤,請求教師檢查、評價。步驟5:編制項目報告。任務1十六進制顯示電壓表四、任務拓展顯示原始電壓值,例如2.25V。任務2原始電壓顯示電壓表利用單片機控制ADC0808,對變阻器電壓進行實時數(shù)據采集,并將原始電壓數(shù)據顯示在數(shù)碼管上,如2.25。一、任務說明任務2原始電壓顯示電壓表1.原始電壓值求取思路(以2.25V為例)變阻器電壓經過ADC0808轉換之后得到數(shù)字量dat=2.25*255/5=115=73H將dat(73H)轉化回原始電壓2.25V有兩種方法(1)dat除以51(255/5=51),即115/51=2.25(2)dat乘以分辨率(5/255=0.0196),即115*0.00196=2.25

二、任務分析任務2原始電壓顯示電壓表2.原始電壓值轉換程序無論哪一種方法都需要編程取出個位、十分位和百分位的顯示值2、2、5,送交數(shù)碼管顯示,個位數(shù)碼管的小數(shù)點需要單獨點亮。

因此先定義顯示代碼數(shù)組chardis[3],分別存放個位、十分位和百分位的顯示值。(1)dat除以51dis[2]

=數(shù)字量dat對51取商(個位)dis[1]

=上次運算的余數(shù)擴大十倍再對51取商(十分位)dis[0]

=上次運算的余數(shù)擴大十倍再對51取商(百分位)任務2原始電壓顯示電壓表(2)dat乘以分辨率直接乘以0.0196得到2.25,不方便取顯示值,應乘以1.96,得到225,然后取顯示值。因此先定義變量int

vol;vol=dat*1.96;或者vol=dat*500.0/255;dis[2]

=vol對100取商(個位)dis[1]

=vol對100取余再除以10(十分位)dis[0]

=vol對10取余(百分位)任務2原始電壓顯示電壓表3.電壓值的顯示

選中右側數(shù)碼管(百分位)P1=seg[dis[0]];總線延時選中中間數(shù)碼管(十分位)P1=seg[dis[1]];總線延時選中左側數(shù)碼管(個位)P1=seg[dis[2]]&0x7f;總線延時電壓值個位顯示值的七段碼跟01111111相與清零最高位(字段dp)點亮小數(shù)點任務2原始電壓顯示電壓表三、任務實施步驟1:在Proteus軟件中調用任務1仿真電路文件。步驟2:修改顯示函數(shù),匯編無誤后,生成目標文件(.HEX)。步驟3:在Proteus軟件中加載目標文件,仿真運行觀察結果。步驟4:結果無誤,請求教師檢查、評價。步驟5:編制項目報告。任務2原始電壓顯示電壓表四、任務拓展1.如何實現(xiàn)4位電壓顯示(增加千分位)?2.如何實現(xiàn)多路電壓巡回檢測?任務3八路巡檢電壓表一、任務說明利用單片機控制ADC0808完成八路模擬量電壓循環(huán)檢測并顯示。

數(shù)碼管最高位顯示模擬量支路編號,其余3位顯示支路電壓原始值每秒切換檢測支路。任務3八路巡檢電壓表二、任務分析1.硬件分析在任務1的電路中添加另外7個模擬量電壓輸入量,使得ADC0808的每個模擬量輸入通道都輸入一個可變化的模擬量電壓,如下圖所示。任務3電路圖支路編號電壓值任務3八路巡檢電壓表2.軟件分析-整體分析利用定時器定時1秒,主函數(shù)完成定時器和中斷初始化后,不斷重復調用顯示子函數(shù)和AD轉換子函數(shù)。

每到1秒,在中斷服務子函數(shù)中修改支路編號,完成新支路的電壓轉換和顯示。任務3八路巡檢電壓表2.軟件分析-函數(shù)構成主函數(shù)定時器中斷初始化循環(huán)調用顯示和轉換子函數(shù)顯示最高位顯示支路編號低3位顯示原始電壓值AD轉換去掉輸入通道選擇部分從啟動ADC0808開始中斷服務每過50ms打斷主函數(shù)自動進入中斷服務子函數(shù)累計20次中斷,實現(xiàn)定時1秒每秒修改支路編號,編號0-7循環(huán)支路編號判斷根據支路編號完成ADC0808通道定義任務3八路巡檢電壓表2.軟件分析-變量定義新定義無符號字符型全局變量count(統(tǒng)計中斷次數(shù))、number(存放支路編號)。任務3八路巡檢電壓表2.軟件分析-主函數(shù)定時器工作方式定義定時50ms,定時器初值填裝開中斷啟動定時器變量count、number清零調用顯示子函數(shù)display();調用轉換子函數(shù)adc0808();無限循環(huán)TMOD=?TH0=?TL0=?ET0=?EA=?TR0=?任務3八路巡檢電壓表2.軟件分析-定時中斷服務子函數(shù)重裝定時器初值中斷次數(shù)加1中斷次數(shù)是否第21次中斷次數(shù)清零支路編號加1支路編號是否為8支路編號清零中斷返回否否任務3八路巡檢電壓表2.軟件分析-支路編號判斷子函數(shù)如果支路編號等于0,ADC0808選擇通道0如果支路編號等于1,ADC0808選擇通道1如果支路編號等于2,ADC0808選擇通道2如果支路編號等于3,ADC0808選擇通道3如果支路編號等于4,ADC0808選擇通道4如果支路編號等于5,ADC0808選擇通道5如果支路編號等于6,ADC0808選擇通道6如果支路編號等于7,ADC0808選擇通道7任務3八路巡檢電壓表三、任務實施步驟1:在Proteus軟件中調用任務1仿真電路文件,添加模擬量支路。步驟2:對照分析修改各函數(shù),匯編無誤后,生成目標文件(.HEX)。步驟3:在Proteus軟件中加載目標文件,仿真運行觀察結果。步驟4:結果無誤,請求教師檢查、評價。步驟5:編制項目報告。任務3八路巡檢電壓表四、任務拓展利用6位數(shù)碼管顯示8路巡檢電壓,如下圖所示項目2

數(shù)字電壓表設計與調試子項目2串行ADC實現(xiàn)數(shù)字電壓表教學目標掌握串行DAC用法;完成程序設計與調試。任務1

原始電壓顯示電壓表利用TLC549實現(xiàn)模擬電壓的實時檢測,并將原始電壓值顯示在數(shù)碼管上。一、任務說明任務1

原始電壓顯示電壓表1.硬件分析(1)芯片簡介TLC549是美國德州儀器公司生產的8位串行A/D轉換器芯片,可與通用微處理器、控制器通過CLK、CS、DATAOUT三條口線進行串行接口。具有4MHz片內系統(tǒng)時鐘和軟、硬件控制電路,轉換時間最長17μs。一、任務分析任務1

原始電壓顯示電壓表(2)芯片引腳SCLK:串行I/O時鐘輸入端。CS:芯片選用通端。SDO:數(shù)字量輸出端。AIN:模擬信號輸入端。REF+、REF-:基準電壓輸入端。任務1

原始電壓顯示電壓表(2)芯片工作時序CS變低,DO輸出上次AD轉換數(shù)字量最高位每個CLOCK的下降沿讀1位數(shù)第8個CLOCK的下降沿后將CS置1,再次啟動AD轉換,此時DO保持高阻狀態(tài)CS再次變低,DO輸出上次AD轉換數(shù)字量最高位任務1電路圖任務1

原始電壓顯示電壓表2.軟件分析—整體分析整體程序應該是數(shù)碼管動態(tài)顯示模塊(voiddisplay())和AD轉換模塊(voidtlc549())的無限循環(huán)。程序結構參照子項目1的任務2。任務1

原始電壓顯示電壓表2.軟件分析—TLC549工作流程CS置0dat左移1位將SDO的值送datSCLK下降沿CS置18次任務1

原始電壓顯示電壓表三、任務實施步驟1:在Proteus軟件中完成仿真電路文件。步驟2:參照ADC0808任務2完成程序,匯編無誤后,生成目標文件(.HEX)。步驟3:在Proteus軟件中加載目標文件,仿真運行觀察結果。步驟4:結果無誤,請求教師檢查、評價。步驟5:編制項目報告。任務1

原始電壓顯示電壓表四、任務拓展利用4片TLC549實現(xiàn)4個支路的電壓巡檢。任務2

四路巡檢電壓表一、任務說明利用4片TLC549實現(xiàn)4個支路的電壓巡檢。任務2

四路巡檢電壓表二、任務分析1.硬件分析4片TLC549通過各自的CS端輪流選中(置零),任意時刻只有一片549選中,選中的芯片SDO端可以讀數(shù),其余三個芯片SDO端輸出為高阻狀態(tài)(Z狀態(tài)),因此可以采用以下接線方法:4個芯片的CS端采用獨立連接4個芯片的SCLK共用4個芯片的SDO端構成單向數(shù)據總線

當EN1、EN2、EN3輪流為高電平1,且任何時刻只能有一個三態(tài)輸出門工作時,則輸入信號A1B1、A2B2、A3B3輪流以與非關系將信號送到總線上,而其它三態(tài)輸出門由于EN=0而處于高阻狀

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論