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

正文內(nèi)容

單片機(jī)課程設(shè)計報告-基于at89c51單片機(jī)的數(shù)顯溫度傳感器設(shè)計(文件)

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

下一頁面
 

【正文】 *************************//* 延時子函數(shù) //*****************************************************/void display_delay(uint t) //延時1ms左右{ uint i,j。j0。 TL0=0xb0。 // 局部變量t為1啟動定時器1,為0關(guān)閉定時器1}/******************************************************//* 定時器1中斷函數(shù) //*****************************************************/void timer1() interrupt 3{ TH0=0x3c。if(w==1){beer=1。}} else //進(jìn)入4次中斷,定時200ms時若報警標(biāo)志位w為‘1’則啟動報警,不為‘1’不啟動 //實現(xiàn)間歇性報警功能 {s=0。led=1。 //定時1s時間到時自動關(guān)閉報警上下限查看功能 } }/******************************************************//* 調(diào)整報警上下限選擇函數(shù) //*****************************************************/void selsct_1(uchar f,uchar k) //消除百位的0顯示,及正負(fù)溫度的顯示選擇{ if(f==0) //若為正溫度,百位為0則不顯示百位,不為0則顯示 { if(k/100==0) P0=temperature3[0]。 }}void selsct_2(bit f,uchar k) //消除十位的0顯示,及正負(fù)溫度的顯示選擇{ if(f==0) //若為正溫度,百位十位均為0則不顯示十位,否則顯示十位 { if((k/100==0)amp。 } if(f==1) //若為負(fù)溫度,若十位為0,十位不顯示,否則十位顯示‘’ { if(k%100/10==0) P0=temperature3[2]。i4。 //關(guān)第四個數(shù)碼管 wei1=1。 //若a=2則在第一個數(shù)碼管上顯示‘L’ } break。 wei2=1。 //通過s標(biāo)志位的變化實現(xiàn)調(diào)節(jié)上下限報警溫度時數(shù)碼管的閃爍 if(s1==1) selsct_1(f_max,max)。 } break。 wei3=1。 if(s1==1) selsct_2(f_max,max)。 } break。 wei4=1。 if(s1==1) P0=temperature1[max%10]。 } break。 for(i=0。j++) //依次從左至右顯示‘’ { switch(j) { case 0: wei2=0。 break。 wei4=0。//第二個數(shù)碼管顯示 case 2: wei1=0。break。 wei3=0。//第四個數(shù)碼管顯示 } display_delay(400)。電子工業(yè)出版社李群芳break。//第三個數(shù)碼管顯示 case 3: wei1=0。 wei4=0。break。//第一個數(shù)碼管顯示 case 1: wei1=0。 wei4=0。i++) //‘z’是顯示遍數(shù)的設(shè)定 { for(j=0。 //每個數(shù)碼管顯示3ms左右 } }/******************************************************//* 開機(jī)顯示函數(shù) //*****************************************************/void display1(uint z) //用于開機(jī)動畫的顯示{ uchar i,j。 else P0=temperature3[0]。}//若a=0則在第四個數(shù)碼管上顯示測量溫度的小數(shù)位 if(a==1) //若a=1則在第四個數(shù)碼管上顯示上限報警溫度的個位 { if(s==0) P0=temperature1[max%10]。 wei2=0。 else P0=temperature3[0]。}//若a=0則在第三個數(shù)碼管上顯示測量溫度的個位 if(a==1) //若a=1則在第三個數(shù)碼管上顯示上限報警溫度的十位或‘’ { if(s==0) selsct_2(f_max,max)。 wei2=0。 else P0=temperature3[0]。} //若a=0則在第二個數(shù)碼管上顯示測量溫度的十位或‘’ if(a==1) //若a=1則在第二個數(shù)碼管上顯示上限報警溫度的百位或‘’ { if(s==0) selsct_1(f_max,max)。 wei3=0。} //若a=0則在第一個數(shù)碼管上顯示測量溫度的百位或‘’ if(a==1) { P0=temperature3[3]。 //關(guān)第二個數(shù)碼管 wei3=0。 } }/******************************************************//* 主函數(shù)顯示 //*****************************************************/void display(uchar t,uchar t_d) //用于實測溫度、上限溫度的顯示{ uchar i。(k%100/10==0)) P0=temperature3[0]。 } if(f==1) //若為負(fù)溫度,若十位為0,百位不顯示,否則百位顯示‘’ { if(k%100/10==0) P0=temperature3[0]。 //num歸0,重新定開始定時1s s1=0。led=0。}else{beer=1。 num++。 ET1=1。}/******************************************************//* 定時器1初始化函數(shù) //*****************************************************/void timer1_init(bit t){ TMOD=0x10。i0。 //定義顯示碼表0~9uchar code temperature2[]={ 0x40,0x79,0x24,0x30,0x19, 0x12,0x02,0x78,0x00,0x10}。 //sbit wei3=P2^6。TR1=1。} //當(dāng)測量值小于最大值或大于最小值時報警 if((tempmin)amp。TR1=1。} //若測量值是負(fù)值時報警 } if(f_min==1) //若下限值是負(fù)值 { if(f==0) //若測量值是正值 { if(temp=max)//當(dāng)測量值大于最大值時報警 {w=1。amp。 ds18b20_write(0x48)。 //向暫存器TH(上限溫度暫存器)寫溫度 ds18b20_write(min)。 ds18b20_init()。0x0f)。 //i為1,負(fù)溫度,設(shè)立負(fù)溫度標(biāo)記 a=~a+1。 //整數(shù)部分 a=(aamp。 i=b。 if((minamp。 //讀內(nèi)部RAM (Tl) } if((maxamp。 a=ds18b20_read()。 //用開機(jī)動畫耗時 } else ds18b20_delayms(1)。 ds18b20_write(0xcc)。 d = 1。 DQ=damp。 //返回讀取的值}/******************************************************//* DS18B20字節(jié)寫函數(shù) //*****************************************************/void ds18b20_write(uchar d) { uchar i。 DQ = 1。i) { d = 1。 uchar d=0。 //控制器拉高總線, while(DQ)。 DQ=1。i) for(j=120。/*************
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1