![單片機(jī)課程設(shè)計(jì)報(bào)告基于STC89C52的溫度測(cè)控系統(tǒng)設(shè)計(jì)_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/4/ddd6af20-1207-45e5-8b35-6fa77500330d/ddd6af20-1207-45e5-8b35-6fa77500330d1.gif)
![單片機(jī)課程設(shè)計(jì)報(bào)告基于STC89C52的溫度測(cè)控系統(tǒng)設(shè)計(jì)_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/4/ddd6af20-1207-45e5-8b35-6fa77500330d/ddd6af20-1207-45e5-8b35-6fa77500330d2.gif)
![單片機(jī)課程設(shè)計(jì)報(bào)告基于STC89C52的溫度測(cè)控系統(tǒng)設(shè)計(jì)_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/4/ddd6af20-1207-45e5-8b35-6fa77500330d/ddd6af20-1207-45e5-8b35-6fa77500330d3.gif)
![單片機(jī)課程設(shè)計(jì)報(bào)告基于STC89C52的溫度測(cè)控系統(tǒng)設(shè)計(jì)_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/4/ddd6af20-1207-45e5-8b35-6fa77500330d/ddd6af20-1207-45e5-8b35-6fa77500330d4.gif)
![單片機(jī)課程設(shè)計(jì)報(bào)告基于STC89C52的溫度測(cè)控系統(tǒng)設(shè)計(jì)_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/4/ddd6af20-1207-45e5-8b35-6fa77500330d/ddd6af20-1207-45e5-8b35-6fa77500330d5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程設(shè)計(jì)總結(jié)報(bào)告課程名稱 單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì) 設(shè)計(jì)題目 基于stc89c52的溫度測(cè)控系統(tǒng)設(shè)計(jì) 專 業(yè) 電子與信息工程 班 級(jí) 080823班 姓 名 崔兆坤 學(xué) 號(hào) 08082337 指導(dǎo)教師 王玉玲 報(bào)告成績(jī) 信息與工程學(xué)院二一一年六月十二日26單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)任務(wù)書一、課題名稱溫度測(cè)量與報(bào)警系統(tǒng)二、設(shè)計(jì)任務(wù)1、利用四位數(shù)碼管顯示當(dāng)前溫度;2、通過鍵盤修改報(bào)警溫度上限與下限值;3、具有報(bào)警功能,報(bào)警溫度上限與下限值能修改,利用蜂鳴器實(shí)現(xiàn)報(bào)警;上限溫度值到達(dá)時(shí)發(fā)出“嘀-嘀-嘀-嘀”的報(bào)警音。三、設(shè)計(jì)報(bào)告撰寫規(guī)范單片微機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)總結(jié)報(bào)告正文,主要含以下內(nèi)容(硬件、軟件各部分內(nèi)容也
2、可組合起來進(jìn)行撰寫說明):1、系統(tǒng)總體設(shè)計(jì)方案(畫出系統(tǒng)原理框圖、方案的論證與比較等內(nèi)容);2、硬件系統(tǒng)分析與設(shè)計(jì)(各模塊或單元電路的設(shè)計(jì)、工作原理闡述、參數(shù)計(jì)算、元器件選擇、完整的系統(tǒng)電路圖、系統(tǒng)所需的元器件清單。等內(nèi)容);3、軟件系統(tǒng)分析與設(shè)計(jì)(各功能模塊的程序設(shè)計(jì)流程圖與說明、軟件系統(tǒng)設(shè)計(jì)、軟件抗干擾措施、完整的程序等內(nèi)容);4、系統(tǒng)仿真調(diào)試與參數(shù)測(cè)量(使用儀器儀表、故障排除、電路硬件和軟件調(diào)試的方法和技巧、指標(biāo)測(cè)試的參數(shù)和波形、測(cè)量誤差分析);5、總結(jié)(本課題核心內(nèi)容及使用價(jià)值、電路設(shè)計(jì)、軟件設(shè)計(jì)的特點(diǎn)和選擇方案的優(yōu)缺點(diǎn)、改進(jìn)方向和意見等);6、按統(tǒng)一格式列出主要參考文獻(xiàn)。溫度測(cè)量與報(bào)
3、警系統(tǒng)一、系統(tǒng)總體設(shè)計(jì)方案1.1 方案一由于本設(shè)計(jì)是測(cè)溫電路,可以使用熱敏電阻之類的器件利用其感溫效應(yīng),在將隨被測(cè)溫度變化的電壓或電流采集過來,進(jìn)行a/d 轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測(cè)溫度顯示出來,這種設(shè)計(jì)需要用到a/d 轉(zhuǎn)換電路,其中還涉及到電阻與溫度的對(duì)應(yīng)值的計(jì)算,感溫電路比較麻煩。而且在對(duì)采集的信號(hào)進(jìn)行放大時(shí)容易受溫度的影響出現(xiàn)較大的偏差。1.2 方案二進(jìn)而考慮到用溫度傳感器,在單片機(jī)電路設(shè)計(jì)中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器ds18b20,此傳感器,可以很容易直接讀取被測(cè)溫度值,進(jìn)行轉(zhuǎn)換,電路簡(jiǎn)單,精度高,軟硬
4、件都以實(shí)現(xiàn),而且使用單片機(jī)的接口便于系統(tǒng)的再擴(kuò)展,滿足設(shè)計(jì)要求。從以上兩種方案,很容易看出,采用方案二,電路比較簡(jiǎn)單,費(fèi)用較低,可靠性高,軟件設(shè)計(jì)也比較簡(jiǎn)單,故采用了方案二。方案二系統(tǒng)主要包括單片機(jī)模塊、溫度采集模塊、溫度顯示模塊,溫度上下限調(diào)整模塊等四部分。系統(tǒng)總體框架如圖1所示。單片機(jī)處理模塊18b20溫度采集模塊溫度顯示模塊溫度上下限調(diào)整模塊圖1 系統(tǒng)總體框架報(bào)警模塊二、電路設(shè)計(jì)2.1 單片機(jī)處理模塊處理模塊是整個(gè)設(shè)計(jì)方案的核心,它控制了溫度的采集、處理與顯示、溫度上下限值的設(shè)定。本文采用stc89c52rc作為處理模塊。這是stc公司推出的8051系列微處理器。它的特點(diǎn)是價(jià)格低、功耗低
5、、高可靠、無法解密,內(nèi)部flash擦寫次數(shù)為100,000次以上。圖2是該芯片的引腳圖。圖2 stc89c52引腳圖 圖3是stc89c52的最小系統(tǒng)。圖3是stc89c52的最小系統(tǒng)圖32.2 溫度采集模塊溫度由dallas 半導(dǎo)體公司的一線數(shù)字化溫度傳感器ds18b20采集。ds18b20測(cè)溫范圍為-55+125,測(cè)溫分辨率可達(dá)0.0625,被測(cè)溫度用16位二進(jìn)制形式串行輸出。用戶設(shè)定的上下限溫度儲(chǔ)存在eeprom中,掉電后依然保存。cpu只需一根端口線就能與諸多ds18b20通信。占用微處理器的端口少,可節(jié)省大量的引線和邏輯電路。圖4為ds18b20的引腳圖。圖4 ds18b20圖ds1
6、8b20是通過一種片上溫度測(cè)量技術(shù)來測(cè)量溫度的。圖5示出了溫度測(cè)量電路的方框圖。 圖4 ds18b20溫度測(cè)量電路的方框圖由圖5可知ds18b20用一個(gè)高溫度系數(shù)的振蕩器確立一個(gè)門周期,內(nèi)部計(jì)數(shù)器在這個(gè)門周期內(nèi)對(duì)一個(gè)低溫度系數(shù)的振蕩器的脈沖進(jìn)行計(jì)數(shù)來得到溫度值。計(jì)數(shù)器被預(yù)置到對(duì)應(yīng)與-55的一個(gè)值。如果計(jì)數(shù)器在門周期結(jié)束前到達(dá)0,則溫度寄存器(同樣被預(yù)置到-55)的值增加,表明所測(cè)的溫度大于-55。同時(shí)計(jì)數(shù)器被復(fù)位到一個(gè)值,這個(gè)值由斜坡式累加器電路確定,斜坡式累加器電路用來補(bǔ)償感溫振蕩器的拋物線特性。然后計(jì)數(shù)器又開始計(jì)數(shù)直到0,如果門周期仍未結(jié)束,將重復(fù)這一過程。斜坡式累加器用來補(bǔ)償感溫振蕩器的
7、非線性,以及在測(cè)溫時(shí)獲得比較高的分辨力。這是通過改變計(jì)數(shù)器對(duì)溫度每增加一度所需計(jì)數(shù)的值來實(shí)現(xiàn)的。因此,要想獲得所需的分辨力,必須同時(shí)知道給定溫度下計(jì)數(shù)器的值和每一度的計(jì)數(shù)值。ds18b20內(nèi)部對(duì)此計(jì)算的結(jié)果可提供0.0625的分辨力。溫度以16bit帶符號(hào)位擴(kuò)展的二進(jìn)制補(bǔ)碼形式讀出。表1給出了溫度值和輸出數(shù)據(jù)的關(guān)系。表1:溫度值和輸出數(shù)據(jù)的關(guān)系溫度數(shù)據(jù)輸出(二進(jìn)制)數(shù)據(jù)輸出(十六進(jìn)制)+1250000 0111 1101 000007d0+25.06250000 0001 1001 00010191+0.50000 0000 0000 1000000800000 0000 0000 00000
8、000-0.51111 1111 1111 1000fff8-25.06251111 1110 0110 1111ffce-551111 1100 1001 0000fc90二進(jìn)制的低四位是小數(shù)數(shù)據(jù),高五位是符號(hào)位。正溫度時(shí),讀到的16位數(shù)據(jù)乘以0.0625就可以得到實(shí)際溫度。若是負(fù)溫度則要把讀到的數(shù)據(jù)按位取反再加1,之后按正溫度轉(zhuǎn)換,前面加符號(hào)就行了。另一種轉(zhuǎn)換方法就是分離出低四位,中間七位和高五位。低四位乘以0.0625就可以得到小數(shù)部分的值,中間八位直接就是整數(shù)部分的值。高四位就是判斷符號(hào)的。ds18b20內(nèi)部有一個(gè)9字節(jié)的高速存儲(chǔ)器用于存儲(chǔ)溫度值。其中前兩個(gè)字節(jié)是測(cè)得的溫度數(shù)據(jù),第一個(gè)
9、字節(jié)的內(nèi)容是溫度的低八位,第二個(gè)字節(jié)是溫度的高八位,第三和第四字節(jié)是溫度上限th與溫度下限tl的易失性拷貝,第五字節(jié)是結(jié)構(gòu)寄存器的易失性拷貝,第6,7,8這三個(gè)字節(jié)用于內(nèi)部計(jì)算,第九個(gè)字節(jié)是冗余檢驗(yàn)字節(jié)crc,可用來保證通信的正取性。當(dāng)溫度轉(zhuǎn)換命令發(fā)出后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在此存儲(chǔ)器的第1和第2個(gè)字節(jié)。單片機(jī)可通過單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后。通過單線總線端口訪問ds18b20的協(xié)議如下:初始化、rom操作命令、存儲(chǔ)器操作命令、執(zhí)行/數(shù)據(jù)。rom操作命令:read rom 33h 這個(gè)命令允許總線控制器讀到ds18b20的8位系列編碼、唯一的序列號(hào)和8位cr
10、c碼。只有在總線上存在單只ds18b20的時(shí)候才能使用這個(gè)命令。如果總線上不止一個(gè)從機(jī)時(shí),當(dāng)所有從機(jī)試圖同時(shí)傳送信號(hào)時(shí)就會(huì)發(fā)生數(shù)據(jù)沖突。match rom 55h 匹配rom命令,后跟64位rom序列,讓總線控制器在多點(diǎn)總線上定位一只特定的ds18b20。只有和64為rom序列完全匹配的ds18b20才能響應(yīng)隨后的儲(chǔ)存操作命令。skip rom cch 這條命令允許總線控制器不用提供64位rom編碼就使用儲(chǔ)存器操作命令,在單點(diǎn)總線情況下用以節(jié)省時(shí)間。如果總線上不止一個(gè)從機(jī),在skip rom命令之后跟著發(fā)一條讀命令,由于多個(gè)從機(jī)同時(shí)傳送信號(hào),總線上就會(huì)發(fā)生數(shù)據(jù)沖突。search rom f0h
11、 當(dāng)一個(gè)系統(tǒng)初次啟動(dòng)時(shí),總線控制器可能不知道單線總線上有多少器件或它們的64位rom編碼。搜索rom命令允許總線控制器用排除法識(shí)別總線上的所有從機(jī)的64位編碼。alarm search ech 這條命令的流程圖和search rom相同。然而,只有在最近一次測(cè)溫后遇到符合報(bào)警條件的情況,ds18b20才會(huì)響應(yīng)這條命令。表2:ds18b20的命令和時(shí)序圖命 令說 明協(xié) 議單線總線發(fā)出協(xié)議后溫度轉(zhuǎn)換命令convert t開始溫度轉(zhuǎn)換44h存儲(chǔ)器命令read scratchpad讀取暫存器和crc字節(jié)behwriteschratchpad把字節(jié)寫入暫存器的地址2和3(th和tl溫度報(bào)警促發(fā))4ehc
12、opy scratchpad把暫存器內(nèi)容拷貝到非易失性存儲(chǔ)器中(僅指地址2和3)48hrecall e2把非易失性存儲(chǔ)器中的值召回暫存器(溫度報(bào)警觸發(fā))b8hread power supply標(biāo)識(shí)ds18b20的供電模式b4h圖6為ds18b20的電路連接圖。圖6 18b20電路圖ds18b20有兩種供電接法,圖6采用的是接入外部電源。這樣做的好處是i/o線上不需要加強(qiáng)上拉,而且總線控制器用在溫度轉(zhuǎn)換期間總保持高電平。這樣在轉(zhuǎn)換期間可以允許在單線總線上進(jìn)行其他數(shù)據(jù)的往來。另外,在單總線上可以掛任意多片ds18b20,而且如果它們都使用外部電源的話,就可以先發(fā)一個(gè)skip rom命令,再接一個(gè)c
13、onvert t命令,讓它們同時(shí)進(jìn)行溫度轉(zhuǎn)換。注意當(dāng)加上外部電源時(shí),gnd引腳不能懸空。2.3 溫度顯示模塊由于此文重在說明ds18b20的功能及使用,所以顯示部分就采用簡(jiǎn)單的數(shù)碼管顯示。只顯示兩位整數(shù)和一位小數(shù),負(fù)溫度就不顯示了。圖7為數(shù)碼管的連接圖。圖7 數(shù)碼管顯示電路2.4 溫度上下限調(diào)整模塊圖8為溫度上下限調(diào)整模塊。圖8 按鍵電路圖所選按鍵是輕觸開關(guān)。按一次k1后,會(huì)在數(shù)碼管顯示ds18b20內(nèi)儲(chǔ)存的溫度上限。按第k2次后就能調(diào)節(jié)溫度的上限,通過k3和k4來調(diào)節(jié)。按下第3次后恢復(fù)到溫度的顯示。k2是調(diào)節(jié)溫度下限的。操作方法和k1一樣。2.5 報(bào)警電路該模塊只是用蜂鳴器表示。蜂鳴器響就報(bào)
14、警。如圖9圖9 圖9 報(bào)警電路圖總體原理圖圖10為電路的總體原理圖。圖10 系統(tǒng)總體原理圖圖10三、系統(tǒng)算法與程序流程圖系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計(jì)算溫度子程序,顯示數(shù)據(jù)刷新子程序,按鍵掃描處理子程序等。3.1 主程序流程圖主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理ds18b20 的測(cè)量的當(dāng)前溫度值,溫度測(cè)量每1s 進(jìn)行一次。這樣可以在一秒之內(nèi)測(cè)量一次被測(cè)溫度,其程序流程如下:圖11主程序流程圖3.2 讀出溫度子程序讀出溫度子程序的主要功能是讀出ram 中的9 字節(jié),在讀出時(shí)需進(jìn)行crc 校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫。其程序流程圖如下:圖12 讀
15、出溫度子程序3.3 溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當(dāng)采用12 位分辨率時(shí)轉(zhuǎn)換時(shí)間約為750ms,在本程序設(shè)計(jì)中采用1s 顯示程序延時(shí)法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序流程如:圖13溫度轉(zhuǎn)換命令子程序3.4 計(jì)算溫度子程序計(jì)算溫度子程序?qū)am 中讀取值進(jìn)行bcd 碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖。圖14計(jì)算溫度子程序3.5 顯示數(shù)據(jù)刷新子程序顯示數(shù)據(jù)刷新子程序主要是對(duì)分離后的溫度顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)標(biāo)志位位為1時(shí)將符號(hào)顯示位移入第一位。程序流程圖如下:圖15顯示數(shù)據(jù)刷新子程序3.6 按鍵掃描處理子程序按鍵采用掃描查詢方式,設(shè)置標(biāo)志位,當(dāng)標(biāo)
16、志位為1 時(shí),顯示設(shè)置溫度,否則顯示當(dāng)前溫度。如下:圖16按鍵掃描處理子程序四、程序/*功能說明按k1設(shè)定溫度上限,然后按k2調(diào)整小數(shù)位增加,按k4小數(shù)位減小按rd1確認(rèn),按rd復(fù)位按rd1設(shè)定溫度下限,然后按k2調(diào)整整數(shù)位增加,按k4整數(shù)位減小按k1確認(rèn),按rd復(fù)位如果實(shí)際溫度超過上下限,則報(bào)警*/#include #include #define uchar unsigned char#define uint unsigned int sbit k1=p20; sbit k2=p21; sbit k3=p34;sbit k4=p23; sbit dq=p22; sbit rd=p24; s
17、bit rd1=p25; sbit beep=p32;uchar buffer0,buffer1,zhi,zhi1; uchar table=0x7f,0xbf,0xdf,0xef,0xff; /設(shè)置位選uchar table1=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x7f; /前兩位數(shù)碼管碼表uchar table2=0xc0,0xcf,0xa4,0x86,0x8b,0x92,0x90,0xc7,0x80,0x82,0x7f,0xf0; /后兩位數(shù)碼管碼表uchar code table32=00; uchar value,nu
18、m,num1,num2;uchar temp,temp3,temp1,temph,templ,temp5,flag,flag1;uchar temp55,temp33,tempxiaoh,tempxiaol;uint qq;void delay(uint z) /延時(shí)子程序uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void delay_18b20(unsigned int i) /ds18b20延時(shí)子程序,延時(shí)1uswhile(i-);void init_ds18b20(void) /ds18b20初始化函數(shù)u uchar x=0; dq = 1; /dq
19、復(fù)位 delay_18b20(8); /稍做延時(shí) ,穩(wěn)定數(shù)據(jù) dq = 0; /單片機(jī)將dq拉低 delay_18b20(100); /精確延時(shí) 大于 480us dq = 1; /拉高總線 delay_18b20(14); /(15-60)us x=dq; /稍做延時(shí)后 如果x=0則初始化成功 x=1則初始化失敗,采樣 delay_18b20(20);void write_18b20byte(uchar dat)/向18b20寫一個(gè)節(jié),dat為入口函數(shù) uchar i; for (i=8; i0; i-)/一字節(jié)8位 dq = 0; dq = dat&0x01; delay_18b20(5)
20、;/18b20采樣 dq = 1;/拉高dq dat=1;/出口函數(shù),dat為入口函數(shù) uchar read_18b20byte(void)uchar i;uchar dat;for (i=8;i0;i-)/判斷8次移位7次 dq = 0; / 給脈沖信號(hào),拉低總線 dat=1;/可以起延時(shí)作用 dq = 1; / 給脈沖信號(hào),釋放總線后才可以采樣 if(dq) dat|=0x80; delay_18b20(4); return(dat);void readtemp(void) /讀取ds18b20當(dāng)前溫度uchar a,b;init_ds18b20();/18b20初始化write_18b2
21、0byte(0xcc); / 跳過讀序號(hào)列號(hào)的操作write_18b20byte(0x44); / 啟動(dòng)溫度轉(zhuǎn)換delay_18b20(100); / 轉(zhuǎn)換需要時(shí)間,延時(shí)init_ds18b20();write_18b20byte(0xcc); /跳過讀序號(hào)列號(hào)的操作write_18b20byte(0xbe); /讀取溫度寄存器等(共可讀9個(gè)寄存器) 前兩個(gè)就是溫度delay_18b20(100);a=read_18b20byte(); /讀取溫度值低位b=read_18b20byte(); /讀取溫度值高位 temp=b*16+a/16;temp1=(a%16)*10/16;void bee
22、pon(void)beep=0;void beepoff(void)beep=1;void display(uchar one,uchar two,uchar three) p1=table0;/選中第一個(gè)數(shù)碼管p0=table1one;/顯示10位delay(3);p1=table1;/選中第二個(gè)數(shù)碼管p0=table1two&0x7f;delay(3);p1=table2;p0=table2three;delay(3);p1=table3;p0=table211&0x7f;delay(3);void keywendu()uchar temp2,temp22;temp2=temp;/整數(shù)位t
23、emp22=temp1;/小數(shù)位rd=0;if(k1=0) /功能鍵delay(20);if(k1=0) while(!k1);/按鍵消抖程序 flag=1;p1=table1;p0=0xff;delay(10);/個(gè)位不顯示p1=table2;p0=0xff;delay(10);/小數(shù)位不顯示while(1)display(temp2/10,temp2%10,temp22);if(k1=0) /k1功能鍵delay(20);if(k1=0) while(!k1);num1+;if(num1=2)num1=0;/num1=0修改小數(shù)位/num1=1修改個(gè)位switch(num1)case 0:
24、/小數(shù)位if(k2=0) /case0,k2功能鍵delay(20);if(k2=0) while(!k2);temp22+;if(temp22=10)temp22=0;delay(20); p1=table2;p0=table2temp22;delay(50);/顯示小數(shù)位if(k4=0) /case0 k4 鍵delay(20);if(k4=0) while(!k4);temp22-;if(temp22=-1)temp22=9;delay(20);p1=table2;p0=table2temp22;delay(50);break;case 1:if(k2=0) /case1 k2鍵dela
25、y(20);if(k2=0) while(!k2);temp2+;delay(20);p1=table0;p0=table1temp2/10;delay(5);p1=table1;p0=table1temp2%10&0x7f;delay(5);if(k4=0) /case1 k4鍵delay(20);if(k4=0) while(!k4);temp2-;delay(20);p1=table0;p0=table1temp2/10;delay(5);p1=table1;p0=table1temp2%10&0x7f;delay(5);break;if(k3=0) delay(20);if(k3=0)
26、 while(!k3);temph=temp2;tempxiaoh=temp22;break;void keywendu_l()uchar temp2,temp22;temp2=temp;/調(diào)節(jié)整數(shù)位temp22=temp1;/調(diào)節(jié)小數(shù)位rd=0;if(k3=0) /k3鍵delay(20);if(k3=0) while(!k3);/消抖電路 flag1=1;p1=table1;p0=0xff;delay(10);p1=table2;p0=0xff;delay(10);while(1)display(temp2/10,temp2%10,temp22);if(k3=0) /功能鍵delay(20
27、);if(k3=0) while(!k3);num1+;if(num1=2)num1=0;switch(num1)case 0:/case0時(shí)選擇小數(shù)位if(k2=0) delay(20);if(k2=0) while(!k2);temp22+;if(temp22=10)temp22=0;delay(20);p1=table2;p0=table2temp22;delay(50);if(k4=0) delay(20);if(k4=0) while(!k4);temp22-;if(temp22=-1)temp22=9;delay(20);p1=table2;p0=table2temp22;dela
28、y(50);break;case 1:if(k2=0) /case1 調(diào)節(jié)k2鍵delay(20);if(k2=0) while(!k2);temp2+;delay(20);p1=table0;p0=table1temp2/10;delay(5);p1=table1;p0=table1temp2%10&0x7f;delay(5);if(k4=0) /case1調(diào)節(jié)k4鍵delay(20);if(k4=0) while(!k4);temp2-;delay(20);p1=table0;p0=table1temp2/10;delay(5);p1=table1;p0=table1temp2%10&0x
29、7f;delay(5);break;if(k1=0) delay(20);if(k1=0) while(!k1);templ=temp2;tempxiaol=temp22;break;void main() uchar shi,ge; /十位和個(gè)位定義字符格式 init_ds18b20();/初始化18b20溫度傳感器while(1)readtemp();/讀取18b20傳感器溫度值shi=temp/10;ge=temp%10;delay(5); display(shi,ge,temp1);/顯示溫度值 keywendu();/修改溫度上限keywendu_l();/修改溫度下限if(flag
30、=1&temptemph)/大于最高設(shè)定溫度報(bào)警beepon();delay(500);delay(500);beepoff();if(flag=1&temp=temph&tempxiaohtemp1)/蜂鳴器報(bào)警beepon();delay(500);delay(500);beepoff();if(flag1=1&temptemp1)/蜂鳴器報(bào)警beepon();delay(500);delay(500);beepoff();五、心得體會(huì)作為一名電子信息工程專業(yè)的大三學(xué)生,我覺得做單片機(jī)課程設(shè)計(jì)是十分有意義的,而且是十分必要的。在已度過的大學(xué)時(shí)間里,我們大多數(shù)接觸的是專業(yè)課。我們?cè)谡n堂上掌握
31、的僅僅是專業(yè)課的理論知識(shí),如何去鍛煉我們的實(shí)踐能力?如何把我們所學(xué)的專業(yè)基礎(chǔ)課理論知識(shí)運(yùn)用到實(shí)踐中去呢?我想做類似的課程設(shè)計(jì)就為我們提供了良好的實(shí)踐平臺(tái)。課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機(jī)已經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中空前活躍的領(lǐng)域,在生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握單片機(jī)的開發(fā)技術(shù)是十分重要的。這次單片機(jī)課程設(shè)計(jì)我們歷時(shí)兩個(gè)星期,從理論到實(shí)踐,學(xué)到了很多的東西。同時(shí)不僅鞏固了以前所學(xué)過的知識(shí),而且還學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí)。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在這次課程設(shè)計(jì)后我發(fā)現(xiàn)自己在一點(diǎn)一滴的努力中對(duì)單片機(jī)的興趣也在逐漸增加。這次的課程設(shè)計(jì)還讓我學(xué)會(huì)了
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業(yè)品買賣合同書
- 康雙的離婚協(xié)議書
- 三農(nóng)村生態(tài)建設(shè)實(shí)施指南
- 工程監(jiān)理承包合同
- 云計(jì)算在企業(yè)IT架構(gòu)中應(yīng)用教程
- 運(yùn)動(dòng)訓(xùn)練方法與技巧指南
- 軟件測(cè)試流程與質(zhì)量保障作業(yè)指導(dǎo)書
- 臨設(shè)工程勞務(wù)分包合同
- 網(wǎng)絡(luò)安全威脅防范與應(yīng)對(duì)作業(yè)指導(dǎo)書
- 鋼渣購銷合同
- Starter Unit 1 Hello!說課稿2024-2025學(xué)年人教版英語七年級(jí)上冊(cè)
- 2025年初中語文:春晚觀后感三篇
- Unit 7 第3課時(shí) Section A (Grammar Focus -4c)(導(dǎo)學(xué)案)-【上好課】2022-2023學(xué)年八年級(jí)英語下冊(cè)同步備課系列(人教新目標(biāo)Go For It!)
- 《教育強(qiáng)國建設(shè)規(guī)劃綱要(2024-2035年)》解讀講座
- 《基于新課程標(biāo)準(zhǔn)的初中數(shù)學(xué)課堂教學(xué)評(píng)價(jià)研究》
- 省級(jí)產(chǎn)業(yè)園區(qū)基礎(chǔ)設(shè)施項(xiàng)目可行性研究報(bào)告
- 預(yù)算績(jī)效評(píng)價(jià)管理機(jī)構(gòu)入圍投標(biāo)文件(技術(shù)方案)
- 2019北師大版高中英語選擇性必修四單詞表
- 園藝產(chǎn)品的品質(zhì)講義
- 鋼筋混凝土框架結(jié)構(gòu)工程監(jiān)理的質(zhì)量控制
- 桃花節(jié)活動(dòng)方案
評(píng)論
0/150
提交評(píng)論