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

正文內(nèi)容

基于51單片機與ds18b20的數(shù)字溫度計設(shè)計(參考版)

2025-06-25 23:15本頁面
  

【正文】 另外此次設(shè)計也考慮了實時溫度顯示界面與報警溫度設(shè)置界面的區(qū)別,即在進入報警溫度設(shè)置界面時,讓其余的數(shù)碼管都顯示出一橫杠,即g段點亮,這樣則不會讓兩個界面相互混淆。 此設(shè)計中沒有為溫度的單位(攝氏度)準備專用的數(shù)碼管來顯示,若單獨用一個數(shù)碼管顯示“C”來代替“℃”的話,看起來感覺很別扭。在做鍵盤消抖時,延時的時間比較重要,一般為10ms左右,延時太短就會使按鍵太過靈敏,按一下就使數(shù)字跳變幾次;而延時過長則可能使按鍵按下了卻無響應(yīng),在外部定義初始化一個延時函數(shù)的入口參量則能很方便地調(diào)整延時時間,以達到比較好的效果。同時局部變量應(yīng)避免與全局變量取同名,否則全局變量將被屏蔽或與局部變量相沖突而達不到設(shè)計的效果。 軟件設(shè)計中,把程序按功能分模塊的話能提高編程效率,把問題一一解決,同時畫流程圖能幫助理清思路,使問題簡單化。//定時記錄溫度值 }7 總結(jié) 此次課程設(shè)計中,難點在于DS18B20的使用,即對它的時序控制、初始化以及字節(jié)讀寫方法,任何一個環(huán)節(jié)出錯或是時序控制不到位的話就不能得到正確的數(shù)據(jù)。 GetTemperature()。 countmin++。 TL0=(6553650000)%256。 if(record==0)//record第二次按下,退出查看 { flag=0。 if(a==255)//循環(huán)顯示 { a=recordnum1。 if(sub==0) { if(recordnum==0) { a=0。 if(a==recordnum)//循環(huán)顯示 { a=0。//延時消抖 if(add==0)//add按下,查看下一個值 { if(recordnum==0) { a=0。//顯示第幾個記錄值 Display(7,(a+1)%10)。//數(shù)碼管第7位選中,溫度值與記錄數(shù)之間用間隔 Display(5,10)。//顯示攝氏度單位 Display(3,12)。//顯示溫度數(shù)值 Display(1,recordtable[a]%10)。 //延時消抖 if(record==0) { flag=1。 uchar a。 recordtable[0]=temperature。 } do { recordtable[i]=recordtable[i1]。 recordnum++。 count++。 } }/***********************溫度記錄函數(shù)**************************************/void Keeprecord(){ uchar i=9。 } else { beep=1。 } } if(temperaturealanum)//此處設(shè)置報警即保證即使沒有進入設(shè)置界面任然可以報警 { beep=0。 } else { beep=1。//第二次按鍵退出設(shè)置 } } if(temperaturealanum)//此處設(shè)置報警可以保證調(diào)整設(shè)定值時即可及時報警 { beep=0。 if(alarm==0) { delay1(80)。//區(qū)別于實時溫度顯示“  ” Display(6,10)。 Display(0,10)。//sub鍵按下,下調(diào)設(shè)定值 if(alanum==255) { alanum=50。//最大值為50攝氏度,循環(huán)顯示 } } } if(sub==0) { delay1(z)。//延時消抖 if(add==0) { alanum++。 //延時消抖 if(alarm==0) { flag=1。 }/********************溫度值設(shè)定、報警函數(shù)**********************************/void Alarm(){ bit flag。 Display(4,11)。}/**********************溫度顯示函數(shù)**************************************/void Showtemperature(uchar tt){ Display(2,tt/10)。 dula=0。 dula=1。 wela=0。 wela=1。//測量0~50度,只取temp低八位}/**********************數(shù)碼管驅(qū)動函數(shù)*************************************/void Display(uchar wei,uchar duan){ dula=0。//tempL右移四位去掉小數(shù)位 temperature=tempamp。//讀出溫度低位LSB tempH=ReadOneChar()。 //跳過讀序號列號的操作 WriteOneChar(0xBE)。 Init_DS18B20()。 // 跳過讀序列號的操作 WriteOneChar(0x44)。 Init_DS18B20()。}/*************************產(chǎn)生溫度值***************************************/void GetTemperature(){ uchar tempL,tempH。 dat=1。 delay(5)。
點擊復(fù)制文檔內(nèi)容
物理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1