国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

數(shù)字電壓表的設(shè)計(jì)與制作

2011-12-31 00:00:00沈佳玲
考試周刊 2011年86期


  摘 要: 本方案以單片機(jī)AT89C51為系統(tǒng)的控制核心,結(jié)合A/D轉(zhuǎn)換芯片ADC0809設(shè)計(jì)一個(gè)數(shù)字電壓表,能夠測(cè)量0—5V之間的直流電壓值,并通過(guò)四位數(shù)碼顯示。數(shù)字電壓表的電路圖設(shè)計(jì)在Proteus軟件中進(jìn)行,執(zhí)行程序應(yīng)用C語(yǔ)言在Keil中編寫(xiě)、調(diào)試。
  關(guān)鍵詞: 單片機(jī)(AT89C51) 電壓 A/D轉(zhuǎn)換 ADC0809
  
  數(shù)字電壓表(Dligita Voltmeter)簡(jiǎn)稱DVM,是利用A/D轉(zhuǎn)換原理,把連續(xù)的模擬量(直流輸入電壓)轉(zhuǎn)換成不連續(xù)、離散的數(shù)字形式并加以顯示的儀表。通常數(shù)字電壓表都采用大規(guī)模的A/D轉(zhuǎn)換集成電路,測(cè)量精度高,讀數(shù)方便,在體積、重量、耗電、穩(wěn)定性及可靠性等方面性能指標(biāo)均明顯優(yōu)于指針式萬(wàn)用表。其中,A/D轉(zhuǎn)換器將輸入的模擬量轉(zhuǎn)換成數(shù)字量,邏輯控制電路產(chǎn)生控制信號(hào),按規(guī)定的時(shí)序?qū)/D轉(zhuǎn)換器中各組模擬開(kāi)關(guān)接通或斷開(kāi),保證A/D轉(zhuǎn)換正常進(jìn)行。A/D轉(zhuǎn)換結(jié)果通過(guò)計(jì)數(shù)譯碼電路變換成段碼,最后驅(qū)動(dòng)數(shù)碼管顯示相應(yīng)的數(shù)值。目前,由各種單片A/D轉(zhuǎn)換器構(gòu)成的數(shù)字電壓表,已被廣泛用于電子及電工測(cè)量、工業(yè)自動(dòng)化儀表、自動(dòng)測(cè)試系統(tǒng)等智能化測(cè)量領(lǐng)域,顯示出強(qiáng)大的生命力。本方案以單片機(jī)AT89C51為系統(tǒng)的控制核心,結(jié)合A/D轉(zhuǎn)換芯片ADC0809設(shè)計(jì)一個(gè)數(shù)字電壓表,能夠測(cè)量0—5V之間的直流電壓值,通過(guò)四位數(shù)碼顯示。數(shù)字電壓表的電路圖設(shè)計(jì)在Proteus軟件中進(jìn)行,執(zhí)行程序用C語(yǔ)言在Keil中編寫(xiě)、調(diào)試。
  1.數(shù)字電壓表硬件電路設(shè)計(jì)
  數(shù)字電壓表由AT89C51單片機(jī)控制電路、12MHz時(shí)鐘電路、復(fù)位電路、數(shù)碼管顯示電路、AD轉(zhuǎn)換電路和電源電路等主要電路組成,總體組成框圖如圖1所示。
  1.1時(shí)鐘電路
  時(shí)鐘電路也稱為振蕩電路,在計(jì)算機(jī)系統(tǒng)中起著非常重要的作用,是保證系統(tǒng)正常工作的基礎(chǔ)。80C51單片機(jī)芯片機(jī)集成了振蕩電路,只要在芯片的第18、19腳外接晶體振蕩器即可工作。如圖4中的晶體振蕩器(X1)、電容C1和C2即構(gòu)成了單片機(jī)所需的時(shí)鐘電路。
  1.2復(fù)位電路
  復(fù)位電路的作用是使CPU和系統(tǒng)中的其他功能部件都處在初始狀態(tài),并從初始狀態(tài)開(kāi)始工作。單片機(jī)的復(fù)位電路是由外部電路來(lái)執(zhí)行的,在RST引腳上加上持續(xù)二個(gè)機(jī)器周期以上的高電平就執(zhí)行狀態(tài)復(fù)位。通常采用上電復(fù)位和開(kāi)關(guān)復(fù)位二種方式。如圖4中單片機(jī)第9腳與R1、R2、C3和按鍵開(kāi)關(guān)構(gòu)成了單片機(jī)的復(fù)位電路。
  1.3電源電路
  電源電路是給數(shù)字電壓表提供+5V的供電電路,保證各電路正常工作。
  1.4數(shù)碼管顯示電路
  數(shù)碼管顯示電路的作用是顯示輸入0.00—5.00V的電壓值。系統(tǒng)通過(guò)對(duì)LED燈的動(dòng)態(tài)顯示及不停的輪流給數(shù)碼管位選端加驅(qū)動(dòng)電壓,在給其中一個(gè)數(shù)碼管位選段加驅(qū)動(dòng)電壓的時(shí)候它才能變亮,而其他的是暗的,由于數(shù)碼管暗下來(lái)需要一定的時(shí)間,人眼具有視覺(jué)暫留特點(diǎn),同時(shí)系統(tǒng)又給其他的施加驅(qū)動(dòng)電壓,因此我們看到的就是穩(wěn)定的亮著的數(shù)字了,如圖4所示。
  1.5A/D轉(zhuǎn)換電路
  A/D轉(zhuǎn)換電路的作用是將所輸入的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),然后進(jìn)行處理。A/D轉(zhuǎn)換器的轉(zhuǎn)換精度對(duì)測(cè)量電路極其重要,它的參數(shù)關(guān)系到測(cè)量電路性能。A/DC0809轉(zhuǎn)換器的性能比較穩(wěn)定,轉(zhuǎn)換精度高,具有很高的抗干擾能力,電路結(jié)構(gòu)簡(jiǎn)單。ADC08098路模擬信號(hào)的分時(shí)采集,片內(nèi)有8路模擬選通開(kāi)關(guān),以及相應(yīng)的通道抵制鎖存用譯碼電路,其轉(zhuǎn)換時(shí)間為100μs左右,圖2為0809引腳圖。
  1.5.1ADC0809的內(nèi)部結(jié)構(gòu)
  ADC0809的內(nèi)部邏輯結(jié)構(gòu)圖如上圖3所示。
  圖中多路開(kāi)關(guān)可選通8個(gè)模擬通道,允許8路模擬量分時(shí)輸入,共用一個(gè)A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換,這是一種經(jīng)濟(jì)的多路數(shù)據(jù)采集方法。地址鎖存與譯碼電路完成對(duì)A、B、C3個(gè)地址位進(jìn)行鎖存和譯碼,其譯碼輸出用于通道選擇,其轉(zhuǎn)換結(jié)果通過(guò)三態(tài)輸出鎖存器存放、輸出,因此可以直接與系統(tǒng)數(shù)據(jù)總線相連,表1為通道選擇表。
  1.5.2信號(hào)引腳
  ADC0809芯片為28引腳為雙列直插式封裝,其引腳排列見(jiàn)圖3。對(duì)ADC0809主要信號(hào)引腳的功能說(shuō)明如下。
  IN7~I(xiàn)N0——模擬量輸入通道。
  ALE——地址鎖存允許信號(hào)。對(duì)應(yīng)ALE上跳沿,A、B、C地址狀態(tài)送入地址鎖存器中。
  START——轉(zhuǎn)換啟動(dòng)信號(hào)。START上升沿時(shí),復(fù)位ADC0809;START下降沿時(shí)啟動(dòng)芯片,開(kāi)始進(jìn)行A/D轉(zhuǎn)換;在A/D轉(zhuǎn)換期間,START應(yīng)保持低電平。本信號(hào)有時(shí)簡(jiǎn)寫(xiě)為ST。
  A、B、C——地址線。通道端口選擇線,A為低地址,C為高地址,引腳圖中為ADDA,ADDB和ADDC。其地址狀態(tài)與通道對(duì)應(yīng)關(guān)系見(jiàn)表1。
  CLK——時(shí)鐘信號(hào)。ADC0809的內(nèi)部沒(méi)有時(shí)鐘電路,所需時(shí)鐘信號(hào)由外界提供,因此有時(shí)鐘信號(hào)引腳。通常使用頻率為500KHz的時(shí)鐘信號(hào)。
  EOC——轉(zhuǎn)換結(jié)束信號(hào)。EOC=0,正在進(jìn)行轉(zhuǎn)換;EOC=1,轉(zhuǎn)換結(jié)束。使用中該狀態(tài)信號(hào)即可作為查詢的狀態(tài)標(biāo)志,又可作為中斷請(qǐng)求信號(hào)使用。
  D7~D0——數(shù)據(jù)輸出線。為三態(tài)緩沖輸出形式,可以和單片機(jī)的數(shù)據(jù)線直接相連。D0為最低位,D7為最高位。
  OE——輸出允許信號(hào)。用于控制三態(tài)輸出鎖存器向單片機(jī)輸出轉(zhuǎn)換得到的數(shù)據(jù)。OE=0,輸出數(shù)據(jù)線呈高阻;OE=1,輸出轉(zhuǎn)換得到的數(shù)據(jù)。
  Vcc——+5V電源。
  Vref——參考電源參考電壓用來(lái)與輸入的模擬信號(hào)進(jìn)行比較,作為逐次逼近的基準(zhǔn)。其典型值為+5V(Vref(+)=+5V,Vref(-)=-5V)。
  1.5.3電路電路連接
  ADC0809與單片機(jī)的電路連接主要涉及兩個(gè)問(wèn)題。一是8路模擬信號(hào)通道的選擇,二是A/D轉(zhuǎn)換完成后轉(zhuǎn)換數(shù)據(jù)的傳送。根據(jù)表1中所示將ADC0809的地址線A、B、C接低電平即可選擇通道1(IN0),ADC0809的數(shù)據(jù)輸出線D7~D0接80C51的P0口,如圖4所示。
  1.6測(cè)試電壓輸入電路
  輸入電路的作用是把不同量程的被測(cè)的電壓規(guī)范到A/D轉(zhuǎn)換器所要求的電壓值。本電路設(shè)計(jì)所用電壓為0.00—5.00V,其大小通過(guò)滑動(dòng)變阻器調(diào)節(jié)。
  數(shù)字電壓表硬件電路如圖4所示。
  2.數(shù)字式電壓表程序設(shè)計(jì)
  2.1數(shù)字式電壓表程序流程圖
  2.2Keil C51參考程序如下
  #include "reg51.h"
  #define uchar unsigned char
  #define uint unsigned int
  //*————————數(shù)碼管段碼定義————————*//
  uchar code table={0xc0,0x99,0xa4,
  0xb0,0xf9,0x92,0x82,0xf8,0x80,0x90};
  //*————————0809引腳定義————————*//
  sbit st=P2^7;
  sbit oe=P2^5;
  sbit eoc=P2^6;
  sbit clk=P2^4;
  //*——————-延時(shí)子函數(shù)————————*//
  void delay(uchar z)
  {
  uint x,y;
  for(x=z;x>0;x——)
  for(y=110;y>0;y——);
  }
  //*———————啟動(dòng)轉(zhuǎn)換子函數(shù)————————*//
  void start()
  {
  st=0;oe=0;st=1;st=0;
  }
  //*————————顯示子函數(shù)——————————*//
  xian(uchar b)
  {
  P2=0x01;
  P0=table[b%10];
  delay(1);
  P2=0x02;
  P0=table[b/10%10];
  delay(1);
  P2=0x04;
  P0=table[b/100%10]&0x7f;
  delay(1);
  P2=0x08;
  P0=table[b/1000];
  delay(1);
  }
  //*————————-主函數(shù)————————*//
  void main()
  {
  uint B;
  uchar date;
  TMOD=0x01;
  TH0=(65536-20)/256;
  TL0=(65536-20)%256;
  EA=1;
  ET0=1;
  TR0=1;
  start();//啟動(dòng)轉(zhuǎn)換
  while(1)
  {
  while(eoc==0);//等待轉(zhuǎn)換結(jié)束
  oe=1;//允許輸出
  date=P0;
  start();
  oe=0;
  B=date*5.0/255;
  xian(B);//顯示轉(zhuǎn)換結(jié)果
  }
  }
  //*————-T0定時(shí)器中斷子函數(shù)給ADC0809提供時(shí)鐘信號(hào)————-*//
  void time0()interrupt 1 using 1
  {
  TH0=(65536-20)/256;
  TL0=(65536-20)%256;
  clk=~clk;
  }
  3.測(cè)試與調(diào)試
  本設(shè)計(jì)應(yīng)用Proteus和Keil51軟件,首先根據(jù)自己設(shè)計(jì)的電路圖用Proteus軟件畫(huà)出電路模型,然后用Keil51軟件對(duì)所編寫(xiě)的程序進(jìn)行編譯、鏈接,如果沒(méi)有錯(cuò)誤和警告便可生成程序的hex文件,再將此文件加到電路圖上使軟硬件結(jié)合運(yùn)行,最后進(jìn)行端口電壓的對(duì)比測(cè)試,測(cè)試的結(jié)果如圖5所示。
  
  參考文獻(xiàn):
 ?。?]姜治臻.單片機(jī)技術(shù)及應(yīng)用.高等教育出版社,2009,7.
 ?。?]彭偉.單片機(jī)C語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)100例.電子工業(yè)出版社,2009,6.

太谷县| 稻城县| 壶关县| 佳木斯市| 长宁区| 栾城县| 红原县| 木里| 三明市| 兴海县| 会昌县| 陕西省| 宽城| 涞水县| 阿拉善右旗| 敦化市| 徐州市| 隆化县| 维西| 九龙坡区| 天峨县| 湖南省| 临邑县| 明光市| 娱乐| 中西区| 慈利县| 奈曼旗| 美姑县| 镇平县| 迁安市| 龙山县| 顺平县| 封丘县| 蓝田县| 乌拉特前旗| 祁阳县| 宁南县| 宁津县| 沛县| 彩票|