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

正文內(nèi)容

基于單片機(jī)的防火防盜警報(bào)系統(tǒng)設(shè)計(jì)1-資料下載頁(yè)

2025-06-27 21:16本頁(yè)面
  

【正文】 **/uchar read_18b20(){ uchar i,value。 for(i=0。i8。i++) { dq = 0。 //把總線(xiàn)拿低讀時(shí)間隙開(kāi)始 value = 1。 //讀數(shù)據(jù)是低位開(kāi)始 dq = 1。 //釋放總線(xiàn) if(dq == 1) //開(kāi)始讀寫(xiě)數(shù)據(jù) value |= 0x80。 delay_uint(5)。 //60us 讀一個(gè)時(shí)間隙最少要保持60us的時(shí)間 } return value。 //返回?cái)?shù)據(jù)}/*************讀取溫度的值 讀出來(lái)的是小數(shù)***************/uint read_temp(){ uint value。 uchar low。 //在讀取溫度的時(shí)候如果中斷的太頻繁了,就應(yīng)該把中斷給關(guān)了,否則會(huì)影響到18b20的時(shí)序 init_18b20()。 //初始化18b20 write_18b20(0xcc)。 //跳過(guò)64位ROM write_18b20(0x44)。 //啟動(dòng)一次溫度轉(zhuǎn)換命令 delay_uint(50)。 //500us init_18b20()。 //初始化18b20 write_18b20(0xcc)。 //跳過(guò)64位ROM write_18b20(0xbe)。 //發(fā)出讀取暫存器命令 EA = 0。 low = read_18b20()。 //讀溫度低字節(jié) value = read_18b20()。 //讀溫度高字節(jié) EA = 1。 value = 8。 //把溫度的高位左移8位 value |= low。 //把讀出的溫度低位放到value的低八位中 value *= 。 //轉(zhuǎn)換到溫度值 return value。 //返回讀出的溫度 }/***********讀數(shù)模轉(zhuǎn)換數(shù)據(jù)********************************************************/ //請(qǐng)先了解ADC0832模數(shù)轉(zhuǎn)換的串行協(xié)議,再來(lái)讀本函數(shù),主要是對(duì)應(yīng)時(shí)序圖來(lái)理解,本函數(shù)是模擬0832的串行協(xié)議進(jìn)行的 // 1 0 0 通道 // 1 1 1 通道 unsigned char ad0832read(bit SGL,bit ODD){ unsigned char i=0,value=0,value1=0。 SCL=0。 DO=1。 CS=0。 //開(kāi)始 SCL=1。 //第一個(gè)上升沿 SCL=0。 DO=SGL。 SCL=1。 //第二個(gè)上升沿 SCL=0。 DO=ODD。 SCL=1。 //第三個(gè)上升沿 SCL=0。 //第三個(gè)下降沿 DO=1。 for(i=0。i8。i++) { SCL=1。 SCL=0。 //開(kāi)始從第四個(gè)下降沿接收數(shù)據(jù) value=1。 if(DO) value++。 } for(i=0。i8。i++) { //接收校驗(yàn)數(shù)據(jù) value1=1。 if(DO) value1+=0x80。 SCL=1。 SCL=0。 } CS=1。 SCL=1。 if(value==value1) //與校驗(yàn)數(shù)據(jù)比較,正確就返回?cái)?shù)據(jù),否則返回0 return value。 return 0。}/*************定時(shí)器0初始化程序***************/void time_init() { EA = 1。 //開(kāi)總中斷 TMOD = 0X01。 //定時(shí)器0、定時(shí)器1工作方式1 ET0 = 1。 //開(kāi)定時(shí)器0中斷 TR0 = 1。 //允許定時(shí)器0定時(shí)}/********************獨(dú)立按鍵程序*****************/uchar key_can。 //按鍵值void key() //獨(dú)立按鍵程序{ static uchar key_new。 key_can = 20。 //按鍵值還原 P1 |= 0x0f。 if((P1 amp。 0x0f) != 0x0f) //按鍵按下 { delay_1ms(1)。 //按鍵消抖動(dòng) if(((P1 amp。 0x0f) != 0x0f) amp。amp。 (key_new == 1)) { //確認(rèn)是按鍵按下 key_new = 0。 switch(P1 amp。 0x0f) { case 0x0e: key_can = 4。 break。 //得到k1鍵值 case 0x0d: key_can = 3。 break。 //得到k2鍵值 case 0x0b: key_can = 2。 break。 //得到k3鍵值 case 0x07: key_can = 1。 break。 //得到k4鍵值 } } } else key_new = 1。 }/****************按鍵處理LCD1602液晶顯示函數(shù)***************/void key_with(){ if(key_can == 4) //緊急報(bào)警鍵 手動(dòng)報(bào)警 { if(menu_1 == 0) shoudong = 1。 } if(key_can == 1) //設(shè)置鍵 { menu_1 ++。 if(menu_1 = 3) { menu_1 = 0。 } if(menu_1 == 0) init_1602() 。 //初始化顯示 } if(menu_1 == 0) { if((key_can == 2) || (key_can == 3)) shoudong = 0。 //取消手動(dòng)報(bào)警 } if(menu_1 == 1) //設(shè)置高溫報(bào)警 { if(key_can == 2) { s_temp ++ 。 //高溫報(bào)警值加1 if(s_temp 99) s_temp = 99。 } if(key_can == 3) { s_temp 。 //高溫報(bào)警值減1 if(s_temp = 10) s_temp = 10 。 } write_sfm2(1,8,s_temp)。 //顯示溫度 write_sfm2(2,8,s_dengji)。 //顯示煙物等級(jí) write_(0x80+7)。 //將光標(biāo)移動(dòng)到第2行第到3位 write_(0x0f)。 //顯示光標(biāo)并且閃爍 write_eeprom()。 //保存數(shù)據(jù) } if(menu_1 == 2) //設(shè)置低溫報(bào)警 { if(key_can == 2) { s_dengji ++ 。 //煙物報(bào)警值加1 if(s_dengji = 99) s_dengji = 99。 } if(key_can == 3) { s_dengji 。 //煙物報(bào)警值減1 if(s_dengji = 1) s_dengji = 1。 } write_sfm2(1,8,s_temp)。 //顯示溫度 write_sfm2(2,8,s_dengji)。 //顯示煙物等級(jí) write_(0x80+0x40+7)。 //將光標(biāo)移動(dòng)到第2行第到3位 write_(0x0f)。 //顯示光標(biāo)并且閃爍 write_eeprom()。 //保存數(shù)據(jù) } } /****************報(bào)警函數(shù)***************/void clock_h_l(){ static uchar value。 if((dengji = s_dengji) || (temperature = s_temp) || (shoudong == 1)) //報(bào)警 { value ++。 if(value = 2) { value = 10。 beep = ~beep。 //蜂鳴器報(bào)警 fengshan = 0。 //起動(dòng)風(fēng)扇 } }else { if((dengji s_dengji) amp。amp。 (temperature (s_temp)) amp。amp。 (shoudong == 0)) //取消報(bào)警 { value = 0。 beep = 1。 fengshan = 1。 //關(guān)閉風(fēng)扇 } }}/***************主函數(shù)*****************/void main(){ beep = 0。 //開(kāi)機(jī)蜂鳴器叫一聲 delay_1ms(200)。 P0 = P1 = P2 = P3 = 0xff。 //初始化IO口 temperature = read_temp()。 //讀取溫度值 init_1602()。 //1602液晶初始化 init_eeprom()。 //讀eeprom數(shù)據(jù) time_init()。 //初始化定時(shí)器 delay_1ms(650)。 while(1) { key()。 //獨(dú)立按鍵程序 if(key_can 10) { key_with()。 //按鍵按下要執(zhí)行的程序 } if(flag_300ms == 1) { flag_300ms = 0。 temperature = read_temp()。 //讀取溫度值 clock_h_l()。 dengji = ad0832read(1,0)。 dengji = dengji * 99 / 255。 if(menu_1 == 0) { if(temperature = 99) temperature = 99。 write_sfm2(1,8,temperature)。 //顯示溫度 write_sfm2(2,8,dengji)。 //顯示煙物等級(jí) } } }}/*************定時(shí)器0中斷服務(wù)程序***************/void time0_int() interrupt 1{ static uchar value。 TH0 = 0x3c。 TL0 = 0xb0。 // 50ms value ++。 if(value % 6 == 0) { flag_300ms = 1。 //300ms value = 0。 }}42
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1