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

正文內(nèi)容

基于51單片機及ds18b20溫度傳感器的數(shù)字溫度計設(shè)計-wenkub

2023-06-15 08:55:24 本頁面
 

【正文】 通信的原因。用動態(tài)掃描的方式進(jìn)行顯示,這樣能有效節(jié)省I/O口。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。 溫度計電路設(shè)計總體設(shè)計框圖如圖21所示,控制器采用單片機AT89S52,溫度傳感器采用DS18B20,顯示采用4位LED數(shù)碼管,報警采用蜂鳴器、LED燈實現(xiàn),鍵盤用來設(shè)定報警上下限溫度。測溫傳感器使用的是DS18B20,DS18B20是一種可組網(wǎng)的高精度數(shù)字式溫度傳感器,由于其具有單總線的獨特優(yōu)點,可以使用戶輕松地組建起傳感器網(wǎng)絡(luò),并可使多點溫度測量電路變得簡單、可靠。在顯示實時測量溫度的模式下還可以通過查詢按鍵查看設(shè)定的上下限報警溫度。本設(shè)計根據(jù)設(shè)計要求,首先設(shè)計了硬件電路,然后繪制軟件流程圖及編寫程序。單片機技術(shù)已經(jīng)廣泛應(yīng)用社會生活的各個領(lǐng)域,已經(jīng)成為一種非常實用的技術(shù)。 基于51單片機及DS18B20溫度傳感器的數(shù)字溫度計設(shè)計 基于51單片機及DS18b20溫度傳感器的數(shù)字溫度計設(shè)計摘 要本設(shè)計采用的主控芯片是ATMEL公司的AT89S52單片機,數(shù)字溫度傳感器是DALLAS公司的DS18B20。51單片機是最常用的一種單片機,而且在高校中都以51單片機教材為藍(lán)本,這使得51單片機成為初學(xué)單片機技術(shù)人員的首選。本設(shè)計屬于一種多功能溫度計,溫度測量范圍是55℃到125℃。 關(guān)鍵詞:單片機、數(shù)字溫度計、DS18BAT89S52目 錄1 概 述 1 1 2 系統(tǒng)總體方案及硬件設(shè)計 2 系統(tǒng)總體方案 2 2 2 系統(tǒng)硬件設(shè)計 5 單片機電路設(shè)計 5 DS18B20溫度傳感器電路設(shè)計 6 顯示電路設(shè)計 6 按鍵電路設(shè)計 7 報警電路設(shè)計 8 3 軟件設(shè)計 9 DS18B20程序設(shè)計 9 DS18B20傳感器操作流程 9 DS18B20傳感器的指令表 9 DS18B20傳感器的初始化時序 10 DS18B20傳感器的讀寫時序 10 DS18B20獲取溫度程序流程圖 11 顯示程序設(shè)計 13 按鍵程序設(shè)計 13 4實物制作及調(diào)試 14 5電子綜合設(shè)計體會 15 參考文獻(xiàn) 15 附1 源程序代碼 17 附2 系統(tǒng)原理圖 32 1 概 述本系統(tǒng)所設(shè)計的數(shù)字溫度計采用的是DS18B20數(shù)字溫度傳感器測溫,DS18B20直接輸出的就是數(shù)字信號,與傳統(tǒng)的溫度計相比,具有讀數(shù)方便,測溫范圍廣,測溫準(zhǔn)確,上下限報警功能。顯示是用4位共陰極LED數(shù)碼管實現(xiàn)溫度顯示,LED數(shù)碼管的優(yōu)點是顯示數(shù)字比較大,查看方便。圖21 溫度計電路總體設(shè)計框圖AT89S52單片機是美國ATMEL公司生產(chǎn)的低功耗,高性能CMOS 8位單片機,片內(nèi)含有8kb的可系統(tǒng)編程的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)8051指令系統(tǒng)及引腳。空閑模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。DS18B20溫度傳感器是美國DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)9~12位的數(shù)字值讀數(shù)方式。溫度報警觸發(fā)器TH和TL,可通過軟件寫入戶報警上下限。第5個字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率,DS18B20工作時寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值,該字節(jié)各位的定義如表21所示。高速暫存RAM的第8字節(jié)保留未用,表現(xiàn)為全邏輯1。單片機可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,℃/LSB形式表示。表22 DS18B20輸出的溫度值溫度值二進(jìn)制輸出十六進(jìn)制輸出+125℃0000 0111 1101 000007D0h+85℃0000 0101 0101 00000550h+℃0000 0001 1001 00010191h+℃0000 0000 1010 001000A2h+℃0000 0000 0000 10000008h0℃0000 0000 0000 00000000h℃1111 1111 1111 1000FFF8h℃1111 1111 0101 1110FF5Eh℃1111 1110 0110 1111FF6Fh55℃1111 1100 1001 0000FC90hDS18B20完成溫度轉(zhuǎn)換后,就把測得的溫度值與RAM中的TH、TL字節(jié)內(nèi)容作比較。主機ROM的前56位來計算CRC值,并和存入DS18B20的CRC值作比較,以判斷主機收到的ROM數(shù)據(jù)是否正確。報警模塊是由一個PNP型的三極管9012驅(qū)動的5V蜂鳴器,和一個加一限流電阻的發(fā)光二極管組成的。 DS18B20溫度傳感器電路設(shè)計DS18B20溫度傳感器是單總線器件與單片機的接口電路采用電源供電方。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。圖26 顯示電路 按鍵電路設(shè)計按鍵電路是用來實現(xiàn)調(diào)節(jié)設(shè)定報警溫度的上下限和查看上下報警溫度的功能。圖29 報警電路原理圖3 軟件設(shè)計 DS18B20程序設(shè)計 DS18B20傳感器操作流程根據(jù)DS18B20的通訊協(xié)議,主機(單片機)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟:? 每一次讀寫之前都要對DS18B20進(jìn)行復(fù)位操作? 復(fù)位成功后發(fā)送一條ROM指令? 最后發(fā)送RAM指令這樣才能對DS18B20進(jìn)行預(yù)定的操作。傳感器復(fù)位后向傳感器寫相應(yīng)的命令才能實現(xiàn)相應(yīng)的功能。跳過 ROM0xCC忽略 64 位 ROM 地址,直接向 DS1820 發(fā)溫度變換命令。結(jié)果存入內(nèi)部9字節(jié)RAM中。讀供電方式0xB4讀DS1820的供電模式。首先控制器拉高數(shù)據(jù)總線,接著控制器給數(shù)據(jù)總線一低電平,延時480μs,控制器拉高數(shù)據(jù)總線,等待傳感器給數(shù)據(jù)線一個60240μs的低電平,接著上拉電阻將數(shù)據(jù)線拉高,這樣才初始化完成。有兩種類型的寫時序:寫“0”時序,寫“1”時序。對于主機產(chǎn)生寫“1”時序時,數(shù)據(jù)線必須先被拉至低電平,然后被釋放,使數(shù)據(jù)線在寫時序開始之后15μs內(nèi)拉至高電平。如圖32的下半部分。由于單片機的I/O口有限,所以數(shù)碼管采用動態(tài)掃描的方式來進(jìn)行顯示。圖36 按鍵程序流程圖4實物制作及調(diào)試制作好的實物如圖41所示。5電子綜合設(shè)計體會經(jīng)過將近一個月的設(shè)計、焊接、編程、調(diào)試,我們終于完成了數(shù)字溫度計的設(shè)計,基本能夠達(dá)到設(shè)計要求,而且還設(shè)計了一些其他功能,比可以開啟或消除按鍵音功能,開機動畫功能,查看報警上下限溫度功能。此次單片機設(shè)計也為我們以后進(jìn)行更復(fù)雜的單片機系統(tǒng)設(shè)計提供了寶貴的經(jīng)驗。本次設(shè)計的另一個重點就是軟件程序的設(shè)計,其中需要有很巧妙的程序算法,雖然以前寫過幾次程序,但我覺的寫好一個程序并不是一件簡單的事,有好多的東西,只有我們?nèi)ピ囍隽?,才能真正的掌握,只學(xué)習(xí)理論,有些東西是很難理解的,更談不上掌握。參考文獻(xiàn)[1] (第三版).北京:清華大學(xué)出版社, [2] 余發(fā)山,:中國礦業(yè)大學(xué)出版社, [3] :人民郵電出版社, [4] :人民郵電出版社, [5] 于永,戴佳,(第2版).北京:電子工業(yè)出版社, 附1 源程序代碼/********************************************************************* 程序名。在調(diào)節(jié)上下限溫度模式下,K2是實現(xiàn)加1功能,* K1是實現(xiàn)減1功能,K3是用來設(shè)定上下限溫度正負(fù)的。 //s1標(biāo)志位用于上下限查看時的顯示void display1(uint z)。 //初始化定時器1(未啟動定時器1) get_temperature(1)。 //按鍵掃面函數(shù) display(temp,temp_d*)。 __ds18b20_h__* 功 能: DS18B20的c51編程頭文件 * 編程者:zicreate* 編程時間:2009/10/2 * 說 明:用到的全局變量是:無符號字符型變量temp(測得的溫度整數(shù)部分),temp_d * (測得的溫度小數(shù)部分),標(biāo)志位f(測量溫度的標(biāo)志位‘0’表示“正溫度”‘1’表* 示“負(fù)溫度”),標(biāo)志位f_max(上限溫度的標(biāo)志位‘0’表示“正溫度”、‘1’表* 示“負(fù)溫度”),標(biāo)志位f_min(下限溫度的標(biāo)志位‘0’表示“正溫度”、‘1’表* 示“負(fù)溫度”),標(biāo)志位w(報警標(biāo)志位‘1’啟動報警‘0’關(guān)閉報警)。 //uchar temp=0。 //上限溫度的標(biāo)志位‘0’表示“正溫度”‘1’表示“負(fù)溫度”)bit f_min=0。 for(i=t。j)。 //延時480μs左右 DQ=1。 //拉高數(shù)據(jù)線,準(zhǔn)備數(shù)據(jù)傳輸;}/***************************ds18b20字節(jié)讀函數(shù)************************/uchar ds18b20_read() //DS18B20 字節(jié)讀取{ uchar i。i0。_nop_()。 ds18b20_delayus(10)。i0。_nop_()。 DQ=1。 ds18b20_init()。 display1(1)。 //向DS18B20發(fā)跳過讀ROM命令 ds18b20_write(0xbe)。 //讀內(nèi)部RAM (TH) min=ds18b20_read()。} //將上限溫度符號標(biāo)志位置‘1’表示負(fù)溫度,將上限溫度裝換成無符號數(shù)。}//將下限溫度符號標(biāo)志位置‘1’表示負(fù)溫度,將下限溫度裝換成無符號數(shù)。 //i為0,表示讀取的溫度是正溫度,設(shè)立正溫度標(biāo)記 temp=((a4)|(b4))。 //小數(shù)部分 } else { f=1。 //整數(shù)部分 a=(aamp。 if(f_min==1) //若下限溫度為負(fù),將上限溫度轉(zhuǎn)換成有符號數(shù) min=min+0x80。 //向DS18B20發(fā)寫字節(jié)至?xí)捍嫫?和3(TH和TL)命令 ds18b20_write(max)。 //DS18B20初始化 ds18b20_write(0xcc)。} //當(dāng)測量值小于最小值或大于最大值時報警 if((temp+temp_d*)maxamp。TR1=1。} } if(f==1) //若測量值是負(fù)值 { if((temp+temp_d*)=min)//當(dāng)測量值大于最小值時報警 {w=1。TR1=1。} //當(dāng)測量值小于最小值且大于最大值時不報警 } if(f==0){w=1。 //可位尋址變量定義,sbit key2=P2^1。
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1