Ⅰ 求一簡易數字電壓表的電路原理圖
28.數字電壓表
1.實驗任務
利用單片機AT89S51與ADC0809設計一個數字電壓表,能夠測量0-之間的直流電壓值,四位數碼顯示,但要求使用的元器件數目最少。
2.電路原理圖
圖1.28.1
3.系統板上硬體連線
a)把「單片機系統」區域中的P1.0-P1.7與「動態數碼顯示」區域中的ABCDEFGH埠用8芯排線連接。
b)把「單片機系統」區域中的P2.0-P2.7與「動態數碼顯示」區域中的S1S2S3S4S5S6S7S8埠用8芯排線連接。
c)把「單片機系統」區域中的P3.0與「模數轉換模塊」區域中的ST端子用導線相連接。
d)把「單片機系統」區域中的P3.1與「模數轉換模塊」區域中的OE端子用導線相連接。
e)把「單片機系統」區域中的P3.2與「模數轉換模塊」區域中的EOC端子用導線相連接。
f)把「單片機系統」區域中的P3.3與「模數轉換模塊」區域中的CLK端子用導線相連接。
g)把「模數轉換模塊」區域中的A2A1A0端子用導線連接到「電源模塊」區域中的GND端子上。
h)把「模數轉換模塊」區域中的IN0端子用導線連接到「三路可調電壓模塊」區域中的VR1端子上。
i)把「單片機系統」區域中的P0.0-P0.7用8芯排線連接到「模數轉換模塊」區域中的D0D1D2D3D4D5D6D7端子上。
4.程序設計內容
i.由於ADC0809在進行A/D轉換時需要有CLK信號,而此時的ADC0809的CLK是接在AT89S51單片機的P3.3埠上,也就是要求從P3.3輸出CLK信號供ADC0809使用。因此產生CLK信號的方法就得用軟體來產生了。
ii.由於ADC0809的參考電壓VREF=VCC,所以轉換之後的數據要經過數據處理,在數碼管上顯示出電壓值。實際顯示的電壓值(D/256*VREF)
5.匯編源程序
ADC0809中文資料
ADC0809是帶有8位A/D轉換器、8路多路開關以及微處理機兼容的控制邏輯的CMOS組件。它是逐次逼近式A/D轉換器,可以和單片機直接介面。
(1)ADC0809的內部邏輯結構
由下圖可知,ADC0809由一個8路模擬開關、一個地址鎖存與解碼器、一個A/D轉換器和一個三態輸出鎖存器組成。多路開關可選通8個模擬通道,允許8路模擬量分時輸入,共用A/D轉換器進行轉換。三態輸出鎖器用於鎖存A/D轉換完的數字量,當OE端為高電平時,才可以從三態輸出鎖存器取走轉換完的數據。
(2).ADC0809引腳結構
ADC0809各腳功能如下:
D7-D0:8位數字量輸出引腳。
IN0-IN7:8位模擬量輸入引腳。
VCC:+5V工作電壓。
GND:地。
REF(+):參考電壓正端。
REF(-):參考電壓負端。
START:A/D轉換啟動信號輸入端。
ALE:地址鎖存允許信號輸入端。
(以上兩種信號用於啟動A/D轉換).
EOC:轉換結束信號輸出引腳,開始轉換時為低電平,當轉換結束時為高電平。
OE:輸出允許控制端,用以打開三態數據輸出鎖存器。
CLK:時鍾信號輸入端(一般為500KHz)。
A、B、C:地址輸入線。
ADC0809對輸入模擬量要求:信號單極性,電壓范圍是0-5V,若信號太小,必須進行放大;輸入的模擬量在轉換過程中應該保持不變,如若模擬量變化太快,則需在輸入前增加采樣保持電路。
地址輸入和控制線:4條
ALE為地址鎖存允許輸入線,高電平有效。當ALE線為高電平時,地址鎖存與解碼器將A,B,C三條地址線的地址信號進行鎖存,經解碼後被選中的通道的模擬量進轉換器進行轉換。A,B和C為地址輸入線,用於選通IN0-IN7上的一路模擬量輸入。通道選擇表如下表所示。
CBA選擇的通道
000IN0
001IN1
010IN2
011IN3
100IN4
101IN5
110IN6
111IN7
數字量輸出及控制線:11條
ST為轉換啟動信號。當ST上跳沿時,所有內部寄存器清零;下跳沿時,開始進行A/D轉換;在轉換期間,ST應保持低電平。EOC為轉換結束信號。當EOC為高電平時,表明轉換結束;否則,表明正在進行A/D轉換。OE為輸出允許信號,用於控制三條輸出鎖存器向單片機輸出轉換得到的數據。OE=1,輸出轉換得到的數據;OE=0,輸出數據線呈高阻狀態。D7-D0為數字量輸出線。
CLK為時鍾輸入信號線。因ADC0809的內部沒有時鍾電路,所需時鍾信號必須由外界提供,通常使用頻率為500KHZ,
VREF(+),VREF(-)為參考電壓輸入。
2.ADC0809應用說明
(1).ADC0809內部帶有輸出鎖存器,可以與AT89S51單片機直接相連。
(2).初始化時,使ST和OE信號全為低電平。
(3).送要轉換的哪一通道的地址到A,B,C埠上。
(4).在ST端給出一個至少有100ns寬的正脈沖信號。
(5).是否轉換完畢,我們根據EOC信號來判斷。
(6).當EOC變為高電平時,這時給OE為高電平,轉換的數據就輸出給單片機了。
3.實驗任務
如下圖所示,從ADC0809的通道IN3輸入0-5V之間的模擬量,通過ADC0809轉換成數字量在數碼管上以十進制形成顯示出來。ADC0809的VREF接+5V電壓。
4.ADC0809應用電路原理圖
6.程序設計內容
(1).進行A/D轉換時,採用查詢EOC的標志信號來檢測A/D轉換是否完畢,若完畢則把數據通過P0埠讀入,經過數據處理之後在數碼管上顯示。
(2).進行A/D轉換之前,要啟動轉換的方法:
ABC=110選擇第三通道
ST=0,ST=1,ST=0產生啟動轉換的正脈沖信號.
C語言源程序
#include
unsignedcharcodedispbitcode[]={0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f};
unsignedcharcodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,0x00};
unsignedchardispbuf[8]={10,10,10,10,10,0,0,0};
unsignedchardispcount;
sbitST="P3"^0;
sbitOE="P3"^1;
sbitEOC="P3"^2;
unsignedcharchannel="0xbc";//IN3
unsignedchargetdata;
voidmain(void)
{
TMOD=0x01;
TH0=(65536-4000)/256;
TL0=(65536-4000)%256;
TR0=1;
ET0=1;
EA=1;
P3=channel;
while(1)
{
ST=0;
ST=1;
ST=0;
while(EOC==0);
OE=1;
getdata=P0;
OE=0;
dispbuf[2]=getdata/100;
getdata=getdata%100;
dispbuf[1]=getdata/10;
dispbuf[0]=getdata%10;
}
}
voidt0(void)interrupt1using0
{
TH0=(65536-4000)/256;
TL0=(65536-4000)%256;
P1=dispcode[dispbuf[dispcount]];
P2=dispbitcode[dispcount];
dispcount++;
if(dispcount==8)
{
dispcount=0;
}
dispbuf[i]=temp;
ST=1;
ST=0;
}
}
}
voidt0(void)interrupt1using0
{
CLK=~CLK;
}
voidt1(void)interrupt3using0
{
TH1=(65536-4000)/256;
TL1=(65536-4000)%256;
P1=dispcode[dispbuf[dispcount]];
P2=dispbitcode[dispcount];
if(dispcount==7)
{
P1=P1|0x80;
}
dispcount++;
if(dispcount==8)
{
dispcount=0;
}
}
Ⅱ 求一個數字電壓表的原理圖
基於PC的數字電壓表設計
本文運用AT89S51和AD678進行A/D轉換,根據數據採集的工作原理,設計實現數字電壓表,最後完成單片機與PC的數據通信,傳送所測量的電壓值
數字電壓表的設計和開發,已經有多種類型和款式。傳統的數字電壓表各有特點,它們適合在現場做手工測量,要完成遠程測量並要對測量數據做進一步分析處理,傳統數字電壓表是無法完成的。然而基於PC通信的數字電壓表,既可以完成測量數據的傳遞,又可藉助PC,做測量數據的處理。所以這種類型的數字電壓表無論在功能和實際應用上,都具有傳統數字電壓表無法比擬的特點,這使得它的開發和應用具有良好的前景。
新型數字電壓表的整機設計
該新型數字電壓表測量電壓類型是直流,測量范圍是-5~+5V。整機電路包括:數據採集電路的單片機最小化設計、單片機與PC介面電路、單片機時鍾電路、復位電路等。下位機採用AT89S51晶元,A/D轉換採用AD678晶元。通過RS232串列口與PC進行通信,傳送所測量的直流電壓數據。整機系統電路如圖1所示。
數據採集電路的原理
在單片機數據採集電路的設計中,做到了電路設計的最小化,即沒用任何附加邏輯器件做介面電路,實現了單片機對AD678轉換晶元的操作。
AD678是一種高檔的、多功能的12位ADC,由於其內部自帶有采樣保持器、高精度參考電源、內部時鍾和三態緩沖數據輸出等部件,所以只需要很少的外部元件就可以構成完整的數據採集系統,而且一次A/D轉換僅需要5ms。
在電路應用中,AD678採用同步工作方式,12位數字量輸出採用8位操作模式,即12位轉換數字量採用兩次讀取的方式,先讀取其高8位,再讀取其低4位。根據時序關系,在晶元選擇/CS=0時,轉換端/SC由高到低變化一次,即可啟動A/D轉換一次。再查詢轉換結束端/EOC,看轉換是否已經結束,若結束則使輸出使能/OE變低,輸出有效。12位數字量的讀取則要控制高位元組有效端/HBE,先讀取高位元組,再讀取低位元組。整個A/D操作大致如此,在實際開發應用中調整。
由於電路中採用AD678的雙極性輸入方式,輸入電壓范圍是-5~+5V,根據公式Vx10(V)/4096*Dx,即可計算出所測電壓Vx值的大小。式中Dx為被測直流電壓轉換後的12位數字量值。
RS232介面電路的設計
AT89S51與PC的介面電路採用晶元Max232。Max232是德州儀器公司(TI)推出的一款兼容RS232標準的晶元。該器件包含2個驅動器、2個接收器和1個電壓發生器電路提供TIA/EIA-232-F電平。Max232晶元起電平轉換的功能,使單片機的TTL電平與PC的RS232電平達到匹配。
串口通信的RS232介面採用9針串口DB9,串口傳輸數據只要有接收數據針腳和發送針腳就能實現:同一個串口的接收腳和發送腳直接用線相連,兩個串口相連或一個串口和多個串口相連。在實驗中,用定時器T1作波特率發生器,其計數初值X按以下公式計算:
串列通信波特率設置為1200b/s,而SMOD=1,fosc=6MHz,計算得到計數初值X=0f3H。在編程中將其裝入TL1和THl中即可。
為了便於觀察,當每次測量電壓採集數據時,單片機有埠輸出時,用發光二極體LED指示。
軟體編程
軟體程序主要包括:下位機數據採集程序、上位機可視化界面程序、單片機與PC串口通信程序。單片機採用C51語言編程,上位機的操作顯示界面採用VC++6.0進行可視化編程。在串口通信調試過程中,藉助「串口調試助手」工具,有效利用這個工具為整個系統提高效率。
單片機編程
下位機單片機的數據採集通信主程序流程如圖2所示、中斷子程序如圖3所示、採集子程序如圖4所示。單片機的編程模擬調試藉助WAVE2000模擬器,本系統有集成的ISP模擬調試環境。
在採集程序中,單片機的編程操作要完全符合AD678的時序規范要求,在實際開發中,要不斷加以調試。最後將下位機調試成功而生成的.bin文件固化到AT89S51的Flash單元中。
人機界面編程
打開VC++6.0,建立一個基於對話框的MFC應用程序,串口通信採用MSComm控制項來實現。其他操作此處不贅述,編程實現一個良好的人機界面。數字直流電壓表的操作界面如圖5所示。運行VC++6.0編程實現的Windows程序,整個樣機功能得以實現。
功能結果
根據上面所述工作原理及實施方案,在實踐中很好地實現了整個樣機的功能,各項指標達到了預先的設計要求。電路工作穩定,每次測量均伴有LED發光指示,可視化界面顯示也正常。
AD678轉換精度是12位,它的解析度為1/4096。這為整機系統的高精度提供了保障。為了提高測量精度,運用了AD678自帶的校準電路,這樣使其A/D轉換精度更高。在實際測量中,整機測量精度達到了0.8%。
Ⅲ 數字直流電壓表電路分哪幾塊
本文介紹了用ADC0808集成電壓轉換晶元和AT89C51單片機設計製作的數字直流電壓表。在測量儀器中,電壓表是必須的,而且電壓表的好壞直接影響到測量精度。具有一個精度高、轉換速度快、性能穩定的電壓表才能符合測量的要求。為此,我們設計了數字電壓表,此作品主要由A/D0808轉換器和單片機AT89C51構成,A/D轉換器在單片機的控制下完成對模擬信號的採集和轉換功能,最後由數碼管顯示採集的電壓值。此設計通過調試完全滿足設計的指標要求。電路設計簡單,設計製作方便有較強的實用性。
關鍵詞:
ADC0808;單片機AT89C51;數字電壓表
Abstract:
In this paper, with ADC0808 voltage converter integrated chips and microcontroller designed AT89C51 the number of DC voltage table. In measuring instruments, voltage meter is necessary, and voltage meter will have a direct impact on measurement accuracy. With a high precision, the conversion speed and stable performance of the voltage meter to conform to the requirements of measurement. To this end, we design a digital voltage meter, this works mainly by A/D0808 converter and a microcontroller AT89C51, A / D converter under the control of the MCU to complete the acquisition and analog signal conversion functions, from the final Acquisition of the digital display voltage value. This design through debugging to fully meet the design requirements of the target. Circuit design simple, designed to facilitate a more practical.
Key words:
ADC0808; SCM AT89C51; Digital Voltmeter
目 錄
1.設計方案……………………………………………………………………………………1
2. 系統硬體設計……………………………………………………………………………2
2.1單片機晶元……………………………………………………………………………2
2.1.1.單片機晶元選擇……………………………………………………………2
2.1.2.單片機管腳說明……………………………………………………………3
2.2.A/D轉換器……………………………………………………………………………5
2.2.1.A/D轉換器晶元選擇………………………………………………………5
2.2.2.A/D轉換器管腳說明………………………………………………………6
2.3.電壓顯示電路…………………………………………………………………………7
3.系統程序設計……………………………………………………………………………………8
3.1.軟體總體框架設計……………………………………………………………………8
4.系統總圖及程序…………………………………………………………………………………9
5.參考文獻………………………………………………………………………………………………12
6.結束語……………………………………………………………………………………………………13
1.設計方案
在電量的測量中,電壓、電流和頻率是最基本的三個被測量,其中電壓量的測量最為經常。而且隨著電子技術的發展,更是經常需要測量高精度的電壓,所以數字電壓表就成為一種必不可少的測量儀器。數字電壓表(Digital Voltmeter)簡稱DVM,它是採用數字化測量技術,把連續的模擬量(直流或交流輸入電壓)轉換成不連續、離散的數字形式並加以顯示的儀表。由於數字式儀器具有讀數准確方便、精度高、誤差小、靈敏度高和解析度高、測量速度快等特點而倍受青睞。本設計從各個角度分析了由單片機組成的數字電壓表的設計過程及各部分電路的組成及其原理,並且分析了程序如何驅動單片機進而使系統運行起來的原理及方法。框圖如下:
本設計主要分為兩部分:硬體電路及軟體程序。而硬體電路又大體可分為A/D轉換電路、LED顯示電路,各部分電路的設計及原理將會在硬體電路設計部分詳細介紹;程序的設計使用匯編語言編程,利用WAVE和PROTEUS 軟體對其編譯和模擬,詳細的設計演算法將會在程序設計部分詳細介紹。
2.系統硬體電路設計
2.1 單片機晶元
2.1.1.單片機晶元選擇
AT89C51簡介
AT89C51是一種帶4K位元組閃爍可編程可擦除只讀存儲器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。由於將多功能8位CPU和閃爍存儲器組合在單個晶元中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。外形及引腳排列如圖所示
圖2.1_1 AT89C51引腳圖
2.1.2.單片機管腳說明
主要特性:
Ⅳ 設計一個數字電壓表,用模擬軟體畫電路圖,求解
ICL7107的確在萬用表上用得很廣泛,這沒錯,但用它做出來的表,是三位半ICL7135幹不了的活,你一個破7107就更別想了,這個你心裡也清楚。再糾正
Ⅳ 急!!!怎樣設計一個直流數字電壓表
ICL7107不可以的,它是10位的ADC,2V的電壓勉強能精確到2mV,計算公式:2/2的十次方
看你的這個需要用ICL7135做,它是14位ADC,做這個足夠了。
你這是電子設計大賽吧?我以前參加過三次,老師告訴我,遇到電壓測量的地方,就用ICL7135!14位的精度,一條線就可以通訊,而且電路容易調,程序簡單。
具體的電路你可以找一下ICL7135的晶元手冊,上面畫的很清楚,照做就是了。至於程序,20行之內就可以搞定的,我以前做過這個,畢業好久了,早就不知道弄哪去了啊。
對了,ICL7135的轉換速度是每秒三次,屬於雙積分型ADC,可以自動調零的,你就用這個吧,肯定合適。
您說的是凌陽的SPC061A嗎?這款單片機是凌陽專門為教學設計的,我學的第一款單片機就是凌陽哈~
用哪款單片機不重要,你這個要求的數據處理能力不高,速度也用不著太高,51就足以勝任了,圖紙你可以去看ICL7135的資料,上面畫的很清楚,程序按照上面的通信時序寫,不難。
補充:德運 - 探花 十一級
呵呵,我告訴您一點事情:
10位ADC做的萬用表,那是三位半的
12位ADC做的萬用表,那是三又四分之三位的
14位ADC做的萬用表,那是四位半的
ICL7107的確在萬用表上用得很廣泛,這沒錯,但用它做出來的表,是三位半的,明白了嗎?也就是說,它是最爛的AD,很多單片機上集成這樣精度的AD,按你說的,我用個PIC或者AVR的單片機,凌陽的當然也可以,做這個題目根本用不著再去買ADC,比賽的題目不可能這么簡單!
ICL7135幹不了的活,你一個破7107就更別想了,這個你心裡也清楚。
再糾正一點:我老師就是這么說的,前提:比賽的時候,這不是不負責任,這是經驗,真正參加過比賽的人心裡才有體會,評委們就認這個,別的都不認,它是最廉價的14位ADC,雙積分型,在低速電壓精確測量的場合中,是毋庸置疑的首選!
Ⅵ 數字電壓表原理圖中的放大電路
OP07的精度略低,建議用OP37。實用電路圖如下(放大電路的電壓增益為1+R2/R1)——
Ⅶ 簡易數字直流電壓表的設計
1.轉換方式
V-T型間接轉換ADC。
2. 電路結構
圖11.11.1是這種轉換器的原理電路,它由積分器(由集成運放A組成)、過零比較器(C)、時鍾脈沖控制門(G)和計數器(FF0~FFn)等幾部分組成。
圖11.11.1 雙積分A/D轉換器
(1)積分器
積分器是轉換器的核心部分,它的輸入端所接開關S1由定時信號Qn控制。當Qn為不同電平時,極性相反的輸入電壓vI和參考電壓 VREF將分別加到積分器的輸入端,進行兩次方向相反的積分,積分時間常數τ=RC。
(2)過零比較器
過零比較器用來確定積分器的輸出電壓v0過零的時刻。當v0≥0時,比較器輸出vC為低電平;當v0<0時,vC為高電平。比較器的輸出信號接至時鍾控制門(G)作為關門和開門信號。
(3)計數器和定時器
它由n+1個接成計數器的觸發器FF0~FFn-1串聯組成。觸發器FF0~FFn-1組成n級計數器,對輸入時鍾脈沖CP計數,以便把與輸入電壓平均值成正比的時間間隔轉變成數字信號輸出。當計數到2n個時鍾脈沖時,FF0~FFn-1均回到0態,而FFn翻轉到1態,Qn=1後開關 S1從位置A轉接到B。
(4)時鍾脈沖控制門
時鍾脈沖源標准周期Tc,作為測量時間間隔的標准時間。當vC=1時,門打開,時鍾脈沖通過門加到觸發器FF0的輸入端。
3.工作原理
雙積分ADC的基本原理是對輸入模擬電壓和參考電壓分別進行兩次積分,將輸入電壓平均值變成與之成正比的時間間隔,然後利用時鍾脈沖和計數器測出此時間間隔,進而得到相應的數字量輸出。由於該轉換電路是對輸入電壓的平均值進行變換,所以它具有很強的抗工頻干擾能力,在數字測量中得到廣泛應用。
下面以輸入正極性的直流電壓vI為例,說明電路將模擬電壓轉換為數字量的基本原理。電路工作過程分為以下幾個階段進行,圖中 各處的工作波形如圖11.11.2所示。 (1) 准備階段
首先控制電路提供CR信號使計數器清零,同時使開關S2閉合,待積分電容放電完畢後,再使S2斷開。
(2) 第一次積分階段
在轉換過程開始時(t=0),開關S1與A端接通,正的輸入電壓vI加到積分器的輸入端。積分器從0V開始對vI積分,其波形如圖11.11.2斜線O-VP段所示。 根據積分器的原理可得
(其中τ=RC)
由於vO<0,過零比較器輸出為高電平,時鍾控制門G被打開。於是,計數器在CP作用下從0開始計數。經2n個時鍾脈沖後,觸發器FF0~FFn-1 都翻轉到0態,而Qn=1,開關S1由A點轉接到B點,第一次積分結束,第一次積分時間為t=T1=2nTc 令VI為輸入電壓在T1時間間隔內的平均值, 則由式 可得第一次積分結束時積分器的輸出電壓為Vp
圖11.11.2雙積分A/D轉換器各處工作波形
(3) 第二積分階段
當t=t1時,S1轉接到B點,具有與vI相反極性的基準電壓-VREF加到積分器的輸入端;積分器開始向相反方向進行第二次積分;當t=t2時,積分器輸出電壓v0≥0,比較器輸出vC=0,時鍾脈沖控制門G被關閉,計數停止。在此階段結束時v0的表達式可寫為
設T2=t2-t1,於是有 設在此期間計數器所累計的時鍾脈沖個數為λ,則 T2=λTc
可見,T2與V1成正比,T2就是雙計分A/D轉換過程中的中間變數。
上式表明,在計數器中所得的數λ(λ=Qn-1···Q1Q0),與在取樣時間T1內輸入電壓的平均值VI成正比的。只要VI<VREF,轉換器就能正常地將輸入模擬電壓轉換為數字量,並能從計數器讀取轉換的結果。如果取VREF=2nV,則λ=VI,計數器所計的數在數值上就等於被測電壓。
由於雙積分A/D轉換器在時間內採的是輸入電壓的平均值,因此具有很強的抗工頻干擾的能力。尤其對周期等於T1或幾分之一的對稱干擾(所謂對稱干擾是指整個周期內平均值為零的干擾),從理論上來說,有無窮大的抑制能力。即使當工頻干擾幅度大於被測直流信號,使得輸入信號正負變化時,仍有良好的抑制能力。由於在工業系統中經常碰到的是工頻(50Hz)或工頻的倍頻干擾,故通常選定采樣時間T1總是等於工頻電源周期的倍數,如20ms或40ms等。另一方面,由於在轉換過程中,前後兩次積分所採用的同一積分器。因此,在兩次積分期間(一般在幾十到數百毫秒之間),R、C和脈沖源等元器件參數的變化對轉換精度的影響均可忽略。
最後必須指出,在第二積分階段結束後,控制電路又使開關S2閉合,電容C放電,積分器回零。電路再次進入准備階段,等待下一次轉換開始。
4.特點
(1)計數脈沖個數λ與RC無關,可以減小由RC積分非線性帶來的誤差。
(2)對脈沖源CP要求不變,只要在T1+T2時間內穩定即可。
(3)轉換精度高。
(4)轉換速度慢,不適於高速應用場合。
單片集成雙積分式A/D轉換器有ADC-EK8B(8位,二進制碼)、ADC-EK10B(10位,二進制碼)、MC14433(7/2位,BCD碼)等。
Ⅷ 單片機設計製作數字電壓表
3.系統板上硬體連線
a)把「單片機系統」區域中的P1.0-P1.7與「動態數碼顯示」區域中的ABCDEFGH埠用8芯排線連接。
b)把「單片機系統」區域中的P2.0-P2.7與「動態數碼顯示」區域中的S1S2S3S4S5S6S7S8埠用8芯排線連接。
c)把「單片機系統」區域中的P3.0與「模數轉換模塊」區域中的ST端子用導線相連接。
d)把「單片機系統」區域中的P3.1與「模數轉換模塊」區域中的OE端子用導線相連接。
e)把「單片機系統」區域中的P3.2與「模數轉換模塊」區域中的EOC端子用導線相連接。
f)把「單片機系統」區域中的P3.3與「模數轉換模塊」區域中的CLK端子用導線相連接。
g)把「模數轉換模塊」區域中的A2A1A0端子用導線連接到「把其他形式的能轉換成電能的裝置叫做電源">電源模塊」區域中的GND端子上。
h)把「模數轉換模塊」區域中的IN0端子用導線連接到「三路可調電壓">電壓模塊」區域中的VR1端子上。
i)把「單片機系統」區域中的P0.0-P0.7用8芯排線連接到「模數轉換模塊」區域中的D0D1D2D3D4D5D6D7端子上。
4.程序設計內容
i.由於ADC0809在進行轉換為相應的數宇量的電路">A/D轉換時需要有CLK信號,而此時的ADC0809的CLK是接在AT89S51單片機的P3.3埠上,也就是要求從P3.3輸出CLK信號供ADC0809使用。因此產生CLK信號的方法就得用軟體來產生了。
ii.由於ADC0809的參考電壓VREF=VCC">CC,所以轉換之後的數據要經過數據處理,在數碼管">數碼管上顯示出電壓值。實際顯示的電壓值(D/256*VREF)
5.匯編源程序
(略)
6.C語言源程序
#include<AT89X52.H>
unsignedcharcodedispbitcode[]={0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f};
unsignedcharcodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,0x00};
unsignedchardispbuf[8]={10,10,10,10,0,0,0,0};
unsignedchardispcount;
unsignedchargetdata;
unsignedinttemp;
unsignedchari;
sbitST=P3^0;
sbitOE=P3^1;
sbitEOC=P3^2;
sbitCLK=P3^3;
voidmain(void)
{
ST=0;
OE=0;
ET0=1;
ET1=1;
EA=1;
TMOD=0x12;
TH0=216;
TL0=216;
TH1=(65536-4000)/256;
TL1=(65536-4000)%256;
TR1=1;
TR0=1;
ST=1;
ST=0;
while(1)
{
if(EOC==1)
{
OE=1;
getdata=P0;
OE=0;
temp=getdata*235;
temp=temp/128;
i=5;
dispbuf[0]=10;
dispbuf=10;
dispbuf=10;
dispbuf=10;
dispbuf[4]=10;
dispbuf[5]=0;
dispbuf[6]=0;
dispbuf[7]=0;
while(temp/10)
{
dispbuf[i]=temp%10;
temp=temp/10;
i++;
}
dispbuf[i]=temp;
ST=1;
ST=0;
}
}
}
voidt0(void)interrupt1using0
{
CLK=~CLK;
}
voidt1(void)interrupt3using0
{
TH1=(65536-4000)/256;
TL1=(65536-4000)%256;
P1=dispcode[dispbuf[dispcount]];
P2=dispbitcode[dispcount];
if(dispcount==7)
{
P1=P1|0x80;
}
dispcount++;
if(dispcount==8)
{
dispcount=0;
}
}
Ⅸ 簡易數字電壓表的設計(電路圖和C程序)
先不說具體的圖和程序。
你的器件就達不到你要的計數指標啊。
TLC549是8位的內AD。你要求的精度和解析度起容碼要13~14位的AD才能實現。
再換個AD吧。
兄弟,學習期間有機會做這種小項目,機會啊。
正要是費點力氣,自己做出來了。
將來找工作,值啊。
Ⅹ 跪求高人「簡易數字電壓表」電路圖~~~~
可用L7107製作三位半數字電壓表.
L7107-7.00元1隻.
參考電子報93下181頁.