基于AT89C52單片機的數(shù)字溫度測量及顯示系統(tǒng)設(shè)計_第1頁
基于AT89C52單片機的數(shù)字溫度測量及顯示系統(tǒng)設(shè)計_第2頁
基于AT89C52單片機的數(shù)字溫度測量及顯示系統(tǒng)設(shè)計_第3頁
基于AT89C52單片機的數(shù)字溫度測量及顯示系統(tǒng)設(shè)計_第4頁
基于AT89C52單片機的數(shù)字溫度測量及顯示系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精品文檔河北工程大學(xué)20142015 學(xué)年第(二)學(xué)期課程設(shè)計課題名稱:基于at89s5單片機的數(shù)字溫度測量及顯示系統(tǒng)設(shè)計設(shè)計時間:設(shè)15年06月系 部:計算機科學(xué)與技術(shù)班 級:計算機1401小組成員:張朔萌 李丹丹 郭星星 石鳳丹指導(dǎo)老師:趙建明0歡迎下載精品文檔目 錄1. 課程設(shè)計題目21.1 實驗題目21.2 小組成員貢獻(xiàn)22. 設(shè)計方案22.1 設(shè)計目的22.2 性能指標(biāo)23. 數(shù)字溫度計系統(tǒng)的硬件設(shè)計33.1 數(shù)字溫度計硬件框圖33.2 at89c52 單片機33.3 外圍電路43.4 總設(shè)計圖44. 數(shù)字溫度計系統(tǒng)的軟件分析及系統(tǒng)整體流程44.1 總體流程圖53 歡迎下載 。34.

2、2 子程序流程圖65. 仿真結(jié)果86. 總結(jié)97. 附錄10河北工程大學(xué)1課程設(shè)計題目1.1 實驗題目基于單片機的數(shù)字溫度計設(shè)計1.2 小組成員所做貢獻(xiàn)姓名學(xué)號主要貢獻(xiàn)張朔萌140210103主程序的編寫以及程序的編譯、調(diào)試郭星星140210119設(shè)計電路弁在proteus中進(jìn)行仿真模擬石鳳丹140210115子程序的編寫李丹丹140210132整體實驗的設(shè)計以及實驗報告的設(shè)計和編輯2設(shè)計方案2.1 設(shè)計目的單片機是單片微型計算機的簡稱,其具有體積小、可靠性高、功能強、靈活 方便等優(yōu)點,故可以廣泛應(yīng)用于各種領(lǐng)域。其中數(shù)字溫度計就是一個典型的例子。本設(shè)計所介紹的數(shù)字溫度計與傳統(tǒng)的溫度計相比,具有

3、讀數(shù)方便,測溫范圍 廣,測溫準(zhǔn)確等特點,其輸出溫度采用數(shù)字顯示,主要用于對測溫要求較高的場 所,該設(shè)計主要使用的元件有單片機 at89c52測溫傳感器使用ds18b2時lcd1602 液晶顯小器。2.2 性能指標(biāo)(1)基本范圍-50 c-110 c;(2)精度為0.5 c ;(3)液晶lcd顯示;(4)可以設(shè)定溫度的上下限以及報警功能。2精品文檔3數(shù)字溫度計系統(tǒng)的硬件設(shè)計3.1 數(shù)字溫度計硬件框圖數(shù)字溫度計系統(tǒng)硬件框圖如圖1所示圖1系統(tǒng)的硬件框圖3.2 at89c52 單片機at89c52單片機引腳配置圖,如圖2所示。u119xtal1p0.0/ad03938p0.1/ad1p0.2/ad2f

4、18xtal2p0.3/ad3p0.4/ad436fp0.5/ad5p0.6/ad634f9_32rstp0.7/ad7p2.0/a821p2.1/a922p2.2/a102329303124252627psenp2.3/a11alep2.4/a12eap2.5/a13p2.6/a1428p2.7/a15j_ 2-p1.0/t2p3.0/rxd10-1?p1.1/t2exp3.1/txd3124p1.2p3.2/int013p1.3p3.3/int15_61415p1.4p1.5p1.6p1.7p3.4/t0p3.5/t1p3.6/wrp3.7/rd-7_81617at89c52圖2 at89

5、c52單片機引腳配置圖3歡3f載精品文檔3.3 外圍電路at89c52的時序就是cpus執(zhí)行指令時所需控制信號的時間順序。選擇了內(nèi)部時鐘方式,即利用芯片內(nèi)部的振蕩器,然后在引腳xtal1和xtal2兩端跨接晶體或陶瓷諧振器,就構(gòu)成了穩(wěn)定的自激振蕩器,其發(fā)出的脈沖直接送入內(nèi)部時鐘電路。外接晶振時,c1和c2值通常選擇為30pf左右。c1和c2對頻率有微調(diào)作用。晶體的頻率范圍可在1.212mh之間選擇。at89c52的復(fù)位電路是按鍵電平復(fù)位電路,相當(dāng)于按復(fù)位鍵后復(fù)位端通過電阻與 vcc 電源接通。復(fù)位是單片機的初始化操作。單片機在啟動運行時,都需要先復(fù)位,其作用是使cpuffi系統(tǒng)中其他部件都處于

6、一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。顯示電路采用lcd1602夜晶顯示器顯示。故障狀態(tài)指示電路采用發(fā)光二級管以及蜂鳴器對運行方式進(jìn)行指示,可清楚看到系統(tǒng)的故障狀態(tài)。測溫傳感器ds18b20可以直接讀出被測溫度值,采用三線制和單片機相連,少了外部的硬件電路, 具有低成本和易使用的特點。3.4 總設(shè)計圖數(shù)字溫度計系統(tǒng)的硬件總設(shè)計圖如圖 3 所示。4 歡迎下載 。4精品文檔6歡容載u1lcd1lm016lmps3702 q卜 xtal1xtal2rstp0.0/ad0p0.1/ad1p0.2/ad2p0.3/ad3p0.4/ad4p0.5/ad5p0.6/ad6p0.7/ad7p2.0/a8p

7、2.1/a9p2.2/a10psenp2.3/a11alep2.4/a12eap2.5/a13p2.6/a14p2.7/a15p1.0/t2p3.0/rxdp1.1/t2exp3.1/txdp1.2p3.2/int0-p1.3p3.3/int1p1.4p3.4/t0p1.5p3.5/t1p1.6p3.6/wrp1.7p3.7/rdat89c528圖3總設(shè)計圖4數(shù)字溫度計系統(tǒng)的軟件設(shè)計及系統(tǒng)整體流程整個系統(tǒng)的功能是由硬件電路配合軟件來實現(xiàn)的,從軟件的功能不同,可以 分為兩類:主程序和子程序。主程序是整個軟件的核心,專門用來協(xié)調(diào)各個執(zhí)行模塊和操作者的聯(lián)系。子程序是用來完成各種實質(zhì)性的工作的,如讀溫

8、度子程序、轉(zhuǎn)換溫度子程序、 計算溫度子程序等。各執(zhí)行模塊規(guī)劃好以后,就可以規(guī)劃監(jiān)控軟件了。首先要根據(jù)系統(tǒng)的總體功 能選擇一種最合適的主程序結(jié)構(gòu),然后根據(jù)實時性的條件,合理安排監(jiān)控軟件和 執(zhí)行軟件之間的調(diào)度關(guān)系。4.1 總體流程圖數(shù)字溫度計系統(tǒng)總體流程圖如圖 4所示。4.2 子程序流程圖數(shù)字溫度計系統(tǒng)子程序主要包含:讀溫度子程序、轉(zhuǎn)換溫度子程序、計算溫 度子程序。(1)讀溫度子程序流程圖讀溫度子程序流程圖如圖5所示。精品文檔開始是crc校驗正?是移入溫度暫存器結(jié)束圖5讀溫度子程序流程圖(2)轉(zhuǎn)換溫度子程序流程圖轉(zhuǎn)換溫度子程序流程圖如圖6所示。7歡7載精品文檔8歡g載(3)計算溫度子程序流程圖圖6

9、轉(zhuǎn)換溫度子程序流程圖計算溫度子程序流程圖如圖7所示。圖7計算溫度子程序流程圖5仿真結(jié)果(1)正常溫度顯示溫度計正常溫度顯示如圖8所示。精品文檔7歡9載lcd1lm016lnow tenperdture+ 29.0d1led-green7d 6d 5d 4d 3d 2d 1d ode wr sr eev ddv ssv4jxz p 3jm2p2dk2p . c2p 12p f qzp4 03 p圖8正常溫度顯示報警溫度顯示溫度計報警溫度顯示如圖9所示。lcd1lm016lnow tenperature+ 35-9d1led-green7d 6d 5d 4d 3d 2d 1d odewr sr e

10、tv ddv ssv3h2p o&k2p 1t42p n32p992p 812p7o2p5 4o3p圖9報警溫度顯示6總結(jié)通過這次單片機課程設(shè)計,不僅讓我加深了解了單片機課本上所學(xué)的知識, 更通過自己的動手設(shè)計,將課本知識與動手操作能力相結(jié)合,讓我對單片機及其 系統(tǒng)設(shè)計的認(rèn)識更進(jìn)一步。在此次的課程設(shè)計中我學(xué)會了很多的東西。經(jīng)過自己努力,基本上完成了設(shè) 計要求的內(nèi)容,在系統(tǒng)可行性分析、原理圖設(shè)計等方面都作了許多實際工作,取 得了一些結(jié)果,同時也發(fā)現(xiàn)了許多不足。對于本次的課程設(shè)計還有很大提升空間, 目前僅完成的是基本功能實現(xiàn),還有很多的擴展功能可以提升。精品文檔附錄1 .參考文獻(xiàn):1 .王思明.單

11、片機原理及應(yīng)用系統(tǒng)設(shè)計m.北京:科學(xué)出版社,2012.2 .李廣弟.單片機基礎(chǔ)m.北京:北京航空航天大學(xué)出版社,1994.3 .艾德才.pentium/80486實用匯編語言程序設(shè)計m.北京:清華大學(xué)出版 社。2 .源程序/使用1602lcd1示ds18b20專換的溫度值#include #include #include #define uchar unsigned char#define uint unsigned intsbit rs = p3a0; /rs-數(shù)據(jù) / 命令選擇端(h/l)sbit lcden = p3a2; 使能端sbit deng=p1a6;/超過溫度限制指示燈sbi

12、t beep=p1a7;/超過溫度限制報警器uchar high=30;/ 最高溫度uchar low=10;/ 最低溫度unsigned char r;void delayus()/短延時1叫0載精品文檔_nop_();void delayms(uint a) / 長延時uint i, j;for(i = a; i 0; i-)for(j = 100; j 0; j-);/ 第一行開始地址為 0x80, 第二行開始地址為 0xc0;void writecomm(uchar comm) / 寫命令 :rs=0, rw=0;rs = 0;p2 = comm;lcden = 1;delayus()

13、;lcden = 0;delayms(1);void writedata(uchar dat) / 寫數(shù)據(jù) :rs=1, rw=00rs = 1;p2 = dat;lcden = 1;delayus();lcden = 0;delayms(1);/init()為初始化函數(shù)/ 顯示模式 , 固定指令為 00111000=0x38, 16*2 顯示 , 5*7 點陣 ,8 位數(shù)據(jù)接口/ 顯示開/ 關(guān)及光標(biāo)設(shè)置00001100=0x0c / 指令 1: 00001dcb : d: 開顯示 /關(guān)顯示 (h/l); c: 顯示光標(biāo) / 不顯示 (h/l), b:光標(biāo)閃爍 / 不閃爍 (h/l)/ 指令

14、2: 000001ns :/n=1, 當(dāng)讀 /寫一個字符后地址指針加1, 且光標(biāo)也加1; n=0 則相反/s=1,當(dāng)寫一個字符,整屏顯示左移(n=1)或右移(n=0),但光標(biāo)不移動;s=0,整屏不移動void init()顯示模式開顯示 , 關(guān)光標(biāo)寫字符后地址加 1, 光標(biāo)加 1清屏writecomm(0x38); /writecomm(0x0c); /writecomm(0x06); /writecomm(0x01); /寫字符串函數(shù)void writestring(uchar * str, uchar length) /uchar i;for(i = 0; i 0) i-;ds = 1;

15、/ 產(chǎn)生一個上升沿, 進(jìn)入等待應(yīng)答狀態(tài)i = 4;while(i0) i-;void dswait()unsigned int i;while(ds);while(ds); / 檢測到應(yīng)答脈沖i = 4;while(i 0) i-;/向ds18b2岐取一位數(shù)據(jù)讀一位,讓ds18b20-小周期低電平,然后兩小周期高電平,/之后ds18b20u會輸出持續(xù)一段時間的一位數(shù)據(jù)bit readbit()unsigned int i;bit b;ds = 0;i+; / 延時約 8us, 符合協(xié)議要求至少保持1usds = 1;i+; i+; / 延時約 16us, 符合協(xié)議要求的至少延時15us 以上b

16、 = ds;i = 8;while(i0) i-; /延時約 64us, 符合讀時隙不低于 60us 要求return b;/ 讀取一字節(jié)數(shù)據(jù), 通過調(diào)用 readbit() 來實現(xiàn)unsigned char readbyte()unsigned int i;unsigned char j, dat;dat = 0;for(i=0; i8; i+)j = readbit();/ 最先讀出的是最低位數(shù)據(jù)dat = (j 1);return dat;/向ds18b2為入一字節(jié)數(shù)據(jù)void writebyte(unsigned char dat)unsigned int i;unsigned cha

17、r j;bit b;for(j = 0; j = 1;/ 寫1,將 dq拉低 15us 后,在 15us60us 內(nèi)將 dqs高,即完成寫 1if(b)ds = 0;i+; i+; /拉低約 16us, 符號要求 1560us 內(nèi)ds = 1;i = 8; while(i0) i-; /延時約 64us, 符合寫時隙不低于60us要求else /寫0, 將 dqk低 60us120usds = 0;i = 8; while(i0) i-; /拉低約 64us, 符號要求ds = 1;i+; i+; /整個寫 0 時隙過程已經(jīng)超過60us, 這里就不用像寫 1那樣 , 再延時 64us 了/向d

18、s18b2畋送溫度轉(zhuǎn)換命令 void sendchangecmd()dsinit(); / 初始化 ds18b20, 無論什么命令, 首先都要發(fā)起初始化dswait(); / 等待 ds18b2而答delayms(1); / 延時1ms,因為ds18b2膾拉低dq 60240us作為應(yīng)答信writebyte(0xcc); /writebyte(0x44); /寫入跳過序列號命令字 skip rom寫入溫度轉(zhuǎn)換命令字convert t /向ds18b2畋送讀取數(shù)據(jù)命令 void sendreadcmd()dsinit();dswait();delayms(1);writebyte(0xcc); / 寫入跳過序列號命令字 skip romwritebyte(0xbe); / 寫入讀取數(shù)據(jù)令字 read scratchpad/ 獲取當(dāng)前溫度值int gettmpvalue()unsigned int tmpvalue;int value; / 存放溫度數(shù)值 float t;unsigned char low, high;sendreadcmd();/ 連續(xù)讀取兩個字節(jié)數(shù)據(jù)low = readbyte();high = readbyte();/ 將高低兩個字節(jié)合成一個整形變量/ 計算機中對于負(fù)數(shù)是利用補碼來表示的/ 若

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論