51單片機(jī)做的數(shù)字電壓表設(shè)計(jì), 包含有word格式的可編輯的畢業(yè)論文和仿真等非常詳細(xì)的資料.
0.png (64.87 KB, 下載次數(shù): 126)
下載附件
2017-4-23 02:21 上傳
畢業(yè)論文的目錄
前 言 1
第一章 工作原理 2
1.1設(shè)計(jì)目標(biāo) 2
1.1.1基本功能 2
1.1.2主要技術(shù)參數(shù) 2
1.2設(shè)計(jì)原理 2
第二章 硬件設(shè)計(jì)與原理 3
2.1 總設(shè)計(jì)框圖 3
2.2 硬件設(shè)計(jì)分析 3
2.2.1 電源的設(shè)計(jì) 3
2.2.2 單片機(jī)最小系統(tǒng) 4
2.2.3 顯示系統(tǒng) 10
2.2.4 模數(shù)轉(zhuǎn)換 10
第三章 軟件設(shè)計(jì)與分析 13
3.1 軟件設(shè)計(jì)的組成 13
3.2 源程序 15
第四章 軟件仿真 24
4.1 PROTEUS簡(jiǎn)介 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ù) 元件序號(hào) 元件名稱
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ù) 測(cè)量電壓范圍:0v至5v A/D轉(zhuǎn)換器:ADC0809(8位模數(shù)轉(zhuǎn)換器)。 顯示方式: LCD1602液晶
1.2設(shè)計(jì)原理此次設(shè)計(jì)的是數(shù)字電壓表,要求的電壓范圍是0~5v。系統(tǒng)設(shè)計(jì)主要包括四個(gè)部分:分別是電源模塊、AD模數(shù)轉(zhuǎn)換部分、51單片機(jī)最小系統(tǒng)部分、數(shù)碼管顯示部分。首先由單片機(jī)初始化ADC0809模數(shù)轉(zhuǎn)換芯片和共陰數(shù)碼管顯示,當(dāng)外接被測(cè)電壓后,ADC0809將模擬電壓信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)輸入到單片機(jī)的I/O口,通過單片機(jī)處理后將電壓的大小顯示在LCD1602液晶上面。
單片機(jī)源程序:
- //<程序名>:數(shù)字電壓表
- //<功能>:使用LCD顯示被檢測(cè)電壓,精度為0.05V,范圍是0~5V。 **
- #include"includes.h"
- #define TIME0H 0x3C
- #define TIME0L 0xB0
- uchar uc_Clock=0; //定時(shí)器0中斷計(jì)數(shù)
- bit b_DATransform=0;
- //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<把電壓顯示在LCD上>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- void vShowVoltage(uint uiNumber)
- {
- uchar ucaNumber[3],ucCount;
- if(uiNumber>999)
- uiNumber=999;
- ucaNumber[0]=uiNumber/100; //把計(jì)算數(shù)字的每個(gè)位存入數(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; //定時(shí)器0,模式1。
- TH0=TIME0H;
- TL0=TIME0L;
- TR0=1; //啟動(dòng)定時(shí)器。
- ET0=1; //開定時(shí)器中斷。
- EA=1; //開總中斷
- vdInitialize();
- vWriteCMD(0x84); //寫入顯示起始地址(第一行第4個(gè)位置)
- vShowChar("voltage");
- vWriteCMD(0xC9);
- vShowChar("(V)");
- while(1)
- {
- if(b_DATransform==1)
- {
- b_DATransform=0;
- vWriteCMD(0xC4);
- …………限于本文篇幅 余下代碼請(qǐng)從51黑電子論壇下載附件…………
復(fù)制代碼
所有資料下載:
51 digital voltmeter design.zip
(1.07 MB, 下載次數(shù): 669)
2017-4-22 23:03 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|