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

正文內(nèi)容

基于gsm的遠程溫度控制監(jiān)測系統(tǒng)論文-閱讀頁

2025-07-12 17:36本頁面
  

【正文】 Y 圖47 程序主流程圖 調(diào)試結果經(jīng)過上兩章的軟硬件設計,此次畢設的作品基本功能已基本實現(xiàn),但是由于系統(tǒng)的復雜性,設計中還有許多問題需要調(diào)試,下面就硬件調(diào)試和軟件調(diào)試進行講解。本次設計中硬件部分PCB板為熱轉(zhuǎn)印覆銅板手工制作,由于工藝原因,PCB板需要經(jīng)過大量調(diào)試。在經(jīng)過仔細的的測量、檢查,發(fā)現(xiàn)幾處斷線,需要用導線將斷線處焊接好。(3)接入所需的9V電源,用萬用表測試電源芯片輸出的5V電壓,確認電壓是否正常。(4)將各部分芯片插入芯片座,用萬用表檢測各芯片的供電電壓是否正常。用示波器檢測晶振輸出的時鐘是否正常,用萬用表檢測復位腳電平是否為低電平。在調(diào)試中遇到了很多問題,但經(jīng)過仔細的檢測與調(diào)試,最后將問題都一一解決。整個設計功能的實現(xiàn)都需要軟件的實現(xiàn),沒有軟件的硬件沒有用處。軟件程序設計用的是C語言,C語言是一種介于高級語言與低級語言之間的一種編程語言。 軟件的調(diào)試一般采用的方法是分模塊調(diào)試,所謂的分模塊調(diào)試就是根據(jù)所需要的功能模塊分步調(diào)試,先確定各個模塊的功能正常,最后才將所有模塊整合成整個設計。在調(diào)試的過程中經(jīng)常遇到讀取的溫度為0XFF,在經(jīng)過閱讀芯片的手冊后,發(fā)現(xiàn)此問題可能是對溫度傳感器的讀時序有問題。最后在整合程序時,又遇到溫度傳感器讀取的溫度數(shù)據(jù)時好時壞,在經(jīng)過認真的分析過后發(fā)現(xiàn)出現(xiàn)問題的原因還是出在溫度傳感器嚴格是時序要求上,因為,在讀取溫度數(shù)據(jù)的同時,在程序中有一個1ms的定時器中斷,這就造成讀時序的錯誤,所以會造成溫度數(shù)據(jù)出現(xiàn)錯誤。在經(jīng)過仔細的分析后,發(fā)現(xiàn)是因為在LCD12864的初始化程序出錯,原因是給其復位的時間太短。在調(diào)試的過程中,為了簡化問題,快速確定問題所在。首先利用電腦的USB轉(zhuǎn)串口與GSM模塊連接,利用串口調(diào)試助手發(fā)送標準的AT指令,以確定GSM模塊短信功能的正常。最后將單片機與GSM模塊連接,確定整個程序的功能正常。研究溫度監(jiān)測的方法就必然十分重要,傳統(tǒng)的溫度采集方法存在很多不足的地方。該控制系統(tǒng)的總體過程:首先由溫度采集模塊18B20溫度傳感器采集溫度發(fā)送到單片機上,再通過按鍵來設置溫度上下限和短信報警號碼,采用GSM模塊TC35i將溫度數(shù)據(jù)發(fā)送到終端手機上,若是溫度低于或者高于設置溫度,就會發(fā)送短信到設置的手機進行報警。設計的思路來自于一篇《基于GSM的遠程溫度控制系統(tǒng)》的文摘,當時看到這篇文章很是受啟發(fā),覺得這樣的設計很有意義,所以在這次畢設就選擇了這個課題。尤其在軟件的設計中,更需要以前的C語言、ARM、單片機等語言基礎。對于本設計還有很多可以完善的地方,可以從以下幾個方面來完善:(1) 本設計可以采用多個DS18B20并聯(lián)在唯一的三線上,實現(xiàn)多點監(jiān)測;(2) 本設計應用和擴展的空間很大。邊春元等 編著. 人民郵電出版社. 2005 【2】單片微型計算機原理及應用王晉海,劉光昌,計算機工程與設計,2003【4】基于手機模塊TC35的單片機短消息收發(fā)系統(tǒng)王為青,程國鋼,北京人民郵電出版社,2007【6】基于模塊DC18S20溫度傳感器的數(shù)字溫度計,張越,張炎,趙延軍,2007【7】51單片機工程應用實例劉昌珍,無錫商業(yè)職業(yè)技術學院出版社,2008【9】基于GSM技術家居安防系統(tǒng)設計 喬渠,趙國豪,魏葆華,電子工程師,2006【10】基于TC35的GSM報警器的設計與實現(xiàn)許海波,廖傳書,安防科技,2007【12】基于GSM網(wǎng)絡的智能監(jiān)控模塊張延波,王繼祥,機械與電子,2006【14】基于GSM遠程溫度環(huán)境監(jiān)控系統(tǒng)的設計和實現(xiàn)程爭,國防工業(yè)出版社,2010【16】莫雷(Mouly,M),帕特(Pautet,.).GSM :2024致 謝在這次畢業(yè)設計的過程中,首先我要感謝我的指導老師于萬霞,在本論文的課題選擇、進程的安排以及設計的思路方面給了我很寶貴的意見和幫助。借此機會,我向于老師致以最誠摯的祝福和真心地謝意。他耐心的給我講解,調(diào)試、仿真,認真求學的學習態(tài)度感染了我。在此一并向他們表示誠摯的謝意,感謝生命中幫助我的任何一個人。最后,感謝國家對我的培養(yǎng),感謝黨對我的教誨,感謝母校對我的教育。 sbit LED2 = P2^4。 sbit LED4 = P2^6。 sbit BEEP = P2^0。 //加熱繼電器sbit JDQ1 = P0^7。extern bit GSMState 。uchar KeyVal = 0。bit SSFlag = 0。uchar SSwei = 1。int TopTemp = 0。uchar T1Temp = 22。uchar PhoneNum[11] = {1,3,8,2,1,2,1,5,6,0,3}。void ShanShuo()。 TH0 = (65536 1000) / 256。 ET0 = 1。 TR0 = 1。 static uint SecNum = 0。 TH0 = (65536 1000) / 256。 KeyNum++。 if(KeyNum = 20) { KeyNum = 0。 } if(SecNum=1000) { SecNum = 0。 SecFlag = 1。 if(SSNum = 300) { SSNum = 0。 } } } void Uart_Init(){ SCON = 0x50。 /* TMOD: timer 1, mode 2, 8bit reload */ TH1 = 0xFD。 /* TR1: timer 1 run */ EA = 1。 /*打開串口中斷*/}void ShanShuo(){ static bit flag = 0。breakcase2:SendData(0x8a,CMD)。break。break。SendData(PhoneNum[2]+0x30,DAT)。 case 5:SendData(0x8c,CMD)。case6:SendData(0x8c,CMD)。break。break。SendData(PhoneNum[6]+0x30,DAT)。 case 9:SendData(0x8e,CMD)。case10:SendData(0x8e,CMD)。break。 } if(flag == 1) { SendData(PhoneNum[SSwei 1]+0x30,DAT)。 39。 } flag = ~flag。 uchar tmp。0x7C)!=0x7c)KeyState = 1。 case 1:if((P3amp。break。0x7c) 2。break。break。break。break。break。 } KeyState = 3。 case 3: if((P3amp。 KeyValTmp = 0。 } break。 for(x = z。x ) { Delay5Ms()。 Delay_n5ms(4)。 Delay_n5ms(4)。 Delay_n5ms(4)。 Delay_n5ms(4)。 Delay_n5ms(4)。 Delay_n5ms(4)。 Delay_n5ms(4)。// Delay_n5ms(20)。LED2=1。LED4=1。JDQ0=1。BEEP=1。 uchar CookStateTmp = 0。 if(SecFlag) { SecFlag = 0。 temp=ReadTemperature(0)。 SendData((TopTemp / 10)+0x30,DAT)。 SendData(WD[0],DAT)。 SendData(0X9D,CMD)。 BotTemp=temp 4。 SendData((BotTemp % 10)+0x30,DAT)。 SendData(WD[1],DAT)。 }void SetTempThreshold(){ bit flag = 1。 uchar WD[2] = ℃。 //顯示清屏 Delay5Ms()。 DisplayHZ(2,1,T1上限:,5)。 SendData(0X95,CMD)。 SendData((T1Temp % 10)+0x30,DAT)。 SendData(WD[1],DAT)。 SendData((T2Temp / 10)+0x30,DAT)。 SendData(WD[0],DAT)。 SendData(0X95,CMD)。 while(flag) { if(KeyVal == 2) { KeyVal = 0。 SendData(0X8D,CMD)。 } else { SetFlag = 0。 SendData(0X0f,CMD)。amp。 T1Temp ++。 SendData(0X95,CMD)。 SendData((T1Temp % 10)+0x30,DAT)。 SendData(0X0f,CMD)。amp。 T2Temp ++。 SendData(0X8D,CMD)。 SendData((T2Temp % 10)+0x30,DAT)。 SendData(0X0f,CMD)。amp。 T1Temp 。 SendData(0X95,CMD)。 SendData((T1Temp % 10)+0x30,DAT)。 SendData(0X0f,CMD)。amp。 T2Temp 。 SendData(0X8D,CMD)。 SendData((T2Temp % 10)+0x30,DAT)。 SendData(0X0f,CMD)。 SendData(0x01,CMD)。 DisplayHZ(1,0,全智能溫度控制器,8)。 DisplayHZ(4,2,溫度2:,3)。 } }}static void HoldDisplay(){ switch(SSwei) { case 1:SendData(0x8a,CMD)。 case 2:SendData(0x8a,CMD)。break。break。SendData(PhoneNum[2]+0x30,DAT)。 case 5:SendData(0x8c,CMD)。 case 6:SendData(0x8c,CMD)。break。break。SendData(PhoneNum[6]+0x30,DAT)。 case 9:SendData(0x8e,CMD)。 case 10:SendData(0x8e,CMD)。break。break。 } SendData(PhoneNum[SSwei 1]+0x30,DAT)。 uchar i = 0。 //顯示清屏 Delay5Ms()。 DisplayHZ(3,0,TEL:,2)。 //顯示清屏 for(i = 0。i ++) { SendData(PhoneNum[i]+0x30,DAT)。 while(flag) { if(KeyVal == 2) { EA = 0。 HoldDisplay()。 if(SSwei 11)SSwei = 1。 } if(KeyVal == 4) { KeyVal = 0。 if(PhoneNum[SSwei1] 9) { PhoneNum[SSwei1] = 0。 PhoneNum[SSwei1]。 } } if(KeyVal == 3) { KeyVal = 0。 SendData(0x01,CMD)。 DisplayHZ(1,0,全智能溫度控制器,8)。 DisplayHZ(4,2,溫度2:,3)。 SSFlag = 0。 } }}void main(){ uchar StateVal = 0。 bit AlarmFlag = 0。 Lcd_Init()。 Uart_Init()。 DisplayHZ(3,0,全智能溫度控制器,8)。 SendData(0X98,CMD)。 ReadTemperature(1)。 SendData(0x01,CMD)。 DisplayHZ(1,0,全智能溫度控制器,8)。 DisplayHZ(4,2,溫度2:,3)。 LED1 = 0。 while(1) { MainMenu()。 SetTempThreshold
點擊復制文檔內(nèi)容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1