導航:首頁 > 操作系統 > adc0808與單片機

adc0808與單片機

發布時間:2024-03-20 01:42:22

A. 利用單片機AT89C51與ADC0808設計一個數字電壓表,能夠測量0~5V的直流電壓值,精度越高越好

本文介紹了用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.單片機管腳說明
主要特性:
?與MCS-51 兼容
?4K位元組可編程閃爍存儲器
?壽命:1000寫/擦循環
?數據保留時間:10年
?全靜態工作:0Hz-24Hz
?三級程序存儲器鎖定
?128×8位內部RAM
?32可編程I/O線
?兩個16位定時器/計數器
?5個中斷源
?可編程串列通道
?低功耗的閑置和掉電模式
?片內振盪器和時鍾電路
管腳接法說明:
VCC:供電電壓我們接+5V。
GND:接地。
P0口:在這個設計中我們將AT89C51做為BCD碼的輸出口與LED顯示器相連。由於P0口輸出驅動電路中沒有上拉電阻,所以我們在外接電路上接上拉電阻。
P1口:把AT89C51中的P1口與ADC0808的輸出端相連,做為數字信號的接收端。
P2口:我們把P2口做為位碼輸出口,以P2.0—2.3輸出位控線與LED顯示器相連.
P3口:利用P3.0,P3.1,P3.2,P3.4,P3.5,P3.6分別與ADC0808的OE,EOC,START/ALE,A,B,C端相連。
XTAL1 ,XTAL2:外接一振盪電路。
圖2.1.2 振盪電路
RST:在此端接一復位電路。
圖2.1.3 復位電路
2.2 A/D轉換器與單片機介面電路
2.2.1.A/D轉換器晶元選擇
A/D轉換器是模擬量輸入通道中的一個環節,單片機通過A/D轉換器把輸入模擬量變成數字量再處理。
隨著大規模集成電路的發展,目前不同廠家已經生產出了多種型號的A/D轉換器,以滿足不同應用場合的需要。如果按照轉換原理劃分,主要有3種類型,即雙積分式A/D轉換器、逐次逼近式A/D轉換器和並行式A/D轉換器。目前最常用的是雙積分和逐次逼近式。
雙積分式A/D轉換器具有抗干擾能力強、轉換精度高、價格便宜等優點,比如ICL71XX系列等,它們通常帶有自動較零、七段碼輸出等功能。與雙積分相比,逐次逼近式A/D轉換的轉換速度更快,而且精度更高,比如ADC0808、ADC0809等,它們通常具有8路模擬選通開關及地址解碼、鎖存電路等,它們可以與單片機系統連接,將數字量送入單片機進行分析和顯示。
本設計中,由於對精度沒做很大要求,我們採用逐次逼近式A/D轉換ADC0808,精度為0.02,所以四位LED顯示中的最後一位我們設置為V。
圖2.2.1 ADC0808引腳圖
2.2.2.A/D轉換器ADC0808的管腳說明:
IN0~IN7:為模擬量的輸入口,我們選取IN3口為入口,外接可變電阻,通過改變阻值來控制模擬量的輸入。
A、B、C:3位地址輸入,2個地址輸入端的不同組合選擇八路模擬量輸入。這里我們將A,B接高電平,C為低電平。
ALE:地址鎖存啟動信號,在ALE的上升沿,將A、B、C上的通道地址鎖存到內部的地址鎖存器。
D0~D7:八位數據輸出線,A/D轉換結果由這8根線傳送給單片機。
OE:允許輸出信號。當OE=1時,即為高電平,允許輸出鎖存器輸出數據。
START:啟動信號輸入端,START為正脈沖,其上升沿清除ADC0808的內部的各寄存器,其下降沿啟動A/D開始轉換。
EOC:轉換完成信號,當EOC上升為高電平時,表明內部A/D轉換已完成。
CLK:時鍾輸入信號,選用頻率500KHZ。
圖2.2.2 時鍾信號
2.3 電壓顯示電路:
設計中採用的是4段LED數碼管來顯示電壓值。LED具有耗電低、亮度高、視角大、線路簡單、耐震及壽命長等優點,它由4個發光二極體組成,其中3個按『8』字型排列,另一個發光二極體為圓點形狀,位於右下角,常用於顯示小數點。把4個發光二極體連在一起,公共端接高電平,叫共陽極接法,相反,公共端接低電平的叫共陰極接法,我們採用共陰極接法。當發光二極體導通時,相應的一段筆畫或點就發亮,從而形成不同的發光字元。其8段分別命名為dp g f e d c b a。例如,要顯示「0」,則dp g f e d c b a分別為:00111111B;若要顯示多個數字,只要讓若干個數碼管的位碼循環為高電平就可以了。
根據設計要求,顯示電路需要至少4位LED數碼管來顯示電壓值,我們再多加一位用來顯示電壓單位「V」,則有7位LED循環顯示。利用單片機的I/O口驅動LED數碼管的亮滅,設計中由P0口驅動LED的段碼顯示,即顯示字元,由P2口選擇LED位碼,即選擇點
亮哪位LED來顯示。
圖2.3 LED管
另外,一般I/O介面晶元的驅動能力是很有限的,在LED顯示器介面電路中,輸出口所能提供的驅動電流一般是不夠的尤其是設計中需要用到多位LED,此時就需要增加LED驅動電路。驅動電路有多種,常用的是TTL或MOS集成電路驅動器,在本設計中採用了ADC0808晶元驅動電路。
3.系統程序設計
3.1軟體總體框架設計
在編寫匯編語言時,先存放數碼管的段碼,再存放轉換後的數據,選取通道並設值.再將AD轉換結果轉換成BCD碼,通過換算LED上顯示.
再換算中,利用關系得到LED上個位,十位,百位的顯示,然後設置小數點:
開始
預設初值
選取通道3
啟動A/D轉換


數碼顯示子程序
延時顯示結果
結束
在系統上電開始測量前,要用萬用表的電壓檔對被測電壓進行估測,然後再測。
4.系統總圖及程序
LED_0 EQU 30H;
LED_1 EQU 31H;
LED_2 EQU 32H;
LED_3 EQU 33H;
ADC EQU 35H;
ST BIT P3.2;
OE BIT P3.0;
EOC BIT P3.1;
ORG 00H;
START: MOV LED_0,#00H;
MOV LED_1,#00H;
MOV LED_2,#00H;
MOV LED_3,#00H;
MOV DPTR,#TABLE;
SETB P3.4;
SETB P3.5;
CLR P3.6;
WAIT: CLR ST;
SETB ST;
CLR ST;
JNB EOC,$;
SETB OE;
MOV ADC,P1;
CLR OE;
MOV A,ADC;
MOV B,#51;
DIV AB;
MOV LED_3,A;
MOV A,B;
MOV B,#5;
DIV AB;
MOV LED_2,A;
MOV LED_1,B;
LCALL DISP;
SJMP WAIT;
DISP: MOV A,#3EH;
CLR P2.3;
MOV P0,A;
LCALL DELAY;
SETB P2.3;
MOV A,LED_1;
MOVC A,@A+DPTR;
CLR P2.2;
MOV P0,A;
LCALL DELAY;
SETB P2.2;
MOV A,LED_2;
MOVC A,@A+DPTR;
CLR P2.1;
MOV P0,A;
LCALL DELAY;
SETB P2.1;
MOV A,LED_3;
MOVC A,@A+DPTR;
ORL A,#80H;
CLR P2.0;
MOV P0,A;
LCALL DELAY;
SETB P2.0;
RET;
DELAY: MOV R6,#10;
D1: MOV R7,#250;
DJNZ R7,$;
DJNZ R6,D1;
RET
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,
END
數字直流電壓表的總圖

B. ADC0808的CLOCK口接單片機的ALE口。程序沒有定義。單片機的頻率是12M。AD會得到時鍾頻率信號嗎。

會得到,但是ALE是6分頻,2M的時鍾頻率太高,教科書上0808最高時鍾是500K。但實際 使用中,我用6M晶振,1M時鍾頻率也可正常。

C. ADC0808數字電壓表 單片機CLOCK怎麼接啊要求有矩形波的啊

使用ADC0808,ADC0809之類的AD,一般都從ALE直接取信號,ALE信號的頻率約為晶振頻率的1/6(方波),假定晶振為12MHz,則ALE出來的方波頻率為2MHz,然後用74HC74進行兩次二分頻,也就是除4,獲得500KHz的方波,就可以送AD的CLK了。
也可以直接用IO口模擬時鍾,不過這一種方法對編程者的軟體能力要求比較高。

閱讀全文

與adc0808與單片機相關的資料

熱點內容
廣東編程貓學習班 瀏覽:704
上海數控編程培訓學校 瀏覽:311
怎麼下載我的解壓神器 瀏覽:632
lib文件無用代碼會編譯嗎 瀏覽:26
我的世界嗨皮咳嗽伺服器怎麼下 瀏覽:1000
mvn命令順序 瀏覽:978
車貸還完多少時間解壓 瀏覽:964
java頁面開發 瀏覽:816
學編程的小發明 瀏覽:25
為什麼說程序員喜歡格子 瀏覽:253
代碼編譯後叫什麼 瀏覽:969
電腦文件夾做了保護怎麼刪除 瀏覽:678
php資料庫連接全局 瀏覽:528
葫蘆島有程序員嗎 瀏覽:986
小胖機器人顯示無命令 瀏覽:775
一日一畫pdf 瀏覽:99
編程貓拔蘿卜文字評價模板 瀏覽:254
cmdjava命令 瀏覽:239
掃描版pdf轉文字版 瀏覽:536
單片機專用寄存器 瀏覽:502