數(shù)電課程設計-溫度計實驗報告_第1頁
已閱讀1頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  一、設計項目名稱</b></p><p>  溫度采集顯示系統(tǒng)硬件與軟件設計</p><p><b>  設計內容及要求</b></p><p>  根據(jù)設計要求,完成對單路溫度進行測量,并用數(shù)碼管顯示當前溫度值系統(tǒng)硬件設計,并用電子CAD軟件繪制出原理圖,編輯、繪制出PCB印制版。</

2、p><p><b>  要求:</b></p><p> ?。?)原理圖中元件電氣圖形符號符合國家標準;</p><p>  整體布局合理,注標規(guī)范、明確、美觀,不產(chǎn)生歧義。</p><p>  列出完整的元件清單(標號、型號及大小、封裝形式、數(shù)量)</p><p>  (4) 圖紙幅面為A4。<

3、;/p><p>  布局、布線規(guī)范合理,滿足電磁兼容性要求。</p><p>  在元件面的絲印層上,給出標號、型號或大小。所有注釋信息(包括標號、型號及說明性文字)要規(guī)范、明確,不產(chǎn)生歧義。</p><p>  2.編寫并調試驅動程序。</p><p><b>  功能要求:</b></p><p>

4、;  (1)溫度范圍0-100℃。</p><p>  (2)溫度分辨率±1℃。</p><p> ?。?)選擇合適的溫度傳感器。</p><p><b>  3.撰寫設計報告。</b></p><p>  提示:可借助“單片機實驗電路板”實現(xiàn)或驗證軟件、硬件系統(tǒng)的可靠性。</p><p&g

5、t;<b>  溫度傳感器</b></p><p>  摘要:溫度的檢測與控制是工業(yè)生產(chǎn)過程中比較典型的應用之一,隨著傳感器在生產(chǎn)和生活中的更加廣泛的應用,利用新型單總線式數(shù)字溫度傳感器實現(xiàn)對溫度的測試與控制得到更快的開發(fā),隨著時代的進步和發(fā)展,單片機技術已經(jīng)普及到我們生活,工作,科研,各個領域。一種數(shù)字式溫度計以數(shù)字溫度傳感器DS18B20作感溫元件,它以單總線的連接方式,使電路大大的簡化

6、。傳統(tǒng)的溫度檢測大多以熱敏電阻為傳感器,這類傳感器可靠性差,測量溫度準確率低且電路復雜。因此,本溫度計擺脫了傳統(tǒng)的溫度測量方法,利用單片機STC89C52對傳感器進行控制。這樣易于智能化控制。</p><p>  關鍵詞:數(shù)字測溫;溫度傳感器DS18B20;單片機STC89C52;</p><p><b>  一.概述</b></p><p>

7、  傳感器從功能上可分為雷達傳感器、電阻式傳感器、電阻應變式傳感器、壓阻式傳感器、熱電阻傳感器、溫度傳感器、光敏傳感器、濕度傳感器、生物傳感器、位移傳感器、壓力傳感器、超聲波測距離傳感器等,本文所研究的是溫度傳感器。</p><p>  溫度傳感器是最早開發(fā),應用最廣泛的一類傳感器。溫度傳感器是利用物質各種物理性質隨溫度變化的規(guī)律把溫度轉換為電量的傳感器。這些呈現(xiàn)規(guī)律性變化的物理性質主要有半導體。溫度傳感器是溫度

8、測量儀表的核心部分,品種繁多。</p><p>  隨著科學技術的發(fā)展,測溫系統(tǒng)已經(jīng)被廣泛應用于社會生產(chǎn)、生活的各個領域,在工業(yè)、環(huán)境監(jiān)測、醫(yī)療、家庭多方面均有應用。從而使得現(xiàn)代溫度傳感器的發(fā)展。微型化、集成化、數(shù)字化正成為發(fā)展的一個重要方向。</p><p><b>  二.硬件設計</b></p><p><b>  1.DS18

9、B20</b></p><p>  DS1820 單線數(shù)字溫度計特性 </p><p>  ? 獨特的單線接口僅需一個端口引腳進行通訊 </p><p>  ? 簡單的多點分布應用 </p><p><b>  ? 無需外部器件 </b></p><p>  ? 可通過數(shù)據(jù)線供電 &l

10、t;/p><p><b>  ? 零待機功耗 </b></p><p>  ? 測溫范圍-55~+125℃,以 0.5℃遞增 </p><p>  ? 溫度以 9 位數(shù)字量讀出 </p><p>  ? 溫度數(shù)字量轉換時間 200ms(典型值) </p><p>  ? 用戶可定義的非易失性溫度報警設

11、置 </p><p>  ? 報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件 </p><p>  ? 應用包括溫度控制、工業(yè)系統(tǒng)、消費品、溫度計或任何熱感測系統(tǒng) </p><p>  DS1820溫度傳感器外觀圖(a)和引腳圖(b)</p><p><b> ?、僖_1接地</b></p>

12、<p> ?、谝_2數(shù)字信號輸入/輸出</p><p> ?、垡_3接高電平5V高電平 </p><p>  (a) (b)</p><p>  2.STC89C52</p><p>  STC89C52是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲器。

13、在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。 具有以下標準功能: 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗定時器,內置4KB EEPROM,MAX810復位電路,三個16 位 定時器/計數(shù)器,一個6向量2級中斷結構,全雙工串行口。另外 STC89X52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下

14、,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。最高運作頻率35Mhz,6T/12T可選。</p><p>  圖2-2-1 89C52管腳圖</p><p><b>  3. 晶振電路</b></p><p>  為了產(chǎn)生時鐘

15、信號,在8052 內部設置了一個反相放大器,XTAL1 是片內振蕩器反相放大器的輸入端,XTAL2 是片內振蕩器反相放大器的輸出端,也是內部時鐘發(fā)生器的輸入端。當使用自激振蕩方式時,XTAL1 和XTAL2 外接石英晶振,使內部振蕩器按照石英晶振的頻率振蕩,就產(chǎn)生時鐘信號。本系統(tǒng)用12MHZ的石英晶振,接STC89C52的18和19腳,具體電路如下圖所示。</p><p>  圖2-3-1 單片機的晶振電路<

16、;/p><p><b>  4.復位電路</b></p><p>  在振蕩器運行時,有兩個機器周期(24 個振蕩周期)以上的高電平出現(xiàn)在此引腳時,將使單片機復位,只要這個腳保持高電平,52 芯片便循環(huán)復位。復位后P0-P3 口均置1 引腳表現(xiàn)為高電平,程序計數(shù)器和特殊功能寄存器SFR 全部清零。當復位腳由高電平變?yōu)榈碗娖綍r,芯片為ROM 的0000H 處開始運行程序。該

17、芯片的復位腳為9腳,所以復位電路接AT89S52的9腳,具體電路如下圖所示。</p><p>  圖2-4-1 單片機的復位電路</p><p><b>  5.顯示電路</b></p><p>  圖2-5-1 整體電路圖</p><p>  顯示電路采用共陽數(shù)碼管,數(shù)碼管的A~DP端接單片機的P0.0~P0.7端,1

18、234端通過三極管接單片機的P1.0~P1.3端,三極管實現(xiàn)放大作用。</p><p><b>  6.電源</b></p><p>  本系統(tǒng)采用5v電源。</p><p><b>  三.軟件設計</b></p><p>  #include "reg52.h"</p&

19、gt;<p>  sbit ds=P3^7;</p><p><b>  bit flag;</b></p><p>  unsigned char code table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};</p><p>  unsigned char

20、 code wtable[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};</p><p>  unsigned char tempdate[4]={0XFF,0XFF,0XFF,0XFF};</p><p>  void DelayUs2x(unsigned char t);</p><p>  void DelayMs(u

21、nsigned char t);</p><p>  bit Init(void);</p><p>  unsigned char tempreadbyte(void);</p><p>  void tempwritebyte(unsigned char dat);</p><p>  unsigned int tempread(void

22、);</p><p>  void Display(unsigned char wei,unsigned char num);</p><p>  void Init_dingshiqi(void);</p><p>  void main()</p><p><b>  {</b></p><p&g

23、t;  unsigned int temph,templ,temp;</p><p>  Init_dingshiqi();</p><p>  while (1) </p><p><b>  {</b></p><p>  if(flag==1)</p><p><b>

24、;  {</b></p><p><b>  flag=0;</b></p><p>  temp=tempread();</p><p>  temph=temp*0.0625;</p><p>  templ=temp&0x0f;</p><p>  templ=templ

25、*6/10;</p><p>  if((temph%100/10)==0)</p><p>  tempdate[0]=0Xff;</p><p><b>  else</b></p><p>  tempdate[0]=table[(temph%100)/10]; </p><p>  tem

26、pdate[1]=table[(temph%100)%10]&0x7f; </p><p>  tempdate[2]=table[templ];</p><p>  tempdate[3]=0xc6; </p><p><b>  }</b></p><p><b>  }</b><

27、/p><p><b>  }</b></p><p>  void DelayUs2x(unsigned char t)</p><p><b>  { </b></p><p>  while(--t);</p><p><b>  }</b><

28、/p><p>  void DelayMs(unsigned char t)</p><p><b>  {</b></p><p>  while(t--)</p><p><b>  {</b></p><p>  DelayUs2x(245);</p><

29、;p>  DelayUs2x(245);</p><p><b>  }</b></p><p><b>  }</b></p><p>  bit Init(void)</p><p><b>  {</b></p><p>  bit dat=

30、0;</p><p>  ds = 1; </p><p>  DelayUs2x(5); </p><p>  ds = 0; </p><p>  DelayUs2x(200); </p><p>  DelayUs2x(200);</p><p>  ds = 1;

31、 </p><p>  DelayUs2x(50); </p><p>  dat=ds; </p><p>  DelayUs2x(25); </p><p>  return dat;</p><p><b>  }</b></p><p>  un

32、signed char tempreadbyte(void)</p><p><b>  {</b></p><p>  unsigned char i=0;</p><p>  unsigned char dat = 0;</p><p>  for (i=8;i>0;i--)</p><p&

33、gt;<b>  {</b></p><p><b>  ds = 0; </b></p><p><b>  dat>>=1;</b></p><p><b>  ds = 1;</b></p><p><b>  if(ds)&l

34、t;/b></p><p>  dat|=0x80;</p><p>  DelayUs2x(25);</p><p><b>  }</b></p><p>  return(dat);</p><p><b>  }</b></p><p>

35、  void tempwritebyte(unsigned char dat)</p><p><b>  {</b></p><p>  unsigned char i=0;</p><p>  for (i=8; i>0; i--)</p><p><b>  {</b></p>

36、;<p><b>  ds = 0;</b></p><p>  ds = dat&0x01;</p><p>  DelayUs2x(25);</p><p><b>  ds = 1;</b></p><p><b>  dat>>=1;</b&

37、gt;</p><p><b>  }</b></p><p>  DelayUs2x(25);</p><p><b>  }</b></p><p>  unsigned int tempread(void)</p><p><b>  {</b>&

38、lt;/p><p>  unsigned char a=0;</p><p>  unsigned int b=0;</p><p>  unsigned int t=0;</p><p><b>  Init();</b></p><p>  tempwritebyte(0xCC); </p&

39、gt;<p>  tempwritebyte(0x44); </p><p>  DelayMs(10);</p><p><b>  Init();</b></p><p>  tempwritebyte(0xCC); </p><p>  tempwritebyte(0xBE); </p>

40、<p>  a=tempreadbyte(); </p><p>  b=tempreadbyte(); </p><p><b>  b<<=8;</b></p><p><b>  t=a+b;</b></p><p>  return(t);</p>

41、<p><b>  }</b></p><p>  void Display(unsigned char wei,unsigned char num)</p><p><b>  {</b></p><p>  static unsigned char i=0;</p><p>  P2

42、=0xff; </p><p>  P0=wtable[i+wei]; </p><p>  P2=tempdate[i]; </p><p><b>  i++;</b></p><p>  if(i==num)</p><p><b>  i=0;</b></p&

43、gt;<p><b>  }</b></p><p>  void Init_dingshiqi(void)</p><p><b>  {</b></p><p>  TMOD |= 0x01; </p><p>  EA=1; </p>

44、<p>  ET0=1; </p><p>  TR0=1; </p><p><b>  }</b></p><p>  void zhongduan(void) interrupt 1 </p><p><b>  {</b></p>

45、<p>  static unsigned int num;</p><p>  TH0=(65536-2000)/256;</p><p>  TL0=(65536-2000)%256;</p><p>  Display(0,4); </p><p><b>  num++;</b><

46、/p><p>  if(num==300) </p><p><b>  {</b></p><p><b>  num=0;</b></p><p><b>  flag=1; </b></p><p><b>  }</b&g

47、t;</p><p><b>  }</b></p><p><b>  四.總結</b></p><p>  課程設計體會課程設計體會</p><p>  這門課程設計即將結束,在這次制作過程中,可以說是充滿挑戰(zhàn)也有驚喜,在充滿困惑的同時也多些了解,雖然時間不是很長但過程確實值得回味,每一個細節(jié)我

48、們都親歷而為,也因此印象深刻。在學習或實踐中我們或多或少掌握了一些知識,有了一些體會和感受。當然我也認識到了自己學習中的不足,看到了自己在運用知識方面欠缺。</p><p>  經(jīng)過將兩周的單片機課程設計,終于完成了我們的數(shù)字溫度計的設計,這些日子是我大學生活里充實的生活,看著自己的勞動成果,雖然沒有完全達到設計要求,但從心底里說,還是高興的,畢竟這次設計把實物都做了出來,,心里有種說不出的感覺。畢竟自己的努力還

49、算有所回報,我為自己的努力感到自豪。高興之余不得不深思呀! </p><p>  在本次設計的過程中,我發(fā)現(xiàn)很多的問題,雖然以前還做過這樣的設計但這次設計真的讓我長進了很多,單片機課程設計重點就在于軟件算法的設計,需要有很巧妙的程序算法,雖然以前寫過幾次程序,但我覺的寫好一個程序并不是一件簡單的事,舉個例子,以前寫的那幾次,數(shù)據(jù)加減時,我用的都是BCD碼,這一次,我全部用的都是16進制的數(shù)直接加減,顯示處

50、理時在用對不同的位,求商或求余,感覺效果比較好。還有時序的問題,通過這次的設計我明白了時序才真正是數(shù)字芯片的靈魂,所有的程序我們都可以通過對其時序的理解來實現(xiàn)對其操作,同時體會到了單總線結構的魅力。 </p><p>  從這次的課程設計中,我真真正正的意識到,在以后的學習中,要理論聯(lián)系實際,把我們所學的理論知識用到實際當中,學習單機片機更是如此,程序只有在經(jīng)常的寫與讀的過程中才能提高,這就是我在這次課程設

溫馨提示

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

評論

0/150

提交評論