基于STC12C5A60S2單片機數(shù)字電壓表的設計_第1頁
基于STC12C5A60S2單片機數(shù)字電壓表的設計_第2頁
基于STC12C5A60S2單片機數(shù)字電壓表的設計_第3頁
基于STC12C5A60S2單片機數(shù)字電壓表的設計_第4頁
基于STC12C5A60S2單片機數(shù)字電壓表的設計_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)字電壓表的設計第1章 引言在電量的測量中,電壓、電流和頻率是最基本的三個被測量,其中電壓量的測量最為經(jīng)常。而且隨著電子技術的發(fā)展,更是經(jīng)常需要測量高精度的電壓,所以數(shù)字電壓表就成為一種必不可少的測量儀器。數(shù)字電壓表簡稱DVM,它是采用數(shù)字化測量技術,把連續(xù)的模擬量轉換成不連續(xù)、離散的數(shù)字形式并加以顯示的儀表。由于數(shù)字式儀器具有讀數(shù)準確方便、精度高、誤差小、測量速度快等特而得到廣泛應用。 傳統(tǒng)的指針式刻度電壓表功能單一,精度低,容易引起視差和視覺疲勞,因而不能滿足數(shù)字化時代的需要。采用單片機的數(shù)字電壓表,將連續(xù)的模擬量如直流電壓轉換成不連續(xù)的離散的數(shù)字形式并加以顯示,從而精度高、抗干擾能力強,

2、可擴展性強、集成方便,還可與PC實時通信。數(shù)字電壓表是諸多數(shù)字化儀表的核心與基礎。以數(shù)字電壓表為核心,可以擴展成各種通用數(shù)字儀表、專用數(shù)字儀表及各種非電量的數(shù)字化儀表。目前,由各種單片機和A/D轉換器構成的數(shù)字電壓表作全面深入的了解是很有必要的。目前,數(shù)字電壓表的內部核心部件是A/D轉換器,轉換的精度很大程度上影響著數(shù)字電壓表的準確度,因而,以后數(shù)字電壓表的發(fā)展就著眼在高精度和低成本這兩個方面。本文是以簡易數(shù)字直流電壓表的設計為研究內容,本系統(tǒng)主要包括三大模塊:轉換模塊、數(shù)據(jù)處理模塊及顯示模塊。第2章 系統(tǒng)總體方案設計選擇與說明2.1 設計要求 1、增強型MCS-51系列單片機STC12C5A

3、60S2為核心器件,組成一個簡單的直流數(shù)字電壓表。2、采用1路模擬量輸入,能夠測量0-10V之間的直流電壓值。3、電壓顯示采用LCD1602顯示。 4、盡量使用較少的元器件。2.2 設計思路1、根據(jù)設計要求,選擇STC12C5A60S2單片機為核心控制器件。2、A/D轉換采用STC12C5A60S2內部自帶A/D實現(xiàn)。3、電壓顯示采用LCD1602顯示。2.3 設計方案硬件電路設計由7個部分組成:STC12C5A60S2單片機系統(tǒng),數(shù)碼管顯示系統(tǒng)、時鐘電路、復位電路檔位調節(jié)電路以及測量電壓輸入電路。硬件電路設計框圖如圖1所示。 時鐘電路 測量電壓輸入入LCD1602顯示STC12C5A60S2

4、 P1 P0 P2 P2 P0復位電路 圖2.1 數(shù)字電壓表系統(tǒng)硬件設計框圖第3章 硬件電路設計3.1 STC12C5A60S2單片機 圖3.1 STC12C5A60S2單片機引腳圖及實物圖3.2 STC12C5A60S2系列單片機主要性能1)高速:1個時鐘/機器周期,增強型8051內核,速度比普通8051快612倍。2)寬電壓:5.53.3V,2.23.6V(STC12LE5A60S2系列)。3)增加第二復位功能腳/P4.6(高可靠復位,可調整復位門檻電壓,頻率<12MHz時,無需此功能)。4)增加外部掉電檢測電路/P4.6,可在掉電時,及時將數(shù)據(jù)保存進EEPROM,正常工作時無需操作

5、EEPROM。5)低功耗設計:空閑模式(可由任意一個中斷喚醒)。6)低功耗設計:掉電模式(可由外部中斷喚醒),可支持下降沿/上升沿和遠程喚醒。7)支持掉電喚醒的管腳: INT0/P3.2,INT1/P3.3,T0/P3.4,T1/P3.5,RxD/P3.0,CCP0/P1.3(或P4.2),CCP1/P1.4(或P4.3),EX_LVD/P4.6。8) 工作頻率:035MHz,相當于普通8051:0420MHz。9) 時鐘:外部晶體或內部RC振蕩器可選,在ISP下載編程用戶程序時設置。10) 8/16/20/32/40/48/52/56/60/62K字節(jié)片內Flash程序存儲器,擦寫次數(shù)10萬

6、次以上。11) 1280字節(jié)片內RAM數(shù)據(jù)存儲器。12) 芯片內EEPROM功能,擦寫次數(shù)10萬次以上。13) ISP / IAP,在系統(tǒng)可編程/在應用可編程,無需編程器/仿真器。14) 8通道,10位高速ADC,速度可達25萬次/秒,2路PWM還可當2路D/A使用。15) 2通道捕獲/比較單元(PWM/PCA/CCP),也可用來再實現(xiàn)2個定時器或2個外部中斷(支持上升沿/下降沿中斷)。16) 4個16位定時器,兼容普通8051的定時器T0/T1,2路PCA實現(xiàn)2個定時器。17) 可編程時鐘輸出功能,T0在P3.4輸出時鐘,T1在P3.5輸出時鐘,BRT在P1.0輸出時鐘。18) 硬件看門狗(

7、WDT)。19) 高速SPI串行通信端口。20) 全雙工異步串行口(UART),兼容普通8051的串口。21) 通用I/O口(36/40/44個),復位后為: 準雙向口/弱上拉(普通8051傳統(tǒng)I/O口)??稍O置成四種模式:準雙向口/弱上拉,推挽/強上拉,僅為輸入/高阻,開漏。每個I/O口驅動能力均可達到20mA,但整個芯片最大不得超過120mA。3.3 STC12C5A60S2系列單片機的A/D轉換器的結構STC12C5A60S2系列單片機的A/D轉換口在P1口(P1.7-P1.0),有8路10位高速A/D轉換器,速度可達到250KHz(25萬次/秒)。8路電壓輸入型A/D,可做溫度檢測、電

8、源電壓檢測、按鍵掃描、頻譜檢測等。上電復位后P1口為弱上拉型I/O口,用戶可以通過軟件設置將8路中的任何一路設置為A/D轉換,不需作為A/D使用的I/O口可以繼續(xù)作為I/O口使用。STC12C5A60S2系列單片機ADC的結構如下圖所示圖3.2 STC12C5A60S2系列單片機ADC的結構圖3.3 當AUXR.1/ADRJ=0時,A/D轉換結果寄存器格式圖3.4 當AUXR.1/ADRJ=1時,A/D轉換結果寄存器格式STC12C5A60S2系列單片機ADC由多路選擇開關、比較器、逐次比較寄存器、10位ADC轉換寄結果存器(ADC_RES和ADC_RESL)以及ADC_CONTR構成。STC

9、12C5A60S2系列單片機的ADC是逐次比較型ADC,逐次比較型ADC由一個比較D/A轉換器構成,通過逐次比較邏輯,從最高位(MSB)開始,順序地對每一輸入電壓與內置D/A轉換器輸出比較,經(jīng)過多次比較,使轉換所得的數(shù)字量逐次比逼近輸入模擬量對應值。逐次比較型A/D轉換器具有速度高,功耗低等特點。從上圖可以看出,通過模擬多路開關,將通過ADC0-ADC7的模擬量輸入送給比較器。用數(shù)/模轉換器(DAC)轉換的模擬量與本次輸入的模擬量通過比較器進行比較,將比較結果保存到逐次比較器,并通過逐次比較寄存器輸出轉換結果。A/D轉換結束后,最終的轉換結果保存到ADC轉換結果寄存器ADC_RES和ADC_R

10、ESL,同時,置位ADC控制寄存器ADC_CONTR中的A/D轉換結束標志位ADC_FLAG,以供程序查詢或發(fā)出中斷申請。模擬通道的選擇控制由ADC控制寄存器ADC_CONTR中的CHS2CHS0確定。ADC的轉換速度由ADC控制寄存器中的SPEED1和SPEED0確定。在使用ADC之前,應先給ADC上電,也就是置位ADC控制寄存器中的ADC_POWER位。當ADRJ=0時,如果取10位結果,則按下面公式計算:10-bitA/D Conversion Result:(ADC_RES7:0,ADC_RESL1:0)=1023*Vin/Vcc當ADRJ=0時,如果取8位結果,則按下面公式計算:8-

11、bitA/D Conversion Result:(ADC_RES7:0)=255*Vin/Vcc當ADRJ=1時,如果取10位結果,則按下面公式計算:10-bitA/D Conversion Result:( ADC_RESL1:0 ,ADC_RES7:0)=1023*Vin/Vcc當ADRJ=1時,如果取8位結果,則按下面公式計算:8-bitA/D Conversion Result:( ADC_RESL1:0 ,ADC_RES7:2)=255*Vin/Vcc式中,Vin為模擬輸入電壓,Vcc為單片機實際工作電壓,用單片機工作電壓作為模擬參考電壓。3.4 與A/D 轉換相關的寄存器及說明與

12、STC12C5A60S2系列單片機A/D轉換相關的寄存器表3.1 A/D轉換相關的寄存器1.P1口模擬功能控制寄存器P1ASFSTC12C5A60S2系列單片機的A/D轉換通道與P1(P1.7-P1.0)復用,上電復位后P1為弱上拉型I/O口,用戶可以通過將8路中的如何一路設置為A/D轉換,不需作為A/D使用的P1口可繼續(xù)作為I/O口使用(建議只作為輸入)。需作為A/D使用的口需要先將P1ASF特殊功能寄存器中的相應位置為“1”,將相應的口設置為模擬功能。P1ASF寄存器的格式如下:P1ASF:P1口模擬功能控制寄存器(只讀)表3.2 P1ASF寄存器當P1口中的相應位作為A/D使用時,要將P

13、1ASF中的相應位置“1”表3.3 P1ASF寄存器設置2.ADC控制寄存器ADC_CONTRADC_CONTR寄存器的格式如下:ADC_CONRTR:ADC控制寄存器表3.4 ADC控制寄存器對ADC_CONTR寄存器進行操作,建議直接用MOV賦值語句,不要用“與”和“或”語句。ADC_POWER:ADC電源控制位。0:關閉A/D轉換電源;1:打開A/D轉換電源;建議進入控模式前,將ADC電源關閉,即ADC_POWER=0.啟動A/D轉換前一定要確認A/D電源已打開,A/D轉換結束后關閉A/D電源可決定功耗,也可以不關閉。初次打開內部A/D轉換模擬電源,需適當延時,等內部模擬電源穩(wěn)定后,再啟

14、動A/D轉換。建議啟動A/D轉換后,在A/D轉換結束之前,不要改變任何I/O口的狀態(tài),有利于高精度A/D轉換,若能將定時器/串行口/中斷系統(tǒng)關閉更好。SPEED1,SPEED0:模數(shù)轉換速度控制位表3.5 模數(shù)轉換速度控制位設置STC12C5A60S2系列單片機的A/D轉換模塊所使用的時鐘時內部(或外部石英晶體)所產(chǎn)生的系統(tǒng)時鐘,不使用時鐘分頻寄存器CLK_DIV對系統(tǒng)分頻后所產(chǎn)生的供給CPU工作的時鐘。(好處:這樣可以讓ADC用較高頻率工作,提高A/D的轉換速度。讓CPU工作工作在較低頻率,降低系統(tǒng)功耗)。ADC_FLAG:模數(shù)轉換結束標志位,當A/D轉換完成后,ADC_FLAG=1,要由軟

15、件清零。不管是A/D轉換完成后由該位申請中斷,還是由軟件查詢該標志A/D轉換是否結束,當A/D轉換完成后, ADC_FLAG = 1,一定要軟件清零。ADC_START:模數(shù)轉換器(ADC)轉換啟動控制位,設置為“1”時,開始轉換,轉換結束后ADC_START = 1;CHS2/CHS1/CHS0: 模擬輸入通道選擇表3.6模擬輸入通道選擇設置ADC_CONTR控制寄存器后,要加4個空操作延時后才能正確度到ADC_CONTR寄存器的值。原因是設置ADC_CONTR控制寄存器的語句執(zhí)行后,要經(jīng)過4個CPU時鐘的延時,其值才能夠保證被設置進ADC_CONTR控制寄存器。MOV ADC_CONTR,

16、#DATANOPNOPNOPNOPMOV A,ADC_CONRT3、A/D轉換結果寄存器ADC_RES、ADC_RESL特殊功能寄存器ADC_RES和ADC_RESL寄存器用于存放A/D轉換結果,其格式如下:表3.7 用于存放A/D轉換結果寄存器ADC_RES、ADC_RESL AUXR1寄存器的ADRJ位是A/D轉換結果寄存器的數(shù)據(jù)格式調整控制位。表3.8 當ADRJ = 0 時,10位A/D轉換結果的高8位存放在ADC_RES中,低2位存放在ADC_RESL的低2 位中。表3.9 當ADRJ = 1 時,10位A/D轉換結果的高2位存放在ADC_RES的低2 位中,低8位存放在ADC_RE

17、SL中。4、與A/D中斷有關的寄存器IE:中斷允許寄存器表3.10 中斷允許寄存器EA: CPU的中斷開放標志,EA = 1,CPU開放中斷,EA = 0,CPU屏蔽所有的中斷請求。EADC:A/D轉換中斷允許位。EADC = 1,允許A/D中斷;EADC = 0,屏蔽A/D中斷。IPH:中斷優(yōu)先級控制寄存器高(不可位尋址)表3.11 中斷優(yōu)先級控制寄存器高IP: 中斷優(yōu)先級控制寄存器低(可以位尋址)表3.12中斷優(yōu)先級控制寄存器低PADCH,PADC:ADC轉換優(yōu)先級控制位。5、ADC初始化程序/*-初始化ADC-*/void InitADC(void) P1ASF = 0x58; /設置P

18、1口為AD口 0100 0111 0101 1000 ADC_RES = 0; /清除結果寄存器 ADC_CONTR = ADC_POWER | ADC_SPEEDLL; Delay(50); /ADC上電并延時6、ADC讀子函數(shù)/*-發(fā)送ADC結果到PC-*/void ShowResult(BYTE ch) float value; change_long_data_to_array(disadch,2,ch); value=GetADCResult(ch); value=value/255*4.8; change_data_to_array(disadcval,5,1,value);/*-

19、讀取ADC結果-*/BYTE GetADCResult(BYTE ch) ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START; _nop_(); /等待4個NOP _nop_(); _nop_(); _nop_();_nop_(); /等待4個NOP _nop_(); _nop_(); _nop_();_nop_(); /等待4個NOP _nop_(); _nop_(); _nop_(); while (!(ADC_CONTR & ADC_FLAG);/等待ADC轉換完成 ADC_CONTR &= ADC_FLAG; /Cl

20、ose ADC return ADC_RES; /返回ADC結果3.5系統(tǒng)電路設計、說明3.5.1 系統(tǒng)電路總原理圖 圖3.5 系統(tǒng)原理圖3.5.2 晶振電路簡介時鐘信號的振蕩器提供正常工作穩(wěn)定的供應鏈接管理。晶振也被稱為晶振諧振器,是一種機電設備,是需要精密磨削的石英晶體鍍上電極焊上導線制成。這種晶體有一個很關鍵的特性-壓電效應,給它導電,產(chǎn)生機械振蕩,反之,給它機械力,便會產(chǎn)生電7。它的形狀,材質,切割方向影響到振蕩的頻率。根據(jù)石英晶體等效為一個諧振回路,它的機電效應是機-電-機-電.的不斷轉換,由電感和電容組成的諧振回路是電場-磁場的不斷轉換。AT89S52的反相放大器,振蕩器,時鐘信號

21、可以由單片機產(chǎn)生周期性功能是機械指令驅動芯片實現(xiàn)。這個放大器與石英晶體或陶瓷諧振器一起可構成一個自激振蕩器,外接石英晶體或陶瓷諧振器以及電容C8和C10組成并聯(lián)諧振電路, 接在放大器的反饋回路中。一個外部電容C8和C10的值雖然沒有嚴格的要求, 但會影響許多電容振蕩器的頻率穩(wěn)定度、振蕩器、起振圈內部振蕩的接法的快速及時性和溫度穩(wěn)定性。AT89S52芯片里面有一個反相高增益放大器,它兩頭跟石英晶體及兩個常用30pF電容相連接,組成穩(wěn)定的自激振蕩器微調震蕩頻率。震蕩電路如圖5所示。圖3.6晶振電路3.5.3 復位電路系統(tǒng)CPU和其輔助部件是在一個精確的狀態(tài)開始運行, 單片機成功復位。 不論是電源故障或剛接上電源,要使用單片機就要先復位。施密特觸發(fā)器通過AT89S52單片機RST引腳接收復位信號。當系統(tǒng)振蕩穩(wěn)定沒發(fā)生異常情況下, 假如RST出現(xiàn)一個持續(xù)24個振蕩周期的高電平, 則系統(tǒng)復位。本設計系統(tǒng)是自動電源復位。本系統(tǒng)中采用上電電路復位,即在單片機運行期間人工的復位,方便又簡單。工作按鈕接通電源,單片機便可復位,即手動復位完成。系統(tǒng)上電運行后,如果要復位,則動手復位即可,手動復

溫馨提示

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

評論

0/150

提交評論