基于單片機智能溫控流水燈_第1頁
基于單片機智能溫控流水燈_第2頁
基于單片機智能溫控流水燈_第3頁
基于單片機智能溫控流水燈_第4頁
基于單片機智能溫控流水燈_第5頁
已閱讀5頁,還剩43頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

摘要STM32是和8位單片機不同的,它只是可以做到使寄存器進行編程,而且使用官方提供的庫文件進行編程,這樣子的編程就比較容易移植,同時我們寫代碼的時候就也比較方便了,它包括一系列32位產(chǎn)品有的功能,比如說:集高性能、實時功能、數(shù)字信號處理、低功耗與低電壓操作等特性。STM32還保持了集成度高和易于開發(fā)的特性。因為STM32單片機制造價格也比較便宜所以本設(shè)計選擇了STM32單片機來實現(xiàn)溫控流水燈的設(shè)計。這次設(shè)計的單片機溫控流水燈系統(tǒng)主要部分就是STM32單片機和LED流水燈以及溫度濕度顯示器。通過對STM32單片機的控制操作,讓它可以檢測到溫度差異的信號,來決定LED流水燈是否閃亮。通過溫濕度顯示器我們可以了解到單片機所接受的溫度來判斷系統(tǒng)是否對應(yīng)成功,整個設(shè)計的電路具有易于操作,體積小,設(shè)計簡單,功耗小特點。最終實現(xiàn)利用STM32單片機實現(xiàn)基于單片機的溫控流水燈,我們會通過采集溫度傳感器值,根據(jù)溫度的大小,控制流水燈的熄滅閃亮。于是我設(shè)計了三種模式分別是:當溫度高于35度時,單片機上圍繞成心形的流水燈一閃一滅;當溫度低于25度時,圍繞成矩形流水燈一閃一滅;當溫度在約25-35度之間時,排列的跑馬燈流水燈循環(huán)點亮。我希望我們可以利用溫控流水燈系統(tǒng)將我們的城市裝飾的更加的漂亮和浪漫,家里可以根據(jù)不同的溫度來亮起適合的燈光給你一種舒適的感覺,也覺得特別的好奇以前也沒有做過這方面的東西,所以對我來說這個設(shè)計還是特別有意義的。關(guān)鍵詞:STM32單片機;心形流水燈;矩形流水燈;跑馬燈流水燈AbstractSTM32isdifferentfrom8-bitsinglechipmicrocomputer.Itcanonlymakeregisterprogramanduseofficiallibraryfiletoprogram,sothatsubprogrammingiseasiertotransplant.Atthesametime,whenwewritecode,itismoreconvenient.Itincludesaseriesoffunctionsof32-bitproducts,suchas:sethighperformance,real-timefunction,digitalsignalprocessing,lowpowerconsumptionAndlowvoltageoperation.STM32alsomaintainshighintegrationandeasytodevelopfeatures.BecauseSTM32single-chipischeapertomanufacture,STM32single-chipischosentorealizethedesignoftemperaturecontrolledrunningwaterlampThemainpartofthesinglechipmicrocomputertemperaturecontrolwaterlampsystemisSTM32singlechipmicrocomputer,LEDwaterlampandtemperatureandhumiditydisplay.ThroughthecontroloperationofSTM32single-chipmicrocomputer,itcandetectthesignaloftemperaturedifferencetodeterminewhethertheLEDrunningwaterlampisflashing.Throughthetemperatureandhumiditydisplay,wecanknowthetemperatureacceptedbythesingle-chipmicrocomputertojudgewhetherthesystemissuccessfulornot.Thewholecircuithasthecharacteristicsofeasyoperation,smallsize,simpledesignandsmallpowerconsumption.Finally,weuseSTM32MCUtorealizethetemperaturecontrolwaterlampbasedonSCM.Wewillcontrolthewaterlamptogooutandflashaccordingtothetemperaturebycollectingthetemperaturesensorvalue.SoIdesignedthreemodesrespectively:whenthetemperatureishigherthan35degrees,therunningwaterlampintheshapeofaheartwillflashoff;whenthetemperatureislowerthan25degrees,therunningwaterlampintheshapeofarectanglewillflashoff;whenthetemperatureisbetween25-35degrees,therunningwaterlampinthearrangementwillturnon.Ihopethatwecanusethetemperaturecontrolledrunningwaterlampsystemtodecorateourcitymorebeautifullyandromantically.Athome,youcanlightupsuitablelightsaccordingtodifferenttemperaturestogiveyouacomfortablefeeling.IalsofeelthatIamparticularlycuriousandhaven'tdoneanythinginthisfieldbefore,sothisdesignisofspecialsignificancetome..Keywords:STM32singlechipmicrocomputer;Heart-shapedwaterlamp;Rectangularrunningwaterlamp;Horseracinglantern目錄1前言 11.1本設(shè)計的目的、意義及應(yīng)達到的技術(shù)要求 21.1.2研究的目的 21.1.3研究的內(nèi)容 21.1.4目的意義以及技術(shù)要求 22設(shè)計原理以及方案的選擇 32.1單片機工作的前提和設(shè)計原理 32.2單片機的基本原理 33單片機的選擇及其介紹 43.1STM32單片機的簡單介紹 43.1.1關(guān)于STM32概覽 43.1.2關(guān)于SYM32的GPIO介紹 54電路的硬件設(shè)計和分析 74.1LED燈的設(shè)計選擇 74.2選取的是STM32最小系統(tǒng)的硬件設(shè)計 94.3LED燈的控制 94.4溫度顯示設(shè)計 105電路的硬件設(shè)計和分析 125.1Keil軟件的使用和仿真圖,電路軟件的設(shè)計 12參考文獻 20致謝 21附錄 22前言在現(xiàn)在進入21世紀這個科技飛速發(fā)展的時代,將會出現(xiàn)很多智能自動化的東西,我所選擇的就是關(guān)于智能溫控這一方面,因為我覺得溫度是和我們息息相關(guān)的東西,我們無時不刻都在感受著溫度的存在,所以我覺得智能溫控系統(tǒng)是恨值得我們?nèi)パ芯康?,并且在這個高科技世紀,我們也將越來越需要更多大的智能電子設(shè)備,這個溫控系統(tǒng)有很好的前景,市場需求也會很大,畢竟和我們的日常生活相關(guān),因為單片機智能溫控操作比較簡單,而且穩(wěn)定性能也比較好,價格也相對的比較便宜,所以我覺得一個可以通過單片機按照我們所需要的溫度范圍實現(xiàn)顯示并讓它能夠智能控制其運轉(zhuǎn)的系統(tǒng)具有很大的研究意義。當今燈光照明時代已經(jīng)發(fā)展到了LED燈的時代。相信不用多長時間,LED燈將會取代所有的燈光照明,成為最大,最流行的照明工具。發(fā)光二極管的由來是因為在用磷砷化鎵,磷化鎵和碳化硅所組成的物質(zhì)上加上正向電壓的時候這個電子與空穴就會復(fù)合,它就會自動的發(fā)射出光來。在電路板上我們所設(shè)計圍繞成心形和矩形還有一字排開的跑馬燈用的都是LED燈。發(fā)光二極管中的紅色光由其中的磷砷化鎵二極管發(fā)出的,我們用的也是紅色的發(fā)光二極管。為什么選用LED燈是因為它具有發(fā)光效率髙,能耗少,安全可靠性強,利于環(huán)保,制作也簡單便宜的特點。在當今社會LED的應(yīng)用主要用于建筑外觀照明,景觀照明,室內(nèi)照明,娛樂場所及舞臺照明,屏幕顯示,汽車照明等領(lǐng)域我希望它能夠在更多的領(lǐng)域上起到作用,小小的東西可以有大的作用,讓我們的城市變得更加的漂亮,可以的話也希望能夠有更多的用處。本設(shè)計最終將會實現(xiàn)利用STM32單片機實現(xiàn)基于單片機的溫控流水燈,通過采集溫度傳感器值,通過顯示屏讓溫度顯示出來根據(jù)溫度值,控制流水燈輸出模式。當溫度高于35度時,心形環(huán)繞的流水燈一閃一滅;當溫度低于25度時,矩形環(huán)繞的流水燈一閃一滅;當溫度在25-35度之間時,跑馬燈流水燈循環(huán)點亮,進而表現(xiàn)出溫控智能系統(tǒng)。1.1本設(shè)計的目的、意義及應(yīng)達到的技術(shù)要求1.1.1研究的目標(1)溫度的顯示。(2)溫度的范圍。(3)單片機的焊接。(4)流水燈的閃亮。(5)實物的提交。1.1.2研究內(nèi)容(1)設(shè)計一個單片機智能溫控流水燈閃亮。1.1.3需要解決的問題(1)選擇LED燈的時候,我們應(yīng)該選用幾個燈,選擇什么樣功率的LED燈才能讓單片機更穩(wěn)定安全不會被燒壞,應(yīng)該以什么樣的形式才能讓人更能簡單的理解。(2)關(guān)于電源驅(qū)動應(yīng)該怎么安排,對于整個電路才是安全合適的。(3)怎么去編程序才能更好的讓我們的智能溫控流水燈更好的實現(xiàn)。(4)怎么讓溫度更快的上升。(5)該選擇什么樣的溫度范圍才能更體現(xiàn)智能溫控的效果。1.1.4目的意義以及技術(shù)要求目的是通過以單片機為核心實現(xiàn)智能溫控流水燈的熄滅點亮的系統(tǒng)。通過單片機的控制我們能讓城市變的更加的漂亮比如說流水燈在舞臺、廣告牌、路燈、建筑上面的作用,可以有很出色的效果。在技術(shù)要求上僅僅是單片機的知識是不夠的還需要硬件結(jié)構(gòu)和具體的應(yīng)用對象的特點上結(jié)合來完善系統(tǒng)。對源代碼還有仿真軟件的運用也是需要的。1.單片機最小系統(tǒng):通過對單片機最小系統(tǒng)的研究,掌握單片機各引腳功能,理解單片機工作過程及原理,以及與外部擴展器件的連接,能夠自己運用單片機來解決實際問題。2.單片機C語言:C語言作為一種非常方便的語言而得到廣泛的支持,很多硬件開發(fā)都用C語言編程,如各種單片機、DSP、ARM等。3.溫控流水燈系統(tǒng)是以STM32單片機核心的單片機組成,編寫程序控制流水燈,并能實現(xiàn)了心形流水燈、矩形流水燈、跑馬流水燈依次次點亮,熄滅的“流水”效果。2設(shè)計原理以及方案的選擇這次設(shè)計任務(wù)的要求是制作單片機智能用溫度控制流水燈閃亮。在這次設(shè)計中我選擇的方案是:使用STM32單片機作為這次設(shè)計的主控制電路然后編寫實現(xiàn)這次目的對應(yīng)的程序讓它能夠?qū)崿F(xiàn)智能溫控流水燈。使用KeilC51對單片機進行模擬實現(xiàn)穩(wěn)定控制LED的閃亮。所以這次程序設(shè)計中,我才用先寫出代碼然后用KeilC51將代碼放入,來檢驗設(shè)計是否能夠成功,用代碼模擬溫度實現(xiàn)對心形,矩形,一字型流水燈的閃亮控制,這樣我就可以選擇合適想要的溫度來實現(xiàn)設(shè)計的成功,并且能體現(xiàn)出它的意義。2.1單片機工作的前提和設(shè)計原理其實單片機就相當于一個微型的計算機,它比電腦就單單少了一個I/O設(shè)備。單片機想要正常工作必須滿足三大原理1單片機供電電源正常,2單片機復(fù)位管不能出現(xiàn)復(fù)位的信號,3單片機的晶振有沒有起振。要有電源肯定是首要的條件,所以我在電路板上設(shè)計了一個能夠通電的電源裝置,只用接上接頭插上電源我們的單片機就能正常的運行了。同時單片機在使用的時候我們都會先檢查我我們的芯片和板子有沒有得到正確的電源。在使用之前除了電源需要檢查以外,我們還需要測量單片機的復(fù)位管腳有沒有出現(xiàn)復(fù)位信號,如果一直在復(fù)位狀態(tài),那么我們的單片機肯定是不能正常運行的。為了成功引起晶振,我們也進行了晶振頻率的選擇還有電容的選擇。2.2單片機的基本原理單片機通常都是有控制器、儲存器、輸入輸出設(shè)備以及控制器組成的。說的簡單一點,單片機就是單純的來實現(xiàn)我們賦予它指令的工作方式,它會自動完成我們給它下達的指令,也就是它運行程序的過程,它會運行我們用程序代碼寫下的各種作用的命令,每一條指令都是對應(yīng)一個基本的操作。最終所有的指令全部完成,單片機就是通過它的指令系統(tǒng),不同類型的單片機它的指令系統(tǒng)也是不同的。我們想要讓單片機自動的去完成我們指定的某一任務(wù),就必須把所有的問題都編寫成為統(tǒng)一的指令(解決問題的一系列指令),這些指令的集合體就是我們所說的程序了[1]。單片機的程序都是放在存儲器中的,因為它是具備儲存功能的部位,我們把指令都放在儲存器中的單元里面,這些單元類似于一間一間的房子,我們就把單元放在里面,單元里面的指令都是一個一個對應(yīng)的就像是單獨的一個門牌號碼,這個門牌號碼就是儲存的地址,這個地址叫做存儲單元地址,這樣我們就能很簡單的知道這個儲存單元的地址了,我們需要使用的時候就是指令被取出來,然后再由我們的單片機執(zhí)行。我們的程序都是按照一定的順序被執(zhí)行的,也就是說我們輸入的指令也是按照順序來的。單片機就是可以按照順序的把指令取出來然后去運行。在單片機中存在程序計數(shù)器PC,這個東西能夠追蹤我們指令所在的儲存單元地址,想要運行命令的時候就會給程序計數(shù)器PC第一條指令所在的地址,然后執(zhí)行每一條命令,計數(shù)器中的內(nèi)容就會自動的增加,這樣就能穩(wěn)定我們指令的順利進行。所以使用單片機只要我們把指令一條一條的寫好,保證硬件的條件,我們就可以得到我們所需要的結(jié)果。3.單片機的選擇及其介紹3.1STM32單片機的簡單介紹STM32的最大特點就是高性能、低成本、低消耗。STM32是和8位單片機不同的,它只是可以做到使寄存器進行編程,而且使用官方提供的庫文件進行編程,這樣子的編程就比較容易移植,它和51結(jié)構(gòu)單片機的內(nèi)置UART是不同的,一個是通用異步收發(fā)器不是同一個時鐘線,一個是同步和異步都可以的收發(fā)器,也帶著同樣的時鐘線,其實差的也不大就是同步用的頻率比較,異步用的比較多而已。同時我們寫代碼的時候就也比較方便了,這也是我選擇它的最大原因。如圖3.1這個單片機仿真圖是我設(shè)計所用單片機仿真圖:圖3.1STM32管腳圖3.1.1關(guān)于STM32概覽我們的STM32是基于32位32位Cortex?-M3內(nèi)核,它的工作頻率是可以達到72Mhz的。STN32的主要是四個控制單元和四個相對應(yīng)的受控單元,它們8個都是有一條AHB線連著的。控制單元有:DCode總線、系統(tǒng)總線、通用DMA1和DMA2,受控單元是內(nèi)部SRAM、FSMC、AHB和內(nèi)部FLash。STM32使用的程序儲存器是Flash和SRAM數(shù)據(jù)儲存器,它們一個可以達到64K或者128K字節(jié),另一個著是20K字節(jié)[2]。Icode總線:專門讓我們進行指令預(yù)取。我們可以通過它連接M3內(nèi)核指令總線與Flash的指令接口。Dcode總線:專門用于完成常量加載和調(diào)試訪問的總線。我們可以通過用它連接M3內(nèi)核DCode總線與Flash的數(shù)據(jù)接口。System總線:專門讓我們?nèi)f(xié)調(diào)內(nèi)核和DMA之前的通信輸入輸出。也可以讓它連接M3內(nèi)核系統(tǒng)總線與總線矩陣BusMatrix。DMA總線:專門用于我們?nèi)f(xié)調(diào)DCode、DMA、SRAM、Flash和他外設(shè)的訪問。也是連接DMA的AHB主接口與總線矩陣BusMatrix的作用。BUSMATRIX總線矩陣:它是有8各部分組成,分別是四個控制單元和四個被控制單元:DCode、系統(tǒng)總線、DMA1、DMA2、總線FLITF、SRAM、FSMC、AHB2APB橋。。所以我們使用輪換算法管理內(nèi)核系統(tǒng)總線與DMA主總線之間訪問的仲裁的方法來操作它們。AHB/APBbridges:需要先設(shè)置寄存器RCC-AHBENR打開該設(shè)備的時鐘才能使用它,其中APB1的使用速度要低于36MHz,APB2的使用速度要高72MHz,它提供了它們兩總線之中的同步連接,當我們復(fù)位以后除了SRAM和FLITF以外的東西都會被自動關(guān)閉。AHB(高級高性能總線,AdvancedHighperformanceBus)就是一個總的線路,它連接著CPU、DMA、DSP這種高性能的模塊,它是由三個部分組成的分別是模塊、從模塊、基礎(chǔ)結(jié)構(gòu),數(shù)據(jù)的傳輸會通過主模板發(fā)起從模板的回應(yīng)。APB(高級外圍總線,AdvancedPeripheralBus)它唯一的一個模板就是APB橋,主要是用于USRT低寬帶和外設(shè)之前的連線相當于一個外圍線路的總線。3.1.2關(guān)于STM32的GPIO介紹圖3.2LQFP48引腳定義圖我們的STM32都是用LQFP48裝的,它一共有37個IO引腳,分別是被五個組控制接收的,是PA15個、PB15個、PC3個、PD2個、PE0個,其中16個IO接口可以在外部中斷,接口大部分都可以兼容5V的信號。所有的IO接口的接受和輸出8mA的電流,灌入的電流也可以達到20mA。STM32一共有六種種寄存器,兩種32位配置的寄存器,GPOPX-CEL、GPIOX-CRH,還有兩種32位的數(shù)據(jù)寄存器,GPIOX-BRR、GPIOX-ODRR,一種32位復(fù)位寄存器GPIOX-BSRR,最后一種是32位鎖定寄存器GPIOX-LCKR。我們的輸出分為浮空輸出和開漏輸出,輸入又分為浮空輸入和上啦輸入,復(fù)用也分為復(fù)用推挽輸出和復(fù)用開漏輸出,它們都可以由GPIO通過軟件控制配置。STM32的GPIO都由承受大電流通過的承受力,所以可以方便我們鎖定,就可以避免讓其他GPIO相關(guān)寄存器損壞[2]。3.1.3關(guān)于STM32的通信接口STM32擁有9個接口:1個USB接口、1個CAN接口、2個SPI接口。3個USART接口、2個IC接口[1]。IC:可以讓工作有四個模式:多主模式、從模式、標準模式、快速模式。接口支持兩種尋址:10位尋址和7位尋址,IC的線是很短的不會超過2M,它的7位從模式可以內(nèi)置硬件CRC發(fā)生器以及校驗器,它是支持用DMA操作系統(tǒng)的。STN32的鏈接都必須是同一個地址并且支持SMBus和PMBus兩總線的。USART:功能是十分強大的,提供LIN主/從功能,兼容ISO7816智能卡,同時也是支持三種傳輸編解碼的:IRDASIREMDEC。它是由硬件信號管理的。它和IC一樣是支持DMA操作的,它的1接口輸出輸入速度可以達到4.5,Mbit/S,剩下的接口都可以到2.25Mbit/S。SPI:使用主、從模式就可以在雙工和半雙工的輸出輸入速度達到4.5Mbit/S,因為有兩個SPI接口,分頻器都能產(chǎn)生8種模式的頻率。我可以都選擇的配置8位和16位的幀數(shù),同樣STM32的SPI也可以進行DMA操作。CAN:可以有兩規(guī)范分別是CAN2.0A和CAN2.0B。都可以達到1Mbit/S,可以接收兩種幀,一個是11位標識的標準幀,一個是29位的標準幀。USB:SMT32的速度是非常快的,具有一個內(nèi)部的12Mbts/S的全速度USB控制器,可以控制它的使用,并且有一個專用48MHz的相環(huán)PLL直接從內(nèi)部產(chǎn)生。4電路的硬件設(shè)計和分析4.1設(shè)計選取的是STM32最小系統(tǒng)的硬件電路設(shè)計大家都知道單片機工作起來都是執(zhí)行我們所使用的程序代碼,每個部分會完成我們設(shè)定的任務(wù)。所以如果一個單片機芯片沒有輸入完成用戶程序,那么它肯定就不能正常的工作了。就算一個單片機芯片輸入了我們的程序后再運行也不一定能成功,這是為什么因為需要一個完整的系統(tǒng),單片機工作的時候是非常依靠單片機最小的系統(tǒng)的[3]。STM32的最小系統(tǒng)是有五大部分組成:1.電源系統(tǒng)圖4.1電源電路電源是使用芯片供電,穩(wěn)壓器使用3.3V。2.時鐘電路4.2時鐘電路時鐘的晶振一般都是用石英石組成的,為什么會使用石英石,是因為它本身是有電效應(yīng)的,如果我們在它的晶片兩邊加上一個電場力的話,我們就讓晶體發(fā)生變形,這個叫做機械變形,一個穩(wěn)定的電場力會讓晶體產(chǎn)生機械振動就,晶體形變振動就會產(chǎn)生我們所需要的交變電場了。我們的電場力電壓是很小的,但是要讓它的振動頻率是很穩(wěn)定的,當外加的交變電壓頻率和我們使用的石英石晶片自己有的頻率一樣的是時候就會產(chǎn)生電壓諧振。晶振電路就是主要的時鐘,它相當于整個系統(tǒng)的心跳節(jié)拍。所有的外部工作,還有CPU的運作都要基于這個時鐘。STM32晶振是分兩種,一種是無源,一種是有源。但是他們的本質(zhì)都是一樣的,我們稱為皮爾斯震蕩電路。但是對于單片機來說,它的內(nèi)部集成電阻.電源.反相放大器三種,我們只需要外接晶體就能完成,這就是我們的單片機的無源晶振。3.調(diào)試4.復(fù)位電路圖4.3復(fù)位電路引腳NRST是我們的主控芯片,也就是低電平復(fù)位,STM32的按鍵復(fù)位就是屬于系統(tǒng)復(fù)位的。電容它的作用就是起到了按鍵消抖,是專門為了防止我們發(fā)生操作失誤后會產(chǎn)生大約10ms的抖動,這對于我們NRST來控制已經(jīng)算是特別長的時間了,足夠我們進行多次的復(fù)位動作。5.芯片圖4.4芯片基礎(chǔ)4.2LED燈的設(shè)計選擇為了實現(xiàn)單片機溫控流水的系統(tǒng)效果更好的展示,我是準備了三種不同的情況,一個是一字排列的LED燈,讓他們在一定的溫度下形成跑馬流水燈的樣子,二就是一個矩形的排列方式,三就是一個心形狀的排列方式。但是由于電力承受的原因我害怕把板子燒壞心形流水燈我就讓它少亮了幾個也算是能達到我們預(yù)計的效果。4.3LED燈的控制下面這個是我的LED的仿真模擬圖4.5和圖4.6,我分別用了三種情況來控制上面也提到過的心型、矩形、一字型,通過GND來連接他們,同時我也用計算機算出來它們的限流電阻是多少,然后連接在它們的下方或者旁邊。圖4.5LED仿真圖圖4.6LED仿真圖4.4溫度的顯示設(shè)計關(guān)于溫度多少的顯示,我是做了一個溫度的顯示屏,因為只找到溫度和濕度一起的,所以我就設(shè)計了溫度和濕度一起感受的探頭。下面是我仿真圖下的顯示屏圖4.7。圖4.7顯示屏仿真圖5Keil軟件的使用和仿真圖,電路軟件的設(shè)計5.1GPIO口高低電平以下程序的編寫我分別對高低電平進行了定義,對GPIO口設(shè)定了對應(yīng)心、矩形、一字型排列的LED燈的情況,高電平就亮,低電平就不亮的設(shè)定。程序如下:#include"sys.h"#include"main.h"floatHumidity,Temperature;//矩形流水燈#defineLED_J_HGPIO_SetBits(GPIOB,GPIO_Pin_12)#defineLED_J_LGPIO_ResetBits(GPIOB,GPIO_Pin_12)//心流水燈#defineLED_X_HGPIO_SetBits(GPIOB,GPIO_Pin_13)#defineLED_X_LGPIO_ResetBits(GPIOB,GPIO_Pin_13)//流水的1#defineLED_L_1_HGPIO_SetBits(GPIOB,GPIO_Pin_10)#defineLED_L_1_LGPIO_ResetBits(GPIOB,GPIO_Pin_10)//流水的2#defineLED_L_2_HGPIO_SetBits(GPIOB,GPIO_Pin_2)#defineLED_L_2_LGPIO_ResetBits(GPIOB,GPIO_Pin_2)//流水的3#defineLED_L_3_HGPIO_SetBits(GPIOB,GPIO_Pin_1)#defineLED_L_3_LGPIO_ResetBits(GPIOB,GPIO_Pin_1)//流水的4#defineLED_L_4_HGPIO_SetBits(GPIOB,GPIO_Pin_0)#defineLED_L_4_LGPIO_ResetBits(GPIOB,GPIO_Pin_0)//流水的5#defineLED_L_5_HGPIO_SetBits(GPIOA,GPIO_Pin_7)#defineLED_L_5_LGPIO_ResetBits(GPIOA,GPIO_Pin_7)5.2GPIO口初始化設(shè)定因為我的設(shè)計是不同的溫度控制不同的燈。所以進行GPIO的初始化讓燈關(guān)閉不亮,然后隨著溫度的上升來判斷什么燈型的閃亮。程序如下:voidGPIO_Configuration(void){GPIO_InitTypeDefGPIO_InitStructure;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;//開漏輸出//GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13;//心形號燈GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;//1號燈GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1;//2號燈GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;//3號燈GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2;//4號燈GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_7;//5號燈GPIO_Init(GPIOA,&GPIO_InitStructure); //線全部關(guān)燈 LED_L_1_H;//關(guān)燈1 LED_L_2_H;//關(guān)燈2 LED_L_3_H;//關(guān)燈3 LED_L_4_H;//關(guān)燈4 LED_L_5_H;//關(guān)燈5 LED_X_L;//關(guān)燈矩形 LED_J_L;//關(guān)燈心形//GPIO_SetBits(GPIOA,GPIO_Pin_4);}5.3溫濕度的獲取和燈型的閃亮。我們的設(shè)計最終的目的就是為了單片機智能溫控LED燈的閃亮。所以設(shè)計了溫度的獲取流程,還有就是我們LED燈分成了3種燈型排列。分別在三種溫度下會有不同的燈型會進行閃亮分,別是溫度大于35度的時候關(guān)閉矩排列形和一字型排列LED燈的閃亮進行心形排列的LED燈閃亮一秒全亮一秒全滅,當溫度在25到35度之間的時候關(guān)閉心型LED燈和一字型LED燈矩形排列LED燈一秒亮一秒滅,當溫度在小于25度的時候關(guān)閉心型排列LED燈和矩形排列LED燈一字型流水燈循環(huán)點亮一秒一個。程序如下://1S模塊執(zhí)行函數(shù)//floatHumidity,Temperature;voidTASK1(void*parameter){// floatTemp;//溫度// floatHum;//濕度 charString[10]={0x00}; Temperature=SHT2X_GetTempHM(); Humidity=SHT2X_GetHumiHM(); { sprintf(String,"Temp:%02.02f",Temperature); OLED_ShowString(0,0,(u8*)String,16); sprintf(String,"Humidity:%02.02f",Humidity); OLED_ShowString(0,2,(u8*)String,16); }return;}//100MS執(zhí)行一次voidTASK2(void*parameter){ staticu8t=0; if(Temperature>35) { LED_L_1_H;LED_L_2_H;LED_L_3_H;LED_L_4_H;LED_L_5_H;//關(guān)閉流水燈關(guān)其他燈 LED_J_L;//關(guān)閉矩形燈 //心形流水燈一秒全亮一秒全滅 if(t==1) { //心形點亮 LED_X_H; } else { //心形熄滅 LED_X_L; } t=(t+1)%2; } elseif(Temperature<=35&&Temperature>=25) { //跑馬燈流水燈循環(huán)點亮一秒一個 //矩形流水燈一秒全亮一秒全滅 LED_L_1_H;LED_L_2_H;LED_L_3_H;LED_L_4_H;LED_L_5_H;//關(guān)閉流水燈關(guān)其他燈 LED_X_L;//關(guān)閉心形燈 if(t==1) { //心形點亮 LED_J_H; } else { //心形熄滅 LED_J_L; } t=(t+1)%2; } else { //開啟流水燈 //先關(guān)閉其他燈 LED_J_L;//關(guān)閉矩形燈 LED_X_L;//關(guān)閉心形燈 switch(t) { case0x00:LED_L_1_L;LED_L_2_H;LED_L_3_H;LED_L_4_H;LED_L_5_H;//開1號燈關(guān)其他燈 break; case0x01:LED_L_1_H;LED_L_2_L;LED_L_3_H;LED_L_4_H;LED_L_5_H;//開2號燈關(guān)其他燈 break; case0x02:LED_L_1_H;LED_L_2_H;LED_L_3_L;LED_L_4_H;LED_L_5_H;//開3號燈關(guān)其他燈 break; case0x03:LED_L_1_H;LED_L_2_H;LED_L_3_H;LED_L_4_L;LED_L_5_H;//開4號燈關(guān)其他燈 break; case0x04:LED_L_1_H;LED_L_2_H;LED_L_3_H;LED_L_4_H;LED_L_5_L;//開5號燈關(guān)其他燈 break; } t=(t+1)%5; }return;}5.5Keil軟件的使用Keil是美國KeilSoftware公司出品的軟件,用起來真的很方便,但是不能直接進行硬件仿真,我們必須有一個單片機真是器具的硬件設(shè)備才可以進行我們想要的仿真。就算是如此目前Keil也是現(xiàn)在很流行的代碼編寫軟件,它在編寫上面是比匯編強很多的,在C語言的維護、結(jié)構(gòu)以及功能的方面是有很大的優(yōu)勢的,所以用的人也就變得越來越多,它的仿真調(diào)試器是在內(nèi)完整開發(fā)的十分的強大,Keil提供了不僅僅是C語言的編寫包括C編譯器、宏匯編、鏈接器、庫管理等,因為是通過集成開發(fā)環(huán)境所以十分的俱全。所以說如果你是要進行C語言編程,那么它一定是你的上上之選,它的集成環(huán)境是非常方便使用的,所以仿真調(diào)試也是很強大的,能讓我更清晰的了解。關(guān)于如何使用Keil分為五個步驟1.啟動軟件2建立工程3建立并添加源文件4配置工程屬性5程序調(diào)試5.6系統(tǒng)電路仿真圖。參考文獻[1]百度文獻:/question/412690644.html[2]百度文獻:/p/83101591[3]百度文獻:/p/92483993謝辭一個學期的畢業(yè)設(shè)計也就這樣結(jié)束了,也就是說我的大學生涯就要結(jié)束了,在大學里面遇到了很多事情,讓我成長的特別的多,讓我學會了如何在社會之中立足,從一個什么都不懂的人學會了如何去自己照顧自己。最主要的是我在大學中學會了如何去感恩,要做一個會感恩的人,感謝大家對我的幫助和教導。真的非常舍不得就這有畢業(yè)了,但是我知道天下總沒有不散的宴席,還是再想說特別感謝老師們的幫助還有同學們對我的支持希望大家都能過上自己喜歡的生活在這次設(shè)計中,我覺得我學到了很多,只要你愿意努力那么你就一定會得到回報,在設(shè)計中,我遇到了很多的困難,我感覺就是一個難題又一個難題的在前面等著我去解決,是沒有任何捷徑的,只能一個一個去解決,代碼該怎么寫,程序該用哪一個等等問題,真的特別感覺指導老師的幫助,不懂了就問,老師都會仔細的教我,該怎么做該怎么做,同學們的幫助也是特別重要的,可以很快的理清思路,做事也會得心應(yīng)手一些,只要肯努力沒有辦不到的事情。最后再次感謝老師的指導和同學的幫助。附錄附錄1程序源代碼#include"sys.h"#include"main.h"http://////////////////////////////////////////////////////////////環(huán)境溫濕度的值floatHumidity,Temperature;//矩形流水燈#defineLED_J_HGPIO_SetBits(GPIOB,GPIO_Pin_12)#defineLED_J_LGPIO_ResetBits(GPIOB,GPIO_Pin_12)//心流水燈#defineLED_X_HGPIO_SetBits(GPIOB,GPIO_Pin_13)#defineLED_X_LGPIO_ResetBits(GPIOB,GPIO_Pin_13)//流水的1#defineLED_L_1_HGPIO_SetBits(GPIOB,GPIO_Pin_10)#defineLED_L_1_LGPIO_ResetBits(GPIOB,GPIO_Pin_10)//流水的2#defineLED_L_2_HGPIO_SetBits(GPIOB,GPIO_Pin_2)#defineLED_L_2_LGPIO_ResetBits(GPIOB,GPIO_Pin_2)//流水的3#defineLED_L_3_HGPIO_SetBits(GPIOB,GPIO_Pin_1)#defineLED_L_3_LGPIO_ResetBits(GPIOB,GPIO_Pin_1)//流水的4#defineLED_L_4_HGPIO_SetBits(GPIOB,GPIO_Pin_0)#defineLED_L_4_LGPIO_ResetBits(GPIOB,GPIO_Pin_0)//流水的5#defineLED_L_5_HGPIO_SetBits(GPIOA,GPIO_Pin_7)#defineLED_L_5_LGPIO_ResetBits(GPIOA,GPIO_Pin_7)////////////////////////////////////////////////////////////voidGPIO_Configuration(void)GPIO_InitTypeDefGPIO_InitStructure;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;//開漏輸出//GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13;//心形號燈GPIO_Init(GPIOB,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;//1號燈GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1;//2號燈GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;//3號燈GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2;//4號燈GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_7;//5號燈GPIO_Init(GPIOA,&GPIO_InitStructure);//線全部關(guān)燈 LED_L_1_H;//關(guān)燈1 LED_L_2_H;//關(guān)燈2 LED_L_3_H;//關(guān)燈3 LED_L_4_H;//關(guān)燈4 LED_L_5_H;//關(guān)燈5 LED_X_L;//關(guān)燈矩形 LED_J_L;//關(guān)燈心形//GPIO_SetBits(GPIOA,GPIO_Pin_4);}//系統(tǒng)中斷管理voidNVIC_Configuration(void){__enable_irq();//開啟中斷/*ConfiguretheNVICPreemptionPriorityBits*///NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設(shè)置中斷優(yōu)先級分組為組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級//#ifdefVECT_TAB_RAM/*SettheVectorTablebaselocationat0x20000000*///NVIC_SetVectorTable(NVIC_VectTab_RAM,0x0);//#else/*VECT_TAB_FLASH*//*SettheVectorTablebaselocationat0x08000000*///NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x0);//#endif}//中斷向量的重新映射voidVectorTableRemap(void){//#defineVECTOR_SIZE0xC0//中斷向量一共48個,每個4字節(jié),一共48*4=192///*RelocatebysoftwarethevectortabletotheinternalSRAMat0x20000000***////*CopythevectortablefromtheFlash(mappedatthebaseoftheapplication//loadaddressAPP_IMAG_LOCATION)tothebaseaddressoftheSRAMat0x20000000.*/// memcpy((uint32_t*)0x20000000,(uint32_t*)FRAMEWORK_BOOT_BASE_ADDR,VECTOR_SIZE);///*EnabletheSYSCFGperipheralclock*/// // RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG,ENABLE);///*RemapSRAMat0x00000000*/// SYSCFG_MemoryRemapConfig(SYSCFG_MemoryRemap_SRAM); }//配置系統(tǒng)時鐘,使能各外設(shè)時鐘voidRCC_Configuration(void){SystemInit();// VectorTableRemap();//重新映射中斷向量不是正式版不需要。// RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA//|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC//|RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOE// |RCC_APB2Periph_ADC1|RCC_APB2Periph_AFIO//|RCC_APB2Periph_SPI1,ENABLE);// RCC_APB2PeriphClockCmd(//RCC_APB2Periph_USART1RCC_APB2Periph_SYSCFG//|RCC_APB2Periph_ADC1//|RCC_APB2Periph_SPI1//|RCC_APB2Periph_SYSCFG,ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2|RCC_APB1Periph_TIM3//|RCC_APB1Periph_SPI2,ENABLE);RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA|RCC_AHBPeriph_GPIOB|RCC_AHBPeriph_GPIOC|RCC_AHBPeriph_GPIOF//|RCC_AHBPeriph_GPIOF,ENABLE);//RCC_APB1PeriphClockCmd(//RCC_APB1Periph_USART2//|RCC_APB1Periph_USART3//|RCC_APB1Periph_TIM2//|RCC_APB1Periph_USART2 //,ENABLE);// RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1,ENABLE);}u32serialid=0x08000001;//序列號intmain(void){ ////RCC時鐘初始化RCC_Configuration();//SysTickInt滴答時鐘初始化SysTickInit();//系統(tǒng)中斷管理NVIC_Configuration();//GPIO管理GPIO_Configuration(); SHT2X_INIT();//溫濕度初始化OLED091INIT(); //初始化OLEDOLED_Display_On();//打開顯示屏幕 OLEDClear();//屏幕清理//TASK_Timer_Init(10-1);//10*0.1ms的最小單位=1MS//IWDG_Init(4,2800); //與分頻數(shù)為64,控制值為100=4。重載值為800,溢出時間為1s左右計算公式為256*3125/40=100000mswhile(1){Task_Process();}}//1S模塊執(zhí)行函數(shù)//floatHumidity,Temperature;voidTASK1(void*parameter){// floatTemp;//溫度// floatHum;//濕度 charString[10]={0x00}; Temperature=SHT2X_GetTempHM(); Humidity=SHT2X_GetHumiHM(); { sprintf(String,"Temp:%02.02f",Temperature); OLED_ShowString(0,0,(u8*)String,16); sprintf(String,"Humidity:%02.02f",Humidity); OLED_ShowString(0,2,(u8*)String,16); } return;}//100MS執(zhí)行一次voidTASK2(void*parameter){ staticu8t=0; if(Temperature>35) { LED_L_1_H;LED_L_2_H;LED_L_3_H;LED_L_4_H;LED_L_5_H;//關(guān)閉流水燈關(guān)其他燈 LED_J_L;//關(guān)閉矩形燈 //心形流水燈一秒全亮一秒全滅 if(t==1) { //心形點亮 LED_X_H; } else { //心形熄滅 LED_X_L; } t=(t+1)%2; } elseif(Temperature<=35&&Temperature>=25) { //跑馬燈流水燈循環(huán)點亮一秒一個 //矩形流水燈一秒全亮一秒全滅 LED_L_1_H;LED_L_2_H;LED_L_3_H;LED_L_4_H;LED_L_5_H;//關(guān)閉流水燈關(guān)其他燈 LED_X_L;//關(guān)閉心形燈 if(t==1) { //心形點亮 LED_J_H; } else { //心形熄滅 LED_J_L; } t=(t+1)%2; } else { //開啟流水燈 //先關(guān)閉其他燈 LED_J_L;//關(guān)閉矩形燈 LED_X_L;//關(guān)閉心形燈 switch(t) { case0x00:LED_L_1_L;LED_L_2_H;LED_L_3_H;LED_L_4_H;LED_L_5_H;//開1號燈關(guān)其他燈 break; case0x01:LED_L_1_H;LED_L_2_L;LED_L_3_H;LED_L_4_H;LED_L_5_H;//開2號燈關(guān)其他燈 break; case0x02:LED_L_1_H;LED_L_2_H;LED_L_3_L;LED_L_4_H;LED_L_5_H;//開3號燈關(guān)其他燈 break; case0x03:LED_L_1_H;LED_L_2_H;LED_L_3_H;LED_L_4_L;LED_L_5_H;//開4號燈關(guān)其他燈 break; case0x04:LED_L_1_H;LED_L_2_H;LED_L_3_H;LED_L_4_H;LED_L_5_L;//開5號燈關(guān)其他燈 break; } t=(t+1)%5; }return; }Task_Structtasks[]={//用各個任務(wù)的函數(shù)名初始化//系統(tǒng)調(diào)度一次100ms,(100*10)ms=1s調(diào)度一次{0,1000,1000,TASK1},//1秒執(zhí)行一次GPRS程序{0,1000,1000,TASK2},//485點名程序//{0,100,100,TASK3},//485解析程序// {0,1000,1000,TASK4},//數(shù)據(jù)發(fā)送};u32task_count=sizeof(tasks)/sizeof(Task_Struct);voidTask_Process(void){u8i=0;for(i=0;i<task_count;++i)//遍歷任務(wù)數(shù)組{if(tasks[i].isRun)//若任務(wù)可執(zhí)行,則執(zhí)行任務(wù){(diào)tasks[i].TaskPointer(NULL);tasks[i].isRun=0;//將標志位清零IWDG_Feed();}}}voidTIM3_IRQHandler(void)//TIMER3中斷{u8i=0;if(RESET!=TIM_GetITStatus(TIM3,TIM_IT_Update))//檢查TIM3更新中斷發(fā)生與否{TIM_ClearITPendingBit(TIM3,TIM_IT_Update);for(i=0;i<task_count;++i)//遍歷任務(wù)數(shù)組{if(tasks[i].TimerSlice)//判斷時間片是否到了{--tasks[i].TimerSlice;if(0==tasks[i].TimerSlice)//時間片到了{tasks[i].isRun=0x01;//置位表示任務(wù)可以執(zhí)行tasks[i].TimerSlice=tasks[i].SliceNumber;//重新加載時間片值,為下次做準備}}}} }附錄2仿真電路圖附錄3實物圖

電腦不啟動故障診治了解電腦啟動的過程在諸多電腦故障中,無法正常啟動是最令用戶頭痛的事了。筆者長期從事維護電腦的工作,在這個方面積累了一些經(jīng)驗,現(xiàn)在就將這些經(jīng)驗整理歸納出來與朋友們分享。本文將以家用電腦和windows98操作系統(tǒng)為基礎(chǔ),介紹電腦無法正常啟動故障的診治。要想準確地診斷電腦不啟動故障,首先要了解的起動過程,當我們按下電源開關(guān)時,電源就開始向主板和其它設(shè)備供電,此時電壓還沒有完全穩(wěn)定,主板控制芯片組會根據(jù)CMOS中的CPU主頻設(shè)置向CPU發(fā)出一個Reset(重置)信號,讓CPU初始化,電壓完全穩(wěn)定后,芯片組會撤去Reset信號,CPU馬上從地址FFFF0H處執(zhí)行一條跳轉(zhuǎn)指令,跳到系統(tǒng)BIOS中真正的啟動代碼處。系統(tǒng)BIOS首先要做的事情就是進行POST(PowerOnSelfTest,加電自檢)。POST的主要任務(wù)是檢測系統(tǒng)中的一些關(guān)鍵設(shè)備(電源、CPU芯片、BIOS芯片、定時器芯片、數(shù)據(jù)收發(fā)邏輯電路、DMA控制器、中斷控制器以及基本的64K內(nèi)存和內(nèi)存刷新電路等)是否存在和能否正常工作,如內(nèi)存和顯卡等。自檢通過后,系統(tǒng)BIOS將查找顯示卡的BIOS,由顯卡BIOS來完成顯示卡的初始化,顯示器開始有顯示,自此,系統(tǒng)就具備了最基本的運行條件,可以對主板上的其它部分進行診斷和測試,再發(fā)現(xiàn)故障時,屏幕上會有提示,但一般不死機,接著系統(tǒng)BIOS將檢測CPU的類型和工作頻率,然后開始測試主機所有的內(nèi)存容量,內(nèi)存測試通過之后,系統(tǒng)BIOS將開始檢測系統(tǒng)中安裝的一些標準硬件設(shè)備,這些設(shè)備包括:硬盤、CD-ROM、軟驅(qū)、串行接口和并行接口等連接的設(shè)備,大多數(shù)新版本的系統(tǒng)BIOS在這一過程中還要自動檢測和設(shè)置內(nèi)存的相關(guān)參數(shù)、硬盤參數(shù)和訪問模式等。標準設(shè)備檢測完畢后,系統(tǒng)BIOS內(nèi)部的支持即插即用的代碼將開始檢測和配置系統(tǒng)中已安裝的即插即用設(shè)備。每找到一個設(shè)備之后,系統(tǒng)BIOS都會在屏幕上顯示出設(shè)備的名稱和型號等信息,同時為該設(shè)備分配中斷、DMA通道和I/O端口等資源。最后系統(tǒng)BIOS將更新ESCD(ExtendedSystemConfigurationData,擴展系統(tǒng)配置數(shù)據(jù))。ESCD數(shù)據(jù)更新完畢后,系統(tǒng)BIOS的啟動代碼將進行它的最后一項工作,即根據(jù)用戶指定的啟動順序從軟盤、硬盤或光驅(qū)啟動。以從C盤啟動為例,系統(tǒng)BIOS將讀取并執(zhí)行硬盤上的主引導記錄,主引導記錄接著從分區(qū)表中找到第一個活動分區(qū),然后讀取并執(zhí)行這個活動分區(qū)的分區(qū)引導記錄,而分區(qū)引導記錄將負責讀取并執(zhí)行IO.SYS,這是Windows最基本的系統(tǒng)文件。IO.SYS首先要初始化一些重要的系統(tǒng)數(shù)據(jù),然后就顯示出我們熟悉的藍天白云,在這幅畫面之下,Windows將繼續(xù)進行DOS部分和GUI(圖形用戶界面)部分的引導和初始化工作,一切順利結(jié)束,電腦正常啟動。根據(jù)故障現(xiàn)象診治了解電腦啟動的過程,故障就好判斷了,下面我們就根據(jù)故障現(xiàn)象開始診治了:現(xiàn)象一:系統(tǒng)完全不能啟動,見不到電源指示燈亮,也聽不到冷卻風扇的聲音。這時,基本可以認定是電源部分故障,檢查:電源線和插座是否有電、主板電源插頭是否連好,UPS是否正常供電,再確認電源是否有故障,最簡單的就是替換法,但一般用戶家中不可能備有電源等備件,這時可以嘗試使用下面的方法(注意:要慎重):先把硬盤,CPU風扇,或者CDROM連好,然后把ATX主板電源插頭用一根導線連接兩個插腳(把插頭的一側(cè)突起對著自己,上層插腳從左數(shù)第4個和下層插腳從右數(shù)第3個,方向一定要正確),然后把ATX電源的開關(guān)打開,如果電源風扇轉(zhuǎn)動,說明電源正常,否則電源損壞。如果電源沒問題直接短接主板上電源開關(guān)的跳線,如果正常,說明機箱面板的電源開關(guān)損壞?,F(xiàn)象二:電源批示燈亮,風扇轉(zhuǎn),但沒有明顯的系統(tǒng)動作。這種情況如果出現(xiàn)在新組裝電腦上應(yīng)該首先檢查CPU是否插牢或更換CPU,而正在使用的電腦的CPU損壞的情況比較少見(人為損壞除外),損壞時一般多帶有焦糊味,如果剛剛升級了BIOS或者遭遇了CIH病毒攻擊,這要考慮BIOS損壞問題(BIOS莫名其妙的損壞也是有的),修復(fù)BIOS的方法很多雜志都介紹過就不重復(fù)了;確認CPU和BIOS沒問題后,就要考慮CMOS設(shè)置問題,如果CPU主頻設(shè)置不正確也會出現(xiàn)這種故障,解決方法就是將CMOS信息清除,既要將CMOS放電,一般主板上都有一個CMOS放電的跳線,如果找不到這個跳線可以將CMOS電池取下來,放電時間不要低于5分鐘,然后將跳線恢復(fù)原狀或重新安裝好電池即可;如果CPU、BIOS和CMOS都沒問題還要考慮電源問題:PC機電源有一個特殊的輸出信號,稱為POWERGOOD(PG)信號,如果PG信號的低電平持續(xù)時間不夠或沒有低電平時間,PC機將無法啟動。如果PG信號一直為低電平,則PC機系統(tǒng)始終處于復(fù)位狀態(tài)。這時PC機也出現(xiàn)黑屏、無聲響等死機現(xiàn)象。但這需要專業(yè)的維修工具外加一些維修經(jīng)驗,因此,建議采用替換法;電源沒有問題就要檢查是否有短路,確保主板表面不和金屬(特別是機箱的安裝固定點)接觸。把主板和電源拿出機箱,放在絕緣體表面,如果能啟動,說明主板有短路現(xiàn)象;如果還是不能啟動則要考慮主板問題,主板故障較為復(fù)雜,可以使用替換法確認,然后更換主板?,F(xiàn)象三:電源指示燈亮,系統(tǒng)能啟動,但系統(tǒng)在初始化時停住了,而且可以聽到嗽叭的鳴叫聲(沒有視頻):根據(jù)峰鳴代碼可以判斷出故障的部位。ccid_page/AwardBIOS1短聲:說明系統(tǒng)正常啟動。表明機器沒有問題。2短聲:說明CMOS設(shè)置錯誤,重新設(shè)置不正確選項。1長1短:說明內(nèi)存或主板出錯,換一個內(nèi)存條試試。1長2短:說明顯示器或顯示卡存在錯誤。檢查顯卡和顯示器插頭等部位是否接觸良好或用替換法確定顯卡和顯示器是否損壞。1長3短:說明鍵盤控制器錯誤,應(yīng)檢查主板。1長9短:說明主板FlashRAM、EPROM錯誤或BIOS損壞,更換FlashRAM。重復(fù)短響:說明主板電源有問題。不間斷的長聲:說明系統(tǒng)檢測到內(nèi)存條有問題,重新安裝內(nèi)存條或更換新內(nèi)存條重試。AMIBIOS1短:說明內(nèi)存刷新失敗。更換內(nèi)存條。2短:說明內(nèi)存ECC較驗錯誤。在CMOS中將內(nèi)存ECC校驗的選項設(shè)為Disabled或更換內(nèi)存。3短:說明系統(tǒng)基本內(nèi)存檢查失敗。換內(nèi)存。4短:說明系統(tǒng)時鐘出錯。更換芯片或CMOS電池。5短:說明CPU出現(xiàn)錯誤。檢查CPU是否插好。6短:說明鍵盤控制器錯誤。應(yīng)檢查主板。7短:說明系統(tǒng)實模式錯誤,不能切換到保護模式。8短:說明顯示內(nèi)存錯誤。顯示內(nèi)存有問題,更換顯卡試試。9短:說明BIOS芯片檢驗和錯誤。1長3短:說明內(nèi)存錯誤。內(nèi)存損壞,更換。1長8短:說明顯示測試錯誤。顯示器數(shù)據(jù)線沒插好或顯示卡沒插牢。現(xiàn)象四:系統(tǒng)能啟動,有視頻,出現(xiàn)故障提示,這時可以根據(jù)提示來判斷故障部位。下面就是一些常見的故障提示的判斷:一、提示“CMOSBatteryStateLow”原因:CMOS參數(shù)丟失,有時可以啟動,使用一段時間后死機,這種現(xiàn)象大多是CMOS供電不足引起的。對于不同的CMOS供電方式,采取不同的措施:1.焊接式電池:用電烙鐵重新焊上一顆新電池即可;2.鈕扣式電池:直接更換;3.芯片式:更換此芯片,最好采用相同型號芯片替換。如果更換電池后時間不長又出現(xiàn)同樣現(xiàn)象的話,很可能是主板漏電,可檢查主板上的二極管或電容是否損壞,也可以跳線使用外接電池,不過這些都需要有一定的硬件維修基礎(chǔ)才能完成。二、提示“CMOSChecksumFailure”CMOS中的BIOS檢驗和讀出錯;提示“CMOSSystemOptionNotSet”,CMOS系統(tǒng)未設(shè)置;提示“CMOSDisplayTypeMismatch”,CMOS中顯示類型的設(shè)置與實測不一致;提示“CMOSMemorySizeMismatch”,主板上的主存儲器與CMOS中設(shè)置的不一樣;提示“CMOSTime&DateNotSet”,CMOS中的時間和日期沒有設(shè)置。這些都需要對CMOS重新設(shè)置。三、提示“KeyboardInterfaceError”后死機原因:主板上鍵盤接口不能使用,拔下鍵盤,重新插入后又能正常啟動系統(tǒng),使用一段時間后鍵盤無反應(yīng),這種現(xiàn)象主要是多次拔插鍵盤引起主板鍵盤接口松動,拆下主板用電烙鐵重新焊接好即可;也可能是帶電拔插鍵盤,引起主板上一個保險電阻斷了(在主板上標記為Fn的東西),換上一個1歐姆/0.5瓦的電阻即可。四、自檢過程中斷在xxxKCache處這表示主板上Cache損壞,可以在CMOS設(shè)置中將“ExternalCache”項設(shè)為“Disable”故障即可排除。同理,在自檢主板部件時出現(xiàn)中斷,則可以認為該部件損壞,解決方法一般可以在CMOS中將其屏蔽,如果不能屏蔽該部件最好更換主板。五、提示“FDDControllerFailure”BIOS不能與軟盤驅(qū)動器交換信息;提示“HDDControllerFailure”,BIOS不能與硬盤驅(qū)動器交換信息。應(yīng)檢查FDD(HDD)控制卡及電纜。六、提示“8042GateA20Error”8042芯片壞;提示“DMAError”,DMA控制器壞。這種故障需要更換。七、提示“DisplaySwitchNotProper”主板上的顯示模式跳線設(shè)置錯誤,重新跳線。八、提示“KeyboardisLock...Unlockit”鍵盤被鎖住,打開鎖后重新引導系統(tǒng)。九、IDE接口設(shè)備檢測信息為:“DetectingPrimary(或Secondary)Master(或Slave)...None”表示該IDE接口都沒有找到硬盤,如果該IDE口確實接有硬盤的話,則說明硬盤沒接上或硬盤有故障,可以從以下幾方面檢查:1、硬盤電源線和數(shù)據(jù)線是否接觸不良,或換一根線試試;2、CMOS設(shè)置有無錯誤,進入CMOS將“PrimaryMaster”、“PrimarySlave”、“SecondaryMaster”三項的的“TYPE”都設(shè)置成“Auto”;3、替換法確認硬盤本身有故障。十、IDE接口設(shè)備檢測信息下面顯示“Floppydisk(s)fail(40)”出錯信息表示CMOS所指定的軟盤驅(qū)動器有問題。判斷和解決的方法與硬盤相似。現(xiàn)象五:系統(tǒng)不能引導。這種故障一般都不是嚴重問題,只是系統(tǒng)在找到的用于引導的驅(qū)動器中找不到引導文件,比如:BIOS的引導驅(qū)動器設(shè)置中將軟驅(qū)排在了硬盤驅(qū)動的前面,而軟驅(qū)中又放有沒有引導系統(tǒng)的軟盤或者BIOS的引導驅(qū)動器設(shè)置中將光驅(qū)排在了硬盤驅(qū)動的前面,而光驅(qū)中又放有沒有引導系統(tǒng)的光盤,這個都很簡單,將光盤或軟盤取出就可以了,實際應(yīng)用中遇到“DiskBootFailure,InsertSystemDiskAndPressEnter”的提示,多數(shù)都是這個原因。如果是硬盤不能引導的話一般有兩種情況:一種是硬盤數(shù)據(jù)線沒有插好,另一種就是硬盤數(shù)據(jù)損壞。前者一般多會出現(xiàn)硬盤

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論