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

正文內(nèi)容

基于ds18b20的單片機(jī)無(wú)線溫度采集系統(tǒng)本科畢業(yè)論文(編輯修改稿)

2024-07-24 17:29 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 過IRQ與NRF24L01進(jìn)行通信。CE,芯片的模式控制線。在CSN為低的情況下,CE協(xié)同NRF24L01的CONFIG寄存器共同決定NRF24L01的狀態(tài)。該模塊發(fā)送模式的工作流程如13所示。圖13 發(fā)送模式流程圖相關(guān)發(fā)送模塊子程序如下。void init_NRF24L01(void){ inerDelay_us(100)。 CE=0。 CSN=1。 SCK=0。 SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH)。 SPI_Write_Buf(WRITE_REG+RX_ADDR_P1,RX_ADDRESS, RX_ADR_WIDTH)。 SPI_RW_Reg(WRITE_REG + EN_AA, 0x03)。 SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x03)。 SPI_RW_Reg(WRITE_REG + RF_CH, 0)。 SPI_RW_Reg(WRITE_REG + RX_PW_P1, RX_PLOAD_WIDTH)。 SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07)。 } 3 上位機(jī)部分介紹 無(wú)線接收模塊上位機(jī)上的接收模塊依然是采用硬件配置相同的nRF24L01。硬件電路與下位機(jī)部分的無(wú)線發(fā)送模塊相同,以保證有相同的配置參數(shù),便于理解也便于編程。Nrf24l01初始化后的流程圖圖14如下。圖14 nRF24L01接收流程圖無(wú)線接收模塊相關(guān)程序如下。/*函數(shù):void SetRX_Mode(void)/*功能:數(shù)據(jù)接收配置 void SetRX_Mode(void){ CE=0。 SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f)。 // IRQ收發(fā)完成中斷響應(yīng),16位CRC CE = 1。 inerDelay_us(130)。} 上位機(jī)上的數(shù)據(jù)顯示PC機(jī)顯示外圍設(shè)備的方法很多,常用的軟件有Windows自帶的VB、組態(tài)軟件、Matlab等。:一種是利用Windows的API函數(shù);。由于利用API函數(shù)編寫串行通信程序較為復(fù)雜,需要調(diào)用許多繁瑣的API函數(shù),、事件和方法,用戶不必了解通信過程中的底層操作和API函數(shù),從而可以比較容易、高效地實(shí)現(xiàn)串口通信[3]。 下面是上位機(jī)顯示溫度數(shù)據(jù)的流程圖如圖15。圖15 上位機(jī)顯示流程圖 4 模塊間的通信通信,是指主控單元與其他能實(shí)現(xiàn)控制功能的單元的數(shù)據(jù)交換和控制。在本系統(tǒng)中,涉及很多的通信,特別是還涉及到不同的通信方式。MCU與數(shù)碼管、DS18BNrf24l01模塊和上位機(jī)都有通信的實(shí)現(xiàn),都涉及數(shù)據(jù)的讀取或?qū)懭搿O旅婢瓦@些通信分部分做闡述。 上位機(jī)與單片機(jī)的通信 串口通信簡(jiǎn)介本系統(tǒng)中采用VB實(shí)現(xiàn)數(shù)據(jù)的在PC機(jī)端顯示。由于VB下的串行端口通信控件屏蔽了通信過程中的底層操作,程序員只需要控制MSComm控件的屬性和事件,結(jié)合VB提供的其他控件就可完成對(duì)RS232串口的初始化和下位機(jī)上溫度數(shù)據(jù)的發(fā)送接收并最終顯示。PC機(jī)和單片機(jī)的接口電平轉(zhuǎn)換芯片采用MAX232C,接口電路圖如圖15所示。單片機(jī)側(cè)的TXD(發(fā)送端)接PC機(jī)的RXD(接收端),單片機(jī)側(cè)的RXD(接收端)接PC機(jī)的TXD(發(fā)送端),兩者的GND(地)直接相連。電纜線為9針的RS232電纜。圖15中標(biāo)明了PC機(jī)側(cè)發(fā)送與接收腳的針號(hào),不能接錯(cuò)。單片機(jī)控制并檢測(cè)溫度,實(shí)時(shí)地通過RS232串口將溫度數(shù)據(jù)傳送給PC機(jī)。PC機(jī)側(cè)在通過響應(yīng)OnComm事件后就能在事件的處理程序中將數(shù)據(jù)接收、處理再送文本框顯示,同時(shí)保存在設(shè)定的文件中,甚至上傳至網(wǎng)絡(luò)實(shí)現(xiàn)網(wǎng)絡(luò)共享。用MSComm控件在上位機(jī)上進(jìn)行串口通信的一般步驟如下。首先設(shè)置通信對(duì)象、端口以及配置格式(比如數(shù)據(jù)位長(zhǎng)度、校驗(yàn)方式、起始位個(gè)數(shù)、停止位個(gè)數(shù)等)和其它相關(guān)屬性。再給兩端設(shè)定通信協(xié)議。然后打開通信端口,進(jìn)行數(shù)據(jù)的寫和讀入。最后要關(guān)閉通信端口,在完成串行通信操作后,將串行通信端口的資源歸還給操作系統(tǒng)。在本設(shè)計(jì)中采用一塊MAX3221芯片把從89C52傳過來(lái)的信號(hào)進(jìn)行電平轉(zhuǎn)換后輸出到PC,把從PC發(fā)過來(lái)的信號(hào)發(fā)送給USART。USART(Universal Synchronous/Asynchronous Receiver/Transmitter)是指:同步/異步串行接收/發(fā)送器,USART是一個(gè)全雙工通用同步/異步串行收發(fā)模塊,該接口是一個(gè)高度靈活的串行通信設(shè)備。設(shè)計(jì)中的RS232接口電路如圖16所示。圖16 RS232電平轉(zhuǎn)換電路其對(duì)應(yīng)的引腳圖如下表41。表41 9針串行口插針對(duì)應(yīng)關(guān)系表DB9管腳號(hào)插針功能說(shuō)明標(biāo)記1接收線信號(hào)檢出DCD2接收數(shù)據(jù)RD3發(fā)送數(shù)據(jù)TD4數(shù)據(jù)終端就緒DTR5信號(hào)地SG6數(shù)據(jù)傳輸設(shè)備就緒DSR7請(qǐng)求發(fā)送RTS8允許發(fā)送CTS9振鈴指示RI由圖15以及表41可以知道,接收使能EN接地,時(shí)鐘有效;掉電模式控制腳FORCEOFF始終拉高,即MAX3221始終處在工作狀態(tài)。AT89C52的TXD腳與MAX3221的11腳(DIN)相連,AT89C52的RXD腳與MAX3221的9腳(ROUT)相連;輸入DIN的信號(hào)轉(zhuǎn)換為RS232電平后,經(jīng)MAX3221的13 腳(DOUT)輸出到J5(DB9)的2腳(DB9的2腳為串口的RXD腳),接口J5(DB9)的3腳(串口的TXD腳)與MAX3221的8腳(RIN)相連,這樣的連接方式已將AT89C52的輸出腳TXD()和輸入腳RXD()連接對(duì)調(diào),可以直接通過延長(zhǎng)線與PC機(jī)相連。 PC機(jī)側(cè)VB程序首先,在Form中添加MSComm1通信控件,并將其屬性通過PC端程序作出如下設(shè)定。 With =1 設(shè)置串行端口號(hào)為1 Setting=2400,n,8,1 InputLen=2 一次讀取2字節(jié) InputMode=InputModeBinary 二進(jìn)制數(shù)據(jù)格式 Rthreshold=2 接收緩沖區(qū)達(dá)到2字節(jié)時(shí)產(chǎn)生OnComm事件其他為默認(rèn)值即可。 其次,在Form窗口添加兩個(gè)定時(shí)器Timer1和Timer2,Timer1為每次采樣時(shí)間間隔計(jì)時(shí)器,初值Interval=30000(1毫秒/Interval,所以為30秒)。Timer2是為保證串口出錯(cuò)或串口無(wú)信號(hào)時(shí)自動(dòng)跳出的,時(shí)間為1分鐘。在構(gòu)建好自己的溫度顯示終端時(shí)就可以等待下位機(jī)與PC的通信,并最終實(shí)現(xiàn)溫度的在線檢測(cè)。 nRF24L01與單片機(jī)的通信如前面所述,Nrf24l01模塊是采用SPI總線技術(shù),實(shí)現(xiàn)數(shù)據(jù)在模塊和AT89C52間的傳輸,也是微處理器控制該模塊的關(guān)鍵。下面先介紹這種通信方式。SPI接口的英文名全稱是Serial Peripheral Interface,意思是串行外圍接口,是摩托羅拉公司首先在自己的MC68HCXX系列微型處理器上開始定義的。當(dāng)前的SPI接口廣泛地應(yīng)用在EEPROM、FLASH等存儲(chǔ)器件還有AD上,甚至和數(shù)字信號(hào)解碼器也會(huì)涉及使用這樣的通信方式。SPI接口能夠在CPU和外圍低速器件之間實(shí)時(shí)地實(shí)現(xiàn)同步串行數(shù)據(jù)傳輸,在主器件(微處理器、上位機(jī)等)的移位脈沖作用下,數(shù)據(jù)按位傳輸,高位在前,低位在后,通信方式為全雙工,在一些檢測(cè)中比通信還要快,速度可達(dá)到幾兆每秒。無(wú)線模塊引腳圖如圖17。圖17 nRF24L01引腳圖下面是SPI接口各主要端腳的簡(jiǎn)介。(1)MOSI–主器件(2) MISO–主器件數(shù)據(jù)輸入,從器件(3)SCLK–由主器件產(chǎn)生。(4)NSS–從器件使能信號(hào),由主器件控制,有的IC會(huì)標(biāo)注為CS(Chip select)。在進(jìn)行的通信過程中,SPI接口不需要做尋址操作,因?yàn)樯厦嬉呀?jīng)介紹全雙工通信,就會(huì)表現(xiàn)地簡(jiǎn)單高效。在多個(gè)從器件,即多個(gè)無(wú)線發(fā)送點(diǎn)向一個(gè)上位機(jī)傳輸數(shù)據(jù)的系統(tǒng)中,每個(gè)從器件需要獨(dú)立的使能信號(hào),硬件上比單個(gè)從系統(tǒng)要復(fù)雜一些。SPI接口在內(nèi)部硬件實(shí)際上有兩個(gè)功能簡(jiǎn)單的,能夠傳輸?shù)亩M(jìn)制數(shù)據(jù)為8位,在主器件發(fā)出的選中從器件使能信號(hào)和移位脈沖同時(shí)作用下,按位傳輸,高位在前,低位在后,而且會(huì)在SCLK的上升沿上數(shù)據(jù)改變,然后又由一位數(shù)據(jù)被同時(shí)存入中。 DS18B20與單片機(jī)的通信DS18B20以單總線協(xié)議工作,單總線通信原理會(huì)在接下來(lái)的部分詳細(xì)介紹。但是通常測(cè)溫分機(jī)首先要發(fā)送復(fù)位脈沖命令,使信號(hào)線上的 DS18B20芯片都被復(fù)位,接著發(fā)送對(duì)ROM的操作命令,使DS18B20被激活并能夠進(jìn)入接收內(nèi)存訪問命令。訪問命令會(huì)完成溫度轉(zhuǎn)換和溫度讀取等工作。該系統(tǒng)中會(huì)以ROM命令和存儲(chǔ)器命令兩種形式完成對(duì)DS18B20操作。ROM操作命令均為8位,這些8位的命令代碼已經(jīng)被廣泛應(yīng)用,它們分別為:讀ROM(代碼0x33H)、匹配ROM(代碼0x55H)、跳過ROM(代碼0xCCH)、搜索ROM(代碼0xFOH) 和告警搜索(代碼0xECH)命令;DS18B20內(nèi)部的存儲(chǔ)器操作命令為:寫暫存存儲(chǔ)器(代碼0X4EH)、讀暫存存儲(chǔ)器 (代碼0xBEH)、復(fù)制暫存存儲(chǔ)器(代碼0x48H)、溫度變換(代碼0x44H)、重新調(diào)出EERAM(代碼0xB8H)以及讀電源供電方式(代碼0xB4H)命令。其對(duì)時(shí)序及電特性參數(shù)要求較高,必須嚴(yán)格按照它的時(shí)序要求去操作。DS18B20的數(shù)據(jù)讀寫由單片機(jī)來(lái)完成,包括初始化、讀數(shù)據(jù)和寫數(shù)據(jù)。系統(tǒng)軟件已經(jīng)廣泛采用了模塊化程序設(shè)計(jì),主從式結(jié)構(gòu)的通信方式。DS18B20初始化完成后處于監(jiān)聽狀態(tài),溫度采集模塊負(fù)責(zé)數(shù)據(jù)的采集工作。為保證DS18B20的嚴(yán)格I/O時(shí)序,需要作較精確的延時(shí)。在DS18B20的操作中,短時(shí)間延時(shí)是指10us以下的延時(shí),在C語(yǔ)言下采用若干個(gè)_nop_()。指令即可。因C51編譯器能夠?yàn)镈S18B20提供若干內(nèi)部調(diào)用函數(shù),其編譯結(jié)果就是在對(duì)應(yīng)位置實(shí)時(shí)嵌入一個(gè)NOP匯編指令,所以短時(shí)間延時(shí)就可以利用_nop_()函數(shù)實(shí)現(xiàn)。如果是較長(zhǎng)時(shí)間延時(shí)的話,即指10us以上的延時(shí),在DS18B20操作中,用到的較長(zhǎng)時(shí)間延時(shí)常有15us、90us、270us、540us等。因這些延時(shí)均為15us的整數(shù)倍,因此也可編寫一個(gè)Delayl5(n)函數(shù),并使它成為隨時(shí)能夠調(diào)用的延時(shí)子函數(shù),該函數(shù)就可以實(shí)現(xiàn)約15us*n的延時(shí)。根據(jù)DS18B20的通訊協(xié)議,主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個(gè)步驟。每一次讀寫之前都要對(duì)DS18B20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作。 5 系統(tǒng)調(diào)試系統(tǒng)調(diào)試,是指通過軟件與硬件的結(jié)合最終正確實(shí)現(xiàn)系統(tǒng)的功能,或者用其他方法驗(yàn)證設(shè)計(jì)等的正確。系統(tǒng)調(diào)試一般為如下步驟。首先,用程序編程軟件驗(yàn)證系統(tǒng)中子程序的正確可行;其次,去驗(yàn)證整體程序的可行性;再講子程序與硬件電路結(jié)合驗(yàn)證系統(tǒng)某個(gè)模塊的可行性與正確性;最后,將所有模塊結(jié)合實(shí)現(xiàn)系統(tǒng)所有的功能。下面是對(duì)本系統(tǒng)的部分調(diào)試過程及結(jié)果。 DS18B20溫度采集并顯示DS18B20采集的數(shù)據(jù)能否被下位單片機(jī)識(shí)別并在LED上顯示是本次設(shè)計(jì)的第一步,這一步不僅要求DS18B20能采集溫度并上傳至單片機(jī),還要去單片機(jī)能通過控制LED數(shù)碼管顯示當(dāng)前溫度。按硬件電路圖,DS18B20主要C程序如下:void display(uchar num,uchar dat) //數(shù)據(jù)顯示程序{ uchar i。 P0=0。 switch(num) { case 0:i=0x0e。P2=i。break。 case 1:i=0x0d。P2=i。break。 case 2:i=0x0b。P2=i。break。 default:break。 } P0=table[dat]。 P2=i。}void dis_temp(uint t) //顯示溫度數(shù)值函數(shù)t傳遞的是整型的溫度{
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1