歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

《單片機原理及應(yīng)用》課程設(shè)計報告書消毒柜控制電路的設(shè)計

  • 資源ID:28068260       資源大?。?span id="gwkc0t5" class="font-tahoma">793.56KB        全文頁數(shù):31頁
  • 資源格式: DOC        下載積分:15積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要15積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

《單片機原理及應(yīng)用》課程設(shè)計報告書消毒柜控制電路的設(shè)計

31 單片機原理及應(yīng)用課程設(shè)計報告書課題名稱消毒柜控制電路的設(shè)計 姓 名學(xué) 號 專 業(yè)電氣工程及其自動化指導(dǎo)教師 機電與控制工程學(xué)院 年 月 日填 寫 說 明 1、正文部分: (1) 標題與正文格式定義標準如下:一級標題:1.標題1二級標題:1.1標題2三級標題:1.1.1標題3四級標題:1.1.1.1標題4 (2)表格:盡可能采用三線表。 (3)圖形:直接插入的插圖應(yīng)有圖標、圖號,不能直接插入的圖應(yīng)留出插圖空位。圖中文字、符號書寫要清楚,并與正文一致。 (4)文字表述:要求層次清楚,語言流暢,語句通順,無語法和邏輯錯誤,無錯字、別字、漏字。文字的表述應(yīng)當以科學(xué)語言描述研究過程和研究結(jié)果,不要以口語化的方式表達,報告中科技術(shù)語和名詞應(yīng)符合規(guī)定的通用詞語,并使用法定計量單位和標準符號。 2、參考文獻: (1)數(shù)量要求:參考文獻只選擇最主要的列入,應(yīng)不低于5種。 (2)種類要求:參考文獻的引用,可以是著作M、論文J、專利文獻P、會議論文等。 (3)文獻著錄格式及示例。參考文獻用宋體五號字。 1 作者. 書名M. 版次. 出版地: 出版者, 出版年: 起止頁碼 (著作圖書文獻) 2 作者. 文章名J. 學(xué)術(shù)刊物名稱. 年. 卷(期): 起止頁碼 (學(xué)術(shù)刊物文獻) 示例:1王社國,趙建光。基于ARM的嵌入式語音識別系統(tǒng)研究 J。微計算機信息,2007,2-2:149-150.3、附錄或附件:(可選項) 重要的測試結(jié)果、圖表、設(shè)計圖紙、源程序代碼、大量的公式、符號、照片等不宜放入正文中的可以附錄形式出現(xiàn)。4、如果需要可另行附頁粘貼。任 務(wù) 書基于單片機的消毒柜控制電路的設(shè)計 設(shè)計一臺消毒柜控制系統(tǒng),要求:(1)顯示消毒柜溫度,保持時間。(2)可以鍵盤設(shè)定消毒柜溫度,定時時間。(3)可以實現(xiàn)實時中斷功能。(4)消毒后自動關(guān)機。(5)測溫誤差:0.5 c。(6)定時誤差:20s/月目 錄1、緒論 2、方案論證(規(guī)劃、選定) 3、方案說明(設(shè)計) 4、硬件方案設(shè)計 5、軟件方案設(shè)計6、調(diào)試 7、技術(shù)小結(jié)(結(jié)束語) 8、參考文獻 9、附錄(源程序代碼、電路圖等) 1. 緒論 該課題是設(shè)計一個消毒柜其實就是設(shè)計一個智能的溫度控制系統(tǒng),消毒柜主要通過加熱到一個指定溫度,對餐具等衛(wèi)生潔具進行高溫消毒,消毒柜將高溫控制在一個指定的范圍內(nèi),并維持一定時間,殺滅細菌,極大地增強了人們的飲食衛(wèi)生,大大降低了疾病的交叉?zhèn)魅荆瑸樘岣呷藗兊纳眢w健康起了重要的作用。本文主要介紹了一個基于AT89C51單片機制作的消毒柜控制電路。它主要包括供電電源電路、上電復(fù)位電路、晶振電路、開關(guān)控制電路、顯示電路等部分。文中對各電路的結(jié)構(gòu)及工作原理作了詳盡的介紹。電路運行后,能自動定時控制消毒柜的加電和斷電,適時有效地完成對柜內(nèi)餐具或其它物品的消毒工作。具有電路簡單、制作容易、使用靈活等優(yōu)點。通過該電路,可以進一步了解到單片機電路的應(yīng)用擴展功能和指令應(yīng)用技巧。本文的消毒柜控制系統(tǒng)就是為了人們?nèi)粘I钪械牟途呦径O(shè)計的,采用微電腦控制技術(shù),精確地控制消毒柜內(nèi)的溫度和加熱時間,很大程度上改善了人們的飲食衛(wèi)生,提高了人們的生活水平。本設(shè)計采用DS18B20溫度傳感器采集實時溫度,通過DQ口送51單片機系統(tǒng),實現(xiàn)模擬溫度值的采集、轉(zhuǎn)化、輸出數(shù)字值,然后51單片機對采集的數(shù)據(jù)處理后送液晶顯示電路,實時動態(tài)地顯示當前的溫度及倒計時時間。對溫度的控制主要由單片機內(nèi)部三種中斷方式來控制啟動和停止。2、方案論證21 系統(tǒng)設(shè)計要求2.1.1顯示消毒柜溫度,保持時間。2.1.2可以鍵盤設(shè)定消毒柜溫度,定時時間。2.1.3可以實現(xiàn)實時中斷功能。22 系統(tǒng)組成框圖DS18B20鍵盤控制單片機液晶屏顯示發(fā)光二極管顯示圖2.1 系統(tǒng)組成框圖23 系統(tǒng)工作原理該系統(tǒng)是基于AT89S51單片機的溫度控制的且實現(xiàn)通過高溫來殺滅病毒的消毒柜系統(tǒng),該系統(tǒng)主要三大部分組成。第一部分是由溫度傳感器DS18B20采集實時溫度轉(zhuǎn)換成數(shù)字信號;第二部分的電路是由鍵盤控制消毒的定時和啟停;第三部分是液晶顯示屏的顯示部分。 AT89S51單片機對鍵盤的掃描結(jié)果和即時溫度值的處理,實現(xiàn)對溫度的實時控制,系統(tǒng)設(shè)計了啟動設(shè)定定時時間,設(shè)置定時時間,中斷控制定時,共四個鍵,按下啟動設(shè)定定時時間功能鍵即確定開始溫度增減按鈕時,單片機加熱時間可通過溫度加減按鈕設(shè)定,開始加熱,啟動定時器中斷控制,當溫度加熱設(shè)定時間到后停止加熱。23系統(tǒng)工作論證 通過對系統(tǒng)控制要求的研究,確定了控制系統(tǒng)的基本框圖,針對其基本原理進行了分析說明,此方案能滿足消毒柜控制系統(tǒng)的基本要求。3、方案說明 3.1 DS18B20 一線總線溫度傳感器特點: 1體積小,安裝方便;可聯(lián)網(wǎng),方便分散點測量;三線二線式連接方式;測量范圍-55+125;3.2 AT89C51按照單片機系統(tǒng)擴展與系統(tǒng)配置狀況,單片機應(yīng)用系統(tǒng)可分為最小系統(tǒng)、最小功耗系統(tǒng)及典型系統(tǒng)等。AT89C51單片機是美國ATMEL公司生產(chǎn)的低電壓、高性能CMOS 8位單片機,具有豐富的內(nèi)部資源:4kB閃存、128BRAM、32根I/O口線、2個16位定時/計數(shù)器、5個向量兩級中斷結(jié)構(gòu)、2個全雙工的串行口,具有4.255.50V的電壓工作范圍和024MHz工作頻率,使用AT89C51單片機時無須外擴存儲器。因此,單片機最小系統(tǒng)為晶振、復(fù)位、電源等電路和必要的軟件組成的單個單片機。3.3 1602液晶顯示首先是1602液晶的管腳,總共有16個管腳,其中有三根是電源地、電源正、還有事對比度的調(diào)整電壓;還有兩根是LCD背光的正、負極。重要的是決定led指令的三根管腳嗎,分別是RS、 R/W、E(一般接單片機的P2.0P2.2),剩下的八根式數(shù)據(jù)線分別為DB0DB7(一般接單片機的P0口)。4、硬件方案設(shè)計4.1系統(tǒng)硬件結(jié)構(gòu)框圖51單片機LCD液晶顯示屏實時溫度,定時時間,溫度上下限二極管亮滅按鍵DS18B20圖2系統(tǒng)硬件結(jié)構(gòu)框圖4.2單片機最小系統(tǒng)設(shè)計單片機采用的是ATMEL公司的AT89S51芯片該款芯片是一種低功耗、高性能CMOS8位微控制器,具有 4K 在系統(tǒng)可編程Flash 存儲器。使用Atmel 公司高密度非 易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完 全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于 常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng) 可編程Flash,使得AT89S51為眾多嵌入式控制應(yīng)用系統(tǒng)提 供高靈活、超有效的解決方案。 AT89S51具有以下標準功能: 4k字節(jié)Flash,128字節(jié)RAM, 32 位I/O 口線,看門狗定時器,2 個數(shù)據(jù)指針,兩個16 位 定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口, 片內(nèi)晶振及時鐘電路。另外,AT89S51可降至0Hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工 作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié), 單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。8 位微控制器 4K 字節(jié)在系統(tǒng)可編程 Flash AT89S51。單片機最小系統(tǒng)電路圖如圖3.2所示。圖3.2 單片機最小系統(tǒng)電路圖4.3 DS18B20控制電路通過P3.4口與DQ的連接實現(xiàn)51單片機與溫度傳感器DS18B20的連通工作。4.4 鍵盤控制電路該鍵盤接口電路通過按鍵控制定時和中斷。本模塊通過編制程序,掃描鍵盤,來比對鍵盤的值,來設(shè)置四個功能鍵。4.5 LCD液晶顯示電路通過P0口控制液晶顯示的輸入。P0口必須外接上拉電阻。通過P2口的低三位控制RS,RW,E三個功能控制引腳,從而控制液晶顯示屏LCD的工作。5、軟件方案設(shè)計5.1系統(tǒng)軟件設(shè)計原理本程序設(shè)計根據(jù)通過溫度傳感器采樣來的溫度值,經(jīng)過內(nèi)部轉(zhuǎn)化為二進制數(shù)字量,再通過51單片機控制輸出至LCD液晶顯示屏,然后調(diào)用顯示程序進行溫度的事實顯示。對于各個功能鍵的程序是從P0口讀數(shù)、再轉(zhuǎn)換成十進制數(shù)、送顯緩區(qū)、再根據(jù)鍵盤掃描的結(jié)果對溫度值進行比較判斷,當按下的鍵是加減功能鍵時,系統(tǒng)要控制加熱的時間可進行調(diào)節(jié)。開始加熱后,通過定時器控制加熱時間到的中斷,當加熱時間由設(shè)定值減至0時停止加熱,鍵盤顯示實時溫度。通過在主程序里面設(shè)立標志,該程序是通過延時的方法來確保溫度轉(zhuǎn)換為顯示數(shù)據(jù)實現(xiàn)溫度與按鍵的統(tǒng)一和“同步”,實時的控制加熱的工作,以達到人們所要求達到的效果。5.2主程序流程圖 開始系統(tǒng)初始化顯示屏初始中斷初始定時初始鍵盤設(shè)置與液晶屏顯示判斷定時 定時未到,繼續(xù)判斷 定時到 工作 圖3主程序流程圖5.3系統(tǒng)子程序設(shè)計本軟件設(shè)計中,系統(tǒng)子程序的設(shè)計是整個程序設(shè)計的重中之重,子程序以模塊化的方式實現(xiàn)各個獨立功能,再通過主程序來調(diào)用功能子程序,使整個程序?qū)崿F(xiàn)完整的功能。按鍵處理子程序, DS18B20溫度采樣子程序,溫度采樣轉(zhuǎn)化子程序,顯示處理子程序。6、調(diào)試6.1 硬件調(diào)試6.1.1.由于本次課程設(shè)計做了實物出來,通過設(shè)計方案,在試驗焊接板上進行合理布局并焊接實物圖。然后根據(jù)實驗指導(dǎo)書上的各功能芯片的端口地址,連接號各部分電路,用電表測量焊接點的正常與否,最后連上電源。6.1.2.檢測LCD顯示模塊,因為通過鍵盤顯示,可以直觀的知道程序是否基本運行正常,是否按預(yù)定的顯示。6.1.3. 調(diào)試鍵盤模塊電路,看是否按壓正常,以及二極管閃滅部分是否能夠?qū)崿F(xiàn)實時閃亮。6.1.4.最后進行整體硬件電路的聯(lián)調(diào)。6.2軟件調(diào)試軟件調(diào)試是個很重要的過程,由于軟件出現(xiàn)錯誤的話就基本上各部分功能都實現(xiàn)都有困難,所以軟件的調(diào)試時重中之重。6.2.1第一步是進行的是DS18B20的軟件的調(diào)試,通過采集溫度后內(nèi)部轉(zhuǎn)換后通過合理的內(nèi)存單元的分配,存儲采樣后轉(zhuǎn)換的值,然后同過51單片機程序看是否實現(xiàn)在LCD上顯示實時溫度值。6.2.2鍵盤掃描部分程序的調(diào)試,該部分是程序中的功能鍵實現(xiàn)控制溫度和時間的主要的部分,如果該部分程序出現(xiàn)錯誤的話,邏輯就會出現(xiàn)混亂,各功能鍵將不能實現(xiàn),在調(diào)試的過程中,我們發(fā)現(xiàn),我們的鍵盤電路的接法接口要正確連接,一旦鍵盤口搞錯的話,就會出現(xiàn)按鍵的功能的混亂,所以在這一步分的調(diào)試上最主要是把握鍵盤的控制分析。6.2.3 最后一部分調(diào)試顯示程序的調(diào)試,該部分程序的調(diào)試,關(guān)系到該課設(shè)是否夠直觀的體現(xiàn)溫度值,以及建立一個直觀的人機對話界面,在該部分程序的調(diào)試的過程中面臨的最大困難就是對于顯緩單元的分配,以及初始化,讀寫的控制,如果顯緩單元分配有沖突的話,就會導(dǎo)致程序邏輯錯誤,所以應(yīng)該仔細調(diào)試該部分應(yīng)該邊編寫邊調(diào)試。6.3調(diào)試結(jié)果用專門的編譯軟件Keil對程序進行編譯,編譯無誤后。并讓其生成HEX文件,按照軟件流程圖在仿真軟件Proteus上進行仿真,把各個元器在仿真軟件中找出來,再將它們連接起來,連接完畢后將生成的HEX文件加載到單片機中。經(jīng)過詳細的硬件調(diào)試和軟件調(diào)試之后,系統(tǒng)工作正常,LCD液晶顯示模塊共兩行,分別按要求實時顯示設(shè)定的最高和最低溫,當前溫度值,定時時間值。按下“加減鍵”時,系統(tǒng)可調(diào)節(jié)消毒加熱的時間,加熱時間到后點亮定時到指示燈,當時間到達到0時,停止加熱。7、技術(shù)小結(jié)通過一個多星期的研究動手實踐完成,簡單的消毒柜控制系統(tǒng)初步成形。實物圖也出來了,實現(xiàn)了課程設(shè)計的基本要求。本設(shè)計集中了按鍵,定時器,液晶顯示等的應(yīng)用。對于按鍵部分控制簡單,因為是獨立的按鍵控制,只需要與51單片機的任一輸入輸出端口相連,通過控制器高低電平即可。對于定時器和外部中斷0,1的設(shè)計書寫,只需要對中斷和定時器控制的方法和步驟熟悉,熟練運用它們的啟動停止就可正確完成控制。對于我來說最難得就是LCD液晶顯示的控制了,硬件連接圖可根據(jù)經(jīng)驗和管腳說明連接就行,但軟件程序編寫時對其的不熟悉和難以理解,給了我很大的障礙,以至于很久弄不出程序,不能支持實物電路板的正常工作。后來經(jīng)過學(xué)習(xí)參考咨詢和大家交流等各種渠道,慢慢的掌握了其基本的知識,才有了后來的完整的程序。本次課設(shè)一個不足之處就是沒有完成消毒后自動關(guān)機的功能,浪費單片機的內(nèi)部資源。對于溫度傳感器電路,還存在缺憾,并不能完全掌握該部分程序的編寫。本課程設(shè)計自己去焊接電路,鍛煉了獨立思考和實際操作的能力,一定程度上增加了課程設(shè)計的難度,但是真正對我們設(shè)計電路卻是一個幫助和提高,所以我努力并認真的對待著本次的設(shè)計,希望能夠自行設(shè)計硬件電路根據(jù)自己設(shè)計的硬件電路來編制相應(yīng)的程序在對我們掌握各硬件部分電路有更好的理解,也一定程度上復(fù)習(xí)了以前所學(xué)的其基礎(chǔ)知識,也能更好的掌握一些電氣知識。8、參考文獻【1】 萬福君.潘松峰.劉芳.MSC-51單片微型機原理、系統(tǒng)設(shè)計及應(yīng)用【M】.北京:清華大學(xué)出版社,2009.9【2】 陳黎娟.萬在紅.吳開志.聶鵬程.單片微型計算機實驗教程【M】.南昌航空大學(xué),2006.2【3】 張永瑞. 電子測量技術(shù)基礎(chǔ)【M】.西安:西安電子科技大學(xué)出版社,2009.1【4】 劉同法.陳忠平.彭繼衛(wèi).單片機外圍接口電路與工程實踐【M】.北京:北京航空航天大學(xué)出版社, 2009.3【5】 何立民.單片機應(yīng)用技術(shù)選編 (1-8). 北京:北京航空航天大學(xué)出版社. 2001【6】 鄔寬明.單片機外圍器件實用手冊. 數(shù)據(jù)傳輸接口器件分冊M.北京:北京航空航天大學(xué)出版社,1998 【7】 鮑健等. 用單片機直接驅(qū)動液晶顯示器.量子電子學(xué)報J.2005.2(4):651652 9、附錄9.1主程序源程序:/#include <at89x51.h>/用AT89C51時就用這個頭文件#include <reg52.h>/用華邦W78E58B時必須用這個頭文件#include <absacc.h>#include <ctype.h>#include <math.h>#include <stdio.h>#include <string.h>#include <DS18B20.h>#include "LCD1602.h"/液晶顯示頭文件/sbit DQ = P34;/定義DQ引腳為P3.4sbit k0=P37; /確認開始溫度增減的按鈕sbit k3=P11; /溫度加sbit k4=P13; /溫度減sbit k5=P17; /確定按鈕sbit LED=P30; / 溫度到后亮 unsigned char min=0;unsigned char temp=0;unsigned int a=0;unsigned char b=0;unsigned char t2,*pt;/用來存放溫度值,測溫程序就是通過這個數(shù)組與主函數(shù)通信的/unsigned char TempBuffer19=0x2b,0x31,0x32,0x32,0x2e,0x30,0x30,0x43,0;unsigned char TempBuffer117=0x2b,0x31,0x32,0x32,0x2e,0x30,0x30,0x43, 0x54,0x3a,0x30,0x30,0x43,0x3a,0x30,0x30,0;/顯示實時溫度,上電時顯示+125.00Cunsigned char TempBuffer017=0x54,0x48,0x3a,0x2b,0x31,0x32,0x35,0x20,0x54,0x4c,0x3a,0x2b,0x31,0x32,0x34,0x43,0;/顯示溫度上下限,上電時顯示TH:+125 TL:+124Cunsigned char code dotcode4=0,25,50,75;/*因顯示分辨率為0.25,但小數(shù)運算比較麻煩,故采用查表的方法*再將表值分離出十位和個位后送到十分位和百分位*/void covert0( unsigned char TH, unsigned char TL)/將溫度上下限轉(zhuǎn)換為LCD顯示的數(shù)據(jù) if(TH>0x7F) /判斷正負,如果為負溫,將其轉(zhuǎn)化為其絕對值 TempBuffer03=0x2d; /0x2d為"-"的ASCII碼TH=TH;TH+; else TempBuffer03=0x2b;/0x2B為"+"的ASCII碼 if(TL>0x7f) TempBuffer011=0x2d; /0x2d為"-"的ASCII碼 TL=TL+1; else TempBuffer011=0x2b;/0x2B為"+"的ASCII碼 TempBuffer04=TH/100+0x30; /分離出TH的百十個位 if( TempBuffer04=0x30) TempBuffer04=0xfe; /百位數(shù)消隱 TempBuffer05=(TH%100)/10+0x30;/分離出十位 TempBuffer06=(TH%100)%10+0x30; /分離出個位 TempBuffer012=TL/100+0x30; /分離出TL的百十個位 if( TempBuffer012=0x30) TempBuffer012=0xfe; /百位數(shù)消隱 TempBuffer013=(TL%100)/10+0x30;/分離出十位 TempBuffer014=(TL%100)%10+0x30; /分離出個位 /if(k0=0) b=0; if(TempBuffer12=TempBuffer114)&&(TempBuffer13=TempBuffer115)&&(b=1) LED=1; b=0; k0=1; void covert1(void)/將溫度轉(zhuǎn)換為LCD顯示的數(shù)據(jù) unsigned char x=0x00,y=0x00; t0=*pt; pt+; t1=*pt; if(t1>0x07) /判斷正負溫度 TempBuffer10=0x2d; /0x2d為"-"的ASCII碼t1=t1; /*下面幾句把負數(shù)的補碼*/t0=t0; /* 換算成絕對值*/x=t0+1; /*/t0=x; /*/if(x>255) /*/t1+; /*/ else TempBuffer10=0x2b;/0xfe為變"+"的ASCII碼 t1<<=4;/將高字節(jié)左移4位 t1=t1&0x70;/取出高字節(jié)的3個有效數(shù)字位 x=t0;/將t0暫存到X,因為取小數(shù)部分還要用到它 x>>=4;/右移4位 x=x&0x0f;/和前面兩句就是取出t0的高四位 t1=t1|x;/將高低字節(jié)的有效值的整數(shù)部分拼成一個字節(jié) TempBuffer11=t1/100+0x30; /+0x30 為變 09 ASCII碼 if( TempBuffer11=0x30) TempBuffer11=0xfe; /百位數(shù)消隱 TempBuffer12=(t1%100)/10+0x30;/分離出十位 TempBuffer13=(t1%100)%10+0x30; /分離出個位 t0=t0&0x0c;/取有效的兩位小數(shù) t0>>=2;/左移兩位,以便查表 x=t0; y=dotcodex;/查表換算成實際的小數(shù) TempBuffer15=y/10+0x30;/分離出十分位 TempBuffer16=y%10+0x30;/分離出百分位 void delay(unsigned char i)while(i-);void delay1(unsigned int z) unsigned int i,j; for(i=z;i>0;i-) for(j=100;j>0;j-);/*設(shè)定時間函數(shù)*/void shijianset() if(k3=0) delay1(120); if(k3=0) min+; if(k4=0) delay1(120); if(k4=0) min-; TempBuffer111=min%10+0x30; TempBuffer110=min/10+0x30;/*確認開始計時函數(shù)*/void jishi() if(k5=0) delay1(120); if(k5=0) TR0=1; /開始計時 b=1; if(a=20) a=0; min-; if(min=0) TR0=0; /*設(shè)置溫度函數(shù)*/void setwendu() TempBuffer114=temp/10+0x30; TempBuffer115=temp%10+0x30;/*主程序*/main() unsigned char TH=110,TL=-20; /下一步擴展時可能通過這兩個變量,調(diào)節(jié)上下限 LED=0; /測溫函數(shù)返回這個數(shù)組的頭地址 EA=1; /開總中斷 EX0=1; /允許外部中斷0 EX1=1; /允許外部中斷1 IT0=1; /設(shè)置外部觸發(fā)0為跳沿觸發(fā) IT1=1; /設(shè)置外部觸發(fā)1為跳沿觸發(fā) TMOD=0X01; /設(shè)置定時器T0為工作方式1 TL0=0XB0; TH0=0X3C; /設(shè)置每次定時時間為50ms ET0=1; /允許定時器中斷 k0=0; while(1) pt=ReadTemperature(TH,TL,0x3f); /上限溫度-22,下限-24,分辨率10位,也就是0.25C /讀取溫度,溫度值存放在一個兩個字節(jié)的數(shù)組中,delay(100); shijianset();setwendu();covert1();covert0(TH,TL);jishi();LCD_Initial();/第一個參數(shù)列號,第二個為行號,為0表示第一行/為1表示第二行,第三個參數(shù)為顯示數(shù)據(jù)的首地址LCD_Print(0,0,TempBuffer0);LCD_Print(0,1,TempBuffer1); void extern0() interrupt 0 temp+; void extern1() interrupt 2 temp-; void timer() interrupt 1 TL0=0XB0; TH0=0X3C; a+;9.2子程序9.2.1 LCD顯示子程序/#include <at89x51.h>/用AT89C51時就用這個頭文件#include <reg52.h>/用華邦W78E58B時必須用這個頭文件#include <intrins.h>/注意那個LCD_Wait()函數(shù),它是判"忙"標志的,在實際硬件要把注掉的那種打開/Port Definitions*sbit LcdRs= P20;sbit LcdRw= P21;sbit LcdEn = P22;sfr DBPort = 0x80;/P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.數(shù)據(jù)端口/內(nèi)部等待函數(shù)*unsigned char LCD_Wait(void)LcdRs=0;LcdRw=1;_nop_();LcdEn=1;_nop_();/while(DBPort&0x80);/在用Proteus仿真時,注意用屏蔽此語句,在調(diào)用GotoXY()時,會進入死循環(huán), /可能在寫該控制字時,該模塊沒有返回寫入完備命令,即DBPort&0x80=0x80 /實際硬件時打開此語句LcdEn=0;return DBPort;/向LCD寫入命令或數(shù)據(jù)*#define LCD_COMMAND0 / Command#define LCD_DATA1 / Data#define LCD_CLEAR_SCREEN0x01 / 清屏#define LCD_HOMING 0x02 / 光標返回原點void LCD_Write(bit style, unsigned char input)LcdEn=0;LcdRs=style;LcdRw=0;_nop_();DBPort=input;_nop_();/注意順序LcdEn=1;_nop_();/注意順序LcdEn=0;_nop_();LCD_Wait();/設(shè)置顯示模式*#define LCD_SHOW0x04 /顯示開#define LCD_HIDE0x00 /顯示關(guān) #define LCD_CURSOR0x02 /顯示光標#define LCD_NO_CURSOR0x00 /無光標 #define LCD_FLASH0x01 /光標閃動#define LCD_NO_FLASH0x00 /光標不閃動void LCD_SetDisplay(unsigned char DisplayMode)LCD_Write(LCD_COMMAND, 0x08|DisplayMode);/設(shè)置輸入模式*#define LCD_AC_UP0x02#define LCD_AC_DOWN0x00 / default#define LCD_MOVE0x01 / 畫面可平移#define LCD_NO_MOVE0x00 /defaultvoid LCD_SetInput(unsigned char InputMode)LCD_Write(LCD_COMMAND, 0x04|InputMode);/初始化LCD*void LCD_Initial()LcdEn=0;LCD_Write(LCD_COMMAND,0x38); /8位數(shù)據(jù)端口,2行顯示,5*7點陣LCD_Write(LCD_COMMAND,0x38);LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); /開啟顯示, 無光標LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); /清屏LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); /AC遞增, 畫面不動/*void GotoXY(unsigned char x, unsigned char y)if(y=0)LCD_Write(LCD_COMMAND,0x80|x);if(y=1)LCD_Write(LCD_COMMAND,0x80|(x-0x40);void Print(unsigned char *str)while(*str!=0)LCD_Write(LCD_DATA,*str);str+;void LCD_Print(unsigned char x, unsigned char y, unsigned char *str) GotoXY(x,y); Print(str);9.2.2 DS18B20控制子程序/#include <at89x51.h>/用AT89C51時就用這個頭文件#include <reg52.h>/用華邦W78E58B時必須用這個頭文件sbit DQ = P34;/定義DQ引腳為P3.4/*ds18b20延遲子函數(shù)(晶振12MHz )*/ /*DS18B20對時間要求很嚴,但只能長不能短*在11.0592M下也行,因為時間長些*/void delay_18B20(unsigned int i)while(i-);/*ds18b20初始化函數(shù)*/void Init_DS18B20(void) unsigned char x=0; DQ = 1; /DQ復(fù)位 delay_18B20(8); /稍做延時 DQ = 0; /單片機將DQ拉低 delay_18B20(80); /精確延時 大于 480us DQ = 1; /拉高總線 delay_18B20(14); x=DQ; /稍做延時后 如果x=0則初始化成功 x=1則初始化失敗 delay_18B20(20);/*ds18b20讀一個字節(jié)*/ unsigned char ReadOneChar(void)unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i-) DQ = 0; / 給脈沖信號 dat>>=1; DQ = 1; / 給脈沖信號 if(DQ) dat|=0x80; delay_18B20(4); return(dat);/*ds18b20寫一個字節(jié)*/ void WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i>0; i-) DQ = 0; DQ = dat&0x01; delay_18B20(5); DQ = 1; dat>>=1; /*讀取ds18b20當前溫度*/unsigned char *ReadTemperature(char TH,char TL,unsigned char RS)unsigned char tt2;Init_DS18B20();WriteOneChar(0xCC); / 跳過讀序號列號的操作WriteOneChar(0x4E); / /寫入"寫暫存器"命令,修改TH和TL和分辯率配置寄存器/先寫TH,再寫TL,最后寫配置寄存器WriteOneChar(TH);/寫入想設(shè)定的溫度報警上限WriteOneChar(TL);/寫入想設(shè)定的溫度報警下限WriteOneChar(RS);/寫配置寄存器,格式為0 R1 R0 1,1 1 1 1/R1R0=00分辨率婁9位,R1R0=11分辨率為12位delay_18B20(80); / this message is wery importantInit_DS18B20();WriteOneChar(0xCC); / 跳過讀序號列號的操作WriteOneChar(0x44); / 啟動溫度轉(zhuǎn)換delay_18B20(80); / this message is wery importantInit_DS18B20();WriteOneChar(0xCC); /跳過讀序號列號的操作WriteOneChar(0xBE); /讀取溫度寄存器等(共可讀9個寄存器) 前兩個就是溫度delay_18B20(80);tt0=ReadOneChar(); /讀取溫度值低位tt1=ReadOneChar(); /讀取溫度值高位return(tt);9.3消毒柜硬件連接圖指導(dǎo)教師評 語課程設(shè)計成 績指導(dǎo)教師簽 字年 月 日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

注意事項

本文(《單片機原理及應(yīng)用》課程設(shè)計報告書消毒柜控制電路的設(shè)計)為本站會員(仙***)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!