版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 電控學(xué)院</b></p><p><b> 課程設(shè)計(jì)</b></p><p> 課程名稱: ARM課程設(shè)計(jì) </p><p> 題 目: 基于LPC2131數(shù)字電壓表設(shè)計(jì) </p><
2、;p> 院 (系): 電氣與控制工程學(xué)院 </p><p> 專業(yè)班級(jí): 測(cè)控技術(shù)與儀器1001班 </p><p> 姓 名: </p><p> 學(xué) 號(hào):
3、 </p><p> 指導(dǎo)教師: </p><p> 2013年12月28日</p><p><b> 目 錄</b></p><p><b> 一概述1</b></p><p> 1.1課題設(shè)計(jì)背景
4、1</p><p> 1.2ARM開(kāi)發(fā)板(簡(jiǎn)介)1</p><p> 1.3、LPC2131微控制器2</p><p><b> 二、 方案設(shè)計(jì)3</b></p><p><b> 2.1設(shè)計(jì)思路3</b></p><p><b> 2.2設(shè)計(jì)要求
5、3</b></p><p><b> 三、 硬件設(shè)計(jì)4</b></p><p> 3.1硬件設(shè)計(jì)原理圖及介紹4</p><p><b> 四、 軟件設(shè)計(jì)5</b></p><p><b> 五、 參考文獻(xiàn)6</b></p><p
6、><b> 六、 心得體會(huì)6</b></p><p><b> 七、 附件8</b></p><p> 基于LPC2131數(shù)字電壓表</p><p><b> 一概述</b></p><p><b> 1.1課題設(shè)計(jì)背景</b><
7、/p><p> 電壓表已經(jīng)有100多年的發(fā)展歷史,雖然不斷改進(jìn)與完善,仍然無(wú)法滿足現(xiàn)代電子測(cè)量的需求,數(shù)字電壓表(Digital Voltmeter簡(jiǎn)稱DVM)自1952年問(wèn)世以來(lái),顯示出強(qiáng)大的生命力,現(xiàn)已成為在電子測(cè)量領(lǐng)域中應(yīng)用最廣泛的一種儀器。數(shù)字電壓表可以顯示清晰、直觀,讀數(shù)準(zhǔn)確,準(zhǔn)確度高,分辨力強(qiáng),測(cè)量范圍廣,擴(kuò)展能力強(qiáng),測(cè)量速度快,輸入阻抗高,集成度高,微功耗和抗干擾能力強(qiáng)等優(yōu)點(diǎn),獨(dú)占電壓表產(chǎn)品的熬頭。
8、 DVM的高速發(fā)展,使它已成為實(shí)現(xiàn)測(cè)量自動(dòng)化、提高工作效率不可缺少的儀表,數(shù)字化是當(dāng)前計(jì)量?jī)x器發(fā)展的主要方向之一,而高準(zhǔn)度的DC-DVC的出現(xiàn),又使DVM進(jìn)入了精密標(biāo)準(zhǔn)測(cè)量領(lǐng)域。隨著現(xiàn)代化技術(shù)的不斷發(fā)展,數(shù)字電壓表的功能和種類將越來(lái)越強(qiáng),越來(lái)越多,其使用范圍也會(huì)越來(lái)越廣泛。采用智能化的數(shù)字儀器也將是必然的趨勢(shì),它們將不僅能提高測(cè)量準(zhǔn)確度,而且能提高電測(cè)量技術(shù)的自動(dòng)化程序,可以擴(kuò)展成各種通用數(shù)字儀表、專用數(shù)字儀表及各種非電量的數(shù)字化儀表(
9、如:溫度計(jì)、濕度計(jì)、酸度計(jì)、重量、厚度儀等),幾乎覆蓋了電子電工測(cè)量、工業(yè)測(cè)量、自動(dòng)化儀表等各個(gè)領(lǐng)域。從而提高計(jì)量檢定人員的工作效。 目前數(shù)字電壓表的內(nèi)部核</p><p> 1.2ARM開(kāi)發(fā)板(簡(jiǎn)介)</p><p> ARM開(kāi)發(fā)板,即以基于ARM內(nèi)核的芯片作為CPU,同時(shí)附加其他功能外圍的嵌入式開(kāi)發(fā)板,用以評(píng)估內(nèi)核芯片的功能。ARM開(kāi)發(fā)板可以分為Cortex-M0開(kāi)發(fā)板、Cort
10、ex-M3開(kāi)發(fā)板、Cortex-A5開(kāi)發(fā)板[1]、Cortex-A8開(kāi)發(fā)板、Cortex-A9開(kāi)發(fā)板、Cortex-A15開(kāi)發(fā)板等,而提供這些內(nèi)核芯片的廠商有飛思卡爾、TI、NXP、三星、Atmel和ST等。英國(guó)ARM公司是嵌入式RISC處理器的IP(知識(shí)產(chǎn)權(quán))供應(yīng)商,它為ARM架構(gòu)處理器提供ARM處理器內(nèi)核(如ARM7TDMI、ARM9TDMI及ARM10TDMI等)。由各半導(dǎo)體公司在上述處理器內(nèi)核基礎(chǔ)上進(jìn)行再設(shè)計(jì),嵌入各種外圍和處理
11、部件,形成各種MCU。目前基于ARM內(nèi)核的芯片在嵌入式處理器市場(chǎng)上占據(jù)75%的份額。ARM作為嵌入式系統(tǒng)的處理器,具有低電壓,低功耗和高集成度等特點(diǎn),并具有開(kāi)放性和可擴(kuò)充性。事實(shí)上,ARM內(nèi)核已成為嵌入式系統(tǒng)首選的處理器內(nèi)核。而對(duì)于醫(yī)療電子設(shè)備而言,并不需要圖像處理等方面更高的要求,因此,ARM7TDMI內(nèi)核以0.9MIPS(百萬(wàn)條指令每秒)/MHz的高效處理能力足以滿足應(yīng)用需要。ARM7TD</p><p>
12、 1.3、LPC2131微控制器 </p><p><b> 1、簡(jiǎn)介</b></p><p> LPC2131/2132/2138 是基于一個(gè)支持實(shí)時(shí)仿真和跟蹤的16/32 位ARM7TDMI-STM CPU,并帶有32kB、64kB 和512kB 嵌入的高速Flash 存儲(chǔ)器。128 位寬度的存儲(chǔ)器接口和獨(dú)特的加速結(jié)構(gòu)使32 位代碼能夠在最大時(shí)鐘速率下運(yùn)行。對(duì)
13、代碼規(guī)模有嚴(yán)格控制的應(yīng)用可使用16 位Thumb 模式將代碼規(guī)模降低超過(guò)30%,而性能的損失卻很小。較小的封裝和很低的功耗使 LPC2131/2132/2138 特別適用于訪問(wèn)控制和POS 機(jī)等小型應(yīng)用中;由于內(nèi)置了寬范圍的串行通信接口和8/16/32kB 的片內(nèi)SRAM,它們也非常適合于通信網(wǎng)關(guān)、協(xié)議轉(zhuǎn)換器、軟件</p><p> modem、語(yǔ)音識(shí)別、低端成像,為這些應(yīng)用提供大規(guī)模的緩沖區(qū)和強(qiáng)大的處理功能。
14、多個(gè)32 位定時(shí)器、1個(gè)或2 個(gè)10 位8 路的ADC、10 位DAC、PWM 通道、47 個(gè)GPIO 以及多達(dá)9 個(gè)邊沿或電平觸發(fā)的外部中斷使它們特別適用于工業(yè)控制應(yīng)用以及醫(yī)療系統(tǒng)。</p><p><b> 2、主要性能</b></p><p> a、 8/16/32kB 的片內(nèi)靜態(tài)RAM 和32/64/512kB 的片內(nèi)Flash 程序存儲(chǔ)器。128 位寬度
15、接口/加速器可實(shí)現(xiàn)高達(dá)60 MHz 工作頻率。</p><p> b、 1 個(gè)(LPC2131/2132)或2 個(gè)(LPC2138)8 路10 位的A/D 轉(zhuǎn)換器,共提供16 路模擬輸入,每個(gè)通道的轉(zhuǎn)換時(shí)間低至2.44us。</p><p> c、 1 個(gè)10 位的D/A 轉(zhuǎn)換器,可產(chǎn)生不同的模擬輸出。(僅適用于LPC2132/2138)</p><p> d
16、、 2 個(gè)32 位定時(shí)器/計(jì)數(shù)器(帶4 路捕獲和4 路比較通道)、PWM 單元(6 路輸出)和看門狗。</p><p> e、多個(gè)串行接口,包括2 個(gè)16C550 工業(yè)標(biāo)準(zhǔn)UART、2 個(gè)高速I2C 接口(400 kbit/s)、SPITM 。</p><p><b> 方案設(shè)計(jì)</b></p><p><b> 2.1設(shè)計(jì)思路
17、</b></p><p> 通過(guò)LPC2131板內(nèi)的A/D轉(zhuǎn)換器,采取中斷方式,完成對(duì)2路0—5V的模擬電壓進(jìn)行循環(huán)采集,采集的數(shù)據(jù)通過(guò)串口UARTO</p><p> 向PC機(jī)發(fā)送顯示 。</p><p><b> 2.2設(shè)計(jì)要求</b></p><p> (1)對(duì)2路模擬信號(hào)輸入實(shí)行循環(huán)采集,每路
18、連續(xù)采集16次,取平均值。</p><p> ?。?)分別設(shè)定每一路的上限值,若采集的平均值超過(guò)該上限值,則對(duì)應(yīng)通道的指示燈閃爍10次后一直亮,指示燈閃爍時(shí)喇叭發(fā)聲,以示警告。</p><p><b> 硬件設(shè)計(jì)</b></p><p> 3.1硬件設(shè)計(jì)原理圖及介紹</p><p><b> 圖3.1原理
19、框圖</b></p><p> 由上圖知,兩個(gè)被測(cè)信號(hào)進(jìn)入ARM開(kāi)發(fā)板,經(jīng)過(guò)A/D轉(zhuǎn)換模塊轉(zhuǎn)換得出電壓值,再經(jīng)由上位機(jī)顯示出數(shù)值。</p><p> 圖3.2蜂鳴器報(bào)警電路</p><p> 圖3.3指示燈閃爍電路</p><p><b> 軟件設(shè)計(jì)</b></p><p>
20、 4.1程序流程圖如圖4.1所示。根據(jù)流程圖編程實(shí)現(xiàn)各自功能。</p><p><b> 圖4.1程序流程圖</b></p><p><b> 參考文獻(xiàn)</b></p><p> [1]周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程[M].北京航空航天大學(xué)出版社,2008.9.</p><p> [2]李
21、紅巖,楊學(xué)存.ARM嵌入式實(shí)驗(yàn)+實(shí)訓(xùn)指導(dǎo)書(shū)[M].西安科技大學(xué)出版社,2013.9.</p><p> [3]周立功,張華等.深入淺出ARM7——LPC213x/LPC214x(上冊(cè))[M].北京航空航天大學(xué)出版社,2005. </p><p> [4]黃智偉,稅夢(mèng)玲,張強(qiáng).全國(guó)大學(xué)生電子設(shè)計(jì)大賽ARM嵌入式系統(tǒng)應(yīng)用設(shè)計(jì)與實(shí)踐[M].北京航空航天大學(xué)出版社,2011.</p>
22、;<p><b> [7]百度文庫(kù)</b></p><p><b> 心得體會(huì)</b></p><p> 心得體會(huì)一(龐海洋)</p><p> 這次的課程設(shè)計(jì)是基于LPC2131的數(shù)字電壓表,實(shí)現(xiàn)的主要功能用ARM的A/D轉(zhuǎn)換模塊功能,外部擴(kuò)展蜂鳴器報(bào)警電路和指示燈閃爍電路,用串口UART0向PC機(jī)
23、發(fā)送顯示。</p><p> 在做數(shù)字電壓表的設(shè)計(jì)時(shí),開(kāi)始是遇到不少的問(wèn)題,比如我們想數(shù)字電壓表到底是什么設(shè)計(jì)原理呢,模擬電壓信號(hào)是怎樣被數(shù)字電壓表循環(huán)采集的呢。由于只是在課堂上學(xué)習(xí)過(guò)理論知識(shí),還沒(méi)有接觸過(guò)實(shí)際真正設(shè)計(jì)和開(kāi)發(fā),所以在考慮問(wèn)題的時(shí)候往往是不全面的,導(dǎo)致設(shè)計(jì)過(guò)程中存在著這樣那樣的問(wèn)題。經(jīng)過(guò)這一個(gè)星期的課程設(shè)計(jì)實(shí)習(xí),過(guò)程曲折坎坷讓人一言難盡啊。我們組一共二個(gè)人,整體上是我們二個(gè)人都在做,但個(gè)人的分工不
24、同,呼霄鵬負(fù)責(zé)硬件部分,我負(fù)責(zé)軟件部分。在設(shè)計(jì)程序的過(guò)程中,我明白到做一個(gè)好程序的不易,做一個(gè)好的編程者就更加困難。我主要負(fù)責(zé)軟件程序編寫(xiě)以及調(diào)試工作。通過(guò)這次課程設(shè)計(jì),加強(qiáng)了我的動(dòng)手、思考和解決問(wèn)題的能力。在整個(gè)設(shè)計(jì)過(guò)程中主要是軟件編寫(xiě),這個(gè)我們花了好長(zhǎng)時(shí)間,幾乎是前四天都在編寫(xiě)數(shù)字電壓表程序。最后,在老師和同學(xué)的幫助下,我們完成了程序設(shè)計(jì)。經(jīng)過(guò)一天的調(diào)試,我們的課程設(shè)計(jì)終于成功了。我們兩個(gè)都很激動(dòng),嘗到了通過(guò)自己設(shè)計(jì)電壓表的喜悅。&
25、lt;/p><p> 這次課程設(shè)計(jì)我最大的收獲就是“細(xì)節(jié)”?!凹?xì)節(jié)決定成敗”這句話太對(duì)了。我以后在生活中要注重細(xì)節(jié)。在課程設(shè)計(jì)過(guò)程中,我的程序框架是對(duì)的,可是細(xì)節(jié)部分出現(xiàn)很多錯(cuò)誤。導(dǎo)致我的程序雖然在語(yǔ)法上沒(méi)有錯(cuò)誤但是出現(xiàn)邏輯錯(cuò)誤使電壓表不能完成其設(shè)計(jì)功能。我要做一個(gè)細(xì)心的人。最后,謝謝老師和同學(xué)們的幫助。</p><p> 心得體會(huì)二(呼霄鵬)</p><p>
26、這次的課程設(shè)計(jì)是基于LPC2131的數(shù)字電壓表,實(shí)現(xiàn)的主要功能用ARM的A/D轉(zhuǎn)換模塊功能,外部擴(kuò)展蜂鳴器報(bào)警電路和指示燈閃爍電路,用串口UART0向PC機(jī)發(fā)送顯示。</p><p> 本學(xué)期在學(xué)院的安排下我們學(xué)習(xí)了ARM嵌入式系統(tǒng)的理論知識(shí),這門課程是我們測(cè)控專業(yè)的主要課程。雖然我們學(xué)的都是一些簡(jiǎn)單的知識(shí),注重學(xué)習(xí)如何去分析和研究嵌入式系統(tǒng)的功能和結(jié)構(gòu)等,但學(xué)習(xí)的過(guò)程中還是有一定的困難。在理論課結(jié)束后老師為我
27、們安排了ARM的課程設(shè)計(jì)實(shí)習(xí)。</p><p> 本次課程實(shí)習(xí)我們兩個(gè)人組,我主要負(fù)責(zé)硬件的設(shè)計(jì)、調(diào)試和電路圖的繪制,另一個(gè)同學(xué)負(fù)責(zé)軟件的編寫(xiě)和調(diào)試。這次實(shí)習(xí)對(duì)于我來(lái)說(shuō)還是有一定難度的,因?yàn)閹缀鯖](méi)有什么實(shí)際經(jīng)驗(yàn)而不像有的同學(xué)以前參加過(guò)電子設(shè)計(jì)大賽。他們做起來(lái)感覺(jué)得心應(yīng)手可以說(shuō)是一氣合成,而我畫(huà)圖所用的軟件以前雖然用過(guò)但還是不太熟悉,畫(huà)圖過(guò)程中有很多問(wèn)題。</p><p> 通過(guò)這次課程
28、設(shè)計(jì),雖然學(xué)到了不少東西不管是電路圖的繪制還是軟件的編寫(xiě)和調(diào)試,但同時(shí)也發(fā)現(xiàn)了自身的不足。就比如說(shuō)實(shí)際動(dòng)手能力吧。畫(huà)基本一樣的一電路圖,熟悉畫(huà)圖軟件的同學(xué)可能有一上午就可以畫(huà)好所有的,而我卻需要差不多一天的時(shí)間還不能保證還所畫(huà)圖完全正確。希望通過(guò)這次實(shí)習(xí)可以對(duì)自己的操作能力有所提高。</p><p><b> 附件</b></p><p><b> 程序
29、清單:</b></p><p> /****************************************************************************</p><p> * 文 件 名:main.c</p><p> * 功 能:使用ADC模塊的通道0、1進(jìn)行電壓的測(cè)量,然后將轉(zhuǎn)換結(jié)果從串口輸出,<
30、/p><p> * 上位機(jī)使用EasyARM軟件全仿真的DOS字符窗口觀察。</p><p> * 說(shuō) 明:跳線JP8、JP30短接。由W1、W2調(diào)節(jié)測(cè)量電壓值。</p><p> * 通訊格式:8位數(shù)據(jù)位,1位停止位,無(wú)奇偶校驗(yàn),波特率為115200。</p><p> **********
31、******************************************************************/</p><p> #include "config.h"</p><p> #define LED1 1<<16 // P2.16 </p><p> #defin
32、e LED2 1<<17// P2.17 </p><p> #define BEEPCON 1<<20</p><p> // P0.7引腳控制B1,低電平蜂鳴</p><p> #define LEDCON0x00000000</p><p> /*************
33、***************************************************************</p><p> * 名 稱:DelayNS()</p><p> * 功 能:長(zhǎng)軟件延時(shí)</p><p> * 入口參數(shù):dly延時(shí)參數(shù),值越大,延時(shí)越久</p><p><b>
34、 * 出口參數(shù):無(wú)</b></p><p> ****************************************************************************/</p><p> void DelayNS(uint32 dly)</p><p> { uint32 i;</p><
35、;p> for(; dly>0; dly--) </p><p><b> {</b></p><p> for(i=0; i<5000; i++);</p><p><b> }</b></p><p><b> }</b></p>
36、<p> /****************************************************************************</p><p> * 名 稱:UART0Init()</p><p> * 功 能:初始化串口0。設(shè)置為8位數(shù)據(jù)位,1位停止位,無(wú)奇偶校驗(yàn)</p><p> * 入口參數(shù):
37、bps 通訊波特率 </p><p><b> * 出口參數(shù):無(wú)</b></p><p> ****************************************************************************/</p><p> void UART0Init(uint32 bps)</p>
38、<p> { uint16 Fdiv;</p><p> PINSEL0 = (PINSEL0 & (~0x0F)) | 0x05;// 不影響其它管腳連接,設(shè)置I/O連接到UART0</p><p> U0LCR = 0x83;// DLAB = 1,可設(shè)置波特率</p><p> Fdiv = (Fpclk /
39、16) / bps;// 設(shè)置波特率</p><p> U0DLM = Fdiv / 256;</p><p> U0DLL = Fdiv % 256;</p><p> U0LCR = 0x03;</p><p><b> }</b></p><p>
40、 /****************************************************************************</p><p> * 名 稱:UART0SendByte()</p><p> * 功 能:向串口發(fā)送字節(jié)數(shù)據(jù),并等待發(fā)送完畢。</p><p> * 入口參數(shù):data 要發(fā)送的數(shù)據(jù)<
41、;/p><p><b> * 出口參數(shù):無(wú)</b></p><p> ****************************************************************************/</p><p> void UART0SendByte(uint8 data)</p><p&g
42、t;<b> { </b></p><p> U0THR = data;// 發(fā)送數(shù)據(jù)</p><p> while( (U0LSR&0x40)==0 );// 等待數(shù)據(jù)發(fā)送完畢</p><p><b> }</b></p><p> /**********
43、******************************************************************</p><p> * 名 稱:UART0SendStr()</p><p> * 功 能:向串口發(fā)送一字符串</p><p> * 入口參數(shù):srt要發(fā)送的字符串的指針</p><p>&
44、lt;b> * 出口參數(shù):無(wú)</b></p><p> ****************************************************************************/</p><p> void UART0SendStr(char *str)</p><p><b> { </
45、b></p><p><b> while(1)</b></p><p><b> { </b></p><p> if( *str == '\0' ) break;</p><p> UART0SendByte(*str++);// 發(fā)送數(shù)據(jù)</p&g
46、t;<p><b> }</b></p><p><b> }</b></p><p> /****************************************************************************</p><p> * 名 稱:PCDispChar
47、()</p><p> * 功 能:向PC機(jī)發(fā)送顯示字符。</p><p> * 入口參數(shù):x 顯示位置的縱坐標(biāo),0-79 </p><p> * y 顯示位置的橫坐標(biāo),0-24 </p><p> * chr 顯示的字符,不能為0xff</
48、p><p> * color 顯示的狀態(tài)包括前景色、背景色、閃耀位。它與dos的字符顯示狀態(tài)一樣。 </p><p> * 即0~3位:前景色,4~6位:背景色,7位:閃耀位。</p><p><b> * 出口參數(shù):無(wú)</b></p><p> ****
49、************************************************************************/</p><p> void PCDispChar(uint8 x, uint8 y, uint8 chr, uint8 color)</p><p><b> { </b></p><p>
50、 UART0SendByte(0xff); // 發(fā)送起始字節(jié)</p><p> UART0SendByte(x);// 發(fā)送字符顯示坐標(biāo)(x,y)</p><p> UART0SendByte(y);</p><p> UART0SendByte(chr);// 發(fā)送顯示字符</p><p>
51、 UART0SendByte(color);</p><p><b> }</b></p><p> /****************************************************************************</p><p> * 名 稱:ISendStr()</p>
52、<p> * 功 能:向PC機(jī)發(fā)送字串,以便顯示。</p><p> * 入口參數(shù):x 顯示位置的縱坐標(biāo),0-79 </p><p> * y 顯示位置的橫坐標(biāo),0-24 </p><p> * color 顯示的狀態(tài)包括前景色、背景色、閃耀位。它與dos的字符
53、顯示狀態(tài)一樣。 </p><p> * 即0~3位:前景色,4~6位:背景色,7位:閃耀位。</p><p> * str 要發(fā)送的字符串,字串以'\0'結(jié)束</p><p><b> * 出口參數(shù):無(wú)</b></p><p> *
54、***************************************************************************/</p><p> void ISendStr(uint8 x, uint8 y, uint8 color, char *str)</p><p><b> { </b></p><p>
55、;<b> while(1)</b></p><p><b> { </b></p><p> if(*str=='\0') break; // 若為'\0',則退出</p><p> PCDispChar(x++, y, *str++, co
56、lor); // 發(fā)送顯示數(shù)據(jù)</p><p><b> if(x>=80)</b></p><p><b> { </b></p><p><b> x = 0;</b></p><p><b> y++;</b></p
57、><p><b> }</b></p><p><b> }</b></p><p><b> } </b></p><p> /************************************************************************
58、****</p><p> * 名 稱:main()</p><p> * 功 能:進(jìn)行通道0、1電壓ADC轉(zhuǎn)換,并把結(jié)果轉(zhuǎn)換成電壓值,然后發(fā)送到串口。</p><p> * 說(shuō) 明:在CONFIG.H文件中包含stdio.h。</p><p> ***********************************
59、*****************************************/</p><p> int main(void)</p><p><b> { </b></p><p> uint32 ADC_Data;</p><p> char str[20];</p><
60、p> UART0Init(115200);// 初始化UART0</p><p> PINSEL1 = 0x01400000;// 設(shè)置P0.27、P0.28連接到AIN0、AIN1</p><p> IO1DIR = BEEPCON; // 設(shè)置I/O為輸出</p><p> IO2DIR = 0x000
61、00000; </p><p> IO1SET = BEEPCON; </p><p> /* 進(jìn)行ADC模塊設(shè)置,其中x<<n表示第n位設(shè)置為x(若x超過(guò)一位,則向高位順延) */</p><p> ADCR = (1 << 0) |// SEL = 1 ,選擇通道0</p>
62、<p> ((Fpclk / 1000000 - 1) << 8) | // CLKDIV = Fpclk / 1000000 - 1 ,即轉(zhuǎn)換時(shí)鐘為1MHz</p><p> (0 << 16) |// BURST = 0 ,軟件控制轉(zhuǎn)換操作</p><p> (0 << 17)
63、 | // CLKS = 0 ,使用11clock轉(zhuǎn)換</p><p> (1 << 21) | // PDN = 1 , 正常工作模式(非掉電轉(zhuǎn)換模式)</p><p> (0 << 22) | // TEST1:0 = 00 ,正常工作模式(非測(cè)
64、試模式)</p><p> (1 << 24) | // START = 1 ,直接啟動(dòng)ADC轉(zhuǎn)換</p><p> (0 << 27);// EDGE = 0 (CAP/MAT引腳下降沿觸發(fā)ADC轉(zhuǎn)換)</p><p> DelayNS(10);</p>
65、;<p> ADC_Data = ADDR;// 讀取ADC結(jié)果,并清除DONE標(biāo)志位</p><p><b> while(1)</b></p><p><b> { </b></p><p> ADCR = (ADCR&0x00FFFF00)|0x01|(1 <<
66、; 24);// 設(shè)置通道1,并進(jìn)行第一次</p><p><b> 轉(zhuǎn)換</b></p><p> while( (ADDR&0x80000000)==0 ); // 等待轉(zhuǎn)換結(jié)束</p><p> ADCR = ADCR | (1 << 24);// 再次啟運(yùn)轉(zhuǎn)換</p&g
67、t;<p> while( (ADDR&0x80000000)==0 ); // 等待轉(zhuǎn)換結(jié)束</p><p> ADC_Data = ADDR;// 讀取ADC結(jié)果</p><p> ADC_Data = (ADC_Data>>6) & 0x3FF; // 提取AD轉(zhuǎn)換值</
68、p><p> ADC_Data = ADC_Data * 3300; // 數(shù)值轉(zhuǎn)換</p><p> ADC_Data = ADC_Data / 1024;</p><p> sprintf(str, "%4dmV at VIN1", ADC_Data);</p><p> ISend
69、Str(30, 23, 0x30, str); </p><p> if( ADC_Data>=3000) </p><p> { uint32 i;</p><p> for(i=0;i<10;i++)</p><p> { IO1SET = BEEPCON;</p><p>
70、; IO2DIR = 0x00010000; // BEEPCON = 1</p><p> DelayNS(15);</p><p> IO1CLR = BEEPCON; // BEEPCON = 0</p><p> IO2DIR = 0x00000000;</p><p> Dela
71、yNS(15);</p><p><b> }</b></p><p> IO2DIR = 0x00010000;</p><p> DelayNS(150);</p><p><b> } </b></p><p><b> else</b>
72、</p><p> { IO1SET = BEEPCON; // BEEPCON = 0</p><p> IO2DIR = 0x00000000;} </p><p> ADCR = (ADCR&0x00FFFF00)|0x02|(1 << 24);// 設(shè)置通道2,并進(jìn)行第一次轉(zhuǎn)換</p><
73、p> while( (ADDR&0x80000000)==0 ); // 等待轉(zhuǎn)換結(jié)束</p><p> ADCR = ADCR | (1 << 24);// 再次啟運(yùn)轉(zhuǎn)換</p><p> while( (ADDR&0x80000000)==0 ); // 等待轉(zhuǎn)換結(jié)束</p><
74、p> ADC_Data = ADDR;// 讀取ADC結(jié)果</p><p> ADC_Data = (ADC_Data>>6) & 0x3FF; // 提取AD轉(zhuǎn)換值</p><p> ADC_Data = ADC_Data * 3300; // 數(shù)值轉(zhuǎn)換</p><p&g
75、t; ADC_Data = ADC_Data / 1024;</p><p> sprintf(str, "%4dmV at VIN2", ADC_Data);</p><p> ISendStr(30, 21, 0x30, str); </p><p> if( ADC_Data>=2500) </p>
76、<p> { uint32 i;</p><p> for(i=0;i<10;i++)</p><p> { IO1SET = BEEPCON;</p><p> IO2DIR = 0x00020000; // BEEPCON = 1</p><p> DelayNS(15)
77、;</p><p> IO1CLR = BEEPCON; // BEEPCON = 0</p><p> IO2DIR = 0x00000000;</p><p> DelayNS(15);</p><p><b> }</b></p><p> IO2DIR = 0x000
78、20000;</p><p> DelayNS(150);</p><p><b> } </b></p><p><b> else</b></p><p> { IO1SET = BEEPCON; // BEEPCON = 0</p><p>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于lpc2131的數(shù)字電壓表
- 課程設(shè)計(jì)報(bào)告--數(shù)字電壓表
- 數(shù)字電壓表課程設(shè)計(jì)報(bào)告
- 數(shù)字電壓表課程設(shè)計(jì)--簡(jiǎn)易數(shù)字電壓表的設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表設(shè)計(jì)-課程設(shè)計(jì)
- 課程設(shè)計(jì)---數(shù)字電壓表設(shè)計(jì)
- 數(shù)字電壓表設(shè)計(jì)課程設(shè)計(jì)
- 數(shù)字電壓表設(shè)計(jì)-課程設(shè)計(jì)
- 簡(jiǎn)易數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì) (2)
- 數(shù)字電壓表課程設(shè)計(jì).doc
評(píng)論
0/150
提交評(píng)論