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

正文內(nèi)容

基于單片機最小系統(tǒng)的溫度控制系統(tǒng)(文件)

2025-08-14 03:54 上一頁面

下一頁面
 

【正文】 scan_delay(10)。}//當溫度值達到 0 時不再調(diào)if(a==2){if(count0) count=0。}/*****************************讀鍵盤函數(shù)******************************/void keyscan(){ if(key1==0){ if(v2==0)beer=0。 //開定時器 1,通過 s 標志位的變化,實現(xiàn)在上下限溫度調(diào)整時溫度顯示時閃爍的功能 k4=1。 //進入正常模式 TR1=0。 //存儲調(diào)整后的上下限報警溫度 } switch(i) //顯示選擇 { case 0:a=0。 //a=1 選擇顯示上限溫度 case 2:a=2。 //K1 松按鍵時消抖keyscan_delay(10)。max=temp_change(max,f_max)。min=temp_change(min,f_min)。if(key4==0){ beer=1。else f_min=~f_min。keyscan_delay(10)。 //開定時器 1 開始定時一分鐘左右 s1=1。keyscan_delay(10)。 //開定時器 1 開始定時 1s s1=1。v1=0。if(key4==0){ beer=1。 }}} }endif/*********************************************************************** 程序名。 //用 wei3 表示 口sbit wei4=P2^7。 //帶小數(shù)點的 0.~9.uchar code temperature3[]={ 0xff,0x7f,0xbf,0x89,0xc7}。i) for(j=120。 //設(shè)定定時器 1 工作在方式 1,最大定時 TH0=0x3c。 //開定時器 1 中斷 TR1=t。 //每進入一次定時器中斷 num 加 1(每 50ms 加 1 一次) if(num5) { s=1。led=1。} else {beer=0。 //定時 1s 時間到時自動關(guān)閉報警上下限顯示功能 v1=1。 else P0=temperature3[2]。 else P0=temperature1[k%100/10]。 for(i=0。 //關(guān)第三個數(shù)碼管 wei4=0。 //若 a=1 則在第一個數(shù)碼管上顯示‘H’ } if(a==2) { P0=temperature3[4]。 wei4=0。//若 s=0 則顯示第二個數(shù)碼管,否則不顯示 else P0=temperature3[0]。 if(s1==1) selsct_1(f_min,min)。 wei4=0。//若 s=0 則顯示第三個數(shù)碼管,否則不顯示 else P0=temperature3[0]。 if(s1==1) selsct_2(f_min,min)。 wei3=0。//若 s=0 則顯示第四個數(shù)碼管,否則不顯示 else P0=temperature3[0]。 if(s1==1) P0=temperature1[min%10]。 bit f=0。j4。 wei1=1。 wei3=0。 P0=temperature3[2]。 wei3=1。 wei2=0。 P0=temperature3[2]。extern unsigned char _cror_ (unsigned char, unsigned char)。extern unsigned int _irol_ (unsigned int, unsigned char)。extern void _pop_ (unsigned char _sfr)。extern unsigned char _chkfloat_(float)。extern unsigned long _lror_ (unsigned long, unsigned char)。 //每個數(shù)碼管顯示 200ms 左右 } }}endif/**/ifndef __INTRINS_H__define __INTRINS_H__extern void _nop_ (void)。 wei4=1。 P0=temperature3[2]。 wei2=0。 wei2=1。 P0=temperature3[2]。 wei3=0。iz。} } display_delay(10)。//若 s1=1 則顯示第四個數(shù)碼管 } if(a==2) //若 a=2 則在第四個數(shù)碼管上顯示下限報警溫度的個位 { if(s==0) P0=temperature1[min%10]。 if(a==0){P0=temperature1[t_d]。} case 3: //選通第四個數(shù)碼管 {wei1=0。//若 s1=1 則顯示第三個數(shù)碼管 } if(a==2) //若 a=2 則在第三個數(shù)碼管上顯示下限報警溫度的十位或 ‘’ { if(s==0) selsct_2(f_min,min)。 if(a==0){P0=temperature2[t%10]。} case 2: //選通第三個數(shù)碼管 {wei1=0。//若 s1=1 則顯示第二個數(shù)碼管(s1 標志位用于上下限查看時的顯示) } if(a==2) //若 a=2 則在第二個數(shù)碼管上顯示下限報警溫度的百位或 ‘’ { if(s==0) selsct_1(f_min,min)。 if(a==0){selsct_2(f,t)。} case 1: //選通第二個數(shù)碼管 {wei1=0。 //開第一個數(shù)碼管 if(a==0){selsct_1(f,t)。i++) //依次從左至右選通數(shù)碼管顯示,實現(xiàn)動態(tài)顯示 { switch(i) { case 0: //選通第一個數(shù)碼管 {wei2=0。 else P0=temperature1[k%100/10]。amp。 else P0=temperature1[k/100]。}}if(num20) //進入 20 次中斷,定時 1s { num=0。 if(w==1) {beer=0。led=1。 //重新賦初值,定時 50ms TL0=0xb0。 EA=1。j)。for(i=t。 //定義 num 為全局無符號字符型變量,賦初值為uchar code temperature1[]={ 0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90}。 //可位尋址變量定義,用 wei1 表示 口sbit wei2=P2^5。 //為‘0’時開按鍵音,為‘1’時關(guān)按鍵音 }while(key4==0)。} //a=0 顯示實測溫度,v1 清零,關(guān)定時器 1if(k4==0) //k4=0 時 K4 按鍵選擇消按鍵音的功能{ if(key4==0){if(v2==0)beer=0。keyscan_delay(10)。 a=2。keyscan_delay(10)。 a=1。keyscan_delay(10)。else f_max=~f_max。if(k4==1) //k4=1 時 K4 按鍵選擇正負溫度設(shè)定功能{if(key4==0){ if(v2==0)beer=0。amp。amp。 //a=2 選擇顯示下限溫度 default:break。 //a=0 選擇顯示測得的溫度 case 1:a=1。 //在正常模式下選擇 K4 的消按鍵音功能 v=0。 //在上下溫度調(diào)節(jié)功能模式下選擇 KK3 的溫度加減功能 i++。if(key1==0) //K1 按按鍵時消抖{ beer=1。keyscan_delay(10)。 count。 //K2 松開按鍵時消抖keyscan_delay(10)。} } if(f!=0) //若溫度為負 { count++。 //延時 10msif(key2==0) //再次判斷 K2 是否按下(實現(xiàn)按按鍵時消抖){ beer=1。j0。 //消按鍵音功能調(diào)整位,為‘0’時開按鍵音,為‘1’時關(guān)按鍵音/***************************讀鍵盤延時子函數(shù)**************************/void keyscan_delay(uint z) //延時 1ms 左右{ uint i,j。 //定義全局變量 a 用于不同模式下數(shù)碼管顯示的選擇bit k4=0。 //用 key2 表示 口sbit key3=P1^6。TR1=1。} //當測量值小于最大值或大于最小值時報警 if((tempmin)amp。TR1=1。} //若測量值是負值時報警 } if(f_min==1) //若下限值是負值 { if(f==0) //若測量值是正值 { if(temp=max)//當測量值大于最大值時報警 {w=1。} if(tempmax) check=1。TR1=1。 //向配置寄存器寫命令,進行溫度值分辨率設(shè)置ds18b20_init()。 //向 DS18B20 發(fā)跳過讀 ROM 命令ds18b20_write(0x4e)。 }}/*************************存儲極限溫度函數(shù)***************************/ void store_t() {if(f_max==1) //若上限溫度為負,將上限溫度轉(zhuǎn)換成有符號數(shù)(最高位為 1是負,為 0 是正)max=max+0x80。 temp=((a4)|(b4))。 temp_d=a。if (i==0){ f=0。min=(min0x80)。max=(max0x80)。 //讀內(nèi)部 RAM (MSB)if(flag==1) //局部位變量 f=1 時讀上下線報警溫度{ max=ds18b20_read()。 //DS18B20 初始化ds18b20_write(0xcc)。 //寫啟動 DS18B20 進行溫度轉(zhuǎn)換命令,轉(zhuǎn)換結(jié)果存入內(nèi)部 RAMif(flag==1){ //首次啟動 DS18B20 進行溫度轉(zhuǎn)換需要 500ms,若轉(zhuǎn)換時間不夠就出錯,讀出的是 85 度的錯誤值。 uint i。 ds18b20_delayus(5)。i0。ds18b20_delayus(10)。_nop_()。 //準備讀;for(i=8。 //延時,等待上拉電阻拉高總線DQ=1。 //控制器向 DS18B20 發(fā)低電平脈沖ds18b20_delayus(80)。j)。for(i=t。 //下限溫度的標志位‘0’表示“正溫度” 、 ‘1’表示“負溫度” )bit w=0。 //測量溫度的整數(shù)部分uchar
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1