久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3718|回復(fù): 0
收起左側(cè)

51單片機(jī)+DS18b20溫度監(jiān)測儀設(shè)計(jì)與調(diào)試生產(chǎn)實(shí)習(xí)報(bào)告

[復(fù)制鏈接]
ID:321584 發(fā)表于 2018-5-3 20:32 | 顯示全部樓層 |閱讀模式
分享一個(gè)基于51單片機(jī)的DS18b20溫度測量系統(tǒng),可以設(shè)置低閾值和高閾值
生產(chǎn)實(shí)習(xí)報(bào)告
學(xué)    院:測控技術(shù)與通信工程學(xué)院
專    業(yè):物聯(lián)網(wǎng)工程
班    級:14-1
學(xué)生姓名:趙*
學(xué)    號140*
指導(dǎo)教師:劉*
一、生產(chǎn)實(shí)習(xí)教學(xué)基本信息
實(shí)習(xí)名稱
測控技術(shù)及儀器專業(yè)測控儀器生產(chǎn)與工業(yè)應(yīng)用生產(chǎn)實(shí)習(xí)
英文名稱
Syllabus of Measurement-Control Instrumentation Production and Application Practice for Specialty of Measurement-control Technology and Instrumentation
實(shí)習(xí)學(xué)期
6
實(shí)習(xí)周數(shù)
3
學(xué)分
3
場所
省外
二、生產(chǎn)實(shí)習(xí)目的、意義及要求
1、目的和意義:
生產(chǎn)實(shí)習(xí)是本科教學(xué)計(jì)劃的一個(gè)重要組成部分,是培養(yǎng)學(xué)生理論聯(lián)系實(shí)際能力的重要途徑,通過生產(chǎn)實(shí)習(xí)可以達(dá)到以下目的:
(1)增加學(xué)生的感性認(rèn)識。通過在生產(chǎn)工廠的參觀,讓學(xué)生最直觀的了解測控技術(shù)如何轉(zhuǎn)化為產(chǎn)品并在工程實(shí)際中應(yīng)用,使學(xué)生明白如何將所學(xué)的理論知識運(yùn)用到生產(chǎn)實(shí)際中,并主動(dòng)適應(yīng)社會(huì)的經(jīng)濟(jì)發(fā)展對高級專門人才的需要。
(2)注重學(xué)生工程綜合能力的培養(yǎng)。通過對高新技術(shù)企業(yè)先進(jìn)的管理模式、生產(chǎn)模式進(jìn)行剖析,培養(yǎng)和提高學(xué)生的工程綜合能力。
(3)提高學(xué)生理論聯(lián)系實(shí)際的能力。通過和工程技術(shù)人員的現(xiàn)場交流,進(jìn)一步提高學(xué)生理論聯(lián)系實(shí)際的能力,加強(qiáng)學(xué)生對相關(guān)生產(chǎn)工藝和各種設(shè)備的實(shí)際操作能力,培養(yǎng)學(xué)生對測控儀器的設(shè)計(jì)與開發(fā)能力。
(4)培養(yǎng)學(xué)生的創(chuàng)新意識。通過對高新技術(shù)企業(yè)的參觀和帶隊(duì)指導(dǎo)老師的正確引導(dǎo),讓學(xué)生了解并掌握測控技術(shù)在工程域中應(yīng)領(lǐng)的新技術(shù),注重學(xué)生創(chuàng)新意識的培養(yǎng)。
(5)通過學(xué)生對生產(chǎn)實(shí)際的觀察、分析,建立大工程意識;通過對市場、質(zhì)量、效益等關(guān)鍵因素的分析了解,培養(yǎng)學(xué)生的產(chǎn)品和品牌意識。
2、要求:
(1)生產(chǎn)實(shí)習(xí)的帶隊(duì)教師應(yīng)具有中、高級職稱,并具有2-3次指導(dǎo)生產(chǎn)實(shí)習(xí)經(jīng)驗(yàn),并且應(yīng)是全面了解生產(chǎn)工藝過程的教師;
(2)指導(dǎo)教師要對每個(gè)學(xué)生生產(chǎn)實(shí)習(xí)的各個(gè)環(huán)節(jié)進(jìn)行認(rèn)真考核,并且給出考核成績,要對學(xué)生的安全教育放在生產(chǎn)實(shí)習(xí)的整個(gè)過程中;
(3)生產(chǎn)實(shí)習(xí)的帶隊(duì)教師在生產(chǎn)實(shí)習(xí)結(jié)束后,對生產(chǎn)實(shí)習(xí)教學(xué)全過程進(jìn)行總結(jié),并報(bào)教務(wù)處實(shí)驗(yàn)教學(xué)科;
(4)要求學(xué)生遵守工廠的有關(guān)規(guī)章制度,注意安全,能時(shí)刻以大局出發(fā),聽從帶隊(duì)教師的安排;
(5)在實(shí)習(xí)過程中學(xué)生要有規(guī)范的生產(chǎn)實(shí)習(xí)記錄,并在完成實(shí)習(xí)后寫出全面的生產(chǎn)實(shí)習(xí)報(bào)告。

溫度監(jiān)測儀表設(shè)計(jì)與調(diào)試

功能概述:

實(shí)現(xiàn)溫度測量和顯示;實(shí)現(xiàn)上下限設(shè)置功能;設(shè)計(jì)超限報(bào)警方案

硬件設(shè)計(jì):

溫度監(jiān)測儀表的硬件設(shè)計(jì)框架如下

MCU: 采用傳統(tǒng)的51單片機(jī)開發(fā)板,此開發(fā)板功能強(qiáng)大,主要介紹如下
1. 1602 液晶屏/12864 液晶屏接口(接口引出)
2. 4×3 的矩陣鍵盤(用于按鍵掃描試驗(yàn),接口引出)
3. 紅外接收頭與發(fā)射遙控器
4. 繼電器輸出
5. 8 位靜態(tài)數(shù)碼管顯示(接口引出)
6. 1 位數(shù)碼管動(dòng)態(tài)顯示(可以直接單片機(jī)驅(qū)動(dòng)接口、也有74HC595 驅(qū)動(dòng)接口,接口引出)
7. 步進(jìn)馬達(dá)驅(qū)動(dòng)(接口引出,可選配步進(jìn)馬達(dá))
8. 八個(gè)普通按鈕輸入(接口引出)
9. 8 個(gè)LED 顯示(接口引出,可以做跑馬燈、流水燈、花樣彩燈、各種信號燈等試驗(yàn))
10.蜂鈴器(做單片機(jī)發(fā)聲實(shí)驗(yàn))
11.PCF8563 實(shí)時(shí)時(shí)鐘(年、月、日、時(shí)、分、秒 NXP 芯片,時(shí)間準(zhǔn)、精度高)
12.PCF8591T(工業(yè)級數(shù)模/模數(shù)轉(zhuǎn)換芯片,其中有4 路模擬輸入、1 路模擬輸出,接口引
出)
13.A24C02 數(shù)據(jù)存儲(可以保存機(jī)器中的各種參數(shù))
14.DS18b20 溫度傳感器(檢測溫度)
15.74HC165 并入串出功能(輸入鎖存器)
16.74HC595 串入并出功能(輸出鎖存器)
17.LS138 譯碼器
18.ULN2003 達(dá)林頓驅(qū)動(dòng)(輸出電流可以達(dá)到1A 可以驅(qū)動(dòng)步進(jìn)馬達(dá))
19.MAX232 串口通信(可以直接用串口與電腦通信,也可以用USB 轉(zhuǎn)串口線)
20.USB 接口(供電、燒程序、通信于一體的接口,無需電源線、DB9 串口通信線、USB
轉(zhuǎn)串口線)
21.STC89 系列增強(qiáng)型C51 單片機(jī)(可以工作在6T 模式下,又快又穩(wěn)。)
22.支持PS/2 電腦鍵盤接入(通過PS/2 通信協(xié)議把電腦鍵盤與單片機(jī)連接,可獲得大
量的輸入按鈕)
23.ISP 功能電腦直接燒錄程序,無需另外購買燒錄器和仿真器。(省錢又方便試驗(yàn))
24.Atmel 的ISP 接口(支持Atmel 89 系列系列和AVR AT90S8515、Atmega8515 型號的
程序燒錄)
25.提供了實(shí)時(shí)時(shí)鐘(PCF8563)的后備電源(掉電了時(shí)間也能正常走,有需求者可以安
裝紐扣電池座和電池)
26.另配了外置5V 電源插座(方便用戶用做別的用途。)
27. 所有單片機(jī)I/O 均引出,供用戶自由安排與發(fā)揮自建電路等等。
測溫模塊:測溫模塊采用DS18b20

溫度是一種最基本的環(huán)境參數(shù),日常生活和工農(nóng)業(yè)生產(chǎn)中經(jīng)常要檢測溫度。傳統(tǒng)的方式是采用熱電偶或熱電阻,但是由于模擬溫度傳感器輸出為模擬信號,必須經(jīng)過A/D 轉(zhuǎn)換環(huán)節(jié)獲得數(shù)字信號后才能與單片機(jī)等微處理器接口,使得硬件電路結(jié)構(gòu)復(fù)雜,制作成本較高。近年來,美國DALLAS 公司生產(chǎn)的DSl8B20 為代表的新型單總線數(shù)字式溫度傳感器以其突出優(yōu)點(diǎn)廣泛使用于倉儲管理、工農(nóng)業(yè)生產(chǎn)制造、氣象觀測、科學(xué)研究以及日常生活中。DSl8B20 集溫度測量和A/D 轉(zhuǎn)換于一體,直接輸出數(shù)字量,傳輸距離遠(yuǎn),可以很方便地實(shí)現(xiàn)多點(diǎn)測量,硬件電路結(jié)構(gòu)簡單,與單片機(jī)接口幾乎不需要外圍元件。

  在許多工業(yè)場合中都要進(jìn)行溫度檢測和溫度控制,常用方法是采用溫度傳感進(jìn)行檢測,配合單片機(jī)進(jìn)行控制。DS18B20 是美國DALLAS 公司生產(chǎn)的“一線總線”接口的數(shù)字化傳感器,他具有微型化、低功耗、抗干擾能力強(qiáng)、易與微處理器接口等優(yōu)點(diǎn),可直接將溫度轉(zhuǎn)化成串行數(shù)字信號供微處理器接收處理。利用這種溫度傳感器構(gòu)成的溫度測量系統(tǒng)電路非常簡單、易于實(shí)現(xiàn),并且適用于幾乎所有類型的單片機(jī)。

S1820 溫度傳感器是一種單總線型溫度測量器件,具有直接的數(shù)字信號,可采用總線供電,在同一根總線上可接多個(gè)傳感器,構(gòu)成多點(diǎn)測溫網(wǎng)絡(luò),是溫度場監(jiān)控系統(tǒng)的理想選擇。

美國DALLAS 半導(dǎo)體公司的DSl8B20 是世界上第一片支持“單總線”接口的數(shù)字式溫度傳感器,能夠直接讀取被測物的溫度值。

如右圖DS18B20采用3腳TO-92封裝或8腳的SOIC封裝,可以適應(yīng)不同的環(huán)境需求。各引腳的功能:GND為電壓地;DQ為單數(shù)據(jù)總線;VDD 為電源電壓;NC 為空引腳。

其測量范圍在-55~+125℃、-10℃~+85℃之內(nèi)的測量精度可達(dá)± 0.5℃,穩(wěn)定度為1%。通過編程可實(shí)現(xiàn)9、10、11、l2 位的分辨率讀出溫度數(shù)據(jù),以上都包括一個(gè)符號位,因此對應(yīng)的溫度量化值分別為0.5℃、0.25℃、0.125℃、0.062 5℃,芯片出廠時(shí)默認(rèn)為12 位的轉(zhuǎn)換精度。讀取或?qū)懭隓S18B20僅需要一根總線,要求外接一個(gè)約4. 7k Ω的上拉電阻,當(dāng)總線閑置時(shí),其狀態(tài)為高電平。 支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)多點(diǎn)測溫。此外DS18B20是溫度- 電流傳感器,對于提高系統(tǒng)抗干擾能力有很大的幫助。

顯示模塊:采用1602液晶顯示屏

液晶(Liquid Crystal)是一種高分子材料,因?yàn)槠涮厥獾奈锢怼⒒瘜W(xué)、光學(xué)特性,20世紀(jì)中葉開始廣泛應(yīng)用在輕薄型顯示器上。

液晶顯示器(Liquid Crystal Display, LCD)的主要原理是以電流刺激液晶分子產(chǎn)生點(diǎn)、線、面并配合背部燈管構(gòu)成畫面。為敘述簡便,通常把各種液晶顯示器都直接叫做液晶。

各種型號的液晶通常是按照顯示字符的行數(shù)或液晶點(diǎn)陣的行、列數(shù)來命名的。比如:1602的意思是每行顯示16個(gè)字符,一共可以顯示兩行;類似的命名還有0801, 0802, 1601等,這類液晶通常都是字符型液晶,即只能顯示ASCII碼字符,如數(shù)字、大小寫字母、各種符號等。12232液晶屬于圖形型液晶,她的意思是液晶由122列、32行組成,即共有122 X 32個(gè)點(diǎn)來顯示各種圖形,我們可以通過程序控制這122 X 32個(gè)點(diǎn)中的任一個(gè)點(diǎn)顯示或不顯示。類似的命名還有12864, 19264, 192128, 320240等,根據(jù)客戶需要,廠家可以設(shè)計(jì)出任意數(shù)組合的點(diǎn)陣液晶。

現(xiàn)在來看LCD1602 的操作時(shí)序:

在此,我們不需要讀出它的數(shù)據(jù)的狀態(tài)或者數(shù)據(jù)本身。所以只需要看兩個(gè)寫時(shí)序:

① 當(dāng)我們要寫指令字,設(shè)置LCD1602 的工作方式時(shí):需要把RS置為低電平,RW置為低電平,然后將數(shù)據(jù)送到數(shù)據(jù)口D0~D7,最后E引腳一個(gè)高脈沖將數(shù)據(jù)寫入。

② 當(dāng)我們要寫入數(shù)據(jù)字,在1602 上實(shí)現(xiàn)顯示時(shí):需要把RS置為高電平,RW置為低電平,然后將數(shù)據(jù)送到數(shù)據(jù)口D0~D7,最后E 引腳一個(gè)高脈沖將數(shù)據(jù)寫入。發(fā)現(xiàn)了么,寫指令和寫數(shù)據(jù),差別僅僅在于RS的電平不一樣而已。一下是LCD1602的時(shí)序圖:

下面是時(shí)序參數(shù)表:

LDC1602的原理圖表示:
輸入模塊:采用獨(dú)立鍵盤輸入

圖為一個(gè)典型的接觸式按鍵

按鍵常常遇到的問題—抖動(dòng)問題。

按鍵未按下之前,圖四按鍵左端的導(dǎo)線因?yàn)檫B在VCC 上而顯示高電平,右端顯示低電平,按鍵按下后,按鍵閉合,整個(gè)導(dǎo)線都顯示低電平,然后按鍵松開,又回到按鍵按下之前的點(diǎn)評狀態(tài)。如果只考察按鍵左端的電平變化,應(yīng)該是上圖中所顯示的一個(gè)負(fù)脈沖波形。但是,實(shí)際上,正確的波形應(yīng)該是下圖。相比于上圖,在高低電平直接有一段鋸齒一樣的波形,這就是所謂的按鍵抖動(dòng)。

按鍵抖動(dòng)的原因是,接觸式按鍵是靠機(jī)械的接觸來實(shí)現(xiàn)開關(guān)作用的。這種接觸方式就注定了它要經(jīng)歷一個(gè)“接觸不穩(wěn)定——正在穩(wěn)定中——徹底穩(wěn)定”的一種過程。就好比你用手抓緊一顆石頭,即使你一開始就很用力的握緊,也不可能馬上就達(dá)到最緊的狀態(tài),也要經(jīng)歷一個(gè)從握住到最緊握的過程。那么在這個(gè)過程里,接觸式按鍵就處于一種徘徊在“閉合”與“斷開”兩者之間的狀態(tài)。體現(xiàn)在電路中,就是在一小段時(shí)間內(nèi)有非常多的“按下——抬起”動(dòng)作。而這段抖動(dòng)的時(shí)間,大概是10~20 毫秒,依不同的環(huán)境條件而定。

解決這個(gè)問題常見的方法有軟件去抖動(dòng)和硬件去抖動(dòng)。

獨(dú)立按鍵一共8個(gè),分別連接在單片機(jī)的P3.0。去抖動(dòng)的方式,我們采用軟件延時(shí)的方法。過程如下:

  • 先設(shè)置IO口為高電平(一般上電默認(rèn)就為高)
  • 讀取IO口電平確認(rèn)是否有按鍵按下
  • 如有IO電平為低電平后,延時(shí)幾個(gè)ms
  • 再讀取該IO電平,如果任然為低電平,說明對應(yīng)按鍵按下
  • 執(zhí)行相應(yīng)按鍵的程序
軟件設(shè)計(jì):
  由于溫度監(jiān)測儀表的代碼重復(fù)率高,所以我采用了多個(gè)功能模塊分別編寫.c和對應(yīng).h文件,對應(yīng)文件具體代碼將在附錄中體現(xiàn)
軟件功能描述:
   開機(jī)鍵界面如圖,顯示“please input low”等輸入下限值。下限值和上限值各設(shè)置4各檔位。分別是10攝氏度,20攝氏度,30攝氏度,40攝氏度。
當(dāng)下限值輸入完成后,接著會(huì)顯示“please input hih”。表示等待輸入上限值
當(dāng)上限值輸入完成后,會(huì)顯示當(dāng)前的溫度值
若兩次輸入的值相同,會(huì)顯示“wrong”
另外,設(shè)計(jì)上也有容錯(cuò)的設(shè)計(jì),即使輸入的下限值比上限值大,也會(huì)按照小值為下限值大值為上限值的區(qū)間進(jìn)行溫度判斷和報(bào)警。
四、實(shí)習(xí)收獲與總結(jié)
1.通過第一周的參觀實(shí)習(xí),我們參觀了幾家業(yè)內(nèi)小有名氣的企業(yè),從中我們看到了企業(yè)文化,企業(yè)管理等方方面面。但是作為一個(gè)工科生,我最關(guān)心的企業(yè)生產(chǎn)設(shè)備讓我產(chǎn)生了極大的興趣,我認(rèn)識到我們學(xué)習(xí)中的不足,他們的自動(dòng)化水平是我們在學(xué)校里見不到的。
  另外我也認(rèn)識到了我們國家的高精端科學(xué)技術(shù)水平不高,許多看似簡單的高精度溫度濕度控制箱基本都是國外進(jìn)口的,而且價(jià)格不菲,很是痛心啊。我覺得不是我們做不出來這種設(shè)備,而是我們的浮躁的心態(tài),我們應(yīng)該靜下心來做事,踏踏實(shí)實(shí)做事,不要虛的。
2.通過第二周的實(shí)習(xí),我們了解到嵌入式技術(shù)在物聯(lián)網(wǎng)中的應(yīng)用,也大概了解到安卓系統(tǒng)的框架。
3.通過第三周的實(shí)習(xí),我們切切實(shí)實(shí)用開發(fā)板做了一個(gè)溫度儀器監(jiān)測系統(tǒng)。在設(shè)計(jì)軟件和調(diào)試的過程中,遇到了許多麻煩也走了許多彎路。但是也學(xué)到許多有用的東西,比如,讓重復(fù)的功能放在頭文件中,會(huì)讓程序更簡潔。還有以前在寫程序的時(shí)候不會(huì)理會(huì)警告信息,但是這次我特意把所有的警告全都修復(fù)了,很大的成就感啊!雖然大概功能實(shí)現(xiàn)了,但是存在的不足很多,要想成為一個(gè)產(chǎn)品的差距非常大。這讓我想起了第一周四十九所解說員說的,“現(xiàn)在國產(chǎn)的功能都能實(shí)現(xiàn),與國外的差距是可靠性和工匠精神”所以我們在以后有機(jī)會(huì)參加產(chǎn)品制作和的時(shí)候,一定要以工匠精神來對待。

單片機(jī)源程序如下:
  1. /*******************************************************************/
  2. main.c
  3. /*******************************************************************/
  4. #include<reg51.h>
  5. #include"lcd.h"
  6. #include"temp.h"
  7. #include"input.h"
  8. unsigned char PuZh_low[]="please input low";
  9. unsigned char PuZh_hih[]="please input hih";
  10. unsigned char PuZh_wrong[]="wrong";
  11. sbit beeb=P1^5;
  12. void LcdDisplay(int);
  13. float temp_true;
  14. void main()
  15. {
  16.               int i,j;
  17.               KEY1=1;
  18.               KEY2=1;
  19.               KEY3=1;
  20.               KEY4=1;
  21.               KEY5=1;
  22.               KEY6=1;
  23.               KEY7=1;
  24.               KEY8=1;
  25.               beeb=1;
  26.                             P2=1;
  27.               while(1)
  28.               {
  29.                             LcdInit();
  30.               for(j=0;j<16;j++)
  31.               {
  32.                             LcdWriteData(PuZh_low[j]);            
  33.               }
  34.                               if(KEY1==0)
  35.                             {
  36.                                           Delayinput10ms();            
  37.                                           if(KEY1==0)
  38.                                           {
  39.                                                         while(1)
  40.               {
  41.                                           LcdInit();
  42.               for(j=0;j<16;j++)
  43.               {
  44.                             LcdWriteData(PuZh_hih[j]);            
  45.               }
  46.                             if(KEY5==0)
  47.                             {
  48.                                           Delayinput10ms();            
  49.                                           if(KEY5==0)
  50.                                           {
  51.                             while(1)
  52.               {
  53.                             LcdInit();
  54.                             for(j=0;j<5;j++)
  55.               {
  56.                             LcdWriteData(PuZh_wrong[j]);            
  57.               }
  58.               }
  59.                                                       
  60.                                                         while((i<50)&&(KEY5==0))
  61.                                           {
  62.                                                         Delayinput10ms();
  63.                                                         i++;
  64.                                           }
  65.                                           i=0;
  66.                                           }
  67.                             }                           
  68.                                           if(KEY6==0)
  69.                             {
  70.                                           Delayinput10ms();
  71.                                           if(KEY6==0)
  72.                                           {
  73.                                                                                     while(1)
  74.               {
  75.                             Ds18b20ChangTemp();
  76.                             LcdDisplay(Ds18b20ReadTemp());
  77.                             temp_true=Ds18b20ReadTemp()*0.0625*100+0.5;
  78.                             if(temp_true<10||temp_true>20)
  79.                             {
  80.                                           beeb=0;
  81.                                           Delay1ms(100);
  82.                             }
  83.                             beeb=1;
  84.               }
  85.                                                         while((i<50)&&(KEY6==0))
  86.                                           {
  87.                                                         Delayinput10ms();
  88.                                                         i++;
  89.                                           }
  90.                                           i=0;
  91.                                           }
  92.                             }            
  93.                                           if(KEY7==0)
  94.                             {
  95.                                           Delayinput10ms();
  96.                                           if(KEY7==0)
  97.                                           {
  98.                                                                                     while(1)
  99.               {
  100.                             Ds18b20ChangTemp();
  101.                             LcdDisplay(Ds18b20ReadTemp());
  102.                             temp_true=Ds18b20ReadTemp()*0.0625*100+0.5;
  103.                             if(temp_true<10||temp_true>30)
  104.                             {
  105.                                           beeb=0;
  106.                                           Delay1ms(100);
  107.                             }
  108.                             beeb=1;
  109.               }
  110.                                                         while((i<50)&&(KEY7==0))
  111.                                           {
  112.                                                         Delayinput10ms();
  113.                                                         i++;
  114.                                           }
  115.                                           i=0;
  116.                                           }
  117.                             }            
  118.                                          
  119.                                           if(KEY8==0)
  120.                             {
  121.                                           Delayinput10ms();
  122.                                           if(KEY8==0)
  123.                                           {
  124.                                                                                                                               while(1)
  125.               {
  126.                             Ds18b20ChangTemp();
  127.                             LcdDisplay(Ds18b20ReadTemp());
  128.                             temp_true=Ds18b20ReadTemp()*0.0625*100+0.5;            
  129.               }
  130.                                                         while((i<50)&&(KEY8==0))
  131.                                           {
  132.                                                         Delayinput10ms();
  133.                                                         i++;
  134.                                           }
  135.                                           i=0;
  136.                                           }

  137.                             }            
  138.               }
  139.               }                                         
  140.                                                         while((i<50)&&(KEY1==0))
  141.                                           {
  142.                                                         Delayinput10ms();
  143.                                                         i++;
  144.                                           }
  145.                                           i=0;
  146.                                           }
  147.                             ////////////////////////////////////////////////////////////////////////
  148.                                                                         if(KEY2==0)                           
  149.                             {
  150.                                           Delayinput10ms();            
  151.                                           if(KEY2==0)
  152.                                           {
  153.                                                         while(1)
  154.               {
  155.                                           LcdInit();
  156.               for(j=0;j<16;j++)
  157.               {
  158.                             LcdWriteData(PuZh_hih[j]);            
  159.               }
  160.                             if(KEY5==0)
  161.                             {
  162.                                           Delayinput10ms();
  163.                                           if(KEY5==0)
  164.                                           {
  165.                             while(1)
  166.               {
  167.                             Ds18b20ChangTemp();
  168.                             LcdDisplay(Ds18b20ReadTemp());
  169.                             temp_true=Ds18b20ReadTemp()*0.0625*100+0.5;
  170.                             if(temp_true>20||temp_true<10)
  171.                             {
  172.                                           beeb=0;
  173.                                           Delay1ms(100);
  174.                             }
  175.                             beeb=1;
  176.               }
  177.                                                         while((i<50)&&(KEY5==0))
  178.                                           {
  179.                                                         Delayinput10ms();
  180.                                                         i++;
  181.                                           }
  182.                                           i=0;
  183.                                           }
  184.                             }                           
  185.                                           if(KEY6==0)
  186.                             {
  187.                                           Delayinput10ms();
  188.                                           if(KEY6==0)
  189.                                           {
  190.                                                                                     while(1)
  191.               {
  192.                             LcdInit();
  193.                             for(j=0;j<5;j++)
  194.               {
  195.                             LcdWriteData(PuZh_wrong[j]);            
  196.               }
  197.               }
  198.                                                         while((i<50)&&(KEY6==0))
  199.                                           {
  200.                                                         Delayinput10ms();
  201.                                                         i++;
  202.                                           }
  203.                                           i=0;
  204.                                           }                           
  205.                             }            
  206.                                           if(KEY7==0)
  207.                             {
  208.                                           Delayinput10ms();
  209.                                           if(KEY7==0)
  210.                                           {
  211.                                                                                     while(1)
  212.               {
  213.                            
  214.                             Ds18b20ChangTemp();
  215.                             LcdDisplay(Ds18b20ReadTemp());
  216.                             temp_true=Ds18b20ReadTemp()*0.0625*100+0.5;
  217.                             if(temp_true<20||temp_true>30)
  218.                             {
  219.                                           beeb=0;
  220.                                           Delay1ms(100);
  221.                             }                           
  222.                             beeb=1;                           
  223.               }
  224.                                                         while((i<50)&&(KEY7==0))
  225.                                           {
  226.                                                         Delayinput10ms();
  227.                                                         i++;
  228.                                           }
  229.                                           i=0;
  230.                                           }
  231.                             }            
  232.                                          
  233. ……………………

  234. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼


完整的Word格式文檔51黑下載地址:
實(shí)習(xí)報(bào)告.rar (2.47 MB, 下載次數(shù): 16)



評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久不射网 | 欧美久久一区 | 亚洲日本一区二区三区四区 | 国产精品久久久久久婷婷天堂 | 亚洲精品一区二区网址 | 操久久| 日本黄色影片在线观看 | 男女网站免费观看 | 欧美日韩视频在线第一区 | 超碰在线人人干 | 欧美中文字幕一区二区三区亚洲 | 亚洲精品自拍 | 草草影院ccyy| 久久综合久色欧美综合狠狠 | 国产欧美日韩综合精品一区二区 | 国产精品视频一二三区 | 小早川怜子xxxxaⅴ在线 | 免费观看一级毛片 | 免费观看一级毛片 | 欧美一区二区激情三区 | 欧美日韩高清在线一区 | 日韩一区二区三区av | 国产欧美日韩综合精品一区二区 | 欧美午夜久久 | 国产一级在线 | 精品视频在线播放 | 狠狠综合网 | japan21xxxxhd美女 日本欧美国产在线 | 超碰一区二区 | 国产精品成人一区二区三区夜夜夜 | 精品无码久久久久久国产 | 网络毛片 | www.狠狠干 | 日韩精品1区2区3区 爱爱综合网 | 国产免费观看一级国产 | 国产精品一区二区久久 | 国产精品美女久久久久久久久久久 | 日韩欧美在线观看视频网站 | 精品视频在线观看 | 国产成在线观看免费视频 | 欧美国产一区二区 |