《單片機原理及應用》課程設計報告書消毒柜控制電路的設計_第1頁
《單片機原理及應用》課程設計報告書消毒柜控制電路的設計_第2頁
《單片機原理及應用》課程設計報告書消毒柜控制電路的設計_第3頁
《單片機原理及應用》課程設計報告書消毒柜控制電路的設計_第4頁
《單片機原理及應用》課程設計報告書消毒柜控制電路的設計_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 單片機原理及應用課程設計報告書課題名稱消毒柜控制電路的設計 姓 名學 號 專 業(yè)電氣工程及其自動化指導教師 機電與控制工程學院 年 月 日填 寫 說 明 1、正文部分: (1) 標題與正文格式定義標準如下:一級標題:1.標題1二級標題:1.1標題2三級標題:1.1.1標題3四級標題:1.1.1.1標題4 (2)表格:盡可能采用三線表。 (3)圖形:直接插入的插圖應有圖標、圖號,不能直接插入的圖應留出插圖空位。圖中文字、符號書寫要清楚,并與正文一致。 (4)文字表述:要求層次清楚,語言流暢,語句通順,無語法和邏輯錯誤,無錯字、別字、漏字。文字的表述應當以科學語言描述研究過程和研究結果,不要以口

2、語化的方式表達,報告中科技術語和名詞應符合規(guī)定的通用詞語,并使用法定計量單位和標準符號。 2、參考文獻: (1)數量要求:參考文獻只選擇最主要的列入,應不低于5種。 (2)種類要求:參考文獻的引用,可以是著作m、論文j、專利文獻p、會議論文等。 (3)文獻著錄格式及示例。參考文獻用宋體五號字。 1 作者. 書名m. 版次. 出版地: 出版者, 出版年: 起止頁碼 (著作圖書文獻) 2 作者. 文章名j. 學術刊物名稱. 年. 卷(期): 起止頁碼 (學術刊物文獻) 示例:1王社國,趙建光?;赼rm的嵌入式語音識別系統(tǒng)研究 j。微計算機信息,2007,2-2:149-150.3、附錄或附件:(

3、可選項) 重要的測試結果、圖表、設計圖紙、源程序代碼、大量的公式、符號、照片等不宜放入正文中的可以附錄形式出現(xiàn)。4、如果需要可另行附頁粘貼。任 務 書基于單片機的消毒柜控制電路的設計 設計一臺消毒柜控制系統(tǒng),要求:(1)顯示消毒柜溫度,保持時間。(2)可以鍵盤設定消毒柜溫度,定時時間。(3)可以實現(xiàn)實時中斷功能。(4)消毒后自動關機。(5)測溫誤差:0.5 c。(6)定時誤差:20s/月目 錄1、緒論 2、方案論證(規(guī)劃、選定) 3、方案說明(設計) 4、硬件方案設計 5、軟件方案設計6、調試 7、技術小結(結束語) 8、參考文獻 9、附錄(源程序代碼、電路圖等) 1. 緒論 該課題是設計一個

4、消毒柜其實就是設計一個智能的溫度控制系統(tǒng),消毒柜主要通過加熱到一個指定溫度,對餐具等衛(wèi)生潔具進行高溫消毒,消毒柜將高溫控制在一個指定的范圍內,并維持一定時間,殺滅細菌,極大地增強了人們的飲食衛(wèi)生,大大降低了疾病的交叉?zhèn)魅?,為提高人們的身體健康起了重要的作用。本文主要介紹了一個基于at89c51單片機制作的消毒柜控制電路。它主要包括供電電源電路、上電復位電路、晶振電路、開關控制電路、顯示電路等部分。文中對各電路的結構及工作原理作了詳盡的介紹。電路運行后,能自動定時控制消毒柜的加電和斷電,適時有效地完成對柜內餐具或其它物品的消毒工作。具有電路簡單、制作容易、使用靈活等優(yōu)點。通過該電路,可以進一步了

5、解到單片機電路的應用擴展功能和指令應用技巧。本文的消毒柜控制系統(tǒng)就是為了人們日常生活中的餐具消毒而設計的,采用微電腦控制技術,精確地控制消毒柜內的溫度和加熱時間,很大程度上改善了人們的飲食衛(wèi)生,提高了人們的生活水平。本設計采用ds18b20溫度傳感器采集實時溫度,通過dq口送51單片機系統(tǒng),實現(xiàn)模擬溫度值的采集、轉化、輸出數字值,然后51單片機對采集的數據處理后送液晶顯示電路,實時動態(tài)地顯示當前的溫度及倒計時時間。對溫度的控制主要由單片機內部三種中斷方式來控制啟動和停止。2、方案論證21 系統(tǒng)設計要求2.1.1顯示消毒柜溫度,保持時間。2.1.2可以鍵盤設定消毒柜溫度,定時時間。2.1.3可以

6、實現(xiàn)實時中斷功能。22 系統(tǒng)組成框圖ds18b20鍵盤控制單片機液晶屏顯示發(fā)光二極管顯示圖2.1 系統(tǒng)組成框圖23 系統(tǒng)工作原理該系統(tǒng)是基于at89s51單片機的溫度控制的且實現(xiàn)通過高溫來殺滅病毒的消毒柜系統(tǒng),該系統(tǒng)主要三大部分組成。第一部分是由溫度傳感器ds18b20采集實時溫度轉換成數字信號;第二部分的電路是由鍵盤控制消毒的定時和啟停;第三部分是液晶顯示屏的顯示部分。 at89s51單片機對鍵盤的掃描結果和即時溫度值的處理,實現(xiàn)對溫度的實時控制,系統(tǒng)設計了啟動設定定時時間,設置定時時間,中斷控制定時,共四個鍵,按下啟動設定定時時間功能鍵即確定開始溫度增減按鈕時,單片機加熱時間可通過溫度加減

7、按鈕設定,開始加熱,啟動定時器中斷控制,當溫度加熱設定時間到后停止加熱。23系統(tǒng)工作論證 通過對系統(tǒng)控制要求的研究,確定了控制系統(tǒng)的基本框圖,針對其基本原理進行了分析說明,此方案能滿足消毒柜控制系統(tǒng)的基本要求。3、方案說明 3.1 ds18b20 一線總線溫度傳感器特點: 1體積小,安裝方便;可聯(lián)網,方便分散點測量;三線二線式連接方式;測量范圍-55+125;3.2 at89c51按照單片機系統(tǒng)擴展與系統(tǒng)配置狀況,單片機應用系統(tǒng)可分為最小系統(tǒng)、最小功耗系統(tǒng)及典型系統(tǒng)等。at89c51單片機是美國atmel公司生產的低電壓、高性能cmos 8位單片機,具有豐富的內部資源:4kb閃存、128bra

8、m、32根i/o口線、2個16位定時/計數器、5個向量兩級中斷結構、2個全雙工的串行口,具有4.255.50v的電壓工作范圍和024mhz工作頻率,使用at89c51單片機時無須外擴存儲器。因此,單片機最小系統(tǒng)為晶振、復位、電源等電路和必要的軟件組成的單個單片機。3.3 1602液晶顯示首先是1602液晶的管腳,總共有16個管腳,其中有三根是電源地、電源正、還有事對比度的調整電壓;還有兩根是lcd背光的正、負極。重要的是決定led指令的三根管腳嗎,分別是rs、 r/w、e(一般接單片機的p2.0p2.2),剩下的八根式數據線分別為db0db7(一般接單片機的p0口)。4、硬件方案設計4.1系統(tǒng)

9、硬件結構框圖51單片機lcd液晶顯示屏實時溫度,定時時間,溫度上下限二極管亮滅按鍵ds18b20圖2系統(tǒng)硬件結構框圖4.2單片機最小系統(tǒng)設計單片機采用的是atmel公司的at89s51芯片該款芯片是一種低功耗、高性能cmos8位微控制器,具有 4k 在系統(tǒng)可編程flash 存儲器。使用atmel 公司高密度非 易失性存儲器技術制造,與工業(yè)80c51 產品指令和引腳完 全兼容。片上flash允許程序存儲器在系統(tǒng)可編程,亦適于 常規(guī)編程器。在單芯片上,擁有靈巧的8 位cpu 和在系統(tǒng) 可編程flash,使得at89s51為眾多嵌入式控制應用系統(tǒng)提 供高靈活、超有效的解決方案。 at89s51具有以

10、下標準功能: 4k字節(jié)flash,128字節(jié)ram, 32 位i/o 口線,看門狗定時器,2 個數據指針,兩個16 位 定時器/計數器,一個6向量2級中斷結構,全雙工串行口, 片內晶振及時鐘電路。另外,at89s51可降至0hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,cpu 停止工作,允許ram、定時器/計數器、串口、中斷繼續(xù)工 作。掉電保護方式下,ram內容被保存,振蕩器被凍結, 單片機一切工作停止,直到下一個中斷或硬件復位為止。8 位微控制器 4k 字節(jié)在系統(tǒng)可編程 flash at89s51。單片機最小系統(tǒng)電路圖如圖3.2所示。圖3.2 單片機最小系統(tǒng)電路圖4.3 ds

11、18b20控制電路通過p3.4口與dq的連接實現(xiàn)51單片機與溫度傳感器ds18b20的連通工作。4.4 鍵盤控制電路該鍵盤接口電路通過按鍵控制定時和中斷。本模塊通過編制程序,掃描鍵盤,來比對鍵盤的值,來設置四個功能鍵。4.5 lcd液晶顯示電路通過p0口控制液晶顯示的輸入。p0口必須外接上拉電阻。通過p2口的低三位控制rs,rw,e三個功能控制引腳,從而控制液晶顯示屏lcd的工作。5、軟件方案設計5.1系統(tǒng)軟件設計原理本程序設計根據通過溫度傳感器采樣來的溫度值,經過內部轉化為二進制數字量,再通過51單片機控制輸出至lcd液晶顯示屏,然后調用顯示程序進行溫度的事實顯示。對于各個功能鍵的程序是從p

12、0口讀數、再轉換成十進制數、送顯緩區(qū)、再根據鍵盤掃描的結果對溫度值進行比較判斷,當按下的鍵是加減功能鍵時,系統(tǒng)要控制加熱的時間可進行調節(jié)。開始加熱后,通過定時器控制加熱時間到的中斷,當加熱時間由設定值減至0時停止加熱,鍵盤顯示實時溫度。通過在主程序里面設立標志,該程序是通過延時的方法來確保溫度轉換為顯示數據實現(xiàn)溫度與按鍵的統(tǒng)一和“同步”,實時的控制加熱的工作,以達到人們所要求達到的效果。5.2主程序流程圖 開始系統(tǒng)初始化顯示屏初始中斷初始定時初始鍵盤設置與液晶屏顯示判斷定時 定時未到,繼續(xù)判斷 定時到 工作 圖3主程序流程圖5.3系統(tǒng)子程序設計本軟件設計中,系統(tǒng)子程序的設計是整個程序設計的重中

13、之重,子程序以模塊化的方式實現(xiàn)各個獨立功能,再通過主程序來調用功能子程序,使整個程序實現(xiàn)完整的功能。按鍵處理子程序, ds18b20溫度采樣子程序,溫度采樣轉化子程序,顯示處理子程序。6、調試6.1 硬件調試6.1.1.由于本次課程設計做了實物出來,通過設計方案,在試驗焊接板上進行合理布局并焊接實物圖。然后根據實驗指導書上的各功能芯片的端口地址,連接號各部分電路,用電表測量焊接點的正常與否,最后連上電源。6.1.2.檢測lcd顯示模塊,因為通過鍵盤顯示,可以直觀的知道程序是否基本運行正常,是否按預定的顯示。6.1.3. 調試鍵盤模塊電路,看是否按壓正常,以及二極管閃滅部分是否能夠實現(xiàn)實時閃亮。

14、6.1.4.最后進行整體硬件電路的聯(lián)調。6.2軟件調試軟件調試是個很重要的過程,由于軟件出現(xiàn)錯誤的話就基本上各部分功能都實現(xiàn)都有困難,所以軟件的調試時重中之重。6.2.1第一步是進行的是ds18b20的軟件的調試,通過采集溫度后內部轉換后通過合理的內存單元的分配,存儲采樣后轉換的值,然后同過51單片機程序看是否實現(xiàn)在lcd上顯示實時溫度值。6.2.2鍵盤掃描部分程序的調試,該部分是程序中的功能鍵實現(xiàn)控制溫度和時間的主要的部分,如果該部分程序出現(xiàn)錯誤的話,邏輯就會出現(xiàn)混亂,各功能鍵將不能實現(xiàn),在調試的過程中,我們發(fā)現(xiàn),我們的鍵盤電路的接法接口要正確連接,一旦鍵盤口搞錯的話,就會出現(xiàn)按鍵的功能的混

15、亂,所以在這一步分的調試上最主要是把握鍵盤的控制分析。6.2.3 最后一部分調試顯示程序的調試,該部分程序的調試,關系到該課設是否夠直觀的體現(xiàn)溫度值,以及建立一個直觀的人機對話界面,在該部分程序的調試的過程中面臨的最大困難就是對于顯緩單元的分配,以及初始化,讀寫的控制,如果顯緩單元分配有沖突的話,就會導致程序邏輯錯誤,所以應該仔細調試該部分應該邊編寫邊調試。6.3調試結果用專門的編譯軟件keil對程序進行編譯,編譯無誤后。并讓其生成hex文件,按照軟件流程圖在仿真軟件proteus上進行仿真,把各個元器在仿真軟件中找出來,再將它們連接起來,連接完畢后將生成的hex文件加載到單片機中。經過詳細的

16、硬件調試和軟件調試之后,系統(tǒng)工作正常,lcd液晶顯示模塊共兩行,分別按要求實時顯示設定的最高和最低溫,當前溫度值,定時時間值。按下“加減鍵”時,系統(tǒng)可調節(jié)消毒加熱的時間,加熱時間到后點亮定時到指示燈,當時間到達到0時,停止加熱。7、技術小結通過一個多星期的研究動手實踐完成,簡單的消毒柜控制系統(tǒng)初步成形。實物圖也出來了,實現(xiàn)了課程設計的基本要求。本設計集中了按鍵,定時器,液晶顯示等的應用。對于按鍵部分控制簡單,因為是獨立的按鍵控制,只需要與51單片機的任一輸入輸出端口相連,通過控制器高低電平即可。對于定時器和外部中斷0,1的設計書寫,只需要對中斷和定時器控制的方法和步驟熟悉,熟練運用它們的啟動停

17、止就可正確完成控制。對于我來說最難得就是lcd液晶顯示的控制了,硬件連接圖可根據經驗和管腳說明連接就行,但軟件程序編寫時對其的不熟悉和難以理解,給了我很大的障礙,以至于很久弄不出程序,不能支持實物電路板的正常工作。后來經過學習參考咨詢和大家交流等各種渠道,慢慢的掌握了其基本的知識,才有了后來的完整的程序。本次課設一個不足之處就是沒有完成消毒后自動關機的功能,浪費單片機的內部資源。對于溫度傳感器電路,還存在缺憾,并不能完全掌握該部分程序的編寫。本課程設計自己去焊接電路,鍛煉了獨立思考和實際操作的能力,一定程度上增加了課程設計的難度,但是真正對我們設計電路卻是一個幫助和提高,所以我努力并認真的對待

18、著本次的設計,希望能夠自行設計硬件電路根據自己設計的硬件電路來編制相應的程序在對我們掌握各硬件部分電路有更好的理解,也一定程度上復習了以前所學的其基礎知識,也能更好的掌握一些電氣知識。8、參考文獻【1】 萬福君.潘松峰.劉芳.msc-51單片微型機原理、系統(tǒng)設計及應用【m】.北京:清華大學出版社,2009.9【2】 陳黎娟.萬在紅.吳開志.聶鵬程.單片微型計算機實驗教程【m】.南昌航空大學,2006.2【3】 張永瑞. 電子測量技術基礎【m】.西安:西安電子科技大學出版社,2009.1【4】 劉同法.陳忠平.彭繼衛(wèi).單片機外圍接口電路與工程實踐【m】.北京:北京航空航天大學出版社, 2009.

19、3【5】 何立民.單片機應用技術選編 (1-8). 北京:北京航空航天大學出版社. 2001【6】 鄔寬明.單片機外圍器件實用手冊. 數據傳輸接口器件分冊m.北京:北京航空航天大學出版社,1998 【7】 鮑健等. 用單片機直接驅動液晶顯示器.量子電子學報j.2005.2(4):651652 9、附錄9.1主程序源程序:/#include /用at89c51時就用這個頭文件#include /用華邦w78e58b時必須用這個頭文件#include #include #include #include #include #include #include lcd1602.h/液晶顯示頭文件/sb

20、it 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;/用來存放溫度值,測溫程序就是通過這個數組與主函數通信的/unsigned char tempbuffer19=0x2b,0x31,0x32,0x32,0x2e

21、,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 c

22、har code dotcode4=0,25,50,75;/*因顯示分辨率為0.25,但小數運算比較麻煩,故采用查表的方法*再將表值分離出十位和個位后送到十分位和百分位*/void covert0( unsigned char th, unsigned char tl)/將溫度上下限轉換為lcd顯示的數據 if(th0x7f) /判斷正負,如果為負溫,將其轉化為其絕對值 tempbuffer03=0x2d; /0x2d為-的ascii碼th=th;th+; else tempbuffer03=0x2b;/0x2b為+的ascii碼 if(tl0x7f) tempbuffer011=0x2d;

23、/0x2d為-的ascii碼 tl=tl+1; else tempbuffer011=0x2b;/0x2b為+的ascii碼 tempbuffer04=th/100+0x30; /分離出th的百十個位 if( tempbuffer04=0x30) tempbuffer04=0xfe; /百位數消隱 tempbuffer05=(th%100)/10+0x30;/分離出十位 tempbuffer06=(th%100)%10+0x30; /分離出個位 tempbuffer012=tl/100+0x30; /分離出tl的百十個位 if( tempbuffer012=0x30) tempbuffer01

24、2=0xfe; /百位數消隱 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)/將溫度轉換為lcd顯示的數據 unsigned char x=0x00,y=0x00; t0=*pt; pt+; t1=*pt; if(t10x07) /判斷正負溫度 tempbu

25、ffer10=0x2d; /0x2d為-的ascii碼t1=t1; /*下面幾句把負數的補碼*/t0=t0; /* 換算成絕對值*/x=t0+1; /*/t0=x; /*/if(x255) /*/t1+; /*/ else tempbuffer10=0x2b;/0xfe為變+的ascii碼 t1=4;/右移4位 x=x&0x0f;/和前面兩句就是取出t0的高四位 t1=t1|x;/將高低字節(jié)的有效值的整數部分拼成一個字節(jié) tempbuffer11=t1/100+0x30; /+0x30 為變 09 ascii碼 if( tempbuffer11=0x30) tempbuffer11=0xfe;

26、 /百位數消隱 tempbuffer12=(t1%100)/10+0x30;/分離出十位 tempbuffer13=(t1%100)%10+0x30; /分離出個位 t0=t0&0x0c;/取有效的兩位小數 t0=2;/左移兩位,以便查表 x=t0; y=dotcodex;/查表換算成實際的小數 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=

27、z;i0;i-) for(j=100;j0;j-);/*設定時間函數*/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;/*確認開始計時函數*/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; /*設置溫度函數

28、*/void setwendu() tempbuffer114=temp/10+0x30; tempbuffer115=temp%10+0x30;/*主程序*/main() unsigned char th=110,tl=-20; /下一步擴展時可能通過這兩個變量,調節(jié)上下限 led=0; /測溫函數返回這個數組的頭地址 ea=1; /開總中斷 ex0=1; /允許外部中斷0 ex1=1; /允許外部中斷1 it0=1; /設置外部觸發(fā)0為跳沿觸發(fā) it1=1; /設置外部觸發(fā)1為跳沿觸發(fā) tmod=0x01; /設置定時器t0為工作方式1 tl0=0xb0; th0=0x3c; /設置每次定

29、時時間為50ms et0=1; /允許定時器中斷 k0=0; while(1) pt=readtemperature(th,tl,0x3f); /上限溫度-22,下限-24,分辨率10位,也就是0.25c /讀取溫度,溫度值存放在一個兩個字節(jié)的數組中,delay(100); shijianset();setwendu();covert1();covert0(th,tl);jishi();lcd_initial();/第一個參數列號,第二個為行號,為0表示第一行/為1表示第二行,第三個參數為顯示數據的首地址lcd_print(0,0,tempbuffer0);lcd_print(0,1,temp

30、buffer1); 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 /用at89c51時就用這個頭文件#include /用華邦w78e58b時必須用這個頭文件#include /注意那個lcd_wait()函數,它是判忙標志的,在實際硬件要把注掉的那種打開/port definitions*sbit lcdrs= p20;sbit lcdrw= p21

31、;sbit lcden = p22;sfr dbport = 0x80;/p0=0x80,p1=0x90,p2=0xa0,p3=0xb0.數據端口/內部等待函數*unsigned char lcd_wait(void)lcdrs=0;lcdrw=1;_nop_();lcden=1;_nop_();/while(dbport&0x80);/在用proteus仿真時,注意用屏蔽此語句,在調用gotoxy()時,會進入死循環(huán), /可能在寫該控制字時,該模塊沒有返回寫入完備命令,即dbport&0x80=0x80 /實際硬件時打開此語句lcden=0;return dbport;/向lcd寫入命令或數

32、據*#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();/設置顯示模式*#define lcd_sho

33、w0x04 /顯示開#define lcd_hide0x00 /顯示關 #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);/設置輸入模式*#define lcd_ac_up0x02#define lcd_ac_down0x00 / defau

34、lt#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位數據端口,2行顯示,5*7點陣lcd_write(lcd_command,0x38);lcd_setdisplay(lcd_show|lcd_no_cursor); /開啟顯示, 無

35、光標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

36、lcd_print(unsigned char x, unsigned char y, unsigned char *str) gotoxy(x,y); print(str);9.2.2 ds18b20控制子程序/#include /用at89c51時就用這個頭文件#include /用華邦w78e58b時必須用這個頭文件sbit dq = p34;/定義dq引腳為p3.4/*ds18b20延遲子函數(晶振12mhz )*/ /*ds18b20對時間要求很嚴,但只能長不能短*在11.0592m下也行,因為時間長些*/void delay_18b20(unsigned int i)while(i-);/*ds18b20初始化函數*/void init_ds18b20(void) unsigned char x=0; dq = 1; /dq復位 delay_18b2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論