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

正文內(nèi)容

單片機溫濕度設(shè)計畢業(yè)論文-在線瀏覽

2024-08-07 12:56本頁面
  

【正文】 機的可擦除只讀存儲器可以反復(fù)擦除100次。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。 AT89C51管腳圖主要特性:4K字節(jié)可編程閃爍存儲器壽命:1000寫/擦循環(huán)數(shù)據(jù)保留時間:10年三級程序存儲器鎖定32可編程I/O線5個中斷源低功耗的閑置和掉電模式GND:接地。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。 P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。這是由于內(nèi)部上拉的緣故。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。RST:復(fù)位輸入。ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。EA/VPP:當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000HFFFFH),不管是否有內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL2:來自反向振蕩器的輸出。該反向放大器可以配置為片內(nèi)振蕩器。如采用外部時鐘源驅(qū)動器件,XTAL2應(yīng)不接。芯片擦除:整個PEROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms 來完成。此外,AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。但RAM,定時器,計數(shù)器,串口和中斷系統(tǒng)仍在工作。 DS18B20傳感器簡介DS18B20溫度傳感器是美國DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)9~12位的數(shù)字值讀數(shù)方式。64位ROM的結(jié)構(gòu)開始8位是產(chǎn)品類型的編號,接著是每個器件的惟一的序號,共有48位,最后8位是前面56位的CRC檢驗碼,這也是多個DS18B20可以采用一線進(jìn)行通信的原因。 C64 位ROM和單線接口高速緩存存儲器與控制邏輯溫度傳感器高溫觸發(fā)器TH低溫觸發(fā)器TL配置寄存器8位CRC發(fā)生器Vdd DS18B20內(nèi)部結(jié)構(gòu)圖DS18B20溫度傳感器的內(nèi)部存儲器還包括一個高速暫存RAM和一個非易失性的可電擦除的EERAM。頭2個字節(jié)包含測得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復(fù)位時被刷新。DS18B20工作時寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。溫度 LSB溫度 MSBTH用戶字節(jié)1TL用戶字節(jié)2配置寄存器保留保留保留CRC 高速暫存RAM結(jié)構(gòu)圖 DS18B20字節(jié)定義,DS18B20溫度轉(zhuǎn)換的時間比較長,而且分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時間越長。 DS18B20溫度轉(zhuǎn)換時間表高速暫存RAM的第8字節(jié)保留未用,表現(xiàn)為全邏輯1。當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。單片機可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,℃/LSB形式表示。 一部分溫度對應(yīng)值表溫度/℃二進(jìn)制表示十六進(jìn)制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+0000 0001 1001 00000191H+0000 0000 1010 000100A2H+0000 0000 0000 00100008H00000 0000 0000 10000000H1111 1111 1111 0000FFF8H1111 1111 0101 1110FF5EH1111 1110 0110 1111FE6FH551111 1100 1001 0000FC90HDS18B20完成溫度轉(zhuǎn)換后,就把測得的溫度值與RAM中的TH、TL字節(jié)內(nèi)容作比較。因此,可用多只DS18B20同時測量溫度并進(jìn)行報警搜索。主機ROM前56位來計算CRC值,并和存入DS18B20的CRC值作比較,以判斷主機收到的ROM數(shù)據(jù)是否正確。器件中還有一個計數(shù)門,當(dāng)計數(shù)門打開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖進(jìn)行計數(shù)進(jìn)而完成溫度測量。減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計數(shù),當(dāng)減法計數(shù)器1的預(yù)置值減到0時,溫度寄存器的值將加1,減法計數(shù)器1的預(yù)置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計數(shù),如此循環(huán)直到減法計數(shù)器計數(shù)到0時,停止溫度寄存器的累加,此時溫度寄存器中的數(shù)值就是所測溫度值。另外,由于DS18B20單線通信功能是分時完成的,它有嚴(yán)格的時隙概念,因此讀寫時序很重要。操作協(xié)議為:初使化DS18B20(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲器操作命令→處理數(shù)據(jù)。顯示電路采用8個共陽極的LED顯示,顯示代碼由P0口發(fā)送,當(dāng)使用P0口時需要接上拉電阻,P2口的邏輯狀態(tài)作位選線信號,達(dá)到分時選通的目的,當(dāng)相應(yīng)口為高電平時LED才能顯示相應(yīng)代碼。此外還接有蜂鳴器,當(dāng)DS18B20不能正常工作時可以達(dá)到報警的目的。按健復(fù)位電路是最簡單的手動復(fù)位,使用比較方便,在程序跑飛時,以手動復(fù)位,這樣就不用在重起單片機電源,就可以實現(xiàn)復(fù)位。主程序的主要功能是負(fù)責(zé)溫度的實時顯示、讀出并處理DS18B20的測量的當(dāng)前溫度值,溫度測量每1s進(jìn)行一次。 初始化調(diào)用顯示子程序1S到?初次上電讀出溫度值溫度計算處理顯示數(shù)據(jù)刷新發(fā)溫度轉(zhuǎn)換開始命令的法國風(fēng)格 法國 NYNY 主程序流程圖讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時需進(jìn)行CRC校驗,校驗有錯時不進(jìn)行溫度數(shù)據(jù)的改寫。 開始溫度零下?溫度值取補碼置“—”標(biāo)志計算小數(shù)位溫度值 計算整數(shù)位溫度值 結(jié)束置“+”標(biāo)志NY發(fā)DS18B20復(fù)位命令發(fā)跳過ROM命令發(fā)溫度轉(zhuǎn)換開始命令 結(jié)束 計算溫度流程圖 溫度轉(zhuǎn)換流程圖 溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當(dāng)采用12位分辨率時轉(zhuǎn)換時間約為750ms,在本程序設(shè)計中采用1s顯示程序延時法等待轉(zhuǎn)換的完成。溫度數(shù)據(jù)移入顯示寄存器十位數(shù)0?百位數(shù)0?十位數(shù)顯示符號百位數(shù)不顯示百位數(shù)顯示數(shù)據(jù)(不顯示符號) 結(jié)束NNYY 下位機程序下位機程序的編寫主要使用C語言進(jìn)行編寫,可讀性要比匯編語言好很多。溫度采集系統(tǒng)的主程序設(shè)計如下:void main(void){ uchar receive。 while(1) { Read_Temperature()。 } else { P2 = 0x00。 receive = SBUF。s39。 } } }}主程序為一無限循環(huán),單片機不斷從DS18B20的數(shù)據(jù)口采集數(shù)據(jù)信號,用flash標(biāo)志DS18B20是否正常,當(dāng)flash=1時表示DS18B20不正常,就由軟件設(shè)置及時關(guān)閉LED顯示并由蜂鳴器報警。在串口通信模塊中,baudrate的在程序初始化時已經(jīng)定義為9600b/s,晶振頻率()也已設(shè)定好。計算出定時器的初值之后,在設(shè)定串行口的工作方式,在這里令SCON=0X50,即SCON各位中,SM0=0,SM1=1,REN=1,其他控制字為0,選擇為工作方式1,8位異步收發(fā)。程序設(shè)計內(nèi)容如下所示:void init(void){ EA = 1。 TH1=(unsigned char)(256 (XTAL / (32L * 12L * baudrate)))。 SCON = 0x50。= 0x00。 IE = 0x00?!妫疞SB,通過移位操作,即可獲得一個新的關(guān)于溫度整數(shù)部分的數(shù)據(jù),部分設(shè)計顯示轉(zhuǎn)化程序如下:display[4]=temp_data[0]amp。 display[0]=ditab[display[4]]。0xf0)4)|((temp_data[1]amp。 display[3]=display[4]/100。 display[2]=display[1]/10。其中小數(shù)位所查的表為:Unsigned char code ditab[16] = {0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04, 0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09}在程序中display[0]為小數(shù)位十進(jìn)制數(shù),display[3]為百位十進(jìn)制數(shù),display[2]為十位十進(jìn)制數(shù),display[1]為個位十進(jìn)制數(shù),通過查詢LED共陽極的顯示代碼程序,分時選通即可顯示當(dāng)前的溫度值。 temp_data[1]=!( temp_data[1]) temp_data[0]=!( temp_data[0])。if(temp_data[0]=0) { temp_data[1]= temp_data[1]+1。其他延時子程序以及DS18B20的讀寫子程序,可見附錄一的完整的DS18B20溫度采集系統(tǒng)程序設(shè)計,在這里不做詳細(xì)介紹了。當(dāng)點擊采集溫度時,上位機向下位機發(fā)送采集溫度命令字符“1”,當(dāng)下位機接受到命令時,向上位機發(fā)送數(shù)據(jù)。 上位機程序在上位機VB程序的編寫中,最重要的是串口的初始化程序和接收觸發(fā)程序的設(shè)計。波特率設(shè)置為9600,可以根據(jù)具體設(shè)計情況更改波特率的大小,但要與下位機的一致。接收觸發(fā)事件的處理,當(dāng)每發(fā)送一次指令時,就會觸發(fā)OnComm事件,并返回數(shù)據(jù)串,通過計算獲取溫度測量值并顯示出來,具體設(shè)計程序如下:Private Sub MSComm1_OnComm() Dim Inbyte() As Byte Dim buffer As String Dim datatemp2a, datatemp2b As String Dim datatemp2 As String Dim count As Integer 39。此外程序還添加了接收溫度數(shù)據(jù)的判定,接收到的溫度數(shù)據(jù)應(yīng)為兩字節(jié),且低位在前,當(dāng)接收到的數(shù)據(jù)不是兩字節(jié)時,表示接收錯誤,跳出此程序。H amp。 Str(0) amp。H amp。 Mid(buffer, 1, 2)) * End If39。采集的溫度數(shù)據(jù)還通過Data控件存入數(shù)據(jù)庫中。程序的編寫及整個VB界面見附錄二和附錄四所示。它允許建立串口連接,可以連接到其他通信設(shè)備(如Modem).還可以發(fā)送命令、進(jìn)行數(shù)據(jù)交換以及監(jiān)視和響應(yīng)在通信過程中可能發(fā)生的各種錯誤和事件,從而可以用它創(chuàng)建全雙工 、事件驅(qū)動的、高效實用的通信程序。這些串口在CPU和外設(shè)之間充當(dāng)解釋器的角色。 描述CommPort 以字符串的形式設(shè)置或返回波特率、奇偶校驗、數(shù)據(jù)位和停止位PortOpen也可以打開和關(guān)閉端口Input 返回和刪除接收緩沖區(qū)中的字符Output 你只首先要確定一個msm控件在system目錄下并且該控件已經(jīng)被windows注冊,程序才能正常運行。查看原來的數(shù)據(jù)的原理也是這樣的,不同的地方就是,數(shù)據(jù)是從文件中來,同樣的也是將多個數(shù)據(jù)分成一個一個的,然后這一個數(shù)據(jù)的大小就是畫圖的某一個點的縱坐標(biāo),橫坐標(biāo)同樣為數(shù)據(jù)的序號,再將這些點用線連起來就是曲線圖。點擊查詢可查詢歷史溫度信息。此外為了保存和查詢歷史溫度數(shù)據(jù)還要在VB中設(shè)計建立連接到Access數(shù)據(jù)庫的控件,Data控件是Visual Basic ,可以通過設(shè)置Data控件的connect、DatabaseName、RecordSource屬性實現(xiàn)對數(shù)據(jù)庫的連接和訪問。利用功能強大的Keil和具有電路仿真的Pr
點擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1