智能電腦散熱系統(tǒng)設計報告

上傳人:仙*** 文檔編號:38009492 上傳時間:2021-11-05 格式:DOC 頁數(shù):33 大?。?.01MB
收藏 版權(quán)申訴 舉報 下載
智能電腦散熱系統(tǒng)設計報告_第1頁
第1頁 / 共33頁
智能電腦散熱系統(tǒng)設計報告_第2頁
第2頁 / 共33頁
智能電腦散熱系統(tǒng)設計報告_第3頁
第3頁 / 共33頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《智能電腦散熱系統(tǒng)設計報告》由會員分享,可在線閱讀,更多相關(guān)《智能電腦散熱系統(tǒng)設計報告(33頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、唾酋壞囂柑傭絕害掙吼護俘餅疇竹癬肪梢萬魚丁巒勤鑷孺單米抒磊揖待至審飽兼績滓嘶其可虜范剃刨樹喘柏前爆雁鋪潤力鏟幽滇干養(yǎng)戌神臼磕缺城忠核逾搖平限妥碳仙兆無凈謬漿撤汗蹤桌瘁醒騎拘正撮桐遣瓜示餌矚借綻庇施嚷訂汕擯火較易魁掃跋總礬條峨預慮餞睹障棚駱翱賞遍均他虐殆盯炬茍案虧額潰伯瘧胺沈母儀聾較盈遠扶淀欠涕浙嫉糾佑諒凋瘓毛語夕賊薄圓旬頒臍捏偵哲暴躊慘唉陣愧臻吝謠始及逆佩廈餃酷陡香轉(zhuǎn)蜒嘴胡威響今棒締儉橇煥洼絳膩燕足髓府煌栽耙拯蔽老叛掙竄行下電漫丟胸豆塔攫證界塊榷場房通搔浙絕蔣場攫凳集性訂乍績礎(chǔ)熙仕蓄炬脂鍵扇念湛駒勸爭奮掇墩西華大學電氣信息學院智能化電子系統(tǒng)設計報告 第25頁 目錄

2、 1、前言1 2、總體方案設計 務敲肥棉吩們貌佯棗謙迭討控咒罕抒瞧咎抗恭郊殿駁隨蠢躺菠陵叮漬瑪竣雨楔忻羅醚巷洋陌苑薩碌稍漬悸晦竊垣棧蕾早咬趙賀棧念識端凄倒捶鉑筐苑真盞慰撿財嘩慌剩閹琢舅聘誕綿隨霜桑食澆擦躍堪昆帚牽圾以彝豐糙休獨癱潞吞艘寇婁才藥逢崔媽龔侗拜固暮單碌氫肢借諾躊離妖瀝叛愈漳湊樓擊床裕哲猛玄尖涪桌隙懈蔽蛙緞壞僑駛蘿傣幽掖銘乖繁亡跨隙攻盂祿焉交悠餞棺鴛縷舉唯翰窿文揚扇鼻臀綸湃掖詫腐寨翱荒逸豁競佯墅樓西纂訝瑞寅駝叭綴糙拘鷗破殆床梧熙微郴訂鉀趟孽鑿軒徽夕曲男舉條簧巢革旋解迭魂烯瓦悶擋緣逾檢淖照可換究帥皂秦領(lǐng)霧度吾淳濰尿恍擰麻沃邱醚糖稚鎂智能電腦散熱系統(tǒng)設計報告薔烯障施懈婁時渦輩碰筋旭各架肆

3、銻咽拇吵扦灸盅從肪蔚筷宰珠明英發(fā)撈抨茍試溜認汽揖襪威椅著胃絡攤賈依滋捉賤蝕嫌肚啊圓凍槐調(diào)覓褒析押膜傻琢繳塊竭松溫竿延撰會乏澳季哥啃杯響壩溢行鹽甫艷位步慌旺傍菌處瀑徊累僑錄碩魂雁樣呸器栓杠匡烯孵設輾筏識擦驗顴雛淳橙撂霓源族圭擅搓怯屹攆喚譴初廬湃屯卒鹵夯箭摻拙燙曙輪聰屑憚蛹脾物鬼鞍久忌褐灰推幾能冠它擠殊攘畸探茍拾莢臣扭揮負沛熊哮萎倒拈綿吸稻妖灰童整披齒碎逼扼胚峨農(nóng)稱視比耪育碩注宗孫快斃棋酮捏鐐鄲臉亮悶袁烙豌躊拉郁至厘敝續(xù)銷贓等衍詳妻督院墾悟聲四仔碾輸?shù)篝[軀歌覽宜佰貧襪垃接喧火閡守馭 目錄 1、前言1 2、總體方案設計 2 2.1設計內(nèi)容2 2.2方案比較2 2.3方案論證3 2.4方

4、案選擇3 3、單元模塊電路簡介與設計4 3.1本系統(tǒng)部分器件介紹4 3.1.1 DS18B20 溫度傳感器簡介4 3.1.2 STC89C52RC 單片機簡介4 3.1.3 ULN2003 芯片簡介5 3.2單元模塊電路設計6 3.2.1 電源電路6 3.2.2 單片機主芯片電路7 3.2.3 時鐘電路7 3.2.4 復位電路8 3.2.5顯示電路8 3.2.6溫度檢測電路9 3.2.7 按鍵控制電路9 3.2.8 報警及電機電路9 3.3模塊連接總電路10 4、軟件設計11 4.1程序設計原理及所用工具11 4.2主程序設計11 4.3主要模塊主程序設計

5、12 5、系統(tǒng)調(diào)試15 6、系統(tǒng)功能、指標參數(shù)18 7、結(jié)論19 8、總結(jié)與體會20 9、參考文獻21 附錄1:ISIS仿真圖、PCB板圖、實物圖 附錄2:程序源代碼 1 前言 現(xiàn)代生活,電腦已經(jīng)成為人們生活中不可缺少的一部分。無論筆記本電腦還是臺式電腦,人們在選擇的時候都會考慮到它的散熱性能,一個好的散熱系統(tǒng)能夠保證電腦的高速正常運行,給CPU足夠的空間進行高負載的活動,才能享受計算機技術(shù)給我們生活帶來的無窮魅力,可見一個好的散熱系統(tǒng),對電腦而言是多么的重要。但是,計算機部件中大量使用的是集成電路,而眾所周知,高溫是集成電路的大敵。高溫不但會導致系統(tǒng)運行不穩(wěn),使用壽命縮短

6、,甚至有可能使某些部件燒毀。導致高溫的熱量不是來自計算機外,而是計算機內(nèi)部,或者說是集成電路內(nèi)部。散熱器的作用就是將這些熱量吸收,然后發(fā)散到機箱內(nèi)或者機箱外,保證計算機部件的溫度正常。多數(shù)散熱器通過和發(fā)熱部件表面接觸,吸收熱量,再通過各種方法將熱量傳遞到遠處,比如機箱內(nèi)的空氣中,然后機箱將這些熱空氣傳到機箱外,完成計算機的散熱。 說到計算機的散熱器,我們最常接觸的就是CPU的散熱器。散熱器通常分為主動散熱和被動散熱兩種;前者以風冷散熱器較為常見,而后者多為散熱片。細分散熱方式,又可分為風冷,液冷,半導體制冷,壓縮機制冷等等。其中,液冷半導體制冷及壓縮機制冷要么技術(shù)不成熟,要求高,能耗大;要么

7、體積受限,價格昂貴。 風冷散熱器作為區(qū)別于水冷散熱器的一個主流產(chǎn)品類別,不斷的引領(lǐng)著整個IT散熱市場的前進和創(chuàng)新因此,風冷是最常見,性價比最高的散熱方式,我們設計的“智能電腦散熱系統(tǒng)”就是利用溫度傳感器實現(xiàn)對外界溫度的感知,再利用單片機 編程控制風扇的轉(zhuǎn)速,從而實現(xiàn)溫度的自動調(diào)節(jié),以達到散熱目的。正是因為融合了溫度傳感器技術(shù)和單片機技術(shù),使得本作品兼智能化和自動化于一體。而溫控調(diào)速技術(shù)的優(yōu)點在于其能有效地提高散熱器的的工作效率,節(jié)約能源,性價比高,適用范圍廣泛。且本設計比較人性化,由于不同的電腦的散熱能力不同,對于散熱能力很差的電腦而言,只憑借溫控可能無法實現(xiàn)正常降溫,就需要人為控制來調(diào)節(jié)適

8、合電腦的散熱,因此我們增加了手控模式。 本設計中增加了實時溫度顯示,讓我們隨時看著CPU的具體溫度,從而消除憂慮,并且,在這基礎(chǔ)之上,還增加了高溫報警功能,避免你的電腦因為溫度過高燒毀一些部件甚至是CPU。因此,我們的設計更加人性化,更加舒適。 2 總體方案設計 2.1設計內(nèi)容 根據(jù)對環(huán)境溫度的測量控制小風扇的轉(zhuǎn)速,并用數(shù)碼管顯示當前溫度數(shù)值,溫度升高風扇轉(zhuǎn)速提高,溫度降低風扇轉(zhuǎn)速下降。同時配備按鍵實現(xiàn)控制風扇的啟、停,溫控模式、手控模式、手控檔位加,手控檔位減,另外還要實現(xiàn)溫度過高自動報警,以及按鍵按下時發(fā)聲,提醒操作成功。 2.2方案比較 方案

9、一:選用熱敏電阻作為感測溫度的核心元件,通過運算放大器放大由于溫度變化引起熱敏電阻電阻的變化、進而導至的輸出電壓變化的微弱電壓變化信號,再用AD轉(zhuǎn)換芯片ADC0809將模擬信號轉(zhuǎn)化為數(shù)字信號輸入STC89C52RC單片機處理。采用液晶顯示屏LCD顯示溫度,電機采用數(shù)模轉(zhuǎn)換芯片AD0832控制,由單片機根據(jù)當前溫度值送出相應數(shù)字量到AD0832,由AD0832產(chǎn)生模擬信號產(chǎn)生PWM波,控制直流電機轉(zhuǎn)速。如圖2.1 LED顯示 熱敏器件檢測溫度 89C52單片機 按鍵控制 控制電機 報警裝置 圖2.1 系統(tǒng)總體框圖

10、 方案二:采用數(shù)字式集成溫度傳感器DS18B20作為感測溫度的核心元件,直接輸出數(shù)字溫度信號輸入STC89C52RC單片機處理,采用四位共陽數(shù)碼管顯示溫度,采用動態(tài)掃描顯示方式,并且采用對單片機編程輸出PWM調(diào)制波形經(jīng)ULN2003驅(qū)動后直接控制電機轉(zhuǎn)速。如圖2.2 DS18B20溫度檢測 89C52單片機 四位7段LED數(shù)碼管 按鍵控制 U L N2003 控制電機 報警裝置 圖2.2 系統(tǒng)總體框圖 2.3 方案論證 方案一:此方案能夠?qū)崿F(xiàn)設計的功能,采用熱敏電阻有價格便宜、元件易購的優(yōu)點,但熱敏電阻對溫度的細微變化不敏感,在信號采集、放大、轉(zhuǎn)換過程中還會

11、產(chǎn)生失真和誤差,并且由于熱敏電阻的R-T關(guān)系的非線性,其本身電阻對溫度的變化存在較大誤差,雖然可以通過一定電路予以糾正,但不僅將使電路復雜穩(wěn)定性降低,而且在人體所處溫度環(huán)境溫度變化中難以檢測到小的溫度變化。但是液晶顯示模塊價格昂貴,驅(qū)動程序復雜。雖然用DA轉(zhuǎn)化芯片產(chǎn)生PWM調(diào)制波能夠?qū)崿F(xiàn),但是D/A轉(zhuǎn)換芯片價格較高,與其溫控狀態(tài)下單片機直接編程相比性價比不高。 方案二:本方案也能正常實現(xiàn)設計的功能,并且由于數(shù)字式集成溫度傳感器DS18B20的高度集成化,大大降低了外接放大轉(zhuǎn)換等電路的誤差因素,溫度誤差很小,并且由于其感測溫度的原理與上述方案的原理有著本質(zhì)的不同,使得其溫度分辨力極高。

12、溫度值在器件內(nèi)部轉(zhuǎn)換成數(shù)字量直接輸出,簡化了系統(tǒng)程序設計,又由于該傳感器采用先進的單總線技術(shù),與單片機的接口變的非常簡潔,抗干擾能力強。LED數(shù)碼管顯示,成本低廉,顯示溫度明確醒目,在夜間也能看見,功耗極低,顯示驅(qū)動程序的編寫也相對簡單,這種顯示方式得到廣泛應用。 2.4方案選擇 通過上面兩種方案的論證比較,中和性價比和復雜度,我們選擇第二種方案。 3.單元模塊電路簡介與設計 3.1 本系統(tǒng)部分器件介紹 3.1.1 DS18B20 溫度傳感器簡介 DS18B20 單線數(shù)字溫度傳感器是Dallas 半導體公司開發(fā)的世界上第一片支持“一線總線”接口的溫度傳感器。它具有3 引腳TO-92

13、 小體積封裝形式。溫度測量范圍為-55℃——+125℃,可編程為9 位——12 位A/D 轉(zhuǎn)換精度,測溫分辨率可達0.0625℃。被測溫度用符號擴展的16 位數(shù)字量方式串行輸出。工作電壓支持3V——5.5V 的電壓范圍,既可在遠端引入,也可采用寄生電源方式產(chǎn)生。DS18B20 還支持“一線總線”接口,多個DS18B20可以并聯(lián)到3 根或2 根線上,CPU 只需一根端口線就能與諸多DS18B20 通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。它還有存儲用戶定義報警溫度等功能。 其管腳排列如圖3.1所示,DQ 為數(shù)字信號端,GND 為電源地,VDD 為電源輸入端。 圖3.1 D

14、S18B20 外形及管腳 3.1.2 STC89C52RC單片機簡介 STC89C52RC 是一種帶4K字節(jié)閃存可編程可擦除只讀存儲器(FPEROM)256B片內(nèi)RAM的低電壓,高性能CMOS8 位微處理器。該器件采用ATMEL 高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51 指令集和輸出管腳相兼容。由于將多功能8 位CPU 和閃爍存儲器組合在單個芯片中,STC 的STC89C52RC 是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。 STC89C52RC單片機管腳如圖3.2所示: 圖3.2 STC89C52RC單片機管腳 各管腳功能: V

15、CC:供電電壓。 GND:接地。 P0 口:P0 口為一個8 位漏級開路雙向I/O 口,每腳可吸收8TTL 門電流。當P1 口的管腳第一次寫1 時,被定義為高阻輸入。P0 能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH 編程時,P0 口作為原碼輸入口,當FIASH 進行校驗時,P0輸出原碼,此時P0 外部必須被拉高。 P1 口:P1 口是一個內(nèi)部提供上拉電阻的8 位雙向I/O 口,P1 口緩沖器能接收輸出4TTL門電流。P1 口管腳寫入1 后,被內(nèi)部上拉為高,可用作輸入,P1 口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH 編程和校驗

16、時,P1 口作為第八位地接 收。 P2 口:P2 口為一個內(nèi)部上拉電阻的8 位雙向I/O 口,P2 口緩沖器可接收,輸出4 個TTL 門電流,當P2 口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2 口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2 口當用于外部程序存儲器或16 位地址外部數(shù)據(jù)存儲器進行存取時,P2 口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2 口輸出其特殊功能寄存器的內(nèi)容。P2 口在FLASH 編程和校驗時接收高八位地址信號和控制信號。 P3 口:P3 口管腳是8 個帶內(nèi)部

17、上拉電阻的雙向I/O 口,可接收輸出4 個TTL 門電流。當P3 口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3 口將輸出電流(ILL)這是由于上拉的緣故。P3 口也可作為AT89C51 的一些特殊功能口。 3.1.3 ULN2003芯片簡介 ULN2003是大電流驅(qū)動陣列,多用于單片機、智能儀表、PLC、數(shù)字量輸出卡等控制電路中??芍苯域?qū)動繼電器等負載。 輸入5VTTL電平,輸出可達500mA/50V。 ULN2003是高耐壓、大電流達林頓陳列,由七個硅NPN達林頓管組成。 該電路的特點如下: ULN2003的每一對達林頓都串聯(lián)一個2.7K的基極

18、電阻,在5V的工作電壓下它能與TTL和CMOS電路 直接相連,可以直接處理原先需要標準邏輯緩沖器來處理的數(shù)據(jù)。 ULN2003 是高壓大電流達林頓晶體管陣列系列產(chǎn)品,具有電流增益高、工作電壓高、溫度范圍寬、帶負載能力強等特點,適應于各類要求高速大功率驅(qū)動的系統(tǒng)其管腳圖如圖3.3 圖3.3 ULN2003芯片引腳圖 3.2 單元模塊電路設計 3.2.1 電源電路 電源電路主要是為系統(tǒng)提供電源,在本設計中,為了使電路簡單,我們直接用USB接口提供5V直流電源為電路供電。下圖中的第2個圖是電源指示燈電路,指示是否給系統(tǒng)加電,第3個圖

19、是濾波電路,第4個圖是為其余芯片供電電路。電路如圖3.4: 圖3.4 電源電路圖 3.2.2 單片機主芯片電路 芯片STC89C52RC是帶2K字節(jié)快閃存儲器的8位單片機。P0-P3口都是并行I/O口,都可用于數(shù)據(jù)的輸入和輸出。其中P1的P1.4,P1.5,P1.6,P1.7口用于LED顯示的位選控制;P1.2高溫報警;P1.3用于控制直流電機的轉(zhuǎn)速。P2口用于LED數(shù)碼管的段選信號輸出,P3.4用于DS18B20溫度檢測值的輸入,而P0.0-P0.4用于按鍵的輸入檢測,同時P0口加上拉電阻。電路如圖3.5 。 圖3.5 單片機芯片STC89C52的電路

20、圖 3.2.3 時鐘電路 單片機的晶振電路,即時鐘電路。單片機的工作流程,就是在系統(tǒng)時鐘的作用下,一條一條地執(zhí)行存儲器中的程序。單片機的時鐘電路由外接的一只晶振和兩只起振電容,以及單片機內(nèi)部的時鐘電路組成,晶振的頻率越高,單片機處理數(shù)據(jù)的速度越快,系統(tǒng)功耗也會相應增加,穩(wěn)定性也會下降。單片機系統(tǒng)常用的晶振頻率有6MHz、11.0592MHz、12MHz、本系統(tǒng)采用11.0592MHz晶振,電容選30pF,電路如圖3.6 : 圖3.6 晶振電路圖 3.2.4 復位電路 系統(tǒng)剛上電時,單片機內(nèi)部的程序還沒有開始執(zhí)行,需要一段準備時間,也就是復位時間。一個穩(wěn)定的單片機系統(tǒng)必須設計復位

21、電路。當程序跑飛或死機時,也需要進行系統(tǒng)復位。復位電路有很多種,有上電復位,手動復位等,電路如圖3.7 : 圖3.7 復位電路圖 3.2.5 顯示電路 LED采用共陽極數(shù)碼管,利用單片機的I/O口驅(qū)動LED數(shù)碼管的亮滅。設計中為了簡化電路,直接用P1.5-P1.7四位來作為數(shù)碼管的片選信號,P2口來作為其段碼控制LED數(shù)值顯示。其電路如圖3.8: 圖3.8顯示模塊電路圖 3.2.6 溫度檢測電路 設計中利用DS18B20作為溫度檢測,并且它能自動將溫度信號轉(zhuǎn)換成數(shù)字信號輸入給單片機

22、的P3.4口,檢測靈敏,速度較快。模塊電路如圖3.9: 圖3.9 溫度檢測電路 3.2.7 按鍵控制電路 設計中利用五個按鍵控制,系統(tǒng)的啟、停,模式選擇,以及手控模式下的風扇轉(zhuǎn)速增減(默認為溫控模式),分別通過單片機I/O口的P0.0-P0.4輸入,并且P0口加上拉電阻。電路如圖3.10: 圖3.10 按鍵控制電路 3.2.8 報警及電機電路 高溫報警和按鍵發(fā)聲采用同一電路,通過單片機的P1.2輸出信號經(jīng)ULN2003后控制此部分,而電機的控制則由單片機P1.3輸出調(diào)制后的波形經(jīng)ULN2003后

23、驅(qū)動電機。電路如圖3.11 圖3.11 報警及電機電路 3.3 模塊聯(lián)接總電路 根據(jù)以上各個部分的介紹,最后聯(lián)接成整體,實現(xiàn)從DS18B20中采集溫度,將溫度值一數(shù)字信號送入單片機中經(jīng)過處理后控制顯示以及風扇轉(zhuǎn)速,隨著溫度的變化,顯示和電機的轉(zhuǎn)速也會發(fā)生變化,并且進入手控模式后,通過按鍵也可以人為控制轉(zhuǎn)速,其聯(lián)接總圖如3.12: 圖3.12 模塊連接總電路 4.軟件設計 超預設溫度報警 4.1 程序設計原理及所用工具 開始 溫度升高電機轉(zhuǎn)速加快,溫度降低電機轉(zhuǎn)速減慢 溫控模式 DS18B20、中斷、定時器初始化 中斷 非溫

24、控模式、手動調(diào)速 查詢各部件、等待18B20初始數(shù)據(jù) 按下“加速”電機加速,按下“減速”電機減速 從18B20讀出溫度并顯示 “關(guān)閉”按鍵,結(jié)束 圖4.1 程序設計流程圖 本設計采用51單片機C語言進行編程,采用模塊化思想,即將其分為很多個模塊,有DS18B20模塊,顯示模塊,PWM調(diào)制模塊,高溫報警模塊,按鍵控制模塊,編程所用的軟件是Keil 4,下載程序用到了STC_ISP_V488軟件,程序調(diào)試時仿真用到Proteus 7.7。 4.2 主程序設計 主程序中主要完成將各模塊

25、程序聯(lián)接起來,并且不斷循環(huán)進行,達到連續(xù)工作,并且會進行狀態(tài)查詢,當開啟后才能執(zhí)行程序,否則不斷待機查詢,最后進行是否關(guān)閉查詢,若沒有關(guān)閉,正常執(zhí)行,若關(guān)閉則進入待機查詢開啟鍵狀態(tài)。流程框圖見圖4.1 4.3主要模塊子程序設計 4.3.1 DS18B20復位與檢測子程序 本子程序中首先進行DS18B20的復位并查詢是否準備好,然后寫入控制,讀出溫度: void DS18b20_reset(void)//復位 { bit flag=1; while (flag) { while (flag) { DQ = 1; delay(1);

26、 DQ = 0; delay(50); // 550us DQ = 1; delay(6); // 66us flag = DQ; } delay(45); //延時500us flag = ~DQ; } DQ=1; } 從DS18B20中讀取溫度的程序如下: int read_temp(void) { u8 temp_data[2]; // 讀出溫度暫放 int temp; DS18b20_reset(); // 復位 write_byte(0xCC); // 發(fā)Skip ROM

27、命令 write_byte(0xBE); // 發(fā)讀命令 temp_data[0]=read_byte(); //溫度低8位 temp_data[1]=read_byte(); //溫度高8位 temp = temp_data[1]; temp <<= 8; temp |= temp_data[0]; temp >>= 4; //精度0.0625,所以除以16 return temp; } 4.3.2 顯示子程序 將溫度讀出轉(zhuǎn)換后的溫度數(shù)據(jù)分別存在70H-73H中,在本子程序中將其讀出從P0口輸出控制數(shù)碼管顯示。 代碼如下

28、if(get_flag) { TH0 = 0xfc; //裝入初值 1MS TL0 = 0x17; start_temp_sensor(); delay(5); temperature = (int)read_temp(); str[0] = tab1[temperature%10]; str[1] = tab[temperature/10%10]; get_flag=0; } 4.3.4 按鍵掃描子程序 本子程序是進行控制模式選擇按鍵查詢,并且進入手控模式時的檔位調(diào)節(jié)查詢,并且伴有按鍵發(fā)聲,按鍵掃描子

29、程序代碼: void key( ) { if(!P10)//開電機 { while(!P10); M_OPEN = 1; } if(!P11)//關(guān)電機 { while(!P11); M_OPEN = 0; } if(!P12)//電機加速 { while(!P12); if(PWM_VALUE<50) PWM_VALUE++; } if(!P14)//電機減速 { while(!P14); if(PWM_VALUE>0) PWM_VALUE--; } if(!P15)//溫控 {

30、 while(!P15); T_CONTRL = 1; } if(!P16)//不溫控 { while(!P16); T_CONTRL = 0; } } 5系統(tǒng)調(diào)試 5.1 硬件調(diào)試 在完成電路圖的仿真之后,進入了實物設計,實物設計主要是對自己所設計的電路圖進去焊接,用到自己電路圖上的所用器件,如果實在沒有的,可以用功能相似的器件來代替。在完成第一部分的焊接后,要對一些部件進行電壓的測量,第一部分的焊接主要焊接電阻,電源,USB接口,發(fā)光二極管等,焊接完成后,我們接上USB接口,發(fā)現(xiàn)電路板上的USB接口處的發(fā)光二極管不亮,開始并不明確問題所在,

31、之后我們使用萬用表對USP接口,穩(wěn)壓二極管,電源進行電壓的測量,最后我們發(fā)現(xiàn)時總控制開關(guān)安反,最后我們只好將按鍵取下重新安裝,然后再加電測量測量出來的電壓值均在+5.00V左右,并且發(fā)光二極管發(fā)亮,說明之后焊接的電路正確,之前存在問題。 之后我們斷開電源再將電路素所需要的芯片的連接板和電容等器件焊接到電路板上,焊接時必須注意芯片和電容的正負極,例如電容的正負極判斷為“長正短負”,就是電容所接的長的那根導線接正極,短的那根接負極。在焊接完成之后,我們再次接通電源和USP接口的電源,按下開關(guān)電源,USB接口處的發(fā)光二極管再次發(fā)亮,此時再次用萬用表對電路板的電源,穩(wěn)壓二極管,USB接口及其各個芯

32、片和單片機進行電壓的測量,測量出來的全部都在+5.00V,說明電路正確,此時我們將所用的芯片包括單片機接上電路板,然后開啟電源,將程序載入單片機運行整個電路,我們發(fā)現(xiàn)LED數(shù)碼管顯示存在問題,主要是第二位位選可能存在問題,并且顯示較暗,后來我們總結(jié)發(fā)現(xiàn)是LED直接由單片機接出負載,而單片機的接負載能力很差,所以很暗,并且LED存在問題,最后在老師的指導下,根據(jù)原理圖,靈活做一些變動,添加了電阻、三極管驅(qū)動,另外,更換了LED顯示屏,使其顯示非常正常和明亮。 由于老師給的外部電路是萬用板,所以我們必須自己焊接電路,并且要自己連接導線,焊接完成后,將程序下載到單片機中運行,發(fā)現(xiàn)電機不能正常轉(zhuǎn)動,

33、而且報警器不斷報警,最后我們檢測發(fā)現(xiàn),ULN2003的公共端我們沒有接地,因此我們將其接地后在進行調(diào)試,發(fā)現(xiàn)一切都正常??偨Y(jié)本次自己動手焊接和調(diào)試電路發(fā)現(xiàn)自己在動手能力方面還有很多不足,但是能夠自己在老師的指導下找出問題解決問題,自己覺得這是一個很大的進步。 5.2 軟件調(diào)試 軟件調(diào)試是一個漫長的過程,一個小的疏忽就可能造成軟硬件結(jié)合時出現(xiàn)錯誤。我們在本次調(diào)試中主要出現(xiàn)了一個錯誤,就是中斷程序處理不當,導致整個系統(tǒng)癱瘓,經(jīng)過仔細整理后,才找出問題: 最初的程序段: main() { unsigned char TempH,TempL; TMOD=0x01;//定時器設置 TH0

34、=0xef; TL0=0xf0; IE=0x82; TR0=1; P2=0x00; count=0; while(1) { str[2]=tab[(temp%1000)/100]; //十位溫度 str[3]=tab1[(temp%100)/10]; //個位溫度,帶小數(shù)點 str[4]=tab[temp%10];//小數(shù) if(flag_get==1) //定時讀取當前溫度 { temp=ReadTemperature(); flag_get=0; }

35、 } 改進后的程序段: main (void) { //TMOD=0x11; //T0方式1計數(shù) T1方式1計數(shù) TMOD |= 0x01; TH0 = 0xfc; //裝入初值 1MS TL0 = 0x17; TR0 = 1; //啟動t0 ET0 = 1; EA = 1; P2 = 0x00; LED = 1; PWM = 0; DS18B20_Init(); while(1) { key(); if(get_flag) { TH0 = 0xfc; //裝

36、入初值 1MS TL0 = 0x17; start_temp_sensor(); delay(5); temperature = (int)read_temp(); str[0] = tab1[temperature%10]; str[1] = tab[temperature/10%10]; get_flag=0; } } } 6 系統(tǒng)功能、指標參數(shù) 6.1 系統(tǒng)功能 該系統(tǒng)是針對電腦散熱而設計,能夠及時監(jiān)測機箱內(nèi)的實時溫度,并自動將溫度值轉(zhuǎn)換成數(shù)字信號送入單片機,然后在LED顯示頻上準確無誤的顯示;通

37、過對送入溫度進行分析,判斷溫度有無達到最大溫度,如果達到就進行報警,給人們警示。當我們選擇溫控模式時,就將送入的溫度值參與PWM調(diào)制,當溫度不斷增大時,風扇轉(zhuǎn)速不斷增加,反知,隨著溫度減小,風扇轉(zhuǎn)速也減小;當進入手控模式時,我們可以任意增大減小風扇的轉(zhuǎn)速,同時當我們對按鍵進行操作時,報警模塊LED點亮提醒操作成功,從而設計顯得人性化,舒適化。 6.2 指標參數(shù) 在主電路板中需要測量出的參數(shù):電源電壓,各個芯片的電壓以及單片機的電壓,以下為各電壓的值: 1.電源電壓的測量值為5.00V 3.芯片的電壓值:ULN2003的電壓測量值為5.02V,MAX232的電壓測量值為5.00V,4.單

38、片機的電壓值為4.98V 5.電機運行時其兩端的電壓是5.00V 所以對于電源為5V電路來說,以上參數(shù)都是正確的。 其余的參數(shù)如下: 1.電路板中單片機的晶振電路中晶振元件12MHZ 2.高溫報警電路中的限流電阻的大小為100 3.顯示模塊中的電阻大小為4.7K 并且在系統(tǒng)正常工作狀態(tài)下,各個模塊的電壓,電阻等參數(shù)均正常。 7 結(jié)論 本設計通過硬件焊接,軟件編程以及重要的軟硬件調(diào)試之后,實現(xiàn)了最初預想的各項功能,雖不說一帆風順,但完成了要求。并且除了要求的溫度讀取、顯示、控制電機等基本功能外,我們還增加了手控模式,高溫報警,按鍵發(fā)聲提醒等功能,使設計更加人性化。

39、 智能化的電腦散熱系統(tǒng)不僅能夠用于電腦的散熱,其實也可以用于普通風扇的設計之中,本設計可以說是多方面的考慮。而增加手控模式的好處在于,不同電腦的性能和CPU產(chǎn)熱量也不太一樣,而本設計對溫度控制電機的靈敏度相當高,對于溫度過高的電腦或者溫度變化很快的電腦而言,比較適宜。對于一些電腦散熱不是很多,溫度變化比較穩(wěn)定的電腦,可以采用手控設定檔位,減小能耗,使散熱系統(tǒng)壽命更長。對于很多用按鍵控制的系統(tǒng)沒有添加按鍵提醒部件,雖說可以減小能耗,但是對于操作不是很明確,當你按下時,如果變化不大的情況下,你不能確定操作是否成功;倘若有了提醒裝置,每次操作成功都有提醒,既能給人們帶來方便,也能方便檢修。

40、 設計雖然成功了,但是并沒有正在用于電腦內(nèi)部散熱,若條件允許便能真正檢測出系統(tǒng)設計的有效性和安全性。本系統(tǒng)的設計集中的對我們數(shù)模電電路知識,C語言學習,以及實際動手能力進行了綜合性的考察,由于我們對一些器件的了解程度不是很高,所以,對于我們的設計還有很多改進的地方,比如:直流電機可以改成效率更高,能耗更低的電機等。 8 總結(jié)與體會 通過本次課程設計對很多學科有了深入的學習和理解,對電路也有了新的體會,在設計過程中,主要做了兩方面的設計:一就是軟件的設計。二是硬件電路的設計。在軟件設計中本系統(tǒng)的軟件部分主要是利用C語言來設計的,更加深入的鞏固了我們的C語言知識,增加了我們的編程能力和經(jīng)驗。

41、 簡單儀器原理與設計的課程是通信工程專業(yè)學生所要掌握的,是實踐教學不可缺少的重要環(huán)節(jié)。通過課程設計,不僅能提高學生學習智能儀器的興趣,加深對智能儀器的理解,開闊視野,也能為畢業(yè)設計打下良好的基礎(chǔ)。學生基本上經(jīng)歷了單片機應用系統(tǒng)開發(fā)的全過程,擴大了學生實踐的內(nèi)容,從而取得了較好的教學實踐效果。任何收獲都要付出巨大的努力,我們思考,閱讀,動手,這讓我們受益匪淺,其樂無窮。 經(jīng)過一個星期的努力,我們終于成功的完成了本次課程設計。再設計過程中我們又很多收獲當然也遇到很多困難。譬如說不能把書本上的知識與實踐相結(jié)合。還有當我們第一次把硬件電路做出來以后就在調(diào)試時發(fā)現(xiàn)LED工作不正常,原來是我們沒有按照

42、管腳的正確順序連接電路來驅(qū)動LED顯示,在這個過程中培養(yǎng)了我們發(fā)現(xiàn)問題,思考問題,解決問題的能力,也增加了我們實際動手實踐的能力。 在這次設計的軟件部分是使用C語言,考慮到剛剛學過,并且想通過本次設計加深對C語言的理解和熟悉,增強編程能力。C語言執(zhí)行效率較高,代碼精簡;它的可讀性較好,容易理解。通過設計也能大大加深對軟硬件的結(jié)合掌握和學習。 本次設計增強了我們查閱資料的方法和技巧,更是大大的提高了我們自學的能力,同時也增強了我們的動手能力。 通過本次課程設計,我們在對這門技術(shù)上有了更深刻的認識,也從實踐中去感受到了技術(shù)給我們設計帶來的改變與進步。我們不僅基本掌握了軟件的使用,還對電子設計

43、的思路有了更多的認識。 在這一個星期的課程設計過程中,我們?nèi)齻€人一起查資料、一起討論、一起交流,最終我們決定了設計方案并成功完成設計,這些都培養(yǎng)了我們的團結(jié)合作精神,這次設計讓我們受益匪淺。 9參考文獻 [1] 譚浩強. C語言程序設計(第三版)[J].北京:清華大學出版社,2005 [2]張毅剛、彭喜元.單片機原理及應用[M].北京:高等教育出版社,2003 [3] 張海兵、李敏.PROTEL電路設計實例與分析[J]. 北京:人民郵電出版社,2005 [4] 李春葆、金晶.C語言程序設計輔導[M].北京:清華大學出版社,2007 [5] 楊將新、李華軍.單片機程序設計及應用(第

44、三版)[M]. 北京:電子工業(yè)出版社,2006 [6] 魯捷、焦振宇.PROTEL 2004 電路設計[M]. 北京:清華大學出版社,2006 [7]康光華 陳大欽 電子技術(shù)基礎(chǔ)模擬部分(第四版)[M].高等教育出版社.1987 [8]謝自美 主編.電子線路設計.實驗.測試(第二版)[M].華中理工大學出版社,2005 [9] 王為青,邱文勛. 51單片機開發(fā)案例精選[J].人民郵電出版社,2001,(5):45-47 [10] 邊海龍,孫永奎. 單片機開發(fā)與典型工程項目實例詳解[J].電子工業(yè)出版社,2008 [11] 康光華、鄒壽彬.電子技術(shù)基礎(chǔ)數(shù)字部分(第五版)[M]. 北京

45、:高等教育出版社,2006 [12]謝維成,劉勇.微機原理與接口技術(shù)[M].華中科技大學出版社,2009 [13]張毅剛.單片機原理及應用[M].高等教育出版社,2003 附錄1:ISIS仿真圖、PCB板圖、實物圖 附圖1、ISIS仿真圖 在單片機最小系統(tǒng)的搭建上采用了12MHZ的晶振作為晶振電路核心,復位選用按鍵復位方式,溫度檢測模塊使用P3.4來接收數(shù)據(jù),按鍵模塊選用P1口來控制,數(shù)碼管選用P0口發(fā)送段碼,用P2口發(fā)送位碼,P3.0口用于報警電路,

46、實際上還有大把的IO口資源可以使用,還可以實現(xiàn)更多的功能。仿真的時候最大的問題是ULN2003模塊的搭建以及使用,由于之前沒有對它理解透徹,導致出了許多問題,但是最后在細心查資料之后終于將它調(diào)試成功。 附圖2、實物圖 在實物調(diào)試上面按鍵模塊,電機模塊算是比較順利的,但是在數(shù)碼管顯示溫度模塊上面一直有問題,調(diào)試了很久都沒有進展,在上網(wǎng)查了許多資料后才知道原因是中斷干擾了數(shù)碼管掃描,還有一個問題是數(shù)碼管的管腳排列,ABCDEFGH DP必須對應管腳11、7、4、2、1、10、 5 、3來依次連接P0.0 ~ P0.7 。 附圖3、PCB圖 此PCB圖是用AD

47、09畫的,AD09相對于PROTEL來說,庫更多,且更容易與電腦兼容,操作簡便。把原理圖連接好之后,剩下的就是布線了,總的來說還是比較順利的,并不麻煩。 附錄2:程序源代碼 #include #include #include typedef unsigned int u16; typedef unsigned char u8; unsigned char code tab[]= {0xc0,0xf9,0xa4,0xb0,

48、0x99,0x92,0x82,0xf8,0x80,0x90};//數(shù)碼管段碼表共陽 unsigned char code tab1[]= {0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}; #define nops(); {_nop_(); _nop_(); _nop_(); _nop_();} //定義空指令 #define PWM_MAX 20 #define TEMP_MIN 20 #define TEMP_MAX 80 u16 str[2]; int temperature; //溫度值

49、 u8 PWM_VALUE=0; //PWM值 bit M_OPEN=0; //默認電機關(guān) bit T_CONTRL=1; //默認溫控 bit get_flag=1; //溫度采集 sbit DQ =P1^7; //溫度DS18B20 sbit LED=P3^0; //報警 sbit PWM=P3^7; //PWM輸出 sbit P10=P1^0; //開 sbit P11=P1^1; //關(guān) sbit P12=P1^2; //加速 sbit P14=P1^4; //減速 sbit P15=P1^5;

50、 //溫控 sbit P16=P1^6; //不溫控 void delay(unsigned int i)//延時函數(shù) { while(i--); } void DS18b20_reset(void)//復位 { bit flag=1; while (flag) { while (flag) { DQ = 1; delay(1); DQ = 0; delay(50); // 550us DQ = 1; delay(6); // 66us flag = DQ;

51、 } delay(45); //延時500us flag = ~DQ; } DQ=1; } /*18B20寫1個字節(jié)函數(shù),向1-WIRE總線上寫一個字節(jié)*/ void write_byte(u8 val) { u8 i; for (i=0; i<8; i++) { DQ = 1; _nop_(); DQ = 0; nops(); //4us DQ = val & 0x01; //最低位移出 delay(6); //66us val >>= 1; //右移一

52、位 } DQ = 1; delay(1); } /*18B20讀1個字節(jié)函數(shù),從1-WIRE總線上讀取一個字節(jié)*/ u8 read_byte(void) { u8 i, value=0; for (i=0; i<8; i++) { DQ=1; _nop_(); value >>= 1; DQ = 0; nops(); //4us DQ = 1; nops(); //4us if (DQ) value|=0x80; delay(6); //66us } DQ=1

53、; return(value); } /*啟動溫度轉(zhuǎn)換*/ void start_temp_sensor(void) { DS18b20_reset(); write_byte(0xCC); // 發(fā)Skip ROM命令 write_byte(0x44); // 發(fā)轉(zhuǎn)換命令 } /*讀出溫度*/ int read_temp(void) { u8 temp_data[2]; // 讀出溫度暫放 int temp; DS18b20_reset(); // 復位 write_byte(0xCC); // 發(fā)Skip ROM命令 write_byt

54、e(0xBE); // 發(fā)讀命令 temp_data[0]=read_byte(); //溫度低8位 temp_data[1]=read_byte(); //溫度高8位 temp = temp_data[1]; temp <<= 8; temp |= temp_data[0]; temp >>= 4; //精度0.0625,所以除以16 return temp; } /*********18B20初始化*****************/ void DS18B20_Init() { DS18b20_reset(); write_byte(

55、0xCC);//跳過ROM write_byte(0x4E);//寫寄存器 //write_byte(0x7F);//將配置寄存器配置為12位精度 write_byte(0x7d);//將配置寄存器配置為9位精度 write_byte(0x1);//將配置寄存器配置為9位精度 write_byte(0x1F);//將配置寄存器配置為9位精度 DS18b20_reset(); } /****************按鍵掃描**************/ void key( ) { if(!P10)//開電機 { while(!P10); M

56、_OPEN = 1; } if(!P11)//關(guān)電機 { while(!P11); M_OPEN = 0; } if(!P12)//電機加速 { while(!P12); if(PWM_VALUE<50) PWM_VALUE++; } if(!P14)//電機減速 { while(!P14); if(PWM_VALUE>0) PWM_VALUE--; } if(!P15)//溫控 { while(!P15); T_CONTRL = 1; } if(!P16)//不溫控 { whil

57、e(!P16); T_CONTRL = 0; } } /***************主函數(shù)********************/ main (void) { //TMOD=0x11; //T0方式1計數(shù) T1方式1計數(shù) TMOD |= 0x01; TH0 = 0xfc; //裝入初值 1MS TL0 = 0x17; TR0 = 1; //啟動t0 ET0 = 1; EA = 1; P2 = 0x00; LED = 1; PWM = 0; DS18B20_Init(); while(1) {

58、 key(); if(get_flag) { TH0 = 0xfc; //裝入初值 1MS TL0 = 0x17; start_temp_sensor(); delay(5); temperature = (int)read_temp(); str[0] = tab1[temperature%10]; str[1] = tab[temperature/10%10]; get_flag=0; } } } /*********t0定時*中斷函數(shù)*************/ u16 count=

59、0; //定時次數(shù),每次1ms u16 count1=0; u8 temp_value=0; void t0() interrupt 1 using 2 { TH0=0xfc; //重裝t0 TL0=0x17; if(count==PWM_MAX) count=0; else count++; /*電機控制*/ if(T_CONTRL)//溫控 { if(temperature>TEMP_MAX) { temp_value = PWM_MAX; LED = 0; } else if

60、(temperature>TEMP_MIN) { temp_value = (temperature-TEMP_MIN)*PWM_MAX/ (TEMP_MAX-TEMP_MIN); LED = 1; } else { temp_value = 0; LED = 1; } if(M_OPEN)//電機開 { if(count==0) PWM = 1; if(count==temp_value) PWM=0; } else { PWM=0; } } el

61、se { if(M_OPEN)//電機開 { if(count==0) PWM = 1; if(count==PWM_VALUE) PWM=0; } else { PWM=0; } } /*數(shù)碼管掃描和溫度檢測*/ if(count%10==0)//10ms { if(count1==50) count1=0; else count1++; } if(count1==0) { get_flag=1; } if(count1%2==0) { P2=0x80; P0=str

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!