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

正文內(nèi)容

基于單片機最小系統(tǒng)的溫度控制系統(tǒng)-閱讀頁

2024-08-15 03:54本頁面
  

【正文】 *************** 程序名。 //可位尋址變量定義,用 key1 表示 口sbit key2=P1^5。 //用 key3 表示 口sbit key4=P3^3。 //定義全局變量 i 用于不同功能模式的選擇, ‘0’正常模式,‘1’上限調(diào)節(jié)模式, ‘2’下限調(diào)節(jié)模式uchar a=0。 //K4 按鍵雙功能選擇位,k4=0 時 K4 按鍵選擇消按鍵音的功能,k4=1 時 K4 按鍵選擇正負溫度設(shè)定功能bit v=0。 //v1=1 時定時 1250ms 時間到自動關(guān)閉報警上下限查看功能bit v2=0。 for(i=z。i)for(j=120。j)。 //v2=0 開按鍵音,否則消按鍵音keyscan_delay(10)。 //K2 按下關(guān)按鍵音 if(f==0) //若溫度為正 { count++。}//當溫度值大于 125 時不上調(diào) if(a==2){if(count125) count=125。 //每按一下 K2 溫度下調(diào) 1 if(a==1){if(count55) count=55。} }}while(key2==0)。}if(key3==0){ if(v2==0)beer=0。if(key3==0) //K3 按按鍵時消抖{ beer=1。 //每按一下 K3 溫度為正時下調(diào) 1,為負時上調(diào) 1if(a==1){if(count0) count=0。}}while(key3==0)。 //K3 松開按鍵時消抖}return count。keyscan_delay(10)。 TR1=1。 //在上下溫度調(diào)節(jié)功能模式下選擇 K4 的調(diào)整上下限溫度正負的功能 v=1。 //K1 按一下 i 加 1,i=‘0’進入正常模式,i= ‘1’進入調(diào)上限模式,i=‘ 2’進入調(diào)下限模式 if(i2) //K1 按下三次后退出調(diào)節(jié)模式 { i=0。 //關(guān)定時器 1 k4=0。 //在正常模式下選擇 KK3 的查看上下限報警溫度功能 store_t()。break。break。break。 } }while(key1==0)。}if(a==1amp。v==1) //a=1 選擇顯示上限溫度且 v=1 時選擇上下限溫度加功能{led=0。}//顯示上限溫度else if(a==2amp。v==1) //a=2 選擇顯示下限溫度且 v=1 時選擇上下限溫度減功能{led=1。}else。keyscan_delay(5)。 if(a==1) {if(max55) f_max=0。}//當溫度大于 55 度時,只能設(shè)定為正溫度 if(a==2) {if(min55) f_max=0。}//當溫度大于 55 度時,只能設(shè)定為正溫度 }while(key4==0)。}}if(v==0) //v=0 時選擇上下限查看功能{if(key2==0){ if(v2==0)beer=0。if(key2==0){ beer=1。 //選擇上限顯示 TR1=1。 //上限顯示不閃爍,顯示一分鐘左右自動退出}while(key2==0)。}if(key3==0){ if(v2==0)beer=0。if(key3==0){ beer=1。 //選擇下限顯示 TR1=1。 //下限顯示不閃爍,顯示 1s 自動退出 }while(key3==0)。}if(v1==1) //v1=1 時定時 1s 時間到自動關(guān)閉報警上下限查看功能{a=0。TR1=0。keyscan_delay(10)。 v2=~v2。keyscan_delay(10)。 ds18b20 數(shù)碼管動態(tài)顯示頭文件* 功 能: 通過定時器 0 延時是數(shù)碼管動態(tài)顯示**********************************************************************/includeifndef __ds18b20_display_H__ //定義頭文件define __ds18b20_display_H__define uint unsigned int //變量類型宏定義,用 uint 表示無符號整形(16 位)define uchar unsigned char //變量類型宏定義,用 uchar 表示無符號字符型(8 位)sbit wei1=P2^4。 //用 wei2 表示 口sbit wei3=P2^6。 //用 wei4 表示 口uchar num=0。 //定義顯示碼表 0~9uchar code temperature2[]={ 0x40,0x79,0x24,0x30,0x19, 0x12,0x02,0x78,0x00,0x10}。 //依次是‘不顯示’ ‘.’‘’/*****************************延時子函數(shù)******************************/void display_delay(uint t) //延時 1ms 左右{uint i,j。i0。j0。}/**************************定時器 1 初始化函數(shù)***************************/void timer1_init(bit t){ TMOD=0x10。 //定時器賦初值,定時 50ms TL0=0xb0。 //開總中斷 ET1=1。 // 局部變量 t 為 1 啟動定時器 1,為 0 關(guān)閉定時器 1}/**************************定時器 1 中斷函數(shù)*****************************/void timer1() interrupt 3{ TH0=0x3c。num++。 if(w==1) {beer=1。} else {beer=0。}}else //進入 4 次中斷,定時 200ms 時若報警標志位 w 為‘1’則啟動報警,不為‘1’不啟動 //實現(xiàn)間歇性報警功能{ s=0。led=0。led=1。 //num 歸 0,重新定開始定時 1s s1=0。 //定時 1s 時間到時自動關(guān)閉報警上下限查看功能 }}/*********************調(diào)整報警上下限顯示選擇函數(shù)**********************/void selsct_1(uchar f,uchar k) //消除百位的 0 顯示,及正負溫度的顯示選擇{ if(f==0) //若為正溫度,百位為 0 則不顯示百位,不為 0 則顯示 { if(k/100==0) P0=temperature3[0]。 } if(f==1) //若為負溫度,若十位為 0,百位不顯示,否則百位顯示‘ ’ { if(k%100/10==0) P0=temperature3[0]。 }}void selsct_2(bit f,uchar k) //消除十位的 0 顯示,及正負溫度的顯示選擇{ if(f==0) //若為正溫度,百位十位均為 0 則不顯示十位,否則顯示十位 { if((k/100==0)amp。(k%100/10==0)) P0=temperature3[0]。 } if(f==1) //若為負溫度,若十位為 0,十位不顯示,否則十位顯示‘ ’ { if(k%100/10==0) P0=temperature3[2]。 }}/****************************主顯示函數(shù)********************************/void display(uchar t,uchar t_d) //用于實測溫度、上限溫度的顯示{ uchar i。i4。 //關(guān)第二個數(shù)碼管 wei3=0。 //關(guān)第四個數(shù)碼管 wei1=1。} //若 a=0 則在第一個數(shù)碼管上顯示測量溫度的百位或‘’ if(a==1) { P0=temperature3[3]。 //若 a=2 則在第一個數(shù)碼管上顯示‘L’ } break。 wei3=0。 wei2=1。} //若 a=0 則在第二個數(shù)碼管上顯示測量溫度的十位或‘’ if(a==1) //若 a=1 則在第二個數(shù)碼管上顯示上限報警溫度的百位或 ‘’ { if(s==0) selsct_1(f_max,max)。 //通過 s 標志位的變化實現(xiàn)調(diào)節(jié)上下限報警溫度時數(shù)碼管的閃爍 if(s1==1) selsct_1(f_max,max)。 else P0=temperature3[0]。 } break。 wei2=0。 wei3=1。}//若 a=0 則在第三個數(shù)碼管上顯示測量溫度的個位 if(a==1) //若 a=1 則在第三個數(shù)碼管上顯示上限報警溫度的十位或 ‘’ { if(s==0) selsct_2(f_max,max)。 if(s1==1) selsct_2(f_max,max)。 else P0=temperature3[0]。 } break。 wei2=0。 wei4=1。}//若 a=0 則在第四個數(shù)碼管上顯示測量溫度的小數(shù)位 if(a==1) //若 a=1 則在第四個數(shù)碼管上顯示上限報警溫度的個位 { if(s==0) P0=temperature1[max%10]。 if(s1==1) P0=temperature1[max%10]。 else P0=temperature3[0]。 } break。 //每個數(shù)碼管顯示 3ms 左右}}/****************************開機顯示函數(shù)******************************/void display1(uint z) //用于開機動畫的顯示{ uchar i,j。 for(i=0。i++) //‘z’是顯示遍數(shù)的設(shè)定 { for(j=0。j++) //依次從左至右顯示‘’ { switch(j) { case 0: wei2=0。 wei4=0。 break。//第一個數(shù)碼管顯示 case 1: wei1=0。 wei4=0。break。//第二個數(shù)碼管顯示 case 2: wei1=0。 wei4=0。break。//第三個數(shù)碼管顯示 case 3: wei1=0。 wei3=0。break。//第四個數(shù)碼管顯示 } display_delay(400)。extern bit _testbit_ (bit)。extern unsigned int _iror_ (unsigned int, unsigned char)。extern unsigned char _crol_ (unsigned char, unsigned char)。extern unsigned long _lrol_ (unsigned long, unsigned char)。extern void _push_ (unsigned char _sfr)。endif
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1