freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于gsm遠(yuǎn)程溫度監(jiān)測系統(tǒng)-資料下載頁

2025-08-24 13:02本頁面

【導(dǎo)讀】路板上,它可以發(fā)送短消息,通話等等,模塊雖小,但它具備了很多手機(jī)的功能,擁有它等于就是擁有了手機(jī)的核心部分了,它在很多領(lǐng)域中都有著廣泛的應(yīng)用,GSM模塊是通過AT指令控制的。本項目是關(guān)于GSM模塊的遠(yuǎn)程溫控的設(shè)計,其功能。該系統(tǒng)主要由GSM模塊TC35i、STC89C51單片機(jī)、DSl8B20. 溫度傳感器等構(gòu)成。集到周圍的溫度。其次實現(xiàn)單片機(jī)與GSM模塊的通信,手機(jī)發(fā)送短信給GSM模塊的。SIM卡,GSM模塊接收信息后收集單片機(jī)上當(dāng)時的溫度,并把該溫度發(fā)給手機(jī)。

  

【正文】 *****************************/ void read_message(void) {uchar i。 Delay_ms(1000)。 for(i=0。i3。i++) {numberbuf[i]=SystemBuf[14+i]。} for(i=0。i8。i++) {AT_Read[i]=AT_CMGR[i]。} for(i=8。i11。i++) {AT_Read[i]=numberbuf[i8]。} for(Rx=0。RxRxIn。Rx++) {SystemBuf[Rx]=0x00。} Rx=0。 sendstring(AT_Read)。 }//發(fā)送 AT+CMGR=?,?代表短信儲存所在位置 /********************************************************************/ 函數(shù) void readmend(void)。實現(xiàn)功能 :讀取短信內(nèi)容 ,判斷相應(yīng)指令 是否正確 /********************************************************************/ void readmend(void) {uchar i。 for(i=0。i5。i++)//將短信內(nèi)容中的指令部分截取出來放到 {//CommandBuf 數(shù)組中 CommandBuf[i]=SystemBuf[64+i]。} if((CommandBuf[0]==39。o39。)amp。amp。(CommandBuf[1]==39。p39。)amp。amp。(CommandBuf[2]==39。e39。)amp。amp。(CommandBuf[3]==39。n39。)) //判斷指令是否為開繼電器指令 {switch(CommandBuf[4]) {case 0x31: realy0=0。 //繼電器 1 開啟 break。 case 0x32: realy1=0。 //繼電器 2 開啟 break。 case 0x33: realy2=0。 //繼電器 3 開啟 break。 case 0x34: realy3=0。 //繼電器 4 開啟 break。 case 0x35: realy4=0。 //繼電器 5 開啟 break。 case 0x36: realy5=0。 //繼電器 6 開啟 break。 case 0x37: realy6=0。 //繼電器 7 開啟 break。 case 0x38: realy7=0。 //繼電器 8 開啟 break。 case 0x41: key1=0。 //開關(guān) 1 開啟 break。 case 0x42: key2=0。 //開關(guān) 2 開啟 break。 case 0x43: key3=0。 //開關(guān) 3 開啟 break。 case 0x44: key4=0。 //開關(guān) 4 開啟 break。 case 0x45: key5=0。 //開關(guān) 5 開啟 break。 case 0x46: key6=0。 //開關(guān) 6 開啟 break。 case 0x47: key7=0。 //開關(guān) 7 開啟 break。 case 0x48: key8=0。 //開關(guān) 8 開啟 break。 case 0x4f: P0=0。P2=0。 break。 case 0x3f: temp1=P0。 temp2=P2。 temp=temp2。 temp=8。 temp=temp|temp1。 check=1。 break。 default:flag=1。 //其他指令定義為錯誤操作 break。 }} //置位錯誤操作位為 1 else {if((CommandBuf[0]==39。s39。)amp。amp。(CommandBuf[1]==39。h39。)amp。amp。(CommandBuf[2]==39。u39。)amp。amp。(CommandBuf[3]==39。t39。)) //判斷指令是否為關(guān)閉電器指令 {switch(CommandBuf[4]) {case 0x31: realy0=1。 //關(guān)閉繼電器 1 break。 case 0x32: realy1=1。 //關(guān)閉繼電器 2 break。 case 0x33: realy2=1。 //關(guān)閉繼電器 3 break。 case 0x34: realy3=1。 //關(guān)閉繼電器 4 break。 case 0x35: realy4=1。 //關(guān)閉繼電器 5 break。 case 0x36: realy5=1。 //關(guān)閉繼電器 6 break。 case 0x37: realy6=1。 //關(guān)閉繼電器 7 break。 case 0x38: realy7=1。 //關(guān)閉繼電器 8 break。 case 0x41: key1=1。 //開關(guān) 1 關(guān)閉 break。 case 0x42: key2=1。 //開關(guān) 2 關(guān)閉 break。 case 0x43: key3=1。 //開關(guān) 3 關(guān)閉 break。 case 0x44: key4=1。 //開關(guān) 4 關(guān)閉 break。 case 0x45: key5=1。 //開關(guān) 5 關(guān)閉 break。 case 0x46: key6=1。 //開關(guān) 6 關(guān)閉 break。 case 0x47: key7=1。 //開關(guān) 7 關(guān)閉 break。 case 0x48: key8=1。 //開關(guān) 8 關(guān)閉 break。 case 0x53:P0=0xff。P2=0xff。 break。 default:flag=1。 //其他指令定義為錯誤操作 break。 }} //置位錯誤操作位為 1 else {flag=1。}}}//如果發(fā)送的指令既不是 open 也不是 shut 就定義為錯誤操作 /********************************************************************/ 函數(shù) void readstate。實現(xiàn)功能 :將 P0,P2 口的狀態(tài)轉(zhuǎn)化為數(shù)組 /********************************************************************/ void readstate(void) { uint bitt,i,j。 for(bitt=0,i=0。bitt16,i16。bitt++,i++) {if((tempbitt)amp。0x8000){state1[i]=0x30。} else state1[i]=0x31。} for(j=15,i=0。j=0,i16。j,i++) {state[j]=state1[i]。}} /********************************************************************/ 函數(shù) void delete_message。實現(xiàn)功能 :刪除讀短信指令 /********************************************************************/ void delete_message(void) { uchar i。 Delay_ms(1000)。 Delay_ms(1000)。 Delay_ms(5000)。 for(i=0。i8。i++) {AT_delete[i]=AT_CMGD[i]。} for(i=8。i11。i++) {AT_delete[i]=numberbuf[i8]。} for(Rx=0。RxRxIn。Rx++) {SystemBuf[Rx]=0x00。} Rx=0。 sendstring(AT_delete)。 }//發(fā)送 AT+CMGR=?,?代表短信儲存所在位置 /********************************************************************/ 函數(shù) void sendmessage(void)。實現(xiàn)功能 :發(fā)送回復(fù)短信指令 /********************************************************************/ void sendmessage(void) { uchar i。 for(i=0。i8。i++) {AT_SendNumber[i]=AT_CMGS[i]。} for(i=8。i24。i++) {AT_SendNumber[i]=SystemBuf[14+i]。 //將對方號碼提取用來回復(fù)給對方 } sendstring(AT_SendNumber)。 Delay_ms(400)。 if(flag==0){ if(check==1){sendstring(state)。} //如果查詢位置 1 時 ,發(fā)送狀態(tài)信息 sendstring(s)。 check=0。} else{sendstring(fail)。} Delay_ms(30)。 sendchar(0X1A)。} /********************************************************************/ 函數(shù) void main()。實現(xiàn)功能 :主函數(shù) /********************************************************************/ void main() {Start_GSM()。 //開啟 TC35 Delay_ms(10000)。 //延時大約 10 秒 ,等待模塊聯(lián)網(wǎng) / UART_init()。 //串口初始化 / GSM_INIT()。 //對 tc35i 模塊進(jìn)行初始化 ow_reset()。 //開機(jī)先轉(zhuǎn)換一次 write_byte(0xcc)。 //Skip ROM write_byte(0x44)。 //發(fā)轉(zhuǎn)換命令 while(1) {work_temp(read_temp())。 //處理溫度數(shù)據(jù) receive_ready()。 if(receiveready==1) {read_message()。 receiveready=0。 sendready=1。} Delay_ms(300)。 message_read()。 if(send==1) { Delay_ms(2020)。 readmend()。 readstate()。 sendmessage()。 Delay_ms(1000)。 delete_message()。 flag=0。 for(Rx=0。RxRxIn。Rx++)//每一次操作完成后對接收數(shù)組清零 // {SystemBuf[Rx]=0x00。} Rx=0。 send=0。}}} 附錄 C(電路實物圖
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1