51單片機(jī)做的數(shù)字電壓表設(shè)計, 包含有word格式的可編輯的畢業(yè)論文和仿真等非常詳細(xì)的資料.
0.png (64.87 KB, 下載次數(shù): 126)
下載附件
2017-4-23 02:21 上傳
畢業(yè)論文的目錄
前 言 1
第一章 工作原理 2
1.1設(shè)計目標(biāo) 2
1.1.1基本功能 2
1.1.2主要技術(shù)參數(shù) 2
1.2設(shè)計原理 2
第二章 硬件設(shè)計與原理 3
2.1 總設(shè)計框圖 3
2.2 硬件設(shè)計分析 3
2.2.1 電源的設(shè)計 3
2.2.2 單片機(jī)最小系統(tǒng) 4
2.2.3 顯示系統(tǒng) 10
2.2.4 模數(shù)轉(zhuǎn)換 10
第三章 軟件設(shè)計與分析 13
3.1 軟件設(shè)計的組成 13
3.2 源程序 15
第四章 軟件仿真 24
4.1 PROTEUS簡介 24
4.2仿真圖 26
4.3原理圖 27
4.4 元件清單 28
總結(jié) 29
致 謝 30
參考文獻(xiàn) 31
0.png (36.4 KB, 下載次數(shù): 99)
下載附件
2017-4-23 02:24 上傳
0.png (62.57 KB, 下載次數(shù): 119)
下載附件
2017-4-23 02:24 上傳
數(shù)字電壓表的原理圖和pcb工程文件:
0.png (54.63 KB, 下載次數(shù): 132)
下載附件
2017-4-23 02:58 上傳
數(shù)字電壓表proteus仿真原理圖:
0.png (28.01 KB, 下載次數(shù): 122)
下載附件
2017-4-23 02:58 上傳
0.png (86.63 KB, 下載次數(shù): 126)
下載附件
2017-4-23 02:57 上傳
數(shù)字電壓表元件清單:
元件參數(shù) 元件序號 元件名稱
1K RP1 電位器
5V J1 電源接口
10uF C1 鋁電解電容器
12M Y1 晶振
20 R1 電阻
22K R7 電阻
22K R6 電阻
22K R9 電阻
22K R8 電阻
22K R5 電阻
22K R2 電阻
22K R3 電阻
22K R4 電阻
30pF C2 瓷片電容器
30pF C3 瓷片電容器
ADC0809 U2 模數(shù)轉(zhuǎn)換芯片
AT89C51 U1 51單片機(jī)芯片
LCD1602 U3 液晶
1.1.1基本功能利用51單片機(jī)作為主控芯片,模擬量輸入范圍直流0v-5v。模擬量經(jīng)A/D(ADC0809)模數(shù)轉(zhuǎn)換芯片,把模擬量轉(zhuǎn)換為數(shù)字量輸入到單片機(jī)的P0口,再由單片機(jī)控制LCD1602液晶顯示模擬量輸入的電壓值。
1.1.2主要技術(shù)參數(shù) 測量電壓范圍:0v至5v A/D轉(zhuǎn)換器:ADC0809(8位模數(shù)轉(zhuǎn)換器)。 顯示方式: LCD1602液晶
1.2設(shè)計原理此次設(shè)計的是數(shù)字電壓表,要求的電壓范圍是0~5v。系統(tǒng)設(shè)計主要包括四個部分:分別是電源模塊、AD模數(shù)轉(zhuǎn)換部分、51單片機(jī)最小系統(tǒng)部分、數(shù)碼管顯示部分。首先由單片機(jī)初始化ADC0809模數(shù)轉(zhuǎn)換芯片和共陰數(shù)碼管顯示,當(dāng)外接被測電壓后,ADC0809將模擬電壓信號轉(zhuǎn)換為數(shù)字信號輸入到單片機(jī)的I/O口,通過單片機(jī)處理后將電壓的大小顯示在LCD1602液晶上面。
單片機(jī)源程序:
- //<程序名>:數(shù)字電壓表
- //<功能>:使用LCD顯示被檢測電壓,精度為0.05V,范圍是0~5V。 **
- #include"includes.h"
- #define TIME0H 0x3C
- #define TIME0L 0xB0
- uchar uc_Clock=0; //定時器0中斷計數(shù)
- bit b_DATransform=0;
- //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<把電壓顯示在LCD上>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- void vShowVoltage(uint uiNumber)
- {
- uchar ucaNumber[3],ucCount;
- if(uiNumber>999)
- uiNumber=999;
- ucaNumber[0]=uiNumber/100; //把計算數(shù)字的每個位存入數(shù)組。
- ucaNumber[1]=(uiNumber-100*(int)ucaNumber[0])/10;
- ucaNumber[2]=uiNumber-100*(int)ucaNumber[0]-10*ucaNumber[1];
- for(ucCount=0;ucCount<3;ucCount++)
- {
- vShowOneChar(ucaNumber[ucCount]+48); //從首位到末位逐一輸出。
- if(ucCount==0)
- vShowOneChar('.');
- }
- }
- //*************************************************************************************************
- //* *
- //* ********************************主函數(shù)****************************** *
- //* *
- //*************************************************************************************************
- void main()
- {
- TMOD=0x01; //定時器0,模式1。
- TH0=TIME0H;
- TL0=TIME0L;
- TR0=1; //啟動定時器。
- ET0=1; //開定時器中斷。
- EA=1; //開總中斷
- vdInitialize();
- vWriteCMD(0x84); //寫入顯示起始地址(第一行第4個位置)
- vShowChar("voltage");
- vWriteCMD(0xC9);
- vShowChar("(V)");
- while(1)
- {
- if(b_DATransform==1)
- {
- b_DATransform=0;
- vWriteCMD(0xC4);
- …………限于本文篇幅 余下代碼請從51黑電子論壇下載附件…………
復(fù)制代碼
所有資料下載:
51 digital voltmeter design.zip
(1.07 MB, 下載次數(shù): 669)
2017-4-22 23:03 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|