單片機(jī)課程設(shè)計(jì)---數(shù)字溫度計(jì)的設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  單片機(jī)原理及應(yīng)用</b></p><p><b>  課程設(shè)計(jì)</b></p><p>  題 目 數(shù)字溫度計(jì)的設(shè)計(jì) </p><p>  二級(jí)學(xué)院 電子信息與電氣工程學(xué)院</p><p>  班 級(jí) </p>&

2、lt;p>  姓 名 </p><p>  學(xué) 號(hào) </p><p>  指導(dǎo)教師 </p><p>  設(shè)計(jì)時(shí)間 2011.09.05~2011.9.15 </p><p><b>  目錄</b><

3、;/p><p>  一、概述………………………………………………………………………………………1</p><p>  二、系統(tǒng)設(shè)計(jì)……………………………………………………………………………… 1</p><p>  (一)溫度計(jì)設(shè)計(jì)方案論證 ……………………………………………………………… 1 </p><p> ?。ǘ┛驁D設(shè)計(jì)…………………

4、………………………………………………………………1</p><p> ?。ㄈ┯布O(shè)計(jì)……………………………………………………………………… 2 </p><p> ?。ㄋ模┸浖O(shè)計(jì)…………………………………………………………………………………7</p><p>  三、調(diào)試 …………………………………………………………………………………… 9 </p>

5、;<p>  四、課程設(shè)計(jì)小結(jié)……………………………………………………………………… 9</p><p>  五、參考文獻(xiàn)……………………………………………………………………………… 9</p><p>  六、附件………………………………………………………………………………………10</p><p>  附錄1、電路原理………………………………………

6、………………………10</p><p>  附錄2、實(shí)拍照片………………………………………………………………10</p><p>  附錄3、元件清單………………………………………………………………11</p><p>  附錄4、程序清單………………………………………………………………12</p><p><b>  一、概述&l

7、t;/b></p><p>  生活和生產(chǎn)中,經(jīng)常用到一些測(cè)溫設(shè)備,但是傳統(tǒng)的測(cè)溫設(shè)備但是傳統(tǒng)的測(cè)溫設(shè)備具有制作成本高、硬件電路和軟件設(shè)計(jì)復(fù)雜等缺點(diǎn),基于AT89C52單片機(jī)的數(shù)字溫度計(jì)具有制作簡(jiǎn)單,成本低,度數(shù)方便,測(cè)溫范圍廣和測(cè)溫準(zhǔn)確等優(yōu)點(diǎn),應(yīng)用前景廣闊。</p><p><b>  設(shè)計(jì)參數(shù)規(guī)格設(shè)計(jì):</b></p><p>  1

8、、溫度值用LED顯示 2、測(cè)量范圍為-30 ~100 3、溫差為±0.5 </p><p><b>  二、系統(tǒng)設(shè)計(jì)</b&g

9、t;</p><p> ?。ㄒ唬囟扔?jì)設(shè)計(jì)方案論證 </p><p><b>  方案一</b></p><p>  由于本設(shè)計(jì)是測(cè)溫電路,可以使用熱敏電阻之類(lèi)的器件利用其感溫效應(yīng),進(jìn)行A/D轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測(cè)溫度顯示出來(lái),這種設(shè)計(jì)需要用到A/D轉(zhuǎn)換電路,感溫電路比較麻煩。 </p>

10、<p><b>  方案二 </b></p><p>  進(jìn)而考慮到用溫度傳感器,在單片機(jī)電路設(shè)計(jì)中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測(cè)溫度值,進(jìn)行轉(zhuǎn)換,就可以滿(mǎn)足設(shè)計(jì)要求。方法簡(jiǎn)單制作簡(jiǎn)便,故采用方案一來(lái)實(shí)現(xiàn)數(shù)字溫度計(jì)的控制。</p><p><b>  (二)

11、框圖設(shè)計(jì)</b></p><p>  根據(jù)設(shè)計(jì)要求分析,數(shù)字溫度計(jì)由STC89C52單片機(jī)、電源、顯示電路、溫度傳感器、復(fù)位電路和時(shí)鐘電路組成、系統(tǒng)框圖如圖1所示。電源給整個(gè)電路供電。顯示電路顯示溫度值,時(shí)鐘電路為STC89C52提供時(shí)鐘頻率。</p><p>  圖1 基于STC89C52單片機(jī)的數(shù)字溫度計(jì)系統(tǒng)框圖</p><p><b> 

12、?。ㄈ┯布O(shè)計(jì)</b></p><p><b>  1、最小系統(tǒng)</b></p><p><b>  (1)電源</b></p><p>  本次采用的是普通USB 5V直流電源。</p><p>  (2)單片機(jī):本次設(shè)計(jì)使用單片機(jī)芯片STC89C52</p><

13、p>  STC89C52的工作特性:</p><p><b>  主要特性: </b></p><p>  ·與MCS-51 兼容 </p><p>  ·8K字節(jié)可編程閃爍存儲(chǔ)器 </p><p>  ·壽命:1000寫(xiě)/擦循環(huán) </p><p>  

14、3;數(shù)據(jù)保留時(shí)間:10年 </p><p>  ·全靜態(tài)工作:0Hz-24Hz </p><p>  ·三級(jí)程序存儲(chǔ)器鎖定 </p><p>  ·512內(nèi)部RAM </p><p>  ·32可編程I/O線 </p><p>  ·兩個(gè)16位定時(shí)器/計(jì)數(shù)器 </

15、p><p><b>  ·5個(gè)中斷源 </b></p><p><b>  ·可編程串行通道 </b></p><p>  ·低功耗的閑置和掉電模式 </p><p>  ·片內(nèi)振蕩器和時(shí)鐘電路</p><p><b>  (3)

16、時(shí)鐘電路</b></p><p>  本次設(shè)計(jì)采用的是12M的晶振,電路圖如下圖3,兩只電容在20pF~100pF之間取值,其取值在60pF~70pF時(shí)振蕩器頻率穩(wěn)定性較高,按照一般經(jīng)驗(yàn),外接晶體時(shí)兩個(gè)電容的取值為30pF。</p><p><b>  (4)復(fù)位電路</b></p><p>  在時(shí)鐘電路工作后,只要在單片機(jī)的RS

17、T引腳上出現(xiàn)24個(gè)時(shí)鐘振蕩脈沖(2個(gè)機(jī)器周期)以上的高電平,單片機(jī)便可實(shí)現(xiàn)初始化狀態(tài)服務(wù)。為保證應(yīng)用系統(tǒng)可靠的復(fù)位在設(shè)計(jì)復(fù)位電路時(shí),通常使RST引腳保持4ms以上的高電平,只要RST保持高電平,MCS-51單片機(jī)就會(huì)循環(huán)復(fù)位;當(dāng)RST從高電平變?yōu)榈碗娖綍r(shí),MCS-51單片機(jī)就從0000H地址開(kāi)始執(zhí)行程序,在單片機(jī)復(fù)位的有效期間,ALE、PSEN 引腳輸出高電平。</p><p>  本次設(shè)計(jì)采用的是手動(dòng)復(fù)位,其電

18、路圖如下:</p><p><b>  2.接口</b></p><p>  (1)數(shù)字溫度傳感器DS18B20</p><p>  由DALLAS半導(dǎo)體公司生產(chǎn)的DS18B20型單線智能溫度傳感器,屬于新一代適配微處理器的智能溫度傳感器,可廣泛用于工業(yè)、民用、軍事等領(lǐng)域的溫度測(cè)量及控制儀器、測(cè)控系統(tǒng)和大型設(shè)備中。它具有體積小,接口方便,傳輸距

19、離遠(yuǎn)等特點(diǎn)。 </p><p>  A. DS18B20性能特點(diǎn) :</p><p>  ①獨(dú)特的單線接口方式,DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。</p><p> ?、跍y(cè)溫范圍為-55℃-+125℃,測(cè)量分辨率為0.0625℃。</p><p> ?、跠S18B20在使用中不需要任何外

20、圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)。</p><p> ?、苓m應(yīng)電壓范圍更寬,電壓范圍:3.0~5.5,在寄生電源方式下可由數(shù)據(jù)線供電。</p><p>  ⑤測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),以"一 線總線"串行傳送給CPU,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力。</p><p>  ⑥負(fù)壓特性:電源極性接反

21、時(shí),芯片不會(huì)因發(fā)熱而燒毀, 但不能正常工作。</p><p>  B. DS18B20內(nèi)部結(jié)構(gòu) </p><p>  DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM,溫度傳感器,非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL,高速暫存器。64位光刻ROM是出廠前被光刻好的,它可以看作是該DS18B20的地址序列號(hào)。</p><p>  (2) 雙向總線發(fā)送器/接收器74

22、LS245</p><p>  74LS245為三態(tài)輸出的八組總線收發(fā)器引出端符號(hào): </p><p>  A A總線端 </p><p>  B B總線端 </p><p>  /G 三態(tài)允許端(低電平有效) </p><p>  DIR 方向控制端 </p><p&g

23、t;<b>  功能表:</b></p><p>  (3)74LS07 六高壓輸出緩沖器/驅(qū)動(dòng)器</p><p>  簡(jiǎn)要說(shuō)明 54/7407 為集電極開(kāi)路輸出的六組驅(qū)動(dòng)器,其主要電特性的典型值如下:</p><p>  6ns 20ns 125m W</p><p><b>  引

24、出端符號(hào)</b></p><p><b>  1A-6A 輸入端</b></p><p><b>  1Y-6Y 輸出端</b></p><p><b>  極限值</b></p><p>  電源電壓……………………7V</p><p> 

25、 輸入電壓……………………5V</p><p>  輸出截至態(tài)電壓 ………30V</p><p><b> ?。?)顯示電路</b></p><p>  內(nèi)部的四個(gè)數(shù)碼管共用a~dp這8根數(shù)據(jù)線,為人們的使用提供了方便,因?yàn)槔锩嬗兴膫€(gè)數(shù)碼管,所以它有四個(gè)公共端,加上a~dp,共有12個(gè)引腳,下面便是一個(gè)共陽(yáng)結(jié)構(gòu)圖。</p>&

26、lt;p>  管腳順序:從數(shù)碼管正面看,以第一腳為起點(diǎn),管腳的順序是逆時(shí)針?lè)较蚺帕械摹?2-9-8-6為公共腳,A-11,B-7,C-4,D-2,E-1,F(xiàn)-10,G-5,DP-3。</p><p><b> ?。ㄋ模┸浖O(shè)計(jì)</b></p><p>  主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理DS18B20測(cè)量的當(dāng)前溫度值,溫度測(cè)量每1s進(jìn)行一次,這樣

27、就可以在1s之內(nèi)測(cè)量一次被測(cè)溫度,其程序流程圖如圖11所示。</p><p><b>  N</b></p><p><b>  Y</b></p><p><b>  Y</b></p><p><b>  N</b></p><p&

28、gt;  讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時(shí)需要進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不能進(jìn)行溫度數(shù)據(jù)的改寫(xiě),其程序流程圖如圖8所示。</p><p><b>  Y</b></p><p><b>  N</b></p><p><b>  N</b></p><p&g

29、t;<b>  Y</b></p><p>  溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開(kāi)始命令,采用12位分辨率轉(zhuǎn)換時(shí)間為750ms.程序設(shè)計(jì)中采用1s顯示程序延時(shí)等待轉(zhuǎn)換的完成。計(jì)算溫度子程序?qū)AM 中讀取值進(jìn)行BCD碼轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,顯示數(shù)據(jù)刷新子程序主要是對(duì)顯示緩沖器中的顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高顯示位為0時(shí)將符號(hào)顯示位移入下一位。</p><p&

30、gt;<b>  三、調(diào)試</b></p><p>  此設(shè)計(jì)軟件部分用uvision4編寫(xiě)與編譯源程序,并生成HEX文件,編譯完成后用Proteus仿真,仿真完成后將HEX文件燒制到單片機(jī)中,然后就是對(duì)硬件電路的檢查,排除硬件電路故障包括設(shè)計(jì)錯(cuò)誤和工藝連接錯(cuò)誤,檢查各芯片是否有短路或斷路故障。先將單片機(jī)取下,對(duì)電路板進(jìn)行通電檢查,通過(guò)觀察是否有異常然后用萬(wàn)用表測(cè)試個(gè)電源電壓,若這些都沒(méi)有問(wèn)

31、題,則接上仿真機(jī)進(jìn)行聯(lián)機(jī)調(diào)試觀察各接口線路是否正常。</p><p><b>  四、課程設(shè)計(jì)小結(jié)</b></p><p>  近兩周的單片機(jī)課程設(shè)計(jì),終于完成了我的數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì),雖然途中還遇到不少困難,但最終還是把實(shí)物做出來(lái),從這次的課程設(shè)計(jì)中,我真真正正的意識(shí)到,在以后的學(xué)習(xí)中,要理論聯(lián)系實(shí)際,把我們所學(xué)的理論運(yùn)用到實(shí)際當(dāng)中,學(xué)習(xí)單機(jī)片機(jī)更是如此,程序只有在

32、經(jīng)常的寫(xiě)與讀的過(guò)程中才能提高,這就是我在這次課程設(shè)計(jì)中的最大收獲。通過(guò)這次對(duì)數(shù)字溫度計(jì)的設(shè)計(jì)與制作,讓我了解了設(shè)計(jì)電路的程序,也讓我了解了關(guān)于數(shù)字溫度計(jì)的原理與設(shè)計(jì)理念,要設(shè)計(jì)一個(gè)電路總要先用仿真成功之后才實(shí)際接線的。但是最后的成品卻不一定與仿真時(shí)完全一樣,因?yàn)?,在?shí)際接線中有著各種各樣的條件制約著。而且,在仿真中無(wú)法成功的電路接法,在實(shí)際中因?yàn)樾酒旧淼奶匦远軌虺晒?。所以,在設(shè)計(jì)時(shí)應(yīng)考慮兩者的差異,從中找出最適合的設(shè)計(jì)方法。<

33、/p><p><b>  五、參考文獻(xiàn)</b></p><p>  [1].范力旻,單片機(jī)原理及應(yīng)用技術(shù),電子工業(yè)出版社,2010.</p><p>  [2].楊居義,單片機(jī)課程設(shè)計(jì)指導(dǎo),清華大學(xué)出版社,2009.</p><p>  [3].沙占友,孟志永,王彥朋,單片機(jī)外圍電路設(shè)計(jì),電子工業(yè)出版社,2006.</

34、p><p>  [6].丁元杰,單片機(jī)微機(jī)原理及應(yīng)用技[M],機(jī)械工業(yè)出版社,2001.</p><p><b>  六.附錄</b></p><p><b>  1.硬件原理圖</b></p><p><b>  2.實(shí)拍照片</b></p><p>&l

35、t;b>  3.元件清單</b></p><p><b>  4.程序清單</b></p><p>  #include"reg51.h"</p><p>  #include"intrins.h"</p><p>  #defineDisdataP1<

36、/p><p>  #definediscanP3</p><p>  #defineuchar unsigned char</p><p>  #define uint unsigned int</p><p>  sbitDQ = P3^7;</p><p>  sbitDIN = P1^7;</p>

37、;<p><b>  uinth;</b></p><p>  ucharcode ditab[16] = {0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};</p><p>  uchar code dis_7[12] = {0xC0

38、,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0xbf};</p><p>  uchar code scan_con[4] = {0xfe,0xfd,0xfb,0xf7};</p><p>  uchar data temp_data[2] = {0x00,0x00};</p><p>  uchar

39、data display[5] = {0x00,0x00,0x00,0x00,0x00};</p><p>  void delay(uint t)</p><p><b>  {</b></p><p>  for(;t>0;t--);</p><p><b>  }</b></p&g

40、t;<p><b>  scan()</b></p><p><b>  {</b></p><p><b>  char k;</b></p><p>  for(k=0;k<4;k++)</p><p><b>  {</b><

41、;/p><p>  Disdata = dis_7[display[k]];</p><p>  if(k == 1) DIN = 0;</p><p>  discan = ~scan_con[k];</p><p>  delay(90);</p><p>  discan = 0x00;</p><

42、;p><b>  }</b></p><p><b>  }</b></p><p>  ow_reset(void)</p><p><b>  {</b></p><p>  char presence = 1;</p><p>  while

43、(presence)</p><p><b>  {</b></p><p>  while(presence)</p><p><b>  {</b></p><p>  DQ = 1;_nop_();_nop_();</p><p><b>  DQ = 0;&

44、lt;/b></p><p>  delay(50);</p><p><b>  DQ = 1;</b></p><p><b>  delay(6);</b></p><p>  presence = DQ;</p><p><b>  }</b&g

45、t;</p><p>  delay(45);</p><p>  presence = ~DQ;</p><p><b>  }</b></p><p><b>  DQ = 1;</b></p><p><b>  }</b></p>

46、<p>  void write_byte(uchar val)</p><p><b>  {</b></p><p><b>  uchar i;</b></p><p>  for(i=8;i>0;i--)</p><p><b>  {</b><

47、/p><p>  DQ = 1;_nop_();_nop_();</p><p>  DQ = 0;_nop_();_nop_();_nop_();_nop_();_nop_();</p><p>  DQ = val & 0x01;</p><p><b>  delay(6);</b></p>&l

48、t;p>  val = val>>1;</p><p><b>  }</b></p><p><b>  DQ = 1;</b></p><p><b>  delay(1);</b></p><p><b>  }</b></p

49、><p>  uchar read_byte(void)</p><p><b>  {</b></p><p><b>  uchar i;</b></p><p>  uchar value = 0;</p><p>  for(i=8;i>0;i--)</p&g

50、t;<p><b>  {</b></p><p>  DQ=1;_nop_();_nop_();</p><p>  value >>= 1;</p><p>  DQ = 0;_nop_();_nop_();_nop_();_nop_();</p><p>  DQ = 1;_nop_();

51、_nop_();_nop_();_nop_();</p><p>  if(DQ)value|=0x80;</p><p><b>  delay(6);</b></p><p><b>  }</b></p><p><b>  DQ = 1;</b></p>

52、<p>  return(value);</p><p><b>  }</b></p><p>  read_temp()</p><p><b>  {</b></p><p>  ow_reset();</p><p>  write_byte(0xCC);

53、</p><p>  write_byte(0xBE);</p><p>  temp_data[0] = read_byte();</p><p>  temp_data[1] = read_byte();</p><p>  ow_reset();</p><p>  write_byte(0xCC);</p

54、><p>  write_byte(0x44);</p><p><b>  }</b></p><p>  work_temp()</p><p><b>  {</b></p><p>  uchar n = 0;</p><p>  if (temp

55、_data[1]>127)</p><p><b>  {</b></p><p>  temp_data[1] = (255 - temp_data[1]);</p><p>  temp_data[0] = (256 - temp_data[0]);</p><p><b>  n=1;</b&

56、gt;</p><p><b>  }</b></p><p>  display[4] = temp_data[0] & 0x0f;</p><p>  display[0] = ditab[display[4]];</p><p>  display[4] = ((temp_data[0] & 0xf

57、0)>>4) | ((temp_data[1] & 0x0f)<<4);</p><p>  display[3] = display[4]/100;</p><p>  display[1] = display[4]%100;</p><p>  display[2] = display[1]/10;</p><

58、p>  display[1] = display[1]%10;</p><p>  if(!display[3])</p><p><b>  {</b></p><p>  display[3] = 0x0A;</p><p>  if(!display[2]) display[2] = 0x0A;</

59、p><p><b>  }</b></p><p>  if(n)display[3] = 0x0B;</p><p><b>  }</b></p><p><b>  main()</b></p><p><b>  {</b>&

60、lt;/p><p>  Disdata = 0xff;</p><p>  discan = 0xff;</p><p>  for(h=0;h<4;h++)</p><p>  display[h] = 8;</p><p>  ow_reset();</p><p>  write_byt

61、e(0xCC);</p><p>  write_byte(0x44);</p><p>  for(h=0;h<250;h++)</p><p><b>  scan();</b></p><p><b>  while(1)</b></p><p><b>

62、;  {</b></p><p>  read_temp();</p><p>  work_temp();</p><p>  for(h=0;h<200;h++)</p><p><b>  scan();</b></p><p><b>  }</b>

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論