智能電腦散熱系統(tǒng)設(shè)計(jì)(正文)
《智能電腦散熱系統(tǒng)設(shè)計(jì)(正文)》由會(huì)員分享,可在線閱讀,更多相關(guān)《智能電腦散熱系統(tǒng)設(shè)計(jì)(正文)(38頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第 o 頁 西華大學(xué)電氣信息學(xué)院智能化電子系統(tǒng)設(shè)計(jì)報(bào)告 目錄 1 前言 . 1 2、 總體方案設(shè)計(jì) . 2 2.1 設(shè)計(jì)內(nèi)容 . 2 2.2 方案比較 . 2 2.3 方案論證 . 3 2.4 方案選擇 . 3 3、 單元模塊電路簡(jiǎn)介與設(shè)計(jì) . 4 3.1 本系統(tǒng)部分器件介紹 . 4 3.1.1 DS18B20 溫度傳感器簡(jiǎn)介 . 4 3.1.2 STC89C52RO 單片機(jī)簡(jiǎn)介. 4 3.1.3 ULN2003 芯片簡(jiǎn)介 . 5 3.2 單元模塊電路設(shè)計(jì) . 6 3.2.1 電源電路 . 6 3.2.2 單片機(jī)主芯片電路 . 7 3.2.3 時(shí)鐘電路 . 7 3.2.4 復(fù)位電路 . 8 3
2、.2.5 顯示電路 . 8 3.2.6 溫度檢測(cè)電路 . 9 3.2.7 按鍵控制電路 . 9 3.2.8 報(bào)警及電機(jī)電路 . 9 3.3 模塊連接總電路 . 10 4、 軟件設(shè)計(jì) . 11 4.1 程序設(shè)計(jì)原理及所用工具 . 11 4.2 主程序設(shè)計(jì) . 11 4.3 主要模塊主程序設(shè)計(jì) . 12 5、 系統(tǒng)調(diào)試 . 15 6、 系統(tǒng)功能、指標(biāo)參數(shù) . 18 7、 結(jié)論 . 19 &總結(jié)與體會(huì) . 20 第 o 頁 9、參考文獻(xiàn) . 21 附錄 1: ISIS 仿真圖、PCB 板圖、實(shí)物圖 附錄 2:程序源代碼第 1 頁 西華大學(xué)電氣信息學(xué)院智能化電子系統(tǒng)設(shè)計(jì)報(bào)告 / 、八 1 前言
3、 現(xiàn)代生活,電腦已經(jīng)成為人們生活中不可缺少的一部分。無論筆記本電腦還是臺(tái)式 電腦,人們?cè)谶x擇的時(shí)候都會(huì)考慮到它的散熱性能, 一個(gè)好的散熱系統(tǒng)能夠保證電腦的 高速正常運(yùn)行,給 CPU 足夠的空間進(jìn)行高負(fù)載的活動(dòng),才能享受計(jì)算機(jī)技術(shù)給我們生 活帶來的無窮魅力,可見一個(gè)好的散熱系統(tǒng),對(duì)電腦而言是多么的重要。但是,計(jì)算機(jī) 部件中大量使用的是集成電路,而眾所周知,高溫是集成電路的大敵。高溫不但會(huì)導(dǎo)致 系統(tǒng)運(yùn)行不穩(wěn),使用壽命縮短,甚至有可能使某些部件燒毀。導(dǎo)致高溫的熱量不是來自 計(jì)算機(jī)外,而是計(jì)算機(jī)內(nèi)部,或者說是集成電路內(nèi)部。散熱器的作用就是將這些熱量吸 收,然后發(fā)散到機(jī)箱內(nèi)或者機(jī)箱外,保證計(jì)算機(jī)部件的溫
4、度正常。多數(shù)散熱器通過和發(fā) 熱部件表面接觸,吸收熱量,再通過各種方法將熱量傳遞到遠(yuǎn)處, 比如機(jī)箱內(nèi)的空氣中, 然后機(jī)箱將這些熱空氣傳到機(jī)箱外,完成計(jì)算機(jī)的散熱。 說到計(jì)算機(jī)的散熱器,我們最常接觸的就是 CPU 的散熱器。散熱器通常分為主動(dòng) 散熱和被動(dòng)散熱兩種;前者以風(fēng)冷散熱器較為常見,而后者多為散熱片。細(xì)分散熱方式, 又可分為風(fēng)冷,液冷,半導(dǎo)體制冷,壓縮機(jī)制冷等等。其中,液冷 半導(dǎo)體制冷及壓縮 機(jī)制冷要么技術(shù)不成熟,要求高,能耗大;要么體積受限,價(jià)格昂貴。 風(fēng)冷散熱器作為區(qū)別于水冷散熱器的一個(gè)主流產(chǎn)品類別,不斷的引領(lǐng)著整個(gè) IT 散 熱市場(chǎng)的前進(jìn)和創(chuàng)新因此,風(fēng)冷是最常見,性價(jià)比最高的散熱方式,
5、我們?cè)O(shè)計(jì)的 智能 電腦散熱系統(tǒng)”就是利用溫度傳感器實(shí)現(xiàn)對(duì)外界溫度的感知,再利用單片機(jī)編程控制風(fēng) 扇的轉(zhuǎn)速,從而實(shí)現(xiàn)溫度的自動(dòng)調(diào)節(jié),以達(dá)到散熱目的。正是因?yàn)槿诤狭藴囟葌鞲衅骷?術(shù)和單片機(jī)技術(shù),使得本作品兼智能化和自動(dòng)化于一體。而溫控調(diào)速技術(shù)的優(yōu)點(diǎn)在于其 能有效地提高散熱器的的工作效率,節(jié)約能源,性價(jià)比高,適用范圍廣泛。且本設(shè)計(jì)比 較人性化,由于不同的電腦的散熱能力不同,對(duì)于散熱能力很差的電腦而言,只憑借溫 控可能無法實(shí)現(xiàn)正常降溫,就需要人為控制來調(diào)節(jié)適合電腦的散熱,因此我們?cè)黾恿耸?控模式。 本設(shè)計(jì)中增加了實(shí)時(shí)溫度顯示,讓我們隨時(shí)看著 CPU 的具體溫度,從而消除憂慮, 并且,在這基礎(chǔ)之上, 還
6、增加了高溫報(bào)警功能, 避免你的電腦因?yàn)闇囟冗^高燒毀一些部 件甚至是 CPU。因此,我們的設(shè)計(jì)更加人性化,更加舒適。第 2 頁 西華大學(xué)電氣信息學(xué)院智能化電子系統(tǒng)設(shè)計(jì)報(bào)告 2 總體方案設(shè)計(jì) 2.1 設(shè)計(jì)內(nèi)容 根據(jù)對(duì)環(huán)境溫度的測(cè)量控制小風(fēng)扇的轉(zhuǎn)速,并用數(shù)碼管顯示當(dāng)前溫度數(shù)值,溫度升 高風(fēng)扇轉(zhuǎn)速提高,溫度降低風(fēng)扇轉(zhuǎn)速下降。同時(shí)配備按鍵實(shí)現(xiàn)控制風(fēng)扇的啟、停,溫控 模式、手控模式、手控檔位加,手控檔位減,另外還要實(shí)現(xiàn)溫度過高自動(dòng)報(bào)警,以及按 鍵按下時(shí)發(fā)聲,提醒操作成功。 2.2 方案比較 方案一:選用熱敏電阻作為感測(cè)溫度的核心元件,通過運(yùn)算放大器放大由于溫度變 化引起熱敏電阻電阻的變化、進(jìn)而導(dǎo)至的輸出電
7、壓變化的微弱電壓變化信號(hào),再用 AD 轉(zhuǎn)換芯片 ADC0809 將模擬信號(hào)轉(zhuǎn)化為數(shù)字信號(hào)輸入 STC89C52RC 單片機(jī)處理。采用液 晶顯示屏 LCD 顯示溫度,電機(jī)采用數(shù)模轉(zhuǎn)換芯片 AD0832 控制,由單片機(jī)根據(jù)當(dāng)前溫度 值送出相應(yīng)數(shù)字量到 AD0832 由 AD0832 產(chǎn)生模擬信號(hào)產(chǎn)生 PWM 波,控制直流電機(jī)轉(zhuǎn)速。 如圖 2.1 LED 顯示 7S- 圖 2.1 系統(tǒng)總體框圖 方案二:采用數(shù)字式集成溫度傳感器 DS18B20 乍為感測(cè)溫度的核心元件,直接輸出 數(shù)字溫度信號(hào)輸入 STC89C52RC 單片機(jī)處理,采用四位共陽數(shù)碼管顯示溫度,采用動(dòng) 態(tài)掃描顯示方式,并且采用對(duì)單片機(jī)編程
8、輸出 PWM 調(diào)制波形經(jīng) ULN2003 驅(qū)動(dòng)后直接控制 電機(jī)轉(zhuǎn)速。如圖 2.2 熱 八、 、 敏 器 件 I - 89C52 單片機(jī) 0 控制電機(jī) 報(bào)警裝置 按 鍵 控 制 V 第 3 頁 圖 22 系統(tǒng)總體框圖 2.3 方案論證 方案一:此方案能夠?qū)崿F(xiàn)設(shè)計(jì)的功能,采用熱敏電阻有價(jià)格便宜、元件易購的優(yōu)點(diǎn), 但熱敏電阻對(duì)溫度的細(xì)微變化不敏感,在信號(hào)采集、放大、轉(zhuǎn)換過程中還會(huì)產(chǎn)生失真和 誤差,并且由于熱敏電阻的 R-T 關(guān)系的非線性,其本身電阻對(duì)溫度的變化存在較大誤差, 雖然可以通過一定電路予以糾正,但不僅將使電路復(fù)雜穩(wěn)定性降低,而且在人體所處溫 度環(huán)境溫度變化中難以檢測(cè)到小的溫度變化。但是液晶
9、顯示模塊價(jià)格昂貴,驅(qū)動(dòng)程序復(fù) 雜。雖然用 DA 轉(zhuǎn)化芯片產(chǎn)生PWMS 制波能夠?qū)崿F(xiàn),但是 D/A 轉(zhuǎn)換芯片價(jià)格較高,與其 溫控狀態(tài)下單片機(jī)直接編程相比性價(jià)比不高。 方案二:本方案也能正常實(shí)現(xiàn)設(shè)計(jì)的功能,并且由于數(shù)字式集成溫度傳感器 DS18B20 的高度集成化,大大降低了外接放大轉(zhuǎn)換等電路的誤差因素,溫度誤差很小,并且由于 其感測(cè)溫度的原理與上述方案的原理有著本質(zhì)的不同,使得其溫度分辨力極高。溫度值 在器件內(nèi)部轉(zhuǎn)換成數(shù)字量直接輸出,簡(jiǎn)化了系統(tǒng)程序設(shè)計(jì),又由于該傳感器采用先進(jìn)的 單總線技術(shù),與單片機(jī)的接口變的非常簡(jiǎn)潔,抗干擾能力強(qiáng)。 LED 數(shù)碼管顯示,成本低 廉,顯示溫度明確醒目,在夜間也能看
10、見,功耗極低,顯示驅(qū)動(dòng)程序的編寫也相對(duì)簡(jiǎn)單, 這種顯示方式得到廣泛應(yīng)用。 2.4 方案選擇 通過上面兩種方案的論證比較,中和性價(jià)比和復(fù)雜度,我們選擇第二種方案第 4 頁 3.單兀模塊電路簡(jiǎn)介與設(shè)計(jì) 3.1 本系統(tǒng)部分器件介紹 3.1.1 DS18B20 溫度傳感器簡(jiǎn)介 DS18B20 單線數(shù)字溫度傳感器是 Dallas 半導(dǎo)體公司開發(fā)的世界上第一片支持“一 線總線”接口的溫度傳感器。它具有 3 引腳 TO 92 小體積封裝形式。溫度測(cè)量范圍為 -55 C +125C,可編程為 9 位 12 位 A/D 轉(zhuǎn)換精度,測(cè)溫分辨率可達(dá) 0.0625 C。 被測(cè)溫度用符號(hào)擴(kuò)展的 16 位數(shù)字量方式串行輸
11、出。工作電壓支持 3V5.5V 的電壓范 圍,既可在遠(yuǎn)端引入,也可采用寄生電源方式產(chǎn)生。DS18B20 還支持“一線總線”接口, 多個(gè) DS18B2 可以并聯(lián)到 3 根或2 根線上,CPU 只需一根端口線就能與諸多 DS18B20 通 信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。它還有存儲(chǔ)用戶定義報(bào) 警溫度等功能。 其管腳排列如圖 3.1 所示,DQ 為數(shù)字信號(hào)端,GND 為電源地,VDD 為電源輸入端。 圖 3.1 DS18B20 外形及管腳 3.1.2 STC89C52RC 單片機(jī)簡(jiǎn)介 STC89C52R (是一種帶 4K 字節(jié)閃存可編程可擦除只讀存儲(chǔ)器 (FPERO) 256
12、B 片內(nèi) RAM 的低電壓, 高性能 CMOS 啦微處理器。 該器件采用 ATMEL 高密度非易失存儲(chǔ)器制造技術(shù) 制造,與工業(yè)標(biāo)準(zhǔn)的 MCS-51 指令集和輸出管腳相兼容。由于將多功能 8 位 CPU 和閃爍 存儲(chǔ)器組合在單個(gè)芯片中,STC 的 STC89C52R(是 一種高效微控制器,為很多嵌入式控 制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。 西華大學(xué)電氣信息學(xué)院智能化電子系統(tǒng)設(shè)計(jì)報(bào)告 .J-I - -VI II -曲: TC 2 | J I I 第 5 頁 STC89C52F 單片機(jī)管腳如圖 3.2 所示: P id - J - vcc F 1 1 r ? ” PQ D IAOQI P 1 2
13、 ” 4 審 H i Fl 1 fl IF 2 AD 3 3 F 1 4 5 ” 二 PO 3 H!AD3) 9 Hi j R t F ” :5 P 1 T Kat : 3-Z r吒劇口事】 韶* P V Ci O p F 乂 w T P3 1 1V 1 0 口 ALEr PROG I HTO li 3 Z ; Pt 29 ; iIHT1 串事 E 1 f 訃 1 P3 I 42 0 1 1 WW* r 3 匚| ft :1 4 15V PJ F r ” T 3 1 I X1AL1 PJ 工 1A1 l 事常H 1 孫 PJ 1 C N- & 30 Li pa a 圖 3.2 STC8
14、9C52RC 單片機(jī)管腳 各管腳功能: VCC 供電電壓。 GND 接地。 P0 口: P0 口為一個(gè) 8 位漏級(jí)開路雙向 I/O 口,每腳可吸收 8TTL 門電流。當(dāng) P1 口 的管腳第一次寫 1 時(shí),被定義為高阻輸入。P0 能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以 被定義為數(shù)據(jù)/地址的第八位。在 FIASH 編程時(shí),P0 口作為原碼輸入口,當(dāng) FIASH 進(jìn)行 校驗(yàn)時(shí),P0 俞出原碼,此時(shí) P0 外部必須被拉高。 P1 口: P1 口是一個(gè)內(nèi)部提供上拉電阻的 8 位雙向 I/O 口,P1 口緩沖器能接收輸 出 4TTL門電流。P1 口管腳寫入 1 后,被內(nèi)部上拉為高,可用作輸入,P1 口被外部下
15、拉 為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在 FLASH 編程和校驗(yàn)時(shí),P1 口 作為第八位地接 收。 P2 口: P2 口為一個(gè)內(nèi)部上拉電阻的 8 位雙向 I/O 口,P2 口緩沖器可接收,輸出 4 個(gè) TTL門電流,當(dāng) P2 口被寫“ 1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因 此作為輸入時(shí),P2 口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2 口 當(dāng)用于外部程序存儲(chǔ)器或 16 位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2 口輸出地址的高八 位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀 寫時(shí),P2 口輸出其特殊功能寄存器的內(nèi)容。P2
16、口在 FLASH 編程和校驗(yàn)時(shí)接收高八位地 址信號(hào)和控制信號(hào)。 P3 口: P3 口管腳是 8 個(gè)帶內(nèi)部上拉電阻的雙向 I/O 口,可接收輸出 4 個(gè) TTL 門電 流。當(dāng) P3 口寫入“ 1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外 部下拉為低電平,P3 口將輸出電流(ILL )這是由于上拉的緣故。P3 口也可作為 AT89C51 的一些特殊功能口。 3.1.3 ULN2003 芯片簡(jiǎn)介 ULN2003 是大電流驅(qū)動(dòng)陣列,多用于單片機(jī)、智能儀表、PLC 數(shù)字量輸出卡等控制 第 5頁西華大學(xué)電氣信息學(xué)院智能化電子系統(tǒng)設(shè)計(jì)報(bào)告 圖 3.4 電源電路圖 第 6 頁 電路中??芍苯域?qū)
17、動(dòng)繼電器等負(fù)載。 輸入 5VTTL 電平,輸出可達(dá) 500mA/50V ULN2003 是高耐壓、大電流達(dá)林頓陳列 ,由七個(gè)硅 NPN 達(dá)林頓管組成。 該電路的特點(diǎn)如下: ULN2003的每一對(duì)達(dá)林頓都串聯(lián)一個(gè) 2.7K 的基極電阻,在 5V 的工作電壓下它能與 TTL 和 CMO 電路 直接相連,可以直接處理原先需要標(biāo)準(zhǔn)邏輯緩沖器來處理的數(shù)據(jù)。 ULN2003 是高壓大電流達(dá)林頓晶體管陣列系列產(chǎn)品,具有電流增益高、工作電壓高、 溫度范圍寬、帶負(fù)載能力強(qiáng)等特點(diǎn),適應(yīng)于各類要求高速大功率驅(qū)動(dòng)的系統(tǒng)其管腳圖如 圖 3.3 J V. IL; 1.1 圖 3.3 ULN2003 芯片引腳圖 3.2 單
18、元模塊電路設(shè)計(jì) 3.2.1 電源電路 電源電路主要是為系統(tǒng)提供電源,在本設(shè)計(jì)中,為了使電路簡(jiǎn)單,我們直接用 USB 接口提供 5V 直流電源為電路供電。下圖中的第 2 個(gè)圖是電源指示燈電路,指示是否給 系統(tǒng)加電,第 3 個(gè)圖是濾波電路,第 4 個(gè)圖是為其余芯片供電電路。電路如圖 3.4 : 1 電源模塊電路西華大學(xué)電氣信息學(xué)院智能化電子系統(tǒng)設(shè)計(jì)報(bào)告 ifF HL; J I i9 mi 7 匚亡 匚 LJ 匚 I I J J 4 4 S S匚 315 out r H 1U + l.1 Jll 卜 .TC 第 7 頁 322 單片機(jī)主芯片電路 芯片 STC89C52RC 是帶 2K 字節(jié)快閃存儲(chǔ)器
19、的 8 位單片機(jī)。P0-P3 口都是并行 I/O 口, 都可用于數(shù)據(jù)的輸入和輸出。其中 P1 的 P1.4,P1.5 P1.6, P1.7 口用于 LED 顯示的位選 控制;P1.2 高溫報(bào)警;P1.3 用于控制直流電機(jī)的轉(zhuǎn)速。P2 口用于 LED 數(shù)碼管的段選信號(hào) 輸出,P3.4 用于 DS18B20 溫度檢測(cè)值的輸入,而 P0.0-P0.4 用于按鍵的輸入檢測(cè),同時(shí) P0 口加上拉電阻。電路如圖 3.5。 IC1 STC12C5A6OS2 單片機(jī)主芯片電略 圖 3.5 單片機(jī)芯片 STC89C52 的電路圖 3.2.3 時(shí)鐘電路 單片機(jī)的晶振電路,即時(shí)鐘電路。單片機(jī)的工作流程,就是在系統(tǒng)時(shí)
20、鐘的作用下, 一條一條地執(zhí)行存儲(chǔ)器中的程序。單片機(jī)的時(shí)鐘電路由外接的一只晶振和兩只起振電容, 以及單片機(jī)內(nèi)部的時(shí)鐘電路組成,晶振的頻率越高,單片機(jī)處理數(shù)據(jù)的速度越快,系統(tǒng) 功耗也會(huì)相應(yīng)增加,穩(wěn)定性也會(huì)下降。單片機(jī)系統(tǒng)常用的晶振頻率有 6MHz 11. 0592MHz 12MHz 本系統(tǒng)采用 11. 0592MHz 晶振,電容選 30pF,電路如圖 3.6 西華大學(xué)電氣信息學(xué)院智能化電子系統(tǒng)設(shè)計(jì)報(bào)告 C1L AIM71 3*4 .1 PAA-I 1 訃12 Weil WeLZ Wd? RST RXD r-.i: iff: L r Tfl. TV1 T1 訂 PtJO 円11 T5T W PW W
21、T P2 0 P2 1 F2_2 P7 5 F2.4 P2.5 P26 M.7 P?1 P22 P?4 F2? 酣滬vcc Ik AXX4 5 A F4 - PM ADOJ CLCK2 PL1ADCI Pl Pl Pl 5 ADC5 MOSI Pie ADC4MISO PWgChECLK P3.CRXD P3 I TXD P3.2 INTO JINTT PJ JTaCLKO P3 5 TL CLKJ Pl 6 WR 円.7目 LkYl cil pOpF 圖 3.6 晶振電路圖 圖 3.8 顯示模塊電路圖 第 8 頁 324 復(fù)位電路 系統(tǒng)剛上電時(shí),單片機(jī)內(nèi)部的程序還沒有開始執(zhí)行,需要一段準(zhǔn)備時(shí)
22、間,也就是復(fù) 位時(shí)間。一個(gè)穩(wěn)定的單片機(jī)系統(tǒng)必須設(shè)計(jì)復(fù)位電路。當(dāng)程序跑飛或死機(jī)時(shí),也需要進(jìn)行 系統(tǒng)復(fù)位。復(fù)位電路有很多種,有上電復(fù)位,手動(dòng)復(fù)位等,電路如圖 3.7 : 西華大學(xué)電氣信息學(xué)院智能化電子系統(tǒng)設(shè)計(jì)報(bào)告 第 9 頁 復(fù)位電路復(fù)位電路 圖 3.7 復(fù)位電路圖 3.2.5 顯示電路 LED 采用共陽極數(shù)碼管,利用單片機(jī)的 I/O 口驅(qū)動(dòng) LED 數(shù)碼管的亮滅。設(shè)計(jì)中為了 簡(jiǎn)化電路,直接用 P1.5-P1.7 四位來作為數(shù)碼管的片選信號(hào),P2 口來作為其段碼控制 LED 數(shù)值顯示。其電路如圖 3.8: 圖 3.8 顯示模塊電路圖 第 10 頁 掀科暮模塊 第 11 頁 326 溫度檢測(cè)電路 設(shè)
23、計(jì)中利用 DS18B20 作為溫度檢測(cè),并且它能自動(dòng)將溫度信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)輸入 給單片機(jī)的 P3.4 口,檢測(cè)靈敏,速度較快。模塊電路如圖 3.9: vet - HZZI- R6 = 18BZ0 吩吩 溫度傳感器模塊溫度傳感器模塊 圖 3.9 溫度檢測(cè)電路 327 按鍵控制電路 設(shè)計(jì)中利用五個(gè)按鍵控制,系統(tǒng)的啟、停,模式選擇,以及手控模式下的風(fēng)扇轉(zhuǎn)速 增減(默認(rèn)為溫控模式),分別通過單片機(jī) I/O 口的 P0.0-P0.4 輸入,并且 P0 口加上拉 電阻。電路如圖 3.10 : Wei PTO11 ADC1 上拉電阻 GND 圖 3.10 按鍵控制電路 3.2.8 報(bào)警及電機(jī)電路 西華大學(xué)
24、電氣信息學(xué)院智能化電子系統(tǒng)設(shè)計(jì)報(bào)告 KPI VCC 圖 3.8 顯示模塊電路圖 第 12 頁 高溫報(bào)警和按鍵發(fā)聲采用同一電路, 通過單片機(jī)的 P1.2 輸出信號(hào)經(jīng) ULN2003 后控制 此部分,而電機(jī)的控制則由單片機(jī) P1.3 輸出調(diào)制后的波形經(jīng) ULN2003 后驅(qū)動(dòng)電機(jī)。電 路如圖 3.11圖 3.12 模塊連接總電路 第 13 頁 圖 3.11 報(bào)警及電機(jī)電路 3.3 模塊聯(lián)接總電路 根據(jù)以上各個(gè)部分的介紹,最后聯(lián)接成整體,實(shí)現(xiàn)從 DS18B20 中采集溫度,將溫度 值一數(shù)字信號(hào)送入單片機(jī)中經(jīng)過處理后控制顯示以及風(fēng)扇轉(zhuǎn)速,隨著溫度的變化,顯示 和電機(jī)的轉(zhuǎn)速也會(huì)發(fā)生變化, 并且進(jìn)入手控模
25、式后, 通過按鍵也可以人為控制轉(zhuǎn)速, 其 聯(lián)接總圖如 3.12 : THE 西華大學(xué)電氣信息學(xué)院智能化電子系統(tǒng)設(shè)計(jì)報(bào)告 m uamhMh 一“ - L . W FTL?:J 生別機(jī)棋Mt 電源舉塊電r-l-te 圖 3.12 模塊連接總電路 第 14 頁 XI 沁 *= 33 Tim wF 第 15 頁 西華大學(xué)電氣信息學(xué)院智能化電子系統(tǒng)設(shè)計(jì)報(bào)告 4.軟件設(shè)計(jì) 圖 4.1 程序設(shè)計(jì)流程圖 本設(shè)計(jì)采用 51 單片機(jī) C 語言進(jìn)行編程,采用模塊化思想,即將其分為很多個(gè)模塊, 有DS18B20 莫塊,顯示模塊,PWM 調(diào)制模塊,高溫報(bào)警模塊,按鍵控制模塊,編程所用 的軟件是 Keil 4,下載程序用
26、到了 STC_ISP_V488 軟件,程序調(diào)試時(shí)仿真用到 Proteus 7.7。 4.2 主程序設(shè)計(jì) 主程序中主要完成將各模塊程序聯(lián)接起來,并且不斷循環(huán)進(jìn)行,達(dá)到連續(xù)工作,并 且會(huì)進(jìn)行狀態(tài)查詢,當(dāng)開啟后才能執(zhí)行程序,否則不斷待機(jī)查詢,最后進(jìn)行是否關(guān)閉查 詢,若沒有關(guān)閉,正常執(zhí)行,若關(guān)閉則進(jìn)入待機(jī)查詢開啟鍵狀態(tài)。流程框圖見圖 4.1 西華大學(xué)電氣信息學(xué)院智能化電子系統(tǒng)設(shè)計(jì)報(bào)告 第 16 頁 4.3 主要模塊子程序設(shè)計(jì) 4.3.1 DS18B20 復(fù)位與檢測(cè)子程序 本子程序中首先進(jìn)行 DS18B20 的復(fù)位并查詢是否準(zhǔn)備好,然后寫入控制,讀出溫 度: void DS18b20_reset(voi
27、d)/復(fù)位 bit flag=1; while (flag) while (flag) DQ = 1; delay(1); DQ = 0; delay(50); / 550us DQ = 1; delay(6); / 66us flag = DQ; delay(45); 延時(shí) 500us flag = DQ; DQ=1; 從 DS18B20 中讀取溫度的程序如下: int read_temp(void) u8 temp_data2; /讀出溫度暫放 int temp; DS18b20_reset(); / 復(fù)位第 17 頁 write_byte(OxCC); / 發(fā) Skip ROM 命令 w
28、rite_byte(OxBE); / 發(fā)讀命令 temp_dataO=read_byte(); 溫度低 8 位 temp_data1=read_byte(); 溫度高 8 位 temp = temp_data1; temp = 4; 精度 0.0625 所以除以 16 return temp; 4.3.2 顯示子程序 將溫度讀出轉(zhuǎn)換后的溫度數(shù)據(jù)分別存在 70H-73H 中,在本子程序中將其讀出從 輸出控制數(shù)碼管顯示。 代碼如下 if(get_flag) TH0 = 0 xfc; / 裝入初值 1MS TL0 = 0 x17; start_temp_se nsor(); delay(5); te
29、mperature = (i nt)read_temp(); str0 = tab1temperature%10; str1 = tabtemperature/10%10; get_flag=0; 4.3.4 按鍵掃描子程序 本子程序是進(jìn)行控制模式選擇按鍵查詢,并且進(jìn)入手控模式時(shí)的檔位調(diào)節(jié)查詢,并且伴 有按鍵發(fā)聲,按鍵掃描子程序代碼: 西華大學(xué)電氣信息學(xué)院智能化電子系統(tǒng)設(shè)計(jì)報(bào)告 西華大學(xué)電氣信息學(xué)院智能化電子系統(tǒng)設(shè)計(jì)報(bào)告 P0 口 第 18 頁 void key() if(!P1O)開電機(jī) while(!P10); M_OPEN = 1; if(!P11)關(guān)電機(jī) while(!P11); M_
30、OPEN = 0; if(!P12)電機(jī)加速 while(!P12); if(PWM_VALUE0) PWM_V ALUE-; if(!P15) 溫控 while(!P15); T_CONTRL = 1; if(!P16)不溫控 while(!P16); T_CONTRL = 0; 西華大學(xué)電氣信息學(xué)院智能化電子系統(tǒng)設(shè)計(jì)報(bào)告 第 19 頁 5 系統(tǒng)調(diào)試 5.1 硬件調(diào)試 在完成電路圖的仿真之后,進(jìn)入了實(shí)物設(shè)計(jì),實(shí)物設(shè)計(jì)主要是對(duì)自己所設(shè)計(jì)的電 路圖進(jìn)去焊接,用到自己電路圖上的所用器件,如果實(shí)在沒有的,可以用功能相似的器 件來代替。在完成第一部分的焊接后, 要對(duì)一些部件進(jìn)行電壓的測(cè)量, 第一部分的
31、焊接 主要焊接電阻, 電源,USB 接 口,發(fā)光二極管等,焊接完成后,我們接上 USB 接 口,發(fā) 現(xiàn)電路板上的 USB 接口處的發(fā)光二極管不亮,開始并不明確問題所在,之后我們使用萬 用表對(duì) USP 接口,穩(wěn)壓二極管,電源進(jìn)行電壓的測(cè)量,最后我們發(fā)現(xiàn)時(shí)總控制開關(guān)安反, 最后我們只好將按鍵取下重新安裝,然后再加電測(cè)量測(cè)量出來的電壓值均在 +5.00V 左 右,并且發(fā)光二極管發(fā)亮,說明之后焊接的電路正確,之前存在問題。 之后我們斷開電源再將電路素所需要的芯片的連接板和電容等器件焊接到電路 板上,焊接時(shí)必須注意芯片和電容的正負(fù)極,例如電容的正負(fù)極判斷為“長(zhǎng)正短負(fù)” , 就是電容所接的長(zhǎng)的那根導(dǎo)線接正
32、極,短的那根接負(fù)極。在焊接完成之后,我們?cè)俅谓?通電源和 USP 接 口的電源,按下開關(guān)電源,USB 接 口處的發(fā)光二極管再次發(fā)亮,此時(shí)再 次用萬用表對(duì)電路板的電源,穩(wěn)壓二極管, USB 接口及其各個(gè)芯片和單片機(jī)進(jìn)行電壓的 測(cè)量,測(cè)量出來的全部都在+5.00 V,說明電路正確,此時(shí)我們將所用的芯片包括單片機(jī) 接上電路板,然后開啟電源,將程序載入單片機(jī)運(yùn)行整個(gè)電路,我們發(fā)現(xiàn) LED 數(shù)碼管顯 示存在問題,主要是第二位位選可能存在問題,并且顯示較暗,后來我們總結(jié)發(fā)現(xiàn)是 LED 直接由單片機(jī)接出負(fù)載,而單片機(jī)的接負(fù)載能力很差,所以很暗,并且 LED 存在問題, 最后在老師的指導(dǎo)下,根據(jù)原理圖,靈活做
33、一些變動(dòng),添加了電阻、三極管驅(qū)動(dòng),另外, 更換了 LED 顯示屏,使其顯示非常正常和明亮。 由于老師給的外部電路是萬用板,所以我們必須自己焊接電路,并且要自己連接導(dǎo) 線,焊接完成后,將程序下載到單片機(jī)中運(yùn)行,發(fā)現(xiàn)電機(jī)不能正常轉(zhuǎn)動(dòng),而且報(bào)警器不 斷報(bào)警,最后我們檢測(cè)發(fā)現(xiàn),ULN2003 的公共端我們沒有接地,因此我們將其接地后在 進(jìn)行調(diào)試,發(fā)現(xiàn)一切都正常??偨Y(jié)本次自己動(dòng)手焊接和調(diào)試電路發(fā)現(xiàn)自己在動(dòng)手能力方 面還有很多不足,但是能夠自己在老師的指導(dǎo)下找出問題解決問題,自己覺得這是一個(gè) 很大的進(jìn)步。 5.2 軟件調(diào)試 軟件調(diào)試是一個(gè)漫長(zhǎng)的過程,一個(gè)小的疏忽就可能造成軟硬件結(jié)合時(shí)出現(xiàn)錯(cuò)誤。我 們?cè)诒敬?/p>
34、調(diào)試中主要出現(xiàn)了一個(gè)錯(cuò)誤,就是中斷程序處理不當(dāng),導(dǎo)致整個(gè)系統(tǒng)癱瘓,經(jīng) 西華大學(xué)電氣信息學(xué)院智能化電子系統(tǒng)設(shè)計(jì)報(bào)告 第 20 頁 過仔細(xì)整理后,才找出問題: 最初的程序段: mai n() un sig ned char TempH,TempL; TMOD=0 x01;定時(shí)器設(shè)置 THO=Oxef; TL0=0 xf0; IE=0 x82; TR0=1; P2=0 x00; coun t=0; while(1) str2=tab(temp%1000)/100; /十位溫度 str3=tab1(temp%100)/10; /個(gè)位溫度,帶小數(shù)點(diǎn) str4=tabtemp%10; 小數(shù) if(flag
35、_get=1) /定時(shí)讀取當(dāng)前溫度 temp=ReadTemperature(); flag_get=0; 改進(jìn)后的程序段: mai n (void) /TMOD=0 x11; /T0 方式 1 計(jì)數(shù) T1 方式 1 計(jì)數(shù) TMOD |= 0 x01; TH0 = 0 xfc; 裝入初值 1MS第 21 頁 P2 = 0 x00; LED = 1; PWM = 0; DS18B20nit(); while(1) key(); if(get_flag) TH0 = 0 xfc; / 裝入初值 1MS TL0 = 0 x17; start_temp_se nsor(); delay(5); tem
36、perature = (in t)read_temp(); str0 = tab1temperature%10; str1 = tabtemperature/10%10; get_flag=0; 西華大學(xué)電氣信息學(xué)院智能化電子系統(tǒng)設(shè)計(jì)報(bào)告 TR0 = 1; ET0 = 1; EA = 1; /啟動(dòng) to 西華大學(xué)電氣信息學(xué)院智能化電子系統(tǒng)設(shè)計(jì)報(bào)告 TLO = 0 x17; 第 22 頁 6 系統(tǒng)功能、指標(biāo)參數(shù) 6.1 系統(tǒng)功能 該系統(tǒng)是針對(duì)電腦散熱而設(shè)計(jì),能夠及時(shí)監(jiān)測(cè)機(jī)箱內(nèi)的實(shí)時(shí)溫度,并自動(dòng)將溫度值 轉(zhuǎn)換成數(shù)字信號(hào)送入單片機(jī),然后在 LED 顯示頻上準(zhǔn)確無誤的顯示;通過對(duì)送入溫度 進(jìn)行分析,判
37、斷溫度有無達(dá)到最大溫度,如果達(dá)到就進(jìn)行報(bào)警,給人們警示。當(dāng)我們選 擇溫控模式時(shí),就將送入的溫度值參與 PWM 調(diào)制,當(dāng)溫度不斷增大時(shí),風(fēng)扇轉(zhuǎn)速不斷 增加,反知,隨著溫度減小,風(fēng)扇轉(zhuǎn)速也減??;當(dāng)進(jìn)入手控模式時(shí),我們可以任意增大 減小風(fēng)扇的轉(zhuǎn)速,同時(shí)當(dāng)我們對(duì)按鍵進(jìn)行操作時(shí),報(bào)警模塊 LED 點(diǎn)亮提醒操作成功, 從而設(shè)計(jì)顯得人性化,舒適化。 6.2 指標(biāo)參數(shù) 在主電路板中需要測(cè)量出的參數(shù):電源電壓,各個(gè)芯片的電壓以及單片機(jī)的電壓, 以下為各電壓的值: 1. 電源電壓的測(cè)量值為 5.00V 3. 芯片的電壓值:ULN2003 勺電壓測(cè)量值為 5.02V,MAX232 勺電壓測(cè)量值為 5.00V, 4.
38、 單片機(jī)的電壓值為 4.98V 5. 電機(jī)運(yùn)行時(shí)其兩端的電壓是 5.00V 所以對(duì)于電源為 5V 電路來說,以上參數(shù)都是正確的。 其余的參數(shù)如下: 1. 電路板中單片機(jī)的晶振電路中晶振元件 12MHZ 2. 高溫報(bào)警電路中的限流電阻的大小為 100 3. 顯示模塊中的電阻大小為 4.7K 并且在系統(tǒng)正常工作狀態(tài)下,各個(gè)模塊的電壓,電阻等參數(shù)均正常。 西華大學(xué)電氣信息學(xué)院智能化電子系統(tǒng)設(shè)計(jì)報(bào)告 7 結(jié)論 本設(shè)計(jì)通過硬件焊接,軟件編程以及重要的軟硬件調(diào)試之后,實(shí)現(xiàn)了最初預(yù)想的各 項(xiàng)功能,雖不說一帆風(fēng)順,但完成了要求。并且除了要求的溫度讀取、顯示、控制電機(jī) 等基本功能外,第 23 頁 我們還增加了手
39、控模式,高溫報(bào)警,按鍵發(fā)聲提醒等功能,使設(shè)計(jì)更加 人性化。 智能化的電腦散熱系統(tǒng)不僅能夠用于電腦的散熱, 其實(shí)也可以用于普通風(fēng)扇的設(shè)計(jì) 之中,本設(shè)計(jì)可以說是多方面的考慮。而增加手控模式的好處在于,不同電腦的性能和 CPU產(chǎn)熱量也不太一樣,而本設(shè)計(jì)對(duì)溫度控制電機(jī)的靈敏度相當(dāng)高,對(duì)于溫度過高的電 腦或者溫度變化很快的電腦而言,比較適宜。對(duì)于一些電腦散熱不是很多,溫度變化比 較穩(wěn)定的電腦,可以采用手控設(shè)定檔位,減小能耗,使散熱系統(tǒng)壽命更長(zhǎng)。對(duì)于很多用 按鍵控制的系統(tǒng)沒有添加按鍵提醒部件,雖說可以減小能耗,但是對(duì)于操作不是很明確, 當(dāng)你按下時(shí),如果變化不大的情況下,你不能確定操作是否成功;倘若有了提醒
40、裝置, 每次操作成功都有提醒,既能給人們帶來方便,也能方便檢修。 設(shè)計(jì)雖然成功了,但是并沒有正在用于電腦內(nèi)部散熱,若條件允許便能真正檢測(cè)出 系統(tǒng)設(shè)計(jì)的有效性和安全性。本系統(tǒng)的設(shè)計(jì)集中的對(duì)我們數(shù)模電電路知識(shí),C 語言學(xué)習(xí), 以及實(shí)際動(dòng)手能力進(jìn)行了綜合性的考察,由于我們對(duì)一些器件的了解程度不是很高,所 以,對(duì)于我們的設(shè)計(jì)還有很多改進(jìn)的地方,比如:直流電機(jī)可以改成效率更高,能耗更 低的電機(jī)等。第 24 頁 西華大學(xué)電氣信息學(xué)院智能化電子系統(tǒng)設(shè)計(jì)報(bào)告 8 總結(jié)與體會(huì) 通過本次課程設(shè)計(jì)對(duì)很多學(xué)科有了深入的學(xué)習(xí)和理解,對(duì)電路也有了新的體會(huì),在 設(shè)計(jì)過程中,主要做了兩方面的設(shè)計(jì):一就是軟件的設(shè)計(jì)。二是硬件電
41、路的設(shè)計(jì)。在軟 件設(shè)計(jì)中本系統(tǒng)的軟件部分主要是利用 C 語言來設(shè)計(jì)的,更加深入的鞏固了我們的 C 語 言知識(shí),增加了我們的編程能力和經(jīng)驗(yàn)。 簡(jiǎn)單儀器原理與設(shè)計(jì)的課程是通信工程專業(yè)學(xué)生所要掌握的, 是實(shí)踐教學(xué)不可缺少 的重要環(huán)節(jié)。通過課程設(shè)計(jì),不僅能提高學(xué)生學(xué)習(xí)智能儀器的興趣,加深對(duì)智能儀器的 理解,開闊視野,也能為畢業(yè)設(shè)計(jì)打下良好的基礎(chǔ)。學(xué)生基本上經(jīng)歷了單片機(jī)應(yīng)用系統(tǒng) 開發(fā)的全過程,擴(kuò)大了學(xué)生實(shí)踐的內(nèi)容,從而取得了較好的教學(xué)實(shí)踐效果。任何收獲都 要付出巨大的努力,我們思考,閱讀,動(dòng)手,這讓我們受益匪淺,其樂無窮。 經(jīng)過一個(gè)星期的努力,我們終于成功的完成了本次課程設(shè)計(jì)。再設(shè)計(jì)過程中我們又 很多收
42、獲當(dāng)然也遇到很多困難。譬如說不能把書本上的知識(shí)與實(shí)踐相結(jié)合。還有當(dāng)我們 第一次把硬件電路做出來以后就在調(diào)試時(shí)發(fā)現(xiàn) LED 工作不正常,原來是我們沒有按照管 腳的正確順序連接電路來驅(qū)動(dòng) LED 顯示,在這個(gè)過程中培養(yǎng)了我們發(fā)現(xiàn)問題,思考問題, 解決問題的能力,也增加了我們實(shí)際動(dòng)手實(shí)踐的能力。 在這次設(shè)計(jì)的軟件部分是使用 C 語言,考慮到剛剛學(xué)過,并且想通過本次設(shè)計(jì)加深 對(duì) C語言的理解和熟悉,增強(qiáng)編程能力。C 語言執(zhí)行效率較高,代碼精簡(jiǎn);它的可讀性 較好,容易理解。通過設(shè)計(jì)也能大大加深對(duì)軟硬件的結(jié)合掌握和學(xué)習(xí)。 本次設(shè)計(jì)增強(qiáng)了我們查閱資料的方法和技巧,更是大大的提高了我們自學(xué)的能力, 同時(shí)也增強(qiáng)
43、了我們的動(dòng)手能力。 通過本次課程設(shè)計(jì),我們?cè)趯?duì)這門技術(shù)上有了更深刻的認(rèn)識(shí),也從實(shí)踐中去感受到 了技術(shù)給我們?cè)O(shè)計(jì)帶來的改變與進(jìn)步。我們不僅基本掌握了軟件的使用,還對(duì)電子設(shè)計(jì) 的思路有了更多的認(rèn)識(shí)。 在這一個(gè)星期的課程設(shè)計(jì)過程中,我們?nèi)齻€(gè)人一起查資料、一起討論、一起交流, 最終我們決定了設(shè)計(jì)方案并成功完成設(shè)計(jì),這些都培養(yǎng)了我們的團(tuán)結(jié)合作精神,這次設(shè) 計(jì)讓我們受益匪淺。 西華大學(xué)電氣信息學(xué)院智能化電子系統(tǒng)設(shè)計(jì)報(bào)告 第 25 頁 9 參考文獻(xiàn) 1 譚浩強(qiáng) C 語言程序設(shè)計(jì)(第三版)J.北京:清華大學(xué)出版社,2005 2 張毅剛、彭喜元單片機(jī)原理及應(yīng)用M.北京:高等教育出版社,2003 3 張海兵、李敏
44、.PROTEL 電路設(shè)計(jì)實(shí)例與分析J.北京:人民郵電出版社, 2005 4 李春葆、金晶.C 語言程序設(shè)計(jì)輔導(dǎo)M.北京:清華大學(xué)出版社,2007 楊將新、李華軍單片機(jī)程序設(shè)計(jì)及應(yīng)用(第三版) M.北京:電子工業(yè)出版社,2006 魯捷、焦振宇.PROTEL 2004 電路設(shè)計(jì)M.北京:清華大學(xué)出版社, 2006 7 康光華陳大欽 電子技術(shù)基礎(chǔ)模擬部分(第四版) M.高等教育出版社.1987 8 謝自美 主編電子線路設(shè)計(jì)實(shí)驗(yàn).測(cè)試(第二版)M.華中理工大學(xué)出版社, 2005 9 王為青,邱文勛 51 單片機(jī)開發(fā)案例精選J.人民郵電出版社,2001 , (5) : 45-47 10 邊海龍,孫永奎單
45、片機(jī)開發(fā)與典型工程項(xiàng)目實(shí)例詳解 J.電子工業(yè)出版社,2008 11 康光華、鄒壽彬電子技術(shù)基礎(chǔ)數(shù)字部分(第五版) M.北京:高等教育出版社,2006 12 謝維成,劉勇微機(jī)原理與接口技術(shù)M.華中科技大學(xué)出版社,2009 13 張毅剛單片機(jī)原理及應(yīng)用M.高等教育出版社,2003第 26 頁 西華大學(xué)電氣信息學(xué)院智能化電子系統(tǒng)設(shè)計(jì)報(bào)告 附錄 1: ISIS 仿真圖、PCB 板圖、實(shí)物圖 I I Tbl Vrt cr Qr qr pr or ? * / * : * * 3 ? + r r F * r r 附圖 1、ISIS 仿真圖 在單片機(jī)最小系統(tǒng)的搭建上采用了 12MHZ 的晶振作為晶振電路核心,
46、復(fù)位選用按 鍵復(fù)位方式,溫度檢測(cè)模塊使用 P3.4 來接收數(shù)據(jù),按鍵模塊選用 P1 口來控制,數(shù)碼管 選用P0 口發(fā)送段碼,用 P2 口發(fā)送位碼,P3.0 口用于報(bào)警電路,實(shí)際上還有大把的 IO 口資源可以使用,還可以實(shí)現(xiàn)更多的功能。仿真的時(shí)候最大的問題是 ULN2003 模塊的 搭建以及使用,由于之前沒有對(duì)它理解透徹,導(dǎo)致出了許多問題,但是最后在細(xì)心查資 料之后終于將它調(diào)試成功。 1? MALI 旳加U PD1AC1 旳 酗 出 FnjAL.l PIUMI4 心諦茵 fO5ftE6 M.E 巨 P2.UCS F22AD P23ftfl I2U12 P2SA0 IKAH *劉利錚 ra.i/r
47、a F33i MMHT pi.rn FI佇 P7J&JW 132. k;亡 kE RFl; RI;inQ irn liH jm kW 訓(xùn) IIU trUl J IMH IUJ J1 :TEC .XTA12 P1M2 11 !30一 13 -LT ULKira,忑 15 4 3期丄上工g g!c!c丈兀C5C8C1CC5C8C1C 第 27 頁 附圖 2、實(shí)物圖 在實(shí)物調(diào)試上面按鍵模塊,電機(jī)模塊算是比較順利的,但是在數(shù)碼管顯示溫度模塊 上面一直有問題,調(diào)試了很久都沒有進(jìn)展,在上網(wǎng)查了許多資料后才知道原因是中斷干 擾了數(shù)碼管掃描,還有一個(gè)問題是數(shù)碼管的管腳排列, ABCDEFGH DP 必
48、須對(duì)應(yīng)管腳 第 28 頁 11、7、4、2、1、10、5、3 來依次連接 P0.0 P0.7 。第 29 頁 西華大學(xué)電氣信息學(xué)院智能化電子系統(tǒng)設(shè)計(jì)報(bào)告 附圖 3、PCB 圖 此 PCB 圖是用 AD09 畫的,AD09 相對(duì)于 PROTEL 來說,庫更多,且更容易與電腦兼 容,操作簡(jiǎn)便。把原理圖連接好之后,剩下的就是布線了,總的來說還是比較順利的, 并不麻煩。茅 BQ 白島Big 00X00 QOOQOQOOOOO0QOO0OQ 第 30 頁 附錄 2:程序源代碼 #in elude #in elude #in elude vintrin s.h typedef un sig ned int
49、 u16; typedef un sig ned char u8; un sig ned char code tab= 0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8, 0 x80,0 x90;/ 數(shù)碼管段碼表共陽 un sig ned char code tab1= 0 x40,0 x79,0 x24,0 x30,0 x19,0 x12,0 x02,0 x78, 0 x00,0 x10; #defi ne no ps(); _no p_(); _n op_(); _nop_(); _ nop_();/ 定義空指令 #defi ne PWM_MA
50、X 20 #defi ne TEMP_MIN : 20 #defi ne TEMP_MAX 80 u16 str2; int temperature; /溫度值 u8 PWM_VALUE=0; /PWM 值 bit M_OPEN=0; / 默認(rèn)電機(jī)關(guān) bit T_CONTRL=1; / 默認(rèn)溫控 bit get_flag=1; / 溫度采集 sbit DQ =P1A7; / 溫度 DS18B20 sbit LED=P3A0; / 報(bào)警 sbit PWM=P3A7; /PWM 輸出 sbit P10=P1A0; / 開 sbit P1 仁 P1; / 關(guān) sbit P12=P1A2; / 加速
51、sbit P14=P1A4; / 減速 sbit P15=P1A5; / 溫控 sbit P16=P6; / 不溫控 void delay (un sig ned int i)/ 延時(shí)函數(shù) while(i-); void DS18b20_reset(void) 復(fù)位 bit flag=1; while (flag) while (flag) DQ = 1; delay(1); DQ = 0; delay(50); / 550us DQ = 1; delay(6); / 66us flag = DQ; delay(45); / 延時(shí) 500us flag = DQ; DQ=1; /*18B20
52、寫 1 個(gè)字節(jié)函數(shù),向 1-WIRE 總線上寫 個(gè)字節(jié)*/ void write_byte(u8 val) u8 i; for (i=0; i= 1; / 右移一位 DQ = 1; delay(1); /*18B20 讀 1 個(gè)字節(jié)函數(shù),從 1-WIRE 總線上讀取 一個(gè)字節(jié)*/ u8 read_byte(void) u8 i, value=0; for (i=0; i= 1; DQ = 0; no ps(); /4us DQ = 1; no ps(); /4us if (DQ) value|=0 x80; delay(6); /66us DQ=1; return(value); /*啟動(dòng)溫度
53、轉(zhuǎn)換*/ void start_temp_se nsor(void) DS18b20_reset(); write_byte(0 xCC); / 發(fā) Skip ROM 命令 write_byte(0 x44); / 發(fā)轉(zhuǎn)換命令 /*讀出溫度*/ int read_temp(void) u8 temp_data2; / int temp; DS18b20_reset(); / write_byte(0 xCC); / write_byte(0 xBE); / temp_data0=read_byte(); / 溫度低 8 位 temp_data1=read_byte(); / 溫度高 8 位 t
54、emp = temp_data1; temp = 4; / 精度 0.0625, 所以除以 16 return temp; /*18B20 初始化 void DS18B20nit() DS18b20_reset(); write_byte(0 xCC);/ write_byte(0 x4E);/ write_byte(0 x7F); 為 12 位精度 write_byte(0 x7d);/ 9 位精度 write_byte(0 x1);/ 9 位精度 write_byte(0 x1F);/讀出溫度暫放 復(fù)位 發(fā) Skip ROM 命令 發(fā)讀命令 *劉 跳過 ROM 與奇存器 將配置寄存器配置
55、將配置寄存器配置為 將配置寄存器配置為 將配置寄存器配置為 西華大學(xué)電氣信息學(xué)院智能化電子系統(tǒng)設(shè)計(jì)報(bào)告 第 32 頁 西華大學(xué)電氣信息學(xué)院智能化電子系統(tǒng)設(shè)計(jì)報(bào)告 DS18b20_reset(); * 按鍵掃描 * */ void key() if(!P1O) 開電機(jī) while(!P10); M_OPEN = 1; if(!P11) 關(guān)電機(jī) while(!P11); M_OPEN = 0; if(!P12) 電機(jī)加速 while(!P12); if(PWM_VALUE0) PWM_VALUE-; if(!P15) 溫控 while(!P15); T_CONTRL = 1; if(!P16) 不
56、溫控 while(!P16); T_CONTRL = 0; /* */ mai n (void) TMOD=Ox11; /TO 式 1 計(jì)數(shù) TMOD |= 0 x01; TH0 = 0 xfc; / TL0 = 0 x17; TR0 = 1; / 主 函 數(shù) 方式 1 計(jì)數(shù) T1 方 裝入初值 1MS 啟動(dòng) t0 ET0 = 1; EA = 1; P2 = 0 x00; LED = 1; PWM = 0; DS18B20_I nit(); while(1) key(); if(get_flag) TH0 = 0 xfc; / 裝入初值 1MS TL0 = 0 x17; start_temp_
57、se nsor(); delay(5); temperature (in t)read_temp(); str0 = tab1temperature%10; str1 = tabtemperature/10%10; get_flag=0; 第 33 頁 u16 cou nt=O; / 定時(shí)次數(shù),每次 1ms u16 cou nt1=0; u8 temp_value=O; void t0() in terrupt 1 using 2 TH0=0 xfc; / 重裝 t0 TL0=0 x17; if(cou nt=PWM_MAX) cou nt=O; else coun t+; /* 電機(jī)控制*/
58、 if(T_CONTRL) 溫控 if(temperatureTEMP_MAX) temp_value = PWM_MAX; LED = 0; else if(temperatureTEMP_MIN) temp_value (temperature-TEMP_MIN)*PWM_MAX/ (TEMP_MAX-TEMP_MIN); LED = 1; else temp_value = 0; LED = 1; if(M_OPEN)/ 電機(jī)開 if(cou nt=O) PWM = 1; if(cou nt=temp_value) PWM=0; else PWM=0; else if(M_OPEN)/ 電機(jī)開 if(cou nt=O) PWM = 1; if(cou nt=PWM_VALUE) PWM=0; else PWM=0; /* 數(shù)碼管掃描和溫度檢測(cè)*/ if(cou nt%10=0)/10ms if(cou nt1=50) cou nt 仁 0; else coun t1+; if(cou nt1=0) get_flag=1; if(cou nt1%2=0) P2=0 x80;*to 定時(shí)*中斷函數(shù)*/ 西華大學(xué)電氣信息學(xué)院智能化電子系統(tǒng)設(shè)計(jì)報(bào)告 第 34 頁 P0=str1; else P2=0 x40; PO=strO; 西華大學(xué)電氣信息學(xué)院智能化電子系統(tǒng)設(shè)計(jì)報(bào)告
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 春七年級(jí)數(shù)學(xué)下冊(cè)41 用表格表示的變量間關(guān)系課件4 (新版)北師大版
- pep新版五年級(jí)上冊(cè)Unit1-第4課時(shí)-B-Lets-talk課件
- 網(wǎng)絡(luò)營(yíng)銷概述課件
- 第五章生產(chǎn)物流管理課件
- 高中語文必修一《包身工》課件
- 幼兒園《冬爺爺?shù)暮印氛n件
- 組織結(jié)構(gòu)診斷報(bào)告
- 人教版初中語文課內(nèi)成語復(fù)習(xí)課件
- 張衡傳知識(shí)點(diǎn)歸納總結(jié)-最實(shí)用課件
- 五年級(jí)上冊(cè)英語ppt課件-M8U1-What-time-does-your-school-start-|外研版三起
- 農(nóng)業(yè)的區(qū)位選擇優(yōu)質(zhì)課比賽1)課件
- 高中語文部編版選擇性必修上冊(cè)《兼愛》課件
- 校園網(wǎng)設(shè)計(jì)方案
- 上海媒介市場(chǎng)分析課件
- 計(jì)算機(jī)網(wǎng)絡(luò)概述(第一章)課件