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

正文內(nèi)容

單片機(jī)課程設(shè)計(jì)報(bào)告-基于at89c51單片機(jī)的數(shù)顯溫度傳感器設(shè)計(jì)-預(yù)覽頁

2025-06-30 21:00 上一頁面

下一頁面
 

【正文】 的調(diào)整實(shí)現(xiàn)了實(shí)驗(yàn)要求。 基于51單片機(jī)的溫度計(jì)* 功 能: 實(shí)時(shí)測(cè)量溫度,超過上下限報(bào)警,報(bào)警溫度可手動(dòng)調(diào)整。 *********************************************************************/include include //(調(diào)用其中的_nop_()空操作函數(shù)延時(shí))define uint unsigned int define uchar unsigned char uchar max=0x00,min=0x00。 //聲明display1()函數(shù)(,)include include include /******************************************************//* 主函數(shù) //*****************************************************/void main(){ beer=1。 //首次啟動(dòng)DS18B20獲取溫度(DS18B20上電后自動(dòng)將EEPROM中的上下限溫度復(fù)制到TH和TL寄存器) while(1) { keyscan()。 }}/*********************************************************************** 程序名。 sbit key4=P3^3。 //K4按鍵雙功能選擇位,k4=0時(shí)K4按鍵選擇消按鍵音的功能,k4=1時(shí)K4按鍵選擇正負(fù)溫度設(shè)定功能bit v=0。 for(i=z。j)。 //K2按下關(guān)按鍵音 if(f==0) //若溫度為正 { count++。 //每按一下K2溫度下調(diào)1 if(a==1){if(count55) count=55。 } if(key3==0) { if(v2==0)beer=0。 //每按一下K3溫度為正時(shí)下調(diào)1,為負(fù)時(shí)上調(diào)1 if(a==1){if(count0) count=0。 //K3松開按鍵時(shí)消抖 } return count。 TR1=1。 //K1按一下i加1,i=‘0’進(jìn)入正常模式,i=‘1’進(jìn)入調(diào)上限模式,i=‘2’進(jìn)入調(diào)下限模式 if(i2) //K1按下三次后退出調(diào)節(jié)模式 { i=0。 //在正常模式下選擇KK3的查看上下限報(bào)警溫度功能 store_t()。break。 } } while(key1==0)。v==1) //a=1選擇顯示上限溫度且v=1時(shí)選擇上下限溫度加功能 {led=0。v==1) //a=2選擇顯示下限溫度且v=1時(shí)選擇上下限溫度減功能 {led=1。 keyscan_delay(5)。}//當(dāng)溫度大于55度時(shí),只能設(shè)定為正溫度 if(a==2) {if(min55) f_max=0。 } } if(v==0) //v=0時(shí)選擇上下限查看功能 { if(key2==0) { if(v2==0)beer=0。 //選擇上限顯示 TR1=1。 } if(key3==0) { if(v2==0)beer=0。 //選擇下限顯示 TR1=1。 } if(v1==1) //v1=1時(shí)定時(shí)1s時(shí)間到自動(dòng)關(guān)閉報(bào)警上下限查看功能 {a=0。 keyscan_delay(10)。 keyscan_delay(10)。 //DS18B20接口sbit beer=P1^0。 //測(cè)量溫度的小數(shù)部分bit f=0。 //報(bào)警標(biāo)志位‘1’啟動(dòng)報(bào)警,‘0’關(guān)閉報(bào)警。i0。}/******************************************************//* DS18B20初始化函數(shù) //*****************************************************/void ds18b20_init() { uchar c=0。 //延時(shí)1580μs DQ=1。 //拉高數(shù)據(jù)線,準(zhǔn)備數(shù)據(jù)傳輸;}/******************************************************//* DS18B20字節(jié)讀函數(shù) //*****************************************************/uchar ds18b20_read() { uchar i。i0。 _nop_()。 } return d。i) { DQ=0。 DQ=1。 ds18b20_init()。 display1(1)。 ds18b20_write(0xbe)。 //讀內(nèi)部RAM (TH) min=ds18b20_read()。} //將上限溫度符號(hào)標(biāo)志位置‘1’表示負(fù)溫度,將上限溫度裝換成無符號(hào)數(shù)。} //將下限溫度符號(hào)標(biāo)志位置‘1’表示負(fù)溫度,將下限溫度裝換成無符號(hào)數(shù)。 //i為0,正溫度,設(shè)立正溫度標(biāo)記 temp=((a4)|(b4))。 //小數(shù)部分 } else { f=1。 //整數(shù)部分 a=(aamp。 if(f_min==1) //若下限溫度為負(fù),將上限溫度轉(zhuǎn)換成有符號(hào)數(shù) min=min+0x80。 //向DS18B20發(fā)寫字節(jié)至?xí)捍嫫?和3(TH和TL)命令 ds18b20_write(max)。 ds18b20_write(0xcc)。} //當(dāng)測(cè)量值小于最小值或大于最大值時(shí)報(bào)警 if((tempmax)amp。TR1=1。} } if(f==1) //若測(cè)量值是負(fù)值 { if(temp=min)//當(dāng)測(cè)量值大于最小值時(shí)報(bào)警 {w=1。TR1=1。} //當(dāng)測(cè)量值小于最小值且大于最大值時(shí)不報(bào)警 } if(f==0){w=1。 //可位尋址變量定義,sbit wei2=P2^5。 //定義num為全局無符號(hào)字符型變量,賦初值為‘0’uchar code temperature1[]={ 0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90}。 for(i=t。j)。 EA=1。 //重新賦初值,定時(shí)50ms TL0=0xb0。led=1。if(w==1){beer=0。}} if(num20) //進(jìn)入20次中斷,定時(shí)1s { num=0。 else P0=temperature1[k/100]。amp。 else P0=temperature1[k%100/10]。i++) //依次從左至右選通數(shù)碼管顯示,實(shí)現(xiàn)動(dòng)態(tài)顯示 { switch(i) { case 0: //選通第一個(gè)數(shù)碼管 wei2=0。 //開第一個(gè)數(shù)碼管 if(a==0){selsct_1(f,t)。 case 1: //選通第二個(gè)數(shù)碼管 wei1=0。 if(a==0){selsct_2(f,t)。//若s1=1則顯示第二個(gè)數(shù)碼管(s1標(biāo)志位用于上下限查看時(shí)的顯示) } if(a==2) //若a=2則在第二個(gè)數(shù)碼管上顯示下限報(bào)警溫度的百位或‘’ { if(s==0) selsct_1(f_min,min)。 case 2: //選通第三個(gè)數(shù)碼管 wei1=0。 if(a==0){P0=temperature2[t%10]。//若s1=1則顯示第三個(gè)數(shù)碼管 } if(a==2) //若a=2則在第三個(gè)數(shù)碼管上顯示下限報(bào)警溫度的十位或‘’ { if(s==0) selsct_2(f_min,min)。 case 3: //選通第四個(gè)數(shù)碼管 wei1=0。 if(a==0){P0=temperature1[t_d]。//若s1=1則顯示第四個(gè)數(shù)碼管 } if(a==2) //若a=2則在第四個(gè)數(shù)碼管上顯示下限報(bào)警溫度的個(gè)位 { if(s==0) P0=temperature1[min%10]。 } display_delay(10)。iz。 wei3=0。 P0=temperature3[2]。 wei2=1。 wei2=0。 P0=temperature3[2]。 wei4=1。 //每個(gè)數(shù)碼管顯示200ms左右 } }}endif六、參考文獻(xiàn)參考文獻(xiàn)的格式如下:12012年1月(第四版
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1