標(biāo)題: 51單片機(jī)數(shù)字電壓表畢業(yè)設(shè)計(jì)(論文)下載 含仿真 PCB文件 原理圖 源代碼 [打印本頁(yè)]

作者: 13027520506    時(shí)間: 2017-4-22 23:04
標(biāo)題: 51單片機(jī)數(shù)字電壓表畢業(yè)設(shè)計(jì)(論文)下載 含仿真 PCB文件 原理圖 源代碼
51單片機(jī)做的數(shù)字電壓表設(shè)計(jì), 包含有word格式的可編輯的畢業(yè)論文和仿真等非常詳細(xì)的資料.


畢業(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



數(shù)字電壓表的原理圖和pcb工程文件:


數(shù)字電壓表proteus仿真原理圖:



數(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口,通過(guò)單片機(jī)處理后將電壓的大小顯示在LCD1602液晶上面。

單片機(jī)源程序:
  1. //<程序名>:數(shù)字電壓表
  2. //<功能>:使用LCD顯示被檢測(cè)電壓,精度為0.05V,范圍是0~5V。                                                                         **
  3. #include"includes.h"
  4. #define TIME0H 0x3C
  5. #define TIME0L 0xB0
  6. uchar uc_Clock=0;                //定時(shí)器0中斷計(jì)數(shù)
  7. bit b_DATransform=0;
  8. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  9. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<把電壓顯示在LCD上>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  10. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  11. void vShowVoltage(uint uiNumber)
  12. {
  13.         uchar ucaNumber[3],ucCount;
  14.         if(uiNumber>999)                                       
  15.                 uiNumber=999;
  16.         ucaNumber[0]=uiNumber/100;                                                                //把計(jì)算數(shù)字的每個(gè)位存入數(shù)組。
  17.         ucaNumber[1]=(uiNumber-100*(int)ucaNumber[0])/10;                                                        
  18.         ucaNumber[2]=uiNumber-100*(int)ucaNumber[0]-10*ucaNumber[1];
  19.         for(ucCount=0;ucCount<3;ucCount++)
  20.         {
  21.                 vShowOneChar(ucaNumber[ucCount]+48);                                //從首位到末位逐一輸出。
  22.                 if(ucCount==0)
  23.                         vShowOneChar('.');
  24.         }
  25. }
  26. //*************************************************************************************************
  27. //*                                                                                                                                                                                                  *
  28. //*                          ********************************主函數(shù)******************************                                  *
  29. //*                                                                                                                                                                                                  *
  30. //*************************************************************************************************
  31. void main()
  32. {
  33.         TMOD=0x01;                        //定時(shí)器0,模式1。
  34.         TH0=TIME0H;
  35.         TL0=TIME0L;
  36.         TR0=1;                                //啟動(dòng)定時(shí)器。
  37.         ET0=1;                                //開(kāi)定時(shí)器中斷。
  38.         EA=1;                                //開(kāi)總中斷
  39.         vdInitialize();
  40.         vWriteCMD(0x84);           //寫(xiě)入顯示起始地址(第一行第4個(gè)位置)
  41.         vShowChar("voltage");
  42.         vWriteCMD(0xC9);     
  43.         vShowChar("(V)");
  44.         while(1)
  45.         {
  46.                 if(b_DATransform==1)
  47.                 {
  48.                         b_DATransform=0;
  49.                         vWriteCMD(0xC4);


  50. …………限于本文篇幅 余下代碼請(qǐng)從51黑電子論壇下載附件…………
復(fù)制代碼

所有資料下載:
51 digital voltmeter design.zip (1.07 MB, 下載次數(shù): 669)


作者: wylx    時(shí)間: 2017-4-23 06:52
謝謝分享。
作者: lyh888    時(shí)間: 2018-5-12 11:13
需要啊 謝謝!
作者: zbnqw    時(shí)間: 2018-5-12 12:58
非常好
作者: 1036852432    時(shí)間: 2018-6-26 16:19
感謝樓主 提供了非常大的幫助
作者: 1036852432    時(shí)間: 2018-6-26 16:22
很需要 感謝樓主
作者: jmc666    時(shí)間: 2018-11-29 18:18
很好用 謝謝樓主
作者: 雞翅好好吃    時(shí)間: 2018-11-30 08:52
好用 謝謝樓主
作者: 我與孤獨(dú)從化    時(shí)間: 2018-12-5 16:29
好評(píng)好評(píng)  學(xué)習(xí)用
作者: 12345678..    時(shí)間: 2018-12-5 16:29
感謝分享,
作者: 2524059744    時(shí)間: 2018-12-10 23:11
這個(gè)可以導(dǎo)入protel嗎?
作者: 姚淇和范    時(shí)間: 2019-5-10 11:45
謝謝樓主的分享
作者: liqingyong    時(shí)間: 2019-5-10 14:34
謝謝樓主分享
作者: 1716175573    時(shí)間: 2019-5-10 15:36
大家好 真好
作者: 炮炮炮炮    時(shí)間: 2019-5-12 18:20
為啥給的hex文件和程序再編譯出來(lái)的hex文件效果不一樣,求解答
作者: 83848042    時(shí)間: 2019-12-30 20:06
謝謝分享
作者: zw8957    時(shí)間: 2021-7-26 21:39
有沒(méi)有人會(huì)這個(gè)實(shí)物,可支付
作者: qq1354950094    時(shí)間: 2021-7-27 17:06
可以倆個(gè)加起來(lái)弄成0到10v嗎?
作者: george_13    時(shí)間: 2021-12-18 21:02
樓主設(shè)計(jì)的太好了,學(xué)習(xí)到了很多。
作者: kinghhback    時(shí)間: 2022-4-14 15:41
你好  量程怎么修改呢  我不會(huì)了  來(lái)請(qǐng)教一下你




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1