




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
GSM家電控制系統的設計GSM家電控制系統的設計GSM家電控制系統的設計GSM家電掌握系統的設計(梁偉源)摘要GSM網絡技術的遠程設備監控系統中,數據的牢靠傳輸是一個關鍵問題.設計了利用GSM網絡進行遠程數據傳輸的技術方案,給出了硬件結構和軟件組成。數據由以AT89S52單片機為核心的數據采集終端采集,通過向GSM模塊發送AT指令完成數據信息的傳輸.通過軟硬件設計和調試實驗,數據傳輸牢靠,運行狀態穩定,可應用于數量多、掩蓋面廣的設備遠程實時監控系統中,具有寬闊的應用前景。GSM模塊,協作AT89S52單片機,還有繼電器,那么就可以用手機法短信來掌握家用電器,比如,日光燈,電視,空調等。熱釋電人體紅外感應器,GSM模塊,以及AT89S52單片機,可以實現,當有小偷闖入家里,可以通過GSM模塊發短信或打電話通知我們.關鍵詞:GSM模塊;AT89S52;單片機;人體紅外感應器;DS18B20;字符液晶1602;紅外接收頭1838?TheDesignofGSMApplianceControlSystemAbstractRemotedevicemonitoringsystemoftheGSMnetworktechnology,thereliabletransmissionofdataisakeyissue.UsetheGSMnetworkforremotedatatransmission,giventhehardwareand
softwarecomponents.ThedatacollectedbythemicrocontrollerAT89S52asthecoredatacollectionterminals,tocompletethetransmissionofdatatosendATcommandstotheGSMmodule。Hardwareandsoftwaredesignanddebuggingexperiments,thedatatransmissionisreliable,stablerunningstate,canbeappliedtoanumber,coverawiderangeofequipment,remotereal-timemonitoringsystemhasbroadapplicatispects。GSMmodulewithAT89S52microcontroller,aswellasrelay,thenyoucanusethephonemethodSMStocontrolhouseholdappliancessuchasfluorescentlights,TV,air-conditioning.Infraredsensor,GSMmodule,andthemicrocontrollerAT89S52canbeachieved,whenthievesbrokeintothehome,youcansendtextmessagesthroughGSMmoduleorbytelephonetoinformus。Keywords:GSMmodule;AT89S52is;microcontroller;Infrared
sensor;DS18B20;LCD1602;infraredreceiver1838?目錄TOC\o"1-3"\h\z\uHYPERLINK1?緒論?PAGEREF_Toc323895835\h1HYPERLINK\l"_Toc323895836"1.1?項目背景 PAGEREF_Toc323895836\h1HYPERLINK1.2?項目的主要任務?PAGEREF_Toc323895837\h1HYPERLINK\l"_Toc323895838"2 簡介?PAGEREF_Toc323895838\h2HYPERLINK\l”_Toc323895839"2.1 硬件的總體方案 PAGEREF_Toc323895839\h2HYPERLINK\l”_Toc323895840"2.2 軟件的總體的設計方案?PAGEREF_Toc323895840\h2HYPERLINK\l"_Toc323895841"3 硬件設計 PAGEREF_Toc323895841\h5HYPERLINK\l”_Toc323895842"3。1 AT89S52的功能特性描述 95842\h5HYPERLINK\l”_Toc323895843"3.2 GSM模塊 PAGEREF_Toc323895843\h8HYPERLINK\l"_Toc323895844”3.3?18B20溫度傳感器?PAGEREF_Toc323895844\h9HYPERLINK\l"_Toc323895845"3.4?1838紅外接收頭 PAGEREF_Toc323895845\h11HYPERLINK\l"_Toc323895846"3。5 1602字符液晶顯示器?PAGEREF_Toc323895846\h12HYPERLINK3。6?熱釋電人體紅外感應模塊?PAGEREF_Toc323895847\h14HYPERLINK\l"_Toc323895848”4?軟件設計 PAGEREF_Toc323895848\h16HYPERLINK\l"_Toc323895849”4.1 GSM的核心程序 PAGEREF_Toc323895849\h16HYPERLINK\l"_Toc323895850”4。2?字符液晶1602讀寫核心程序 PAGEREF_Toc323895850\h19HYPERLINK\l”_Toc323895851"4。3?溫度傳感器18b20函數 PAGEREF_Toc323895851\h22
HYPERLINK\l”_Toc323895852"5 總結 PAGEREF_Toc323895852\h25HYPERLINK\l”_Toc323895853”致謝 PAGEREF_Toc323895853\h26HYPERLINK二極管,HYPERLINK"http://baike。baidu。com/view/907765.htm"\t”_blank"放大器,限副器,帶通濾波器,HYPERLINK"http://baike。ba/view/618186.htm”\t”_blank”積分電路,比較器等。紅外監測二極管監測到紅外信號。3然后把信號送到放大器和限幅器,限幅器把脈沖幅度掌握在肯定的水平,而不論紅外放射器和接收器的距離遠近。4信號進入帶通濾波器,帶通濾波器可以通過30khz到60khz的負載波,通過解調電路和積分電路進入比較器,比較器輸出。5凹凸電平,還原動身射端的信號波形。注意輸出的凹凸電平和放射端是反相的,這樣的目的是為了提高接收的靈敏度。紅外接收頭的種類很多,引腳定義也不相同,一般都有三個引腳,包括供電腳,接地和信號輸出腳。依據放射端調制載波的不同應選用相應解調頻率的接收頭。紅外接收頭內部放大器的增益很大,很容易引起干擾,因此在接收頭的供電腳上須加上濾波電容,一般在22uf以上.有的廠家建議在供電腳和電源之間接入330歐電阻,進一步降低電源干擾。
圖3—71838紅外接收頭接入示意圖1838紅外接收頭接入圖3-7看出,這個器件只需要一個104的電容以及一個100歐的電阻即可完成紅外接受的工作.當這紅外接受頭接收到啟始碼的時候就開頭工作,直到接受到結束碼時,結束工作。1602字符液晶顯示器圖3—81602字符液晶顯示屏引腳示意圖圖3—81602字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來的2條線是背光電源線.VCC(15腳)和地線GND(16腳),其掌握原理與14腳的LCD完全一樣。1602液晶模塊內部的字符發生存儲器(CGROM)已經存儲了160個不同的HYPERLINK"http://baike.baidu.com/view/545607。htm"點陣字符圖形,這些字符有:阿拉伯數字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A”。由于1602識別的是ASCII碼,試驗可以用ASCII碼直接賦值,在單片機編程中還可以用字符型常量或變量賦值,如'A’。?以下是1602的16進制ASCII碼表:
表3—116進制ASCII碼表
讀的時候,先讀上面那列,再讀左邊那行,如:感嘆號!的ASCII為0x21,字母B的ASCII為0x42(前面加0x表示十六進制)。圖3-91602字符液晶顯示屏接入示意圖圖3—91602字符液晶16引腳為背光負極,用PNP來充當開關。而引腳7到14(P0.0到P0。7)是液晶的數據位,而引腳1為電源地,而引腳2為電源正。引腳4為數據/命令選擇,引腳5為讀寫選擇,引腳6則為信號使能位.熱釋電人體紅外感應模塊圖3-10熱釋電人體紅外感應模塊示意圖
這個熱釋電人體紅外感應模塊也就只有3個引腳如圖3-10,其中的其次個引腳為信號的輸出引腳用于輸出數據。熱釋電紅外傳感器是一種能檢測人或動物放射的紅外線而輸出電信號的傳感器。早在1983年,有人提出過利用熱釋電效應探測紅外輻射,但并未受到重視,直到六十年月,隨著激光、紅外技術的飛快進展,才又推動了對熱釋電效應的討論和對熱釋電晶體的應用[12]。熱釋電晶體已廣泛用于紅外光譜儀、紅外遙感以及熱輻射探測器,它可以作為紅外激光的一種較抱負的探測器。它目標正在被廣泛的應用到各種自動化掌握裝置中.除了在我們熟知的樓道自動開關、防盜報警上得到應用外,在更多的領域應用前景看好.比如:在房間無人時會自動停機的空調機、飲水機。電視機能推斷無人觀看或觀眾已經睡覺后自動關機的機構.開啟監視器或自動門鈴上的應用。結合攝影機或數碼照相機自動記錄動物或人的活動等。您可以依據自己的奇思妙想,結合其它電路開發出更加優秀的新產品或自動化掌握裝置.模塊的接入示意圖如下:圖3-11熱釋電人體紅外感應模塊接入示意圖這個熱釋電紅外人體感應器如圖3-11,接入的方法比較簡潔,首先是充當電源的兩個引腳分別是電源正和地,還有另外的一個引腳只是負責輸出,當有人接近時,引腳2會自動地拉低.當單片機識別到后,做出處理即可。
軟件設計軟件設計對于整個設計來說,是格外重要的,格外是GSM的收發程序,這是本設計的核心部分,由于整個設計最關鍵的模塊是GSM模塊,而GSM模塊的應用需要我們掌握GSM的AT指令,所以軟件的設計比較耗費時間,光AT的指令就不下30條,但常用的指令也不多,但難度大。單片機還有他的指令所以,要靈敏運用好這些指令才是完成本次設計的王道。下面我就盡挑重點來講解如何用GSM來收發短信,以及如何用字符液晶1602來顯示字符,而且還會通過DS18B20溫度傳感器來實測溫度,然后顯示在18b20上面。GSM的核心程序圖4—1發送短信函數流程圖(左)圖4-2讀取短信函數流程圖(右)GSM短信接收程序如下:
voidCMGF()//Send
an
SMS
command(發出一條短消息命令)發送短信函數{unsignedchari=0;unsignedcharcodemode[]=”AT+CMGF=0";//AT+CMGF指令用于選擇短信息格式GSM指令while(mode[i]!='\0’){SBUF=mode[i];while(TI==0);//TI是指單片機SFR中SCON(SerialControlRegister)串行口掌握寄//存器的一位//而且是被硬件置位的。當單片機發送完一幀數據后,該數據位由硬件置1.TI=0;i++;}SBUF=0X0D;//代表回車鍵ASCII碼while(TI==0);TI=0;//清零SCON的TI位SBUF=0X0A;//代表換行鍵ASCII碼while(TI==0);TI=0;}voidCMGR()//ReadSMSmessage(讀短消息)讀取短信函數{unsignedchari=0;unsignedcharcodemode2[]=”AT+CMGR=1";//采納文本格式發送,//如用PDU格式,則AT+CMGF=0while(mode2[i]!='\0'){SBUF=mode2[i];while(TI==0);/TI是指單片機SFR中SCON(SerialControlRegister)串行口掌握寄存器的一位//而且是被硬件置位的。當單片機發送完一幀數據后,該數據位由硬件置1。TI=0;i++;
}SBUF=0X0D;//回車鍵的ASCII碼while(TI==0);TI=0;SBUF=0X0A;//換行的ASCII碼while(TI==0);TI=0;}圖4-3新收到信息短信函數流程圖(左)圖4-4刪除短信函數流程圖(右)voidCNMI()//New
SMS
message
indications(顯示新收到的短消息)函數{unsignedchari=0;
unsignedcharcodemode1[]="AT+CNMI=2,1";while(mode1[i]!='\0'){SBUF=mode1[i];while(TI==0);TI=0;i++;}SBUF=0X0D;while(TI==0);TI=0;SBUF=0X0A;while(TI==0);TI=0;}voidCMGD()Delete
SMS
message(刪除SIM卡內存的短消息)函數{unsignedchari=0;unsignedcharcodemode3[]="AT+CMGD=1”;while(mode3[i]!='\0'){SBUF=mode3[i];while(TI==0);TI=0;i++;}SBUF=0X0D;while(TI==0);TI=0;SBUF=0X0A;while(TI==0);TI=0;}字符液晶1602讀寫核心程序字符液晶1602的讀時序圖和讀時序圖如圖4-5以及圖4—6。
圖4—5字符液晶1602的讀時序圖圖4—6字符液晶1602寫時序圖①當我們要寫指令字,設置LCD1602的工作方式時:需要把RS置為低電平,RW置為低電平,然后將數據送到數據口D0~D7,最后E引腳一個高脈沖將數據寫入。
②當我們要寫入數據字,在1602上實現顯示時:需要把RS置為高電平,RW置為低電平,然后將數據送到數據口D0~D7,最后E引腳一個高脈沖將數據寫入。
發現了么,寫指令和寫數據,差別僅僅在于RS的電平不一樣而已。下面給出了字符液晶的寫數據函數以及寫命令函數。voidwrite_data(unsignedchardate)//液晶寫數據函數write_data{lcdrs=1;//寫數據而lcdrs=P1^0lcdrw=0;//lcdrw=P1^1P2=date;
delay(5); //初始化lcden=1;//lcden=P1^2delay(5);lcden=0;//lcden=P1^2} voidwrite_com(unsignedcharcom){lcdrs=0;//寫指令而lcdrs=P1^0lcdrw=0;//lcdrw=P1^1P2=com;delay(5);//初始化lcden=1;//lcden=P1^2delay(5);lcden=0;//lcden=P1^2}圖4—7液晶寫命令函數(左)圖4—8液晶寫數據函數(右)從上面圖4-7以及圖4—
8可以看出液晶寫命令函數和液晶寫數據函數在程序的結構上并沒有太大的區分,區分只在于液晶寫命令函數的lcdrs=0,lcdrw=0;液晶寫數據函數lcdrs=1;lcdrw=0還有的就是賦值給P2端口的值不同。下面的是液晶初始化程序。voidinit2(){lcden=0;write_com(0x38);//必須的初始化write_com(0x0f);//功能指令write_com(0x06);//輸入模式write_com(0x01);//清屏}下面是字符液晶1602的指令表表4—1字符液晶1602的指令表指令RSRWD7D6D5D4D3D2D1D01清屏00000000012光標返回000000001*3輸入模式00000001I/DS4顯示掌握0000001DCB5光標/字符移位000001S/CR/L**6功能00001DLNF**7置字符發生器地址0001字符發生存貯器地址8置數據存貯器地址001顯示數據存貯器地址9讀忙標志和地址01BF計數器地址10寫數據到指令7.8所設地址10要寫的數據11從指令7.8所設的地址讀數據11讀出的數據由表4—1中可以看出0x01指令為清屏指令,0x06為輸入模式。溫度傳感器18b20函數以下是18B20的讀寫時序圖,從讀寫時序圖即可了解讀以及寫的時序。從而依據時序編寫出符合的讀、寫程序。主機要生成一個寫時間隙,必須把數據線拉到低電平然后釋放,在寫時間隙開頭后的15μs內允許數據線拉到高電平。主機要生成一個寫0時間隙,必須把數據線拉到低電平并保持60μs。讀時間隙,當從DS1820讀取數據時,主機生成讀時間隙。當主機把數據線從高高平拉到低電平常,寫時間隙開頭。數據線必須保持至少1μs
;從DS1820輸出的數據在讀時間隙的下降沿消滅后15μs內有效。圖4-9讀寫時序圖因此,主機在讀時間隙開頭后必須停止把I/O腳驅動為低電平15μs,以讀取I/O腳狀態。在讀時間隙的結尾,I/O引腳將被外部上拉電阻拉到高電平。全部讀時間隙必須最少60μs,包括兩個讀周期間至少1μs的恢復時間。以下是18b20的初始化的程序.voidinit()//初始化ds1820{DQ=1;//DQ復位delay(8);//稍做延時DQ=0;//單片機將DQ拉低
delay(90);//精確延時大于480usDQ=1;//拉高總線delay(8);delay(100);DQ=1;}Read(void)//讀一個字節{unsignedchari=0;unsignedchardat=0;for(i=8;i>0;i-—){DQ=0;//給脈沖信號dat〉>=1;DQ=1;//給脈沖信號if(DQ)dat|=0x80;delay(4);}return(dat);}Write(unsignedchardat)//寫一個字節{unsignedchari=0;for(i=8;i〉0;i——){DQ=0;DQ=dat&0x01;delay(5);DQ=1;dat>>=1;}}
總結通過這次的畢業設計的完成,我自己覺得對通信方面的一些協議又大致的了解了,最重要的是能夠很好的培育了自己的動手能力,以及自己解決困難的能力,這次畢業設計最為困難的是在GSM模塊的收發程序的編程上,當自己對GSM模塊的一些協議一概不通,到自己可以編寫程序的時候,那種成就感是格外微妙的,因此,我自己對程序的編寫很熱充.通過歷時一個多月的軟硬件的組合以及編寫,對自己的耐力也需要很高的要求.而指導老師的指導以及幫助也是格外的重要.自己重來沒有遇到過這么有難度的編程,以前的編程基本上都有一些例程,或參考的資料也格外多,但這次的畢設,從編程的困難程度,以及參考資料的稀有來說都是對自己都是一次挑戰。這個畢業設計解決了如下的一些問題.利用GSM模塊,通過手機發送短信,從而可以掌握日光燈,還有一點就是通過GSM模塊,以及熱釋電人體紅外感應器,實現,當有人闖入家里,感應器感應到了,單片機處理,然后GSM模塊發送短信到自己手機上。
致謝首先,通過這個畢業設計,發現自己對通信行業有了大致的了解,無論在硬件實現以及軟件編程方面都有了較大的提升,雖然在實現GSM的收發短信這一項,花費的時間是比較多,由于在編程方面有很大的困難,但最終還是可以克服。最后,在這個設計上,指導老師熱心對我進行了指導,格外是羅小蓉以及文毅老師的熱心指導,在這個設計中起到了很重要的作用。值此高校畢業之前,謹向我的指導老師致以最真誠的謝。
參考文獻牛丹,買和木提,周澄,翁多杰.單片機掌握GSM模塊實現短信收發的技術及應用[J].《儀器儀表與分析監測》2008年第4期.段榮霞,崔少輝。單片機與GSM模塊通信技術的討論應用天地[J].2012年1月第31卷第1期.柏業超,楊波,張興敢.基于GSM模塊TC35的智能門控安防系統設計[J].電子測量技術,第31卷第1期2008年1月.王騏,何嘉斌.單片機掌握GSM模塊實現短信收發的軟件設計[J].單片機與嵌入式系統應用,2005(1):63266.楊忠明,劉付江.GSM模塊的AT命令集算法討論[J].廣東科技2008.04.總第185期.李全利。單片機原理及接口技術[M].北京:高等教育出版社,2009.覃景繁,歐陽景正.一種新的變步長自適應濾波算法[J].數據采集與處理,1997,12(3):1712194.葉丹霞,王家禮.GSM模塊TC35及在遠程監控系統中的應用[J],《現代電子技術》2005年第5期總第196期.陳小勇.GSM模塊和單片機設計的防盜監控系統科技資訊[J]。2009NO.12.賀大松.汽車縱向防撞報警系統開發[D].電子科技高校,2008.承曉。基于STC12C54XX的自學習遙控系統實現[J].科技廣場,2010年.李清生.熱釋電紅外線傳感器[J]。電氣時代,2004年。馬士寶,張國玉,孫向陽,高玉軍,王微微。基于GSM模塊的無線報警系統設計[J].第32卷第1期2009年3月.葉鋒.基于GSM模塊的消防監控系統短信平臺的設計江漢高校學報(自然科學版)[J].第35卷第4期2007年12月.孫寧,趙印,劉欣慰,汪貝,楊偉.基于GSM模塊的遠程溫濕度監控系統世界科技討論與進展[J].2008年12月第30卷第6期。李杰,吳學英.用單片機掌握GSM模塊的一種方法[J],電子世界2004年11期。苗雨。基于GSM模塊實現短信發送計算機工程應用技術.劉主鏈,宋躍,何志輝,王卓浩。無線模塊與GSM實現的智能遠程家居掌握系統計算機測量與掌握[J]。2011年9月19日.
DikinDA,StankovichS,ZimneyEJ,etalPreparationandcharacterizationofgrapheneoxidepaper[J].Nature2007.ChetanaNKeltcher,KevinJ,McGrath,etal.TheAMDopteronprocessorformultiprocessorservers[J]。IEEEMicro,2003,(3-4):66-76.附錄設計的全部程序#include<reg52。h>#include<string.h>#definen64charresbuf[n];unsignedcharp=0,i,k;charcodeSM[]=”SM”;charcodeok[]="0031”;unsignedchar*m,*s;unsignedcharflag=1,flag2=1,flag3=1,flag4=1,flag5=1,flag6=1;sbitjidian=P1^5;sbitled4=P0^4;sbitled0=P0^0;sbitled1=P0^1;sbitled2=P0^2;sbitled3=P0^3;sbitthief=P0^5;sbitin1=P1^6;sbitin2=P1^7;sbitanjian1=P3^7;sbitanjian2=P3^6;/**************led初始化*************/sbitlcden=P1^2;sbitlcdrs=P1^0;sbitlcdrw=P1^1;//sbitkai=P2^6;sbitDQ=P1^3;unsignedcharnum;
unsignedcharcodetable[]="Temperature";unsignedchardatadisdata[4];unsignedchartab[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};/*************紅外初始****************/#definec(x)(x*110592/120000)sbitIr_Pin=P1^4;unsignedchardeposit[4];//緩沖區unsignedcharir_data[4];//用于保存解碼結果/***************GSM初始*******************/voidinit3(){TMOD=0x20;//設置定時器1為工作方式2 TH1=0xfd; TL1=0xfd; TR1=1;?REN=1;?SM0=0;?SM1=1;?EA=1;?ES=1;}/********************延時*******************/voiddelay2(unsignedintz){unsignedintx,y;for(x=110;x〉0;x-—)for(y=z;y>0;y--);}voiddelay1(unsignedintz){unsignedintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voiddelay(unsignum)//延時函數
{while(--num);}/************紅外函數*****************/unsignedintIr_Get_Low(){TL1=0;TH1=0;TR1=1;while(!Ir_Pin&&(TH1&0x80)==0);TR1=0;returnTH1*256+TL1;}voiddo_something(){if((deposit[0]==0x0c)&&(deposit[1]==0x00)){?if(flag3==1) { flag3=0;?jidian=0;?} else?{ jidian=1; flag3=1;?}}if((deposit[0]==0x08)&&(deposit[1]==0x01)){if(flag6==1) {?flag6=0;?in1=0; in2=1; }
?else?{?flag6=1;?in1=0; in2=0; }}}//=============================================================unsignedintIr_Get_High(){TL1=0;TH1=0;TR1=1;while(Ir_Pin&&(TH1&0x80)==0);TR1=0;returnTH1*256+TL1;}/******************短息接收的函數**************/voidCMGF(){unsignedchari=0;unsignedcharcodemode[]="AT+CMGF=0";while(mode[i]!='\0'){SBUF=mode[i];while(TI==0);TI=0;i++;}SBUF=0X0D;while(TI==0);TI=0;SBUF=0X0A;
while(TI==0);TI=0;}voidCMGR(){unsignedchari=0;unsignedcharcodemode2[]="AT+CMGR=1";while(mode2[i]!='\0'){SBUF=mode2[i];while(TI==0);TI=0;i++;}SBUF=0X0D;while(TI==0);TI=0;SBUF=0X0A;while(TI==0);TI=0;}voidCNMI(){unsignedchari=0;unsignedcharcodemode1[]="AT+CNMI=2,1";while(mode1[i]!='\0’){SBUF=mode1[i];while(TI==0);TI=0;i++;}SBUF=0X0D;while(TI==0);TI=0;SBUF=0X0A;
while(TI==0);TI=0;}voidCMGD(){unsignedchari=0;unsignedcharcodemode3[]="AT+CMGD=1";while(mode3[i]!=’\0'){SBUF=mode3[i];while(TI==0);TI=0;i++;}SBUF=0X0D;while(TI==0);TI=0;SBUF=0X0A;while(TI==0);TI=0;}/**************短信的發送函數****************/voidCMGF1(){unsignedchari=0;unsignedcharcodemode[]=”AT+CMGF=1”;while(mode[i]!='\0'){SBUF=mode[i];while(TI==0);TI=0;i++;}SBUF=0X0D;while(TI==0);TI=0;
}voidCMGS(){unsignedcharj=0;unsignedcharcodetable[]="AT+CMGS=15900080283";while(table[j]!='\0'){SBUF=table[j];while(TI==0);TI=0;j++;}SBUF=0X0D;while(TI==0);TI=0;}voidwhat(){unsignedcharz=0;unsignedcharcodetemp[]=”thief";while(temp[z]!=’\0'){SBUF=temp[z];while(TI==0);TI=0;z++;}SBUF=0X0D;while(TI==0);TI=0;delay2(1000);SBUF=0X1A;}/**************液晶與18b20函數***********/voidwrite_com(unsignedcharcom)
{lcdrs=0;//寫指令lcdrw=0;P2=com;delay(5);//初始化lcden=1;delay(5);lcden=0;}voidwrite_data(unsignedchardate){lcdrs=1;//寫數據lcdrw=0;P2=date;delay(5);?//初始化lcden=1;delay(5);lcden=0;}voidinit2(){lcden=0;//kai=0;num=0;write_com(0x38);//必須的初始化write_com(0x0f);write_com(0x06);write_com(0x01);}/******************************/unsignedintt=0;voidinit()//初始化ds1820{DQ=1;//DQ復位delay(8);//稍做延時
DQ=0;//單片機將DQ拉低delay(90);//精確延時大于480usDQ=1;//拉高總線delay(8);delay(100);DQ=1;}Read(void)//讀一個字節{unsignedchari=0;unsignedchardat=0;for(i=8;i>0;i--){DQ=0;//給脈沖信號dat〉〉=1;DQ=1;//給脈沖信號if(DQ)dat|=0x80;delay(4);}return(dat);}Write(unsignedchardat)//寫一個字節{unsignedchari=0;for(i=8;i〉0;i--){DQ=0;DQ=dat&0x01;delay(5);
DQ=1;dat>>=1;}}temper(void){unsignedchara=0;unsignedcharb=0;init();Write(0xCC);//跳過讀序號列號的操作發送指令0xccWrite(0x44);//啟動溫度轉換發送指令0x44init();Write(0xCC);//跳過讀序號列號的操作Write(0xBE);//讀取溫度寄存器等(共可讀9個寄存器)前兩個就是溫度發送指令0xbea=Read();//讀取溫度值低位b=Read();//讀取溫度值高位t=b;t<<=8;//值左移8位t=t|a;//合并凹凸位數值t=t*(0。625);//溫度擴大10倍,精確到1位小數return(t);}voiddisplay_temper(unsignedinti){disdata[0]=i/1000;//百位數disdata[1]=i%1000/100;//十位數disdata[2]=i%100/10;//個位數disdata[3]=i%10;//小數位}/************以下是主程序*************/voidmain(){unsignedintchange;
init2();init();init3(); P0=0xfe;/**********無限循環****************/while(1){led4=1;delay2(500);led4=0;delay2(500);/**********情況一***紅外接收***********/if(anjian1==0&&anjian2==0){ unsignedinttemp;chari,j;TMOD=0x11;led3=0;EA=1;while(anjian1==0&&anjian2==0){restart:while(Ir_Pin);temp=Ir_Get_Low();if(temp<c(8500)||temp>c(9500))continue;//引導脈沖低電平9000temp=Ir_Get_High();if(temp〈c(4000)||temp>c(5000))continue;//引導脈沖高電平4500for(i=0;i〈4;i++)//4個字節for(j=0;j〈8;j++)//每個字節8位{temp=Ir_Get_Low();if(temp〈c(200)||temp>c(800))gotorestart;temp=Ir_Get_High();if(temp<c(200)||temp>c(2000))gotorestart;ir_data[i]>>=1;if(temp>c(1120))ir_data[i]|=0x80;
}deposit[0]=ir_data[2]&0x0f;deposit[1]=(ir_data[2]/16)&0x0f;deposit[2]=ir_data[3]&0x0f;deposit[3]=(ir_data[3]/16)&0x0f;//顯示結果do_something();}}/****************情況一END**********
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物流公司消防月活動方案
- 熱身活動準備活動方案
- 瑜伽溫泉活動方案
- 特殊教育孩子活動方案
- 物業環保涂鴉活動方案
- 珠寶廣場活動方案
- 照片展覽活動方案
- 班級區域交流活動方案
- 物業書法活動方案
- 物流公司宣教活動方案
- 2025年中小學心理健康教育教師考試試題及答案
- 2003年北京市高考物理試卷
- 消防系統維保與方案
- 社區衛生服務中心工作制度與人員崗位職責
- 國開《監督學》形考任務3試題和答案
- DB63T1743-2019青海省建筑工程資料管理規程
- 幼兒園安全教育:《馬路上的安全》 PPT課件
- 125萬噸硫鐵礦斜坡道施工組織設計
- 義務教育數學課程標準(2022年版)課件PPT
- 有線電視機線員中級考題
- 人教版八年級下冊英語單詞表(帶音標)
評論
0/150
提交評論