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

正文內容

基于gsm短信模塊的防盜報警監(jiān)控系統(tǒng)終端軟件設計(論文)-資料下載頁

2025-07-01 20:28本頁面

【導讀】基于GSM短信模塊的防盜報警監(jiān)控系統(tǒng)——終端軟件設計。畢業(yè)設計(論文)專用紙

  

【正文】 /將 DEBUG_DATA 寫入 EEPROM } } void read_number(char p[]) { char i=0。 INT8U read_eeprom=0。//uchar read_eeprom INT16U eeprom_address=0。//uint eeprom_address eeprom_address = DATA_FLASH_START_ADDRESS。 for(i=0。i15。i++) { read_eeprom = Byte_Read(eeprom_address+i)。 p[i]=read_eeprom。 //實驗證明可以不 用延時 //TimeDelay(5)。 } } 畢業(yè)設計(論文)專用紙 第 頁 28 短消息報警程序設計 短信報警及檢測程序 短信報警程序是來完成報警功能的,首先判斷是否有警情,若有則發(fā)送報警短信到指定手機,若發(fā)送成功,則退出子程序,若無警情,直接退出子程序。 短信報警程序流程圖如圖 42所示。 程序如下: if(system_cast==3) //監(jiān)測報警狀態(tài) { EX0=1。 //允許外部中斷 0 中 斷 system_cast=0。 } if(a==2amp。amp。c==3) { for(i=2。i13。i++) { phone[i2]=phone_number[i]。 } UART1_SendStr(AT\r)。 //AT 指令測試 TimeDelay(100)。 TimeDelay(500)。 TimeDelay(500)。 UART1_SendStr(AT\r)。 TimeDelay(100)。 TimeDelay(500)。 TimeDelay(500)。 UART1_SendStr(AT\r)。 TimeDelay(100)。 畢業(yè)設計(論文)專用紙 第 頁 29 TimeDelay(500)。 TimeDelay(500)。 UART1_SendStr(AT+CSCA=+8613800871500\r)。 //短信中心號碼 TimeDelay(100)。 TimeDelay(500)。 TimeDelay(500)。 UART1_SendStr(AT+CMGF=1\r)。 // 短信 TEXT 模式 TimeDelay(100)。 TimeDelay(500)。 TimeDelay(500)。 UART1_SendStr(AT+CMGS=)。 //發(fā)送短信命令 UART1_SendStr(phone)。 //報警電話號碼 UART1_SendStr(\r)。 //命令結束 TimeDelay(100)。 TimeDelay(500)。 TimeDelay(500)。 UART1_SendStr(error!)。 //發(fā)送短信 error! TimeDelay(50)。 UART1_SendStr(\x01a)。 TimeDelay(500)。 TimeDelay(500)。 TimeDelay(500)。 a=0。 c=0。 PutString(30,30,error!)。 //液晶顯示 error! } } 畢業(yè)設計(論文)專用紙 第 頁 30 圖 42 短信報警程序流程圖 GSM 常用 AT 指令 本 系統(tǒng)軟件的核心部分是單片機與 GSM摸塊的通信,技術難點是 AT命令的 設置和使用。 AT命令是調制解調器的控制指令 ,無線信道的建立、數據傳輸等操作都是通過它來完成的。 單片機與 GSM 模塊( TC35)的軟件接口其實就是單片機通過發(fā)送 對應正確 的 AT指令對 GSM 模塊進行操作的技術。如設置短信息的編碼方式、讀取手機的 電話本 、 發(fā)送 短信息、 電話掛機、撥打 手機等。執(zhí)行 1 條指令,并非某些資料介紹的那么簡單,事實上,指令的執(zhí)行過程需要單片機與手機交互應答完成,每一次發(fā)送或接收的字節(jié)數都有嚴格的規(guī)定,二者必須依據這些規(guī)定實現數據交換,否則,就會出現通信失敗。因此,做好單片機與 GSM 模塊 通信,了解 AT 指令執(zhí)行過程 就很重要。圖 43 為相關 AT 指令詳解,圖 44 列出 AT 指令執(zhí)行過程。需要重點說明的是,所有 AT 指令的指令符號、常數、 PDU 數據包等都是以 ASCII 編碼形式傳送的。 報警短信處理并發(fā)送 N 有警情? 成功? Y N 退出子程序 system_cast=3 檢測狀態(tài) 畢業(yè)設計(論文)專用紙 第 頁 31 圖 43 相關 AT 命令 圖 44 AT 指令執(zhí)行過程 畢業(yè)設計(論文)專用紙 第 頁 32 單片機發(fā)送 AT 指令的程序: UART1_SendStr(AT\r)。 /* AT 指令測試 */ UART1_SendStr(AT+CSCA=+8613800871500\r)。 /* 查詢短信中心 */ UART1_SendStr(phone)。 /*報警電話號碼 */ UART1_SendStr(AT+CMGF=1\r)。 /* 短信 TEXT 模式 */ //UART1_SendStr(AT+CMGF=0\r)。 /* 短信 PDU 模式 */ UART1_SendStr(AT+CMGS=)。 /* 發(fā)送短信命令 */ UART1_SendStr(\r)。 /* 命令結束 */ UART1_SendStr(error!)。 /* 發(fā)送短信 error! */ 在大多數基于 GSM/GPRS的數 據 傳 輸 應用中,是將 MCU與無線模塊相連,二者依托串口通信(需電平轉換),程控 MCU以一定的協(xié)議對模塊發(fā)送 AT指令、接收模塊執(zhí)行指令后的返回值,并執(zhí)行相應校驗。 MCU串口實質上是以位為單位完成收發(fā), 由協(xié)議預定義的起始位 、校驗位、停止位決定數據幀的封裝格式。字符格式的 AT指令需按照 ASCII編碼轉化為二進制數后才可存儲在 MCU的 ROM中,進而通過串口收發(fā),但 AT指令及其返回字符串中混有不可打印字符,如 AT指令通常的控制字符 CR、短信發(fā)送的指令符 Ctrl+Z,所有的 AT指令返回值并非以可打印字符起 始, 需要很好的了解 AT指令的具體格式。只有知道了它的具體格式,同時掌握 GSM摸塊 返回值的格式,才能完成 MCU與 GSM摸塊的通信 , 上述問題是用 MCU控制無線模塊的關鍵,透徹解決它們的第一步是準確掌握 AT指令的格式。 在系統(tǒng)設計過程中可利用超級終端 ,串口檢測軟件對串口進行檢測,確定 AT指令的具體格式。 在本系統(tǒng)中,單片機通過串口 1向 GSM 模塊發(fā)送相應的 AT 命令來實現短消息的發(fā)送和接收。下面是短信模式設置程序: /* 設置短信模式 */ void set_sms_mode(INT8U mode) { /* PDU 模式 */ if (mode == SMS_PDU_MODE) 畢業(yè)設計(論文)專用紙 第 頁 33 { b_smsMode = FALSE。 ifdef UART_H put_send_data(SMS_PDU_MODE_CMD,strlen(SMS_PDU_MODE_CMD))。 put_send_data(\r\n,strlen(\r\n))。 endif } /* TEXT 模式 */ else { b_smsMode = TRUE。 ifdef UART_H put_send_data(SMS_TEXT_MODE_CMD,strlen(SMS_TEXT_MODE_CMD))。 put_send_data(\r\n,strlen(\r\n))。 endif } } GSM 模塊的短信模式有兩種。第一種是: TEXT 模式;第二種是 PDU 模式。 PDU模式可以采用 unicode 編碼發(fā)送英文、漢字。但合成 PDU 碼比較復雜,而 TEXT 模式只能發(fā)送英文。 以 TEXT 模式發(fā)送短信程序: void send_sms_text_mode(void) { 畢業(yè)設計(論文)專用紙 第 頁 34 ifdef UART_H ifdef CMD_H INT8U i。 sms_init(FALSE)。 /* 如果還未初始化則初始化 */ /*發(fā)送短信命令 */ put_send_data(SMS_SEND_CMD,strlen(SMS_SEND_CMD))。 /* 發(fā)送短信命令頭 */ put_send_data(\,1)。 /* 發(fā)送雙引號 */ put_send_data(SMS_NUMBER,strlen(SMS_NUMBER))。 /* 發(fā)送號碼 */ put_send_data(\\r\n,3)。 /* 發(fā)送雙引號和結束符 */ /* 進行延時 */ delay_int(200)。 /*發(fā)送短信內容 */ put_send_data(SMS_CONTENT,strlen(SMS_CONTENT))。 /* 發(fā)送短信內容 */ i = CTRL_Z。 /* 發(fā)送結束符 CTRL+Z */ put_send_data(amp。i,1 )。 endif endif } AT+CMGS=da[,toda]CR該命令是用來發(fā)送基于 TEXT格式的短消息在該命令中, da為字符串形式的目的地址, 指摘收短消息的手機號碼,它的類型由 toda來確定。 toda為地址類型識別號,當 da的第一個是 “ +” 時, toda的值為整數值“ 145” ,否則 toda的整數值為 “ 129” .該條令在輸入完前面的參數后,以回車符號結束,接下來輸入短消息的內容,并以字符 “ CTRL+Z” 結束,該字符的 ASCII 碼值為“ 26” 。如果取消發(fā)送,則以字符 “ ESC” 結束。 畢業(yè)設計(論文)專用紙 第 頁 35 IIC 鍵盤驅動程序 IIC 鍵盤的控制芯片為 CH452, CH452 的鍵盤掃描功能支持 8 8 矩陣的 64 鍵鍵盤。在鍵盤掃描期間, DIG7~ DIG0 引腳用于列掃描輸出, SEG7~ SEG0 引腳都帶有內部下拉電阻,用于行掃描輸入。當啟用鍵盤掃描功能后, 4 線串行接口中的 DOUT 引腳的功能由串行接口的數據輸出變?yōu)殒I盤中斷輸出以及按鍵數據輸出。 鍵盤驅動程序如下: void CH452_Write(unsigned short cmd) //寫命令 { CH452_I2c_Start()。 /*啟動總線 */ ifdef ENABLE_2_CH452 // 若有兩個 CH452 并連 CH452_I2c_WrByte((unsigned char)(cmd7)amp。CH452_I2C_MASK|CH452_I2C_ADDR0)。 // CH452 的 ADDR=0 時 else CH452_I2c_WrByte((unsigned char)(cmd7)amp。CH452_I2C_MASK|CH452_I2C_ADDR1)。 //CH452 的 ADDR=1 時 (默認 ) endif CH452_I2c_WrByte((unsigned char)cmd)。 /*發(fā)送數據 */ CH452_I2c_Stop()。 /*結束總線 */ } unsigned char CH452_Read(void) //讀取按鍵 { unsigned char keycode。 CH452_I2c_Start()。 /*啟動總線 */ CH452_I2c_WrByte((unsignedchar)(CH452_GET_KEY7)amp。CH452_I2C_MASK|0x01|CH452_I2C_ADDR1)。 // 若 有兩個 CH452 并連 ,當 ADDR=0 時 ,需修改為CH452_I2C_ADDR0 keycode=CH452_I2c_RdByte()。 /*讀取數據 */ 畢業(yè)設計(論文)專用紙 第 頁
點擊復制文檔內容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1