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

正文內(nèi)容

基于at89c52單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)-資料下載頁(yè)

2024-12-06 01:23本頁(yè)面

【導(dǎo)讀】而如何監(jiān)測(cè)并控制游泳池的水溫,則是建游泳池主要關(guān)心的技術(shù)之。本文課題主要研究的水溫控制系統(tǒng)就是為了達(dá)到這樣的溫度控制要求。統(tǒng)設(shè)計(jì)了相關(guān)的硬件電路和相關(guān)應(yīng)用程序。最小系統(tǒng),測(cè)溫電路、實(shí)時(shí)時(shí)鐘電路、LCD液晶顯示電路以及報(bào)警模塊電路等。LCD顯示程序以及數(shù)據(jù)存儲(chǔ)程序等。

  

【正文】 temp_0=40。 } void key4() { shan=0。 flag_1=~flag_1。 } 中斷部分程序 void timer0() interrupt 1 //中斷 { static uchar count=0。 TH0=(6553650000)/256。 TL0=(6553650000)%256。 count++。 if(count10) flag=1。 else flag=0。 if(count==20) count=0。 } 閃爍部 分程序 define uchar unsigned char 附錄 27 define uint unsigned int uchar table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf}。 //陽(yáng)碼 uchar flag=0。 //半秒鐘 bit flag_1=0。 //設(shè)置 /測(cè)量值轉(zhuǎn)換 bit shan。 //數(shù)碼管閃爍位置 uchar temp_0。 //設(shè)置值 sbit key_1=P2^0。 //按鍵 sbit key_2=P2^1。 sbit key_3=P2^2。 sbit key_4=P2^3。 sbit DS=P3^7。 //18b20 sbit wei1=P2^7。 sbit wei2=P2^6。 //數(shù)碼管控制位 sbit wei3=P2^5。 sbit buzz=P1^7。 //蜂鳴器 void init() { temp_0=22。 TMOD=0X01。 TH0=(6553650000)/256。 TL0=(6553650000)%256。 EA=1。 ET0=1。 TR0=1。 shan=0。 buzz=0。 } 蜂鳴器部分程序 void feng() { if(temp=temp_0) buzz=0。 } DS18B20 部分程序 include include 附 錄 28 define disdata P0 define discan P2 define uchar unsigned char define uint unsigned int sbit DQ = P3^7。 //溫度輸入口 sbit DIN = P0^7。//led 小數(shù)點(diǎn)控制 sbit P3_4 = P3^4。 //溫度輸入口 sbit P3_5 = P3^5。 //溫度輸入口 sbit P3_6 = P3^6。 //溫度輸入口 sbit P3_7 = P3^7。 //溫度輸入口 uint h。 uchar code ditab[16]= {0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09}。 uchar code dis_7[12]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf}。 uchar code scan_con[4]={0xf7,0xfB,0xFD,0xFE}。//列掃描控制字 uchar data temp_data[2]={0x00, 0x00,}。 //讀出溫度暫存 uchar data display[5]={0x00,0x00,0x00,0x00,0x00}。 //顯示單元數(shù)據(jù),共 4 個(gè)數(shù)據(jù), 1 個(gè)運(yùn)算暫存用 void delay(uint t) { for(。t0。t)。 } /************顯示掃描函數(shù) ***************************/ scan() { uchar value=0。 char k。 for(k=0。k4。k++) //4 位 LED 掃描控制 { disdata=dis_7[display[k]]。 附錄 29 if(k==1){DIN=0。} //當(dāng) K=1 時(shí), P0^7 為低電平顯示小數(shù)點(diǎn) discan=scan_con[k]。 //列掃描 delay(30)。 discan=0xFF。 } return(value)。 } /******************DS 復(fù)位函數(shù) ******************************/ ow_reset(void) { uchar value=0。 char presence=1。 while(presence) { while(presence) { DQ=1。_nop_()。_nop_()。 DQ=0。 delay(50)。 //延時(shí) 550 毫秒 DQ=1。 delay(6)。 presence=DQ。 } delay(45)。 presence=~DQ。 } DQ=1。 return(value)。 } /**************************DS 寫命令函數(shù) ***********************/ void write_byte(uchar val) //向 1WIRE 總線上寫一字節(jié) { uchar i。 for(i=8。i0。i) { 附 錄 30 DQ=1。_nop_()。_nop_()。 DQ=0。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。 DQ=valamp。0x01。 //最低位移出 delay(6)。 val=val/2。 //右移 1 位 } DQ=1。 delay(1)。 } /**************DS 讀一字節(jié)函數(shù) *****************************/ uchar read_byte(void) { uchar i。 uchar value=0。 for(i=8。i0。i) { DQ=1。_nop_()。_nop_()。 value=1。 DQ=0。 _nop_()。_nop_()。_nop_()。_nop_()。 DQ=1。_nop_()。_nop_()。_nop_()。_nop_()。 if(DQ) value|=0x80。 delay(6)。 } DQ=1。 return(value)。 } /******************************讀出溫度函數(shù) ********************/ read_temp() { uchar value=0。 ow_reset()。 附錄 31 write_byte(0xcc)。 write_byte(0xbe)。 temp_data[0]=read_byte()。 temp_data[1]=read_byte()。 ow_reset()。 write_byte(0xcc)。 write_byte(0x44)。 return (value)。 } /********************************計(jì)算溫度子函數(shù) ***************/ work_temp() { uchar value=0。 uchar n=0。 if(temp_data[1]127) {temp_data[1]=(255temp_data[1])。temp_data[0]=(255temp_data[0])。n=1。} //負(fù)溫度求補(bǔ)碼 display[4]=temp_data[0]amp。0x0f。display[0]=ditab[display[4]]。 display[4]=((temp_data[0]amp。0xf0)4)|((temp_data[1]amp。0x0f)4) 。 display[3]=display[4]/100。 display[1]=display[4]%100。 display[2]=display[1]/10。 display[1]=display[1]%10。 if(!display[3]){display[3]=0x0a。 if(!display[2]){display[2]=0x0a。}} //最高位為 0 時(shí)不顯示 if(n){display[3]=0x0b。} //負(fù)溫度是最高為顯示“ ” return(value)。 } /*******************************主函數(shù) ********************/ main () { disdata=0xff。// 初始化端口 discan=0xff。 附 錄 32 for(h=0。h4。h++) //開機(jī)顯示“ 8888” scan()。 {display[h]=8。} ow_reset()。 //開機(jī)先轉(zhuǎn)換一次 write_byte(0xcc)。//skip ROM write_byte(0x44)。//發(fā)轉(zhuǎn)換命令 for(h=0。h500。h++)//開機(jī)顯示“ 8888”兩秒 {scan()。} while(1) { read_temp()。 //讀出溫度數(shù)據(jù) work_temp()。 //處理溫度數(shù)據(jù) for(h=0。h500。h++) //顯示溫度兩秒 {scan()。} } } 主程序 main include //數(shù)碼顯示 include //DS18B20 include //延時(shí) include //按鍵 include //中斷 include //蜂鳴器 void main() { init()。 while(1) { key()。 if(flag_1==1) display(temp_0)。 else display(temp())。 feng()。 附錄 33 } }
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1