用單片機制作電壓表_第1頁
用單片機制作電壓表_第2頁
用單片機制作電壓表_第3頁
用單片機制作電壓表_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、用單片機制作電壓表作品概述電壓表是電子測量是不可缺少的一種工具,這是一款用單片機制作的電壓表,測量 精確,達到小數后兩位,外圍元器件很少,制作簡單,用STC12C5A62單片機,本次制作 放棄了 I/O準雙向接口模式,采用的是推挽輸出模式,強上拉輸出,可達2mA,所以不需要 用三極管來放大電流,大大簡化了電路。電壓測量范圍是05V,既有一定的實用性,還可 以加深對單片機的理解。元器件清單品名型號數量備注單片機STC12C5A60S21大約11元/片芯片座管孔式40PIN-DIP1可以用普通40PIN的芯片座替代電容30Pf2大約8元/包,瓷片電容晶體振蕩器12MHz1大約1元/個,普通的直插式

2、晶體即可數碼管SR430563K14位共陽,數碼管中間帶冒號顯示5V穩(wěn)壓電源1為單片機提供工作電壓電阻10K 1/4W1電阻100 歐 1/4W3萬能實驗板2. 54mm間距1尺寸可按喜好選擇原理:主要運用到了 A/D轉換原理,將連續(xù)變化的模擬信號轉化為數字信號,STC12C5A60S2 自帶A/D轉換,省去了 A/D轉換芯片,A/D轉換接口在P1 口(P1.7-P1.0),有8位10路 A/D轉換器,速度可達250KHz,上電復位后P1 口為弱上拉I/O 口,可設置8路中任何一路 為A/D轉換,不需要作為A/D使用的可繼續(xù)作為I/O使用。本制作選用P1.1作為測量電壓的輸入口,因為輸入的是模

3、擬的信號,而單片機只有0和1 兩種狀態(tài),所以要在軟件中將P1.1 口設置為高阻輸入模式.但高阻模式有個缺點,就是很不 穩(wěn)定,稍有一點電流就會跳變,加一個10K的下拉阻就可以變得很穩(wěn)定了。由于電壓測量 不需要太高的精度,所以我取了 8位結果,數模轉換結果計算公式如下: ADC_RES7:0=256*Vi/Vcc. Vi為模擬輸入通道輸入電壓,Vcc為單片機實際工作電壓,用 單片機工作電壓作為模擬參考電壓。U1卜XTWJPD.D/ADOPD.I/AD1FD-iTAEdXTAL1PD.SrATdFD.WD+PD-STADfiU1卜XTWJPD.D/ADOPD.I/AD1FD-iTAEdXTAL1PD

4、.SrATdFD.WD+PD-STADfiRGTP0.7.WI?fJbTP2.0i*PLl性HEPT.4XAU頁P2.5/A13P2.7/A15P1.DP3 0JRKDP1.1P3.liTxDP1.2閔為間ITFI.4P3.4HDFI.5p?.?rnFI.DR貞M詞FI.TP3.7/RD攔.-r-TT;-.:;.-一電路原理圖顯示部分:電壓值是用數碼管顯示出來的,非常直觀,本制作采用的是四位數碼管。采用動態(tài)顯示, 相比靜態(tài)顯示。動態(tài)顯示方式不論是多少位的數碼管,在同一時刻內只有其中一位被點亮, 所以比較省電,要加上100歐的限流電阻來保護數碼管。注意事項:1 .在使用ADC功能時,應將其輸入端

5、的I/O接口設置為高阻輸入工作方式。更改ADC通道時須同時將對應的IO接口修改為高阻輸入。不要測量超過5V的電壓,否則可能損失單片機。實際效果單片機軟件實現:編程方式與通用51單片機完全兼容。程序中用到了浮點運算,必須在Keil中安裝 C51FPS.LIB庫文件,不然就會出現錯誤.#include#include /51 基本運算(包括_nop_空函數)float dianya;電壓int dianya1;電壓 1char shuzu=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90;/0-9 八個數字/*延時函數*/voi

6、d DELAY_MS (unsigned int a)unsigned int i;while( -a != 0)for(i = 0; i 600; i+);/*AD初始化程序*/void ADC_init(unsigned char CHA)unsigned char AD_FIN=0;/unsigned char AD_FIN=0;/存儲A/D轉換標志CHA&=0 x07;高5位)ADC_CONTR|=0 x40;_nop_();ADC_CONTR&=CHA;ADC_CONTR|=0 x80;CHA&=0 x07;高5位)ADC_CONTR|=0 x40;_nop_();ADC_CONTR

7、&=CHA;ADC_CONTR|=0 x80;DELAY_MS(1);/ADC轉換的速度(0XX0 0000其中XX控制速度)選擇A/D當前通道啟動A/D電源/使輸入電壓達到穩(wěn)定(1ms即可)/*AD轉化函數*/unsigned int ADC_Read(void) unsigned char AD_FIN;/存儲 A/D 轉換標志ADC_CONTR|=0 x80;啟動 A/D 轉換(0000 1000 令 ADCS = 1)_nop_(); _nop_(); _nop_(); _nop_(); while(AD_FIN=0) AD_FIN=ADC_CONTR&0 x10; /0001 0000 測試 A/D 轉換結束否 ADC_CONTR&=0 xe7;/1111 0111 清 ADC_FLAG 位,關閉 A/D 轉換,return(ADC_RES);/返回 A/D 轉換結果(ADC 數據 8 位在 ADC_RES 中)/*主函數*/main() ADC_init(0);P2M0=0 xff;設置P0 口為推挽輸出P1M1=0 xff;設置P1 口為高阻輸入while(1) dianya=ADC_Read()*(4.5/256.0);/取電壓dianya=dianya*100; dianya1=(int)dianya;P2=0 x01;P0=shu

溫馨提示

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

評論

0/150

提交評論