




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、目錄1.嵌入式系統(tǒng)在電流保護裝置中的應(yīng)用研究- 2 -2 設(shè)計要求- 2 -3設(shè)計作用與目的- 2 -4.所用設(shè)備及軟件- 2 -5系統(tǒng)設(shè)計方案- 2 -5.1系統(tǒng)總體設(shè)計- 2 -5.2 系統(tǒng)工作原理- 3 -6. 系統(tǒng)硬件設(shè)計- 3 -6.1 系統(tǒng)整體設(shè)計- 3 -6.2 各單元電路設(shè)計- 4 -6.2.1 STM32F103RBT6簡要介紹- 4 -整流采樣模塊- 5 -運放模塊- 6 -觸摸屏控制及TFT顯示模塊- 8 -6.2.5 報警模塊- 9 -6.2.6 繼電器模塊- 10 -7.系統(tǒng)軟件設(shè)計- 11 -8.仿真調(diào)試分析- 12 -9.嵌入式學(xué)習(xí)及設(shè)計心得- 14 -10.總
2、結(jié)- 16 -11.參考文獻- 18 - 嵌入式系統(tǒng)在電流保護裝置中的應(yīng)用研究摘 要在多數(shù)以電為驅(qū)動的裝置中,有時因為外界環(huán)境變動,或者操作者的失誤,容易出現(xiàn)過流的現(xiàn)象,從而造成設(shè)備損壞或者更壞的結(jié)果。所以,設(shè)備中是否具有過流保護尤為重要。本設(shè)計著重闡述了系統(tǒng)的總體結(jié)構(gòu)、工作原理和基于STM32F103RBT6微處理器芯片的嵌入式技術(shù),給出了系統(tǒng)硬件設(shè)計和軟件控制的設(shè)計方法成功實現(xiàn)了對設(shè)備中電流的實時監(jiān)測及保護。關(guān)鍵字:嵌入式技術(shù),STM32F103RBT6,過流保護,康銅電阻1.嵌入式系統(tǒng)在電流保護裝置中的應(yīng)用研究2 設(shè)計要求 本設(shè)計主要以STM32F103RBT6芯片為處理器,通過對康銅電
3、阻(采樣電阻)兩端的電壓經(jīng)運放放大后進行ADC轉(zhuǎn)換,然后送至處理器,通過處理器對輸入的電流值與用戶預(yù)設(shè)電流值進行比較,如過電流則報警和驅(qū)動接觸器斷開,已達到對設(shè)備的監(jiān)視和保護。3設(shè)計作用與目的本設(shè)計中的以嵌入式技術(shù)為系統(tǒng)的過流保護裝置中,主要作用是實時監(jiān)測設(shè)備電流,根據(jù)需要,通過觸摸屏輸入電流報警值和電流保護值,實現(xiàn)對設(shè)備的全自動保護。本設(shè)計中的運放對采樣信號進行100倍放大,可對電流到達4AA內(nèi)電流進行保護,報警電流和動作電流可按需要設(shè)置。系統(tǒng)可檢測直流和交流電流。4.所用設(shè)備及軟件本設(shè)計中主要設(shè)備為計算機,PCB電路板制作設(shè)備,軟件主要包括protel99,multisim,keil5系統(tǒng)
4、設(shè)計方案5.1系統(tǒng)總體設(shè)計 本設(shè)計通過對康銅電阻的電壓經(jīng)運放進行AD采樣后,送至STM32F103RBT6處理器,通過算法與觸摸輸入電流值進行比較,隨之進行相應(yīng)動作。如圖1為系統(tǒng)的總體設(shè)計框圖STM32F103RBT6康銅電阻采樣電壓運算放大觸摸屏報警液晶屏繼電器接觸器圖1. 系統(tǒng)總體設(shè)計框圖5.2 系統(tǒng)工作原理 如圖1. 運放模塊將康銅電阻的上的電壓放大,經(jīng)AD采樣送至MCU,與經(jīng)觸摸屏輸入的電流值進行比較,當(dāng)電流達到報警值時,MUC啟動報警系統(tǒng),當(dāng)電流值達到保護值時,MUC啟動繼電器,切斷電源,實現(xiàn)過流保護的功能。6. 系統(tǒng)硬件設(shè)計6.1 系統(tǒng)整體設(shè)計本設(shè)計中,主要利用到了STM32F10
5、3RBT6對采樣數(shù)據(jù)的處理,而采樣數(shù)據(jù)來自系統(tǒng)中所設(shè)的康銅電阻。保護動作是靠繼電器驅(qū)動接觸器切斷電源。 6.2 各單元電路設(shè)計 STM32F103RBT6簡要介紹 本單元主要是利用嵌入式技術(shù)來控制整個系統(tǒng),如圖3,為其最小系統(tǒng)圖, 圖3. STM32F103RBT6最小系統(tǒng)圖STM32F103RBT6是ST公司基于ARM最新Cortex-M3架構(gòu)內(nèi)核的32位處理器產(chǎn)品,內(nèi)置128KB的Flash,20k的RAM.最小系統(tǒng)中,采用STM32F103RBT6為控制器,工作頻率可達72MHZ, 16個外部模擬信號輸入通道,可達1us轉(zhuǎn)換時間,轉(zhuǎn)換范圍為0到3.6V;支持7個DMA通道,可操作多種通用
6、外設(shè),如定時器,ADC,USART等;內(nèi)置3個同步16位定時器,每個可有四個通道用于PWM波輸出,內(nèi)置2個12位ADC。每個ADC有7個輸入通道,可以實現(xiàn)單次或多次掃描轉(zhuǎn)換,自帶0電壓校準(zhǔn),模擬看門狗特性允許應(yīng)用程序檢測輸入電壓是否超出用戶定義的高/低閘值,ADC最短采樣時間為1us,足以勝任本系統(tǒng)。 整流采樣模塊本單元模塊主要功能是用來整流輸入電流,其核心器件為康銅電阻,下面對康銅電阻做簡單介紹??点~是物理學(xué)中的一個概念,指的是一種具有高電阻率的合金金屬。是含40%鎳,1.5%錳的銅合金。具有低的電阻率溫度系數(shù)和中等電阻率(電阻率為0.48·m)??稍谳^寬的溫度范圍內(nèi)使用。有良好的
7、加工性能和焊接性能。適宜在交流電路中使用,作精密電阻、滑動電阻、電阻應(yīng)變計等,也可用于熱電偶和熱電偶補償導(dǎo)線材料。約合40%Ni的銅鎳合金的特征就是此種合金有很小的溫度系數(shù)。這類合金中有一種叫康銅。根椐POCT49241,這種合金的成分如下:3941%Ni+Co;1.0一2.0%Mn,其余是銅和雜質(zhì)。雜質(zhì)的含量不應(yīng)超過1.0%,其中包括:0.5%Fe;0.1%Si;0.1%C;0.1%Zn;0.02%S;0.05%Mg和0.05%A1??点~的物理性質(zhì)如下:1)比重8.9;2)熔點12001260°;3)退火溫度800-820°;4)界限工作溫度350°;5)電阻系
8、數(shù)0.48歐毫米2/米;6)溫度系數(shù)0.000016.適宜在交直流電路中使用,作精密電阻、滑動電阻、電阻應(yīng)變計等,也可用于熱電偶和熱電偶補償導(dǎo)線材料。本設(shè)計中采用0.01的康銅電阻,后級的運放模塊就是對其上面的電壓進行放大。 如圖4.為本單元的原理圖圖4.整流采樣電路圖運放模塊 運放模塊主要采用LM358雙運放芯片,通過輸入前級康銅電阻上的電壓,經(jīng)運放模塊進行100倍放大的,為其后級AD采樣提供原始數(shù)據(jù)。下面對LM358做簡單介紹LM358內(nèi)部包括有兩個獨立的、高增益、內(nèi)部頻率補償?shù)碾p運算放大器,適合于電源電壓范圍很寬的單電源使用,也適用于雙電源工作模式,在推薦的工 作條件下,電源電流與
9、60;電源電壓無關(guān)。它的使用范圍包括傳感放大器、直流增益模組,音頻放大器、工業(yè)控制、DC增益部件和其他所有可用單電源供電的使用運算放大器的場合。 LM358特性(Features): 內(nèi)部頻率補償。 直流電壓增益高(約100dB) 。 單位增益頻帶寬(約1MHz) 。 電源電壓范圍寬:單電源(330V);雙電源(±1.5一±15V) 。 低功耗電流,適合于電池供電。 低輸入偏流。 低輸入失調(diào)電壓和失調(diào)電流。 共模輸入電壓范圍寬,包括接地。 差模輸入電壓范圍寬,等于電源電壓范圍
10、。 輸出電壓擺幅大(0至Vcc-1.5V) 。 LM358主要參數(shù)輸入偏置電流45 nA輸入失調(diào)電流50 nA輸入失調(diào)電壓2.9mV輸入共模電壓最大值VCC1.5 V共模抑制比80dB電源抑制比100dB 圖5為其引腳圖 圖5.LM358引腳圖圖6為運算放大模塊電路圖。圖6. 運算放大模塊電路圖觸摸屏控制及TFT顯示模塊該模塊主要功能是完成報警電流值和保護電流值的輸入,同時顯示實時電流值。本設(shè)計采用XPT2046芯片作為電阻屏的輸入檢測,該芯片是一款4導(dǎo)線制觸摸屏控制器,內(nèi)含12位分辨率125KHz轉(zhuǎn)換速率逐步逼近型A/D轉(zhuǎn)換器。XPT2046支持從1.5V到5.
11、25V的低電壓I/O接口。XPT2046能通過執(zhí)行兩次A/D轉(zhuǎn)換查出被按的屏幕位置, 除此之外,還可以測量加在觸摸屏上的壓力。內(nèi)部自帶2.5V參考電壓可以作為輔助輸入、溫度測量和電池監(jiān)測模式之用,0V到6V。XPT2046片內(nèi)集成有一個溫度傳感器。 在2.7V的典型工作狀態(tài)下,關(guān)閉參考電壓,功耗可小于0.75mW。工作溫度范圍為-40+85。如圖7圖7.XPT2046芯片原理圖模塊中TFT(Thin Film Transistor)是薄膜晶體管的縮寫。TFT式顯示屏是各類筆記本電腦和臺式機上的主流顯示設(shè)備,該類顯示屏上的每個液晶像素點都是由集成在像素點后面的薄膜晶體管來驅(qū)動
12、,因此TFT式顯示屏也是一類有源矩陣液晶顯示設(shè)備。是最好的LCD彩色顯示器之一,TFT式顯示器具有高響應(yīng)度、高亮度、高對比度等優(yōu)點,其顯示效果接近CRT式顯示器。 報警模塊本設(shè)計中報警模塊主要是靠蜂鳴器的報警聲及TFT顯示的變色來實現(xiàn)。蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電的電子產(chǎn)品中作發(fā)聲器件,本設(shè)計采用有源蜂鳴器。如圖8.為蜂鳴器電路圖8,蜂鳴器電路 繼電器模塊 本設(shè)計中,該模塊主要完成當(dāng)設(shè)備中電流達到所設(shè)保護電流時切斷電源的功能。因MUC不能直接驅(qū)動接觸器,所以在中間增加了繼電器驅(qū)動。如圖9,為.繼電器原理圖 圖9.繼電器原理圖7.系統(tǒng)軟件設(shè)計本設(shè)計主要通過對STM32F1
13、03RBT6芯片的程序控制,完成采樣,比較,顯示,報警,保護等功能,如圖10.為軟件設(shè)計的流程 圖10. 系統(tǒng)程序流程圖8.仿真調(diào)試分析 本設(shè)計主要先用multisim進行仿真,進行理論研究,根據(jù)設(shè)計目的,各項仿真數(shù)據(jù)都滿足要求如圖11,如仿真原理圖 圖11.運放模塊仿真原理圖如圖12 ,當(dāng)前設(shè)置輸入信號與輸出信號幅值比為1:50時,通過仿真圖像,輸出端幅度剛好為輸出端幅度的一半,滿足放大100倍的要求。圖12. 數(shù)據(jù)仿真圖9.嵌入式學(xué)習(xí)及設(shè)計心得 首先,要明確為什么要學(xué)習(xí)以MCU為核心的嵌入式應(yīng)用技術(shù)。針對讀者不同的學(xué)習(xí)目的,學(xué)習(xí)嵌入式系統(tǒng)的方法和側(cè)重點略有不同。MCU具有廣泛的應(yīng)用范圍外,
14、對于計算機、電子類、機電類等專業(yè)的工科學(xué)生來說,即使暫時沒有從事MCU的應(yīng)用的開發(fā),學(xué)習(xí)MCU也有很重要的意義。因為,MCU作為微型計算機的一個種類,麻雀雖小,五臟俱全,學(xué)習(xí)MCU可以更加理解微機原理,更加清楚計算機的脈絡(luò)。同時,目前嵌入式應(yīng)用系統(tǒng)的軟件開發(fā)方法與一般的軟件開發(fā)方法已經(jīng)融合,開發(fā)平臺也極為相似。對于在校學(xué)生,學(xué)習(xí)嵌入式應(yīng)用技術(shù),主要以書本知識為主,理解嵌入式系統(tǒng)的原理和基本編程方式,為將來的學(xué)習(xí)和發(fā)展打好基礎(chǔ)。對于將要投身嵌入式行業(yè)的技術(shù)人員而言,學(xué)習(xí)嵌入式系統(tǒng)的方法和側(cè)重點不同于在校的學(xué)生。不但學(xué)習(xí)過程中所需要的背景知識(包括數(shù)字電路、匯編語言基礎(chǔ)、軟件工程,甚至機械自動化)
15、不可或缺,而且更要養(yǎng)成良好的做事規(guī)范和方法。學(xué)習(xí)的側(cè)重點主要放在較復(fù)雜的嵌入式應(yīng)用系統(tǒng)上,對于嵌入式實時操作系統(tǒng)(包括µC/OS-、SmallRTOS、µCLinux等)在應(yīng)用的基礎(chǔ)上,有一定深度的理解。但是,對于只分析實時操作系統(tǒng)或進行短期培訓(xùn)性的驅(qū)動程序開發(fā),不扎實進行嵌入式系統(tǒng)基礎(chǔ)知識的學(xué)習(xí)與軟件及硬件實踐,是不可能學(xué)好嵌入式系統(tǒng)的。其次,學(xué)習(xí)以MCU為核心的嵌入式應(yīng)用技術(shù),要選擇入門的機型。MCU種類繁多,應(yīng)用于各行各業(yè),在應(yīng)用中需要設(shè)計者對各種MCU都有所了解,以便確定最佳的性能價格比。但是不可能也沒有必要同時學(xué)習(xí)各種型號MCU的軟硬件知識,通常的方法是學(xué)習(xí)一種典
16、型的MCU系列,達到實用程度,在應(yīng)用中首先選擇使用該系列。如果確實要用其它系列MCU時,只需將兩種系列的不同點進行分析、對比,即可在較短時間內(nèi)達到可以應(yīng)用的程度。對于初學(xué)者,選擇入門的MCU系列,一定要選擇在國際上比較流行,系列比較齊全,在若干年內(nèi)不會被淘汰,且抗干擾性強、性能價格比較高的產(chǎn)品。選擇意法半導(dǎo)體公司的 Cortex-M3系列內(nèi)核的MCU具有這些特點。第三,MCU指令系統(tǒng)不大,特別是關(guān)鍵字不多,學(xué)習(xí)時,在了解基本性能的前提下,可先把關(guān)鍵字及其含義記住,這樣,在以后的學(xué)習(xí)中可起到事半功倍的效果。這一點需強調(diào)一下,花上幾個單元時間記住主要關(guān)鍵字,對于入門學(xué)習(xí)很重要,沒有必要的
17、記憶,任何知識也無法學(xué)習(xí)。本書采用匯編語言與C語言并行學(xué)習(xí)的方法,可以通過實例對比學(xué)習(xí)。所提供的例子均通過測試,可以作為對比學(xué)習(xí)用例。也可以應(yīng)用到實際開發(fā)系統(tǒng)中。第四,學(xué)習(xí)以MCU為核心的嵌入式應(yīng)用技術(shù),一定要勤于實踐。必須通過實踐,理解MCU原理,掌握基本的編程規(guī)范與方法,才能學(xué)會設(shè)計應(yīng)用系統(tǒng)。因此,一定要創(chuàng)造條件進行實踐,這是學(xué)好MCU極為關(guān)鍵的一環(huán)。特別是注意軟件與硬件相結(jié)合的實踐。MCU程序要固化,進入硬件才能執(zhí)行,而且通過MCU的輸入輸出以及執(zhí)行機構(gòu)反映出來,這就涉及到硬件系統(tǒng)的構(gòu)成,因此學(xué)習(xí)MCU與單純開發(fā)計算機軟件不同,必須了解MCU系統(tǒng)的構(gòu)成。同時,通過軟件“打通”硬件,觀察硬
18、件響應(yīng)現(xiàn)象,體會軟件功能。一般8位機的硬件評估系統(tǒng)只有幾百元,特別是好的硬件評估系統(tǒng)都提供自我實踐硬件接口,購買硬件評估系統(tǒng)進行學(xué)習(xí)與實踐是一種好方法。第五,學(xué)習(xí)以MCU為核心的嵌入式應(yīng)用技術(shù),必須與輸入輸出接口的學(xué)習(xí)連在一起。MCU系統(tǒng)離不開各種輸入輸出接口,學(xué)習(xí)MCU,就必須學(xué)習(xí)各種接口的原理,通過接口的輸入輸出體現(xiàn)MCU程序的功能。第六,MCU的發(fā)展已經(jīng)逐步走向成熟期,各種新技術(shù)的使用,進一步提高了MCU的性能價格比。技術(shù)進步不可避免的帶動了學(xué)習(xí)方法的更新。學(xué)習(xí)以MCU為核心的嵌入式應(yīng)用技術(shù),也要與時俱進,不斷改造自己的學(xué)習(xí)方式,保持與嵌入式應(yīng)用技術(shù)發(fā)展的同步。例如:以前的嵌入式系統(tǒng)代碼
19、量小,對于硬件的依賴性大,可移植性也就相對較差,規(guī)范的重要性基本無從體現(xiàn)。但隨著電子技術(shù)的發(fā)展,MCU的集成度越來越高。前幾年還處于實驗階段的Flash存儲器技術(shù),目前已廣泛使用。MCU性能的提高使得開發(fā)人員不得不更重視規(guī)范的價值和作用。如今的嵌入式系統(tǒng)開發(fā),不按照規(guī)范進行,簡直寸步難行。第七,由于嵌入式系統(tǒng)市場巨大,潛力無限,全球的生產(chǎn)商都非??春眠@一領(lǐng)域,紛紛投入了大量的人力物力;而圍繞嵌入式系統(tǒng)的研究、設(shè)計和開發(fā)正成為計算機技術(shù)發(fā)展最活躍的方向之一。近年來,國內(nèi)外關(guān)于嵌入式系統(tǒng)的書籍如雨后春筍般涌現(xiàn)。選擇好的書籍已成為大多數(shù)初學(xué)者的當(dāng)務(wù)之急。首先,讀者不要盲目跟風(fēng),要選擇適合自己真正需要
20、的書籍。其次,讀者可以通過閱讀一些書中內(nèi)容判斷該書是否值得購買。因為好的書籍對于問題的闡述一定是清楚明了的;對問題的解決一定是細致透徹的。對于當(dāng)前非常火熱的各種嵌入式培訓(xùn)形式,讀者不要盲目跟風(fēng),要充分和慎重的考慮自己學(xué)習(xí)嵌入式的目標(biāo)和計劃。只有從底層抓起,一點一滴打好基礎(chǔ),才能學(xué)好嵌入式技術(shù)。10.總 結(jié)在嵌入式學(xué)習(xí)及這次設(shè)計的過程中,的確收獲了很多,在設(shè)計之初,就在課本和互聯(lián)網(wǎng)上查閱和學(xué)習(xí)了相關(guān)知識,同時這次設(shè)計也是一次將理論知識轉(zhuǎn)化為實際應(yīng)用的經(jīng)歷,再一次加深了對嵌入式技術(shù)的理解,并且提高了對該技術(shù)的興趣。同時在設(shè)計過程中,發(fā)現(xiàn)有些理論知識用到實際設(shè)計中會有些問題,如在設(shè)計100倍運放的過
21、程中,在仿真軟件上增大電源電壓,放大倍數(shù)不受影響,但實際上在板子做出來后,增大電源電壓,放大倍數(shù)會受到影響,這就是在設(shè)計過程中遇到的問題之一。從最初構(gòu)想設(shè)計思路,到畫原理圖,制板子,焊接器件,調(diào)試,這是一個痛苦但快樂的過程,因為每解決一個問題,都會有一種成就感。最后,感謝XXX老師的認(rèn)真指導(dǎo)以及XX老師,XX老師和實驗室同學(xué)的幫助,我相信隨著知識的積累和經(jīng)驗的豐富,在不久的將來一定能拿出更好的設(shè)計。11.參考文獻 1JEAN J.LABROSSE著.邵貝貝譯. uC/OS-源碼公開的實時嵌入式操作系統(tǒng)M.北京:中國電力出版社.20012夏靖波.嵌入式系統(tǒng)原理與開發(fā)M.西安西安電子科技大學(xué)出版社
22、20063田澤.嵌入式系統(tǒng)開發(fā)與應(yīng)用M北京北京航空航天大學(xué)出版社20054嵌入式系統(tǒng)設(shè)計與實例開發(fā)試驗指導(dǎo)M北京博創(chuàng)科技有限公司2005.5 模擬電子技術(shù) 康華光 高等教育出版社6STM32庫開發(fā)實戰(zhàn)指南 劉良火 楊森 機械工業(yè)出版社附錄:I:實物圖片II:關(guān)鍵程序代碼關(guān)鍵代碼1:#include "stm32f10x.h"#include <stdio.h> /數(shù)學(xué)公式#include "delay.h" /延時函數(shù)#include "LCD_HX8352A.h" /TFT驅(qū)動#include "sys.h&q
23、uot;#include "LED.h"/LED驅(qū)動#include "KEY.h"/按鍵驅(qū)動#include "touch.h" /觸屏驅(qū)動#include "SPI.h"#include "ADC.h"#include "boot.h"/extern _IO uint16_t ADC_ConvertedValue; /以表示變量或者函數(shù)的定義在別的文件中,提示編譯器遇到此變量和函數(shù)時在其他模塊中尋找其定義/*函數(shù): void RCC_Configuration(void)
24、功能: 復(fù)位和時鐘控制 配置參數(shù): 無返回: 無*/void RCC_Configuration(void) ErrorStatus HSEStartUpStatus; /定義外部高速晶體啟動狀態(tài)枚舉變量 RCC_DeInit(); /復(fù)位RCC外部設(shè)備寄存器到默認(rèn)值 RCC_HSEConfig(RCC_HSE_ON); /打開外部高速晶振 HSEStartUpStatus = RCC_WaitForHSEStartUp(); /等待外部高速時鐘準(zhǔn)備好 if(HSEStartUpStatus = SUCCESS) /外部高速時鐘已經(jīng)準(zhǔn)別好 FLASH_PrefetchBufferCmd(FLA
25、SH_PrefetchBuffer_Enable); /開啟FLASH預(yù)讀緩沖功能,加速FLASH的讀取。所有程序中必須的用法.位置:RCC初始化子函數(shù)里面,時鐘起振之后 FLASH_SetLatency(FLASH_Latency_2); /flash操作的延時 RCC_HCLKConfig(RCC_SYSCLK_Div1); /配置AHB(HCLK)時鐘等于=SYSCLK RCC_PCLK2Config(RCC_HCLK_Div1); /配置APB2(PCLK2)鐘=AHB時鐘 RCC_PCLK1Config(RCC_HCLK_Div2); /配置APB1(PCLK1)鐘=AHB1/2時鐘
26、 RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); /配置PLL時鐘 = 外部高速晶體時鐘 * 9 = 72MHz RCC_PLLCmd(ENABLE); /使能PLL時鐘 while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) = RESET); /等待PLL時鐘就緒 RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); /配置系統(tǒng)時鐘 = PLL時鐘 while(RCC_GetSYSCLKSource() != 0x08); /檢查PLL時鐘是否作為系統(tǒng)時鐘 /*中斷配置函數(shù)*
27、/ void EXTI_Configuration(void) EXTI_InitTypeDef EXTI_InitStructure; /定義枚舉變量 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); /使能功能復(fù)用IO時鐘 EXTI_ClearITPendingBit(EXTI_Line7 /*| EXTI_Line0*/); /清除EXTI線路掛起位 EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; /設(shè)置 EXTI線路為中斷請求 EXTI_InitStructure.EXTI_
28、Trigger = EXTI_Trigger_Falling; /設(shè)置輸入線路下降沿為中斷請求 EXTI_InitStructure.EXTI_Line = EXTI_Line7/* | EXTI_Line0*/;/外部中斷線 7 EXTI_InitStructure.EXTI_LineCmd = ENABLE; /使能中斷 EXTI_Init(&EXTI_InitStructure); GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource7 /*| EXTI_Line0*/); /選擇GPIO B7 B0作為中斷引腳/*中斷
29、優(yōu)先級配置*/void NVIC_Configuration(void)NVIC_InitTypeDef NVIC_InitStructure; /定義枚舉變量NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); /搶占式優(yōu)先級別設(shè)置為無搶占優(yōu)先級NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn; /指定中斷源NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; /指定響應(yīng)優(yōu)先級別1NVIC_InitStructure.NVIC_IRQChannelCmd
30、 = ENABLE; /使能外部中斷通道NVIC_Init(&NVIC_InitStructure);/*中斷入口函數(shù)*/void EXTI9_5_IRQHandler(void) if(EXTI_GetITStatus(EXTI_Line7) != RESET) /檢查指定的 EXTI線路觸發(fā)請求發(fā)生與否 /添加中斷處理程序 LCD_Clear(0xfff0 );/刷屏LCD_ShowString(0,0,0xfff0,0xf800,"Group Member:",Font1624);/顯示字符串函數(shù) LCD_ShowString(0,LCD_Y-Fone_Y,0
31、xfff0,0xf800,"Liu jia",Font1624);TP_Read_XY(&tp_dev.x,&tp_dev.y);/讀一次值,初始化/while (TP_PEN);/等待有觸摸操作EXTI_ClearFlag(EXTI_Line7);/清除中斷標(biāo)志(必須)EXTI_ClearITPendingBit(EXTI_Line7);/清除中斷等待/*函數(shù): int main(void)功能: main主函數(shù)參數(shù): 無返回: 無*/int main(void)/u16 x,y,x1,y1;RCC_Configuration(); /系統(tǒng)初始化EXTI_
32、Configuration();/ 中斷配置函數(shù)NVIC_Configuration();/中斷優(yōu)先級配置delay_init(72); /延時函數(shù)初始化SPII_Init(); /SPI初始化LED_Init(); /LED初始化KEY_Init(); /按鍵初始化LCD_Init(); /LCD初始化Adc_Init();/ADC 初始化TP_Init(); /觸屏初始化LCD_Clear(YELLOW); / 刷屏函數(shù) LCD_Clear(填充色)LCD_ShowString(0,0,YELLOW,RED ,"Group Member:",Font1624);/顯示字
33、符串函數(shù) LCD_ShowString(0,LCD_Y-Fone_Y*3-1,YELLOW,BLACK ,"Name:",Font1624);LCD_ShowString(Fone_X*5,LCD_Y-Fone_Y*3-1,YELLOW,RED ,"Liu jia",Font1624);LCD_ShowString(0,LCD_Y-Fone_Y*2,YELLOW,BLACK ,"NO:",Font1624);LCD_ShowNum(Fone_X*3,LCD_Y-Fone_Y*2,YELLOW,RED,8,11150129,Font16
34、24);LCD_area_Clear(0,LCD_Y-Fone_Y*3-3,LCD_X,LCD_Y-Fone_Y*3-2,GRAY);LCD_area_Clear(0,LCD_Y-Fone_Y+3,LCD_X,LCD_Y-Fone_Y+4,GRAY);Boot_ShowString(0,Fone_Y+1+33*1,YELLOW,RED,"ABCDEF");/ 當(dāng)前電流值:Boot_ShowString(0,Fone_Y+1+33*2,YELLOW,RED,"GHCDEF");/ 報警電流值:Boot_ShowString(0,Fone_Y+1+33*3,
35、YELLOW,RED,"IJCDEF"); / 動作電流值:Boot_ShowString(LCD_X-35,Fone_Y+1+33*1,YELLOW,RED,"N");/ ABoot_ShowString(LCD_X-35,Fone_Y+1+33*2,YELLOW,RED,"N");/ ABoot_ShowString(LCD_X-35,Fone_Y+1+33*3,YELLOW,RED,"N"); / ABoot_ShowString(16,Fone_Y+1+33*5,YELLOW,RED,"ABKL&
36、quot;); / 當(dāng)前模式Boot_ShowString(40,Fone_Y+1+33*6,YELLOW,RED,"PO"); / DCBoot_ShowString(LCD_X-40-64,Fone_Y+1+33*6,RED,YELLOW,"NO"); / ACLCD_area_Clear(LCD_X-40-64,Fone_Y+1+33*6,LCD_X-40-64+15,Fone_Y+1+33*6+33,YELLOW );LCD_ShowNum(170,Fone_Y+9+33*1,YELLOW,BLACK,3,1,Font1624);LCD_Show
37、Num(170,Fone_Y+9+33*2,YELLOW,BLACK,3,350,Font1624);LCD_ShowNum(170,Fone_Y+9+33*3,YELLOW,BLACK,3,400,Font1624);LCD_area_Clear(170+Fone_X-3,Fone_Y*2+4+33*1,170+Fone_X-2,Fone_Y*2+5+33*1,BLACK );LCD_area_Clear(170+Fone_X-3,Fone_Y*2+4+33*2,170+Fone_X-2,Fone_Y*2+5+33*2,BLACK );LCD_area_Clear(170+Fone_X-3,
38、Fone_Y*2+4+33*3,170+Fone_X-2,Fone_Y*2+5+33*3,BLACK );/*以下為源代碼語句*/ while(1) /修改主函數(shù),應(yīng)加入之前是否按下判斷*待完成ADC_SoftwareStartConvCmd(ADC1, ENABLE);/使能指定的ADC1的軟件轉(zhuǎn)換啟動功能 while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC );/等待轉(zhuǎn)換結(jié)束x= ADC_GetConversionValue(ADC1);/返回最近一次ADC1規(guī)則組的轉(zhuǎn)換結(jié)果x=x/18;/LCD_ShowNum(0,Fone_Y+1,0xfff0,0x
39、f800,3,x,Font1624);ADC_SoftwareStartConvCmd(ADC2, ENABLE);/使能指定的ADC1的軟件轉(zhuǎn)換啟動功能while(!ADC_GetFlagStatus(ADC2, ADC_FLAG_EOC );/等待轉(zhuǎn)換結(jié)束y= ADC_GetConversionValue(ADC2);/返回最近一次ADC1規(guī)則組的轉(zhuǎn)換結(jié)果y=y/18;/LCD_ShowNum(0,(Fone_Y+1)*2,0xfff0,0xf800,3,y,Font1624); LCD_area_Clear(x1,y1+30,x1+5,y1+35,YELLOW);LCD_area_Cle
40、ar(x,y+30,x+5,y+35,RED );x1=x;y1=y;delay_ms(20);關(guān)鍵代碼2:#include "adc.h"#include "delay.h"#include "stm32f10x.h":/#define ADC1_DR_Address (u32)0x40012400+0x4c)/ADC 地址/_IO uint16_t ADC_ConvertedValue;/ 告訴編譯器不要去優(yōu)化這個變量,要用時回到相應(yīng)的內(nèi)存中去找 /初始化ADC void Adc_Init(void) ADC_InitTypeDe
41、f ADC_InitStructure; GPIO_InitTypeDef GPIO_InitStructure;/PC0 PC2 作為模擬通道輸入引腳 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE ); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0,GPIO_Pin_2;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;/模擬輸入引腳GPIO_Init(GPIOC, &GPIO_InitStructure);RCC_ADCCLKConfig(RCC_P
42、CLK2_Div6); /設(shè)置ADC分頻因子6 72M/6=12,ADC最大時間不能超過14M/ADC1配置RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 , ENABLE ); /使能ADC1通道時鐘ADC_DeInit(ADC1); /復(fù)位ADC1,將外設(shè) ADC1 的全部寄存器重設(shè)為缺省值A(chǔ)DC_InitStructure.ADC_Mode = ADC_Mode_Independent;/ADC工作模式:ADC工作在獨立模式ADC_InitStructure.ADC_ScanConvMode = DISABLE;/模數(shù)轉(zhuǎn)換工作在單通道模式ADC_In
43、itStructure.ADC_ContinuousConvMode =DISABLE ;/模數(shù)轉(zhuǎn)換工作在單次轉(zhuǎn)換模式ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;/轉(zhuǎn)換由軟件而不是外部觸發(fā)啟動ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;/ADC數(shù)據(jù)右對齊ADC_InitStructure.ADC_NbrOfChannel = 1;/要轉(zhuǎn)換的通道數(shù)目1ADC_Init(ADC1, &ADC_InitStructure);/根據(jù)ADC_I
44、nitStruct中指定的參數(shù)初始化外設(shè)ADCx的寄存器 /設(shè)置指定 ADC 的規(guī)則組通道,設(shè)置它們的轉(zhuǎn)化順序和采樣時間ADC_RegularChannelConfig(ADC1, ADC_Channel_12 , 1, ADC_SampleTime_239Cycles5 );/ADC1,ADC通道,采樣時間為239.5周期PC2ADC_Cmd(ADC1, ENABLE);/使能指定的ADCADC_ResetCalibration(ADC1);/ 重置指定的 ADC 的校準(zhǔn)寄存器 while(ADC_GetResetCalibrationStatus(ADC1);/等待復(fù)位校準(zhǔn)結(jié)束ADC_StartCalibration(ADC1); /開啟AD校準(zhǔn)while(ADC_GetCalibrationStatus(ADC1); /等待校準(zhǔn)結(jié)束 ADC_SoftwareStartConvCmd(ADC1, ENABLE);/使能
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 六一活動大餐活動方案
- 六一活動帳篷活動方案
- 六一活動投球活動方案
- 六一活動游泳池活動方案
- 六一活動趣味性活動方案
- 六一獨唱比賽活動方案
- 六一紋眉活動方案
- 六一節(jié)慰問活動方案
- 六一營銷活動方案
- 六一采訪活動方案
- 液晶彈性體在人工肌肉領(lǐng)域的新進展
- 中國海洋生態(tài)環(huán)境監(jiān)測市場調(diào)查研究及行業(yè)投資潛力預(yù)測報告
- 2025年上半年甘肅酒泉市肅州區(qū)選調(diào)事業(yè)單位工作人員12人重點基礎(chǔ)提升(共500題)附帶答案詳解
- 《新聞傳播學(xué)研究方法》大一筆記(13章全)
- GB 45184-2024眼視光產(chǎn)品元件安全技術(shù)規(guī)范
- 中國磁阻傳感器行業(yè)市場前瞻與投資戰(zhàn)略規(guī)劃分析報告
- 藝術(shù)團體演員聘用合同模板
- 光伏知識及產(chǎn)品培訓(xùn)課件
- 自來水管線更新工程 投標(biāo)方案(技術(shù)方案)
- 2025年中國建筑西南勘察設(shè)計研究院有限公司招聘筆試題庫含答案解析
- 2025年兗礦集團招聘筆試參考題庫含答案解析
評論
0/150
提交評論