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

正文內(nèi)容

畢業(yè)論文-基于at89c51單片機(jī)的測(cè)溫系統(tǒng)說明書-文庫吧

2024-10-21 10:21 本頁面


【正文】 // 先將數(shù)據(jù)線拉高 _nop_()。 //等待一個(gè)機(jī)器周期 DQ=0。 //將數(shù)據(jù)線從高拉低時(shí)即啟動(dòng)寫時(shí)序 DQ=datamp。0x01。 //利用與運(yùn)算取出要寫的某位二進(jìn)制數(shù)據(jù) , for(time=0。time10。time++) 。 //延時(shí)約 30us, DS18B20 在拉低后的約 15~60us 期間從數(shù)據(jù)線上采樣 DQ=1。 //釋放數(shù)據(jù)線 for(time=0。time1。time++) 。 //延時(shí) 3us,兩個(gè)寫時(shí)序間至少需要 1us 的恢復(fù)期 dat=1。 //將 dat 中的各二進(jìn)制位數(shù)據(jù)右移 1 位 } for(time=0。time4。time++) 。 //稍作延時(shí) ,給硬件一點(diǎn)反應(yīng)時(shí)間 五、程序流 程圖 (主程序,各子程序 ) 實(shí)時(shí)溫度顯示子程序:驅(qū)動(dòng)數(shù)碼管把實(shí)時(shí)溫度值送出在 LED 數(shù)碼管顯示 主程序流程圖: 圖 讀溫度值模塊需要調(diào)用 4 個(gè)子程序,分別為: 初始化子程序:讓單片機(jī)知道 DS18B20 在總線上且已準(zhǔn)備好操作 開始 顯示實(shí)時(shí)溫度 溫度設(shè)定 超過溫度報(bào)警 定時(shí)器初始化、啟動(dòng) 寫字節(jié)子程序:對(duì) DS18B20 發(fā)出命令 讀字節(jié)子程序:讀取 DS18B20 存儲(chǔ)器的數(shù)據(jù) 程序:對(duì) DS18B20 操作時(shí)的時(shí)序控制 讀溫度值模塊流程圖: 圖 DS18B20 初始化 跳過讀序列號(hào) 啟動(dòng)溫度轉(zhuǎn)換 延時(shí) DS18B20 初始化 跳過讀序列號(hào) 讀取溫度值高低位 數(shù)據(jù)轉(zhuǎn)換處理 返回 入口 DS18B20 初始化子程序流程圖: N Y 圖 DS18B20初始化子程序流程圖 DQ 置高電平 稍延時(shí) DQ 復(fù)位 0 DQ 拉高電平 DQ 為低電平? 返回 入口 延時(shí) 480us 延時(shí) 15~60us DS18B20 寫字節(jié)和讀字節(jié)子程序流程圖: 圖 DS18B20 寫字節(jié)子程序流程圖 圖 DS18B20 讀字節(jié)子程序流程圖 六:調(diào)試(步驟,心得,結(jié)論) 優(yōu)點(diǎn): 1.線性好,精度適中,體積小,實(shí)用方便。 2.實(shí)時(shí)顯示當(dāng)前溫度。 缺點(diǎn):溫度傳感器會(huì)有一定的時(shí)間延時(shí),從而間接地影響了整個(gè)報(bào)警系統(tǒng)的靈敏性和準(zhǔn)確性。 ( 2)心得體會(huì): 在本次設(shè)計(jì)的過程中,我們發(fā)現(xiàn)了很多的問題,雖然以前也做過類似的課程設(shè)計(jì),但是這次確實(shí)讓我們學(xué)到了很多。我們不僅要選好元件,還要把這些元件合理地組織起來,所以我們要學(xué)會(huì)如何尋找和搜索自己需要的資 料。這一次,我們用了老師給的參考電路圖,然后修改了一些地方,比如去掉了一個(gè) LED,再加入了幾個(gè)電阻。雖然有些困難,但是經(jīng)過努力,我們還是完成了電路的設(shè)計(jì)。經(jīng)過本次的設(shè)計(jì),我們學(xué)到了很多的知識(shí),了解到了傳感器能夠把自然界的各種非電量轉(zhuǎn)換為電信號(hào)的能量物理理念。 從本次的實(shí)習(xí)設(shè)計(jì)中,我們意識(shí)到,在以后的學(xué)習(xí)中,要理論聯(lián)系實(shí)際,把我們所學(xué)的理論知識(shí)運(yùn)用到實(shí)際當(dāng)中,實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)。培養(yǎng)了一定的獨(dú)立思考能力、解決問題的能力。同時(shí)也學(xué)到了和他人愉快合作的技巧。每當(dāng)我們遇到問題時(shí),我們學(xué)會(huì)了理性的分析 ,最終解決問題。同時(shí)在討論問題時(shí)認(rèn)真聆聽別人的思想和意見也很重要,在聆聽的同時(shí)也會(huì)學(xué)到很多東西。所以這次實(shí)習(xí)讓我們學(xué)到了很多的東西。 七:附錄(電路圖,程序) include include //_nop_()。延時(shí)函數(shù)用 define Disdata P0 //段碼輸出口 define discan P2 //掃描口 define uchar unsigned char define uint unsigned int sbit DQ=P3^3。 //溫度輸入口 sbit DIN=P0^7。 //LED 小數(shù)點(diǎn)控制 sbit buzzer=P3^6。 uchar temp_buzzer。 uchar up_alarm=20。 uint h。 uint i。 uchar flag。 //**************溫度小數(shù)部分用查表法 ***********// 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}。 //共陽 LED段碼表 0 1 2 3 4 5 6 7 8 9 不亮 uchar code scan_con[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}。 //列掃描控制字 uchar data temp_data[2]={0x00,0x00}。 //讀出溫度暫放 uchar data display[8]。 //顯示單元數(shù)據(jù),共 4 個(gè)數(shù)據(jù)和一個(gè)運(yùn)算暫用 // // // /***********11 微秒延時(shí)函數(shù) **********/ // void ser_init() { TMOD=0X20。 SCON=0X50。 TH1=0XFD。 TL1=0XFD。 TR1=1。 } void delay(uint t) { for(。t0。t)。 } // /***********顯示掃描函數(shù) **********/ scan() { char k。 for(k=0。k7。k++) //四位 LED 掃描控制 { // Disdata=0xff。 Disdata=dis_7[display[k]]。 if(k==4){DIN=0。} discan=scan_con[k]。delay(200)。 discan=0xff。 } } void delayms(unsigned int xms) //延時(shí)函數(shù) ,延時(shí) xms { unsigned int i , j。 for(i = 0。 i xms。 i++) for(j = 0。 j 110。 j++)。 } void fengming(double templ) { uchar i。 if(templ = 34) //溫度報(bào)警限設(shè)置 for(i=0。i20。i++) { buzzer=0。 delayms(1)。 buzzer=1。 delayms(1)。 } } // // /***********18B20 復(fù)位函數(shù) **********/ ow_reset(void) { char presence=1。 while(presence) { while(presence) { DQ=1。_nop_()。_nop_()。 DQ=0。 // delay(50)。 // 550us DQ=1。 // delay(6)。 // 66us presence=DQ。 // presence=0 繼續(xù)下一步 } delay(45)。 //延時(shí) 500us presence = ~DQ。 } DQ=1。 } // // /**********18B20 寫命令函數(shù) *********/ //向 1WIRE 總線上寫一個(gè)字節(jié) void write_byte(uchar val) { uchar i。 for (i=8。 i0。 i) // { DQ=1。_nop_()。_nop_()。 DQ = 0。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。//5us DQ = valamp。0x01。 //最低位移出 delay(6)。 //66us val=val/2。 //右移一位 } DQ = 1。 delay(1)。 } // /*********18B20 讀 1 個(gè)字節(jié)函數(shù) ********/ //從總線上讀取一個(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_()。 //4us DQ = 1。_nop_()。_nop_()。_nop_()。_nop_()。 //4us if(DQ)value|=0x80。 delay(6)。 //66us } DQ=1。 return(value)。 } // /***********讀出溫度函數(shù) **********/ // read_temp() { ow_reset()。 //總線復(fù)位 write_byte(0xCC)。 // 發(fā) Skip ROM 命令 write_byte(0xBE)。 // 發(fā)讀命令 temp_data[0]=read_byte()。 //溫度低 8 位 temp_data[1]=read_byte()。 //溫度高 8 位 ow_reset()。 write_byte(0xCC)。 // Skip ROM write_byte(0x44)。 // 發(fā)轉(zhuǎn)換命令 } // /***********溫度數(shù)據(jù)處理函數(shù) **********/ void work_temp() { uchar n=0,th=0,tl=0。 int temp=0。 uchar flag3=1,flag2=1。 //數(shù)字顯示修正標(biāo)記 if(temp_data[0]255) { temp_data[1]++。 } tl=temp_data[0]amp。0x0f。 display[7]=tl。 if(display[7]amp。0x08)temp+=5000。 if(display[7]amp。0x04)temp+=2500。 if(display[7]amp。0x02)temp+=1 if(display[7]amp。0x01)temp+=625。 display[0]=temp%10。 display[1]=(temp%100)/10。 display[2]=(temp%1000)/100。 display[3]=temp/1000。 display[7]=((temp_data[0]amp。0xf0)4)|((temp_data[1]amp。0x07)4)。 display[6]=display[7]/100。 display[5]=display[7]/10%10。 display[4]=display[7]%10。 if(!display[6]) { display[6]=0x0a。 flag3=0。 if(!display[5])
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1