單片機課程設計--簡易數(shù)字電壓表的設計_第1頁
已閱讀1頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  題 目:簡易數(shù)字電壓表的設計</p><p><b>  目 錄</b></p><p><b>  1.引 言1</b></p><p>  1.1.設計意義1</p><p>  1.2.系統(tǒng)功能要求1</p><p><b

2、>  2.方案設計1</b></p><p>  2.1.功能要求及設計目標1</p><p>  2.2. 系統(tǒng)設計方案1</p><p><b>  3.硬件設計1</b></p><p><b>  4.軟件設計1</b></p><p

3、><b>  5.系統(tǒng)調(diào)試2</b></p><p><b>  6.設計總結(jié)2</b></p><p>  7.附 錄A;源程序2</p><p>  8.附 錄B;作品實物圖片2</p><p>  9.主要參考文獻2</p><p>  簡易數(shù)

4、字電壓表的設計</p><p><b>  引 言</b></p><p><b>  設計意義</b></p><p>  目前,單片機已經(jīng)在測控領(lǐng)域中獲得了廣泛的應用,它除了可以測量電信以外,還可以用于溫度、電壓的測量,能獨立工作的單片機電壓測量、控制系統(tǒng)已經(jīng)廣泛應用很多領(lǐng)域。</p><p>

5、  單片機是一種特殊的計算機,它是在一塊半導體的芯片上集成了CPU,存儲器,RAM,ROM,及輸入與輸出接口電路,這種芯片稱為:單片機。由于單片機的集成度高,功能強,通用性好,特別是它具有體積小,重量輕,能耗低,價格便宜,可靠性高,抗干擾能力強和使用方便的優(yōu)點,使它迅速的得到了推廣應用,目前已成為測量控制系統(tǒng)中的優(yōu)選機種和新電子產(chǎn)品中的關(guān)鍵部件。單片機已不僅僅局限于小系統(tǒng)的概念,現(xiàn)已廣泛應用于家用電器,機電產(chǎn)品,辦公自動化用品,機器人,

6、兒童玩具,航天器等領(lǐng)域。</p><p>  本次課程設計,就是用單片機實現(xiàn)電壓測量,傳統(tǒng)的電壓測量工具讀取數(shù)據(jù)誤差大,本次采用ADC0809A/D模數(shù)轉(zhuǎn)換系統(tǒng)來實現(xiàn)基于52單片機的數(shù)字電壓表的設計。</p><p>  傳統(tǒng)的數(shù)字電壓表讀數(shù)麻煩、測量精度不高、誤差大等缺點而下面利用集成A/D數(shù)模轉(zhuǎn)換設計并制作了一款基于STC89C52的4位數(shù)碼管顯示的數(shù)字電壓表,其電路簡單,軟硬件結(jié)構(gòu)模

7、塊化,易于實現(xiàn)。 </p><p><b>  功能要求</b></p><p>  簡易數(shù)字電壓表可以測量0~5V范圍內(nèi)的8路輸入電壓值,并在4位LED數(shù)碼管上輪流顯示或者單路選擇顯示。 測量最小分辨率為 0.02V。</p><p><b>  方案設計</b></p><p>  2.1功能要

8、求及設計目標 采用STC89C52作MCU,ADC0809(或其他芯片)進行AD轉(zhuǎn)換,測量電壓的范圍為直流0-5V電壓,四位數(shù)碼管顯示。</p><p><b>  2.2系統(tǒng)設計方案</b></p><p> ?。?)STC89C52主要具有如下特點: </p><p>  1. 增強型 8051 單片機,6 時鐘

9、/機器周期和 12 時鐘/機器周期可以任 意選擇,指令代碼完全兼容傳統(tǒng) 8051. </p><p>  2. 工作頻率范圍:0~40MHz,相當于普通 8051 的 0~80MHz,實際工 作頻率可達 48MHz </p><p>  3. 通用 I/O 口 (32 個) 復位后為: , P1/P2/P3/P4 是準雙向口/弱上拉

10、, P0 口是漏極開路輸出,作為總線擴展用時,不用加上拉電阻,作為 I/O 口用時,需加上拉電阻。 </p><p>  4. ISP(在系統(tǒng)可編程)/IAP(在應用可編程) ,無需專用編程器,無 需專用仿真器,可通過串口(RxD/P3.0,TxD/P3.1)直接下載用戶程 序,數(shù)秒即可完成一片 </p><p>  5. 外部中斷 4 路

11、,下降沿中斷或低電平觸發(fā)電路,Power Down 模式可 由外部中斷低電平觸發(fā)中斷方式喚醒 </p><p>  6. 通用異步串行口(UART) ,還可用定時器軟件實現(xiàn)多個 UART</p><p>  按系統(tǒng)功能實現(xiàn)要求,決定選擇STC89C52單片機作為數(shù)字電壓表設計的控制系統(tǒng)。</p><p>  STC89C52單片機引腳圖 &

12、lt;/p><p> ?。?)數(shù)模轉(zhuǎn)換芯片:</p><p>  ADC0809是采樣分辨率為8位的、以逐次逼近原理進行?!獢?shù)轉(zhuǎn)換的器件。其內(nèi)部有一個8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個進行A/D轉(zhuǎn)換,轉(zhuǎn)換時間為100μs。采用ADC0809作為數(shù)模轉(zhuǎn)換芯片。</p><p>  ADC0809引腳圖</p>&

13、lt;p><b>  (3)系統(tǒng)硬件設計</b></p><p>  1選擇STC89C52 作為控制芯片2選擇ADC0809芯片來進行模數(shù)轉(zhuǎn)換3選擇GEM5461GE 四位一體的共陽數(shù)碼管來顯示數(shù)字4用9012三極管來作為驅(qū)動電路,使GEM5461GE 四位一體的共陽數(shù)碼工作.5 用SW1按鍵作為復位按鍵,實現(xiàn)復位電路的功能。</p><p>  根據(jù)

14、功能要求,設計出如下數(shù)字系統(tǒng)方案方框圖。</p><p>  數(shù)字電壓表系統(tǒng)設計方案框圖</p><p><b>  硬件系統(tǒng)設計</b></p><p>  硬件設計各模塊電路圖及原理描述; </p><p> ?。?)硬件設計原理:電阻R11上的電壓經(jīng)過ADC0809芯片進行模數(shù)轉(zhuǎn)換后,STC89C52芯片的P1口連

15、接到驅(qū)動電路,當驅(qū)動電路工作使數(shù)碼管顯示前面轉(zhuǎn)換過來的數(shù)字。</p><p> ?。?)復位電路和晶振電路的設計:在接通電源后,當按下SW1后STC89C52不工作,使數(shù)碼管全部變暗,當SW1一松開后STC89C52工作,數(shù)碼管又變亮。晶振電路中的兩個30pF的電容具有微調(diào)的作用。</p><p>  (3)A/D轉(zhuǎn)換由集成電路ADC0809完成。ADC0809具有8路模擬輸入端口,地址線

16、(第23~25腳)可決定對哪一路模擬輸入作A/D轉(zhuǎn)換。</p><p>  (4)單片機的P1、p3.0~p3.3端口作為4位LED數(shù)碼管顯示控制。P3.5端口用作單路顯示/循環(huán)顯示轉(zhuǎn)換按鈕,p3.6端口用作單路選擇顯示的通道。P0端口用作A/D轉(zhuǎn)換數(shù)據(jù)讀入。P2端口用作ADC0809的A/D轉(zhuǎn)換控制</p><p><b>  軟件設計</b></p>

17、<p>  4.1軟件設計流程圖</p><p>  圖一.主程序流程圖圖二.A/D轉(zhuǎn)換測量子程序流程圖</p><p><b>  4.2軟件設計描述</b></p><p>  4.2.1 初始化程序</p><p>  系統(tǒng)上電時,初始化程序主要用來執(zhí)行70H~77H內(nèi)存單元清0和P2口置0等準備工作

18、。</p><p><b>  4.2.2 主程序</b></p><p>  在剛上電時,系統(tǒng)默認為循環(huán)顯示8個通道的電壓值狀態(tài)。當進行一次測量時,將顯示每一通道的A/D轉(zhuǎn)換值,每個通道的數(shù)據(jù)顯示時間在1s左右。主程序在調(diào)用顯示子程序與測量子程序之間循環(huán)。</p><p>  主程序流程圖如上圖一所示。</p><p>

19、;  4.2.3 顯示子程序</p><p>  顯示子程序采用動態(tài)掃描法實現(xiàn)4位數(shù)碼管的數(shù)值顯示。測量所得的A/D轉(zhuǎn)換數(shù)據(jù)放在70H~77H內(nèi)存單元中,測量數(shù)據(jù)在顯示時須經(jīng)過轉(zhuǎn)換為十進制BCD碼放在78H~7BH單元中,其中7BH存放通道標志數(shù)。寄存器R3用作8路循環(huán)控制,R0用作顯示數(shù)據(jù)地址指針。</p><p>  4.2.4 A/D轉(zhuǎn)換測量子程序</p><p&

20、gt;  A/D轉(zhuǎn)換測量子程序用來控制對ADC0809的8路模擬輸入電壓的A/D轉(zhuǎn)換,并將對應的數(shù)值移入70H~77H內(nèi)存單元。</p><p>  A/D轉(zhuǎn)換測量子程序程序流程圖如上圖二所示。</p><p><b>  系統(tǒng)調(diào)試</b></p><p>  介紹所設計的系統(tǒng)調(diào)試過程、在調(diào)試中遇到的問題及解決的辦法。</p>&

21、lt;p>  采用Wave或Keil C51編譯器進行源程序編譯及仿真調(diào)試,同時進行硬件電路板的設計制作,燒錄好程序后進行軟硬件聯(lián)調(diào),最后進行端口電壓的對比測試。測試對比表如下所示。</p><p>  簡易數(shù)字電壓表與“標準”電壓表對比測試表</p><p>  從上表中可以看出,簡易數(shù)字電壓表與“標準”數(shù)字電壓表測得的絕對誤差均在0.02V以內(nèi),這與采用8位A/D轉(zhuǎn)換器所能達到的

22、理論誤差精度相一致,在一般的應用場合可無、安全滿足要求。</p><p>  硬件調(diào)試比較簡單,首先檢查電路的焊接是否正確,然后用萬用表測試。軟件調(diào)試可以先編寫顯示程序并進行硬件的正確性檢驗,然后分別進行主程序、從程序的編寫和調(diào)試。</p><p><b>  設計總結(jié)</b></p><p>  在這次對簡易數(shù)字電壓表設計中,讓我了解和學習到

23、了設計硬件電路的過程和軟件程序的編寫,也讓我了解了關(guān)于電壓表的原理與設計理念,。通過這次學習,讓我對各種電路都有了大概的了解以及提高了我對單片機的學習,所以說,坐而言不如立而行,對于這些電路還是應該自己動手實際操作才會有深刻理解。除了學會了許多專業(yè)知識外,還教會了我如何學習。在硬件的連接和軟件的編寫中,遇到遇到困難時,首先是想了想,是在不懂的就積極地去請教我的指導老師,也得到了很多經(jīng)驗,當然,我也看現(xiàn)有的教材、去圖書館查閱資料、去網(wǎng)上搜

24、索相關(guān)信息,以這些方式,來大大增強了自我的自學能力和獨立能力。更重要的是,一次設計性實驗,卻大大我拓展了我的思路,開闊了我的視野,活躍了我的思想。 這次課程設計不僅使我們對相關(guān)專業(yè)知識有了更深的理解,而且還讓我認識到了理論知識對工作實踐的重大意義,學會理論聯(lián)系實際是一種很好的學習方法。課程設計要求我們完全依靠自己的能力去學習和設計,而不是像以往課程那樣一切由教材和老師安排。因此,它給了我更大的發(fā)揮空間,可以讓我發(fā)揮主觀能動性獨立

25、的查閱資料、尋找數(shù)據(jù)、設計實驗方案,并將理論知識應用到實踐中去。同時,讓我</p><p><b>  致謝:</b></p><p>  這次能順利按時而且可以很好的完成課程設計,非常感謝我的指導老師和我的搭檔,是他們的耐心指導和講解,使我能夠順利的完成課程設計。在我的設計工作中無不傾注著你們辛勤的汗水和心血。老師的嚴謹治學態(tài)度、淵博的知識、無私的奉獻精神使我深受啟

26、迪。從尊敬的老師身上,我不僅學到了扎實、寬廣的專業(yè)知識,也學到了做人的道理。在此我要向我的導師說聲“老師您辛苦了!”最后我致以最衷心的感謝和深深的敬意.</p><p><b>  附 錄A:源程序</b></p><p>  源程序代碼(主要語句要有注釋)。</p><p>  /*使用AT89C52單片機,12MHZ晶振,P0口讀入AD值,

27、P2口作AD控制,用共陽LED數(shù)碼管</p><p>  P1口輸出段碼,P3口掃描,最高位指示通道(0-7)。*/</p><p>  #include "reg52.h" //52系列單片機定義文件</p><p>  #include "intrins.h" //調(diào)用_nop_();延時函數(shù)用&l

28、t;/p><p>  #define ad_con P2 //AD控制口</p><p>  #define addata P0 //AD數(shù)據(jù)計入讀入口</p><p>  #define Disdata P1 //顯示數(shù)據(jù)段碼輸出口</p><p>  #define uchar unsigned

29、char//無符號字符(8位)</p><p>  #define uint unsigned int //無符號整數(shù)(16位)</p><p>  sbit ALE=P2^3; //鎖存地址控制位</p><p>  sbit START=P2^4; //啟動一次轉(zhuǎn)換位</p><p>  sbit

30、 OE=P2^5; //0809輸出數(shù)據(jù)控制位</p><p>  sbit EOC=P3^7; //轉(zhuǎn)換結(jié)束標志位</p><p>  sbit DISX=Disdata^7; //LED小數(shù)點</p><p><b>  //</b></p><p><b

31、>  //</b></p><p>  uchar code dis_7[11]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};</p><p>  /* 共陽七段LED段碼表 "0" "1" "2" "3" &qu

32、ot;4" "5" "6" "7" "8" "9" "不亮" */ </p><p>  uchar code scan_con[4]={0xfe,0xfd,0xfb,0xf7}; //四位列掃描控制字

33、</p><p>  uchar data ad_data[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};//定義8個數(shù)據(jù)內(nèi)存單元</p><p>  uint data dis[5]={0x00,0x00,0x00,0x00,0x00}; //定義4個顯示數(shù)據(jù)單元、1個數(shù)據(jù)暫存單元</p><p><b&g

34、t;  //</b></p><p><b>  // </b></p><p>  /********1毫秒延時子函數(shù)**********/</p><p>  delay1ms(uint t)</p><p><b>  {</b></p><p><b

35、>  uint i,j;</b></p><p>  for(i=0;i<t;i++)</p><p>  for(j=0;j<120;j++)</p><p><b>  ;</b></p><p><b>  }</b></p><p>&l

36、t;b>  //</b></p><p><b>  //</b></p><p>  /***********顯示掃描子函數(shù)**********/</p><p><b>  scan()</b></p><p><b>  {</b></p>

37、<p>  uchar k,n;</p><p><b>  int h;</b></p><p>  dis[3]=0x00; //通道初值為0</p><p>  for(n=0;n<8;n++) //每次顯示8個數(shù)據(jù)</p><p><

38、b>  {</b></p><p>  dis[2]=ad_data[n]/51; //測得值轉(zhuǎn)換為三位BCD碼,最大為5.00V</p><p>  dis[4]=ad_data[n]%51; // 余數(shù)暫存</p><p>  dis[4]=dis[4]*10; //計算小數(shù)第一位</p>&

39、lt;p>  dis[1]=dis[4]/51; //</p><p>  dis[4]=dis[4]%51; //</p><p>  dis[4]=dis[4]*10; //計算小數(shù)第二位</p><p>  dis[0]=dis[4]/51; //</p><p&

40、gt;  for(h=0;h<500;h++) //每個通道值顯示時間控制(約1秒)</p><p><b>  {</b></p><p>  for(k=0;k<4;k++) //四位LED掃描控制</p><p><b>  {</b></p><p&g

41、t;  Disdata=dis_7[dis[k]];</p><p>  if(k==2){DISX=0;}</p><p>  P3=scan_con[k];delay1ms(1);P3=0xff;</p><p><b>  }</b></p><p><b>  }</b></p>

42、<p>  dis[3]++; //通道值加1</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //</b></p><p><b>  //</b>

43、</p><p>  /*******0809AD轉(zhuǎn)換子函數(shù)***********/</p><p><b>  test()</b></p><p><b>  {</b></p><p><b>  uchar m;</b></p><p>  uc

44、har s=0x00;</p><p><b>  ad_con=s;</b></p><p>  for(m=0;m<8;m++)</p><p><b>  {</b></p><p>  ALE=1;_nop_();_nop_();ALE=0; //轉(zhuǎn)換通道地址鎖存</p&

45、gt;<p>  START=1;_nop_();_nop_();START=0; //開始轉(zhuǎn)換命令</p><p>  _nop_();_nop_();_nop_();_nop_(); //延時4微秒</p><p>  while(EOC==0); //等待轉(zhuǎn)換結(jié)束</p><p>  OE=1;ad_data[

46、m]=addata;OE=0;s++;ad_con=s;//取AD值,地址加1</p><p><b>  }</b></p><p>  ad_con=0x00; //控制復位 </p><p><b>  }</b></p><p><b>

47、  //</b></p><p><b>  //</b></p><p>  /**************主函數(shù)****************/</p><p><b>  main()</b></p><p><b>  {</b></p>&

48、lt;p>  P0=0xff; //初始化端口 </p><p><b>  P2=0x00;</b></p><p><b>  P1=0xff;</b></p><p><b>  P3=0xff;</b></p><p><b>  wh

49、ile(1)</b></p><p><b>  {</b></p><p>  scan(); //依次顯示8個通道值一次</p><p>  test(); //測量轉(zhuǎn)換一次</p><p><b>  }</b></p><p>&l

50、t;b>  }</b></p><p><b>  //</b></p><p><b>  //</b></p><p>  //*********************結(jié)束**************************//</p><p>  附 錄B:作品實物圖片&l

51、t;/p><p>  圖一 簡易數(shù)字電壓表不通電時的情況</p><p>  圖二 簡易數(shù)字電壓表通電時的情況</p><p>  附 錄C:電子元器件清單</p><p><b>  參考文獻</b></p><p>  [1] 劉欣銘,張廣斌.LED顯示屏技術(shù)綜述[J].黑龍江電力,2003, 2

52、5(4):294-296.</p><p>  [2] 陽進.基于單片機的LED顯示屏的漢字顯示[J].中國科技信息,2005,(12):112.</p><p>  [3] Mark Nelson著.瀟湘工作室譯.串行通信開發(fā)指南[M].中國水利水電出版社,2002. </p><p>  [4] 王宜懷.單片機原理及其嵌入式應用教程[M].北京希望電子出版社,2

溫馨提示

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

評論

0/150

提交評論