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

正文內(nèi)容

基于mcs-51的單片機(jī)無線溫度采集系統(tǒng)設(shè)計(jì)-文庫(kù)吧

2025-01-03 14:17 本頁(yè)面


【正文】 統(tǒng)采用AMS1117 。AMS1117貼片式穩(wěn)壓芯片如圖4。圖4 ASM1117穩(wěn)壓芯片DS18B20是美國(guó)DALLAS公司生產(chǎn)的單總線數(shù)字溫度傳感器,從DS18B20讀出或?qū)懭诵畔H需要一根口線,這是它的最大特點(diǎn)和優(yōu)勢(shì)。DS18B20具有獨(dú)特的單線接口方式,測(cè)量溫度范圍為55176。C~+125176。C,在10~+85176。C范圍內(nèi)精度為177。176。C?,F(xiàn)場(chǎng)溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性,適合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量,電源上支持3V~,使系統(tǒng)設(shè)計(jì)更靈活、方便。DS18B20雖然只與微處理器鏈接一條口線,但仍然可實(shí)現(xiàn)與微處理器的雙向通訊。目前大多數(shù)傳感器系統(tǒng)都采用放大傳輸數(shù)模轉(zhuǎn)換這種處理模式。這種模式一般要占用數(shù)條數(shù)據(jù)/控制線,限制了單片機(jī)功能的擴(kuò)展。而一線總線技術(shù)則很好地解決了這個(gè)問題。這里需要注意,掛在單總線上的器件稱為單總線器件,為了區(qū)分總線上的不同器件,生產(chǎn)單總線器件時(shí),廠家都刻錄了一個(gè)64位的二進(jìn)制ROM代碼作為芯片的唯一序列號(hào),但是由于本系統(tǒng)不考慮多點(diǎn)采集,所以本設(shè)計(jì)中的DS18B20不涉及編程系列號(hào)問題。DS18B20的引腳如圖5所示。圖5 DS18B20電路圖  該系統(tǒng)的無線傳輸模塊采用的是挪威VLSI公司推出的單片射頻收發(fā)一體器件nRF24L01 芯片,而本文采購(gòu)的是基于nRF24L01開發(fā)的由頻率合成器、接收解調(diào)器、功率、晶體振蕩器和調(diào)制器組成的無線收發(fā)模塊,也因此有了相應(yīng)的固定的豐富的軟件資料,硬件上也不需外加,該模塊會(huì)自動(dòng)處理字頭和CRC(循環(huán)冗余碼校驗(yàn))。該模塊使用SPI接口與微控制器通信,配置非常方便。此外,其突出特點(diǎn)是功耗非常低,輸出發(fā)射模式時(shí)電流只有11mA,內(nèi)建空閑模式與關(guān)機(jī)模式,便于節(jié)能。通過nRF24L01 模塊接收發(fā)送端發(fā)出的溫度信息,當(dāng)數(shù)據(jù)接收完成后產(chǎn)生接收完成中斷信號(hào),單片機(jī)確認(rèn)有中斷信息后讀取nRF24L01接收緩沖區(qū)中的數(shù)據(jù),根據(jù)數(shù)據(jù)包協(xié)議將接收到的信息通過數(shù)碼管動(dòng)態(tài)掃描方式顯示當(dāng)前溫度。Nrf24l01無線收發(fā)模塊如圖6。圖6 無線收發(fā)模塊電路圖無線收發(fā)模塊的各引腳直接和單片機(jī)相連,在單片機(jī)的控制下,通過SPI接口完成溫度數(shù)據(jù)的讀入讀出,發(fā)送模塊和接收模塊的nRF24L01完成數(shù)據(jù)的無線傳輸。在無線模塊接收到數(shù)據(jù)時(shí),將CD、AM信號(hào)置高電平,在數(shù)據(jù)接收完后,將DR端置為高電平,再將接收到的數(shù)據(jù)通過SPI接口MISO和MOSI口傳輸?shù)絾纹瑱C(jī)上。NRF24L01P+PA+,可以點(diǎn)對(duì)點(diǎn)應(yīng)用,也可組成星形網(wǎng)絡(luò)。NRF24L01P+PA+LNA無線模塊的核心為挪威NORDIC公司最新的高性能無線數(shù)傳芯片NRF24L01,經(jīng)過國(guó)內(nèi)的專業(yè)設(shè)計(jì)和改造,增加大功率PA和LNA芯片,射頻開關(guān),帶通濾波器等組成了專業(yè)的全雙向的射頻功放,即現(xiàn)在的Nrf24l01模塊,使得有效通信距離得到極大拓展。在射頻部分,模塊上做了大量的優(yōu)化匹配調(diào)試,使得發(fā)射效率達(dá)到最高,諧波最小,使得NRF24L01P+PA+LNA無線模塊對(duì)外界設(shè)備的射頻干擾達(dá)到最低,同時(shí)也不容易受到其他設(shè)備的干擾,極大提高工作的穩(wěn)定性。NRF24L01P+PA+LNA無線模塊集成度極高,*,方便嵌入于任何空間緊張的產(chǎn)品中,而在本系統(tǒng)中通過SPI口控制NRF24L01P+PA+LNA無線模塊即可完成超遠(yuǎn)距離無線數(shù)據(jù)傳送系統(tǒng)的設(shè)計(jì)。 LED顯示數(shù)碼管顯示是一個(gè)系統(tǒng)工程中必不可少的人機(jī)交互環(huán)節(jié),因此關(guān)于數(shù)碼管的驅(qū)動(dòng)也就是系統(tǒng)工程中的一個(gè)重要的環(huán)節(jié)。本設(shè)計(jì)采用了3位數(shù)碼管動(dòng)態(tài)掃描顯示。LED數(shù)碼管動(dòng)態(tài)顯示就是一位一位地輪流點(diǎn)亮各位數(shù)碼管,對(duì)于每一位LED數(shù)碼管來說,每隔一段時(shí)間點(diǎn)亮一次,利用人眼的“視覺暫留效應(yīng),采用循環(huán)掃描的方式,分時(shí)輪流選通各數(shù)碼管的公共端,使數(shù)碼管輪流導(dǎo)通顯示。視覺暫留效應(yīng)是指景物發(fā)出或反射的光,在人的視網(wǎng)膜上所形成的物像會(huì)在人的視覺中保留一段時(shí)間。詳細(xì)來說,即使景物從視野中消失,人眼所感受到的光像也不會(huì)馬上消逝,~,這是因?yàn)樵谕饨绻庠赐蝗幌r(shí),人眼的亮度感覺是按指數(shù)規(guī)律逐漸減少的。這樣當(dāng)一個(gè)光源反復(fù)通斷,在通斷頻率較低時(shí),人眼可以發(fā)現(xiàn)亮度的變化;而通斷頻率增高時(shí),眼睛就逐漸不能發(fā)現(xiàn)相應(yīng)的亮度變化了。斷通在高頻率時(shí)給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),會(huì)被認(rèn)為各數(shù)碼管是同時(shí)發(fā)光的。若數(shù)碼管的位數(shù)不大于8位時(shí),只需兩個(gè)8位I/O口。它將所有數(shù)碼管的8個(gè)段線相應(yīng)地并接在一起,并接到AT89C52的P0口,由P0口控制字段輸出。而各位數(shù)碼管的共陰極由AT89C51的P2口控制,實(shí)現(xiàn)8位數(shù)碼管的位輸出控制。其中P2僅運(yùn)用了3個(gè)端口,用以直接驅(qū)動(dòng)位選。 2 下位機(jī)部分介紹DS18B20是整個(gè)系統(tǒng)的檢測(cè)元件,由于它采用一線總線技術(shù),使采樣后的數(shù)據(jù)與單片機(jī)的傳輸變得簡(jiǎn)單。LED模塊是為了讓在檢測(cè)點(diǎn)可以隨時(shí)看到當(dāng)前檢測(cè)溫度。nRF24L01無線傳輸模塊是為了讓檢測(cè)的數(shù)據(jù)實(shí)時(shí)發(fā)送給遠(yuǎn)處的PC上位機(jī)系統(tǒng),實(shí)現(xiàn)遠(yuǎn)程監(jiān)控等。下位機(jī)中的單片機(jī)是控制以上各模塊的核心,并實(shí)現(xiàn)各模塊的連接轉(zhuǎn)換。 DS18B20溫度采集模塊 DS18B20簡(jiǎn)介前面已經(jīng)介紹,該模塊采用美國(guó)DALLAS公司推出的數(shù)字測(cè)溫芯片DS18B20,它體積小,有多種封裝,具有獨(dú)特的單線接口。測(cè)量范圍從55攝氏度到+125攝氏度,擁有可以選擇的9到12位溫度數(shù)據(jù)分辨率,可以工作在寄生電源模式,硬件配置十分簡(jiǎn)捷方便。在本系統(tǒng)中溫度傳感器輸出腳I/,采用+5V電源供電。DS18B20芯片封裝如圖7所示。 圖7 DS18B20芯片封裝引腳定義: (1)DQ為單數(shù)據(jù)總線,是數(shù)字信號(hào)輸入/輸出端; (2)GND為電源地; (3)VDD為外接供電電源輸入端(在寄生電源接線方式時(shí)接地)。 對(duì)于DS18B20簡(jiǎn)潔的端口引腳,只需要將它的數(shù)據(jù)線與單片機(jī)的任意一個(gè)I/O口連接并保證其正常供電,在正確合時(shí)序的程序驅(qū)動(dòng)下,就可以實(shí)現(xiàn)溫度的采集,并作出相應(yīng)的其他聯(lián)動(dòng)控制。所以,本設(shè)計(jì)中DS18B20與單片機(jī)接口電路圖8。圖8 DS18B20與單片機(jī)硬件圖 DS18B20的測(cè)溫方法 DS18B20中的溫度傳感器剛好能自動(dòng)完成對(duì)外界環(huán)境溫度的測(cè)量,本系統(tǒng)是以12位轉(zhuǎn)化為例介紹它的測(cè)溫方法。DS18B20用具有16位符號(hào)擴(kuò)展的二進(jìn)制數(shù)據(jù)補(bǔ)碼讀數(shù)形式提供,176。C/LSB形式表達(dá),經(jīng)DS18B20轉(zhuǎn)化后得到的12位數(shù)據(jù)存儲(chǔ)在DS18B20的兩個(gè)8比特的RAM中,這樣得到的數(shù)據(jù)中二進(jìn)制的前面5位就是符號(hào)位,這時(shí)如果測(cè)得的溫度大于0,這5位二進(jìn)制數(shù)據(jù)全為0,;再比如,如果測(cè)定的外界溫度小于0,這5位二進(jìn)制數(shù)據(jù)將全為1。該傳感器采集溫度流程圖圖9。圖9 DS18B20溫度采集流程圖該模塊中讀取DS18B20內(nèi)部數(shù)據(jù)的程序如下。uint get_temp() //讀取寄存器中存儲(chǔ)的溫度數(shù)據(jù){ uchar a,b。 dsreset()。 //DS18B20復(fù)位,調(diào)用初始化子函數(shù) delay(1)。 tempwritebyte(0xcc)。 tempwritebyte(0xbe)。 a=tempread()。//讀低8位 b=tempread()。//讀高8位 temp=b。 temp=8。 //兩個(gè)字節(jié)組合為1個(gè)字 temp=temp|a。 f_temp=temp*。 //溫度在寄存器中為12位, temp=f_temp*10+。 //乘以10表示小數(shù)點(diǎn)后面只取1位, return temp。} LED數(shù)碼顯示模塊數(shù)碼管顯示模塊采用四合一共陰LED數(shù)碼管。這種4位一體的LED數(shù)碼管在內(nèi)部已經(jīng)將相同的筆畫連在一起了,用戶的接口就是8個(gè)筆畫,四個(gè)公共端需要使用動(dòng)態(tài)掃描技術(shù)來分時(shí)顯示,用單片機(jī)的一個(gè)端口將DS18B20的數(shù)據(jù)通過LED顯示即可。單片機(jī)控制的數(shù)碼管顯示原理如下。LED有段碼和位碼之分,所謂段碼就是讓LED顯示出“8.”的八位數(shù)據(jù),一般情況下要通過一個(gè)譯碼電路,將輸入的4位2進(jìn)制數(shù)轉(zhuǎn)換為與LED顯示對(duì)應(yīng)的8位段碼。位碼也就是LED的顯示使能端,對(duì)于共陰級(jí)的LED而言,低電平使能。要讓4個(gè)LED同時(shí)工作,顯示數(shù)據(jù),就是要不停的循環(huán)掃描每一個(gè)LED,并在使能每一個(gè)LED的同時(shí),輸入所需顯示的數(shù)據(jù)對(duì)應(yīng)的8位段碼。雖然8個(gè)LED是依次顯示,但是受視覺分辨率的影響,看到的現(xiàn)象是4個(gè)LED同時(shí)工作。多個(gè)數(shù)碼管動(dòng)態(tài)掃描顯示,是將所有數(shù)碼管的相同段并聯(lián)在一起,通過選通信號(hào)分時(shí)控制各個(gè)數(shù)碼管的公共端,循環(huán)點(diǎn)亮多個(gè)數(shù)碼管,并利用人眼的視覺暫留現(xiàn)象,只要掃描的頻率大于50Hz,將看不到閃爍現(xiàn)象。由于本設(shè)計(jì)顯示溫度精確到一位小數(shù),故這個(gè)四合一數(shù)碼管只用最低三位,最低位顯示小數(shù)位,次地位顯示個(gè)位,然后是十位。硬件電路圖圖10如下。圖10 數(shù)碼管與單片機(jī)硬件電路圖顯示模塊流程如圖11。圖11 LED動(dòng)態(tài)顯示流程圖相關(guān)顯示子程序如下。void dis_temp(uint t) //顯示溫度數(shù)值函數(shù)t傳遞的是整型的溫度{ uchar i,j。 for(j=10。j0。j) { i=t/100。 //除以100得到商,為溫度的十位 display(2,i)。 //在第一個(gè)數(shù)碼管上顯示 i=t%100/10。 //100取余再除以10得到商,位溫度的個(gè)位 display(1,i+10)。 //在第2個(gè)數(shù)碼管上顯示,有小數(shù)點(diǎn) i=t%100%10。 //100取余再用10取余,為溫度的小數(shù)位 display(0,i)。 //在第3個(gè)數(shù)碼管上顯示 }} nRF24L01無線發(fā)送模塊正如前面所介紹,該模塊是挪威公司生產(chǎn)的nRF24L01在外圍電路優(yōu)化配置組成的。在下位機(jī)部分時(shí),其被置為發(fā)送模式。通過SPI總線寫入數(shù)據(jù),數(shù)據(jù)傳輸高效可靠,并且具有自動(dòng)應(yīng)答和自動(dòng)再發(fā)射功能。芯片采用了增強(qiáng)式ShockBurst技術(shù),就是說輸出功率和通信頻道可通過設(shè)置軟件程序進(jìn)任意行配置。模塊中nRF24L01和89C52 P1口連接(如圖12),低速的單片機(jī)就能夠很好地控制高速收發(fā)的射頻芯片,硬件結(jié)構(gòu)如圖12所示。圖12 無線收發(fā)模塊硬件原理圖從設(shè)計(jì)中單片機(jī)控制的角度來看,我們只需要關(guān)注圖11的六個(gè)控制和數(shù)據(jù)信號(hào)。CSN,芯片的片選線,CSN為低電平芯片工作。SCK,芯片控制的時(shí)鐘線(SPI時(shí)鐘)。MISO,芯片控制數(shù)據(jù)線(Master input slave output)。MOSI,芯片控制數(shù)據(jù)線(Master output slave input)。IRQ,中斷信號(hào)。無線通信過程中MCU主要是通過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ī)部分介紹 無線接收模塊上位機(jī)上的接收模塊依然是采用硬件配置相同的nRF24L01。硬件電路與下位機(jī)部分的無線發(fā)送模塊相同,以保證有相同的配置參數(shù),便于理解也便于編程。Nrf24l01初始化后的流程圖圖14如下。圖14 nRF24L01接收流程圖無線接收模塊相關(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ū)懭?。下面就這些通信分部分做闡述。 上位機(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
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1