數(shù)碼管顯示溫控電動機_第1頁
數(shù)碼管顯示溫控電動機_第2頁
數(shù)碼管顯示溫控電動機_第3頁
數(shù)碼管顯示溫控電動機_第4頁
數(shù)碼管顯示溫控電動機_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、中北大學(xué)單片機課程設(shè)計說明書1 引言本設(shè)計是一種基于單片機原理的簡易實用的溫度控制系統(tǒng)。采用AT89C51作為CPU主控裝置,電路主要由溫度采集和電機控制電路組成。溫度采集由智能溫度傳感器DS18B20集成芯片完成,該系統(tǒng)主要用于實現(xiàn)溫度采集、顯示和控制功能。1.1 設(shè)計任務(wù)與要求使用AT89C51單片機為核心,使用4位集成式數(shù)碼管顯示當(dāng)前溫度,溫度傳感使用DS18B20。用4位集成式數(shù)碼管顯示當(dāng)前溫度,當(dāng)溫度在-20C70C00范圍之外時,直流電動機開始旋轉(zhuǎn)??刂瞥绦蛟贙eil軟件中編寫,編譯,整個控制電路在Proteus仿真軟件中連接調(diào)試。1.2 實用價值與理論意義溫度的測量和控制在工業(yè)生

2、產(chǎn)中獲得了廣泛的應(yīng)用,在工農(nóng)業(yè)生產(chǎn)、日常的生活等領(lǐng)域都占有重要的地位。隨著對溫度控制精度的不斷提高,溫度控制系統(tǒng)的控制技術(shù)得到了迅速發(fā)展。目前溫度控制系統(tǒng)廣泛應(yīng)用于社會生活、生產(chǎn),成為發(fā)展國民經(jīng)濟的重要設(shè)備之一。所以溫度控制智能化有著極其重要的意義。通過對溫度控制通信系統(tǒng)的設(shè)計,了解信息采集測試、控制及通信的過程,提高在電子工程設(shè)計和操作方面的綜合能力,初步培養(yǎng)在完成工程項目中所應(yīng)具備的基本素質(zhì)和要求。以AT89C51單片機為核心,使用4位集成式數(shù)碼管顯示當(dāng)前溫度,使用DS18B20溫度傳感器來設(shè)計一個用4位集成式數(shù)碼管顯示當(dāng)前溫度,當(dāng)溫度在-20C70C00范圍之外時,使直流電動機開始旋轉(zhuǎn)的

3、程序并仿真調(diào)試,驗證該設(shè)計可行性。2 方案設(shè)計采用AT89C51作為CPU主控制器,電路由溫度采集、電機控制、顯示電路組成,系統(tǒng)的總體電路原理圖如圖2.1所示第 1 頁 共 18 頁中北大學(xué)單片機課程設(shè)計說明書圖2.1 電路原理圖3 硬件電路的設(shè)計3.1溫度采集電路3.1.1 DS18B20數(shù)字溫度傳感器基本特性獨特的一線接口,只需要一條口線通信 多點能力,簡化了分布式溫度傳感應(yīng)用 無需外部元件 可用數(shù)據(jù)總線供電,電壓范圍為3.0 V至5.5 V 無需備用電源 測量溫度范圍為-55 ° C至+125 ??删幊痰姆直媛蕿?12位 溫度轉(zhuǎn)換為12位數(shù)字格式最大值為750毫秒 用戶可定義的

4、非易失性溫度報警設(shè)置 應(yīng)用范圍包括恒溫控制,工業(yè)系統(tǒng),消費電子產(chǎn)品溫度計,或任何熱敏感系統(tǒng).表3.1中所示為DS18B20內(nèi)部寄存器陣列。其中的2、3字節(jié)是可設(shè)置的文都超限報警值,同一總線上的器件可以設(shè)置不同的高、低限報警數(shù)值,當(dāng)某一點的文都超限是,改點就會發(fā)出報警信號。表3.1 DS18B20內(nèi)部寄存器主控制器件對DS18B20的各種控制都是通過傳輸操作指令進行的。對ROM操作第 2 頁 共 18 頁中北大學(xué)單片機課程設(shè)計說明書的命令制記過能表如表3.2所示表 3.2 DS18B20 ROM操作指令表 3.3 DS18B20 RAM操作指令3.1.2 DS18B20數(shù)字溫度傳感器芯片引腳表3

5、.4 DS18B20的引腳3.1.3 電路如3.1圖所示為溫度采集電路,由于DS18B20是單線數(shù)據(jù)傳輸?shù)闹悄軠囟葌鞲衅?,在使用中不需要如何外圍的元件,在連接時僅需要一條口線即可實現(xiàn)單片機與DS18B20的雙向通信。所以此溫度采集電路只需將DS18B20外接一個上拉電阻,然后接在單片機的I/O接口。第 3 頁 共 18 頁中北大學(xué)單片機課程設(shè)計說明書VCC圖3.1 溫度采集電路 3.2 CPU電路CPU電路主要包括復(fù)位和晶振電路。復(fù)位電路主要是在系統(tǒng)上電時提供復(fù)位信號,直至系統(tǒng)電源穩(wěn)定后,撤銷復(fù)位信號。為可靠起見,電源穩(wěn)定后還要經(jīng)一定延時才撤銷復(fù)位信號,以防止電源開關(guān)過程中引起的抖動而影響復(fù)位

6、。本電路,主要是由一個按鍵和電容電阻組成的RC復(fù)位電路。晶振電路是由片內(nèi)振蕩電路輸入線外接石英晶體和微調(diào)電容組成,此處使用12MHZ的晶體振蕩器。3.3 電機控制電路本系統(tǒng)的電機控制電路:電動機回路是一個簡單的開關(guān)電路,主要由單片機的I/O接口接電路的輸入端,通過單片機的I/O口的電平控制三極管的通斷,來控制繼電器,從而達到控制電機的目的。3.4 顯示電路硬件顯示電路部分由四位數(shù)碼管構(gòu)成。采用的是動態(tài)掃描方式。通常將所有位的段選線相應(yīng)的并聯(lián)在一起,有一個8位的I/O口控制,形成段選線的多路復(fù)用。而各位共陽極分別有相應(yīng)的I/O口控制,實現(xiàn)各位的分時復(fù)用。段選和位選位同相驅(qū)動,不需要對每個LED數(shù)

7、碼管單獨配置鎖存和驅(qū)動電路,簡化電路。顯示部分的四位一體的數(shù)碼管用74LS04驅(qū)動,P3.3作為溫度采集信號線,P0口為顯示數(shù)據(jù)線,P2口作為位選線,動態(tài)掃描實現(xiàn)顯示溫度。4 軟件設(shè)計電路軟件設(shè)計主要分為兩部分:主程序和服務(wù)子程序,子程序包括顯示和溫度傳感器讀/寫程序。第 4 頁 共 18 頁中北大學(xué)單片機課程設(shè)計說明書溫度轉(zhuǎn)換的程序設(shè)計單片機實現(xiàn)溫度轉(zhuǎn)換讀取溫度數(shù)值程序的流程如圖4.1所示圖 4.1 溫度轉(zhuǎn)換N-S圖第 5 頁 共 18 頁4.1中北大學(xué)單片機課程設(shè)計說明書4.2 數(shù)碼管顯示電路顯示數(shù)據(jù)刷新子程序主要是對顯示緩沖器中的顯示數(shù)據(jù)驚喜刷新操作,當(dāng)最高顯示位為0時將符號位移入下一位

8、。顯示數(shù)據(jù)刷新流程圖如圖4.2所示圖4.2 顯示N-S圖第 6 頁 共 18 頁中北大學(xué)單片機課程設(shè)計說明書5 Keil及Protues仿真在Keil中完成編輯、編譯、連接、調(diào)試、仿真等整個流程。然后分別由C51及A51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對目標(biāo)文件(.ABS).ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件。在Proteus中連接電路,實現(xiàn)它的電路仿真是交互的,可視化,實現(xiàn)軟件源碼級的實時調(diào)試。圖5.1 Keil軟件中的調(diào)試圖以下各圖分別為仿真的結(jié)果圖,圖5.2是proteus軟件中的電路圖。四位數(shù)碼管

9、顯示采集到的溫度,當(dāng)溫度為負值時顯示符號“-”,當(dāng)十位和百位為零時不顯示該位。從圖中可以看出:在-20°-70°范圍內(nèi)電機停轉(zhuǎn),數(shù)碼管顯示溫度傳感器的溫度值;當(dāng)溫度大于70°或者小于-20°時電機開始轉(zhuǎn)動。第 7 頁 共 18 頁第 8 頁 共 18 頁中北大學(xué)單片機課程設(shè)計說明書圖5.2 電路仿真圖中北大學(xué)單片機課程設(shè)計說明書圖5.3 溫度采集及顯示電路第 9 頁 共 18 頁中北大學(xué)單片機課程設(shè)計說明書圖5.4 規(guī)定正范圍內(nèi)電機停轉(zhuǎn)第 10 頁 共 18 頁中北大學(xué)單片機課程設(shè)計說明書圖5.5 超出70°電機轉(zhuǎn)動第 11 頁 共 18 頁中

10、北大學(xué)單片機課程設(shè)計說明書圖5.6規(guī)定負范圍內(nèi)電機停轉(zhuǎn)第 12 頁 共 18 頁中北大學(xué)單片機課程設(shè)計說明書圖5.7 小于-20°電機轉(zhuǎn)動第 13 頁 共 18 頁中北大學(xué)單片機課程設(shè)計說明書6 結(jié)論本課程設(shè)計闡述了以AT89C51單片機為核心,使用DS18B20溫度傳感器以及4位集成式數(shù)碼管顯示溫度的數(shù)碼管顯示的溫控電動機。實現(xiàn)了通過數(shù)碼管監(jiān)測溫度,當(dāng)溫度在-20C70C00范圍之外時,直流電動機開始旋轉(zhuǎn)的要求。附錄:溫控電動機源程序/DS18B20的讀寫程序,數(shù)據(jù)腳P3.3 /溫度傳感器18B20匯編程序,采用器件默認的12位轉(zhuǎn)化 /最大轉(zhuǎn)化時間750微秒,顯示溫度-55到+12

11、5度,顯示精度 /為0.1度,顯示采用4位LED共陽顯示測溫值 /P0口為段碼輸入,P2.0P2.3為位選 /*/#include "reg51.h"#include "intrins.h" /_nop_();延時函數(shù)用#define Disdata P0 /段碼輸出口#define discan P2 /掃描口#define uchar unsigned char#define uint unsigned intsbit DQ=P33; /溫度輸入口sbit DIN=P07; /LED小數(shù)點控制uint h;uint temp;/*溫度小數(shù)部分用查表法

12、*/uchar code ditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09; /uchar code dis_712=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf; /共陽LED段碼表 "0" "1" "2" "3" "4" "5" "6" "7&q

13、uot; "8" "9" "不亮" "-"uchar code scan_con4=0xfe,0xfd,0xfb,0xf7; /列掃描控制字uchar data temp_data2=0x00,0x00; /讀出溫度暫放uchar data display5=0x00,0x00,0x00,0x00,0x00; /顯示單元數(shù)據(jù),共4個數(shù)據(jù)和一個運算暫用/*11us延時函數(shù)*/第 14 頁 共 18 頁中北大學(xué)單片機課程設(shè)計說明書void delay(uint t)for (;t>0;t-);/*顯示掃描函數(shù)*/

14、 scan()char k;for(k=0;k<4;k+) /4位LED掃描控制Disdata=dis_7displayk; /數(shù)據(jù)顯示if (k=1)DIN=0; /小數(shù)點顯示 discan=scan_conk; /位選delay(300);P2=0xff;/*DS18B20復(fù)位函數(shù)*/ ow_reset(void)char presence=1;while(presence)while(presence)DQ=1;_nop_();_nop_();/從高拉倒低DQ=0;delay(50); /550 usDQ=1;delay(6); /66 uspresence=DQ; /presen

15、ce=0 復(fù)位成功,繼續(xù)下一步 delay(45); /延時500 uspresence=DQ;DQ=1; /拉高電平/第 15 頁 共 18 頁中北大學(xué)單片機課程設(shè)計說明書/*DS18B20寫命令函數(shù)*/ /向1-WIRE 總線上寫1個字節(jié)void write_byte(uchar val)uchar i;for(i=8;i>0;i-)DQ=1;_nop_();_nop_(); /從高拉倒低DQ=0;_nop_();_nop_();_nop_();_nop_(); /5 usDQ=val&0x01; /最低位移出 delay(6); /66 usval=val/2; /右移1位

16、DQ=1;delay(1);/*DS18B20讀1字節(jié)函數(shù)*/ /從總線上取1個字節(jié)uchar read_byte(void)uchar i;uchar value=0;for(i=8;i>0;i-)DQ=1;_nop_();_nop_();value>>=1;DQ=0;_nop_();_nop_();_nop_();_nop_(); /4 usDQ=1;_nop_();_nop_();_nop_();_nop_(); /4 usif(DQ)value|=0x80;delay(6); /66 us DQ=1;return(value);/*讀出溫度函數(shù)*/ /read_tem

17、p()ow_reset(); /總線復(fù)位delay(200);write_byte(0xcc); /發(fā)命令第 16 頁 共 18 頁中北大學(xué)單片機課程設(shè)計說明書write_byte(0x44); /發(fā)轉(zhuǎn)換命令ow_reset();delay(1);write_byte(0xcc); /發(fā)命令write_byte(0xbe);temp_data0=read_byte(); /讀溫度值的第字節(jié)temp_data1=read_byte(); /讀溫度值的高字節(jié)temp=temp_data1;temp<<=8; temp=temp|temp_data0; / 兩字節(jié)合成一個整型變量。 re

18、turn temp; /返回溫度值/*溫度數(shù)據(jù)處理函數(shù)*/二進制高字節(jié)的低半字節(jié)和低字節(jié)的高半字節(jié)組成一字節(jié),這個 /字節(jié)的二進制轉(zhuǎn)換為十進制后,就是溫度值的百、十、個位值,而剩 /下的低字節(jié)的低半字節(jié)轉(zhuǎn)化成十進制后,就是溫度值的小數(shù)部分/*/ work_temp(uint tem)uchar n=0,t,r;if(tem>6348) / 溫度值正負判斷tem=65536-tem;n=1; / 負溫度求補碼,標(biāo)志位置1 display4=tem&0x0f; / 取小數(shù)部分的值display0=ditabdisplay4; / 存入小數(shù)部分顯示值display4=tem>&g

19、t;4; / 取中間八位,即整數(shù)部分的值 display3=display4/100; / 取百位數(shù)據(jù)暫存t=display3;display1=display4%100; / 取后兩位數(shù)據(jù)暫存display2=display1/10; / 取十位數(shù)據(jù)暫存r=display2;display1=display1%10;P1=0x00;/*符號位顯示判斷*/ if(!display3)display3=0x0a; /最高位為0時不顯示if(!display2)display2=0x0a; /次高位為0時不顯示第 17 頁 共 18 頁中北大學(xué)單片機課程設(shè)計說明書if(n) if(!r)display3=0x0a;display2=0x0b;else display3=0x0b; /負溫度時最高位

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論