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

正文內(nèi)容

火災(zāi)自動報警系統(tǒng)的設(shè)計方案-閱讀頁

2025-05-29 07:29本頁面
  

【正文】 rase(0x2000)。 byte_write(0x2001, s_dengji)。 }/******************把數(shù)據(jù)從單片機內(nèi)部eepom中讀出來*****************/void read_eepom(){ s_temp = byte_read(0x2000)。 a_a = byte_read(0x2060)。 //先讀 if(a_a != 1) //新的單片機初始單片機內(nèi)問EEPOM { s_temp = 50。 a_a = 1。 } }/***********************18b20初始化函數(shù)*****************************/void init_18b20(){ bit q。 //把總線拿高 delay_uint(1)。 //給復(fù)位脈沖 delay_uint(80)。 //把總線拿高 等待 delay_uint(10)。 //讀取18b20初始化信號 delay_uint(20)。 //把總線拿高 釋放總線}/*************寫18b20內(nèi)的數(shù)據(jù)***************/void write_18b20(uchar dat){ uchar i。i8。 //把總線拿低寫時間隙開始 dq = dat amp。 //向18b20總線寫數(shù)據(jù)了 delay_uint(5)。 //釋放總線 dat = 1。 for(i=0。i++) { dq = 0。 //讀數(shù)據(jù)是低位開始 dq = 1。 delay_uint(5)。 //返回數(shù)據(jù)}/*************讀取溫度的值 讀出來的是小數(shù)***************/uint read_temp(){ uint value。 //在讀取溫度的時候如果中斷的太頻繁了,就應(yīng)該把中斷給關(guān)了,否則會影響到18b20的時序 init_18b20()。 //跳過64位ROM write_18b20(0x44)。 //500us init_18b20()。 //跳過64位ROM write_18b20(0xbe)。 low = read_18b20()。 //讀溫度高字節(jié) EA = 1。 //把溫度的高位左移8位 value |= low。 //轉(zhuǎn)換到溫度值 return value。 SCL=0。 CS=0。 //第一個上升沿 SCL=0。 SCL=1。 DO=ODD。 //第三個上升沿 SCL=0。 for(i=0。i++) { SCL=1。 //開始從第四個下降沿接收數(shù)據(jù) value=1。 } for(i=0。i++) { //接收校驗數(shù)據(jù) value1=1。 SCL=1。 } CS=1。 if(value==value1) //與校驗數(shù)據(jù)比較,正確就返回數(shù)據(jù),否則返回0 return value。}/***********************數(shù)碼顯示函數(shù)*****************************/void display(){ uchar i。ismg_i。 //位選 P1 = dis_smg[i]。 P1 = 0xff。 //位選 } }/****************按鍵處理數(shù)碼管顯示函數(shù)***************/void key_with(){ if(key_can == 4) //緊急報警鍵 手動報警 { if(menu_1 == 0) shoudong = 1。 if(menu_1 = 3) { menu_1 = 0。 //取溫度的個位數(shù)顯示 dis_smg[1] = smg_du[temperature / 10 % 10]。 } if(menu_1 == 1) { dis_smg[0] = smg_du[s_temp % 10]。 //取十位顯示 dis_smg[2] = 0xbf 。 //顯示A smg_i = 4。 //取個位顯示 dis_smg[1] = 0xbf 。 dis_smg[3] = smg_du[11]。 } } if(menu_1 == 0) { if((key_can == 2) || (key_can == 3)) shoudong = 0。 //按鍵按下未松開自動加三次 else s_temp += 10。 dis_smg[0] = smg_du[s_temp % 10]。 //取十位顯示 dis_smg[2] = 0xbf 。 //顯示A } if(key_can == 3) { if(flag_lj_3_en == 0) s_temp 。 //按鍵按下未松開自動減三次之后每次自動減10 if(s_temp = 10) s_temp = 10 。 //取個位顯示 dis_smg[1] = smg_du[s_temp / 10 % 10]。 dis_smg[3] = smg_du[10]。 else s_dengji ++ 。 dis_smg[0] = smg_du[s_dengji % 10]。 dis_smg[2] = 0xbf 。 //顯示B } if(key_can == 3) { if(flag_lj_3_en == 0) s_dengji 。 if(s_dengji = 1) s_dengji = 1。 //取個位顯示 dis_smg[1] = 0xbf 。 dis_smg[3] = smg_du[11]。 if(key_new == 0) { //按鍵松開的時候做松手檢測 if((P2 amp。 else key_value = 0。 key_value = 0。 key_new = 1。 //關(guān)閉連加使能 flag_lj_3_en = 0。 //清零 } } else { if((P2 amp。 //按鍵按下的時候 else key_value = 0。 key_new = 0。 //連加使能 zd_break_en = 1。 //自動退出設(shè)置界變量清零 } } key_can = 20。 zd_break_en = 1。 //自動退出設(shè)置界變量清零 key_new = 0。 } if((key_new == 0) amp。 (key_old == 1)) { switch(P2 amp。 break。 break。 break。 break。 }/****************報警函數(shù)***************/void clock_h_l(){ static uchar value。 if(value = 3) { value = 10。 //蜂鳴器報警 } }else { if((dengji s_dengji) amp。 (temperature (s_temp 1)) amp。 (shoudong == 0)) //取消報警 { value = 0。 } }}void main(){ static uchar value。 //讀取溫度值 init_eepom()。 //初始化定時器 delay_1ms(650)。 //獨立按鍵程序 if(key_can 10) { key_with()。 //讀取溫度值 if(flag_300ms == 1) { flag_300ms = 0。 dengji = ad0832read(1,0)。 huoyan = ad0832read(1,1)。 if(menu_1 == 0) { if(temperature = 99) temperature = 99。 if(huoyan 2) { smg_i = 4。 //顯示煙物報警等級 dis_smg[2]= 0xbf。 //十位 dis_smg[0]=smg_du[temperature%10]。 smg_i = 4。 //H。 //H。 //H。 //H。 //每300ms加一次 if(zd_break_value 100) //30秒后自動退出設(shè)置界面 { menu_1 = 0。 zd_break_en = 0。 } } } display()。 TH0 = 0x3c。 // 50ms value ++。 //300ms value = 0。 if(key_time = 10) //500ms { key_time = 0。 //500ms flag_value ++。 flag_lj_3_en =
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1