基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)06572_第1頁
基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)06572_第2頁
基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)06572_第3頁
基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)06572_第4頁
基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)06572_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、1設(shè)計(jì)題目: 單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì)2設(shè)計(jì)目的:熟悉MCS-51單片機(jī)的功能,掌握其設(shè)計(jì)流程。3 系統(tǒng)硬件設(shè)計(jì)方案及原理框圖 1:系統(tǒng)結(jié)構(gòu)原理圖:2單片機(jī):圖1 系統(tǒng)原理結(jié)構(gòu)框圖 溫度傳感器DS18B20引腳如圖3所示。 8引腳封裝 TO92封裝圖3 溫度傳感器4設(shè)計(jì)步驟: 1 溫度傳感器與單片機(jī)的連接溫度傳感器的單總線(1-Wire)與單片機(jī)的P20連接,P20是單片機(jī)的高位地址線A8。P2端口是一個(gè)帶內(nèi)部上拉電阻的8位雙向IO,其輸出緩沖級可驅(qū)動(吸收或輸出電流)4個(gè)TTL邏輯門電路。對該端口寫“1”,可通過內(nèi)部上拉電阻將其端口拉至高電平,此時(shí)可作為輸入口使用,這是因?yàn)閮?nèi)部存在上拉電阻,某一

2、引腳被外部信號拉低時(shí)會輸出一個(gè)電流。在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器時(shí)。如執(zhí)行MOVX DPTR指令,則表示P2端口送出高8位的地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器時(shí),可執(zhí)行MOVX RI指令,P2端口內(nèi)容即為特殊功能寄存器(SFR)區(qū)中R2寄存器內(nèi)容,整個(gè)訪問期間不改變。在Flash編程和程序校驗(yàn)時(shí),P2端口也接收高位地址和其他控制信號。圖4為DSl8820內(nèi)部結(jié)構(gòu)。圖5為DSl8820與單片機(jī)的接口電路。圖4 DS18B20內(nèi)部結(jié)構(gòu)圖 圖5 DS18B20和單片機(jī)的接口連接42 復(fù)位信號及外部復(fù)位電路 單片機(jī)的P1.6端口是MAX813看門狗電路中喂狗信號的輸入端,即單

3、片機(jī)每執(zhí)行一次程序就設(shè)置一次喂狗信號,清零看門狗器件。若程序出現(xiàn)異常,單片機(jī)引腳RST將出現(xiàn)兩個(gè)機(jī)器周期以上的高電平,使其復(fù)位。該復(fù)位信號高電平有效,其有效時(shí)間應(yīng)持續(xù)24個(gè)振蕩脈沖周期即兩個(gè)機(jī)器周期以上。若使用頻率為12 MHz的晶體振蕩器,則復(fù)位信號持續(xù)時(shí)間應(yīng)超過2s才完成復(fù)位操作。4.3 單片機(jī)與報(bào)警電路 系統(tǒng)中的報(bào)警電路是由發(fā)光二極管和限流電阻組成,并與單片機(jī)的P1.2端口連接。P1端口的作用和接法與P2端口相同,不同的是在Flash編程和程序校驗(yàn)期間,P1接收低8位地址數(shù)據(jù)。4.4 電源電路由于該系統(tǒng)需要穩(wěn)定的5 V電源,因此設(shè)計(jì)時(shí)必須采用能滿足電壓、電流和穩(wěn)定性要求的電源。該電源采用

4、三端集成穩(wěn)壓器LM7805。它僅有輸入端、輸出端及公共端3個(gè)引腳,其內(nèi)部設(shè)有過流保護(hù)、過熱保護(hù)及調(diào)整管安全保護(hù)電路由于所需外接元件少,使用方便、可靠,因此可作為穩(wěn)壓電源。圖6為電源電路連接圖。圖6 電源電路連接圖4.5 顯示電路采用技術(shù)成熟的74HCl64實(shí)現(xiàn)串并轉(zhuǎn)換。LED顯示分為靜態(tài)顯示和動態(tài)顯示。這里采用靜態(tài)顯示,系統(tǒng)通過單片機(jī)的串行口來實(shí)現(xiàn)靜態(tài)顯示。串行口為方式零狀態(tài),即工作在移位寄存器方式,波特率為振蕩頻率的1/12。當(dāng)器件執(zhí)行任何一條將SBUF作為目的寄存器的命令時(shí),數(shù)據(jù)便開始從RXD端發(fā)送。在寫信號有效時(shí),相隔一個(gè)機(jī)器周期后發(fā)送控制端SEND有效,即允許RXD發(fā)送數(shù)據(jù),同時(shí)允許從

5、TXD端輸出移位脈沖。圖7為顯示電路的連接圖。圖7 顯示電路的連接圖4.6 看門狗電路系統(tǒng)中把P1.6作為看門狗的“喂狗”信號;將MAX813的RESET與單片機(jī)的復(fù)位信號RST連接。由于單片機(jī)每執(zhí)行一次程序,就會給看門狗器件一個(gè)復(fù)位信號,這樣也可以用手工方式實(shí)現(xiàn)復(fù)位。當(dāng)按鍵按下時(shí),SWSPST就會在MAX813引腳產(chǎn)生一個(gè)超過200 ms的低電平,其實(shí)看門狗器件在1.6 s時(shí)間內(nèi)沒有復(fù)位,使7引腳輸出一個(gè)復(fù)位信號的作用是相同的,其連接圖如圖8所示。圖8 看門狗器件的MAX813的連接圖5設(shè)計(jì)流程圖:開始DS18B20的初始化啟動溫度轉(zhuǎn)換讀取溫度寄存器跳過讀序列號的操作跳過讀序列號的操作DS1

6、8B20的初始化RETLOW-低八位 HIGH-高八位圖9 讀取數(shù)據(jù)的流程圖讀出溫度數(shù)據(jù)后,LOW的低四位為溫度的小數(shù)部分,可以精確到0.0625,LOW的高四位和HIGH的低四位為溫度的整數(shù)部分,HIGH的高四位全部為1表示負(fù)數(shù),全為0表示正數(shù)。所以先將數(shù)據(jù)提取出來,分為三個(gè)部分:小數(shù)部分、整數(shù)部分和符號部分。小數(shù)部分進(jìn)行四舍五入處理:大于0.5的話,向個(gè)位進(jìn)1;小于0.5的時(shí)候,舍去不要。當(dāng)數(shù)據(jù)是個(gè)負(fù)數(shù)的時(shí)候,顯示之前要進(jìn)行數(shù)據(jù)轉(zhuǎn)換,將其整數(shù)部分取反加一。還因?yàn)镈S18B20最低溫度只能為-55,所以可以將整數(shù)部分的最高位換成一個(gè)“-”,表負(fù)數(shù)。開始提取整數(shù)部分存入HT提取小數(shù)部分存入LT

7、LT右移三位,將精度降低到0.5攝氏度HT+將小數(shù)部分整數(shù)化提取符號部分存入signLT是否大于5Sign=?0XF0RET負(fù)數(shù)表示flag=1 HT=HT+1YNNY圖10 溫度數(shù)據(jù)處理流程圖6 程序源代碼DATA_BUSBITP3.3FLAGBIT00H;標(biāo)志位TEMP_LEQU 30H;溫度值低字節(jié)TEMP_HEQU31H;溫度值高字節(jié)TEMP_DPEQU32H;溫度小數(shù)TEMP_INTEQU33H;溫度值整數(shù)TEMP_BAIEQU34H;溫度百位數(shù)TEMP_SHIEQU35H;溫度十位數(shù)TEMP_GEEQU36H;溫度個(gè)位數(shù)DIS_BAIEQU37H;顯示百位數(shù)DIS_SHIEQU38

8、H;顯示十位數(shù)DIS_GEEQU39H;顯示個(gè)位數(shù)DIS_DPEQU3AH;顯示小數(shù)位DIS_ADDEQU3BH;顯示地址ORG 0000H AJMPSTARTORG 0050H;初始化START:MOVSP,#40HMAIN:LCALLREAD_TEMP;調(diào)讀溫度程序LCALLPROCESS;調(diào)數(shù)據(jù)處理程序AJMPMAIN;讀溫度程序READ_TEMP: LCALLRESET_PULSE ;調(diào)用復(fù)位脈沖程序MOV A,#0CCH;跳過ROM命令LCALL WRITEMOVA,#44H;讀溫度LCALL WRITELCALLDISPLAY;顯示溫度LCALLRESET_PULSE;調(diào)用復(fù)位脈沖

9、程序MOVA,#0CCH;跳過ROM命令LCALLWRITEMOVA,#0BEH;讀緩存命令LCALL WRITELCALLREADRET;復(fù)位脈沖程序RESET_PULSE:RESET:SETBDATA_BUSNOPNOPCLRDATA_BUSMOVR7,#255DJNZR7,$SETB DATA_BUSMOVR7,#30DJNZR7,$JNB DATA_BUS,SETB_FLAGCLRFLAGAJMPNEXTSETB_FLAG:SETB FLAGNEXT:MOV R7,#120DJNZR7,$SETB DATA_BUSJNBFLAG,RESET RET;寫命令WRITE:SETBDATA_

10、BUSMOVR6,#8CLRCWRITING:CLRDATA_BUSMOVR7,#5DJNZR7,$RRCAMOVDATA_BUS, CMOVR7,#30HDJNZR7,$SETBDATA_BUSNOPDJNZR6,WRITINGRET;循環(huán)顯示段位DISPLAY:MOV R4,#200DIS_LOOP:MOVA,DIS_DPMOVP2,#0FFHMOVP0,A CLRP2.7LCALLDELAY2MSMOVA,DIS_GEMOVP2,#0FFHMOVP0,ASETBP0.7 CLRP2.6LCALLDELAY2MSMOVA,DIS_SHIMOVP2,#0FFHMOVP0,ACLRP2.5 L

11、CALLDELAY2MSMOVA,DIS_BAIMOVP2,#0FFHMOVP0,AMOVA,TEMP_BAICJNEA,#0,SKIPAJMPNEXTTSKIP:CLRP2.4LCALLDELAY2MSNEXTT:NOPDJNZR4,DIS_LOOPRET;讀命令READ:SETBDATA_BUSMOVR0,#TEMP_LMOV R6,#8MOVR5,#2CLRCREADING:CLRDATA_BUSNOPNOPSETBDATA_BUSNOPNOPNOPNOPMOVC,DATA_BUSRRCAMOVR7,#30HDJNZR7,$SETBDATA_BUSDJNZR6,READINGMOVR0,

12、AINC R0MOVR6,#8SETBDATA_BUSDJNZR5,READINGRET;數(shù)據(jù)處理PROCESS:MOV R7,TEMP_LMOVA,#0FHANLA,R7MOVTEMP_DP,AMOV R7,TEMP_LMOVA,#0F0HANLA,R7SWAPAMOVTEMP_L,AMOVR7,TEMP_HMOVA,#0FHANLA,R7SWAPAORLA,TEMP_LMOV B,#64HDIVABMOVTEMP_BAI,AMOVA,#0AHXCHA,BDIVABMOVTEMP_SHI,AMOVTEMP_GE,BMOVA,TEMP_DPMOV DPTR,#TABLE_DPMOVCA,A+D

13、PTRMOVDPTR,#TABLE_INTERMOVC A,A+DPTRMOVDIS_DP,AMOVA,TEMP_GEMOV DPTR,#TABLE_INTERMOVCA,A+DPTRMOV DIS_GE,AMOVA,TEMP_SHIMOV DPTR,#TABLE_INTERMOVCA,A+DPTRMOVDIS_SHI,AMOVA,TEMP_BAIMOV DPTR,#TABLE_INTERMOVCA,A+DPTRMOV DIS_BAI,ARETDELAY2MS:MOVR6,#3LOOP3:MOVR5,#250DJNZR5,$DJNZR6,LOOP3RETTABLE_DP:DB00H,01H,0

14、1H,02H,03H,03H,04H,04H,05H,06HDB06H,07H,08H,08H,09H,09HTABLE_INTER:DB03FH,006H,05BH,04FH,066HDB06DH,07DH,07H,07FH,06FHEND。7 總結(jié)與體會心得作為一名電子信息工程的大三學(xué)生,我覺得做單片機(jī)課程設(shè)計(jì)是很有意義的,而且也是必要的。在做這次課程設(shè)計(jì)的過程中,我感觸最深的當(dāng)屬查閱大量的設(shè)計(jì)資料了。為了讓自己的設(shè)計(jì)更加完善,查閱這方面的實(shí)際資料是十分必要的,也是必不可少的。其次,在這次課程設(shè)計(jì)中,我們運(yùn)用了以前學(xué)過的專業(yè)課知識,如:proteus仿真、匯編語言、模擬和數(shù)字電路知識等。雖

15、然過去我從未獨(dú)立應(yīng)用過他們,但在學(xué)習(xí)的過程中帶著問題去學(xué)我發(fā)現(xiàn)效率很高,這是我做這次課程設(shè)計(jì)的又一收獲。最后,要做好一個(gè)課程設(shè)計(jì),就必須做到:在設(shè)計(jì)程序之前,對所用單片機(jī)的內(nèi)部結(jié)構(gòu)有一個(gè)系統(tǒng)的了解,知道該單片機(jī)有哪些資源;要有一個(gè)清晰的思路和一個(gè)完整的軟件流程圖;在設(shè)計(jì)程序時(shí),不能妄想一次將整個(gè)程序設(shè)計(jì)好,反復(fù)修改、不斷改進(jìn)是程序設(shè)計(jì)的必經(jīng)之路;要養(yǎng)成注釋程序的好習(xí)慣,這樣為資料的保留和交流提供了方便;在設(shè)計(jì)中遇到的問題要記錄,以免下次遇到同樣的問題。在這次的課程設(shè)計(jì)中,我真正的意識到,在以后的學(xué)習(xí)中,要理論聯(lián)系實(shí)際,把我們所學(xué)的理論知識用到實(shí)際當(dāng)中,學(xué)習(xí)單片機(jī)更是如此,程序只有在經(jīng)常寫與讀的過程中才能提高,這就是這次課程設(shè)計(jì)的最

溫馨提示

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

評論

0/150

提交評論