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

正文內(nèi)容

基于at89s52單片機(jī)ds18d20溫度濕度傳感器的設(shè)計(jì)畢業(yè)論文-資料下載頁(yè)

2025-08-19 19:42本頁(yè)面

【導(dǎo)讀】控制,使之達(dá)到工藝標(biāo)準(zhǔn)。如何更快、更準(zhǔn)確的控制所需的溫度是溫度控制技術(shù)的關(guān)鍵。發(fā)板的溫度檢測(cè)器。模數(shù)轉(zhuǎn)換等進(jìn)行系統(tǒng)控制。該設(shè)計(jì)整體結(jié)構(gòu)小巧,便于攜帶。

  

【正文】 ************************************ */ void shu_ma_guan(void) { unsigned char i。 /*顯 示溫度的 ********************************/ P1=0x00。 SEL0=0。SEL1=0。SEL2=0。 P1=~m[T%10]。 //個(gè)位第一個(gè)數(shù)碼管以下依次類(lèi)推 delaym(4)。 P1=0xff。 SEL0=1。SEL1=0。SEL2=0。 P1=~m[T/100%10]。//十位 delaym(4)。 P1=0xff。 SEL0=0。SEL1=1。SEL2=0。 P1=~m[T/100%10]。//百位 delaym(4)。 P1=0xff。 SEL0=1。SEL1=1。SEL2=0。 仰恩大學(xué)畢業(yè)設(shè)計(jì)(論文) 26 P1=~m[T/1000]。//千位 delaym(4)。 P1=0xff。 SEL0=0。SEL1=0。SEL2=1。 P1=~m[b[0]]。 //個(gè)位第一個(gè)數(shù)碼管以下依次類(lèi)推 delaym(4)。 P1=0xff。 SEL0=1。SEL1=0。SEL2=1。 P1=~m[b[1]]。//十位 delaym(4)。 P1=0xff。 SEL0=0。SEL1=1。SEL2=1。 P1=~m[b[2]]。//百位 delaym(4)。 P1=0xff。 SEL0=1。SEL1=1。SEL2=1。 P1=~m[b[3]]。//千位 delaym(4)。 P1=0xff。} 6. 2. 3 繼電器控制 為的控制端口即接繼電器,當(dāng)把該系統(tǒng)的根據(jù)即 時(shí)溫度和濕度定時(shí)開(kāi)啟水泵開(kāi)關(guān), 為高 電平 打開(kāi)水泵 ,反之, 為低 電平 關(guān)閉水泵 。 6. 3 程序流程圖 6. 3. 1 即時(shí)濕度 顯示 即時(shí)溫度顯示的流程圖如圖 : 仰恩大學(xué)畢業(yè)設(shè)計(jì)(論文) 27 圖 即時(shí)濕度 顯示的流程圖 開(kāi)始 I/O 端口初始化 調(diào)用 ADC0809 初始化 程序 判斷 EOC 是否等于零 AD轉(zhuǎn)換完成 調(diào)用數(shù)碼管顯示子程序 將采集到是數(shù)據(jù)送到 P0 口 調(diào)用將二進(jìn)制數(shù)據(jù)轉(zhuǎn)化為溫度值子程序 使即使?jié)穸?顯示在數(shù)碼管的 低 4位 定義端口 是 否 仰恩大學(xué)畢業(yè)設(shè)計(jì)(論文) 28 即時(shí)溫度顯示流程圖 圖 設(shè)置的溫度顯示的流程圖 6. 4 總設(shè)計(jì)程序 include include include define uchar unsigned char define uint unsigned int sbit DQ=P3^7。 //溫度輸入口 sbit P36=P3^6。 sbit p36=P3^6。 開(kāi)始 開(kāi)始初始化 DS18B20 存在? ROM 操作命令 存儲(chǔ)操作命令 讀取溫度值 返回 是 否 仰恩大學(xué)畢業(yè)設(shè)計(jì)(論文) 29 uint temp,temp_data[2]。 sbit ALE=P2^6。 sbit START=P2^4。 sbit EOC=P2^5。 sbit OE=P2^7。 sbit SEL0=P2^0。 sbit SEL1=P2^1。 sbit SEL2=P2^2。 sbit SEL3=P2^3。 sbit P30=P3^0。 unsigned char m[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}。 unsigned char dout。//采集到的二進(jìn)制值 unsigned int T=0。 //溫度值 unsigned int b[4]={0,0,0,0}。 void delaym(unsigned int t) // 延 時(shí) 子 程 序 , 入 口 參 數(shù) ms, 延 遲 時(shí) 間=t*1ms,t=0~65535 { unsigned char j。 //j=0~255 while(t) { for(j = 0。 j 50。 j++)。 //j 進(jìn)行的內(nèi)部循環(huán), 1 次延遲 8us } } void ad0809(void) { ALE=1。 _nop_()。 START=1。 _nop_()。 ALE=0。 _nop_()。 START=0。 } void Convert_T(void) { 仰恩大學(xué)畢業(yè)設(shè)計(jì)(論文) 30 T=(*dout)*20。 } /* 數(shù)碼管掃描 ***************************************/ void shu_ma_guan(void) { /*****************顯示溫度的 *********************/ //while(1){ P1=0x00。 SEL0=0。SEL1=0。SEL2=0。 P1=~m[T%10]。 //個(gè)位第一個(gè)數(shù)碼 管以下依次類(lèi)推 delaym(4)。 P1=0xff。 SEL0=1。SEL1=0。SEL2=0。 P1=~m[T/100%10]。//十位 delaym(4)。 P1=0xff。 SEL0=0。SEL1=1。SEL2=0。 P1=~m[T/100%10]。//百位 delaym(4)。 P1=0xff。 SEL0=1。SEL1=1。SEL2=0。 P1=~m[T/1000]。//千位 delaym(4)。 P1=0xff。 SEL0=0。SEL1=0。SEL2=1。 P1=~m[b[0]]。 //個(gè)位第一個(gè)數(shù)碼管以下依次類(lèi)推 delaym(4)。 P1=0xff。 SEL0=1。SEL1=0。SEL2=1。 P1=~m[b[1]]。//十位 delaym(4)。 P1=0xff。 SEL0=0。SEL1=1。SEL2=1。 P1=~m[b[2]]。//百位 仰恩大學(xué)畢業(yè)設(shè)計(jì)(論文) 31 delaym(4)。 P1=0xff。 SEL0=1。SEL1=1。SEL2=1。 P1=~m[b[3]]。//千位 delaym(4)。 P1=0xff。 } void zhongduan(void) interrupt 1 { P30=~P30。 } void delay2(uint t) { for (。t0。t)。 } // /****************DS18B20 復(fù)位函數(shù) ************************/ ow_reset(void) { char presence=1。 while(presence) { while(presence) { DQ=1。_nop_()。_nop_()。//從高拉倒低 DQ=0。 delay2(50)。 //550 us DQ=1。 delay2(6)。 //66 us presence=DQ。 //presence=0 復(fù)位成功 ,繼續(xù)下一步 } delay2(45)。 //延時(shí) 500 us presence=~DQ。 } 仰恩大學(xué)畢業(yè)設(shè)計(jì)(論文) 32 DQ=1。 //拉高電平 } /****************DS18B20 寫(xiě)命令函數(shù) ************************/ //向 1WIRE 總線上寫(xiě) 1 個(gè)字節(jié) void write_byte(uchar val) { uchar i。 for(i=8。i0。i) { DQ=1。_nop_()。_nop_()。 //從高拉倒低 DQ=0。_nop_()。_nop_()。_nop_()。_nop_()。 //5 us DQ=valamp。0x01。 //最低位移出 delay2(6)。 //66 us val=val/2。 //右移 1 位 } DQ=1。 delay2(1)。 } // /****************DS18B20 讀 1 字節(jié)函數(shù) ************************/ //從總線上取 1 個(gè)字節(jié) 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_()。 //4 us DQ=1。_nop_()。_nop_()。_nop_()。_nop_()。 //4 us if(DQ)value|=0x80。 delay2(6)。 //66 us } DQ=1。 仰恩大學(xué)畢業(yè)設(shè)計(jì)(論文) 33 return(value)。 } // /****************讀出溫度函數(shù) ************************/ // uint read_temp() { ow_reset()。 //總線復(fù)位 delay2(200)。 write_byte(0xcc)。 //發(fā)命令 write_byte(0x44)。 //發(fā)轉(zhuǎn)換命令 ow_reset()。 delay2(1)。 write_byte(0xcc)。 //發(fā)命令 write_byte(0xbe)。 temp_data[0]=read_byte()。 //讀溫度值的第 字節(jié) temp_data[1]=read_byte()。 //讀溫度值的高字節(jié) temp=temp_data[1]。 temp=8。 temp=temp|temp_data[0]。 // 兩字節(jié)合成一個(gè)整型變量。 return temp。 //返回溫度值 } void main(void) { unsigned int r,i。 P30=1。 EX0=1。 ET0=1。 TMOD=0x02。 TH0=0xE7。//定時(shí) 10MS TL0=0xE7。 TR0=1。 EA=1。 while(1) { r=read_temp()。 仰恩大學(xué)畢業(yè)設(shè)計(jì)(論文) 34 if(r=2020) {r=r*。 b[0]=r/100。} else {r=~r+1。 r=r*。 b[0]=10。 } b[1]=r%100/10。 b[2]=r*10%1000%100/10。 b[3]=r*100%10000%1000%100%10。 {//while(1) {
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1