版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 1 課題任務(wù)、功能要求說明及總體方案介紹</p><p><b> 1.1 課題目的</b></p><p> 隨著社會(huì)的發(fā)展,溫度的測(cè)量及控制變得越來越重要。本文采用單片機(jī)STC89S52設(shè)計(jì)了溫度實(shí)時(shí)測(cè)量及控制系統(tǒng)。單片機(jī)STC89S52 能夠根據(jù)溫度傳感器DS18B20 所采集的溫度在數(shù)碼管上實(shí)時(shí)顯示,通過控制從而把溫度控制在設(shè)
2、定的范圍之內(nèi)。所有溫度數(shù)據(jù)均通過4位數(shù)碼管LED顯示出來。系統(tǒng)可以根據(jù)時(shí)鐘存儲(chǔ)相關(guān)的數(shù)據(jù)。</p><p> 通過該課程的學(xué)習(xí)使我們對(duì)計(jì)算機(jī)控制系統(tǒng)有一個(gè)全面的了解、掌握常規(guī)控制算法的使用方法、掌握簡(jiǎn)單微型計(jì)算機(jī)應(yīng)用系統(tǒng)軟硬的設(shè)計(jì)方法,進(jìn)一步鍛煉同學(xué)們?cè)谖⑿陀?jì)算機(jī)應(yīng)用方面的實(shí)際工作能力。</p><p> 1.2 功能要求說明</p><p> 設(shè)計(jì)一個(gè)具有
3、特定功能的數(shù)字溫度計(jì)。該數(shù)字溫度計(jì)上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P.”,進(jìn)入準(zhǔn)備工作狀態(tài)。測(cè)量溫度范圍0℃~99℃,測(cè)量精度小數(shù)點(diǎn)后兩位,可以通過開始和結(jié)束鍵控制數(shù)字溫度計(jì)的工作狀態(tài)。</p><p> 1.3 設(shè)計(jì)課題總體方案介紹及工作原理說明</p><p> 1.3.1 設(shè)計(jì)課題總體方案</p><p> (1)根據(jù)設(shè)計(jì)要求,選擇AT89C5
4、2單片機(jī)為核心器件。</p><p> (2)溫度檢測(cè)器件采用DS18B20數(shù)字式溫度傳感器。與單片機(jī)的接口為P3.6引腳。</p><p> (3)鍵盤采用獨(dú)立式按鍵,由三個(gè)按鍵組成,分別是:設(shè)置鍵(SET),加一建(+1),確認(rèn)鍵(RET)。</p><p> (4)SET鍵(上下限溫度設(shè)置鍵):當(dāng)該鍵按下時(shí),進(jìn)入上下限溫度設(shè)置功能。通過P0.1引腳接入。
5、</p><p> (5)+1鍵(加一調(diào)整鍵):在輸入上下限溫度時(shí),該鍵按下一次,被調(diào)整位加一。通過P0.2引腳接入。</p><p> (6)RET鍵(確認(rèn)鍵):當(dāng)該鍵按下時(shí),指向下一個(gè)要調(diào)整的位。通過P0.3引腳接入。</p><p> 1.3.2 工作原理說明</p><p> 本課題以是80S52單片機(jī)為核心設(shè)計(jì)的一種數(shù)字溫
6、度控制系統(tǒng),利用溫度傳感器DS18B20可以直接讀取被測(cè)溫度值,進(jìn)行轉(zhuǎn)換的特性,模擬溫度值經(jīng)過DS18B20處理后轉(zhuǎn)換為數(shù)字值,然后送到單片機(jī)中進(jìn)行數(shù)據(jù)處理,并與設(shè)置的溫度報(bào)警限比較,超過限度后通過揚(yáng)聲器報(bào)警。同時(shí)處理后的數(shù)據(jù)送到LED中顯示。</p><p> 2 硬件系統(tǒng)的設(shè)計(jì)</p><p> 2.1 課題硬件系統(tǒng)各模塊功能簡(jiǎn)要介紹</p><p>
7、; 硬件電路設(shè)計(jì)總體框圖為圖1:</p><p><b> 圖1</b></p><p><b> 2.1.1主控制器</b></p><p> 單片機(jī)AT89S52具有低電壓供電和體積小等特點(diǎn),四個(gè)端口只需要兩個(gè)口就能滿足電路系統(tǒng)的設(shè)計(jì)需要,使用Atmel公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令
8、和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用。</p><p><b> 2.2.2顯示電路</b></p><p> 顯示電路采用四位共陽LED數(shù)碼管,從P3口RXD,TXD串口輸出段碼。</p><p> 2.2.3溫度傳感器</p><p> D
9、S18B20是美國(guó)DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過簡(jiǎn)單的編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方式。DS18B20的性能特點(diǎn)如下:</p><p> ? 獨(dú)特的單線接口僅需一個(gè)端口引腳進(jìn)行通訊</p><p> ? 簡(jiǎn)單的多點(diǎn)分布應(yīng)用</p><p><b>
10、 ? 無需外部器件</b></p><p> ? 可通過數(shù)據(jù)線供電</p><p><b> ? 零待機(jī)功耗</b></p><p> ? 測(cè)溫范圍-55~+125℃,以0.5℃遞增。華氏器件-67~+2570F,以0.90F 遞增</p><p> ? 溫度以9 位數(shù)字量讀出</p>
11、<p> ? 溫度數(shù)字量轉(zhuǎn)換時(shí)間200ms(典型值)</p><p> ? 用戶可定義的非易失性溫度報(bào)警設(shè)置</p><p> ? 報(bào)警搜索命令識(shí)別并標(biāo)志超過程序限定溫度(溫度報(bào)警條件)的器件。</p><p> DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。DS18B20的管
12、腳排列、各種封裝形式如圖 2所示,DQ 為數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當(dāng)被用著在寄生電源下,也可以向器件提供電源;GND為地信號(hào);VDD為可選擇的VDD引腳。當(dāng)工作于寄生電源時(shí),此引腳必須接地。其電路圖如圖2所示.。 </p><p> 圖2 外部封裝形式 </p><p> 在仿真軟件中如圖3所示</p>
13、<p><b> 圖3</b></p><p> DS18B20的測(cè)溫原理如圖4所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入,圖中還隱含著計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖后進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測(cè)量.計(jì)數(shù)門的
14、開啟時(shí)間由高溫度系數(shù)振蕩器來決定,每次測(cè)量前,首先將-55 ℃所對(duì)應(yīng)的基數(shù)分別置入減法計(jì)數(shù)器1和溫度寄存器中,減法計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55 ℃所對(duì)應(yīng)的一個(gè)基數(shù)值。</p><p> 減法計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1的預(yù)置值減到0時(shí)溫度寄存器的值將加1,減法計(jì)數(shù)器 1的預(yù)置將重新被裝入,減法計(jì)數(shù)器1重新開始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)
15、器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫圖4中的斜率累加器用于補(bǔ)償和修正測(cè)溫過程中的非線性其輸出用,于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門仍未關(guān)閉就重復(fù)上述過程,直至溫度寄存器值達(dá)到被測(cè)溫度值,這就是DS18B20的測(cè)溫原理。</p><p> 另外,由于DS18B20單線通信功能是分時(shí)完成的,有嚴(yán)格的時(shí)隙概念,因此讀寫時(shí)序很重要。系統(tǒng)對(duì)DS18B20的各種操作必須按協(xié)議進(jìn)行。操作
16、協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲(chǔ)器操作命令→處理數(shù)據(jù)。</p><p><b> 圖4 </b></p><p> 在正常測(cè)溫情況下,DS1820的測(cè)溫分辨力為0.5℃,可采用下述方法獲得高分辨率的溫度測(cè)量結(jié)果:首先用DS1820提供的讀暫存器指令(BEH)讀出以0.5℃為分辨率的溫度測(cè)量結(jié)果,然后切去測(cè)量結(jié)果中的最低有效位(L
17、SB),得到所測(cè)實(shí)際溫度的整數(shù)部分Tz,然后再用BEH指令取計(jì)數(shù)器1的計(jì)數(shù)剩余值Cs和每度計(jì)數(shù)值CD。考慮到DS1820測(cè)量溫度的整數(shù)部分以0.25℃、0.75℃為進(jìn)位界限的關(guān)系,實(shí)際溫度Ts可用下式計(jì)算:</p><p> 表1.部分溫度值對(duì)應(yīng)的二進(jìn)制溫度數(shù)據(jù)</p><p> 2.2 課題電路原理圖、PCB 圖、元器件布局圖</p><p><b&g
18、t; 見附錄</b></p><p> 3 軟件系統(tǒng)的設(shè)計(jì)</p><p> 3.1 課題軟件系統(tǒng)各模塊功能簡(jiǎn)要介紹</p><p> 數(shù)字式溫度計(jì)的應(yīng)用程序主要包括主程序,溫度檢測(cè)程序,溫度轉(zhuǎn)換程序, LED顯示程序等。</p><p> 系統(tǒng)的主程序主要用來初始化一些系統(tǒng)參數(shù),對(duì)DS18B20的配置數(shù)據(jù)進(jìn)行一
19、系列的設(shè)定。溫度檢測(cè)程序是對(duì)DS18B20的狀態(tài)不斷地查詢,讀出RAM中的9字節(jié),在讀出時(shí)需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫,讀取當(dāng)前的溫度值后,進(jìn)行溫度轉(zhuǎn)化程序,對(duì)溫度符號(hào)處理和溫度值的BCD碼處理,進(jìn)行溫度值正負(fù)的判定,將其段碼送至顯示緩沖區(qū),以備定時(shí)掃描服務(wù)程序處理。LED顯示程序主要對(duì)顯示緩沖器中的顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高顯示位為0時(shí),將符號(hào)顯示位移入下一位。</p><p> 3.2
20、 課題軟件系統(tǒng)程序流程框圖</p><p><b> 圖5</b></p><p> 3.3 課題軟件系統(tǒng)程序清單</p><p><b> 見附錄一</b></p><p> 4 仿真結(jié)果、誤差分析、設(shè)計(jì)體會(huì)</p><p> 4.1 課題的仿真結(jié)果<
21、/p><p> Proteus仿真結(jié)果</p><p> 軟件方面,在Proteus編譯下進(jìn)行,源程序編譯及仿真調(diào)試。</p><p> 在軟件中選定傳感器后可對(duì)其進(jìn)行環(huán)境溫度設(shè)置,如圖6,將環(huán)境溫度設(shè)為34.9。</p><p><b> 圖6</b></p><p> 然后點(diǎn)擊軟件執(zhí)行鍵
22、,按操作步驟實(shí)施后,觀察LED數(shù)碼管示數(shù),此時(shí)示數(shù)如圖7。</p><p><b> 圖7</b></p><p> 4.2 硬件測(cè)試結(jié)果及分析</p><p> 在硬件測(cè)試方面,檢查電路板及焊接的質(zhì)量情況,在檢查無誤后通電檢查L(zhǎng)ED顯示器。</p><p> 其中 DS18B20實(shí)物圖為圖8</p>
23、;<p><b> 圖8</b></p><p> 在室溫下,LED顯示器示數(shù)如圖9,為56.0攝氏度</p><p><b> 圖9</b></p><p> 用手蓋住溫度傳感器后,LED顯示器示數(shù)如圖12,為8.0攝氏度。</p><p> 比較可知,硬件調(diào)試結(jié)果也達(dá)到了
24、要求。</p><p><b> 4.3 設(shè)計(jì)體會(huì)</b></p><p> 這次課程設(shè)計(jì)檢驗(yàn)了我所學(xué)的知識(shí),也培養(yǎng)了我如何去把握一件事。在設(shè)計(jì)的過程中,與同學(xué)相互討論,相互學(xué)習(xí),共同進(jìn)步。</p><p> 數(shù)字溫度計(jì)課程設(shè)計(jì)是單片機(jī)課程知識(shí)綜合應(yīng)用的實(shí)踐訓(xùn)練,通過本次課程設(shè)計(jì),我體會(huì)到學(xué)好基本知識(shí)和方法最重要。</p>
25、<p><b> 結(jié)束語</b></p><p> 本次課設(shè)對(duì)我來說是一次難得的經(jīng)歷,首先是接觸了仿真軟件Proteus,在使用時(shí)經(jīng)歷了很多次失敗,因?yàn)檫@款軟件與以前使用的各種軟件有很多不同,使用時(shí)不停出錯(cuò),接線時(shí)由于元件放置不合理而接的雜亂無章;輸入源程序時(shí)還較為順利,顯示結(jié)果比較滿意。其次是程序設(shè)計(jì),我們?cè)趨⒖紕e人成功先例的基礎(chǔ)上根據(jù)自己設(shè)計(jì)的需要編制程序,其中歷經(jīng)不少曲折
26、,最后我的收獲是,編程一定要細(xì)心,針對(duì)每一個(gè)細(xì)節(jié),稍有疏忽,程序就不能正常工作。最后是單片機(jī)實(shí)踐操作,由于DS18B20溫度傳感器靈敏度不太高,示數(shù)變化不大。另外,我前期花了一些時(shí)間專門學(xué)習(xí)這塊芯片,了解了DS18B20的工作原理的時(shí)序圖。</p><p> 在這次的實(shí)踐與學(xué)習(xí)中,盡管期間困難重重,但我還是從中學(xué)習(xí)了不少新的知識(shí)與技能和解決困難的方法,也終于體驗(yàn)到了經(jīng)歷困難到最終獲得成功的那種無以言表的喜悅之情
27、,總之,本次課設(shè)是我收獲最多的一次,也希望自己在以后的各項(xiàng)研究活動(dòng)中能堅(jiān)持這種精神。</p><p><b> 致 謝</b></p><p> 通過這一階段的努力,我的課程設(shè)計(jì)《數(shù)字溫度計(jì)》終于完成了。在大學(xué)階段,我在學(xué)習(xí)上和思想上都受益非淺,這除了自身的努力外,與各位老師、同學(xué)和朋友的關(guān)心、支持和鼓勵(lì)是分不開的。</p><p> 在
28、我修改論文的過程中,王韌老師給我提供了許多資料,并對(duì)實(shí)踐中出現(xiàn)的問題給予耐心的解答,在百忙之中仔細(xì)閱讀,給出修改意見,在此對(duì)他表示感謝。</p><p><b> 參考文獻(xiàn)</b></p><p> 【1】 楊素行著.模擬電子技術(shù)基礎(chǔ)(第二版) .北京:高等教育出版社,2006.</p><p> Yang Suhang. Analog
29、electronic technology foundation (second edition). Beijing: higher education press, 2006</p><p> 【2】 閻石著.數(shù)字電子技術(shù)基礎(chǔ)(第五版) .北京:高等教育出版社,2006.</p><p> Yan Shi. Digital electronic technology base (fi
30、fth edition). Beijing: higher education press, 2006. </p><p> 【3】 李全利,仲偉峰,徐軍著.單片機(jī)原理及應(yīng)用.北京:清華大學(xué)社,2006.</p><p> Li Quanli ZhongWeiFeng, Xu Junzhu. Single chip microcomputer principle and applica
31、tion. Beijing: tsinghua university club, 2006</p><p> 【4】 楊路明著.C語言程序設(shè)計(jì)教程(第2版) .北京:北京郵電大學(xué)出版社,2005.</p><p> Yang Luming. C language programming tutorial (second edition). Beijing: Beijing univer
32、sity of posts and telecommunications publishing house, 2005</p><p><b> 附錄一 源程序</b></p><p> #include<reg52.h></p><p> typedef unsigned char uint8;</p><
33、;p> typedef unsigned int uint16;</p><p> typedef unsigned long uint32;</p><p><b> uint8 x;</b></p><p> uint32 tvalue;</p><p> uint8 keyflag=0;<
34、/p><p> uint8 code table[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //012346789</p><p> sbit DQ=P3^6;</p><p> //sbit DQ=P3^0;</p><p> //sbit dule=P2^6;<
35、/p><p> //sbit wele=P2^7;</p><p> sbit key1=P1^0;</p><p> sbit led1=P3^0; //18B20初始化成功燈亮</p><p> void delay(uint16 i)</p><p><b> {</b><
36、;/p><p> while(i--);</p><p><b> }</b></p><p> /*******************************溫度傳感器***************************************/</p><p> void init_18b20() /
37、/18b20的初始化(復(fù)位)</p><p><b> {</b></p><p> DQ=1; //初始化DQ線</p><p><b> delay(8);</b></p><p> DQ=0; //將DQ拉低,開始初始化時(shí)序(下降沿)<
38、/p><p> delay(80); //DQ拉低,保持480~960微秒</p><p><b> DQ=1;</b></p><p> delay(14); //DQ拉高,保持60微秒</p><p> x=DQ; //初始化成功x為1&l
39、t;/p><p><b> if(x==1)</b></p><p> led1=0; //初始化成功燈亮</p><p><b> } </b></p><p> void write_18b20(uint8 dat) //18b20寫操作</p><
40、;p><b> {</b></p><p><b> uint8 i;</b></p><p> for(i=0;i<8;i++) //一字節(jié)8位要寫滿</p><p><b> {</b></p><p> DQ=1;
41、//初始化DQ線</p><p><b> delay(4);</b></p><p> DQ=0; //將DQ拉低,開始寫操作時(shí)序,15us之內(nèi)要將所需寫的位送到DQ線上</p><p> DQ=dat&0x01; //從最低位取數(shù)時(shí),要和0X01位與</p>
42、<p> delay(7); //將DQ拉低后15-60us間對(duì)總線采樣</p><p> DQ=1; //寫完后恢復(fù) </p><p> delay(1); //兩個(gè)寫時(shí)序間至少需要1us的恢復(fù)期</p><p> dat>>=1; //將數(shù)據(jù)向
43、右移一位,準(zhǔn)備寫入下一個(gè)數(shù)據(jù)</p><p><b> }</b></p><p><b> }</b></p><p> uint8 read_18b20()//*****讀操作*****</p><p><b> {</b></p><p&
44、gt; uint8 i,dat2;</p><p> for(i=0;i<8;i++) //讀一個(gè)字節(jié)的8位</p><p><b> { </b></p><p> DQ=1; //初始化DQ線</p><p><b> delay(1);</b>
45、</p><p> dat2>>=1; //dat右移一位,使最高位空出</p><p> DQ=0; //將DQ拉低,開始讀操作時(shí)序</p><p> delay(1); //****注意不能延時(shí)太長(zhǎng),否則讀數(shù)有誤****</p><p> DQ=1;
46、 //將DQ拉高,使單片機(jī)檢測(cè)18B20的輸出電平</p><p> if(DQ==1) //如果檢測(cè)到18B20的輸出電平為1 </p><p> dat2|=0x80; //將DQ線的1取出,寫在dat2的最高位。位或后最高位為1</p><p> delay(6); //兩個(gè)讀
47、時(shí)序間至少需要1us的恢復(fù)期</p><p><b> }</b></p><p> return(dat2); //返回讀出的八位數(shù)據(jù)</p><p><b> }</b></p><p> uint16 read_temp() //讀取溫度值并轉(zhuǎn)換<
48、/p><p><b> { </b></p><p> float tt;//float型含小數(shù)</p><p> uint8 TH,TL;</p><p> init_18b20(); //將DS18B20初始化 </p><p> write_18
49、b20(0xcc); //跳過讀序列號(hào) </p><p> write_18b20(0x44); //啟動(dòng)溫度轉(zhuǎn)換</p><p> delay(500); //溫度轉(zhuǎn)換需要一點(diǎn)時(shí)間</p><p> init_18b20();</p><p>
50、 write_18b20(0xcc); //跳過讀序列號(hào) </p><p> write_18b20(0xbe); //讀取溫度 </p><p> TL=read_18b20(); //先讀的是溫度值低位</p><p> TH=read_18b2
51、0(); //接著讀的是溫度值高位</p><p> tvalue=TH; //高8位賦給16位的tvalue</p><p> tvalue<<=8;//左移8位</p><p> tvalue=tvalue|TL;//高、低位合并成為一個(gè)16位的數(shù)</p><p
52、> /* if(tvalue<0x0fff) //判斷正負(fù)</p><p><b> tflag=0;</b></p><p><b> else</b></p><p><b> {</b></p><p> tvalue=~tvalue+1
53、;</p><p><b> tflag=1;</b></p><p><b> } */</b></p><p> tt=tvalue*0.0625; //乘上分辨率0.0625</p><p> tvalue=tt*100+0.5; //*10
54、溫度值擴(kuò)大100倍,精確到1位小數(shù),后一位再四舍五入 </p><p> return(tvalue); //返回含有溫度信息的16位數(shù),前五位代表正負(fù),0000 0表示正溫度,1111 1表示負(fù)溫度</p><p> //后11位代表溫度,前7位為整數(shù),最后四位為小數(shù),這11位乘上0.0625得出的值就是實(shí)際溫度</p><p> }
55、 //比如現(xiàn)在LSB的最低四位是0111,那么小數(shù)部分就是0.0625*7=0.4375,如果取1位小數(shù)乘上10,就是“4”,四舍五入還是4.</p><p> void disp_1820() //溫度值顯示</p><p><b> {</b></p><p> uint8 a,b,c,d;</p
56、><p> tvalue=read_temp();//讀出溫度</p><p> //d=tvalue/10000; //百位數(shù)(已擴(kuò)大100,所以取10000的模)</p><p> a=tvalue%10000/1000; //溫度十位數(shù)</p><p> b=tva
57、lue%1000/100; //溫度個(gè)位數(shù)</p><p> c=tvalue%100/10; //溫度小數(shù)位 </p><p> d=tvalue%10; //溫度小數(shù)位 </p><p><b> P2=0xf7;</b>&
58、lt;/p><p> P0=table[c];//顯示十位 </p><p> delay(500); </p><p><b> P2=0xfb; </b></p><p> P0=table[b]|0x80; //顯示個(gè)位及小數(shù)點(diǎn) </p><p> delay
59、(500);</p><p><b> P2=0xfd; </b></p><p> P0=table[a];//顯示小數(shù)位 </p><p> delay(500);</p><p><b> P2=0xfe; </b></p><p> P0=ta
60、ble[d];//顯示小數(shù)位 </p><p> //delay(500);</p><p><b> } </b></p><p> /*******************************溫度傳感器***************************************/</p><p&
61、gt; void disp_p() //p顯示</p><p><b> {</b></p><p><b> P2=0xfe;</b></p><p> P0=0xf3;</p><p> delay(500); </p><p&
62、gt;<b> } </b></p><p> void keyscan() //按鍵掃描函數(shù)</p><p><b> {</b></p><p> if(key1==0) //判斷第一鍵是否按下</p><p><b> {</b></p
63、><p> delay(1000); //延時(shí)0.01秒,消抖</p><p> if(key1==0) //再次判斷第一鍵是否真的按下</p><p><b> {</b></p><p> keyflag=~keyflag; //如果真的按下</p><p><b
64、> }</b></p><p><b> }</b></p><p> while(!key1); //松手檢測(cè)</p><p><b> }</b></p><p> void main()</p><p><b> {<
65、/b></p><p> delay(100);</p><p><b> while(1)</b></p><p><b> {</b></p><p> keyscan();</p><p> if(keyflag)</p><p>
66、; disp_1820(); //在數(shù)碼管上顯示溫度值</p><p><b> else</b></p><p><b> disp_p();</b></p><p><b> }</b></p><p><b> 附錄二 元件清單</b&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)--數(shù)字溫度計(jì)
- 單片機(jī)課程設(shè)計(jì)-數(shù)字溫度計(jì)
- 單片機(jī)課程設(shè)計(jì)—數(shù)字溫度計(jì)
- 單片機(jī)數(shù)字溫度計(jì)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---數(shù)字溫度計(jì)
- 單片機(jī)課程設(shè)計(jì)-數(shù)字溫度計(jì)
- 單片機(jī)課程設(shè)計(jì)—數(shù)字溫度計(jì)
- 單片機(jī)課程設(shè)計(jì)——數(shù)字溫度計(jì)
- 單片機(jī)課程設(shè)計(jì)—數(shù)字溫度計(jì)
- 單片機(jī)課程設(shè)計(jì)-數(shù)字溫度計(jì)
- 數(shù)字溫度計(jì)--單片機(jī)課程設(shè)計(jì)
- 數(shù)字溫度計(jì)課程設(shè)計(jì)---基于51單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--數(shù)字溫度計(jì)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--數(shù)字溫度計(jì)設(shè)計(jì)
- 溫度計(jì)課程設(shè)計(jì)---基于51單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---單片機(jī)數(shù)字顯示溫度計(jì)
- 數(shù)字溫度計(jì)課程設(shè)計(jì)---基于51單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)數(shù)字溫度計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告--數(shù)字溫度計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告數(shù)字溫度計(jì)
評(píng)論
0/150
提交評(píng)論