列車中控微機(jī)保護(hù)系統(tǒng)學(xué)士學(xué)位論文_第1頁
列車中控微機(jī)保護(hù)系統(tǒng)學(xué)士學(xué)位論文_第2頁
列車中控微機(jī)保護(hù)系統(tǒng)學(xué)士學(xué)位論文_第3頁
列車中控微機(jī)保護(hù)系統(tǒng)學(xué)士學(xué)位論文_第4頁
列車中控微機(jī)保護(hù)系統(tǒng)學(xué)士學(xué)位論文_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

南昌航空大學(xué)學(xué)士學(xué)位論文PAGE511緒論選題依據(jù)隨著科學(xué)技術(shù)地發(fā)展,人們物質(zhì)文化水平不斷提高,交通運(yùn)輸業(yè)得到飛速發(fā)展。在眾多交通工具當(dāng)中,列車的作用尤其突出,使用也最為廣泛及頻繁。列車在交通運(yùn)輸當(dāng)中一直起著至關(guān)重要的作用。因此,對(duì)列車的控制及其行駛安全尤為重要。由早期的蒸汽發(fā)動(dòng)人力駕駛發(fā)展到現(xiàn)在的電力驅(qū)動(dòng)及一整套自動(dòng)化控制系統(tǒng),列車的發(fā)展正順應(yīng)著時(shí)代的變化。自動(dòng)化控制無人駕駛正是未來發(fā)展的重要趨勢(shì)。本次設(shè)計(jì)是基于單片機(jī)的列車中控微機(jī)保護(hù)系統(tǒng)。硬件部分主要由單片機(jī)最小系統(tǒng)模塊、電動(dòng)機(jī)驅(qū)動(dòng)模塊、報(bào)警模塊、顯示模塊、溫度采集模塊、車速采集模塊等部分組成,使列車彰顯人性化和安全。國內(nèi)外研究概況及發(fā)展趨勢(shì)自19世紀(jì)鐵路誕生以來,如何控制鐵路運(yùn)輸?shù)陌踩鸵恢笔鞘澜绺鲊F路運(yùn)輸業(yè)面臨的主要課題,而列車運(yùn)行安全是列車運(yùn)行控制的核心。早期蒸汽機(jī)車采用機(jī)械式控制,對(duì)機(jī)車駕駛員要求很高。20世紀(jì)后,特別是電子行業(yè)的崛起,列車也已進(jìn)入了電氣自動(dòng)化時(shí)代。列車信息控制系統(tǒng)是保證列車控制有效性、安全性及旅客舒適性所必需的,國外已開行的高速列車,如德國的ICE、法國的TGV、日本的新干線等高速列車都裝有完整的信息控制系統(tǒng)。控制網(wǎng)絡(luò)技術(shù)作為現(xiàn)代列車的關(guān)鍵技術(shù),在世界范圍內(nèi)得到了越來越廣泛的應(yīng)用。目前,世界上主要列車電氣部件供應(yīng)商都推出了基于網(wǎng)絡(luò)的控制系統(tǒng),比如:Siemens的SIBAS32R鐵路自動(dòng)化系統(tǒng)、ADtranz公司(現(xiàn)已被Bombardier公司收購)的MITRACR列車通信和控制系統(tǒng)、Alstom公司的A-GATER控制系統(tǒng)以及日本三菱、東芝公司的TCMS列車控制監(jiān)視系統(tǒng)等。近年來,隨著我國交流傳動(dòng)高速列車、電動(dòng)車組、城市軌道交通車輛研究工作的開展,列車網(wǎng)絡(luò)控制技術(shù)已成為高速列車、動(dòng)車組的必備技術(shù)之一。為了保證列車運(yùn)行安全,列車的安全相關(guān)技術(shù)越來越受到重視。2相關(guān)理論分析測(cè)速相關(guān)理論分析要測(cè)速,首先要解決是采樣的問題。在使用模擬技術(shù)制作測(cè)速表時(shí),常用測(cè)速發(fā)電機(jī)的方法,即將測(cè)速發(fā)電機(jī)的轉(zhuǎn)軸與待測(cè)軸相連,測(cè)速發(fā)電機(jī)的電壓高低反映了轉(zhuǎn)速的高低。使用單片機(jī)進(jìn)行測(cè)速,可以使用簡(jiǎn)單的脈沖計(jì)數(shù)法。只要轉(zhuǎn)軸每旋轉(zhuǎn)一周,產(chǎn)生一個(gè)或固定的多個(gè)脈沖,并將脈沖送入單片機(jī)中進(jìn)行計(jì)數(shù),即可獲得轉(zhuǎn)速的信息。在這里選用霍爾測(cè)速傳感器可以解決問題。在電機(jī)轉(zhuǎn)軸上固定一圓盤,在圓盤上固定一到多個(gè)小磁鋼。再用霍爾傳感器靠近電機(jī)的磁鋼,距離不超過5mm,這樣電機(jī)轉(zhuǎn)動(dòng),小磁鋼每靠近一次霍爾傳感器,傳感器便會(huì)產(chǎn)生一個(gè)低電平。電機(jī)每轉(zhuǎn)動(dòng)一圈,傳感器便會(huì)將一組有規(guī)律的脈沖信號(hào)傳送至單片機(jī),單片機(jī)通過測(cè)得電機(jī)每轉(zhuǎn)一圈的脈沖個(gè)數(shù),便能計(jì)算出直流電機(jī)的速度。測(cè)溫相關(guān)理論分析溫度傳感器的種類眾多,在應(yīng)用與高精度、高可靠性的場(chǎng)合時(shí)DALLAS(達(dá)拉斯)公司生產(chǎn)的DS18B20溫度傳感器當(dāng)仁不讓。超小的體積,超低的硬件開消,抗干擾能力強(qiáng),精度高,附加功能強(qiáng),使得DS18B20更受歡迎。DS18B20的優(yōu)勢(shì)是我們學(xué)習(xí)單片機(jī)技術(shù)和開發(fā)溫度相關(guān)的小產(chǎn)品的不二選擇。了解其工作原理和應(yīng)用可以拓寬對(duì)單片機(jī)開發(fā)的思路。DS18B20的溫度檢測(cè)與數(shù)字?jǐn)?shù)據(jù)輸出全集成于一個(gè)芯片之上,從而抗干擾力更強(qiáng)。其一個(gè)工作周期可分為兩個(gè)部分,即溫度檢測(cè)和數(shù)據(jù)處理。在使用前先了解18B20的內(nèi)部存儲(chǔ)器資源。DS18B20共有三種形態(tài)的存儲(chǔ)器資源。ROM只讀存儲(chǔ)器,用于存放DS18B20ID編碼,其前8位是單線系列編碼(DS18B20的編碼是19H),后面48位是芯片唯一的序列號(hào),最后8位是以上56的位的CRC碼(冗余校驗(yàn))。數(shù)據(jù)在出產(chǎn)時(shí)設(shè)置不由用戶更改。DS18B20共64位ROM。RAM數(shù)據(jù)暫存器,用于內(nèi)部計(jì)算和數(shù)據(jù)存取,數(shù)據(jù)在掉電后丟失,DS18B20共9個(gè)字節(jié)RAM,每個(gè)字節(jié)為8位。第1、2個(gè)字節(jié)是溫度轉(zhuǎn)換后的數(shù)據(jù)值信息,第3、4個(gè)字節(jié)是用戶EEPROM(常用于溫度報(bào)警值儲(chǔ)存)的鏡像。在上電復(fù)位時(shí)其值將被刷新。第5個(gè)字節(jié)則是用戶第3個(gè)EEPROM的鏡像。第6、7、8個(gè)字節(jié)為計(jì)數(shù)寄存器,是為了讓用戶得到更高的溫度分辨率而設(shè)計(jì)的,同樣也是內(nèi)部溫度轉(zhuǎn)換、計(jì)算的暫存單元。第9個(gè)字節(jié)為前8個(gè)字節(jié)的CRC碼。EEPROM非易失性記憶體,用于存放長期需要保存的數(shù)據(jù),上下限溫度報(bào)警值和校驗(yàn)數(shù)據(jù),DS18B20共3位EEPROM,并在RAM都存在鏡像,以方便用戶操作。3系統(tǒng)設(shè)計(jì)總體設(shè)計(jì)要求設(shè)計(jì)要求該系統(tǒng)以單片機(jī)為核心,實(shí)現(xiàn)對(duì)列車溫度速度采集的自動(dòng)控制。該控制系統(tǒng)包括:①列車溫度、速度采集模塊;②單片機(jī)最小系統(tǒng)模塊,涉及用E2PROM存儲(chǔ)設(shè)置信息;③顯示模塊,用于實(shí)時(shí)顯示當(dāng)前的溫度和速度;④報(bào)警模塊,實(shí)時(shí)監(jiān)控異常狀態(tài)等根據(jù)設(shè)計(jì)要求,設(shè)計(jì)框圖如圖3—1所示:STC89C52LED顯示電路溫度傳感器STC89C52LED顯示電路溫度傳感器7279鍵盤輸入速度傳感器7279鍵盤輸入速度傳感器報(bào)警電路報(bào)警電路E2E2PROM存儲(chǔ)電路圖3-1原理框圖設(shè)計(jì)思想首先通過溫度傳感器與速度傳感器采集溫度與速度數(shù)據(jù),把采集到的數(shù)據(jù)轉(zhuǎn)化為計(jì)算機(jī)可以接受的數(shù)字信號(hào)。在接受到采集數(shù)據(jù)后,單片機(jī)開始對(duì)數(shù)據(jù)進(jìn)行處理并顯示。如果有異常(溫度值超出要求范圍),觸發(fā)報(bào)警電路,提醒有異常狀況發(fā)生。數(shù)據(jù)處理后,應(yīng)外接一個(gè)E2PROM存儲(chǔ)器用于存儲(chǔ)溫度及速度報(bào)警值,起到斷電信息不丟失的作用。該存儲(chǔ)器也用于存儲(chǔ)設(shè)置的溫度報(bào)警值,而報(bào)警值可通過按鍵設(shè)置。整個(gè)過程需要用單片機(jī)算法去控制與顯示設(shè)定的溫度與速度,從而與實(shí)時(shí)采樣值去比較,大于設(shè)定值報(bào)警。系統(tǒng)功能模塊該系統(tǒng)設(shè)計(jì)要求主要包括溫度采集模塊,速度采集模塊,報(bào)警模塊,LED顯示模塊,掉電保護(hù)模塊和參數(shù)設(shè)定模塊。系統(tǒng)功能模塊框圖如圖3-2所示:功能模塊功能模塊掉電保護(hù)模塊報(bào)警模塊參數(shù)設(shè)置模塊LED顯示模塊速度采集模塊溫度采集模塊掉電保護(hù)模塊報(bào)警模塊參數(shù)設(shè)置模塊LED顯示模塊速度采集模塊溫度采集模塊圖3-2系統(tǒng)功能模塊圖模塊說明:溫度采集模塊,通過溫度傳感器對(duì)溫度的實(shí)時(shí)采集,并將采集到的數(shù)據(jù)送到單片機(jī)內(nèi)。速度采集模塊,通過速度傳感器對(duì)速度的實(shí)時(shí)采集,并將采集到的數(shù)據(jù)送到單片機(jī)內(nèi)。LED顯示模塊,用于實(shí)時(shí)顯示采集到的溫度值與速度值。參數(shù)設(shè)置模塊,通過鍵盤實(shí)現(xiàn)對(duì)報(bào)警溫度和速度上限值的設(shè)置。報(bào)警模塊,實(shí)時(shí)監(jiān)測(cè)異常狀況,如果當(dāng)監(jiān)測(cè)到溫度或速度超過報(bào)警值,則觸發(fā)報(bào)警電路。掉電保護(hù)模塊,通過外接E2PROM來實(shí)現(xiàn)對(duì)溫度和速度報(bào)警值的存儲(chǔ),保證斷電后信息不會(huì)丟失。4硬件設(shè)計(jì)該控制系統(tǒng)的設(shè)計(jì)過程中包括以下幾大硬件電路,即溫度信息采集電路、速度信息采集電路、鍵盤輸入和顯示電路、系統(tǒng)掉電保護(hù)電路、超溫報(bào)警電路等。在綜合考慮了本設(shè)計(jì)的基本要求及系統(tǒng)各項(xiàng)功能實(shí)現(xiàn)的情況下,分析和了解項(xiàng)目的總體要求,輔助外設(shè)(如傳感器)的種類及要求,使用的環(huán)境及工作的電源要求,產(chǎn)品的成本,可靠性要求和可維護(hù)性及經(jīng)濟(jì)效益等因素,制定出可行的性能指標(biāo)。在該系統(tǒng)中主要指標(biāo)如下:測(cè)溫范圍0℃-100℃,測(cè)量精度±1℃;測(cè)速范圍0~50m/s,允許誤差±0.單片機(jī)的選擇目前市場(chǎng)上的單片機(jī)數(shù)量、品種繁多,各種專用功能的單片機(jī)基本上都有,這給用戶帶來了很多方便,至少可以節(jié)約很多外接擴(kuò)展器件。單片機(jī)的選型很重要,選擇時(shí)需考慮其能否全部滿足規(guī)定的要求,例如控制速度、精度、控制端口的數(shù)量、驅(qū)動(dòng)外設(shè)的能力、存儲(chǔ)器的大小、單片機(jī)的功能與內(nèi)部資源、開發(fā)工具和技術(shù)的支持程度、性能價(jià)格、資源等等??紤]到以上幾點(diǎn)要求,故在這次設(shè)計(jì)中選擇了常見,成本低的STC89C52單片機(jī)。其具有8位的CPU,片內(nèi)含8kBytesFLASHROM,兼容80C52,256*8位的內(nèi)部RAM,32位I/O數(shù),3個(gè)定時(shí)/計(jì)數(shù)器,8個(gè)中斷源,一個(gè)串行口。其單片機(jī)引腳圖見圖4—1所示:圖4-1STC89C52單片機(jī)引腳圖單片機(jī)最小系統(tǒng)電路時(shí)鐘電路時(shí)鐘電路是為系統(tǒng)產(chǎn)生所需要的時(shí)鐘信號(hào),是計(jì)算機(jī)的心臟,控制著計(jì)算機(jī)的工作節(jié)奏。其電路圖如下圖4-2所示,片內(nèi)電路與片外器件構(gòu)成一個(gè)時(shí)鐘發(fā)生電路,CPU的所有操作均在時(shí)鐘脈沖同步下進(jìn)行,片內(nèi)振蕩器的震蕩頻率f0非常接近晶振頻率,一般多在1.2MHz~12MHz之間選取,這次畢設(shè)用的時(shí)鐘頻率是12MHz。MCS-51內(nèi)部都有一個(gè)反相放大器,XTAL1、XTAL2分別是反相放大器輸入和輸出端,外接定時(shí)反饋元件就組成震蕩器產(chǎn)生時(shí)鐘送至單片機(jī)內(nèi)部的各個(gè)部件。圖4-2中C1、C2是反饋電容,其值在5pF~30pF之間選擇,典型值是30Pf。作用有兩個(gè):其一是使振蕩器起振,其二是對(duì)振蕩器的頻率f起微調(diào)(C1、C2大,f變?。D4-2時(shí)鐘電路復(fù)位電路系統(tǒng)在啟動(dòng)運(yùn)行時(shí)都要復(fù)位,使中央處理器和系統(tǒng)中的其他部件都處于一個(gè)確定的初始狀態(tài),并從這狀態(tài)開始工作。采用上電復(fù)位方式,在RST復(fù)位端接一個(gè)電阻R1至Vcc和一個(gè)電容C3至Vss(地),就能實(shí)現(xiàn)上電自動(dòng)復(fù)位。在上電的瞬間,電容通過電阻充電,就在RST端出現(xiàn)一定時(shí)間的高電平,只要保持RST引腳為高電平時(shí)間足夠長,就可使CPU復(fù)位。所需高電平時(shí)間的長短與Vcc上升時(shí)間和振蕩器起振時(shí)間有關(guān)。10MHz時(shí),約1ms,1MHz時(shí),約10ms。若Vcc上升時(shí)間小于20ms,那么從上電時(shí)間算起,只要保持RST引腳在高電平停留時(shí)間不小于20ms即可。圖4-3中R1=51K?,C3=22μF,若頻率為12MHz,可以保證可靠的上電復(fù)位。如果頻率降低,可以適當(dāng)加大電容C3。圖4-3復(fù)位電路溫度信號(hào)采集電路設(shè)計(jì)方案介紹本次設(shè)計(jì)采用數(shù)字溫度傳感器DS18b20芯片實(shí)現(xiàn)溫度采樣及A/D轉(zhuǎn)化。隨著現(xiàn)代化信息技術(shù)的飛速發(fā)展和傳統(tǒng)工業(yè)改造的逐步實(shí)現(xiàn),能獨(dú)立工作的溫度檢測(cè)系統(tǒng)已經(jīng)廣泛應(yīng)用于各種不同領(lǐng)域。傳統(tǒng)的溫度檢測(cè)系統(tǒng)大多數(shù)采用熱敏電阻作為傳感器。而這種方法必須經(jīng)過專門的接口電路轉(zhuǎn)換成數(shù)字信號(hào)后才能由單片機(jī)進(jìn)行處理,存在可靠性差、成本高和精度低等諸多缺點(diǎn)。本次設(shè)計(jì)使用的DS18b20數(shù)字溫度傳感器是Dallas公司生產(chǎn)的1-Wire,即單總線器件,它具有微型化、低功耗、高性能、抗干擾能力強(qiáng)、易配處理器等優(yōu)點(diǎn),特別適用于構(gòu)成多點(diǎn)溫度測(cè)控系統(tǒng),可直接將溫度轉(zhuǎn)化成串行數(shù)字信號(hào)給單片機(jī)處理,且在同一總線上可以掛接多個(gè)傳感器芯片。它具有3引腳TO-92小體積封裝形式,其管腳圖如圖4-4:圖4-4DS18B20的管腳圖其引腳功能如表4-1:表4-1DS18B20引腳功能序號(hào)名稱功能1GND地信號(hào)2DQ數(shù)據(jù)輸入/輸出引腳,開漏單總線接口引腳3VDD可選擇的VDD引腳基于DS18B20高精度數(shù)字溫度傳感器可以完成如下的功能:采用STC89S52單片機(jī)和DS18B20溫度傳感器通信,控制溫度的采集過程和進(jìn)行數(shù)據(jù)通信;提供DS18B20的使用外圍電路、溫度顯示LED電路以及DS18B20和單片機(jī)的通信接口電路;利用發(fā)光二極管指示系統(tǒng)的工作狀態(tài),DS18B20溫度傳感器內(nèi)置溫度上下限;編寫C51程序,完成單片機(jī)對(duì)溫度數(shù)據(jù)的采集過程以及與DS18B20數(shù)據(jù)傳輸過程的控制。其電路連接線路如圖4-5:圖4-5DS18b20溫度采集電路模塊功能說明DS18b20性能介紹適應(yīng)電壓范圍更寬,電壓范圍:3.0~5.5V,在寄生電源方式下可由數(shù)據(jù)線供電獨(dú)特的單線接口方式,DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊DS18B20支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測(cè)溫DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)溫范圍-55℃~+125℃,在-10~+85可編程的分辨率為9~12位,對(duì)應(yīng)的可分辨溫度分別為0.5℃、0.25℃、0.125℃在9位分辨率時(shí)最多在93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時(shí)最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),以"一線總線"串行傳送給CPU,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力負(fù)壓特性:電源極性接反時(shí),芯片不會(huì)因發(fā)熱而燒毀,但不能正常工作DS18b20內(nèi)部結(jié)構(gòu)介紹DS18B20主要包括溫度傳感器、64位激光ROM單線單口、存放中間數(shù)據(jù)的高速暫存器、用于存儲(chǔ)用戶設(shè)定的溫度上下限值、觸發(fā)器存儲(chǔ)與控制邏輯、8位循環(huán)冗余校驗(yàn)碼發(fā)生器等。光刻ROM中的64位序列號(hào)是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼。64位光刻ROM的排列是:開始8位(28H)是產(chǎn)品類型標(biāo)號(hào),接著的48位是該DS18B20自身的序列號(hào),最后8位是前面56位的循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一個(gè)DS18B20都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè)DS18B20的目的。DS18B20的存儲(chǔ)器包括高速暫存器RAM和可電擦除RAM,可電擦除RAM又包括溫度觸發(fā)器TH和TL,以及一個(gè)配置寄存器。存儲(chǔ)器能完整的確定一線端口的通訊,數(shù)字開始用寫寄存器的命令寫進(jìn)寄存器,接著也可以用讀寄存器的命令來確認(rèn)這些數(shù)字。當(dāng)確認(rèn)以后就可以用復(fù)制寄存器的命令來將這些數(shù)字轉(zhuǎn)移到可電擦除RAM中。當(dāng)修改過寄存器中的數(shù)時(shí),這個(gè)過程能確保數(shù)字的完整性。高速暫存器RAM是由8個(gè)字節(jié)的存儲(chǔ)器組成;第一和第二個(gè)字節(jié)是溫度的顯示位。第三和第四個(gè)字節(jié)是復(fù)制TH和TL,同時(shí)第三和第四個(gè)字節(jié)的數(shù)字可以更新;第五個(gè)字節(jié)是復(fù)制配置寄存器,同時(shí)第五個(gè)字節(jié)的數(shù)字可以更新;六、七、八三個(gè)字節(jié)是計(jì)算機(jī)自身使用。用讀寄存器的命令能讀出第九個(gè)字節(jié),這個(gè)字節(jié)是對(duì)前面的八個(gè)字節(jié)進(jìn)行校驗(yàn)。DS18B20中的溫度傳感器可完成對(duì)溫度的測(cè)量,以12位轉(zhuǎn)化為例:用16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以0.0625℃DS18b20工作原理DS18b20的讀寫時(shí)序和測(cè)溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉(zhuǎn)換時(shí)的延時(shí)時(shí)間由2s減為750ms。DS18b20測(cè)溫原理如圖4-6所示。停止停止加1斜率累加器比較預(yù)置計(jì)數(shù)器1低溫度系統(tǒng)晶振溫度寄存器預(yù)置=0高溫度系數(shù)晶振計(jì)數(shù)器2=0LSB置位/清除圖4-6DS18B20內(nèi)部結(jié)構(gòu)圖圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給計(jì)數(shù)器1。高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號(hào)作為計(jì)數(shù)器2的脈沖輸入。計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55℃速度信號(hào)采集電路設(shè)計(jì)方案介紹本次設(shè)計(jì)采用霍爾測(cè)速傳感器進(jìn)行對(duì)速度信息的采集霍爾傳感器是對(duì)磁敏感的傳感元件,常用于開關(guān)信號(hào)采集的有UGN3020、UGN3040等,這種傳感器是一個(gè)3端器件,外形與三極管相似,只要接上電源、地,即可工作,輸出通常是集電極開路(OC)門輸出,工作電壓范圍寬,使用非常方便。如圖4-7所示是UGN3020的外形圖,將有字面對(duì)準(zhǔn)自己,三根引腳從左向右分別是Vcc、地、輸出。圖4-7UGN3020的外形圖霍爾傳感器的機(jī)械結(jié)構(gòu)較為簡(jiǎn)單,只要在電動(dòng)機(jī)轉(zhuǎn)軸的圓周上粘上一粒磁鋼,讓霍爾開關(guān)靠近磁鋼,就有脈沖信號(hào)輸出,轉(zhuǎn)軸旋轉(zhuǎn)時(shí),就會(huì)不斷地產(chǎn)生脈沖信號(hào)輸出。如果在圓周上粘上多粒磁鋼,可以實(shí)現(xiàn)旋轉(zhuǎn)一周,獲得多個(gè)脈沖輸出。在粘磁鋼時(shí)要注意極性,霍爾傳感器對(duì)磁場(chǎng)方向敏感,粘前可以先手動(dòng)接近一下傳感器,如果沒有信號(hào)輸出,可以換一個(gè)方向再試。這種傳感器不怕灰塵、油污,在工業(yè)現(xiàn)場(chǎng)應(yīng)用廣泛?;魻杺鞲衅鳒y(cè)速部分可以完成如下的功能:采用STC89S52單片機(jī)和霍爾傳感器通信,控制速度的采集過程和進(jìn)行數(shù)據(jù)通信;提供霍爾傳感器的使用外圍電路、溫度顯示LED電路以及霍爾傳感器和單片機(jī)的通信接口電路;利用發(fā)光二極管指示系統(tǒng)的工作狀態(tài);編寫C51程序,完成單片機(jī)對(duì)速度數(shù)據(jù)的采集過程以及與霍爾傳感器數(shù)據(jù)傳輸過程的控制。其電路如圖4-8:圖4-8霍爾傳感器速度采集電路模塊功能說明當(dāng)電機(jī)啟動(dòng)時(shí),附著在圓盤上的小磁鋼每轉(zhuǎn)一周,與霍爾傳感器接觸一次,產(chǎn)生低電平。因此,電機(jī)每轉(zhuǎn)一周,霍爾傳感器會(huì)送給單片機(jī)一個(gè)脈沖波。再通過單片機(jī)定時(shí)1s內(nèi)所計(jì)算出的霍爾傳感器的脈沖個(gè)數(shù)N,有測(cè)量得出的圓盤周長l,即可算出電機(jī)1s內(nèi)經(jīng)過的路程S=l*N,即速度v=S=l*N(單位:m/s)。報(bào)警模塊電路設(shè)計(jì)報(bào)警部分由NPN三極管接發(fā)光二極管組成,每采集到的溫度與報(bào)警值進(jìn)行比較,若等于或高于報(bào)警值則送P1.4口高電平,報(bào)警燈亮。其電路如圖4-9所示:圖4-9報(bào)警電路顯示模塊電路設(shè)計(jì)HD7279是一片具有串行接口的,可同時(shí)驅(qū)動(dòng)并連接64鍵的鍵盤矩陣的智能顯示驅(qū)動(dòng)芯片。HD7279內(nèi)部含有譯碼器,可直接接受BCD碼或16進(jìn)制碼,并同時(shí)具有兩種譯碼方式。HD7279A內(nèi)部含有譯碼器,可直接接受BCD碼或16進(jìn)制碼,并同時(shí)具有2種譯碼方式。此外,HD7279A還具有多種控制指令,如消隱、閃爍、左移、右移、段尋址等,并且具有片選信號(hào),可方便地實(shí)現(xiàn)多于8位的顯示或多于64鍵的鍵盤接口。圖4-10為HD7279的芯片引腳圖。圖4-10HD7279的芯片引腳圖HD7279A只需要4根線(CS、CLK、DATA、KEY)與AT89C51相連,僅僅使用單片機(jī)的P1.0-P1.3口,大大節(jié)省了CPU的端口資源,即可實(shí)現(xiàn)鍵盤接口功能。由于HD7279A內(nèi)部含有去抖動(dòng)電路,軟件編程時(shí)不需要鍵盤的消抖動(dòng)程序,而且HD7279A的控制指令也使得軟件編程更簡(jiǎn)單。其連線圖如圖4-11:圖4-117279顯示電路斷電存儲(chǔ)模塊電路設(shè)計(jì)方案介紹本次設(shè)計(jì)采用AT24C02來實(shí)現(xiàn)對(duì)設(shè)置信息的存儲(chǔ)及斷電保護(hù)功能。AT24C02是一個(gè)2K位串行CMOSE2PROM內(nèi)部含有256個(gè)8位字節(jié),CATALYST公司的先進(jìn)CMOS技術(shù)實(shí)質(zhì)上減少了器件的功耗,AT24C02有一個(gè)16字節(jié)頁寫緩沖器,該器件通過I2C總線接口進(jìn)行操作,有一個(gè)專門的寫保護(hù)功能圖4-12AT24C02引腳圖引腳說明如表4-2:表4-2AT24C02引腳說明管腳名稱功能A0、A1、A2器件地址選擇SDA串行數(shù)據(jù)/地址SCL串行時(shí)鐘WP寫保護(hù)VCC+1.8V~6.0V工作電壓VSS地AT24C02與單片機(jī)進(jìn)行串行數(shù)據(jù)傳送,用于存儲(chǔ)不常改動(dòng)的數(shù)據(jù),如:溫度報(bào)警值等;在系統(tǒng)斷電情況下,保證存儲(chǔ)器內(nèi)數(shù)據(jù)不丟失。其電路連接線路如圖4-13:圖4-13AT24C02斷電存儲(chǔ)電路模塊功能說明AT24C02的特性與400KHzI2C總線兼容1.8到6.0伏工作電壓范圍低功耗CMOS技術(shù)寫保護(hù)功能:當(dāng)WP為高電平時(shí)進(jìn)入寫保護(hù)狀態(tài)頁寫緩沖器自定時(shí)擦寫周期1,000,000編程/擦除周期可保存數(shù)據(jù)100年8腳DIPSOIC或TSSOP封裝AT24C02的功能描述AT24C02支持I2C總線數(shù)據(jù)傳送協(xié)議,I2C總線協(xié)議規(guī)定任何將數(shù)據(jù)傳送到總線的器件作為發(fā)送器。任何從總線接收數(shù)據(jù)的器件為接收器。數(shù)據(jù)傳送是由產(chǎn)生串行時(shí)鐘和所有起始停止信號(hào)的主器件控制的。主器件和從器件都可以作為發(fā)送器或接收器,但由主器件控制傳送數(shù)據(jù)(發(fā)送或接收)的模式,通過器件地址輸入端A0、A1和A2可以實(shí)現(xiàn)將最多8個(gè)24C02器件連接到總線上圖4-14AT24C02內(nèi)部框圖5軟件設(shè)計(jì)5.1軟件程序設(shè)計(jì)要求本軟件設(shè)計(jì)包括三個(gè)子系統(tǒng)設(shè)計(jì)分別是:?jiǎn)纹瑱C(jī)測(cè)溫程序及報(bào)警,單片機(jī)測(cè)速程序,顯示程序,存儲(chǔ)程序等。測(cè)溫程序主要實(shí)現(xiàn)通過DS18b20對(duì)溫度進(jìn)行實(shí)時(shí)地采集,精度在小數(shù)點(diǎn)后一位。測(cè)速陳旭主要實(shí)現(xiàn)對(duì)直流電機(jī)的測(cè)速功能,精度在小數(shù)點(diǎn)后一位。顯示程序則是實(shí)現(xiàn)對(duì)溫度報(bào)警值的顯示以及對(duì)溫度和速度的實(shí)時(shí)顯示。報(bào)警程序用來實(shí)現(xiàn)對(duì)超溫現(xiàn)象的報(bào)警。存儲(chǔ)程序主要控制AT24C02對(duì)報(bào)警數(shù)據(jù)的存儲(chǔ)功能。5.2資源分配90H-97H數(shù)碼管地址36H-38H存儲(chǔ)采樣溫度值47H-49H存儲(chǔ)采樣速度值45H存儲(chǔ)脈沖計(jì)數(shù)值41H-43H存儲(chǔ)溫度報(bào)警值P1.0CSP1.1CLKP1.2DATAP1.3KEYP1.4報(bào)警燈P1.5SCLP1.6SDAP1.7DQP3.5霍爾傳感器5.3各功能模塊介紹5.3.1主程序模塊主程序主要是完成對(duì)各個(gè)狀態(tài)寄存器的初始化,通過對(duì)各個(gè)子程序(溫度采樣,報(bào)警,溫度轉(zhuǎn)換,顯示處理等)的調(diào)用實(shí)現(xiàn)對(duì)溫度的采樣和電動(dòng)機(jī)速度的采樣和控制,其流程圖如圖5—1:NNY開始初始化顯示處理,顯示鍵盤掃描有鍵按下否?調(diào)用鍵處理程序調(diào)用獲取溫度子程序調(diào)用溫度處理子程序調(diào)用顯示及報(bào)警子程序圖5-1主程序流程圖5.3.2中斷模塊該模塊主要用于計(jì)算霍爾傳感器所測(cè)到的脈沖個(gè)數(shù),以此來計(jì)算直流電機(jī)的速度。中斷開始要保護(hù)現(xiàn)場(chǎng)和換區(qū),要完成定時(shí)器重賦值中斷,主要是完成單片機(jī)對(duì)電動(dòng)機(jī)轉(zhuǎn)速的計(jì)數(shù),其流程圖如圖5-2:定時(shí)器中斷入口定時(shí)器中斷入口保護(hù)現(xiàn)場(chǎng)重新置定時(shí)初值50ms重新置計(jì)數(shù)初值將計(jì)數(shù)值存于45H恢復(fù)現(xiàn)場(chǎng)返回中斷25H值加125H值等于20否?NY圖5-2中斷程序流程圖通過給定時(shí)器T0設(shè)置一個(gè)1s的定時(shí)中斷,在1s內(nèi)由計(jì)數(shù)器T1進(jìn)行對(duì)霍爾傳感器的脈沖計(jì)數(shù),并將所計(jì)脈沖數(shù)存入45H單元。5.3.3存儲(chǔ)模塊存儲(chǔ)模塊主要完成對(duì)數(shù)據(jù)的存入與讀出的功能,首先是將數(shù)據(jù)寫入AT24C02。需要注意的是AT24C02為I2C二線制傳輸,所以也是串行通信,編程時(shí)將數(shù)據(jù)存儲(chǔ)單元內(nèi)的數(shù)據(jù)左移一位,以此存入AT24C02存儲(chǔ)器當(dāng)中,連續(xù)執(zhí)行8次即可完成數(shù)據(jù)的寫入功能。流程圖如圖5-3所示:開始開始初始化初始化寫入一字節(jié)數(shù)據(jù)寫入一字節(jié)數(shù)據(jù)返回返回圖5-3AT24C02寫子程序讀24C02子程序如圖5-4所示:返回讀出一字節(jié)數(shù)據(jù)初始化開始返回讀出一字節(jié)數(shù)據(jù)初始化開始圖5-4AT24C02讀子程序5.3.4顯示模塊HD7279是一片具串行接口的,可同時(shí)驅(qū)動(dòng)8位共陰式數(shù)碼管的智能驅(qū)動(dòng)芯片該芯片,同時(shí)還可以連接多達(dá)64鍵的鍵盤矩陣。通過單片機(jī)控制可完成LED顯示,鍵盤接口的全部功能。因此接受和發(fā)送都應(yīng)該滿足串行通信的要求,將數(shù)據(jù)一位一位移進(jìn)存儲(chǔ)單元,并且要滿足時(shí)序。通過顯示程序的編寫,最終在八位數(shù)碼管的前三位顯示溫度采樣值,在五到七位顯示速度采樣值。7279的初始化流程圖如圖5-5所示:開始開始P1.0口清零延時(shí)25us復(fù)位P1.0口置高返回圖5-57279初始化子程序7279發(fā)送子程序如圖5-6所示:YYN開始設(shè)置循環(huán)次數(shù)將A循環(huán)左移將CF送到p1.2口P1.1置高延時(shí)10usR7-1=0?返回圖5-67279發(fā)送子程序5.3測(cè)溫模塊通過匯編程序,主要完成DS18B20的溫度采集功能。其采用模塊化設(shè)計(jì),程序設(shè)計(jì)包括復(fù)位程序、讀取溫度程序、溫度轉(zhuǎn)換程序、數(shù)碼管顯示程序和延時(shí)程序,其實(shí)現(xiàn)設(shè)計(jì)要求功能主要有輸入控制和數(shù)據(jù)采集兩部分組成。復(fù)位操作首先必須對(duì)DS18b20芯片進(jìn)行復(fù)位,復(fù)位即是由單片機(jī)給DS18b20單總線至少480uS的低電平信號(hào)。當(dāng)DS18b20接到此復(fù)位信號(hào)后則會(huì)在15~60uS后回發(fā)一個(gè)芯片的存在脈沖。在復(fù)位電平結(jié)束之后,控制器應(yīng)該將數(shù)據(jù)單總線拉高,以便于在15至60uS后接收存在脈沖,存在脈沖為一個(gè)60至240uS的低電平信號(hào)。如果復(fù)位低電平的時(shí)間不足或是單總線的電路斷路都不會(huì)接到存在脈沖。其復(fù)位流程圖如圖5-7:DQ置1DQ置1DQ置0DQ置0延時(shí)480us延時(shí)480usDQ置1DQ置1短延時(shí),等待DS18b20回應(yīng)短延時(shí),等待DS18b20回應(yīng)DQ=1?DQ=1?FLAG1置1FLAG1置1FLAG1FLAG1置0短延時(shí)短延時(shí)DQ置1DQ置1返回返回圖5-7DS18b20復(fù)位子程序流程圖寫操作部分控制器發(fā)送存儲(chǔ)器操作指令:在ROM指令發(fā)送給DS18b20之后,緊接著就是發(fā)送存儲(chǔ)器操作指令了。操作指令同樣為8位,共6條,存儲(chǔ)器操作指令分別是寫RAM數(shù)據(jù)、讀RAM數(shù)據(jù)、將RAM數(shù)據(jù)復(fù)制到E2PROM、溫度轉(zhuǎn)換、將E2PROM中的報(bào)警值復(fù)制到RAM、工作方式切換。其流程圖如圖5-8所示:NN數(shù)據(jù)線置低‘0’延時(shí)15us從低位到高位發(fā)送字節(jié)延時(shí)45us數(shù)據(jù)線拉高‘1’字節(jié)發(fā)送完否?入口數(shù)據(jù)線拉高Y返回圖5-8DS18b20寫操作子程序讀操作部分若要讀出當(dāng)前的溫度數(shù)據(jù)則需要執(zhí)行兩個(gè)工作周期,第一個(gè)周期為復(fù)位、跳過ROM指令(之所以要用跳過ROM指令是因?yàn)楸敬卧O(shè)計(jì)只采用了一塊DS18b20芯片,無需辨別芯片)、執(zhí)行溫度轉(zhuǎn)換存儲(chǔ)器操作指令、等待500us溫度轉(zhuǎn)換時(shí)間。緊接著執(zhí)行第二個(gè)周期為復(fù)位、跳過ROM指令、執(zhí)行讀RAM的存儲(chǔ)器操作指令、讀數(shù)據(jù)(最多為9個(gè)字節(jié),中途可停止,只讀簡(jiǎn)單溫度值則讀前2個(gè)字節(jié)即可)。其它的操作流程也大同小異。其流程圖如圖5-9所示:讀數(shù)據(jù)線的狀態(tài)得到1個(gè)狀態(tài)位,并進(jìn)行數(shù)據(jù)處理讀數(shù)據(jù)線的狀態(tài)得到1個(gè)狀態(tài)位,并進(jìn)行數(shù)據(jù)處理延時(shí)2us入口DQ置1DQ置0延時(shí)15usDQ置1返回延時(shí)30us延時(shí)15us圖5-9DS18b20讀操作子程序DS18b20獲取溫度DS18b20采樣溫度的主要流程為先判斷有無DS18b20芯片,當(dāng)有芯片時(shí)發(fā)送跳轉(zhuǎn)指令并執(zhí)行溫度轉(zhuǎn)化指令,經(jīng)過延時(shí)復(fù)位后再執(zhí)行一次跳轉(zhuǎn)指令,最后獲取溫度值。其工作總體流程圖如圖5-10:開始開始讀ds18b20的序列號(hào)DS18b20復(fù)位DS18b20存在否?發(fā)送跳過ROM指令溫度轉(zhuǎn)換Ds18b20復(fù)位發(fā)送跳過ROM指令等待讀取溫度數(shù)據(jù)N返回圖5-10獲取溫度子程序溫度處理在獲取溫度之后,由于此時(shí)溫度是由16位2進(jìn)制數(shù)表示的,因此需要進(jìn)行溫度的精度轉(zhuǎn)換以及相應(yīng)的處理以便顯示正確的溫度值。C清零C清零符號(hào)位清零將轉(zhuǎn)換數(shù)據(jù)高字節(jié)最高位移入CC=1?C清零符號(hào)位置1,表示負(fù)數(shù)將轉(zhuǎn)換數(shù)據(jù)低字節(jié)逐位取反加1轉(zhuǎn)換數(shù)據(jù)高字節(jié)加進(jìn)位C分離整數(shù)與小數(shù),整數(shù)存入37H,小數(shù)存入38H,39H返回NY圖5-11溫度處理子程序5.3報(bào)警模塊是由發(fā)光二極管組成,用采集到的溫度值與設(shè)定好的溫度值進(jìn)行比較,若等于或高于設(shè)定的溫度值則觸發(fā)報(bào)警,即給發(fā)光二極管送一個(gè)高電平,否則即返回繼續(xù)其他操作。其流程圖如圖5-11所示:開始開始測(cè)量值與設(shè)定值相減測(cè)量值與設(shè)定值相減CY=1?NCY=1?YP1.4口置P1.4口置‘1返回返回圖5-12報(bào)警子程序流程圖6系統(tǒng)調(diào)試系統(tǒng)調(diào)試主要分硬件調(diào)試和軟件調(diào)試兩部分。在設(shè)計(jì)過程中,先完成全部硬件的焊接過程,再將軟件分模塊分別燒入以此來檢驗(yàn)各部分功能的實(shí)現(xiàn)情況。這樣做便于系統(tǒng)的調(diào)試,在預(yù)計(jì)現(xiàn)象沒有出現(xiàn)的時(shí)候也能很快排除干擾以及找出錯(cuò)誤的原因。硬件調(diào)試硬件部分主要分速度采集模塊,溫度采集模塊,顯示模塊,存儲(chǔ)模塊及報(bào)警模塊等部分。由于所用元器件均是集成功能較多的元件,因此,硬件電路相對(duì)比較簡(jiǎn)單。唯一復(fù)雜一些的地方是速度采集模塊。需要確定小磁鋼與霍爾傳感器的有效作用面,因此用萬用表做測(cè)量,將磁鋼與霍爾傳感器接觸。通電情況下,傳感器兩端電壓為5V,當(dāng)有效作用面接觸時(shí),兩端電壓變?yōu)?V。這樣既判斷出了有效面,而且還鑒定了該霍爾傳感器的實(shí)用性。軟件調(diào)試軟件變成部分主要分為測(cè)速模塊,測(cè)溫模塊,存儲(chǔ)模塊,顯示模塊及報(bào)警模塊等。相比于硬件調(diào)試,軟件調(diào)試復(fù)雜許多,同時(shí)也尤為重要。在軟件調(diào)試中,鑒于方便修改以及易發(fā)現(xiàn)故障等原因,選擇了分塊調(diào)試。既將每部分模塊的子程序單獨(dú)編寫并燒入單片機(jī),分塊檢查各自完成的效果,再將其組合在一起。首先是測(cè)速模塊,采用的是定時(shí)中斷,外部計(jì)數(shù)的方法。但是在一開始燒入程序時(shí),數(shù)碼管并沒有顯示出任何結(jié)果。在排除了硬件故障之后,得出的結(jié)論是軟件編寫問題。由于定時(shí)器開始設(shè)置的時(shí)間為0.05s,而直流電機(jī)的轉(zhuǎn)速偏慢,不足以達(dá)到每次定時(shí)過程都能測(cè)到脈沖的效果。因此,將原本的0.05s定時(shí)改為1s定時(shí),這樣也方便速度的計(jì)算。當(dāng)再一次燒入程序時(shí),結(jié)果便能正常顯示。接下來是溫度模塊,這部分實(shí)現(xiàn)較為順利,需要注意的是小數(shù)點(diǎn)后精度的調(diào)節(jié),最后設(shè)置了顯示小數(shù)后一位。隨著溫度測(cè)量的完成,繼而開始實(shí)現(xiàn)按鍵設(shè)置溫度報(bào)警值。而這部分也出現(xiàn)了許多問題。在最初的程序中,按下第一個(gè)按鍵后,所有顯示的數(shù)碼管都會(huì)顯示第一個(gè)按下的鍵值。在仔細(xì)查詢了每條語句之后,發(fā)現(xiàn)按下按鍵的反應(yīng)時(shí)間遠(yuǎn)遠(yuǎn)超過了單片機(jī)執(zhí)行匯編語句的時(shí)間,因此便會(huì)出現(xiàn)一鍵按下讀取多個(gè)按鍵的情況。于是為了解決這個(gè)問題便加入了一個(gè)判斷按鍵是否彈起的程序,并加入了一定的延時(shí)。最終,這個(gè)問題得到解決。最后剩下的存儲(chǔ)、顯示與報(bào)警模塊完成的都較為順利。報(bào)警部分要注意每次程序執(zhí)行完成后都要將報(bào)警燈清零一次。因?yàn)槌绦蛎繄?zhí)行一輪,都會(huì)將采集到的新的溫度值與報(bào)警值比較,而一旦報(bào)警燈亮起后,如果沒有清零的話那將會(huì)一直亮著。因此,在設(shè)置完報(bào)警燈程序后還會(huì)出現(xiàn)報(bào)警燈在報(bào)警時(shí)一閃一閃的效果。7心得體會(huì)7.1心得體會(huì)畢業(yè)設(shè)計(jì)既是大學(xué)里的最后一次實(shí)際操作機(jī)會(huì),是將四年理論學(xué)習(xí)運(yùn)用到實(shí)踐的動(dòng)手課程,也是踏上社會(huì)前的最后一次練兵。因此非常珍惜這次寶貴的機(jī)會(huì)。這次的設(shè)計(jì)很好的復(fù)習(xí)到了大學(xué)學(xué)習(xí)到的專業(yè)課程:硬件方面涉及到的傳感器的使用,同時(shí)也更加熟悉protel99繪圖軟件的使用。軟件方面通過這次的編程,更加深入的了解單片機(jī),加強(qiáng)了實(shí)際編程能力,系統(tǒng)的了解了編程中應(yīng)注意的問題并提高了解決問題的能力。由于系統(tǒng)中大量的運(yùn)用了串行通信技術(shù),雖然給軟件編程帶來了一些麻煩,但這也是今后的主流方向。同時(shí)增加了軟件調(diào)試經(jīng)驗(yàn),也更加熟悉的掌握keil51編程及調(diào)試軟件。通過畢業(yè)設(shè)計(jì)不僅系統(tǒng)的復(fù)習(xí)了大學(xué)所學(xué)課程,也幫助提高了實(shí)際動(dòng)手操作能力。同時(shí)還促使養(yǎng)成同學(xué)間的相互配合習(xí)慣,提高了團(tuán)體合作的精神。當(dāng)然也暴露了平時(shí)學(xué)習(xí)中的不足和基礎(chǔ)知識(shí)的不扎實(shí)以及實(shí)際操作中的粗心大意和工作中的不嚴(yán)謹(jǐn)態(tài)度。為今后走上工作崗位提供了良好的借鑒與教訓(xùn)。參考文獻(xiàn)[1].徐瑋,沈建良.單片機(jī)快速入門.北京:北京航空航天大學(xué)出版社,2008,5[2].張鳳珊,祖龍起.電氣控制及可編程序控制器.北京:中國輕工業(yè)出版社,2003,8[3].公茂法,黃鶴松,楊學(xué)蔚.MCS-51/52單片機(jī)原理與實(shí)踐.北京:北京航空航天大學(xué)出版社,2009,3[4].陳在平,趙相賓.可編程序控制器技術(shù)與應(yīng)用系統(tǒng)設(shè)計(jì).北京:機(jī)械工業(yè)出版社,2002[5].張友德,趙志英,涂時(shí)亮.單片微型機(jī)原理、應(yīng)用與實(shí)驗(yàn)(第五版).上海:復(fù)旦大學(xué)出版社,2006,5[6].王致達(dá),張慧,凌濤,周金和.嵌入式系統(tǒng)基礎(chǔ)設(shè)計(jì)實(shí)驗(yàn)與實(shí)踐教程.北京:清華大學(xué)出版社,2008,7[7].李朝青編著.單片機(jī)與PC機(jī)網(wǎng)絡(luò)通信技術(shù).北京航空航天大學(xué)出版社,2007[8].呂寧.單片機(jī)轉(zhuǎn)速測(cè)量系統(tǒng)[J].電子技術(shù),2006,9[9].吳天佑.基于溫度傳感器的PC散熱解決方案[J].世界電子元器件,2001,12[10].I.ScottMacKenzie.THE8051MICROCONTROLLER[M].USA:Prentice-Hall.Inc.,1995致謝本次畢業(yè)設(shè)計(jì)的順利完成得益于許多老師和同學(xué)的幫助,在此表示感謝。首先感謝指導(dǎo)老師熊文華給予的這個(gè)課題,系統(tǒng)的涵蓋到了本專業(yè)的所學(xué)專業(yè)課程,在初步了解課題要求時(shí),熊老師在設(shè)計(jì)方向上給予了正確的指導(dǎo)。同時(shí)在對(duì)該課題涉及到的相關(guān)專業(yè)技術(shù)問題上給予了詳細(xì)解釋。幫助了解了泡沫切割機(jī)的工作原理和如何設(shè)計(jì)實(shí)現(xiàn)。在本次畢業(yè)設(shè)計(jì)中,本人從指導(dǎo)老師身上學(xué)到了很多東西。老師認(rèn)真負(fù)責(zé)的工作態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神和深厚的理論水平都使受益匪淺。這對(duì)于以后的學(xué)習(xí)和生活,是一份寶貴的經(jīng)驗(yàn),在此特別向指導(dǎo)老師致以衷心地感謝。同時(shí)也感謝電子學(xué)院的各位老師,你們的督促,給了工作的動(dòng)力,你們的檢查指導(dǎo),對(duì)設(shè)計(jì)中存在的問題給予的建議,促使逐步完善了設(shè)計(jì)。在具體設(shè)計(jì)與調(diào)試過程中也得到了許多同學(xué)的幫助,在此特別感謝胡溢文同學(xué)在硬件檢測(cè)與軟件調(diào)試方面給予的大力幫助,畢設(shè)過程中也得到了同組同學(xué)張斌的積極配合。在畢業(yè)設(shè)計(jì)中,筆者也參考了大量的參考書籍,這些書籍對(duì)筆者熟悉編程語言,了解編程模式提高編程水平都起到了很大地作用。在此,對(duì)這些參考書籍的作者亦同時(shí)表示感謝。最后,向在這次畢業(yè)設(shè)計(jì)中給予本人幫助的所有同學(xué)和老師表示真誠感謝!附錄附錄A電路原理圖附錄BPCB圖附錄C實(shí)物圖附錄D程序代碼TEMPHEQU35HTEMPLEQU34HBIT_COUNTEQU30HTIMEREQU31HTENEQU32HDATA_INEQU20HDATA_OUTEQU21HTIMER1EQU33HDQBITP1.7;18B20KEYBITP1.3DATBITP1.2CLKBITP1.1CSBITP1.0I2C_SDABITP1.6I2C_SCLBITP1.5ORG0000HAJMPMAINORG000BHAJMPINT_T0ORG0030HMAIN:MOVTMOD,#51HMOVTH1,#00H MOVTL1,#00H MOV25H,#00H MOVTL0,#0B0H MOVTH0,#3CH MOVIE,#8AH MOVTCON,#50H MOVP1,#11001101BSTART:LCALLINT_79JUMP_1: JBKEY,START;按鍵開始輸入溫度報(bào)警值LCALLKEY1 LCALLJIANHAO MOVA,B CLRC SUBBA,#0FH JNZJUMP_1CLEAN: MOV41H,#00H;將輸入的報(bào)警值清零 MOV42H,#00H MOVDATA_OUT,#81HLCALLSENDMOVDATA_OUT,41HLCALLSENDMOVDATA_OUT,#80HLCALLSENDMOVDATA_OUT,42HLCALLSEND MOVDATA_OUT,#82HLCALLSEND MOVDATA_OUT,#0FH LCALLSEND MOVDATA_OUT,#83HLCALLSEND MOVDATA_OUT,#0FH LCALLSEND MOVDATA_OUT,#84HLCALLSEND MOVDATA_OUT,#0FH LCALLSEND MOVDATA_OUT,#85HLCALLSEND MOVDATA_OUT,#0FH LCALLSEND MOVDATA_OUT,#86HLCALLSEND MOVDATA_OUT,#0FH LCALLSEND MOVDATA_OUT,#87HLCALLSEND MOVDATA_OUT,#0FH LCALLSEND LCALLMAXTEM_1 ;輸入報(bào)警值的十位 LCALLDELAY LCALLMAXTEM_2 ;輸入報(bào)警值的個(gè)位 LCALLDELAYJUMP_2: JBKEY,JUMP_2LCALLKEY1 LCALLJIANHAO MOVA,B MOVR4,A CLRC SUBBA,#0EH JZCLBJ MOVA,R4 CLRC SUBBA,#0FH JNZJUMP_2 ACALLCLEANCLBJ: MOVA,41H MOVB,#0AH MULAB ADDA,42H MOV43H,A ;LCALLI2C_WRITECOUNT: LCALLSP_BCD LCALLGET_TEMPERLCALLCHULI_1 ;36H-37H-38H存有溫度值 LCALLDISPLAY_1LCALLDELAYLCALLDELAY CLRP1.4 AJMPCOUNTSP_BCD: ;速度BCD處理MOVR1,45H MOVA,R1 MOVB,#100 DIVAB MOV47H,A ;存百位到47H MOVA,B MOVB,#10 DIVAB MOV48H,A ;存十位到48H MOV49H,B ;存各位到49H RETINT_79: CLR CS;7279初始化 MOV R6,#0CHX0: DJNZR6,X0 MOV A,#0A4H;#0A4H為7279復(fù)位指令 ACALLSEND;7279數(shù)據(jù)發(fā)送子程序 MOV R6,#02HX1: DJNZR6,X1 SETBCS;將片選線拉高,停止傳輸 RETMAXTEM_1:MOVC,KEY;輸入報(bào)警值十位子程序JCL12 JB00H,L11 LCALLKEY1 LCALLJIANHAO MOVA,B CLRC SUBBA,#0FH JNZGO1 ACALLCLEANGO1: MOV41H,B SETB00H LCALLM1 RETL12:CLR00HL11:MOVA,#0FFH AJMPMAXTEM_1M1:MOVA,41H ;顯示溫度報(bào)警值十位子程序MOVR3,AMOVDATA_OUT,#81H;在第二位數(shù)碼管顯示LCALLSENDMOVDATA_OUT,R3LCALLSENDRETMAXTEM_2:MOVC,KEY;輸入報(bào)警值個(gè)位子程序JCL22 JB01H,L21 LCALLKEY1 LCALLJIANHAO MOVA,B CLRC SUBBA,#0FH JNZGO2 ACALLCLEANGO2: MOV42H,B SETB01H LCALLM2 RETL22:CLR01HL21:MOVA,#0FFH AJMPMAXTEM_2 M2:MOVA,42H ;顯示溫度報(bào)警值個(gè)位子程序MOVR3,AMOVDATA_OUT,#80H;在第一位數(shù)碼管顯示LCALLSENDMOVDATA_OUT,R3LCALLSENDRETDISP_SP: ;速度顯示子程序ACALLINT_79MOVA,49HMOVR3,AMOVDATA_OUT,#84H;第五位數(shù)碼管顯示速度值小數(shù)第一位LCALLSENDMOVDATA_OUT,R3LCALLSENDMOVA,48HORLA,#80H;加小數(shù)點(diǎn)MOVR3,AMOVDATA_OUT,#85H;第六位數(shù)碼管顯示速度值個(gè)位LCALLSENDMOVDATA_OUT,R3LCALLSENDMOVA,47HMOVR3,AMOVDATA_OUT,#86H;第七位數(shù)碼管顯示溫度值十位LCALLSENDMOVDATA_OUT,R3LCALLSENDRETSEND:MOVBIT_COUNT,#8 ;7279數(shù)據(jù)發(fā)送子程序CLRCSLCALLLONG_DELAYSEND_LOOP:MOVC,DATA_OUT.7MOVDAT,CSETBCLKMOVA,DATA_OUTRLAMOVDATA_OUT,ALCALLSHOUT_DELAYCLRCLKLCALLSHOUT_DELAYDJNZBIT_COUNT,SEND_LOOPCLRDATRETRECEIVE: ;7279數(shù)據(jù)接收子程序MOVBIT_COUNT,#8SETBDATLCALLLONG_DELAYRECEIVE_LOOP:SETBCLKLCALLSHOUT_DELAYMOVA,DATA_INRLAMOVDATA_IN,AMOVC,DATMOVDATA_IN.0,CCLRCLKLCALLSHOUT_DELAYDJNZBIT_COUNT,RECEIVE_LOOPCLRDATRETLONG_DELAY:MOVTIMER,#25;50USDELAY_LOOP:DJNZTIMER,DELAY_LOOPRETSHOUT_DELAY:MOVTIMER,#4;8USDELAY_LOOP1:DJNZTIMER,DELAY_LOOP1RETINT_T0:MOVTL0,#0B0H;T0定時(shí)中斷MOVTH0,#3CH ;1s定時(shí) INC25H MOVA,25H CJNEA,#20,LO MOVTCON,#00H MOV45H,TL1;將脈沖數(shù)存于45H MOV46H,TH1 MOVTH1,#00H MOVTL1,#00H MOV25H,#00H MOVTCON,#50HLO: RETIGET_TEMPER: ;獲取溫度子程序SETBDQLCALLINIT_1820;調(diào)DS18b20復(fù)位MOVA,#0CCH;跳過ROMLCALLWRITE_1820MOVA,#44H ;溫度轉(zhuǎn)換LCALLWRITE_1820LCALLDELAYLCALLINIT_1820;復(fù)位MOVA,#0CCH;跳過ROMLCALLWRITE_1820MOVA,#0BEH;讀取溫度值LCALLWRITE_1820LCALLREAD_1820;29H(低),28H(高)RETCHULI_1: ;處理溫度子程序MOV36H,#00HMOV37H,#00HMOV38H,#00HMOVC,28H.7JCFUSHUMOVTEMPH,28H;存高位MOVTEMPL,29H;存低位INCTEMPH;修正S1: ;溫度算法MOVA,36HADDA,#25HDAAMOV36H,AMOVA,37HADDCA,#06HDAAMOV37H,AMOVA,38HADDCA,#00HDAAMOV38H,ADJNZTEMPL,S1DJNZTEMPH,S1RETFUSHU:;負(fù)數(shù)處理子程序MOVTEMPH,28HMOVTEMPL,29HXRLTEMPL,#0FFH;變?yōu)樵aXRLTEMPH,#0FFHMOVA,TEMPLADDA,#01HMOVTEMPL,AMOVA,TEMPHADDCA,#00HMOVTEMPH,AINCTEMPH;修正S2:;算法MOVA,36HADDA,#25HDAAMOV36H,AMOVA,37HADDCA,#06HDAAMOV37H,AMOVA,38HADDCA,#00HDAAMOV38H,ADJNZTEMPL,S2DJNZTEMPH,S2LCALLDISPLAY_2RETINIT_1820: ;DS18B20復(fù)位子程序 SETBDQ NOP CLRDQ MOVR1,#3 ;主機(jī)發(fā)出延時(shí)480微秒的復(fù)位低脈沖TSR1:MOVR0,#80 DJNZR0,$ DJNZR1,TSR1 SETBDQ ;拉高數(shù)據(jù)線 NOP NOP NOP MOVR0,#25HTSR2: JNBDQ,TSR3 ;等待DS18B20回應(yīng) DJNZR0,TSR2 LJMPTSR4 ;延時(shí)TSR3: SETBF0;置標(biāo)志位,表示DS1820存在 LJMPTSR5TSR4: CLRF0 ;清標(biāo)志位,表示DS1820不存在 LJMPTSR7TSR5: MOVR0,#117TSR6: DJNZR0,TSR6;時(shí)序要求延時(shí)一段時(shí)間TSR7: SETBDQ RETWRITE_1820: ;寫DS18B20的子程序 MOVR2,#8;一共8位數(shù)據(jù) CLRCWR1: CLRDQ;置低電平,開始寫輸出 MOVR3,#6 DJNZR3,$ RRCA MOVDQ,C MOVR3,#23 DJNZR3,$ SETBDQ NOP DJNZR2,WR1 SETBDQ RETREAD_1820: ;讀DS18B20的程序,從DS18B20中讀出兩個(gè)字節(jié)的溫度數(shù)據(jù) MOVR4,#2;將溫度高位和低位從DS18B20中讀出 MOVR1,#29H;低位存入29H,高位存入28HRE00:MOVR2,#8;數(shù)據(jù)一共有8位RE01:CLRC SETBDQ NOP NOP CLRDQ NOP NOP NOP SETBDQ MOVR3,#9RE10:DJNZR3,RE10 MOVC,DQ MOVR3,#23RE20:DJNZR3,RE20 RRCA DJNZR2,RE01 MOV@R1,A DECR1 DJNZR4,RE00 RETDISPLAY_1: ;顯示子程序MOVDATA_OUT,#0A4H;復(fù)位7279LCALLSENDSETBCSMOVA,37HSWAPAANLA,#0FHMOVR3,AMOVDATA_OUT,#80H;第一位數(shù)碼管顯示溫度值第一位小數(shù)LCALLSENDMOVDATA_OUT,R3LCALLSENDMOVA,38HANLA,#0FHORLA,#80H;DP=1;在個(gè)位顯示處加小數(shù)點(diǎn)MOVR3,AMOVDATA_OUT,#81H;第二位數(shù)碼管顯示溫度值個(gè)位LCALLSENDMOVDATA_OUT,R3LCALLSENDMOVA,38HSWAPAANLA,#0FHMOVR3,AMOVDATA_OUT,#82H;第三位數(shù)碼管顯示溫度值十位LCALLSENDMOVDATA_OUT,R3LCALLSEND LCALLDISP_SP;調(diào)用速度顯示子程序 WDBJ:MOVA,38H ;判斷是否報(bào)警,將38H中的BCD溫度值轉(zhuǎn)換成16進(jìn)制ANLA,#0F0HSWAPAMOVR4,AMOVA,#00HBCD_H:;BCD轉(zhuǎn)16進(jìn)制ADDA,#0AHDJNZR4,BCD_HMOV40H,AMOVA,38HANLA,#0FHADDA,40H ;LCALLI2C_READBJ:SUBBA,43HJCJIXU;判斷溫度SETBP1.4;報(bào)警燈亮JIXU:RETDISPLAY_2:;顯示負(fù)數(shù)溫度子程序MOVDATA_OUT,#0A4H;復(fù)位LCALLSENDSETBCSMOVA,36H;直接取高位SWAPAANLA,#0FHMOVR3,AMOVDATA_OUT,#80HLCALLSENDMOVDATA_OUT,R3LCALLSENDMOVA,37HANLA,#0FHMOVR3,AMOVDATA_OUT,#81HLCALLSENDMOVDATA_OUT,R3LCALLSENDMOVA,37HSWAPAANLA,#0FHMOVR3,AMOVDATA_OUT,#82HLCALLSENDMOVDATA_OUT,R3LCALLSENDMOVA,38HANLA,#0FHORLA,#80H;DP=1MOVR3,AMOVDATA_OUT,#83HLCALLSENDMOVDATA_OUT,R3LCALLSENDMOVA,38HSWAPAANLA,#0FHMOVR3,AMOVDATA_OUT,#84HLCALLSENDMOVDATA_OUT,R3LCALLSENDMOVDATA_OUT,#85HLCALLSENDMOVDATA_OUT,#0AHLCALLSENDRETKEY1:CLRKEY;7279讀鍵子程序MOVR6,#0CHLD1:DJNZR6,LD1MOVDATA_OUT,#15HACALLSENDMOVR6,#06HLD2:DJNZR6,LD2ACALLRECEIVEMOV@R0,DATA_IN;鍵值保存在@R0里面SETBKEYRETJIANHAO:;求鍵號(hào)MOVB,@R0MOVR2,#00HMOVR7,#0FHLH1:MOVA,R2MOVDPTR,#TAB2_JIANZHIMOVCA,@A+DPTRCJNEA,B,LH2LJMPLH3LH2:INCR2DJNZR7,LH1LH3:MOVB,R2RETTAB2_JIANZHI:DB1CH,1DH,1EH,1FH,14H,15H,16H,17HDB0CH,0DH,0EH,0FH,04H,05H,06H,07H;鍵值表 DELAY: ;750ms延時(shí)MOVR5,#06HDELAY2:MOVR7,#0HDELAY1:MOVR6,#0HDJNZR6,$DJNZR7,DELAY1DJNZR5,DELAY2RETI2C_WRITE:;EEROM寫入ACALLI2C_STARTACALLOUTMOVR6,#8WR_LP:MOVA,43HACALLOUTAJMPI2C_STOPI2C_READ:;EEROM讀出ACALLI2C_STARTACALLOUTMOVA,#0A1H;讀指令A(yù)CALLOUTSBRDLP:MOVR7,#8SETBI2C_SDAINLP:CLRI2C_SCLACALLDELAY6SETBI2C_SCLNOPMOVC,I2C_SDARLCADJNZR7,INLPCLRI2C_SCLMOV43H,AI2C_STOP:CLRI2C_SDAACALLDELAY5SETBI2C_SCLACALLDELAY5SETBI2C_SDADELAY6:NOPDELAY5:NOPRETI2C_START: ;啟動(dòng)24C02SWAPARRAMOVR6,AMOVA,#0A0H;寫操作指令A(yù)CALLOUTSMOVA,R6RETACKLP:CLRI2C_SDASETBI2C_SCLACALLDELAY5CLRI2C_SCLAJMPBRDLPOUTS:SETBI2C_SDASETBI2C_SCLACALLDELAY5CLRI2C_SDAACALLDELAY5CLRI2C_SCLOUT:SETBCMOVR7,#9OTLP:RLCANOPMOVI2C_SDA,CNOPNOPSETBI2C_SCLACALLDELAY5CLRI2C_SCLDJNZR7,OTLPRETEND

學(xué)位論文原創(chuàng)性聲明學(xué)位論文作者(本人簽名):年月日學(xué)位論文出版授權(quán)書論文密級(jí):□公開 □保密(___年__月至__年__月)(作者簽名:_______導(dǎo)師簽名:______________年_____月_____日_______年_____月_____日

獨(dú)創(chuàng)聲明本人鄭重聲明:所呈交的畢業(yè)設(shè)計(jì)(論文),是本人在指導(dǎo)老師的指導(dǎo)下,獨(dú)立進(jìn)行研究工作所取得的成果,成果不存在知識(shí)產(chǎn)權(quán)爭(zhēng)議。盡我所知,除文中已經(jīng)注明引用的內(nèi)容外,本設(shè)計(jì)(論文)不含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫過的作品成果。對(duì)本文的研究做出重要貢獻(xiàn)的個(gè)人和集體均已在文中以明確方式標(biā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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論