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

正文內(nèi)容

基于51單片機的溫度數(shù)據(jù)采集傳輸系統(tǒng)的設(shè)計(參考版)

2025-07-01 00:17本頁面
  

【正文】 參考文獻(xiàn)[1] [M].北京:中國石油大學(xué),1990.[2] 李曉荃. 單片機原理與應(yīng)用[M]. 北京:電子工業(yè)出版社,2022.[3] 劉和平. 單片機原理及應(yīng)用[M].重慶:重慶大學(xué)出版社,2022 .[4] C51 應(yīng)用程序設(shè)計[M]. 北京:電子工業(yè)出版社,2022.[5] (第二版) [M].武漢:華中科技大學(xué)出版社,2022. [6] 江國強. :電子工業(yè)出版社,2022 .[7] 99SE 電路設(shè)計技術(shù)入門與應(yīng)用 (第一版).北京:電子工業(yè)出版社,2022 .[8] (第五版)[M] .北京:國防工業(yè)出版社,2022。在這里非常感謝老師的指導(dǎo)和幫助,并致以誠摯的謝意!同時,身邊的同學(xué)給了我許多的幫助。幫助解決畢業(yè)設(shè)計中遇到的許多問題。致 謝在本次畢業(yè)設(shè)計中,我得到了韓 亞 軍 老師的熱心指導(dǎo)。通過做本課題,我了解并掌握了傳感器的基本理論知識,更深入的掌握單片機的開發(fā)應(yīng)用和 PC 編程控制。我在這個過程中深刻的感受到了做畢業(yè)設(shè)計的意義所在,和我一樣真正投入了身心去做的人也一定會有同樣的感觸。經(jīng)過四年學(xué)習(xí)的積累,在已經(jīng)掌握相關(guān)專業(yè)方面知識及其它各方面知識的情況下,我認(rèn)真嚴(yán)肅的完成了我的畢業(yè)設(shè)計。在畫原理圖、PCB 布線、安裝和調(diào)試過程中不可避免地遇到各種問題,這要求保持沉著冷靜,聯(lián)系書本理論知識積極地思考,實在解決不了可以請教同學(xué)或指導(dǎo)老師。從整體來說這是一個復(fù)雜的過程,要細(xì)心謹(jǐn)慎,沉著冷靜,反復(fù)檢查,直到找到原因為止。第 5 章 結(jié) 論通過本次溫度監(jiān)控系統(tǒng)的設(shè)計,我大有收獲,在制作過程中,一定要注意的每個工作步驟的檢查,確保制作成功。在本通信協(xié)議中,不會出現(xiàn)某信號幀已到達(dá)但PC或PIC16F877A單片機還未開始準(zhǔn)備接收的現(xiàn)象。如:按每幀傳送32個字節(jié)計算的話,其發(fā)送和接收的效率為為忽略PC 和PIC16F877A單片機的處理時間計算。 通信速度分析如果在不考慮錯誤發(fā)生的情況下,PC 機每發(fā)送一幀數(shù)據(jù)時需要附加12 個字節(jié),其中8 個字節(jié)用于發(fā)送4 個字節(jié)用于應(yīng)答PC 機。本通信所用協(xié)議具有糾錯功能,這體現(xiàn)在當(dāng)PC 發(fā)送或接收數(shù)據(jù)時,當(dāng)所接收的應(yīng)答信號出現(xiàn)失誤時,將重新發(fā)送或接收此幀數(shù)據(jù),直至接收到了正確的應(yīng)答,具體在程序中最多允許連續(xù)出錯三次,超過后則放棄通信。(2)校驗字將整幀信號進行異或校驗則使誤收的可能很小。這個可能性在1/256, 通過停止位的判斷可將這個可能性再降低1/256。}rxend: asm(clrwdt)。i++){rxbuf[i]=RXPC()。}for(i=0。if(RC7==0) break。delay0。if(RC7==0) break。i0。i++) rxbuf[i]=0。}void RXDATAS(){//開始接收數(shù)據(jù) for(i=0。s_uart_buf++)asm(nop)。//receive stop bitfor(s_uart_buf=0。s_uart_buf35。if(RC7)rx_lo_buf=rx_lo_buf|0x80。s_uart_buf35。if(RC7)rx_lo_buf=rx_lo_buf|0x40。s_uart_buf35。if(RC7)rx_lo_buf=rx_lo_buf|0x20。s_uart_buf35。if(RC7)rx_lo_buf=rx_lo_buf|0x10。s_uart_buf35。if(RC7)rx_lo_buf=rx_lo_buf|0x08。s_uart_buf35。if(RC7)rx_lo_buf=rx_lo_buf|0x04。s_uart_buf35。if(RC7)rx_lo_buf=rx_lo_buf|0x02。s_uart_buf35。if(RC7)rx_lo_buf=rx_lo_buf|0x01。s_uart_buf17。s_uart_buf++)continue。}//receive start bitfor(s_uart_buf=0。}//*************************************************unsigned char RXPC(void)//9600b/s{rx_lo_buf=0。s_uart_buf45。RC6=1。s_uart_buf35。else RC6=0。if(byteamp。s_uart_buf35。else RC6=0。if(byteamp。s_uart_buf35。else RC6=0。if(byteamp。s_uart_buf35。else RC6=0。if(byteamp。s_uart_buf35。else RC6=0。if(byteamp。s_uart_buf35。else RC6=0。if(byteamp。s_uart_buf35。else RC6=0。if(byteamp。s_uart_buf35。else RC6=0。if(byteamp。s_uart_buf46。//*************************void TXPC(unsigned char byte)//9600b/s{RC6 = 0。unsigned char rx_lo_buf。extern unsigned int delay。}include //*************************unsigned char txbuf[5]。delay0。RD1=0。(temp=temph)) { a=0。}else if((temp=templ)amp。} else if(temp=temph) { if(a!=0xff) RD1=1。}} if(temp=templ) { if(a!=0xff) RD0=1。} if(receive==0xff) { RC1=1。 else if(rxbuf[0]==0x20) { templ=rxbuf[1]。amp。 RXDATAS()。}} TXPC(temp)。 if(temp==0x8a) temp=0x90。 if(temp==0x6a) temp=0x70。 if(temp==0x4a) temp=0x50。if(temp==0x2a) temp=0x30。=+0x07){temp++。for(y=0x204。amp。[1]=ADRESH。ADIF=0。 while(ADIF==0) { asm(clrwdt)。delay0。ADGO=1。ADCON1=0X84。extern unsigned char i。unsigned char temph。unsigned char a。unsigned int y。extern unsigned int delay。 unsigned char adre[2]。}while(1)。 RC0=0。 do { asm(clrwdt)。temph=0x35。delay0。//***************************void main(){//初始化INIT()。extern unsigned char temph。unsigned int delay。 TRISE=0X00。 RD0=0。 TRISD=0X00。TRISC=0X80。(2)單片機軟件的實現(xiàn)MOV SCON,50H 初始化串口設(shè)為方式 1MOV TMOD,20H 利用定時器1為波特率發(fā)生器并設(shè)為模式2MOV PCON,XXH 設(shè)置 SMOD值MOV TH1,XXH 設(shè)置定時器初始值SETB TR1 啟動定時器1。我們知道使用離散度小的晶振是減小波特率誤差的關(guān)鍵。由此可見,當(dāng)波特率的誤差使得在接收某位數(shù)據(jù)位時,采樣點離該位的中點半位間隔時將會對該位采樣兩次。2 波特率最大允許誤差分析在異步串行通信方式1中單片機以16倍波特率的采樣速率對接收數(shù)據(jù)(RXD )不斷采樣,一旦檢測到由1到0的負(fù)跳變,16分頻計數(shù)器立刻復(fù)位,使之滿度翻轉(zhuǎn)的時刻恰好與輸入位的邊沿對準(zhǔn)。晶振頻率主要由晶體的因有頻率決定,同時也與電容CC2及外界溫度有一定的關(guān)系。所以在單片機軟件的設(shè)計時應(yīng)重點考慮并設(shè)置好波特率。 //關(guān)閉 mHandle為打開串口時返回的句柄 單片機軟件設(shè)計我們知道影響數(shù)據(jù)轉(zhuǎn)輸產(chǎn)生錯誤的因素有:轉(zhuǎn)輸線分布參數(shù)上下位機間的波特率誤差現(xiàn)場干擾等。如果通信事件一直沒有發(fā)生則系統(tǒng)將不會繼續(xù)執(zhí)行。dwTrans, true)。os)) // 重疊操作if(GetLastError()==ERROR_IO_PENDING){// 無限等待重疊操作結(jié)果GetOverlappedResult(mHandle, amp。=CreateEvent(NULL TRUE FALSE NULL)if(!WaitCommEvent(m_hFile, amp。memset( amp。//PC發(fā)送一組命令至單片機WriteFile(mHandle, //串口句柄pDataBuff, //存放數(shù)據(jù)緩種區(qū)iLen, //所寫數(shù)據(jù)的長度pdwWritten, //已寫長度操作前應(yīng)置為 0lpOverlapped) //異步方式//設(shè)置通信事件掩碼DWORD dwMask=EV_RXCHAR。此時采取的是事件驅(qū)動法,即:設(shè)置通信資源上的事件掩碼為EV_RXCHAR 。3. 讀寫串口初始化工作完成以后便可以根據(jù)通信協(xié)議合理安排讀/寫函數(shù)ReadFile()和WriteFile()以讀寫各種握手信息和數(shù)據(jù)信息等??偝瑫r的計算公式是:總超時=時間系數(shù) 要求讀 /寫的字符數(shù)+ 時間常數(shù)異步方式讀寫串行口時雖然ReadFile() 和WriteFile() 在完成操作以前就可能返回但超時仍然是起作用的。TimeOuts)。該函數(shù)會填充一個 COMMTIMEOUTS 結(jié)構(gòu)調(diào)用SetCommTimeouts 可以用某一個COMMTIMEOUTS 結(jié)構(gòu)的內(nèi)容來設(shè)置超時。如果在指定的時間內(nèi)沒有讀出或?qū)懭胫付〝?shù)量的字符,那么ReadFile 或WriteFile 的操作就會結(jié)束。如果通信的速率較高則應(yīng)該設(shè)置較大的緩沖區(qū)。 // 一個停止位SetCommState(hCom, amp。 // 每個字符有8位=NOPARITY。GetCommState(mHandle, amp。要修改串行口的配置應(yīng)該先修改DCB結(jié)構(gòu),然后再調(diào)用SetCommState函數(shù)用指定的DCB結(jié)構(gòu)來設(shè)置串行口。2. 串口對串口的初始化工作包括對波特率,數(shù)據(jù)位,停止位,奇偶校驗位I/O 緩沖大小以及超時等參數(shù)的設(shè)置。還是同步操作方式調(diào)用該函數(shù)打開串口進行讀寫操作的例子如下:mHandle = CreateFile(lpszPort, //串口名GENERIC_READ|GENERIC_WRITE, //允許讀/寫0, //獨占方式串口不能共享NULL, //安全性屬性一般設(shè)為0OPEN_EXISTING, //串口是已存在的不能建新端口lpOverlapped, //異步方式0 //串口無模板文件應(yīng)設(shè)為0)。串口的打開并閉讀取以及寫入所用的函數(shù)與操作文件的函數(shù)相同。我們在開發(fā)串行通信程序時,分別應(yīng)用這兩種方式開發(fā)都獲得了成功。而不會使PC機處于長時間等待??梢圆捎猛睫D(zhuǎn)輸方式的場合有如下一些特點:1 何時轉(zhuǎn)輸數(shù)據(jù)由PC機來決定,下位機只是被動接收并執(zhí)行命令。如果不考慮Win95 的進程和線程的問題,僅在串口有數(shù)據(jù)時,去讀串口緩沖區(qū)就可以了。使用同步方式時容易發(fā)生線程阻塞,從而使系統(tǒng)性能下降。因此在對系統(tǒng)強壯性要求較高的場合下應(yīng)采用異步方式。一旦通信線程查詢到數(shù)據(jù)已發(fā)送到串口上,線程自動向應(yīng)用程序發(fā)送一個數(shù)據(jù)接收到的消
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1