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

正文內(nèi)容

數(shù)字體溫計的設(shè)計畢業(yè)設(shè)計論文(編輯修改稿)

2025-07-25 15:06 本頁面
 

【文章內(nèi)容簡介】 多個DS18B20可以在一個總線線進(jìn)行通信的原因??赏ㄟ^軟件寫入TH和TL,設(shè)置溫度區(qū)間,超出設(shè)置溫度區(qū)間打出報警信號。此外DS18B20通信功能有嚴(yán)格的時隙的概念,因此讀取和寫入數(shù)據(jù)時序是很重要的。根據(jù)DS18B20協(xié)議各種操作系統(tǒng)協(xié)議:初始化DS18B20(發(fā)送復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)送操作命令→內(nèi)存中的數(shù)據(jù)處理液晶顯示屏LCD1602模塊是工業(yè)字符型液晶,1602液晶模塊內(nèi)部的字符發(fā)生存儲器可以存儲了160個不同的點陣字符圖形,像阿拉伯?dāng)?shù)字、英文字母、常用的符號、和日文假名等。目前有多種顯示字符模式使用16*1,16*2,20*2和40*2等。LCD1602按顯示亮度分為兩種,一種是帶背光,另外一種是不帶背光,大多是基于控制器HD44780,背光的比較偏厚,在應(yīng)用中被沒有太大差別[7]。主要技術(shù)參數(shù)如下表33所示:表33 主要技術(shù)參數(shù)顯示容量162個字符芯片工作電壓—工作電流()模塊最佳工作電壓字符尺寸(WH)mm一般1602LCD采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口LCD1602的引腳分為如下幾類:(1) 電源及接地引腳:VSS,VDD;(2) 使能以及讀寫引腳:E,RS,R/W;(3) 背光源正負(fù)極引腳:BLA,BLK;(4) 數(shù)據(jù)傳輸引腳:D0,D1,D2,D3,D4,D5,D6,D7; 1602液晶模塊的顯示以及操作都需要指令代碼的,比如讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實現(xiàn)的。指令有很多, 分為幾類:分別是指令1光標(biāo)顯示,指令2光標(biāo)復(fù)位,指令3光標(biāo)移動,高電平右移,低電平左移,指令4顯示開關(guān)控制,指令5光標(biāo)或顯示移位 ,高電平時移動顯示的文字,低電平時移動光標(biāo),指令6功能設(shè)置命令,指令7字符發(fā)生器RAM地址設(shè)置,指令8DDRAM地址設(shè)置,指令9讀忙信號和光標(biāo)地址 BF,指令10寫數(shù)據(jù),指令11讀數(shù)據(jù)。 LCD1602和單片機(jī)的接口是不需要轉(zhuǎn)換電路的,可以直接實現(xiàn)模塊的對接,1602液晶顯示模塊可以和單片機(jī)STC89C52直接接口,下面是連接的電路圖,如圖39所示,從下圖能看到單片機(jī)的IO口可以直接和液晶顯示器的數(shù)據(jù)傳輸接口對接,在硬件電路上可以很好設(shè)計。圖39 1602液晶模塊和單片機(jī)連接 當(dāng)溫度傳感器檢測到的體溫不在可檢測的范圍之內(nèi),也就是說超出設(shè)定范圍了,這時單片機(jī)處理這個信號,單片機(jī)外圍接有源蜂鳴器,出現(xiàn)這種情況單片機(jī)給接有蜂鳴器那個引腳一個高電平脈沖信號,蜂鳴器接通發(fā)出報警信號,起到實時監(jiān)測控制功能。數(shù)字體溫計上有三個獨立按鍵,可以通過按鍵設(shè)置需要的體溫權(quán)限。一共設(shè)置了三個按鍵,一個是復(fù)位選擇按鍵,另外兩個是溫度上調(diào)和溫度下調(diào)按鍵。其次是復(fù)位電路上電復(fù)位和手動復(fù)位。當(dāng)程序運(yùn)行外出現(xiàn)意外時,可以手動復(fù)位,所以不要重新啟動電源的微控制器,也可以是復(fù)位。 電源模塊采用直流+5V電源輸入,符合單片機(jī)正常工作電壓范圍,為了考慮到使用便捷,采用USB方式供電,電流輸出穩(wěn)定,波動小,同時使用USB供電使得數(shù)字體溫計有了很好的便攜性,有更好的應(yīng)用型還可以隨時方便測體溫,便于監(jiān)測。第四章 系統(tǒng)軟件設(shè)計軟件設(shè)計部分采用KeilC51單片機(jī)C語言來進(jìn)行設(shè)計,使用這種語言在一定程度上可以更好地和單片機(jī)進(jìn)行兼容,簡化軟件開發(fā)。而且邏輯性更強(qiáng),減小操作過程中發(fā)生死循環(huán)的和失控的可能性。系統(tǒng)軟件程序包括主程序,溫度讀取程序,溫度轉(zhuǎn)換程序,溫度處理計算程序,顯示溫度程序,超出溫度報警程序。 KeilC51語言介紹Keil C51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),由兩家私營公司,分別為美國的Keil軟件公司和德國的Keil Elektronik公司。是支持8051微控制器體系結(jié)構(gòu)的開發(fā)工具,在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。,包括ANSI C編譯器,宏匯編器,調(diào)試器聯(lián)合行動,鏈接器,庫管理器,固件和實時操作系統(tǒng)內(nèi)核(實時內(nèi)核)[8]。 Keil C51的優(yōu)勢與匯編語言相比,Keil C51語言在功能和結(jié)構(gòu)性上有明顯的優(yōu)勢,并且具有可讀性和可維護(hù)性。Keil提供了很多功能,包括C語言,編譯器、宏匯編、連接器、庫管理和一個功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)系統(tǒng),通過一個集成開發(fā)環(huán)境將這些部分整合在一起。用C語言編程,那么使用Keil在軟件設(shè)計也有很多優(yōu)勢。即使不使用C語言而僅用匯編語言編程,它具有的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會讓你在設(shè)計中得心應(yīng)手,在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢[9]。Keil C51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,在調(diào)用函數(shù)過程中很方便。使用Keil C51生成的目標(biāo)代碼效率和質(zhì)量非常高,語句生成的匯編代碼結(jié)構(gòu)很緊湊,容易理解。主程序的主要功能是負(fù)責(zé)溫度信號的采集和溫度的實時顯示、讀出并處理DS18B20測量的當(dāng)前溫度值,溫度測量是實時進(jìn)行的,每經(jīng)過1s采集一次。這樣可以在一秒之內(nèi)迅速測量一次被測溫度,通過把采集到的信號傳輸給單片機(jī)進(jìn)行分析和處理,單片機(jī)進(jìn)行處理進(jìn)行溫度轉(zhuǎn)換,進(jìn)行溫度處理后然后在LCD1602上顯示,讀有出實時溫度,通過按鍵可以設(shè)置溫度區(qū)間,溫度超過設(shè)置的區(qū)間,啟動蜂鳴器報警,便于及時監(jiān)測病人體溫變化。如下圖41為主程序流程圖:圖41主程序流程圖主函數(shù)如下,通過主函數(shù)調(diào)用各個子函數(shù),來實現(xiàn)體溫計功能void main(){ init_lcd()。 //初始化LCD TMOD=0X01。 //定時器0,方式1 TH0=0X3C。 //50ms溢出一次 TL0=0XB0。 TR0=1。 //啟動定時器0 ET0=1。 //開定時器0 EA=1。 //開總中斷 while(1) { key()。 //調(diào)用按鍵函數(shù) baojing()。 //調(diào)用報警函數(shù) } }DS18B20是在一根線上實現(xiàn)數(shù)據(jù)的雙向傳輸,并且需要嚴(yán)格的通信協(xié)議來保證每位數(shù)據(jù)傳輸?shù)臏?zhǔn)確性和完整性,首先將DS18B20進(jìn)行初始化,復(fù)位DS18B20,然后單片機(jī)進(jìn)行等待DS18B20的應(yīng)答脈沖信號,單片機(jī)檢測到應(yīng)答脈沖,便發(fā)起跳過ROM匹配操作命令,成功執(zhí)行ROM操作命令后,就可以使用內(nèi)存操作命令啟動溫度轉(zhuǎn)換,延時一段時間后等待溫度轉(zhuǎn)換。然后再發(fā)起跳過ROM匹配操作命令,最后讀暫存器將轉(zhuǎn)換結(jié)果讀出,并轉(zhuǎn)換為顯示碼傳送給液晶顯示。 當(dāng)DS18B20采集到溫度信號以后,傳送給單片機(jī)進(jìn)行處理,單片機(jī)處理以后進(jìn)行溫度信號的轉(zhuǎn)換。執(zhí)行讀溫度子程序,其主要功能是負(fù)責(zé)讀出RAM中的9字節(jié),在讀取過程需進(jìn)行CRC校驗,當(dāng)檢測到校驗有錯時不進(jìn)行溫度數(shù)據(jù)的改寫。其程序流程圖如圖42所示42讀溫度子程序圖void reset() //DS18B20的復(fù)位函數(shù){ uchar x=0。DQ=1。 //使總線為高電平delay1(8)。 //延時DQ=0。 //使總線為低電平delay1(80)。 //延時,大于480usDQ=1。 //使總線為高電平delay1(14)。 //延時,等待DS18B20回應(yīng)低電平x=DQ。 //將DS18B20的回應(yīng)讀到變量x,用于判斷復(fù)位delay1(20)。 //延時一段時間結(jié)束}void writecmd(uchar cmd) //DS18B20的寫字節(jié)函數(shù){uchar i=0。 //定義位循環(huán)變量for(i=8。i0。i) //循環(huán)8次 { DQ=0。//總線拉低 DQ=cmdamp。0x01。//將發(fā)送字節(jié)的最低位送到總線 delay1(5)。//延時(30us),等待DS18B20取走總線數(shù)據(jù) DQ=1;//總線拉高 cmd=1。//將待發(fā)送的字節(jié)右移后,繼續(xù)發(fā)送 }}uchar readdat()//DS18B20的讀字節(jié)函數(shù){ uchar i=0。//定義位循環(huán)變量 uchar temp=0。//定義暫存變量 for(i=8。i0。i)//循環(huán)8次 { DQ=0。//總線為低電平 temp=1。//暫存變量右移 DQ=1。//總線拉高,執(zhí)行如下的讀操作 if(DQ)//如果DS18B20輸出高電平 temp|=0x80。//將暫存變量的最高位置1 delay1(4)。//延時一段時間 } return temp。//程序結(jié)束后,將暫存變量返回調(diào)用程序} 該設(shè)計通過按鍵設(shè)定體溫區(qū)間,設(shè)定三個按鍵,一個是選擇按鍵兼復(fù)位按鍵,另外的一個是溫度向上調(diào)節(jié),另外一個是溫度下調(diào),通過三個按鍵設(shè)置報警溫度區(qū)間。所以在程序編寫上也是體現(xiàn)了按鍵的功能,在軟件設(shè)計中,按鍵按一次,進(jìn)行延時,LCD光標(biāo)閃爍進(jìn)行選擇,再按一次按鍵, 因為溫度轉(zhuǎn)換命令子程序主要是指溫度轉(zhuǎn)換開始命令,所以當(dāng)采用12位分辨率時轉(zhuǎn)換時間約為750ms,在本程序設(shè)計中采用1s顯示程序延時法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序流程圖如下圖43所示,圖43溫度轉(zhuǎn)換命令子程序key(){ if(XuanZe==0)//如果選擇鍵按下{delay(50)。//延時消抖if(XuanZe==0)//如果按鍵還處于按下狀態(tài) { num++。//次數(shù)加1 while(!XuanZe)。//等待按鍵抬起; if(num==1)//如果按下選擇鍵的次數(shù)為1 { TR0=0。//關(guān)閉中斷 write_(0x80+0x00+5)。//光標(biāo)移到第一行第七個位置 write_(0x0f)。//設(shè)置為顯示開,開光標(biāo),閃爍 } if(num==2)// 如果按下選擇鍵的次數(shù)為2 { write_(0x80+0x00+13)。//光標(biāo)移到第一行第十五個位置 } if(num==3)//如果按下選擇鍵的次數(shù)為3 { num=0。//次數(shù)清零 write_(0x0c)。//設(shè)置為顯示開,關(guān)光標(biāo),不閃爍 TR0=1。//開中斷 } } }if(num!=0)//在選擇鍵按下時{ if(up==0)if(num==1)//如果按下選擇鍵的次數(shù)為1{TR0=0。//關(guān)閉中斷write_(0x80+0x00+5)。//光標(biāo)移到第一行第七個位置write_(0x0f)。//設(shè)置為顯示開,開光標(biāo),閃爍}if(num==2)//如果按下選擇鍵的次數(shù)為2{write_(0x80+0x00+13)。//光標(biāo)移到第一行第十五個位置}if(num==3)//如果按下選擇鍵的次數(shù)為3{num=0。//次數(shù)清零write_(0x0c)。//設(shè)置為顯示開,關(guān)光標(biāo),不閃爍TR0=1。//開中斷}}} 計算溫度子程序?qū)AM中讀取值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖44所示圖44計算溫度子程序程序如下:void timer0() interrupt 1//定時器0中斷,中斷標(biāo)號為1{uint result。TH0=0X3C。TL0=0XB0。timecount++。//每中斷一次,time count加1if(time count==20)//中斷定時達(dá)到1S,50ms*20=1s{time count=0。// time count清零reset()。//復(fù)位DS18B20Write cmd(0xcc)。//
點擊復(fù)制文檔內(nèi)容
物理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1