版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于89C51單片機(jī)的溫度控制器的設(shè)計(jì)摘要溫度控制器是一種提供溫度顯示、語音報(bào)溫和報(bào)警的裝置?;?9C51單片機(jī)設(shè)計(jì),測(cè)溫探頭采用DS18B20數(shù)字溫度傳感器,測(cè)量現(xiàn)場(chǎng)溫度,語音播放裝置采用ISD1420語音芯片,實(shí)現(xiàn)語音定時(shí)報(bào)溫和報(bào)警功能,使用7段碼顯示器顯示當(dāng)前溫度,蜂鳴器提供報(bào)警功能。該裝置可以實(shí)現(xiàn)上下位機(jī)通信,上位機(jī)設(shè)置報(bào)警溫度,實(shí)現(xiàn)控溫目的,并且根據(jù)下位機(jī)測(cè)量的溫度繪出溫度變化曲線。關(guān)鍵字:?jiǎn)纹瑱C(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)設(shè)計(jì) 4\o"CurrentDocument"硬件系統(tǒng) 4\o"CurrentDocument"單片機(jī)模塊 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)設(shè)計(jì) 21\o"CurrentDocument"參數(shù)信息 21\o"CurrentDocument"程序設(shè)計(jì) 22\o"CurrentDocument"主程序設(shè)計(jì) 22溫度處理程序設(shè)計(jì) 23錄放音程序設(shè)計(jì) 24\o"CurrentDocument"中斷程序設(shè)計(jì) 26\o"CurrentDocument"第四章性能測(cè)試與結(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"第五章課程設(shè)計(jì)總結(jié) 32\o"CurrentDocument"5.1問題與解決 32\o"CurrentDocument"心得體會(huì) 32\o"CurrentDocument"參考文獻(xiàn) 34\o"CurrentDocument"附錄 35第一章引言溫度是許多領(lǐng)域控制中主要的被控參數(shù)之一,特別是在冶金、化工、建材、食品、機(jī)械、石油等工業(yè)中,具有舉足輕重的作用。隨著電子技術(shù)和微型計(jì)算機(jī)的迅速發(fā)展,微機(jī)測(cè)量和控制技術(shù)得到了迅速的發(fā)展和廣泛的應(yīng)用。單片機(jī)應(yīng)用在溫度測(cè)量與控制方面,控制簡(jiǎn)單方便,測(cè)量范圍廣,精確度較高。它具有處理能力強(qiáng),運(yùn)行速度快,功耗低等優(yōu)點(diǎn)。本課題是設(shè)計(jì)一個(gè)溫度控制系統(tǒng)。其原理是所測(cè)量的溫度信號(hào)直接通過數(shù)字溫度傳感器檢測(cè)到溫度后,送到單片機(jī)中,單片機(jī)把檢測(cè)的溫度同上位機(jī)設(shè)定的溫度進(jìn)行比較,并顯示在顯示器上(如果溫度高于設(shè)定值,語音提示且蜂鳴器報(bào)警),再由單片機(jī)將溫度發(fā)送到上位機(jī),繪制溫度變化曲線,觀察溫度變化,根據(jù)控制策略給出溫度設(shè)定值,從而構(gòu)成溫度控制系統(tǒng)。本設(shè)計(jì)的主要內(nèi)容分為兩部分:硬件部分和軟件部分。硬件部分內(nèi)容分為:電源電路的選擇、單片機(jī)的選擇用的是STC89C52RC單片機(jī)、數(shù)字溫度傳感器DS18B20、數(shù)碼管的顯示設(shè)計(jì)、報(bào)警電路的設(shè)計(jì)和語音芯片ISD1420等。軟件部分分為:基于keil編譯環(huán)境的單片機(jī)應(yīng)用軟件的編寫與調(diào)試、基于java編譯環(huán)境的上下位機(jī)的通信功能實(shí)現(xiàn)。第一章為引言,粗略地介紹此次課設(shè)的主要內(nèi)容。第二章為硬件系統(tǒng)設(shè)計(jì),主要介紹硬件構(gòu)成圖和各硬件部分的功能,以及DS18B20、ISD1420、STC89C52RC、RS232的內(nèi)部結(jié)構(gòu)功能、硬件系統(tǒng)中對(duì)應(yīng)芯片接線、工作方式以及初始化編程。另外,從LED顯示器的設(shè)定的原理、編程進(jìn)行詳細(xì)的描述。第三章為軟件系統(tǒng)設(shè)計(jì),主要介紹各種參數(shù)、流程圖以及代碼。第四章為課程設(shè)計(jì)總結(jié),主要包括心得體會(huì)、問題與解決和程序清單。
第二章硬件系統(tǒng)設(shè)計(jì)2.1硬件系統(tǒng)硬件系統(tǒng)原理圖如圖2-1-1所示:y..'nNT“ rrH「豐 一廠 1—■:-=-■■■■UI1||:y..'nNT“ rrH「豐 一廠 1—■:-=-■■■■UI1||:-|1!.3■■>■■:■2溫度控制器硬件系統(tǒng)由以下六個(gè)模塊組成:?jiǎn)纹瑱C(jī)模塊、溫度傳感器模塊、語音模塊、LED顯示模塊、RS232通訊模塊、蜂鳴器模塊。單片機(jī)模塊單片機(jī)采用宏晶科技生產(chǎn)的STC89C52RC單片機(jī)作為控制器。STC89C52RC是一個(gè)超強(qiáng)抗干擾,高速,低功耗的單片機(jī),指令代碼完全兼容傳統(tǒng)8051單片機(jī),12時(shí)鐘/機(jī)器周期和6時(shí)鐘/機(jī)器周期可任意選擇,工作頻率范圍:0-40MHz,相當(dāng)于普通8051的0?80MHz.實(shí)際工作頻率可達(dá)48MHz.,片上集成1280字節(jié)RAM,無需專用編程器。vctcP1AlA2U1單片機(jī)模塊電路原理圖如圖2-1-2所示:UHAS47lxTlTlTx11TlTx11ppppppppRED7T1P3J應(yīng)Tl)P王4的P3_5(Tl)EAT.WvctcP1AlA2U1單片機(jī)模塊電路原理圖如圖2-1-2所示:UHAS47lxTlTlTx11TlTx11ppppppppRED7T1P3J應(yīng)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單片機(jī)模塊電路圖由圖2-1-2所示的單片機(jī)模塊,主要實(shí)現(xiàn)硬件系統(tǒng)中各個(gè)模塊功能之間的相互協(xié)調(diào),數(shù)據(jù)的處理,輸出執(zhí)行,報(bào)警設(shè)置等功能。其中包括時(shí)鐘脈沖產(chǎn)生電路、單片機(jī)復(fù)位電路等。2.1.2溫度傳感器模塊溫度傳感器采用DS18B20數(shù)字溫度傳感器。DS18B20體積更小、適用電壓更寬、更經(jīng)濟(jì)。現(xiàn)場(chǎng)溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性,適合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量;不需要外部元件,直接輸出串行數(shù)據(jù);可不需要外部電源,直接通過信號(hào)線供電,電源電壓范圍為3.3V?5V;測(cè)溫精度高,測(cè)溫范圍為:一55°C?+125°C,在-10°C?+85°C范圍內(nèi),精度為土O.5°C;測(cè)溫分辨率高,當(dāng)選用12位轉(zhuǎn)換位數(shù)時(shí),溫度分辨率可達(dá)0.0625°C;
數(shù)字量的轉(zhuǎn)換精度及轉(zhuǎn)換時(shí)間可通過簡(jiǎn)單的編程來控制:9位精度的轉(zhuǎn)換時(shí)間為93.75ms:10位精度的轉(zhuǎn)換時(shí)間187.5ms:12位精度的轉(zhuǎn)換時(shí)間750ms;具有非易失性上、下限報(bào)警設(shè)定的功能,用戶可方便地通過編程修改上、下限的數(shù)值;可通過報(bào)警搜索命令識(shí)別哪片DS18B20采集的溫度超越上、下限。DS18B20電路原理圖如圖2-1-3所示:圖2-1-3DS18B20電路圖DS18B20測(cè)量的溫度傳送到單片機(jī)中,在數(shù)碼管上顯示,并與上位機(jī)進(jìn)行通信,繪制溫度變化曲線。2.1.3語音模塊語音部分采用ISD1420語音芯片。ISD1420芯片采用直接模擬存儲(chǔ)技術(shù),
且錄放音質(zhì)極好,并有一定的混響效果;它的外圍元件簡(jiǎn)單,僅需要簡(jiǎn)單的阻、
容元件即可組成簡(jiǎn)單的錄、放電路;單電源供電,典型電壓+5V;待機(jī)時(shí)低功耗(0.5uA),放音電流15mA;放音時(shí)間20s,可擴(kuò)充級(jí)聯(lián);可持續(xù)放音,也可分段錄放,最小分段:20s/160段=0.125s段,可分段160段;錄、放次數(shù)達(dá)10萬次;斷電信息存儲(chǔ),無需后備電池,信息可存儲(chǔ)100年;不需要專用的編程器及語音開發(fā)器;高優(yōu)先級(jí)錄音,低電平或下降沿放音。ISD1420電路原理圖如圖2-1-4所示:
圖2-1-4ISD1420電路圖語音接口作為輸出口時(shí),主要用于報(bào)告運(yùn)行狀態(tài)、運(yùn)行結(jié)果、提示系統(tǒng)操作過程及故障報(bào)答等;作為輸入時(shí)、則主要是語音的記錄、語音庫的建立和語音的識(shí)別。本設(shè)計(jì)中首先記錄關(guān)于溫度的一些語音,再根據(jù)測(cè)量溫度定時(shí)報(bào)溫。2.1.4LED顯示模塊LED顯示部分采用七段碼顯示器。DS18B20溫度傳感器測(cè)量現(xiàn)場(chǎng)溫度,傳送到單片機(jī)中,在數(shù)碼管上顯示。LED顯示塊是由發(fā)光二極管顯示字段的顯示器件。在單片機(jī)應(yīng)用系統(tǒng)中通常使用的是七段LED。這種顯示塊有共陰極與共陽極兩種。共陰極LED顯示塊的發(fā)光二極管陰極共地。當(dāng)某個(gè)發(fā)光二極管的陽極為高電平時(shí),發(fā)光二極管點(diǎn)亮;共陽極LED顯示塊的發(fā)光二極管陽極并接。LED電路原理圖如圖2-1-5所示:
圖2-1-5LED電路圖在單片機(jī)應(yīng)用系統(tǒng)中使用LED顯示塊構(gòu)成N位LED顯示器。N位LED顯示器有N根位選線和8*N根段選線。根據(jù)顯示方式不同,位選線與段選線的連接方法不同。段選線控制字符選擇,位選線控制顯示位的亮,暗。LED顯示器有靜態(tài)顯示與動(dòng)態(tài)顯示兩種方式。我們使用的為動(dòng)態(tài)顯示LED動(dòng)態(tài)顯示方式。在多位LED顯示時(shí),為了簡(jiǎn)化電路,降低成本,將所有位的段選線并聯(lián)在一起,由一個(gè)8位1/O口控制,而共陰極點(diǎn)或共陽極點(diǎn)分別由響應(yīng)的I/O口線控制。2.1.5RS232通訊模塊MAX232芯片具有功耗低、工作電源為單電源、外接電容僅為0.1uF或1uF、采用雙列直插封裝形式、接收器輸出為三態(tài)TTL/CMOS、兩路接收器和發(fā)送器等特點(diǎn)。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電路圖通過這個(gè)模塊,我們可以實(shí)現(xiàn)溫度控制器系統(tǒng)與計(jì)算機(jī)之間的串口通信,實(shí)現(xiàn)數(shù)據(jù)交換,設(shè)置溫度范圍,繪制溫度變化曲線。2.1.6蜂鳴器的正極性的一端聯(lián)接到5V電源上面,另一端聯(lián)接到三極管的集電極,三極管的基級(jí)由單片機(jī)的P2.3管腳來控制,當(dāng)P2.3管腳為低時(shí),三極管導(dǎo)通,這樣蜂鳴器的電流形成回路,發(fā)出聲音。當(dāng)P2.3管腳為高時(shí),三極管截止,蜂鳴器不發(fā)出聲音。用戶可以通過程序控制P2.3管腳的置低和置高來使蜂鳴器發(fā)出聲音和關(guān)閉。蜂鳴器電路原理圖如圖2-1-7所示:
通過這個(gè)模塊,可以實(shí)現(xiàn)溫度控制系統(tǒng)報(bào)警功能,通過上位機(jī)設(shè)置溫度有效范圍,溫度過高或過低,蜂鳴器報(bào)警。2.2芯片介紹此部分從芯片的系統(tǒng)接線、工作方式以及初始化編程方面分別介紹DS18B20、ISD1420、STC89C52RC、MAX232芯片,以及LED顯示器。本次課程設(shè)計(jì)以STC89C52系統(tǒng)為核心,它主要負(fù)責(zé)控制各個(gè)部分的協(xié)調(diào)工作,在其外圍接上復(fù)位電路,顯示器,語音電路和溫度傳感器電路等。STC89C52RC芯片1.STC89C52RC芯片的封裝STC89C52RC芯片是標(biāo)準(zhǔn)的40引腳雙列直插式集成電路芯片,其引腳排列如圖2-2-1所示。其中有4個(gè)8位I/O并行口共32個(gè)引腳、4個(gè)控制引腳、兩個(gè)時(shí)鐘輸入/輸出引腳及兩個(gè)電源引腳。
2.電源引腳Vcc:電源正端,接+5V電源。Vss:接地端。3.1/0口引線51系列單片機(jī)有4個(gè)I/O端口,每個(gè)端口都是8位準(zhǔn)雙向口,共占32根引腳。每個(gè)端口都包括一個(gè)鎖存器(即專用寄存器P0?P3)、一個(gè)輸出驅(qū)動(dòng)器和輸入緩沖器。通常把4個(gè)端口籠統(tǒng)地表示為P0?P3。P0口由一個(gè)輸出鎖存器、兩個(gè)三態(tài)輸入緩沖器和輸出驅(qū)動(dòng)電路及控制電路組成,P0口必須接上拉電阻。P0口既可以作為I/O用,也可以作為地址/數(shù)據(jù)線用。P1口是一個(gè)標(biāo)準(zhǔn)的準(zhǔn)雙向口,只能作為通用I/O口使用。P1.0和P1.1是多功能的,P1.0作為定時(shí)器/計(jì)數(shù)器2的外部輸入端,P1.1作為定時(shí)器/計(jì)數(shù)器2的外部控制輸入。P2口可作為I/0口和高8位地址線A8-A15輸出口。P3口是一個(gè)雙功能口,第一功能是通用I/0口,第二功能各位定義見表1:
表1P3口的第二功能引腳第二功能P3.0RXD(串行輸入通道)P3.1TXD(串行輸出通道)P3.2INTO(外中斷0)P3.3INT1(外中斷1)P3.4T0(定時(shí)器0外部輸入)P3.5T1(定時(shí)器1外部輸入)P3.6WR(外數(shù)據(jù)存儲(chǔ)器寫選通)P3.7RD(外數(shù)據(jù)存儲(chǔ)器讀選通)4.控制線PSEN:片外取指信號(hào)(片外程序存儲(chǔ)器讀)輸出端低電平有效,通過P0口讀回指令或常數(shù),控制的是片外程序存儲(chǔ)器。ALE:地址鎖存信號(hào),ALE低電平時(shí),P0口出現(xiàn)數(shù)據(jù)信息;ALE高電平時(shí),P0口出現(xiàn)地址信息,用下降沿 鎖存P0口的低8位地址到外部鎖存器。EA:程序存儲(chǔ)器選擇信號(hào),EA=0時(shí),選外部ROM;EA=1,地址小于4k時(shí),選內(nèi)部ROM,地址大于4k時(shí),選外部ROM。RESET:復(fù)位信號(hào):高電平復(fù)位CPU,低電平CPU工作5.時(shí)鐘引腳XTAL1:片內(nèi)振蕩電路輸入端。XTAL2:片內(nèi)振蕩電路輸出端。當(dāng)使用芯片內(nèi)部的時(shí)鐘電路時(shí),用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時(shí)鐘時(shí),用于外接時(shí)鐘信號(hào)。DS18B20芯片圖2-2-2DS18B20引腳圖I/O:數(shù)字信號(hào)輸入/輸出端。GND:電源地端。VCC:外接供電電源輸入端(在寄生電源接線時(shí)此腳應(yīng)接地)。2.DS18B20內(nèi)部結(jié)構(gòu)簡(jiǎn)要介紹:DS18B20的內(nèi)部有64位的ROM單元、溫度傳感器、非易失性溫度報(bào)警觸發(fā)器TH和TL和9字節(jié)的暫存器單元。64為ROM包含了DS18B20唯一的序列號(hào)。內(nèi)部結(jié)構(gòu)圖如圖2-2-3所示:圖2-2-3DS18B20內(nèi)部結(jié)構(gòu)圖3.DS18B20的溫度計(jì)算DS18820中的溫度傳感器完成對(duì)溫度的測(cè)量,輸出格式為:16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼。當(dāng)測(cè)溫精度設(shè)置為12位時(shí),分辨率為0.0625^,即O.0625°C/LSB。其二進(jìn)制補(bǔ)碼格式見表2:表2DS18B20的數(shù)據(jù)格式Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0LSB2八32^22^12^02^12^-22=32^-4Bit15Bit14Bit13Bit12Bit11Bit10Bit9Bit8MSBSSSSS2飛2^52^4其中,S為符號(hào)位,S=1,表示溫度為負(fù)值;S=0,表示溫度為正值。例如+125C的數(shù)字輸出為07D0H,-55C的數(shù)字輸出為FC90H。上表是轉(zhuǎn)化后得到的12位數(shù)據(jù),如果溫度大于0,只要將測(cè)到的數(shù)值乘以0.0625即可得到實(shí)際溫度;如果溫度小于0,測(cè)到的數(shù)值取反加1再乘以0.0625,即可得到實(shí)際溫度。一些溫度值對(duì)應(yīng)的數(shù)字輸出如表3所示:表3溫度值與十六進(jìn)制輸出對(duì)照表
溫度十六進(jìn)制輸出+12507D0H+850550H+25.0650191H+10.12500A2H+0.50008H00000H-0.5FFF8H-10.125FF5EH-25.065FE6FH-55FC90H3.DS18B20的寄存器分布DS18820中的高速暫存器是一個(gè)9字節(jié)的存儲(chǔ)器,其含意如表4所示表4暫存器分布寄存器內(nèi)存字節(jié)地址溫度最低為LSB0溫度最高位MSB1高溫限值TH2低溫限值TL3配置寄存器4保留5保留6保留7CRC校驗(yàn)8開始兩個(gè)字節(jié)為被測(cè)溫度的數(shù)字量;第3、4、5字節(jié)分別為TH、TL、配置寄存器的復(fù)制,每一次上電復(fù)位時(shí)被重寫;第7字節(jié)為測(cè)溫計(jì)數(shù)的剩余值;第8字節(jié)為測(cè)溫時(shí)每度的計(jì)數(shù)值;第9字節(jié)讀出的是前8個(gè)字節(jié)的CRC校驗(yàn)碼,通過此碼,可判斷通訊是否正確。4.DS18B20的操作指令ROM操作指令讀命令(33H):通過該命令主機(jī)可以讀出DS18820的ROM中的8位系列產(chǎn)品代碼、48位產(chǎn)品序列號(hào)和8位CRC校驗(yàn)碼,該命令僅限于單個(gè)DS18B20在線的情況。選擇定位命令(55H):當(dāng)多片DS18820在線時(shí),主機(jī)發(fā)出該命令和一個(gè)64位數(shù),DS18820內(nèi)部ROM與主機(jī)一致者,才響應(yīng)命令,該命令也可用于單個(gè)DS18820的情況。查詢命令(0F0H):該命令可查詢總線上DS18B20的數(shù)目及其64位序列號(hào)。跳過ROM序列號(hào)檢測(cè)命令(OCCH):該命令允許主機(jī)跳過ROM序列號(hào)檢測(cè)而直接對(duì)寄存器操作,該命令僅限于單個(gè)DS18820在線的情況。報(bào)警查詢命令(OECH):只有報(bào)警標(biāo)志置位后,DS18B20才相應(yīng)該命令。存儲(chǔ)器操作指令寫暫存器(4EH):該命令可寫入寄存器的第2、3、4字節(jié),即高低溫寄存器和配置寄存器,復(fù)位信號(hào)發(fā)出之前,三個(gè)字節(jié)必須寫完。讀暫存器(OBEH):該命令可讀出寄存器中的內(nèi)容,復(fù)位命令可終止讀出。溫度變換(44H):該命令使DS18B20立即開始溫度轉(zhuǎn)換,當(dāng)溫度轉(zhuǎn)換正在進(jìn)行時(shí),主機(jī)這時(shí)讀總線將收到0;當(dāng)溫度轉(zhuǎn)換結(jié)束時(shí),主機(jī)這時(shí)讀總線將收到1。若用信號(hào)線給DS18820供電,則主機(jī)發(fā)出轉(zhuǎn)換命令后,必須提供至少相應(yīng)于分辨率的溫度轉(zhuǎn)換時(shí)間的上拉電平。重調(diào)(088H):該命令把EEROM中的內(nèi)容寫到寄存器TH、TL及配置寄存器中。DS18820上電時(shí)能自動(dòng)寫入。復(fù)制暫存器(48H):該命令把寄存器TH、TL及配置寄存器中內(nèi)容寫到EEROM。讀供電方式(084H):主機(jī)發(fā)出該命令后,DS18B20將進(jìn)行響應(yīng),發(fā)送電源標(biāo)志,信號(hào)線供電發(fā)0,外接電源發(fā)1。5.DS18B20時(shí)序(1)初始化時(shí)序(2)寫時(shí)序[usvTrec Masterwrite1slotMasterwrite0slot . 點(diǎn)—60usvTx0vl20us讀時(shí)序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-為音頻信號(hào)輸出端,可以驅(qū)動(dòng)8—16揚(yáng)聲器;VCCA為模擬電源;VCCD為數(shù)字電源;MIC為話筒輸入端,若不用應(yīng)懸空;AGC為自動(dòng)增益控制端,調(diào)整芯片內(nèi)部前置放大器增益,使錄入信號(hào)不失真;ANAIN、ANAOUT為兩端間接電容,該該端用于模擬信號(hào)的直接輸入、輸出;XCLK為外部時(shí)鐘或接地(一般用戶接地即可);REC為錄、放音控制,低電平為錄音(此時(shí)PLAYE或PLAYL=0);PLAYL為電平放音控制(低電平有效),放音時(shí)應(yīng)保持低電平;PLAYE為邊沿放音控制,下降沿開始放音;RECLED為錄音指示,接發(fā)光二極管,錄音時(shí)亮,放音結(jié)束閃爍一下。2.ISD1420的地址模式和操作模式ISD1420地址輸入端具有雙重功能,根據(jù)地址中的A6、A7的電平狀態(tài)決定AO?A7的功能。如果A6、A7有一個(gè)低電平,A0?A7輸入為地址位,作為起始地址用,此時(shí)地址線僅作為輸入端,在操作過程中不能輸出內(nèi)部地址信息。根據(jù)PLAYE、PLAYL或REC的下降沿信號(hào),地址輸入被鎖定。如果A6、A7同為高電平時(shí),它們即為操作模式位。ISD1420地址功能表如表5所示:表5ISD1420地址功能表地址狀態(tài)功能說明DIP開關(guān)1 2 3 45 6 7 80N=0,OFF=1地址位AOA1A2A3A4A5A6A71:高電平,0:低電平00000000最長20秒錄放音,首地址開始100000008位二進(jìn)制表示地址,每地址125ms地址模式00000010一段A6地址開始的12s錄放音*******0A6,A7有一位=0,處于地址模式******0*00010011循環(huán)放音操作操作模式00001011順序連續(xù)分段放音00000011地址指針復(fù)位,開始錄放第一段10001011按PE鍵快速選段放音使用操作模式有兩點(diǎn)要注意:(1)所有初始操作都是從0地址開始。0地址是ISD1420存儲(chǔ)空間的起始端,后面的操作可模擬模式的不同,而從不同的地址開始工作。當(dāng)電路中錄放音轉(zhuǎn)換將進(jìn)入省電狀態(tài)時(shí),地址計(jì)數(shù)器復(fù)位為0。(2)當(dāng)PLAYE、PLAYL或REC變?yōu)榈碗娖?,同時(shí)A6、A7為高電平時(shí),執(zhí)行地址線所對(duì)應(yīng)的操作模式。這種操作模式一直執(zhí)行到下一個(gè)低電平控制輸入信號(hào)出現(xiàn)為止。
ISD1420操作模式如表6所示表6ISD1420操作模式模式功能典型應(yīng)用可組合使用|A0信息檢索快進(jìn)信息A4A1刪除EOM信息結(jié)束處放置EOMA3A4A3循環(huán)從0地址循環(huán)放音A1A4連續(xù)尋址錄放連續(xù)多段信息A0A13.錄放音時(shí)序(1)錄音時(shí)序(2)放音時(shí)序
MAX232芯片1.MAX232芯片的封裝MAX232芯片采用DIP封裝,雙列直插形式,引腳圖如圖2-2-5所示:W11111116+ vccVf GNDCl\ T1OUTC2+\ R1INC2- )R1OUTV-/ TIINT2QUTT2INR2INR2OUT16215131414IB51216111710891MAX232圖2-2-5MAX2332封裝C1+:電容倍增充電泵電容正端;C1-:電容倍增充電泵電容正端;C2+:反向充電泵電容正端;C2-:反向充電泵電容負(fù)端;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)基本可分三個(gè)部分:第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-12v兩個(gè)電源,提供給RS-232串口電平的需要。第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個(gè)數(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)設(shè)計(jì)3.1參數(shù)信息//DS18B20//DS18B20輸入端//蜂鳴器//數(shù)碼管段選//數(shù)碼管位選//錄音標(biāo)志//低電平放音標(biāo)志//上升沿啟動(dòng)語音芯片標(biāo)志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í)報(bào)時(shí)標(biāo)志//存放串口通信數(shù)據(jù)//溫度變量uinttemp2;ucharflag;ucharcount=0;voidTXReset();voidack_18b20();bitread_bit();ucharread_byte();//標(biāo)志變量//計(jì)數(shù)標(biāo)志//DS18B20復(fù)位函數(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ù)//寫數(shù)據(jù)//讀取溫度值//轉(zhuǎn)換溫度//顯示函數(shù)//初始化函數(shù);//錄音函數(shù)//放音函數(shù)//錄入語庫函數(shù)3.2程序設(shè)計(jì)此部分包括主程序流程圖,溫度處理流程圖,語音錄放處理流程圖,處理流程圖,3處理流程圖,4處理流程圖,中斷處理流程圖以及軟件設(shè)置各模塊能實(shí)現(xiàn)的功能。主程序設(shè)計(jì)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); //當(dāng)前溫度是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]); //點(diǎn)play(tre[temp%10]);play(0x3c); //度}}}3.2.2溫度處理程序設(shè)計(jì)1.溫度處理程序流程圖如圖3-3-2所示:圖3-2-2溫度處理程序流程圖2.溫度處理程序如下:uintCalTemp() //獲取十進(jìn)制溫度{uinttempval,value;uinttpl,tph;floatt;ReadTem(); //讀取溫度值tpl=read_byte();//獲得低八位tph=read_byte();//獲得高八位tempval=tph;tempval=tempval<<8;//把以上八位數(shù)據(jù)從低八位移到高八位tempval二tempval|tpl;//兩字節(jié)合成一個(gè)整型變量value=tempval;t=value*0.0625; //得到真實(shí)十進(jìn)制溫度值value=t*10+0.5;returnvalue; //變成位數(shù)好顯示}3.2.3錄放音程序設(shè)計(jì)1.錄音程序設(shè)計(jì)錄音程序流程圖如圖3-2-3所示圖3-2-3錄音程序流程圖錄音程序如下:voidrecord(ucharaddress) //錄制對(duì)應(yīng)地址語音信息{Pl=OxcO; //Oxff也行,只要保證前兩位是TWR=0;del(10);TWR=1;
//用上升沿將//用上升沿將P1數(shù)據(jù)打進(jìn)去,地址復(fù)位//在//在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.放音程序設(shè)計(jì)放音程序流程圖如圖3-2-4所示:圖3-2-4放音程序流程圖放音程序如下:voidplay(ucharaddress) //播放對(duì)應(yīng)地址的語音信息{TWR=O; //用上升沿將Pl數(shù)據(jù)打進(jìn)去P1=address;TWR=l;del(l0);TWR=0;PL=0; //PL為低電平,開始放音if(address==0x34)//播放最后一段del(400);elsedel(l00);PL=1; //PL置高電平,停止放音}中斷程序設(shè)計(jì)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);//定時(shí)器中斷//定時(shí)器賦初值//開始測(cè)溫//獲得十進(jìn)制溫度值//溫度超過范圍報(bào)警//溫度顯示//每隔秒掃描一次溫度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秒定時(shí)報(bào)溫第四章性能測(cè)試與結(jié)果分析4.1串口通訊工具串口通訊工具的設(shè)計(jì)采用的是java編程,主要通過使用java自帶的串口API實(shí)現(xiàn)上位機(jī)與單片機(jī)之間的通信;java采用的是線程操作,實(shí)現(xiàn)了溫度監(jiān)聽的實(shí)時(shí)性;同時(shí)用到了java繪圖技術(shù),能夠?qū)⒉杉降臄?shù)據(jù)通過坐標(biāo)圖型的方式顯示在上位機(jī)上。串口通訊工具主要包含溫度采集模塊,數(shù)據(jù)處理模塊,圖像繪制模塊和溫度設(shè)置模塊。溫度采集模塊:采用java自帶串口APIcomm?實(shí)現(xiàn)接收從單片機(jī)發(fā)送過來的數(shù)據(jù);數(shù)據(jù)處理模塊:由于單片機(jī)的sbuf只有8位,范圍為:0?255,而采集的溫度可能大于33.3度,這樣就超過了sbuf的范圍,我們采用的是單片機(jī)分3次發(fā)送到方式解決此問題,收到的數(shù)據(jù)要想坐標(biāo)顯示,這樣就需要對(duì)數(shù)據(jù)進(jìn)行處理;圖像繪制模塊:經(jīng)過了數(shù)據(jù)處理模塊的數(shù)據(jù),就可以直接用來作為上位機(jī)繪制坐標(biāo)圖型的數(shù)據(jù)參數(shù),然后通過java自帶的Graphics來動(dòng)態(tài)的繪制溫度曲線;溫度設(shè)置模塊:通過上位機(jī)對(duì)單片機(jī)進(jìn)行發(fā)送數(shù)據(jù)來實(shí)現(xiàn)對(duì)單片機(jī)的控制,程序定義的是發(fā)送01表示讓單片機(jī)錄音,還可以設(shè)置警戒溫度發(fā)送給單片機(jī)。串口通訊程序初始化選擇串口、波特率等W發(fā)送01一、二 打開串口——■■二置警戒溫度AJ錄音I 數(shù)據(jù)接收并處理匚發(fā)送到單片機(jī)繪制溫度曲線V是否關(guān)閉串口*NJY結(jié)束圖4-1-1串口通訊程序流程圖串口通訊界面串口通訊界面如圖4-1-2所示:
4.2串口通訊串口通訊的目的是實(shí)現(xiàn)上下位機(jī)通信,上位機(jī)控制單片機(jī)部分功能,單片機(jī)發(fā)送數(shù)據(jù)給上位機(jī),用來實(shí)現(xiàn)要求功能。4.2.1發(fā)送功能單片機(jī)發(fā)送數(shù)據(jù)如圖4-2-1所示:圖4-2-1串口接收數(shù)據(jù)由上圖可知,實(shí)現(xiàn)了串口的接收功能4.2.2接收功能單片機(jī)接收數(shù)據(jù)如圖4-2-2所示:圖4-2-2串口發(fā)送數(shù)據(jù)由上圖可知,實(shí)現(xiàn)了串口的發(fā)送功能4.2.3繪制溫度曲線溫度變化曲線如圖4-2-3所示:圖4-2-3溫度變化曲線第五章課程設(shè)計(jì)總結(jié)5.1問題與解決溫度傳感器問題編程獲取溫度傳感器測(cè)得的溫度時(shí),無法得到正確溫度值或者得不到溫度值,原因是溫度傳感器時(shí)序沒有編程正確,初始化時(shí)序,讀、寫時(shí)序必須嚴(yán)格按照要求編程,延時(shí)的長短直接影響到結(jié)果,延時(shí)過短無法完成數(shù)據(jù)的有效傳輸或者使得溫度傳感器無法正常工作;另外一個(gè)原因是TWR和TRD不是同時(shí)接地選通,而是TRD接地,TWR給一個(gè)上升沿溫度傳感器才選通。LED顯示問題溫度顯示在數(shù)碼管上,當(dāng)進(jìn)行語音報(bào)溫時(shí),數(shù)碼管就不能正常工作,原因是語音報(bào)溫占用cpu,數(shù)碼管顯示程序不運(yùn)行,出現(xiàn)錯(cuò)誤。把數(shù)碼管顯示程序放在定時(shí)器0中斷中,兩者不出現(xiàn)沖突,問題解決。語音實(shí)現(xiàn)問題語音芯片編程時(shí),錄音沒有問題,放音出錯(cuò)。原來認(rèn)為是放音標(biāo)志PLAYE(下降沿放音)的問題,經(jīng)過對(duì)下降沿、延時(shí)、控制模式等的調(diào)整,放音還是一直順序放音。經(jīng)過老師的講解、討論,最終認(rèn)為無法檢測(cè)到結(jié)束標(biāo)志EOM,實(shí)驗(yàn)出錯(cuò),使用低電平(PLAYL)放音,問題解決。串口通訊問題串口通訊過程中,剛開始無法實(shí)現(xiàn)串口的自動(dòng)接收功能,經(jīng)過對(duì)程序的認(rèn)真分析,以及對(duì)串口通訊原理的理解,實(shí)現(xiàn)了存儲(chǔ)在SBUF中的溫度在串口工具中的自動(dòng)接收;5.2心得體會(huì)俗話說“好的開始是成功的一半”。說起課程設(shè)計(jì),我認(rèn)為最重要的就是做好設(shè)計(jì)的預(yù)習(xí),認(rèn)真的研究老師給的題目,選一個(gè)自己有興趣的題目。其次,老師對(duì)實(shí)驗(yàn)的講解要一絲不茍的去聽去想,因?yàn)橹挥卸济靼琢?,做起設(shè)計(jì)就會(huì)事半功倍,如果沒弄明白,就迷迷糊糊的去選題目做設(shè)計(jì),到頭來一點(diǎn)收獲也沒有。最后,要重視程序的模塊化,修改的方便,也要注重程序的調(diào)試,掌握其方法。本次課程設(shè)計(jì)從總體上來說是對(duì)芯片DS18B20、ISD1420,89C52,MAX232的應(yīng)用。DS18B20是數(shù)字溫度傳感器,用來測(cè)得現(xiàn)場(chǎng)溫度;ISD1420是語音芯片,用來錄放音和語音報(bào)警;89C52是設(shè)計(jì)核心,用來協(xié)調(diào)各芯片之間的工作;MAX232是串口通訊接口,用來實(shí)現(xiàn)上下位機(jī)通訊。硬件的設(shè)計(jì)要我們自己動(dòng)手去操作,軟件的編程也要我們不斷的調(diào)試,按著設(shè)計(jì)的思想與要求運(yùn)動(dòng)起來。當(dāng)然,這其中也有很多問題,第一、不夠細(xì)心比如由于粗心大意接錯(cuò)了線,由于對(duì)課本理論的不熟悉導(dǎo)致編程出現(xiàn)錯(cuò)誤。第二,是在學(xué)習(xí)態(tài)度上,這次課設(shè)是對(duì)我的學(xué)習(xí)態(tài)度的一次檢驗(yàn)。對(duì)于這次課程實(shí)習(xí),我的第一大心得體會(huì)就是作為一名工程技術(shù)人員,要求具備的首要素質(zhì)絕對(duì)應(yīng)該是嚴(yán)謹(jǐn)。。在這次難得的課程設(shè)計(jì)過程中我鍛煉了自己的思考能力和動(dòng)手能力。通過題目選擇和設(shè)計(jì)電路的過程中,加強(qiáng)了我思考問題的完整性和實(shí)際生活聯(lián)系的可行性。在方案設(shè)計(jì)選擇和芯片的選擇上,培養(yǎng)了我們綜合應(yīng)用的能力。還鍛煉我們個(gè)人的查閱技術(shù)資料的能力,動(dòng)手能力,發(fā)現(xiàn)問題,解決問題的能力。并且我們熟練掌握了有關(guān)器件的性能及測(cè)試方法。再次感謝老師的輔導(dǎo)以及同學(xué)的幫助,是他們讓我有了一個(gè)更好的認(rèn)識(shí),無論是學(xué)習(xí)還是生活,生活是實(shí)在的,要踏實(shí)走路。課程設(shè)計(jì)時(shí)間是三周,我學(xué)習(xí)了很多的東西,使我眼界打開,感受頗深。參考文獻(xiàn)孫涵芳、徐愛卿.MCS-51/96系列單片機(jī)原理及應(yīng)用(修訂版).北京航空航天大學(xué)出版社,1996:20-180秦志強(qiáng).C51單片機(jī)應(yīng)用與C語言程序設(shè)計(jì)(第2版).電子工業(yè)出版社,2005:103-148蘭吉昌.51單片機(jī)應(yīng)用設(shè)計(jì)例.北京化學(xué)工業(yè)出版,2009:80-120程培青.數(shù)字信號(hào)處理教程.清華大學(xué)電子學(xué)出版社,1999:10-96周荷琴,吳秀清.微型計(jì)算機(jī)原理與接口技術(shù)(第四版).中國科學(xué)技術(shù)大學(xué)出版社,2008:178-220康華光.電子技術(shù)基礎(chǔ)(第五版).華中科技大學(xué)出版社,2005閻石.數(shù)字電子技術(shù)基礎(chǔ)(第五版).清華大學(xué)出版社,2005求是科技。單片機(jī)典型外圍器件及應(yīng)用舉例。人民郵電出版社,2006:230-401附錄附錄單片機(jī)程序:#include"reg52.h"#include"intrins.h"#defineucharunsignedchar#defineuintunsignedintuchardelay;ucharflagbaoshi;ucharBUF;//uchardelay;ucharflagbaoshi;ucharBUF;//定時(shí)報(bào)時(shí)標(biāo)志//存放串口通信數(shù)據(jù)sbitDQ二P2"2;//DS18B20輸入端sbitbeep二P2"3;//蜂鳴器sbitdula=P2飛;//數(shù)碼管段選sbitwela二P2“7;//數(shù)碼管位選sbitREC二P3"5;//錄音標(biāo)志sbitPL二P3飛;//低電平放音標(biāo)志sbitTWR=P3^7;//上升沿啟動(dòng)語音芯片標(biāo)志uchartime=0,time2=0;uinttemp; //溫度變量uinttemp2;ucharflag; //標(biāo)志變量ucharcount=0; //計(jì)數(shù)標(biāo)志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復(fù)位函數(shù)//讀取數(shù)據(jù)voiddel(uintz);//voiddel(uintz);//延時(shí)函數(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ù)//當(dāng)前溫度是//溫度值//點(diǎn)//度}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--;}//單片機(jī)拉低總線//延時(shí)us//拉高總線//延時(shí)us//等待應(yīng)答信號(hào)//等待應(yīng)答信號(hào)//延時(shí)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);//得到溫度值(二進(jìn)制)}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等.壓縮文件請(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)計(jì)方案范文錦集7篇
- 大學(xué)教育實(shí)習(xí)報(bào)告范文合集七篇
- 個(gè)人工作總結(jié)及參考計(jì)劃模板范文【5篇】
- 陜西固體廢棄物綜合利用項(xiàng)目可行性研究報(bào)告
- 上半年藝術(shù)專業(yè)實(shí)習(xí)報(bào)告模板
- 個(gè)人簡(jiǎn)歷自我介紹14篇
- 城鄉(xiāng)電網(wǎng)項(xiàng)目實(shí)施方案
- 幼兒教師演講稿模板九篇
- 七夕節(jié)策劃的活動(dòng)方案
- 學(xué)前教育專業(yè)課程體系改革的策略與執(zhí)行路徑
- 何家弘法律英語第四版翻譯完整版
- 第18課 多彩的文明-亞非拉美術(shù) 課件-2023-2024學(xué)年高中美術(shù)人教版(2019)必修美術(shù)鑒賞
- 【求陰影部分面積】五年級(jí)上冊(cè)數(shù)學(xué)必考求陰影部分面積35題2023.9.27
- 基于二十四節(jié)氣開展幼兒園美育活動(dòng)的實(shí)踐策略 論文
- 設(shè)備安裝調(diào)試記錄表
- 拼多多工作臺(tái)操作流程
- 冰淇淋店計(jì)劃書
- 公債學(xué)學(xué)習(xí)通課后章節(jié)答案期末考試題庫2023年
- 2024屆平煤高級(jí)中學(xué)物理高二第一學(xué)期期末檢測(cè)試題含解析
- 足球小裁判培訓(xùn)方案
- 工廠車間環(huán)境監(jiān)測(cè)控制系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)
評(píng)論
0/150
提交評(píng)論