版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
基于89C51單片機的溫度控制器的設計摘要溫度控制器是一種提供溫度顯示、語音報溫和報警的裝置?;?9C51單片機設計,測溫探頭采用DS18B20數(shù)字溫度傳感器,測量現(xiàn)場溫度,語音播放裝置采用ISD1420語音芯片,實現(xiàn)語音定時報溫和報警功能,使用7段碼顯示器顯示當前溫度,蜂鳴器提供報警功能。該裝置可以實現(xiàn)上下位機通信,上位機設置報警溫度,實現(xiàn)控溫目的,并且根據(jù)下位機測量的溫度繪出溫度變化曲線。關鍵字:單片機(89C51); DS18B20; ISD1420; 7段碼顯示器;蜂鳴器AbstractThetemperaturecontrollerisaprovidetemperaturedisplay,voicealarmdeviceformild.Basedonthe89C51singlechipdesign,measurementtemperatureprobeusingdigitaltemperaturesensorDS18B20,measuringthetemperature,speechbroadcastdeviceadoptsISD1420voicechip,realizevoicesettimesmildalarmfunctions,use7bitcodedisplayshowsthecurrenttemperaturebuzzer,providealarmfunction.Thisdevicecanachieveamachineandcommunication,PCsetalarmtemperature,temperaturecontrol,andachievepurposeaccordingtoamachine.Keyword:SCM(89C52);DS18B20;ISD1420;7bitcodedisplays;sounders目錄TOC\o"1-5"\h\z摘要 1目錄 2\o"CurrentDocument"第一章引言 3\o"CurrentDocument"第二章硬件系統(tǒng)設計 4\o"CurrentDocument"硬件系統(tǒng) 4\o"CurrentDocument"單片機模塊 5溫度傳感器模塊 5\o"CurrentDocument"語音模塊 6LED顯示模塊 7\o"CurrentDocument"RS232通訊模塊 8蜂鳴器模塊 9\o"CurrentDocument"芯片介紹 10\o"CurrentDocument"STC89C52RC芯片 10\o"CurrentDocument"DS18B20芯片 12\o"CurrentDocument"ISD1420芯片 16\o"CurrentDocument"MAX232芯片 19\o"CurrentDocument"第三章軟件系統(tǒng)設計 21\o"CurrentDocument"參數(shù)信息 21\o"CurrentDocument"程序設計 22\o"CurrentDocument"主程序設計 22溫度處理程序設計 23錄放音程序設計 24\o"CurrentDocument"中斷程序設計 26\o"CurrentDocument"第四章性能測試與結(jié)果分析 28\o"CurrentDocument"串口通訊工具 28\o"CurrentDocument"串口通訊程序 29\o"CurrentDocument"串口通訊界面 29\o"CurrentDocument"串口通訊 30\o"CurrentDocument"4.2.1發(fā)送功能 30\o"CurrentDocument"接收功能 30\o"CurrentDocument"繪制溫度曲線 31\o"CurrentDocument"第五章課程設計總結(jié) 32\o"CurrentDocument"5.1問題與解決 32\o"CurrentDocument"心得體會 32\o"CurrentDocument"參考文獻 34\o"CurrentDocument"附錄 35第一章引言溫度是許多領域控制中主要的被控參數(shù)之一,特別是在冶金、化工、建材、食品、機械、石油等工業(yè)中,具有舉足輕重的作用。隨著電子技術和微型計算機的迅速發(fā)展,微機測量和控制技術得到了迅速的發(fā)展和廣泛的應用。單片機應用在溫度測量與控制方面,控制簡單方便,測量范圍廣,精確度較高。它具有處理能力強,運行速度快,功耗低等優(yōu)點。本課題是設計一個溫度控制系統(tǒng)。其原理是所測量的溫度信號直接通過數(shù)字溫度傳感器檢測到溫度后,送到單片機中,單片機把檢測的溫度同上位機設定的溫度進行比較,并顯示在顯示器上(如果溫度高于設定值,語音提示且蜂鳴器報警),再由單片機將溫度發(fā)送到上位機,繪制溫度變化曲線,觀察溫度變化,根據(jù)控制策略給出溫度設定值,從而構(gòu)成溫度控制系統(tǒng)。本設計的主要內(nèi)容分為兩部分:硬件部分和軟件部分。硬件部分內(nèi)容分為:電源電路的選擇、單片機的選擇用的是STC89C52RC單片機、數(shù)字溫度傳感器DS18B20、數(shù)碼管的顯示設計、報警電路的設計和語音芯片ISD1420等。軟件部分分為:基于keil編譯環(huán)境的單片機應用軟件的編寫與調(diào)試、基于java編譯環(huán)境的上下位機的通信功能實現(xiàn)。第一章為引言,粗略地介紹此次課設的主要內(nèi)容。第二章為硬件系統(tǒng)設計,主要介紹硬件構(gòu)成圖和各硬件部分的功能,以及DS18B20、ISD1420、STC89C52RC、RS232的內(nèi)部結(jié)構(gòu)功能、硬件系統(tǒng)中對應芯片接線、工作方式以及初始化編程。另外,從LED顯示器的設定的原理、編程進行詳細的描述。第三章為軟件系統(tǒng)設計,主要介紹各種參數(shù)、流程圖以及代碼。第四章為課程設計總結(jié),主要包括心得體會、問題與解決和程序清單。
第二章硬件系統(tǒng)設計2.1硬件系統(tǒng)硬件系統(tǒng)原理圖如圖2-1-1所示:y..'nNT“ rrH「豐 一廠 1—■:-=-■■■■UI1||:y..'nNT“ rrH「豐 一廠 1—■:-=-■■■■UI1||:-|1!.3■■>■■:■2溫度控制器硬件系統(tǒng)由以下六個模塊組成:單片機模塊、溫度傳感器模塊、語音模塊、LED顯示模塊、RS232通訊模塊、蜂鳴器模塊。單片機模塊單片機采用宏晶科技生產(chǎn)的STC89C52RC單片機作為控制器。STC89C52RC是一個超強抗干擾,高速,低功耗的單片機,指令代碼完全兼容傳統(tǒng)8051單片機,12時鐘/機器周期和6時鐘/機器周期可任意選擇,工作頻率范圍:0-40MHz,相當于普通8051的0?80MHz.實際工作頻率可達48MHz.,片上集成1280字節(jié)RAM,無需專用編程器。vctcP1AlA2U1單片機模塊電路原理圖如圖2-1-2所示:UHAS47lxTlTlTx11TlTx11ppppppppRED7T1P3J應Tl)P王4的P3_5(Tl)EAT.WvctcP1AlA2U1單片機模塊電路原理圖如圖2-1-2所示:UHAS47lxTlTlTx11TlTx11ppppppppRED7T1P3J應Tl)P王4的P3_5(Tl)EAT.WXT.4L0mL]EESETP3.6i^)P王了両VS£VCC陰D)玖0<TXD)P3.1,ALE{PROG;.PBENoI—I衛(wèi)『J4-J5-.1—iCL'lQ-Q-'l.Q-Q-PPPPPPPP圖2-1-2單片機模塊電路圖由圖2-1-2所示的單片機模塊,主要實現(xiàn)硬件系統(tǒng)中各個模塊功能之間的相互協(xié)調(diào),數(shù)據(jù)的處理,輸出執(zhí)行,報警設置等功能。其中包括時鐘脈沖產(chǎn)生電路、單片機復位電路等。2.1.2溫度傳感器模塊溫度傳感器采用DS18B20數(shù)字溫度傳感器。DS18B20體積更小、適用電壓更寬、更經(jīng)濟?,F(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性,適合于惡劣環(huán)境的現(xiàn)場溫度測量;不需要外部元件,直接輸出串行數(shù)據(jù);可不需要外部電源,直接通過信號線供電,電源電壓范圍為3.3V?5V;測溫精度高,測溫范圍為:一55°C?+125°C,在-10°C?+85°C范圍內(nèi),精度為土O.5°C;測溫分辨率高,當選用12位轉(zhuǎn)換位數(shù)時,溫度分辨率可達0.0625°C;
數(shù)字量的轉(zhuǎn)換精度及轉(zhuǎn)換時間可通過簡單的編程來控制:9位精度的轉(zhuǎn)換時間為93.75ms:10位精度的轉(zhuǎn)換時間187.5ms:12位精度的轉(zhuǎn)換時間750ms;具有非易失性上、下限報警設定的功能,用戶可方便地通過編程修改上、下限的數(shù)值;可通過報警搜索命令識別哪片DS18B20采集的溫度超越上、下限。DS18B20電路原理圖如圖2-1-3所示:圖2-1-3DS18B20電路圖DS18B20測量的溫度傳送到單片機中,在數(shù)碼管上顯示,并與上位機進行通信,繪制溫度變化曲線。2.1.3語音模塊語音部分采用ISD1420語音芯片。ISD1420芯片采用直接模擬存儲技術,
且錄放音質(zhì)極好,并有一定的混響效果;它的外圍元件簡單,僅需要簡單的阻、
容元件即可組成簡單的錄、放電路;單電源供電,典型電壓+5V;待機時低功耗(0.5uA),放音電流15mA;放音時間20s,可擴充級聯(lián);可持續(xù)放音,也可分段錄放,最小分段:20s/160段=0.125s段,可分段160段;錄、放次數(shù)達10萬次;斷電信息存儲,無需后備電池,信息可存儲100年;不需要專用的編程器及語音開發(fā)器;高優(yōu)先級錄音,低電平或下降沿放音。ISD1420電路原理圖如圖2-1-4所示:
圖2-1-4ISD1420電路圖語音接口作為輸出口時,主要用于報告運行狀態(tài)、運行結(jié)果、提示系統(tǒng)操作過程及故障報答等;作為輸入時、則主要是語音的記錄、語音庫的建立和語音的識別。本設計中首先記錄關于溫度的一些語音,再根據(jù)測量溫度定時報溫。2.1.4LED顯示模塊LED顯示部分采用七段碼顯示器。DS18B20溫度傳感器測量現(xiàn)場溫度,傳送到單片機中,在數(shù)碼管上顯示。LED顯示塊是由發(fā)光二極管顯示字段的顯示器件。在單片機應用系統(tǒng)中通常使用的是七段LED。這種顯示塊有共陰極與共陽極兩種。共陰極LED顯示塊的發(fā)光二極管陰極共地。當某個發(fā)光二極管的陽極為高電平時,發(fā)光二極管點亮;共陽極LED顯示塊的發(fā)光二極管陽極并接。LED電路原理圖如圖2-1-5所示:
圖2-1-5LED電路圖在單片機應用系統(tǒng)中使用LED顯示塊構(gòu)成N位LED顯示器。N位LED顯示器有N根位選線和8*N根段選線。根據(jù)顯示方式不同,位選線與段選線的連接方法不同。段選線控制字符選擇,位選線控制顯示位的亮,暗。LED顯示器有靜態(tài)顯示與動態(tài)顯示兩種方式。我們使用的為動態(tài)顯示LED動態(tài)顯示方式。在多位LED顯示時,為了簡化電路,降低成本,將所有位的段選線并聯(lián)在一起,由一個8位1/O口控制,而共陰極點或共陽極點分別由響應的I/O口線控制。2.1.5RS232通訊模塊MAX232芯片具有功耗低、工作電源為單電源、外接電容僅為0.1uF或1uF、采用雙列直插封裝形式、接收器輸出為三態(tài)TTL/CMOS、兩路接收器和發(fā)送器等特點。RS232電路原理圖如圖2-1-6所示:
V(:cC610』U4Cl0C:1C1+ VCCV+ GNDCl- T1OUTC2+ R1INC2- R1OUTV- T1INT2OUTT2INR2INR2OUT16(21h1.10’1314104rC54135L2P3.010’1611P317108923;1C?'16寸oomr--e91—110[d<c(AV■r2/\tJJ2DB9圖2-1-6MAX232電路圖通過這個模塊,我們可以實現(xiàn)溫度控制器系統(tǒng)與計算機之間的串口通信,實現(xiàn)數(shù)據(jù)交換,設置溫度范圍,繪制溫度變化曲線。2.1.6蜂鳴器的正極性的一端聯(lián)接到5V電源上面,另一端聯(lián)接到三極管的集電極,三極管的基級由單片機的P2.3管腳來控制,當P2.3管腳為低時,三極管導通,這樣蜂鳴器的電流形成回路,發(fā)出聲音。當P2.3管腳為高時,三極管截止,蜂鳴器不發(fā)出聲音。用戶可以通過程序控制P2.3管腳的置低和置高來使蜂鳴器發(fā)出聲音和關閉。蜂鳴器電路原理圖如圖2-1-7所示:
通過這個模塊,可以實現(xiàn)溫度控制系統(tǒng)報警功能,通過上位機設置溫度有效范圍,溫度過高或過低,蜂鳴器報警。2.2芯片介紹此部分從芯片的系統(tǒng)接線、工作方式以及初始化編程方面分別介紹DS18B20、ISD1420、STC89C52RC、MAX232芯片,以及LED顯示器。本次課程設計以STC89C52系統(tǒng)為核心,它主要負責控制各個部分的協(xié)調(diào)工作,在其外圍接上復位電路,顯示器,語音電路和溫度傳感器電路等。STC89C52RC芯片1.STC89C52RC芯片的封裝STC89C52RC芯片是標準的40引腳雙列直插式集成電路芯片,其引腳排列如圖2-2-1所示。其中有4個8位I/O并行口共32個引腳、4個控制引腳、兩個時鐘輸入/輸出引腳及兩個電源引腳。
2.電源引腳Vcc:電源正端,接+5V電源。Vss:接地端。3.1/0口引線51系列單片機有4個I/O端口,每個端口都是8位準雙向口,共占32根引腳。每個端口都包括一個鎖存器(即專用寄存器P0?P3)、一個輸出驅(qū)動器和輸入緩沖器。通常把4個端口籠統(tǒng)地表示為P0?P3。P0口由一個輸出鎖存器、兩個三態(tài)輸入緩沖器和輸出驅(qū)動電路及控制電路組成,P0口必須接上拉電阻。P0口既可以作為I/O用,也可以作為地址/數(shù)據(jù)線用。P1口是一個標準的準雙向口,只能作為通用I/O口使用。P1.0和P1.1是多功能的,P1.0作為定時器/計數(shù)器2的外部輸入端,P1.1作為定時器/計數(shù)器2的外部控制輸入。P2口可作為I/0口和高8位地址線A8-A15輸出口。P3口是一個雙功能口,第一功能是通用I/0口,第二功能各位定義見表1:
表1P3口的第二功能引腳第二功能P3.0RXD(串行輸入通道)P3.1TXD(串行輸出通道)P3.2INTO(外中斷0)P3.3INT1(外中斷1)P3.4T0(定時器0外部輸入)P3.5T1(定時器1外部輸入)P3.6WR(外數(shù)據(jù)存儲器寫選通)P3.7RD(外數(shù)據(jù)存儲器讀選通)4.控制線PSEN:片外取指信號(片外程序存儲器讀)輸出端低電平有效,通過P0口讀回指令或常數(shù),控制的是片外程序存儲器。ALE:地址鎖存信號,ALE低電平時,P0口出現(xiàn)數(shù)據(jù)信息;ALE高電平時,P0口出現(xiàn)地址信息,用下降沿 鎖存P0口的低8位地址到外部鎖存器。EA:程序存儲器選擇信號,EA=0時,選外部ROM;EA=1,地址小于4k時,選內(nèi)部ROM,地址大于4k時,選外部ROM。RESET:復位信號:高電平復位CPU,低電平CPU工作5.時鐘引腳XTAL1:片內(nèi)振蕩電路輸入端。XTAL2:片內(nèi)振蕩電路輸出端。當使用芯片內(nèi)部的時鐘電路時,用于外接石英晶體和微調(diào)電容;當使用外部時鐘時,用于外接時鐘信號。DS18B20芯片圖2-2-2DS18B20引腳圖I/O:數(shù)字信號輸入/輸出端。GND:電源地端。VCC:外接供電電源輸入端(在寄生電源接線時此腳應接地)。2.DS18B20內(nèi)部結(jié)構(gòu)簡要介紹:DS18B20的內(nèi)部有64位的ROM單元、溫度傳感器、非易失性溫度報警觸發(fā)器TH和TL和9字節(jié)的暫存器單元。64為ROM包含了DS18B20唯一的序列號。內(nèi)部結(jié)構(gòu)圖如圖2-2-3所示:圖2-2-3DS18B20內(nèi)部結(jié)構(gòu)圖3.DS18B20的溫度計算DS18820中的溫度傳感器完成對溫度的測量,輸出格式為:16位符號擴展的二進制補碼。當測溫精度設置為12位時,分辨率為0.0625^,即O.0625°C/LSB。其二進制補碼格式見表2:表2DS18B20的數(shù)據(jù)格式Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0LSB2八32^22^12^02^12^-22=32^-4Bit15Bit14Bit13Bit12Bit11Bit10Bit9Bit8MSBSSSSS2飛2^52^4其中,S為符號位,S=1,表示溫度為負值;S=0,表示溫度為正值。例如+125C的數(shù)字輸出為07D0H,-55C的數(shù)字輸出為FC90H。上表是轉(zhuǎn)化后得到的12位數(shù)據(jù),如果溫度大于0,只要將測到的數(shù)值乘以0.0625即可得到實際溫度;如果溫度小于0,測到的數(shù)值取反加1再乘以0.0625,即可得到實際溫度。一些溫度值對應的數(shù)字輸出如表3所示:表3溫度值與十六進制輸出對照表
溫度十六進制輸出+12507D0H+850550H+25.0650191H+10.12500A2H+0.50008H00000H-0.5FFF8H-10.125FF5EH-25.065FE6FH-55FC90H3.DS18B20的寄存器分布DS18820中的高速暫存器是一個9字節(jié)的存儲器,其含意如表4所示表4暫存器分布寄存器內(nèi)存字節(jié)地址溫度最低為LSB0溫度最高位MSB1高溫限值TH2低溫限值TL3配置寄存器4保留5保留6保留7CRC校驗8開始兩個字節(jié)為被測溫度的數(shù)字量;第3、4、5字節(jié)分別為TH、TL、配置寄存器的復制,每一次上電復位時被重寫;第7字節(jié)為測溫計數(shù)的剩余值;第8字節(jié)為測溫時每度的計數(shù)值;第9字節(jié)讀出的是前8個字節(jié)的CRC校驗碼,通過此碼,可判斷通訊是否正確。4.DS18B20的操作指令ROM操作指令讀命令(33H):通過該命令主機可以讀出DS18820的ROM中的8位系列產(chǎn)品代碼、48位產(chǎn)品序列號和8位CRC校驗碼,該命令僅限于單個DS18B20在線的情況。選擇定位命令(55H):當多片DS18820在線時,主機發(fā)出該命令和一個64位數(shù),DS18820內(nèi)部ROM與主機一致者,才響應命令,該命令也可用于單個DS18820的情況。查詢命令(0F0H):該命令可查詢總線上DS18B20的數(shù)目及其64位序列號。跳過ROM序列號檢測命令(OCCH):該命令允許主機跳過ROM序列號檢測而直接對寄存器操作,該命令僅限于單個DS18820在線的情況。報警查詢命令(OECH):只有報警標志置位后,DS18B20才相應該命令。存儲器操作指令寫暫存器(4EH):該命令可寫入寄存器的第2、3、4字節(jié),即高低溫寄存器和配置寄存器,復位信號發(fā)出之前,三個字節(jié)必須寫完。讀暫存器(OBEH):該命令可讀出寄存器中的內(nèi)容,復位命令可終止讀出。溫度變換(44H):該命令使DS18B20立即開始溫度轉(zhuǎn)換,當溫度轉(zhuǎn)換正在進行時,主機這時讀總線將收到0;當溫度轉(zhuǎn)換結(jié)束時,主機這時讀總線將收到1。若用信號線給DS18820供電,則主機發(fā)出轉(zhuǎn)換命令后,必須提供至少相應于分辨率的溫度轉(zhuǎn)換時間的上拉電平。重調(diào)(088H):該命令把EEROM中的內(nèi)容寫到寄存器TH、TL及配置寄存器中。DS18820上電時能自動寫入。復制暫存器(48H):該命令把寄存器TH、TL及配置寄存器中內(nèi)容寫到EEROM。讀供電方式(084H):主機發(fā)出該命令后,DS18B20將進行響應,發(fā)送電源標志,信號線供電發(fā)0,外接電源發(fā)1。5.DS18B20時序(1)初始化時序(2)寫時序[usvTrec Masterwrite1slotMasterwrite0slot . 點—60usvTx0vl20us讀時序MASTERREAD1SLOTMASTERREAD0MASTERREAD1SLOTMASTERREAD0SLOTISD1420芯片1.ISD1420芯片的封裝ISD1420芯片封裝有DIP硬封裝和COB軟封裝兩種形式,均為28引腳,如圖2-2-4所示:1AO VCCDAl RECA2 XCLKA3 RECLED282273"26~45~24~6■斗 PLAiE7A5 PLAiLNC NCNC ANAOUTA6 ANAINA7 AGCNC MICREFVSSD MICVSSA VCCASP+ SP-"22~892010191118ipIP13161415圖2-2-4ISD1420封裝其中,A0-A7為地址或操作模式控制位;VSSD為數(shù)字地;VSSA為模擬地;SP+、SP-為音頻信號輸出端,可以驅(qū)動8—16揚聲器;VCCA為模擬電源;VCCD為數(shù)字電源;MIC為話筒輸入端,若不用應懸空;AGC為自動增益控制端,調(diào)整芯片內(nèi)部前置放大器增益,使錄入信號不失真;ANAIN、ANAOUT為兩端間接電容,該該端用于模擬信號的直接輸入、輸出;XCLK為外部時鐘或接地(一般用戶接地即可);REC為錄、放音控制,低電平為錄音(此時PLAYE或PLAYL=0);PLAYL為電平放音控制(低電平有效),放音時應保持低電平;PLAYE為邊沿放音控制,下降沿開始放音;RECLED為錄音指示,接發(fā)光二極管,錄音時亮,放音結(jié)束閃爍一下。2.ISD1420的地址模式和操作模式ISD1420地址輸入端具有雙重功能,根據(jù)地址中的A6、A7的電平狀態(tài)決定AO?A7的功能。如果A6、A7有一個低電平,A0?A7輸入為地址位,作為起始地址用,此時地址線僅作為輸入端,在操作過程中不能輸出內(nèi)部地址信息。根據(jù)PLAYE、PLAYL或REC的下降沿信號,地址輸入被鎖定。如果A6、A7同為高電平時,它們即為操作模式位。ISD1420地址功能表如表5所示:表5ISD1420地址功能表地址狀態(tài)功能說明DIP開關1 2 3 45 6 7 80N=0,OFF=1地址位AOA1A2A3A4A5A6A71:高電平,0:低電平00000000最長20秒錄放音,首地址開始100000008位二進制表示地址,每地址125ms地址模式00000010一段A6地址開始的12s錄放音*******0A6,A7有一位=0,處于地址模式******0*00010011循環(huán)放音操作操作模式00001011順序連續(xù)分段放音00000011地址指針復位,開始錄放第一段10001011按PE鍵快速選段放音使用操作模式有兩點要注意:(1)所有初始操作都是從0地址開始。0地址是ISD1420存儲空間的起始端,后面的操作可模擬模式的不同,而從不同的地址開始工作。當電路中錄放音轉(zhuǎn)換將進入省電狀態(tài)時,地址計數(shù)器復位為0。(2)當PLAYE、PLAYL或REC變?yōu)榈碗娖?,同時A6、A7為高電平時,執(zhí)行地址線所對應的操作模式。這種操作模式一直執(zhí)行到下一個低電平控制輸入信號出現(xiàn)為止。
ISD1420操作模式如表6所示表6ISD1420操作模式模式功能典型應用可組合使用|A0信息檢索快進信息A4A1刪除EOM信息結(jié)束處放置EOMA3A4A3循環(huán)從0地址循環(huán)放音A1A4連續(xù)尋址錄放連續(xù)多段信息A0A13.錄放音時序(1)錄音時序(2)放音時序
MAX232芯片1.MAX232芯片的封裝MAX232芯片采用DIP封裝,雙列直插形式,引腳圖如圖2-2-5所示:W11111116+ vccVf GNDCl\ T1OUTC2+\ R1INC2- )R1OUTV-/ TIINT2QUTT2INR2INR2OUT16215131414IB51216111710891MAX232圖2-2-5MAX2332封裝C1+:電容倍增充電泵電容正端;C1-:電容倍增充電泵電容正端;C2+:反向充電泵電容正端;C2-:反向充電泵電容負端;V+:充電產(chǎn)生的+5.5V;V-:充電產(chǎn)生的-5.5V;R1IN:RS-232發(fā)送器輸入1;R2IN:RS-232發(fā)送器輸入2;T10UT:RS-232發(fā)送器輸出1;T2OUT:RS-232發(fā)送器輸出2;TIIN:TTL發(fā)送器輸入1;T2IN:TTL發(fā)送器輸入2;R1OUT:TTL接收器輸出1;R2OUT:TTL接收器輸出2;VCC:電源;GND:地。2.內(nèi)部結(jié)構(gòu)
內(nèi)部結(jié)構(gòu)基本可分三個部分:第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-12v兩個電源,提供給RS-232串口電平的需要。第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個數(shù)據(jù)通道。其中13腳(R1IN)、12腳(R10UT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。8腳(R2IN)、9腳(R20UT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。TTL/CMOS數(shù)據(jù)從T1IN、T2IN輸入轉(zhuǎn)換成RS-232數(shù)據(jù)從T1OUT、T2OUT送到電腦DP9插頭;DP9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT輸出。第三部分是供電。15腳DNG、16腳VCC(+5v。第三章軟件系統(tǒng)設計3.1參數(shù)信息//DS18B20//DS18B20輸入端//蜂鳴器//數(shù)碼管段選//數(shù)碼管位選//錄音標志//低電平放音標志//上升沿啟動語音芯片標志sbitDQ二P2"2;sbitbeep二P2"3;sbitdula二P2飛;sbitwela二P2“7;sbitREC二P3"5;sbitPL=P3飛;sbitTWR=P3^7;uchardelay;ucharflagbaoshi;ucharaa;uchartime=0;uinttemp;//定時報時標志//存放串口通信數(shù)據(jù)//溫度變量uinttemp2;ucharflag;ucharcount=0;voidTXReset();voidack_18b20();bitread_bit();ucharread_byte();//標志變量//計數(shù)標志//DS18B20復位函數(shù)//讀取數(shù)據(jù)codeuchartable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//段碼表codeuchartre[]={0,0x04,0x08,0x0c,0x10,0x14,0x18,0x1c,0x20,0x24,0x28,0x2c,0x30,0x34};voiddel(uintz);voidwrite_bit(uchardat);voidTem_Start();voidReadTem();0x34};voiddel(uintz);voidwrite_bit(uchardat);voidTem_Start();voidReadTem();uintCalTemp();voiddisplay();voidSerial_init();voidrecord(ucharaddress)voidplay(ucharaddress);voidrecord_init();//錄音芯片地址表//延時函數(shù)//寫數(shù)據(jù)//讀取溫度值//轉(zhuǎn)換溫度//顯示函數(shù)//初始化函數(shù);//錄音函數(shù)//放音函數(shù)//錄入語庫函數(shù)3.2程序設計此部分包括主程序流程圖,溫度處理流程圖,語音錄放處理流程圖,處理流程圖,3處理流程圖,4處理流程圖,中斷處理流程圖以及軟件設置各模塊能實現(xiàn)的功能。主程序設計1.主程序流程圖如圖3-2-1所示:2.主程序voidmain(){Serial_init();while(1){if(aa==0x01){aa=0;record_init()}if(flagbaoshi==1)圖3-2-1主程序流程圖//初始化函數(shù)//初始化語音庫//錄放音函數(shù)play(0x34); //當前溫度是play(tre[temp/100]);//溫度值if((temp%100)/10==0)play(tre[10]);if((temp%100)/10){play(tre[10]);play(tre[(temp%100)/10]);}play(tre[11]); //點play(tre[temp%10]);play(0x3c); //度}}}3.2.2溫度處理程序設計1.溫度處理程序流程圖如圖3-3-2所示:圖3-2-2溫度處理程序流程圖2.溫度處理程序如下:uintCalTemp() //獲取十進制溫度{uinttempval,value;uinttpl,tph;floatt;ReadTem(); //讀取溫度值tpl=read_byte();//獲得低八位tph=read_byte();//獲得高八位tempval=tph;tempval=tempval<<8;//把以上八位數(shù)據(jù)從低八位移到高八位tempval二tempval|tpl;//兩字節(jié)合成一個整型變量value=tempval;t=value*0.0625; //得到真實十進制溫度值value=t*10+0.5;returnvalue; //變成位數(shù)好顯示}3.2.3錄放音程序設計1.錄音程序設計錄音程序流程圖如圖3-2-3所示圖3-2-3錄音程序流程圖錄音程序如下:voidrecord(ucharaddress) //錄制對應地址語音信息{Pl=OxcO; //Oxff也行,只要保證前兩位是TWR=0;del(10);TWR=1;
//用上升沿將//用上升沿將P1數(shù)據(jù)打進去,地址復位//在//在address地址錄音TWR=0;del(10);TWR=1;del(10);REC=1;//REC低電平開始錄音//REC低電平開始錄音REC=0;if(address==0x34){del(400); //錄制最后一段REC=1;del(400);}else{del(100);REC=1;del(100);}}2.放音程序設計放音程序流程圖如圖3-2-4所示:圖3-2-4放音程序流程圖放音程序如下:voidplay(ucharaddress) //播放對應地址的語音信息{TWR=O; //用上升沿將Pl數(shù)據(jù)打進去P1=address;TWR=l;del(l0);TWR=0;PL=0; //PL為低電平,開始放音if(address==0x34)//播放最后一段del(400);elsedel(l00);PL=1; //PL置高電平,停止放音}中斷程序設計1.中斷程序流程圖如圖3-2-5所示:圖3-2-5中斷程序流程圖2.中斷程序voidtime0()interrupt1{TH0=(65536-20000)/256;TL0=(65536-20000)%256;Tem_Start();temp=CalTemp();if(temp>BUF*10&&BUF!=0){P1=BUF;beep=0;del(10);beep=1;}display();time++;if(time==50){ES=0;time=0;SBUF=temp/100;while(!TI);//定時器中斷//定時器賦初值//開始測溫//獲得十進制溫度值//溫度超過范圍報警//溫度顯示//每隔秒掃描一次溫度TI=0;SBUF=(temp%100)/10;while(!TI);TI=0;SBUF=temp%10;while(!TI);TI=0;ES=1;}time2++;if(time2==1500){time2=0;flagbaoshi=1;}}完整程序見附錄。//30秒定時報溫第四章性能測試與結(jié)果分析4.1串口通訊工具串口通訊工具的設計采用的是java編程,主要通過使用java自帶的串口API實現(xiàn)上位機與單片機之間的通信;java采用的是線程操作,實現(xiàn)了溫度監(jiān)聽的實時性;同時用到了java繪圖技術,能夠?qū)⒉杉降臄?shù)據(jù)通過坐標圖型的方式顯示在上位機上。串口通訊工具主要包含溫度采集模塊,數(shù)據(jù)處理模塊,圖像繪制模塊和溫度設置模塊。溫度采集模塊:采用java自帶串口APIcomm?實現(xiàn)接收從單片機發(fā)送過來的數(shù)據(jù);數(shù)據(jù)處理模塊:由于單片機的sbuf只有8位,范圍為:0?255,而采集的溫度可能大于33.3度,這樣就超過了sbuf的范圍,我們采用的是單片機分3次發(fā)送到方式解決此問題,收到的數(shù)據(jù)要想坐標顯示,這樣就需要對數(shù)據(jù)進行處理;圖像繪制模塊:經(jīng)過了數(shù)據(jù)處理模塊的數(shù)據(jù),就可以直接用來作為上位機繪制坐標圖型的數(shù)據(jù)參數(shù),然后通過java自帶的Graphics來動態(tài)的繪制溫度曲線;溫度設置模塊:通過上位機對單片機進行發(fā)送數(shù)據(jù)來實現(xiàn)對單片機的控制,程序定義的是發(fā)送01表示讓單片機錄音,還可以設置警戒溫度發(fā)送給單片機。串口通訊程序初始化選擇串口、波特率等W發(fā)送01一、二 打開串口——■■二置警戒溫度AJ錄音I 數(shù)據(jù)接收并處理匚發(fā)送到單片機繪制溫度曲線V是否關閉串口*NJY結(jié)束圖4-1-1串口通訊程序流程圖串口通訊界面串口通訊界面如圖4-1-2所示:
4.2串口通訊串口通訊的目的是實現(xiàn)上下位機通信,上位機控制單片機部分功能,單片機發(fā)送數(shù)據(jù)給上位機,用來實現(xiàn)要求功能。4.2.1發(fā)送功能單片機發(fā)送數(shù)據(jù)如圖4-2-1所示:圖4-2-1串口接收數(shù)據(jù)由上圖可知,實現(xiàn)了串口的接收功能4.2.2接收功能單片機接收數(shù)據(jù)如圖4-2-2所示:圖4-2-2串口發(fā)送數(shù)據(jù)由上圖可知,實現(xiàn)了串口的發(fā)送功能4.2.3繪制溫度曲線溫度變化曲線如圖4-2-3所示:圖4-2-3溫度變化曲線第五章課程設計總結(jié)5.1問題與解決溫度傳感器問題編程獲取溫度傳感器測得的溫度時,無法得到正確溫度值或者得不到溫度值,原因是溫度傳感器時序沒有編程正確,初始化時序,讀、寫時序必須嚴格按照要求編程,延時的長短直接影響到結(jié)果,延時過短無法完成數(shù)據(jù)的有效傳輸或者使得溫度傳感器無法正常工作;另外一個原因是TWR和TRD不是同時接地選通,而是TRD接地,TWR給一個上升沿溫度傳感器才選通。LED顯示問題溫度顯示在數(shù)碼管上,當進行語音報溫時,數(shù)碼管就不能正常工作,原因是語音報溫占用cpu,數(shù)碼管顯示程序不運行,出現(xiàn)錯誤。把數(shù)碼管顯示程序放在定時器0中斷中,兩者不出現(xiàn)沖突,問題解決。語音實現(xiàn)問題語音芯片編程時,錄音沒有問題,放音出錯。原來認為是放音標志PLAYE(下降沿放音)的問題,經(jīng)過對下降沿、延時、控制模式等的調(diào)整,放音還是一直順序放音。經(jīng)過老師的講解、討論,最終認為無法檢測到結(jié)束標志EOM,實驗出錯,使用低電平(PLAYL)放音,問題解決。串口通訊問題串口通訊過程中,剛開始無法實現(xiàn)串口的自動接收功能,經(jīng)過對程序的認真分析,以及對串口通訊原理的理解,實現(xiàn)了存儲在SBUF中的溫度在串口工具中的自動接收;5.2心得體會俗話說“好的開始是成功的一半”。說起課程設計,我認為最重要的就是做好設計的預習,認真的研究老師給的題目,選一個自己有興趣的題目。其次,老師對實驗的講解要一絲不茍的去聽去想,因為只有都明白了,做起設計就會事半功倍,如果沒弄明白,就迷迷糊糊的去選題目做設計,到頭來一點收獲也沒有。最后,要重視程序的模塊化,修改的方便,也要注重程序的調(diào)試,掌握其方法。本次課程設計從總體上來說是對芯片DS18B20、ISD1420,89C52,MAX232的應用。DS18B20是數(shù)字溫度傳感器,用來測得現(xiàn)場溫度;ISD1420是語音芯片,用來錄放音和語音報警;89C52是設計核心,用來協(xié)調(diào)各芯片之間的工作;MAX232是串口通訊接口,用來實現(xiàn)上下位機通訊。硬件的設計要我們自己動手去操作,軟件的編程也要我們不斷的調(diào)試,按著設計的思想與要求運動起來。當然,這其中也有很多問題,第一、不夠細心比如由于粗心大意接錯了線,由于對課本理論的不熟悉導致編程出現(xiàn)錯誤。第二,是在學習態(tài)度上,這次課設是對我的學習態(tài)度的一次檢驗。對于這次課程實習,我的第一大心得體會就是作為一名工程技術人員,要求具備的首要素質(zhì)絕對應該是嚴謹。。在這次難得的課程設計過程中我鍛煉了自己的思考能力和動手能力。通過題目選擇和設計電路的過程中,加強了我思考問題的完整性和實際生活聯(lián)系的可行性。在方案設計選擇和芯片的選擇上,培養(yǎng)了我們綜合應用的能力。還鍛煉我們個人的查閱技術資料的能力,動手能力,發(fā)現(xiàn)問題,解決問題的能力。并且我們熟練掌握了有關器件的性能及測試方法。再次感謝老師的輔導以及同學的幫助,是他們讓我有了一個更好的認識,無論是學習還是生活,生活是實在的,要踏實走路。課程設計時間是三周,我學習了很多的東西,使我眼界打開,感受頗深。參考文獻孫涵芳、徐愛卿.MCS-51/96系列單片機原理及應用(修訂版).北京航空航天大學出版社,1996:20-180秦志強.C51單片機應用與C語言程序設計(第2版).電子工業(yè)出版社,2005:103-148蘭吉昌.51單片機應用設計例.北京化學工業(yè)出版,2009:80-120程培青.數(shù)字信號處理教程.清華大學電子學出版社,1999:10-96周荷琴,吳秀清.微型計算機原理與接口技術(第四版).中國科學技術大學出版社,2008:178-220康華光.電子技術基礎(第五版).華中科技大學出版社,2005閻石.數(shù)字電子技術基礎(第五版).清華大學出版社,2005求是科技。單片機典型外圍器件及應用舉例。人民郵電出版社,2006:230-401附錄附錄單片機程序:#include"reg52.h"#include"intrins.h"#defineucharunsignedchar#defineuintunsignedintuchardelay;ucharflagbaoshi;ucharBUF;//uchardelay;ucharflagbaoshi;ucharBUF;//定時報時標志//存放串口通信數(shù)據(jù)sbitDQ二P2"2;//DS18B20輸入端sbitbeep二P2"3;//蜂鳴器sbitdula=P2飛;//數(shù)碼管段選sbitwela二P2“7;//數(shù)碼管位選sbitREC二P3"5;//錄音標志sbitPL二P3飛;//低電平放音標志sbitTWR=P3^7;//上升沿啟動語音芯片標志uchartime=0,time2=0;uinttemp; //溫度變量uinttemp2;ucharflag; //標志變量ucharcount=0; //計數(shù)標志codeuchartable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//段碼表codeuchartre[]={0,0x04,0x08,0x0c,0x10,0x14,0x18,0x1c,0x20,0x24,0x28,0x2c,0x30,0x34}; //錄音芯片地址表voidTXReset();voidack_18b20();bitread_bit();ucharread_byte();//DS18B20復位函數(shù)//讀取數(shù)據(jù)voiddel(uintz);//voiddel(uintz);//延時函數(shù)//寫數(shù)據(jù)//讀取溫度值//轉(zhuǎn)換溫度//顯示函數(shù)//初始化函數(shù)voidwrite_bit(uchardat);voidTem_Start();voidReadTem();uintCalTemp();voiddisplay();voidSerial_init();voidvoidvoidrecord(ucharaddress);play(ucharaddress);record_init();//錄音函數(shù)//放音函數(shù)//錄入語庫函數(shù)main()void{Serial_init();while(1){//初始化函數(shù)if(BUF==0x01){BUF=0;record_init();}if(flagbaoshi==1){play(0x34);play(tre[temp/100]);if((temp%100)/10==0)play(tre[10]);if((temp%100)/10){play(tre[10]);play(tre[(temp%100)/10]);}play(tre[11]);play(tre[temp%10]);play(0x3c);}//初始化語音庫//錄放音函數(shù)//當前溫度是//溫度值//點//度}Serial_init()}voidSerial_init(){EA=1;ES=1;REC=1;PL=1;TWR=1;TMOD=0x21;ET0=1;TH0=(655536-20000)/256;TL0=(65536-20000)%256;TH1=0xfd;TL1=0xfd;
TR0=1;TR1=1;SM0=0;SM1=1;REN=1;BUF=35;flagbaoshi=0;TWR=0;P1=0xc0;TWR=1;del(10);}voiddel(uintz){uintj;while(z--)for(j=0;j<125;j++);}voidTXReset(){uchari=120;DQ=0;while(i>0)i--;DQ=1;i=4;while(i>0)i--;}//單片機拉低總線//延時us//拉高總線//延時us//等待應答信號//等待應答信號//延時us//讀取數(shù)據(jù)voidack_18b20(){uchari=4;while(DQ);while(~DQ);while(i>0)i--;}bitread_bit(){bitb;uinti=0;////總線拉低//至少維持usDQ=0;i++;DQ=1;i++;i++;b=DQ;i=8;while(i>0)i--;returnb;}ucharread_byte(void){uinti;ucharj,dat;for(i=0;i<8;i++){j=read_bit(); //讀取一位dat=(j<<7)|(dat>>1);//得到溫度值(二進制)}returndat;}voidwrite_bit(uchardat){uchari;uintj;bitb;for(i=0;i<8;i++){b=dat&0x01;dat=dat>>1;if(b) //發(fā)送的是{DQ=0; //拉低總線j++; //至少維持usj++;DQ=1; //拉高總線j=8;while(j>0)j--;/
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 14《天文學上的曠世之爭》說課稿 2023-2024學年統(tǒng)編版高中語文選擇性必修下冊
- 2025年度智能云計算平臺運維服務合同2篇
- 2025年度新能源出租車司機勞動合同規(guī)范范本2篇
- 福建省南平市太平中學高一化學模擬試題含解析
- 福建省南平市松溪縣第二中學高一地理模擬試題含解析
- 2024年版:廣告發(fā)布合同廣告內(nèi)容審核與責任分配
- 2024版二手房租賃買賣合同范本
- 農(nóng)場年度榮耀
- 2025版智能家居配套大平方樓房買賣合同3篇
- 大V賬號推廣合同(2篇)
- 小學語文分層作業(yè)設計案例
- 四川旭虹光電科技有限公司曲面顯示用蓋板玻璃生產(chǎn)項目環(huán)評報告
- 傷口愈合的病理生理及濕性愈合理論-課件
- GB/T 24475-2023電梯遠程報警系統(tǒng)
- 科技計劃項目(課題)驗收(結(jié)題)經(jīng)費審計業(yè)務約定書
- SIS系統(tǒng)操作規(guī)程
- 教師書法培訓教案
- 2023年上海航天技術研究院下屬航天總廠校園招聘筆試參考題庫附帶答案詳解
- 華東師大版-七年級下冊數(shù)學-第6章-一元一次方程-教學課件
- 《貴州省市政工程計價定額》(2016版)
- 特種設備安全管理人員(A)考試題庫
評論
0/150
提交評論