51單片機(jī)語音電梯控制系統(tǒng)-2012畢業(yè)論文_第1頁
51單片機(jī)語音電梯控制系統(tǒng)-2012畢業(yè)論文_第2頁
51單片機(jī)語音電梯控制系統(tǒng)-2012畢業(yè)論文_第3頁
51單片機(jī)語音電梯控制系統(tǒng)-2012畢業(yè)論文_第4頁
51單片機(jī)語音電梯控制系統(tǒng)-2012畢業(yè)論文_第5頁
已閱讀5頁,還剩77頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

摘要隨著GSN網(wǎng)絡(luò)的迅速普及移動(dòng)通信技術(shù)的飛速發(fā)展,新技術(shù)和新業(yè)務(wù)的開發(fā)和應(yīng)用已提到十分重要的位置。將GSM技術(shù)運(yùn)用于實(shí)現(xiàn)家庭智能報(bào)警具有實(shí)際應(yīng)用價(jià)值。該系統(tǒng)以單片機(jī)AT89S52為核心作為控制模塊,由GSM無線通信模塊、傳感器數(shù)據(jù)信息采集模塊、液晶顯示模塊和報(bào)警模塊組成。通過傳感器模塊中光電傳感器和溫度傳感器采集相關(guān)信號(hào),經(jīng)A/D轉(zhuǎn)換模塊轉(zhuǎn)換成單片機(jī)可處理的數(shù)字信號(hào),經(jīng)過語音報(bào)警模塊發(fā)出相關(guān)報(bào)警信號(hào),將該信號(hào)通過GSM短信模塊,借助GSM移動(dòng)網(wǎng)絡(luò),以中文短消息,直接把報(bào)警地點(diǎn)的情況反映到您的手機(jī)屏幕上。該系統(tǒng)具有安全保密性高,又不需要組建專用網(wǎng)絡(luò)和維護(hù)網(wǎng)絡(luò),網(wǎng)絡(luò)覆蓋面廣,因此與傳統(tǒng)的監(jiān)控系統(tǒng)相比有著其獨(dú)特的優(yōu)勢(shì)。關(guān)鍵詞:智能監(jiān)控;AT89S52單片機(jī);GSM網(wǎng)絡(luò);傳感器;報(bào)警系統(tǒng);

ABSTRACTWiththerapidpopularizationofGSMnetworksandthefastdevelopmentofmobilecommunicationtechnology,newtechnologiesandserviceshavebeensteppeduptoanall-importantposition.GSMtechnologywillbeappliedtoachievepracticalapplicationofintelligentalarmhomevalue.ThesystemisMCUAT89S52thecoreasacontrolmodule,whichisconsistoftheGSMwirelesscommunicationmodule,sensordataacquisitionmodule,LCDmoduleandalarmmodule.Photoelectricsensormodulethroughthesensorandtemperaturesensoracquisition-relatedsignals,throughtheA/Dconvertermoduleintodigitalsignalswhichasinglechipcanhandle,afterissuingtherelevantalarmvoicealarmmodulesignals,thesignalisthroughtheGSMSMSmodule,withGSMmobilenetwork,throughChineseshortmessage,directlytothealarmlocationisreflectedtoyourmobilephonescreen.Thetheoryisverysimpleandhashighsecurity,andthereisnoneedtosetupspecialnetworksandtomaintainthem,moreovertheareaofGSMnetworkscoveringisverywide,sothismethodhasmanyparticularadvantagesoverconventionalmonitoringsystem.KeyWords:Intelligentmonitoring;AT89S52singlechipmicrocomputer;GSMnetworks;Sensor;Alarmsystem

目錄MACROBUTTONInsertCrossReference1 引言 致謝系統(tǒng)調(diào)試根據(jù)方案設(shè)計(jì)要求,調(diào)試過程共分三大部分,硬件調(diào)試,軟件調(diào)試,軟件和硬件聯(lián)調(diào)(即系統(tǒng)調(diào)試)。電路按模塊逐個(gè)調(diào)試,各模塊調(diào)試通過后再聯(lián)調(diào)。程序先在最小系統(tǒng)板調(diào)試,通過后再軟硬聯(lián)調(diào)。硬件測(cè)試5.1.1靜態(tài)調(diào)試線路的檢查:通過目測(cè)和使用萬用表,檢查線路連接的正確性,有無斷路或短路,有無虛焊的存在等。檢查各主要元器件是否因?yàn)楹附佣鴵p壞,比如數(shù)碼管等。核對(duì)元件:檢察元件是否安裝正確,有無損壞等。檢查電源系統(tǒng):在加入集成電路之前,應(yīng)檢查加入電源的品質(zhì),包括電源的電壓以及負(fù)載能力等。只有當(dāng)電源滿足要求后,才能加上所有的元器件進(jìn)行上電調(diào)試。5.1.2聯(lián)機(jī)調(diào)試雖然經(jīng)過了靜態(tài)測(cè)試,但仍有不少的硬件故障要在軟硬件聯(lián)機(jī)調(diào)試中才能發(fā)現(xiàn)。所以聯(lián)機(jī)調(diào)試很有必要,具體操作如下:測(cè)試晶振電路和復(fù)位電路:這是單片機(jī)應(yīng)用系統(tǒng)工作的最基本的條件,可用示波器或邏輯筆進(jìn)行檢查。測(cè)試存儲(chǔ)器:將數(shù)據(jù)寫入存儲(chǔ)單元并讀回比較,寫入與讀出的數(shù)據(jù)如果是一致的則表示存儲(chǔ)單元能正常工作,否則有短路,斷路或器件損壞的情況。測(cè)試I/O口和I/O設(shè)備:編寫簡(jiǎn)單的測(cè)試程序,單獨(dú)支持某一I/O口和與之相連的I/O設(shè)備,如果能自如的支配或控制,則表明I/O通道的工作正常。將GSM模塊接上電源后,插上SIM卡,看電源燈是否閃爍,用USB串口線與電腦連接,利用串口工具測(cè)試GSM模塊是否能成功發(fā)送短信。測(cè)試成功后用串口線與單片機(jī)連接進(jìn)行整個(gè)系統(tǒng)調(diào)試。通過以上的檢測(cè),如果各個(gè)測(cè)試環(huán)節(jié),如果最終各環(huán)節(jié)都正常,那么硬件測(cè)試應(yīng)該沒問題了。軟件測(cè)試程序模塊編寫完成后,首先通過匯編和編譯。有些開發(fā)軟件的功能比較強(qiáng),能夠模仿單片機(jī)的運(yùn)行模式,直接在pc機(jī)上就可以調(diào)試編寫的軟件。對(duì)于大多數(shù)情況,還是需要把程序裝入單片機(jī)系統(tǒng)中進(jìn)行聯(lián)機(jī)調(diào)試。直到每一個(gè)程序模塊調(diào)試成功。本設(shè)計(jì)中用C51編程軟件KeiluVision3進(jìn)行編寫AT89S52單片機(jī)的源程序(匯編語言和C語言),對(duì)其中的部分電路進(jìn)行仿真,Keil編譯器把匯編語言編寫的源程序與Keil內(nèi)涵的庫函數(shù)裝配在一起,然后分別有C51編譯器編譯生成目標(biāo)文件(.obj)最后產(chǎn)生.hex程序代碼,利用C51下載軟件ISP將程序代碼下載到目標(biāo)單片機(jī)AT89S52的Flash中。系統(tǒng)調(diào)試焊接完所有模塊后,就要對(duì)系統(tǒng)的靜態(tài)測(cè)試,就是對(duì)組成系統(tǒng)的各個(gè)模塊分別進(jìn)行功能測(cè)試,使其實(shí)現(xiàn)預(yù)定功能。在對(duì)各個(gè)模塊調(diào)試完畢之后,再對(duì)整個(gè)系統(tǒng)進(jìn)行整機(jī)聯(lián)調(diào)。連接好電源,注意正負(fù)極性,連接好所有的I/O口,編寫簡(jiǎn)單的測(cè)試程序,單獨(dú)支持某一I/O口和與之相連的I/O設(shè)備,如果能自如的支配或控制,則表明I/O通道的工作正常。通過以上的檢測(cè),如果各個(gè)測(cè)試環(huán)節(jié),如果最終各環(huán)節(jié)都正常,那么硬件測(cè)試應(yīng)該沒問題了。程序模塊編寫完成后,首先通過匯編和編譯。有些開發(fā)軟件的功能比較強(qiáng),能夠模仿單片機(jī)的運(yùn)行模式,直接在pc機(jī)上就可以調(diào)試編寫的軟件。對(duì)于大多數(shù)情況,還是需要把程序裝入單片機(jī)系統(tǒng)中進(jìn)行聯(lián)機(jī)調(diào)試。直到每一個(gè)程序模塊調(diào)試成功。當(dāng)硬件調(diào)試和軟件模塊調(diào)試之后,就可以進(jìn)行系統(tǒng)調(diào)試。在系統(tǒng)調(diào)試時(shí),應(yīng)將全部硬件電路都接上,應(yīng)用程序模塊也都組合好,進(jìn)行全系統(tǒng)軟硬件調(diào)試。系統(tǒng)調(diào)試的任務(wù)是排除軟硬件中的殘留錯(cuò)誤。使整個(gè)系統(tǒng)能夠完成預(yù)定的工作任務(wù),達(dá)到要求的技術(shù)性能指標(biāo)。測(cè)試結(jié)果基于GSM網(wǎng)絡(luò)的家庭報(bào)警系統(tǒng),通過利用GSM的SMS傳輸數(shù)據(jù)。經(jīng)過我多次模擬試驗(yàn),證明上述系統(tǒng)設(shè)計(jì)性能良好,沒有出現(xiàn)數(shù)據(jù)丟失的現(xiàn)象。證明上述設(shè)計(jì)是正確的。但在調(diào)試和試用階段也遇到了如下問題:(1)接口電平手機(jī)的電纜接口電平一般是3V左右,單片機(jī)系統(tǒng)的工作電壓一般為2.7~5.5V,范圍較寬,為保證數(shù)據(jù)傳輸?shù)恼_,需在接口加RS-232電平轉(zhuǎn)換電路。(2)部分地區(qū)無法使用一些城市的SMS平臺(tái)不允許使用缺省短消息服務(wù)中心號(hào)碼的協(xié)議,只需在發(fā)送的PDU數(shù)據(jù)前面幾個(gè)字節(jié)加上中心號(hào)碼即可,詳見本文發(fā)送實(shí)例。(3)不能接收已正確發(fā)送的短消息除GSM的SMS信道擁塞原因外,主要是PDU中PID字節(jié)的設(shè)置,使得收到的信息要存入SIM卡,而SIM卡已滿,故不再接收信息。改變PID的設(shè)置即可。(4)收不到開機(jī)前的短消息主要是發(fā)送數(shù)據(jù)時(shí),對(duì)短消息有效時(shí)間VP值設(shè)置不當(dāng)造成的??傊?,通過硬件仿真的交叉調(diào)試平臺(tái)并借助硬件測(cè)試工具ProteusISIS和Keilvsion3完成了對(duì)部分硬件電路的測(cè)試,為實(shí)現(xiàn)整個(gè)監(jiān)控模塊的功能奠定了基礎(chǔ)。通過對(duì)GSM模塊中短信實(shí)現(xiàn)協(xié)議的理解,使用相應(yīng)的AT指令完成了短信的發(fā)送,并確定了短信收發(fā)雙方所遵從的協(xié)議規(guī)定。整個(gè)設(shè)計(jì)基本有效完成。結(jié)論本設(shè)計(jì)借助最可靠、最成熟的GSM移動(dòng)網(wǎng)絡(luò),以最直觀的中文短信息形式,直接把報(bào)警信息反映到您的手機(jī)上。當(dāng)家中出現(xiàn)緊急信息時(shí),安裝在相應(yīng)部位的傳感器馬上就能檢測(cè)到,并且會(huì)立即把信號(hào)傳送到控制中心,經(jīng)過一系列信號(hào)轉(zhuǎn)化后,轉(zhuǎn)換后的信號(hào)通過GSM網(wǎng)絡(luò)傳送到你的手機(jī)上,即是先把信息送到SMS服務(wù)平臺(tái),而后通過基站傳送出去。整個(gè)傳送過程只需幾秒種的時(shí)間,能夠準(zhǔn)確地通知家中被檢測(cè)的那一部分出了問題,以便于主人能夠及時(shí)的采取補(bǔ)救措施。首先,硬件部分我們從五個(gè)模塊著手,首先是通過傳感器模塊采集到家中的緊急信息,將信息傳到微處理器上,由核心控制模塊AT89S52單片機(jī),轉(zhuǎn)而控制報(bào)警模塊、液晶顯示模塊,這樣,同時(shí)發(fā)出報(bào)警聲音和顯示報(bào)警具體信息,再通過GSM模塊以實(shí)現(xiàn)遠(yuǎn)程監(jiān)控功能,將報(bào)警信息發(fā)送到事主手機(jī)上,保證事主能夠及時(shí)根據(jù)報(bào)警信息進(jìn)行搶救。其次,軟件部分在對(duì)芯片的管腳功能和用法以及整個(gè)GSM網(wǎng)絡(luò)有充分的了解后,根據(jù)設(shè)計(jì)要求設(shè)計(jì)硬件電路,包括傳感器采集信息電路、單片機(jī)控制電路、GSM模塊連接電路,再編寫所需要的程序,然后通過軟件編程,實(shí)現(xiàn)了對(duì)家庭系統(tǒng)的遠(yuǎn)程監(jiān)控和報(bào)警功能,這樣,基本實(shí)現(xiàn)了預(yù)期的目標(biāo)??偟膩碚f,系統(tǒng)設(shè)計(jì)結(jié)構(gòu)清晰,資源利用合理,不失為一款高性價(jià)比的方案。

參考文獻(xiàn)[1]張?。甋MS短消息傳輸?shù)倪h(yuǎn)端控制技術(shù)及其實(shí)現(xiàn)I-j-]儀器儀表學(xué)報(bào),2003,[2]胡漢才.單片機(jī)原理及其接口技術(shù).清華大學(xué)出版社,1996[3]吳興惠.傳感器與信號(hào)處理.電子工業(yè)出版社,1998[4]何希才.傳感器及其應(yīng)用電路.電子工業(yè)出版社,2001[5]魯昌華.基于GSM無線防盜報(bào)警系統(tǒng)的研制[J].電子測(cè)量與儀器學(xué)報(bào),2006[6]趙繼文.傳感器與應(yīng)用電路設(shè)計(jì).科學(xué)出版社,2002[7]房小翠.單片微型計(jì)算機(jī)與機(jī)電接口技術(shù).國防工業(yè)出版社,2003[8]劉迎春,葉湘濱.《傳感器原理》.國防科技大學(xué)出版社,2005.[9]梁廷貴.現(xiàn)代集成電路實(shí)用手冊(cè).科學(xué)技術(shù)文獻(xiàn)出版社,2002[10]李建忠.單片機(jī)原理及應(yīng)用.西安電子科技大學(xué)出版,2002[11]秦大興.基于GPRS模塊MC35i的監(jiān)測(cè)系統(tǒng)設(shè)計(jì)EJ].儀表技術(shù)與傳感器,2007[12]沈旭日.電子系統(tǒng)設(shè)計(jì)實(shí)踐.華中科技大學(xué)出版社,2004[13]吳金戌.8051單片機(jī)實(shí)踐與應(yīng)用.清華大學(xué)出版社,2001[14]李良隙.如何使用AT命令來控制Modem工作[J].電腦新時(shí)代,2002[15]唐桃波,陳玉林.基于AT89C52的智能無線安防報(bào)警器.電子設(shè)計(jì)應(yīng)用,2003[16]楊治潔.單片機(jī)原理與應(yīng)用.中國人民大學(xué)出版社,2009[17](美)拉帕波特《無線通信原理與應(yīng)用》北京航空航天大學(xué)出版社,2002[18]李廣弟,朱月秀.冷祖.單片機(jī)基礎(chǔ)第3版.北京航空航天大學(xué)出版,2007[19]]王福瑞等.單片微機(jī)測(cè)控系統(tǒng)設(shè)計(jì)大全.北京航空航天大學(xué)出版社,1998[20]李肇慶,韓濤.《串口技術(shù)》.國防工業(yè)出版社,2005天津大學(xué)碩士學(xué)位論文 MACROBUTTONAcceptAllChangesInDoc[此處鍵入中文論文題目]附錄一:電路原理圖附錄二:控制源程序#include"GSMgn.h"#include"GSMhead.h"/***********主程序***************/voidmain(void){ system_server=SYS_SMSR; LED_tc=0;LED_1=1;LED_2=1;LED_3=1;LED_4=1; Sys_Init(); Initialize_Model();delay1ms(2000);//延時(shí)2S start();send_sms();//發(fā)一次短信 while(1){}}ucharF=0,chinit,chping,chname;sbitLED1=P1^0;sbitLED2=P1^1;sbitLED3=P1^2;sbitLED4=P1^3;sbitLED=P1^4;uintTime,Time1;voiddelay1ms(uintx){ for(Time=0;Time<x;Time++)for(Time1=0;Time1<120;Time1++);}/**********************************************************************C51中字符串函數(shù)的擴(kuò)充**********************************************************************/ucharstrsearch(uchar*ptr2){//查字符串*ptr2在*ptr1中的位置//本函數(shù)是用來檢查字符串*ptr2是否完全包含在*ptr1中//返回:0沒有找到//1-255從第N個(gè)字符開始相同uchari,j,k;ucharflag;if(ptr2[0]==0)return(0);flag=0;for(i=0,j=0;i<MAX_TM-2;i++){if(uart_buff[i]==ptr2[j]){//第一個(gè)字符相同for(k=i;k<MAX_TM-2;k++,j++){if(ptr2[j]==0)//比較正確return(i+1);//返回值是整數(shù),不含0if(uart_buff[k]!=ptr2[j])break;}j=0;}}return(0);}/**********************************************************************AT指令發(fā)送程序**********************************************************************/ucharSend_AT_Command(uchartype){//發(fā)送AT指令//撥號(hào)時(shí)號(hào)碼放在phone.number//其他用para_tempAT_Command_Type=type;send_count=0;switch(type){caseRESET_TC35: //復(fù)位TC35strcpy(uart_buff,"AT+CFUN=1,1");break;caseCHECK_PIN: //檢查當(dāng)前是否要輸入PIN碼strcpy(uart_buff,"AT+CPIN?");break;caseTC35_INIT: //TC35初始化命令strcpy(uart_buff,"ATE0V0");break;//0D0A544333350D0AcaseSIM_ID:strcpy(uart_buff,"ATE0V0+CMGF=1+CNMI=2,1");break;caseAT_IPR:strcpy(uart_buff,"AT+IPR=9600"); break;caseSMSS_ID:strcpy(uart_buff,"ATE0V0^SSMSS=1+CNMI=2,1");break;caseSMS_CMGF: //SMS接收方式,strcpy(uart_buff,"ATE0V0+CMGF=0");break;casePHONE_WRITE: //存電話號(hào)碼strcpy(uart_buff,"AT+CPBW=");strcat(uart_buff,para_temp);break;casePHONE_READ: //讀電話本strcpy(uart_buff,"AT+CPBR=");strcat(uart_buff,&read_tmp);uart_buff[9]=0x0d; uart_buff[10]=0x0a;uart_buff[11]=0x00; uart_buff[12]=0x00;break;caseSMS_CMGR: //讀一個(gè)短信strcpy(uart_buff,"AT+CMGR=");strcat(uart_buff,para_temp);break;caseSMS_CMGS: //寫一個(gè)短信strcpy(uart_buff,"AT+CMGS=");strcat(uart_buff,para_temp);break;caseSMS_CMGD: //刪除一個(gè)短信strcpy(uart_buff,"AT+CMGD=");strcat(uart_buff,para_temp);break;caseCMGS_MUB://發(fā)報(bào)警短信內(nèi)容strcpy(uart_buff,para_temp);break;caseAT_COMMAND:break;default:receive_count=0;return(TRUE);}ES=1;strcat(uart_buff,"\x0d\x00");//在命令后加入CRsend_count=0; //設(shè)置發(fā)送指針receive_count=0;AT_Command_Status=COMMAND_WAIT; //設(shè)置接收成功標(biāo)志timer_S_cnt=0;txd_rxd_bit=0;at_send_bit=0;TI=1; //開始發(fā)送數(shù)據(jù)RI=0; //清除接收標(biāo)志if(type==TC35_INIT){while(timer_S_cnt<6){if(AT_Command_Status!=COMMAND_WAIT||txd_rxd_bit==1)return(TRUE);}}elseif((type==SMS_CMGR)){while(timer_S_cnt<6){if(AT_Command_Status!=COMMAND_WAIT||txd_rxd_bit==1)return(TRUE);}}elseif((type==CALL_ID)){while(timer_S_cnt<2){if(AT_Command_Status!=COMMAND_WAIT||txd_rxd_bit==1)return(TRUE);}}else{while(timer_S_cnt<6){if(AT_Command_Status!=COMMAND_WAIT||txd_rxd_bit==1){return(TRUE); }}}return(FALSE);}voidSys_Init(void){//話機(jī)啟動(dòng)的初始化程序,包含鍵盤與定時(shí)器,串口等 //TH0=(65536-46080)/256;//重新裝入定時(shí)25mS的初值到TH0,TL056320 //TL0=(65536-46080)%256; //65536-(11.0592/12)*20MS*1000=To1843247104 //1ms定時(shí) //11.0592/12=0.9216M(記數(shù)頻率) //1ms記數(shù)921.6次 //16位2^16-x=922x=64614FC66 //定時(shí)器里不斷放fc66,不用懷疑51定時(shí)器得到的1ms的精確性嗎//TH0=0xf6;//TL0=0x50;TH0=0xB8;TL0=0x00;//20ms的時(shí)鐘基準(zhǔn)//串口中斷TI=0;RI=0;SCON=0x50; //選用方式1TMOD=0x20;TMOD=(TMOD&0xf0)|1;//MODE1TH1=0xfd;//波特率為9600TL1=0xfd;PCON=0x00;//倍頻0x80IE=0xb0; //EAXXET2ESET0EX0ET1EX111000000TR1=1; //enableTIMER1ES=1;TR0=1;ET0=1;ET1=0;EA=1;timer_1S_cnt=0;receive_count=0;send_count=0xff; //表示禁止發(fā)送,可以接收}//======================================================================//========================進(jìn)行SIM卡中的1到20條短信號(hào)碼的讀==============================================//======================================================================ucharREAD_TEL(ucharr){//讀短信號(hào)碼1-20個(gè)//ucharr;para_temp[0]=(r/10)+0x30;para_temp[1]=(r%10)+0x30;para_temp[2]=0x0d;para_temp[3]=0x00;para_temp[4]=0x00;para_temp[5]=0x00;para_temp[6]=0x00;para_temp[7]=0x00;para_temp[8]=0x00;para_temp[9]=0x00;para_temp[10]=0x00;para_temp[11]=0x00;//timer_S_cnt=0;while(timer_S_cnt<1&&(AT_Command_Status==COMMAND_WAIT))watch_dog_clear;Send_AT_Command(SMS_CMGR);timer_S_cnt=0;//while(timer_S_cnt<1&&(AT_Command_Status==COMMAND_WAIT))watch_dog_clear;send_count=0;if(strsearch("CMGR:0,,0")){//+CMGR:0,,0沒有短信返回 //timer_S_cnt=0;while(timer_S_cnt<1)watch_dog_clear;ES=1; //設(shè)置發(fā)送指針receive_count=0; send_count=0xff; RI=0;return(FALSE);}elseif(uart_buff[1]==0x0d&&uart_buff[0]==0x34){ return(FALSE);}else{if(AT_Command_Status==COMMAND_ERROR) return(FALSE);elsereturn(TRUE);}}//============================================//==========讀寫短信程序//====================================================voidread_sms(){uchari,r,j,t;for(r=1;r<20;r++){timer_tmp=0;// while(timer_tmp<15)watch_dog_clear;//if(strsearch("+CMTI:"))return;//是否有新短信num_tmp1=r;if(READ_TEL(r)!=1){//讀一個(gè)短信at+cmgr=1-19讀指令if(strsearch("+CMTI:"))return;continue;}//TEL_temp[18]讀出對(duì)方號(hào)碼t=2; i=0; for(j=15;j<25;j++){ if((uart_buff[j]==0x22)&&(uart_buff[j+1]==',')&&uart_buff[j+2]==0x22) break;}j=j+3;if(uart_buff[j]=='+')j=j+3; for(;j<40;j++){ if(uart_buff[j]==0x22) break; para_temp[t++]=uart_buff[j]; TEL_temp[i++]=uart_buff[j]; } TEL_temp[i++]=0x0d; TEL_temp[i++]=0x00; para_temp[t++]=0x0d; para_temp[t++]=0x00;para_temp[t++]=0x00;//手機(jī)號(hào)碼設(shè)置 if((i=strsearch("CHN"))){//發(fā)中文//有些比較重要的東西你可以存到卡就,重新開機(jī)也沒有問題 system_server=SYS_ALARM; return; } elseif((i=strsearch("TLA"))){//存號(hào)碼1para_temp[0]=0x31; para_temp[1]=',';Send_AT_Command(PHONE_WRITE);//PHONE_WR//IO_OUT=0; system_server=SYS_NUMSAVE;//儲(chǔ)存電話號(hào)碼標(biāo)志 return; } elseif((i=strsearch("TLB"))){//存號(hào)碼2para_temp[0]=0x32; para_temp[1]=',';Send_AT_Command(PHONE_WRITE);//PHONE_WR//IO_OUT=0; system_server=SYS_NUMSAVE;//儲(chǔ)存電話號(hào)碼標(biāo)志 return; } elseif((i=strsearch("TLC"))){//存號(hào)碼3para_temp[0]=0x32; para_temp[1]=',';Send_AT_Command(PHONE_WRITE);//PHONE_WR//IO_OUT=0; system_server=SYS_NUMSAVE;//儲(chǔ)存電話號(hào)碼標(biāo)志 return; }else{para_temp[0]=(num_tmp1/10)+0x30; para_temp[1]=(num_tmp1%10)+0x30; para_temp[2]=0x0d;para_temp[3]=0x00; Send_AT_Command(SMS_CMGD); timer_S_cnt=0;// while(timer_S_cnt<10&&(AT_Command_Status==COMMAND_WAIT))watch_dog_clear; for(i=10;i<=MAX_TM-3;i++){ uart_buff[i]=0;}Send_AT_Command(SIM_ID); return; }}}voidsend_sms(){//發(fā)送短信 ucharj=1,i=1;Send_AT_Command(SIM_ID);switch(sms_tmp){casesmss_save://發(fā)送英文TMP_BUF=0; do{ para_temp[TMP_BUF]=TEL_temp[TMP_BUF]; TMP_BUF++;}while(TMP_BUF<=18);para_temp[TMP_BUF]=0x00; Send_AT_Command(SMS_CMGS);j=0; para_temp[j++]='S';para_temp[j++]='A'; para_temp[j++]='V';para_temp[j++]='E';para_temp[j++]=':';para_temp[j++]=0x20;para_temp[j++]='O';para_temp[j++]='K';para_temp[j++]=0x1a;para_temp[j++]=0x0d; para_temp[j++]=0x00;para_temp[j]=0x00;Send_AT_Command(CMGS_MUB);break; casesmss_break://發(fā)送問題 TMP_BUF=0; do{ para_temp[TMP_BUF]=TEL_temp[TMP_BUF]; TMP_BUF++;}while(TMP_BUF<=18);para_temp[TMP_BUF]=0x00; Send_AT_Command(SMS_CMGS);j=0; para_temp[j++]='R';para_temp[j++]='F'; para_temp[j++]='C';para_temp[j++]='h';para_temp[j++]='a';para_temp[j++]='n';para_temp[j++]='g';para_temp[j++]='e';para_temp[j++]=0x1a;para_temp[j++]=0x0d; para_temp[j++]=0x00;para_temp[j]=0x00;Send_AT_Command(CMGS_MUB);break;casesmss_cab://發(fā)送問題 TMP_BUF=0; do{ para_temp[TMP_BUF]=TEL_temp[TMP_BUF]; TMP_BUF++;}while(TMP_BUF<=18);para_temp[TMP_BUF]=0x00; Send_AT_Command(SMS_CMGS);j=0; para_temp[j++]='S';para_temp[j++]='y'; para_temp[j++]='s';para_temp[j++]='t';para_temp[j++]='e';para_temp[j++]='m';para_temp[j++]='O';para_temp[j++]='K';para_temp[j++]=0x1a;para_temp[j++]=0x0d; para_temp[j++]=0x00;para_temp[j]=0x00;Send_AT_Command(CMGS_MUB);break; casesmss_para://發(fā)送中文//0011000D91683118180295F20008A70A8F66670953719669FF01Send_AT_Command(SMS_CMGF);TMP_BUF=0; para_temp[TMP_BUF++]='2';//短信號(hào)碼長度,如果每加一個(gè)中文,長度加2 para_temp[TMP_BUF++]='5'; para_temp[TMP_BUF++]=0x0d; para_temp[TMP_BUF++]=0x00; para_temp[TMP_BUF++]=0x00;Send_AT_Command(SMS_CMGS);TMP_BUF=0; para_temp[TMP_BUF++]='0';para_temp[TMP_BUF++]='0';para_temp[TMP_BUF++]='1';para_temp[TMP_BUF++]='1'; para_temp[TMP_BUF++]='0';para_temp[TMP_BUF++]='0';para_temp[TMP_BUF++]='0';para_temp[TMP_BUF++]='D';para_temp[TMP_BUF++]='9';para_temp[TMP_BUF++]='1';para_temp[TMP_BUF++]='6';para_temp[TMP_BUF++]='8'; //3118180295F2j=0;//發(fā)送對(duì)方號(hào)碼 do{//動(dòng)態(tài)電話號(hào)碼 para_temp[TMP_BUF++]=TEL_temp[j+1]; para_temp[TMP_BUF++]=TEL_temp[j]; j=j+2; if(TEL_temp[j+1]==0x0d){ para_temp[TMP_BUF++]='F'; para_temp[TMP_BUF++]=TEL_temp[j]; break; } }while(j<=18);//短信格式設(shè)備para_temp[TMP_BUF++]='0';para_temp[TMP_BUF++]='0';para_temp[TMP_BUF++]='0';para_temp[TMP_BUF++]='8'; para_temp[TMP_BUF++]='A';para_temp[TMP_BUF++]='0'; //短信長度、5個(gè)字,10個(gè)英文 para_temp[TMP_BUF++]='0';para_temp[TMP_BUF++]='A'; //短信內(nèi)容 //53D190016210529FFF01發(fā)送成功 para_temp[TMP_BUF++]='5';para_temp[TMP_BUF++]='3';para_temp[TMP_BUF++]='D';para_temp[TMP_BUF++]='1'; para_temp[TMP_BUF++]='9';para_temp[TMP_BUF++]='0';para_temp[TMP_BUF++]='0';para_temp[TMP_BUF++]='1'; para_temp[TMP_BUF++]='6';para_temp[TMP_BUF++]='2';para_temp[TMP_BUF++]='1';para_temp[TMP_BUF++]='0'; para_temp[TMP_BUF++]='5';para_temp[TMP_BUF++]='2';para_temp[TMP_BUF++]='9';para_temp[TMP_BUF++]='F'; para_temp[TMP_BUF++]='F';para_temp[TMP_BUF++]='F';para_temp[TMP_BUF++]='0';para_temp[TMP_BUF++]='1';//短信結(jié)束符para_temp[TMP_BUF++]=0X1A;para_temp[TMP_BUF++]=0X0D;para_temp[TMP_BUF++]=0X00;Send_AT_Command(CMGS_MUB);break; //======================發(fā)送收到設(shè)備開啟指令================================================default: //system_server=SYS_SMSR; break;}system_server=SYS_SMSR;receive_count=0;AT_Command_Status=COMMAND_WAIT; //設(shè)置接收成功標(biāo)志send_count=0xff;timer_S_cnt=0;while(timer_S_cnt<15&&(AT_Command_Status==COMMAND_WAIT)){if(strsearch("+CMGS:"))break;elseif(txd_rxd_bit)break;//watch_dog_clear;}para_temp[0]=(num_tmp1/10)+0x30;para_temp[1]=(num_tmp1%10)+0x30;para_temp[2]=0x0d;para_temp[3]=0x00;Send_AT_Command(SMS_CMGD);timer_S_cnt=0;//while(timer_S_cnt<2&&(AT_Command_Status==COMMAND_WAIT))watch_dog_clear;Send_AT_Command(SIM_ID);//IO_OUT=1;for(i=0;i<=MAX_TM-2;i++){uart_buff[i]=0;}}voidInitialize_Model(void){//初始化PIN檢測(cè)uchari;IO_IGT=0; for(i=0;i<12;i++){//進(jìn)行初始化,并顯示 Send_AT_Command(TC35_INIT); if(uart_buff[1]==0x0d&&uart_buff[0]==0x30){chinit=1; break; }if((i%4)==0){ IO_IGT=1; } elseif((i%2)==0){ IO_IGT=0;} timer_S_cnt=0; // while(timer_S_cnt<5&&(AT_Command_Status==COMMAND_WAIT))watch_dog_clear;} if(i>=11){ chinit=0; gotoat_eer;}for(i=0;i<12;i++){if(Send_AT_Command(CHECK_PIN)){//如有收到回應(yīng)進(jìn)行分析收到的信息, uart_buff[receive_count]=0; if(strsearch("READY")!=0){chping=1;break;}}timer_S_cnt=0;//while(timer_S_cnt<2&&(AT_Command_Status==COMMAND_WAIT))watch_dog_clear;//LED_INT=~LED_INT;}if(i>=11){chping=0; at_eer:Send_AT_Command(RESET_TC35);//SendData(0xf4);timer_S_cnt=0;//while(timer_S_cnt<2)watch_dog_clear;Send_AT_Command(SMSS_ID); // timer_S_cnt=0;while(timer_S_cnt<2&&(AT_Command_Status==COMMAND_WAIT))watch_dog_clear; timer_S_cnt=0; //while(timer_S_cnt<10)watch_dog_clear;} Send_AT_Command(SIM_ID); Send_AT_Command(AT_IPR); Send_AT_Command(REQUEST_MOD);//if(strsearch("TC35\x0d\x0a")==0){// Send_AT_Command(SMSS_ID);TC35_bit=0;// }//elseTC35_bit=1;timer_S_cnt=0;// while(timer_S_cnt<8)watch_dog_clear;}//======================================================================//================進(jìn)行SIM卡的電話本讀======================================================//======================================================================ucharPHONE_RD(){//read_tmp=0x30+i;要讀的電話號(hào)碼ucharj;Send_AT_Command(PHONE_READ);send_count=0;timer_S_cnt=0;//while(timer_S_cnt<1&&(AT_Command_Status==COMMAND_WAIT))watch_dog_clear;if(j=strsearch("+CPBR:")){//+CPBW:1,,129,"chia"j=j+9;do{ para_temp[TMP_BUF++]=uart_buff[j++]; if(uart_buff[j]=='"'){ //para_temp[t++]=';';para_temp[t++]=0x0d;para_temp[t++]=0x00; return(TMP_BUF); }}while(j<=24);}elseif(uart_buff[1]==0x0d&&uart_buff[0]==0x34){return(FALSE);}elsereturn(FALSE);}voidrdnumber(ucharu){//發(fā)短中文短信前設(shè)置。P0.2燈閃,同時(shí)蜂鳴器長叫一聲r(shí)ead_tmp=0x30+u;TMP_BUF=0;//讀電話本1PHONE_RD();para_temp[TMP_BUF++]=0x0d;para_temp[TMP_BUF++]=0x00;TMP_BUF=0;//將讀出的電話號(hào)碼轉(zhuǎn)存起來,做發(fā)送對(duì)方號(hào)碼do{ TEL_temp[TMP_BUF]=para_temp[TMP_BUF];TMP_BUF++;}while(TMP_BUF<=18);sms_tmp=smss_break;send_sms();}voidstart(void){ if(chinit==1) LED1=0;//初始化成功 elseLED2=0; if(chping==1) LED3=0;//SIM卡初始化成功 elseLED4=0;}/***********主程序***************/voidmain(void){ system_server=SYS_SMSR; LED1=1;LED2=1;LED3=1;LED4=1; Sys_Init(); Initialize_Model(); start(); while(1){if(system_server==SYS_SMSR){ //讀1-20條短信 Send_AT_Command(SIM_ID);Send_AT_Command(SMSS_ID); read_sms(); //timer_S_cnt=0;}if(system_server==SYS_ALARM){ sms_tmp=smss_para;system_server=SYS_SMSS;}elseif(system_server==SYS_TEL){ sms_tmp=smss_tel; system_server=SYS_SMSS;} elseif(system_server==SYS_NUMSAVE){ sms_tmp=smss_save; system_server=SYS_SMSS;} if(system_server==SYS_SMSS){//發(fā)送信息 system_server=SYS_SMSR; send_sms();}}}voidInt_Timer0(void)interrupt1using3{TH0=0xB8;TL0=0x00;//20ms的時(shí)鐘基準(zhǔn)//watch_dog_clear;************************************************timer_1S_cnt++;timer_tmp++;if(timer_1S_cnt==50){//20×50=1000MS=1Stimer_10S_cnt++;timer_1S_cnt=0;timer_S_cnt++;// LED=~LED;}//1秒=1000毫秒if(timer_10S_cnt==10){//10Stimer_10S_cnt=0; timercount++;}}/******************************************************************************TC35的命令列表,與中斷服務(wù)程序******************************************************************************/voidInt_Uart(void)interrupt4using3{//串口的中斷程序if(TI){//數(shù)據(jù)模式與命令方式共用 //LED2=0;TI=0;if(send_count>=MAX_TM-5)send_count=0;if((uart_buff[send_count]==0)){//應(yīng)該檢測(cè)命令結(jié)束代碼,檢測(cè)到時(shí)結(jié)束通信 at_send_bit=1;send_count=0xff;for(F=0;F<20;F++){ uart_buff[F]=0; } //清除接收緩沖區(qū)receive_count=0;return;}else{ if(uart_buff[send_count]<=0xB0)//0xff SBUF=uart_buff[send_count++];if((uart_buff[send_count]==0)){//應(yīng)該檢測(cè)命令結(jié)束代碼,檢測(cè)到時(shí)結(jié)束通信 at_send_bit=1;send_count=0xff;for(F=0;F<20;F++){ uart_buff[F]=0; } //清除接收緩沖區(qū)receive_count=0;return;}}receive_count=0;}if(RI){//命令方式//LED1=0; RI=0;if(at_send_bit==0)return;if((send_count==0xff)&&(receive_count<MAX_TM-5)){//沒有發(fā)送時(shí)才能進(jìn)行接收所有的命令返回都是處于0x0A[Result]0x0D之間,其他命令,不會(huì)出現(xiàn)這種情況uart_buff[receive_count++]=SBUF; }else{//ACC=SBUF;return;}if(receive_count>=MAX_TM-5){ if(AT_Command_Type==SMS_CMGR) receive_count=0;elseif(AT_Command_Type==SMONC_ID){ AT_Command_Status=COMMAND_OK;return; }else{ receive_count=0; AT_Command_Status=COMMAND_OK;return; } receive_count=0; }if((receive_count==2)&&(uart_buff[1]==0x0d))//沒有包含為其他信息的命令返回{ //接收到一個(gè)命令回應(yīng),可能為,0-OK1-CONNECT2-RING3-NOCARRIER4-ERROR //只返回OKuart_buff[receive_count]=0;if(uart_buff[0]=='0'){ AT_Command_Status=COMMAND_OK;//txd_rxd_bit=1;} if(uart_buff[0]=='2'){ AT_Command_Status=COMMAND_OK;//txd_rxd_bit=1; ES=1; //設(shè)置發(fā)送指針 receive_count=0; send_count=0xff; } elseif(uart_buff[0]=='4'||uart_buff[0]=='3'){ AT_Command_Status=COMMAND_ERROR; } elseAT_Command_Status=COMMAND_UNKNOW; txd_rxd_bit=1; uart_buff[receive_count]=0; return; }elseif((uart_buff[receive_count-1]==0x0d) &&(receive_count>=3) &&(uart_buff[receive_count-3]==0x0a) &&((uart_buff[receive_count-2]=='0'))){///可能是包含為其他信息的命令返回uart_buff[receive_count]=0;//RECEIVOKANSWER,withsomemessageAT_Command_Status=COMMAND_OK; txd_rxd_bit=1;}elseif((AT_Command_Type==SMS_CMGS||AT_Command_Type==AT_COMMAND)&&uart_buff[2]=='>'){ AT_Command_Status=COMMAND_OK; txd_rxd_bit=1;return;}}//Endofif(RI)}voidshow_time();//液晶顯示程序/***********1602液晶顯示部分子程序****************///PortDefinitions**********************************************************sbitLcdRs =P3^0;sbitLcdRw =P3^1;sbitLcdEn =P3^2;sfrDBPort =0x80; //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.數(shù)據(jù)端口//內(nèi)部等待函數(shù)*********unsignedcharLCD_Wait(void){ LcdRs=0; LcdRw=1; _nop_(); LcdEn=1; _nop_(); LcdEn=0; returnDBPort; }//向LCD寫入命令或數(shù)據(jù)*******#defineLCD_COMMAND 0//Command#defineLCD_DATA 1//Data#defineLCD_CLEAR_SCREEN 0x01//清屏#defineLCD_HOMING 0x02//光標(biāo)返回原點(diǎn)voidLCD_Write(bitstyle,unsignedcharinput){ LcdEn=0; LcdRs=style; LcdRw=0; _nop_(); DBPort=input; _nop_();//注意順序 LcdEn=1; _nop_();//注意順序 LcdEn=0; _nop_(); LCD_Wait(); }//設(shè)置顯示模式***********#defineLCD_SHOW 0x04//顯示開#defineLCD_HIDE 0x00//顯示關(guān) #defineLCD_CURSOR 0x02 //顯示光標(biāo)#defineLCD_NO_CURSOR 0x00//無光標(biāo) #defineLCD_FLASH 0x01//光標(biāo)閃動(dòng)#defineLCD_NO_FLASH 0x00//光標(biāo)不閃動(dòng)voidLCD_SetDisplay(unsignedcharDisplayMode){ LCD_Write(LCD_COMMAND,0x08|DisplayMode); }//設(shè)置輸入模式***********#defineLCD_AC_UP 0x02#defineLCD_AC_DOWN 0x00//default#defineLCD_MOVE 0x01//畫面可平移#defineLCD_NO_MOVE 0x00//defaultvoidLCD_SetInput(unsignedcharInputMode){ LCD_Write(LCD_COMMAND,0x04|InputMode);}/初始化LCD***********voidLCD_Initial() { LcdEn=0; LCD_Write(LCD_COMMAND,0x80);//8位數(shù)據(jù)端口,2行顯示,5*7點(diǎn)陣 LCD_Write(LCD_COMMAND,0x80); LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR);//開啟顯示,無光標(biāo) LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);//清屏 LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE);//AC遞增,畫面不動(dòng)}//液晶字符輸入的位置************************voidGotoXY(unsignedcharx,unsignedchary){ if(y==0) LCD_Write(LCD_COMMAND,0x80|x); if(y==1) LCD_Write(LCD_COMMAND,0x80|(x-0x40));}//將字符輸出到液晶顯示voidPrint(uchar*str){ while(*str!='\0') { LCD_Write(LCD_DATA,*str); str++; }}/***********1溫度傳感器部分子程序****************/#include"reg52.h"

#include"intrins.h"

#defineucharunsignedchar

#defineuintunsignedint

sbitds=P2^2;

sbitdula=P2^6;

sbitwela=P2^7;

ucharflag;

uinttemp;//參數(shù)temp一定要聲明為int型

ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,

0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//不帶小數(shù)點(diǎn)數(shù)字編碼ucharcodetable1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,

0x87,0xff,0xef};//帶小數(shù)點(diǎn)數(shù)字編碼/*延時(shí)函數(shù)*/

voidTempDelay(ucharus)

{

while(us--);

}voiddelay(uintcount)//延時(shí)子函數(shù)

{

uinti;

while(count)

{

i=200;

while(i>0)

i--;

count--;

}

}/*串口初始化,波特率9600,方式1*/

voidinit_com()

{

TMOD=0x20;//設(shè)置定時(shí)器1為模式2

TH1=0xfd;//裝初值設(shè)定波特率

TL1=0xfd;

TR1=1;//啟動(dòng)定時(shí)器

SM0=0;//串口通信模式設(shè)置

SM1=1;

//REN=1;//串口允許接收數(shù)據(jù)

PCON=0;//波特率不倍頻

//SMOD=0;//波特率不倍頻

//EA=1;//開總中斷

//ES=1;//開串行中斷

}/*數(shù)碼管的顯示*/

voiddisplay(uinttemp)

{

ucharbai,shi,ge;

bai=temp/100;

shi=temp%100/10;

ge=temp%100%10;dula=0;

P0=table[bai];//顯示百位

dula=1;//從0到1,有個(gè)上升沿,解除鎖存,顯示相應(yīng)段

dula=0;//從1到0再次鎖存

wela=0;P0=0xfe;

wela=1;

wela=0;

delay(1);

//延時(shí)約2msP0=table1[shi];//顯示十位

dula=1;

dula=0;

P0=0xfd;

wela=1;wela=0;

delay(1);P0=table[ge];//顯示個(gè)位

dula=1;

dula=0;

P0=0xfb;

wela=1;

wela=0;

delay(1);

}初始化:復(fù)位脈沖+存在脈沖具體操作:

總線控制器發(fā)出(TX)一個(gè)復(fù)位脈沖(一個(gè)最少保持480μs的低電平信號(hào)),然后釋放總線,

進(jìn)入接收狀態(tài)(RX)。單線總線由5K上拉電阻拉到高電平。探測(cè)到I/O引腳上的上升沿后

DS1820等待15~60μs,然后發(fā)出存在脈沖(一個(gè)60~240μs的低電平信號(hào))。具體看18b20單線復(fù)位脈沖時(shí)序和1-wirepresencedetect"的時(shí)序圖

*/

voidds_reset(void)

{

ds=1;

_nop_();//1us

ds=0;

TempDelay(80);//當(dāng)總線停留在低電平超過480us,總線上所以器件都將被復(fù)位,這里//延時(shí)約530us總

線停留在低電平超過480μs,總線上的所有器件都

//將被復(fù)位。

_nop_();

ds=1;//產(chǎn)生復(fù)位脈沖后,微處理器釋放總線,讓總線處于空閑狀態(tài),原因查//18b20中文資料TempDelay(5);//釋放總線后,以便從機(jī)18b20通過拉低總線來指示其是否在線,

//存在檢測(cè)高電平時(shí)間:15~60us,所以延時(shí)44us,進(jìn)行1-wirepresence//detect(單線存在檢測(cè))

_nop_();

_nop_();

_nop_();

if(ds==0)

flag=1;//detect18b20success

else

flag=0;//detect18b20fail

TempDelay(20);//存在檢測(cè)低電平時(shí)間:60~240us,所以延時(shí)約140us

_nop_();

_nop_();

ds=1;//再次拉高總線,讓總線處于空閑狀態(tài)

/**/

}/*

讀/寫時(shí)間隙:

DS1820的數(shù)據(jù)讀寫是通過時(shí)間隙處理

位和命令字來確認(rèn)信息交換。

*/

bitds_read_bit(void)

//讀一位

{

bitdat;

ds=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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論