(完整word版)用ADC0804制作的數(shù)字電壓表_第1頁
(完整word版)用ADC0804制作的數(shù)字電壓表_第2頁
免費預(yù)覽已結(jié)束,剩余10頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、 A/D轉(zhuǎn)換器設(shè)計數(shù)字電壓表 年級:2009 級 學(xué)生:郭呂超 設(shè)計時間:2011.12.22珞珈學(xué)院 專業(yè):通信工程 目錄 1. 實驗器件介紹 .3 2. 數(shù)字電壓表仿真圖 . 6 3. 實驗設(shè)計原理 .7 4. 數(shù)字電壓表 C 語言程序 . .8 商城正品 ETCR4300三相數(shù)字相位伏安表數(shù)字相序表電壓表 訐細(xì)分實驗器件介紹 1. ADC0804 芯片介紹 ADC0804 是一個 8 位 CMOS 型逐次比較式 A/D 轉(zhuǎn)換器,具有三態(tài)鎖存輸出功能,最 短轉(zhuǎn)換時間為 100us,其芯片實物圖和引腳圖如下: CS:片選信號,低電平有效; RD 外部讀取轉(zhuǎn)換結(jié)果的控制信號,當(dāng) RD 為高電平

2、時,DB0-DB7 為高阻態(tài);當(dāng) RD 為低電平 時,數(shù)據(jù)才會通過 DB0-DB7 輸出; WR:A/D 轉(zhuǎn)換器啟動控制信號,當(dāng) WR 由高電平變?yōu)榈碗娖綍r,轉(zhuǎn)換器被清零,當(dāng) WF 由低電 平變?yōu)楦唠娖綍r,A/D 轉(zhuǎn)換正式開始; CLKIN 和 CLK R:時鐘輸入端,在 ADC0804 片內(nèi)有時鐘發(fā)生器,采用內(nèi)部時鐘時,在 CLK IN CLK R 和地線之間連接 RC 電路即可,ADC0804 的工作頻率約為 100-1460khz,若使 RC 電路作為時鐘,其振蕩頻率為 1/( 1.1RC); INTR:中斷請求輸出信號,當(dāng) A/D 轉(zhuǎn)換結(jié)束時,INTR 引腳輸出低電平,只有當(dāng)數(shù)據(jù)被取走

3、 后(單片機(jī)發(fā)出讀數(shù)據(jù)指令),此引腳才會變?yōu)楦唠娖剑?VIN+和 VIN-:差動模擬電壓輸入端,若輸入為單端正電壓, VIN-應(yīng)接地,若差動輸入,則 20 2 14 3 IB CLKIH- 4 IHTS* 5 te *賦*一 C IS 7 14 心D - A n S 12 11 cut* 一阿 -CBJ D64 DBS -066 DB7 (USB) 輸入信號直接加入 VIN+和 VIN-; AGND.DGN模擬信號地與數(shù)字信號地,若系統(tǒng)對抗干擾要求嚴(yán)格,則這兩條地線必須分接 地; VREF/2:參考電壓值的一半,若在 ADC0804 組成的電路中需要的參考電壓為 5V,則此引腳 可以懸空。若電

4、路中需要使用的參考電壓小于 5V,即參考電壓值的一半小于 2.5V, 這時可將此引腳連接到需要的參考電壓值(如 4V)的 1/2 電壓值上(如 2V ),在 ADC0804 芯片內(nèi)部會自動判斷參考電壓的選擇,當(dāng) VREF/2 引腳的電壓值低于 2.5V 時,芯片會自動選擇由 VREF/2 引腳電壓放大 2 倍以后的電壓值作為參考電壓。 DB0-DB7: 8 位數(shù)字輸出端。 2. LCD1602 液晶介紹 1602 字符型 LCD 有 16 個引腳,其芯片實物圖和引腳圖如下: 1602 字符型 LCD 具有較豐富的指令集,如下表: 初始化設(shè)詈 I顯示墳式設(shè)置 指令碼 功能 0 0 1 1 1 0

5、 0 0 設(shè)置16X2顯示.5X7點陣8位數(shù)據(jù)接口 2顯示開/關(guān)及光標(biāo)設(shè)負(fù) 指令碼 功能 0 0 0 0 1 D C B 0=1開顯示: 0=0關(guān)顯示 C=l顯示光標(biāo):0=0不顯示光標(biāo) B= 1光標(biāo)閃爍;B=0無棟衣顯喬 0 0 0 0 0 1 N N=l當(dāng)讀或?qū)懸粋€宇將后地址指針加 一且光標(biāo)加一 N=0當(dāng)讀或?qū)懸粋€字符后地址指針減 ,且光標(biāo)減一 S=l當(dāng)寫一個字符,整屏顯示左務(wù)(N-1 ) 指令碼 功能 O1H 顯示清屏:1 數(shù)據(jù)指針淸零 Z所有顯示淸零 O2H 顯示回車:1數(shù)據(jù)指針淸零 下面介紹 LCD1602 引腳功能: VSS :電源地; VDD:+5V 邏輯電源; VEE:液晶驅(qū)動電

6、源; RS :寄存器選擇(RS=1,數(shù)據(jù);RS=Q 命令); R/W: 讀.寫操作選擇(R/W=1,讀;R/W=Q 寫); E :使能信號; DB0-DB7 :數(shù)據(jù)總線; Blackl: 背光電源線; Black2: 背光電源地線; 數(shù)字電壓表仿真圖 - - - u -i-t 1 J. I I %J FrkTrff- Lr . !l IRms:FCK ATEX1 -!-. . 14 -半 RV 圧 o r X 旳 z R g 1粥 I 3 0 0s 00I -WTMEMZ 三.實驗設(shè)計原理 1. 實驗硬件設(shè)備:LCD1602 液晶顯示器一塊,ADC0804 芯片一片,兩個滑動變阻器, 一個 1

7、50pF 電容,兩個 200 歐姆的電阻,一個 10K 歐姆的電阻,STC89C51 芯片, 電源,地線,按鍵(復(fù)位電路和晶振電路另加) ,杜邦線諾干。 2. ADC0804 在使用時,外圍電壓的連接比較簡單,只需要對參考電壓和時鐘輸入 端進(jìn)行設(shè)計即可。通常情況下,時鐘的輸入可以選用 RC 諧振電路,ADC0804 可 以進(jìn)行 A/D 轉(zhuǎn)換的時鐘頻率為 100 1460KHZ 典型值為 640KHZ 這里選用 R=10K 歐姆.C=150PF 的諧振電路,利用公式 1/(1.1RC)計算后,此時的時鐘頻率約為 606KHZ 與典型值十分接近。 3. 模擬電壓的計算:這里選用的是 8 位 A/D

8、 轉(zhuǎn)換器,數(shù)值的變化范圍是 0 255(00H-FFH),模擬電壓的輸入范圍是 0-5V,每個數(shù)碼的變化,對應(yīng)的電壓值 的變化為 0.0196V,所以要計算模擬電壓值,就可以利用下面的公式進(jìn)行計算: V=D*0.0196 式中,V 為計算出的模擬電壓值, D 為 A/D 轉(zhuǎn)換器轉(zhuǎn)換后的數(shù)字量。 4. 克服浮點運算方法:從上式不難看出,在計算過程,需要乘以一個 0.0196,這 是一個小數(shù),在計算機(jī)中稱為浮點數(shù)。而對于 8 位單片機(jī)來說,不具有浮點運 算能力,如果一定要計算浮點數(shù), 將占用單片機(jī)中大量的內(nèi)存單元和 CPU 時間。 這里采用一種簡單的方法:就是將從 A/D 讀取進(jìn)來的數(shù)字量直接乘以

9、 196,即 進(jìn)行整數(shù)運算,運算結(jié)果是真正值的 1000 倍,這個整數(shù)運算的速度是非??斓模?不會占用過多的 CPU 時間。由于是兩個 8 位的二進(jìn)制數(shù)相乘,得到的結(jié)果不會 超過 16位二進(jìn)制數(shù)。 5. 電壓值的顯示:最常用到的二進(jìn)制轉(zhuǎn)換成 BCD 碼的方法是用除法。先用得到的 16位二進(jìn)制數(shù)除以 10000, 得到的商就是模擬電壓值的整數(shù)部分(模擬電壓的 輸入為 0-5V,所以整數(shù)部分只有 1 位), 得到的余數(shù)是模擬電壓值的小數(shù)部分; 接下來用余數(shù)除以 1000,商是十分位,余數(shù)作為被除數(shù)再除以 100,商為百分 位,余數(shù)再除以 10,商為千分位。這樣就將 16 位的二進(jìn)制數(shù)轉(zhuǎn)換成了 4

10、位 BCD 碼。 四.數(shù)字電壓表 C 語言程序 /珞珈 09 級通信單片機(jī)實驗 AD 轉(zhuǎn)換器設(shè)計數(shù)字電壓表 #include #define uchar unsigned char #define uint unsigned int sbit lcd_rs=P2A0; sbit lcd_e n=P2Al; sbit cs=P2A7; /AD 片選 sbit rd=P2A6; sbit wr=P2A5; sbit INTR=P3A2;/ 中斷請求信號 uint temp,D1,D2,D3,D4; uint shu; uint AD_read(); void delay(uint z); void

11、 write_com(uchar com); void write_date(uchar date); void lcd_init(); void display(uchar qian,uchar bai,uchar shi,uchar ge); void AD_init(); void AD_start(); void main() write_com(0 x01);/ 清屏 lcd_init(); AD_init (); while(1) AD_start(); while(INTR=1);/AD INTR=0; shu=AD_read(); shu=shu*196; D1=shu/100

12、00;/ shu=shu%10000; D2=shu/1000;/ shu=shu%1000; D3=shu/100;/ shu=shu%100; D4=shu/10;/ display(D1,D2,D3,D4);/轉(zhuǎn)換是否結(jié)束,結(jié)束為低電平 整數(shù)部分, 0.0196v 是最小變化量 十分位數(shù) 百分位數(shù) 千分位數(shù) 顯示 LcD1602 void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-); void write_com(uchar com) P0=com; lcd_rs=0; lcd_en=1; lcd_en=0; delay

13、(2); void write_shu(uchar shu) P0=shu; lcd_rs=1; lcd_en=1; lcd_en=0; delay(5); void lcd_init() lcd_en=0; write_com(0 x01);/ 清屏 write_com(0 x06);/ 指針加減與移動IH R umjui.nlplcxwn 人間處處單片機(jī)! write_com(0 x0c);/ 光標(biāo) write_com(0 x38);/ 液晶初始化命令 void display(uchar qian,uchar bai,uchar shi,uchar ge) write_com(0 x80

14、+0 x02); write_shu(G); write_com(0 x80+0 x03); write_shu(u); write_com(0 x80+0 x04); write_shu(o); write_com(0 x80+0 x06); write_shu(L); write_com(0 x80+0 x07); write_shu(v); write_com(0 x80+0 x09); write_shu(C); write_com(0 x80+0 x0a); write_shu(h); write_com(0 x80+0 x0b); write_shu(a); write_com(0 x80+0 x0c); write_shu(o); write_com(0 x80+0 x44); write_shu(0 x30+qian);/0 x30 代表數(shù)字 0 write_com(0 x80+0 x45); write_shu(.); write_com(0 x80+0 x46); write_shu(0 x30+bai); write_com(0 x80+0 x47); write_shu(0 x30+shi); write_com(0 x80

溫馨提示

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

評論

0/150

提交評論