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

正文內(nèi)容

基于單片機(jī)的溫度采集系統(tǒng)的設(shè)計(jì)(編輯修改稿)

2024-07-24 20:03 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 個(gè)字節(jié)是冗余檢驗(yàn)字節(jié),見表46。表46 DS18B20暫存存儲(chǔ)器的8個(gè)連續(xù)字節(jié)寄存器內(nèi)容字節(jié)地址溫度最低數(shù)字位0溫度最高數(shù)字位1高溫限值2低溫限值3保留4保留5計(jì)數(shù)剩余值6每度計(jì)數(shù)值7CTR校驗(yàn)8該字節(jié)各位的意義如下:TM R1 R0 1 1 1 1 1 低五位一直都是1 ,TM是測(cè)試模式位,用于設(shè)置DS18B20在工作模式還是在測(cè)試模式。在DS18B20出廠時(shí)該位被設(shè)置為0,用戶不要去改動(dòng)。R1和R0用來設(shè)置分辨率,如下表所示:(DS18B20出廠時(shí)被設(shè)置為12位),見表47表47分辨率設(shè)置表R1R2分辨率溫度最大轉(zhuǎn)換時(shí)間009位0110位1011位375ms1112位750ms根據(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ù)定的操作。復(fù)位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,DS18B20收到信號(hào)后等待16~60微秒左右,后發(fā)出60~240微秒的存在低脈沖,主CPU收到此信號(hào)表示復(fù)位成功。 DS1820使用中注意事項(xiàng)DS1820雖然具有測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)溫精度高、連接方便、占用口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問題:(1)較小的硬件開銷需要相對(duì)復(fù)雜的軟件進(jìn)行補(bǔ)償,由于DS1820與微處理器間采用串行數(shù)據(jù)傳送,因此,在對(duì)DS1820進(jìn)行讀寫編程時(shí),必須嚴(yán)格的保證讀寫時(shí)序,否則將無法讀取測(cè)溫結(jié)果。在使用PL/M、C等高級(jí)語言進(jìn)行系統(tǒng)程序計(jì)時(shí),對(duì)DS1820操作部分最好采用匯編語實(shí)現(xiàn)。(2)在DS1820的有關(guān)資料中均未提及單總線上所掛DS1820數(shù)量問題,容易使人誤認(rèn)為可以掛任意多個(gè)DS1820,在實(shí)際應(yīng)用中并非如此。當(dāng)單總線上所掛DS1820超過8個(gè)時(shí),就需要解決微處理器的總線驅(qū)動(dòng)問題,這一點(diǎn)在進(jìn)行多點(diǎn)測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要加以注意。(3)連接DS1820的總線電纜是有長(zhǎng)度限制的。試驗(yàn)中,當(dāng)采用普通信號(hào)電纜傳輸長(zhǎng)度超過50m時(shí),讀取的測(cè)溫?cái)?shù)據(jù)將發(fā)生錯(cuò)誤。當(dāng)將總線電纜改為雙絞線帶屏蔽電纜時(shí),正常通訊距離可達(dá)150m,當(dāng)采用每米絞合次數(shù)更多的雙絞線帶屏蔽電纜時(shí),正常通訊距離進(jìn)一步加長(zhǎng)。這種情況主要是由總線分布電容使信號(hào)波形產(chǎn)生畸變?cè)斐傻摹R虼?,在用DS1820進(jìn)行長(zhǎng)距離測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要充分考慮總線分布電容和阻抗匹配問題。(4)在DS1820測(cè)溫程序設(shè)計(jì)中,向DS1820發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待DS1820的返回信號(hào),一旦某個(gè)DS1820接觸不好或斷線,當(dāng)程序讀該DS1820時(shí),將沒有返回信號(hào),程序進(jìn)入死循環(huán)。這一點(diǎn)在進(jìn)行DS1820硬件連接和軟件設(shè)計(jì)時(shí)也要給予一定的重視。測(cè)溫電纜線建議采用屏蔽4芯雙絞線,其中一對(duì)線接地線與信號(hào)線,另一組接VCC和地線,屏蔽層在源端單點(diǎn)接地。 DS18B20的內(nèi)部邏輯圖,見圖43。C64 位ROM和單線接口高速緩存存儲(chǔ)器與控制邏輯溫度傳感器高溫觸發(fā)器TH低溫觸發(fā)器TL配置寄存器8位CRC發(fā)生器Vdd 圖43DS18B20內(nèi)部?jī)?nèi)部邏輯圖 DS18B20讀寫時(shí)序主機(jī)使用時(shí)間隙(time slots)來讀寫 DSl820 的數(shù)據(jù)位和寫命令字的位。.時(shí)序見圖 44主機(jī)總線 to 時(shí)刻發(fā)送一復(fù)位脈沖(最短為 480us 的低電平信號(hào))接著在 tl 時(shí)刻釋放總線并進(jìn)入接收狀態(tài)DSl820 在檢測(cè)到總線的上升沿之后 等待 1560接著 DS1820 在 t2 時(shí)刻發(fā)出存在脈沖(低電平持續(xù)60240 us)如圖中虛線所示圖44DS18B20初始化時(shí)序圖程序:Init_DS18B20(void)//初始化ds1820{ DQ = 1。 //DQ復(fù)位 _nop_()。 _nop_()。 //稍做延時(shí)2ms DQ = 0。 //單片機(jī)將DQ拉低,發(fā)出復(fù)位脈沖(要求480us~960us) Delay(70)。 //精確延時(shí)566us DQ = 1。 //拉高總線(要求16~60us) Delay(5)。 //延時(shí)46us presence = DQ。 //如果=0則初始化成功 =1則初始化失敗 Delay(25)。 DQ = 1。 return(presence)。 //返回信號(hào),0=presence,1= no presence}當(dāng)主機(jī)總線 to 時(shí)刻從高拉至低電平時(shí) 就產(chǎn)生寫時(shí)間隙從 to 時(shí)刻開始 15us 之內(nèi)應(yīng)將所需寫的位送到總線DSl820 在 t1為1560us 間對(duì)總線采樣 若低電平寫入的位是 0見若高電平 寫入的位是連續(xù)寫 2 位間的間隙應(yīng)大于 1us ,見圖45。 圖45寫時(shí)間隙時(shí)序圖程序:WriteOneChar(unsigned char dat){unsigned char i=0。for (i=8。 i0。 i){ DQ = 0。 DQ = datamp。0x01。 delay(5)。 DQ = 1。 dat=1。}}見圖 46 主機(jī)總線 to 時(shí)刻從高拉至低電平時(shí)總線只須保持低電平 l7ts之后15捍 s也就是說t 2 時(shí)刻前主機(jī)必須完成讀位并在to 后的 60μs一120μs 內(nèi)釋放總線讀位子程序(讀得的位到C中) 圖46讀時(shí)間隙時(shí)序圖程序:ReadOneChar(void){unsigned char i=0。unsigned char dat = 0。for (i=8。i0。i){ DQ = 0。 // 給脈沖信號(hào) dat=1。 DQ = 1。 // 給脈沖信號(hào) if(DQ) dat|=0x80。 delay(4)。}return(dat)。},見表48表48存儲(chǔ)器操作命令指令約定代碼功能讀ROM33H讀取DS18B20ROM中的編碼(64位地址)符合ROM55H發(fā)出命令后,接著發(fā)出64位ROM編碼,訪問單總線上與該編碼相同的DS18B20,使之做出反應(yīng),為下一步讀寫作準(zhǔn)備。搜索ROM0F0H用于確定掛在同一總線上DS18B20的個(gè)數(shù),和識(shí)別64位ROM地址,微操作各器件做準(zhǔn)備。跳過ROM0CCH忽略64位ROM地址,直接向DS18B20發(fā)送溫度轉(zhuǎn)換命令,適用于單片工作。告警搜索命令0ECH執(zhí)行后只有溫度值超過限度值才做出反應(yīng),溫度變換命令44H啟動(dòng)DS18B20進(jìn)行溫度轉(zhuǎn)換,轉(zhuǎn)換時(shí)間最長(zhǎng)為500毫秒,結(jié)果存入內(nèi)部就九字節(jié)RAM中。讀暫存器0BEH讀內(nèi)部RA九字節(jié)內(nèi)容寫暫存器4EH發(fā)出向內(nèi)部RAM的第4字節(jié)寫上下限溫度命令,緊隨該命令之后是傳送兩個(gè)字節(jié)數(shù)據(jù)。復(fù)制暫存器48H將RAM中的第4字節(jié)內(nèi)容寫到EEPRAM中。重調(diào)EEPRAM0B8H將EEPRAM中的第4字節(jié)內(nèi)容寫到RAM中。 DS18B20溫度傳感器與單片機(jī)的接口電路DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時(shí)DS18B20的1腳接地,2腳作為信號(hào)線,3腳接電源。另一種是寄生電源供電方式,如圖4 所示單片機(jī)端口接單線總線,為保證在有效的DS18B20時(shí)鐘周期內(nèi)提供足夠的電流,可用一個(gè)MOSFET管來完成對(duì)總線的上拉。當(dāng)DS18B20處于寫存儲(chǔ)器操作和溫度A/D轉(zhuǎn)換操作時(shí),總線上必須有強(qiáng)的上拉,上拉開啟時(shí)間最大為10us。采用寄生電源供電方式時(shí)VDD端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。由于DS18B20是在一根I/O線上讀寫數(shù)據(jù),因此,對(duì)讀寫的數(shù)據(jù)位有著嚴(yán)格的時(shí)序要求。DS18B20有嚴(yán)格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號(hào)的時(shí)序:初始化時(shí)序、讀時(shí)序、寫時(shí)序。所有時(shí)序都是將主機(jī)作為主設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動(dòng)啟動(dòng)寫時(shí)序開始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫命令后,主機(jī)需啟動(dòng)讀時(shí)序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。對(duì)于DS18B20的讀時(shí)隙是從主機(jī)把單總線拉低之后,在15秒之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在完成一個(gè)讀時(shí)序過程,至少需要60us才能完成。對(duì)于DS18B20寫0時(shí)序和寫1時(shí)序的要求不同,當(dāng)要寫0時(shí)序時(shí),單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣IO總線上的“0”電平,當(dāng)要寫1時(shí)序時(shí),單總線被拉低之后,在15us之內(nèi)就得釋放單總線。 串口通信串行通信數(shù)據(jù)傳輸?shù)奶攸c(diǎn)是:數(shù)據(jù)按位進(jìn)行傳送,最少只需要一根傳輸線即可完成通信,所以通信成本低,但是速度慢,串行通信又有串行異步通信和串行同步通信兩種方式,在單片機(jī)中使用的串行通信都是異步方式。異步串行通信以字符為單位,即一個(gè)字符接一個(gè)字符的傳送。 本設(shè)計(jì)采用RS232串行接口來完成單片機(jī)與PC機(jī)的數(shù)據(jù)傳輸。在RS232C標(biāo)準(zhǔn)中,收發(fā)信號(hào)中的“0”為+3V~+15V,“1”為-3V~-15V,但單片機(jī)采用的是正邏輯的TTL電平,所以需要通過專用芯片MAX232C實(shí)現(xiàn)EIA電平與TTL電平轉(zhuǎn)換。MAX232C是MAXIM公司生產(chǎn)的,包含兩路驅(qū)動(dòng)器和接收器的RS232C轉(zhuǎn)換芯片。芯片內(nèi)部有一個(gè)電壓轉(zhuǎn)換器,可以把輸入的+5V電壓轉(zhuǎn)換為RS232C接口所需的177。10V電壓,尤其適用于沒有177。12V的單電源系統(tǒng)。MAX232是一個(gè)邏輯電壓轉(zhuǎn)換芯片,因此周邊必定有一定量的電容濾波,根據(jù)MAX232的不同,電容的取值也不同,MAX232C采用1uF的電容即可,雖然也可以用幾個(gè)三極管進(jìn)行電平模擬轉(zhuǎn)換,但是使用專用芯片更簡(jiǎn)單、可靠。串口通信電路如圖47所示:圖47 串口通信硬件連接圖人機(jī)交互的主要功能是輔助控制、方便調(diào)試。在當(dāng)今的各種實(shí)時(shí)自動(dòng)控制和智能化儀器儀表中,人機(jī)交互是不可缺少的一部分。一般而言,人機(jī)交互是由系統(tǒng)配置的外部設(shè)備來完成,其實(shí)現(xiàn)方式有兩種:一種是由MCU 的I/O口驅(qū)動(dòng)專用芯片實(shí)現(xiàn),如鍵盤顯示控制芯片,串行數(shù)據(jù)傳輸數(shù)碼顯示驅(qū)動(dòng)芯片等,來實(shí)現(xiàn)人機(jī)交互功能。另一種就是MCU本身具有驅(qū)動(dòng)功能,它通過數(shù)據(jù)總線與控制信號(hào)直接采用存儲(chǔ)器訪問形式或I/O設(shè)備的訪問形式來控制鍵盤和LCD實(shí)現(xiàn)人機(jī)交互。按鍵部分實(shí)現(xiàn)的主要原理是單片機(jī)讀取與按鍵相連接的I/O口狀態(tài),來判定按鍵是否按下,達(dá)到系統(tǒng)參數(shù)設(shè)置的目的。鍵盤在單片機(jī)應(yīng)用系統(tǒng)中的作用是實(shí)現(xiàn)數(shù)據(jù)輸入、命令輸入,是人工干預(yù)的主要手段。鍵盤分兩大類:編碼鍵盤和非編碼鍵盤。編碼鍵盤:由硬件邏輯電路完成必要的鍵識(shí)別工作與可靠性措施。每按一次鍵,鍵盤自動(dòng)提供被按鍵的讀數(shù),同時(shí)產(chǎn)生一個(gè)選通脈沖通知微處理器,一般還具有反彈跳和同時(shí)按鍵保護(hù)功能。這種鍵盤容易使用,但硬件比較復(fù)雜,對(duì)于主機(jī)任務(wù)繁重的情況,采用8279可編程鍵盤管理接口芯片構(gòu)成編碼式鍵盤系統(tǒng)是很實(shí)用的方案。非編碼鍵盤:只簡(jiǎn)單地提供鍵盤的行列與矩陣,其他操作如按鍵的識(shí)別,決定按鍵的讀數(shù)等都靠軟件完成,故硬件設(shè)計(jì)較為簡(jiǎn)單,但占用CPU較多時(shí)間,非編碼鍵盤有:獨(dú)立式按鍵結(jié)構(gòu)、矩陣式按鍵結(jié)構(gòu)兩種。矩陣式按鍵結(jié)構(gòu)適用于按鍵數(shù)量較多的場(chǎng)合,由行線和列線組成,按鍵位于行列的交叉點(diǎn)上。矩陣鍵盤工作的原理:行線通過上拉電阻接到+5V上。無按鍵,行線處于高電平狀態(tài),有鍵按下,行線電平狀態(tài)將由與此行線相連的列線電平?jīng)Q定。列線電平為低,則行線電平為低;列線電平為高,則行線電平為高。矩陣式按鍵結(jié)構(gòu)的優(yōu)點(diǎn)就是節(jié)約單片機(jī)I/O口,適用于按鍵比較多的場(chǎng)合。獨(dú)立式按鍵結(jié)構(gòu),獨(dú)立式按鍵就是按鍵相互獨(dú)立,每個(gè)按鍵單獨(dú)占用一根I/O口線,每根I/O口線的按鍵的工作狀態(tài),不會(huì)影響其他I/O口線上的工作狀態(tài)。各按鍵開關(guān)均需要采用了上拉電阻,是為了保證在按鍵斷開時(shí),各I/O有確定的高電平。當(dāng)輸入口線內(nèi)部已有上拉電阻,外電路的上拉電阻可省去。優(yōu)點(diǎn):電路配置靈活,軟件結(jié)構(gòu)簡(jiǎn)單。缺點(diǎn):每個(gè)按鍵需占用一根I/O口線,在按鍵數(shù)量較多時(shí),I/O口浪費(fèi)大,電路結(jié)構(gòu)顯得復(fù)雜。因此,此鍵盤適用于按鍵較少或操作速度較高的場(chǎng)合。在本設(shè)計(jì)當(dāng)中,由于只需要四個(gè)按鍵,所以采用獨(dú)立式鍵盤結(jié)構(gòu),電路連接圖如圖48所示:圖48 獨(dú)立式鍵盤液晶顯示屏具有微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧等諸多優(yōu)點(diǎn)。在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中,LCD得到越來越廣泛的應(yīng)用。字符
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1