2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目 錄</b></p><p>  第一章 概述..........................................1</p><p>  1.1設(shè)計(jì)任務(wù)............................. .........1</p><p>  1.2意義及價(jià)值..............

2、............... ........1</p><p>  第二章 硬件設(shè)計(jì).......................................2 </p><p>  2.1 單片機(jī)最小系統(tǒng)設(shè)計(jì).............................2</p><p>  2.2 AD590集成溫度傳感器簡介...............

3、............3</p><p>  2.3 A/D轉(zhuǎn)換器的設(shè)計(jì)................................4</p><p>  2.3 溫度檢測電路...................................4</p><p>  2.4 系統(tǒng)硬件電路原理圖設(shè)計(jì).........................5</

4、p><p>  第三章 系統(tǒng)軟件設(shè)計(jì)..................................6</p><p>  3.1 主模塊.........................................7</p><p>  3.2 中斷服務(wù).......................................7</p>&l

5、t;p>  3.3 輔助模塊.......................................7</p><p>  3.4 仿真調(diào)試.......................................7</p><p>  第四章 畢業(yè)設(shè)計(jì)總結(jié).................................. 8</p><p>  

6、參考文獻(xiàn)...............................................9</p><p><b>  概述:</b></p><p><b>  1.設(shè)計(jì)任務(wù)</b></p><p>  利用單片機(jī)對被控對象進(jìn)行溫度控制,其范圍在 -55℃~150℃,控制精度0.1℃;有四位數(shù)碼顯示器顯示當(dāng)

7、前溫以及設(shè)定溫(在設(shè)定溫度時(shí));有鍵盤(四個(gè)按鍵)能對設(shè)定溫度進(jìn)行修改,精度0.5℃。2. 意義以及價(jià)值</p><p>  電加熱恒溫控制器在醫(yī)療、工業(yè)生產(chǎn)、食品加工和農(nóng)業(yè)新科技等關(guān)鍵領(lǐng)域有著重要作用,如在醫(yī)療中的恒溫培養(yǎng)皿、樣本保存器,在工業(yè)生產(chǎn)中的鍋爐溫度控制,食品加工中的發(fā)酵溫控制,農(nóng)業(yè)生產(chǎn)的溫室大棚等等都有它的身影,;單片機(jī)和集成電路低廉的價(jià)格使其擁有市場主導(dǎo)地位。</p><p&

8、gt;  一、單片機(jī)89C2051簡介</p><p>  AT89C2051(以下簡稱2051)是一種低功耗、高性能的8位CMOS微控制器芯片,片內(nèi)帶2KB的快閃可編程及可擦除只讀存儲器(FPEROM)。它于MCS-51指令系統(tǒng)兼容,片內(nèi)FPEROM允許對程序存儲器在線重新編程,也可以用常規(guī)的EPROM編程器編程。ATMEL的2051將具有多種功能的8位CPU與FPEROM結(jié)合在同一芯片上,為很多嵌入式控制應(yīng)

9、用提供了高度靈活且價(jià)格適宜的方案。2051還增加了在零頻下工作的靜態(tài)邏輯方式及兩種軟件可選的省電模式。在其中,在閑置模式下,CPU停止工作,但RAM、定時(shí)器、計(jì)數(shù)器、串行口和終端系統(tǒng)仍在工作。在掉電模式下,只保存RAM的內(nèi)容,振蕩器停振,關(guān)閉芯片的所有其它功能,直到下一次硬件復(fù)位為止。</p><p>  89C2051主要性能如下:1.與MCS-51產(chǎn)品兼容。2.2KB的在線可重復(fù)編程快閃存儲器,壽命可

10、達(dá)1000次寫/擦除周期。3.寬工作電壓范圍為2.7V~6V 。4.全靜態(tài)工作方式:0Hz~24Hz。5.兩級程序存儲加密。6.128*8位SRAM。7.15條可編程I/O線。8.2個(gè)16位定時(shí)器/計(jì)數(shù)器。9.5個(gè)中斷電源。10.可編程串行通道。11.可直接驅(qū)動LED。12.有片內(nèi)精密模擬比較器。13.低功耗的閑置與掉電模式。14.軟件設(shè)置睡眠和喚醒功能。15.可編程UARL通道。1

11、6.兩個(gè)16位可編程定時(shí)/計(jì)數(shù)器。</p><p>  二、AD590集成溫度傳感器簡介</p><p>  主要指標(biāo) (1)測溫范圍:-55~+150V。</p><p>  (2)輸出電流IT與絕對溫度T成正比:I= αT(uA),其中α=1uA/K,+25℃(298.2k)時(shí)IT =298.2MA。 </p><p> ?。?)線

12、性誤差±0.3℃。 </p><p> ?。?)電源電壓:4-30V。</p><p>  三、A/D轉(zhuǎn)換器的設(shè)計(jì)。</p><p>  利用比較器、定時(shí)器測量電容的充電時(shí)間。</p><p>  Up=R2 E/(R1+R2)、Cduc/dt=IT、Uc =Tt/C,當(dāng)Up=Uc時(shí)Up=IT /C* tT,<

13、/p><p>  tT=Cup/αT。</p><p><b>  二、硬件設(shè)計(jì)。</b></p><p>  1、顯示:8位字形口,4位位置口。</p><p>  2、鍵盤:+、-、set(設(shè)置鍵)、esc(取消鍵)。</p><p>  3、測溫電路:3條I/O腳(P1.0、P1.1、P3.6)

14、。</p><p>  4、熱絲驅(qū)動:1 I/O腳。</p><p>  5、串行I/O擴(kuò)展:2 I/O腳</p><p>  2.1溫度檢測電路:</p><p>  2.2軟件流程圖設(shè)計(jì)</p><p><b>  主程序:</b></p><p><b> 

15、 中斷服務(wù):</b></p><p><b>  鍵盤處理:</b></p><p><b>  鍵盤掃描:</b></p><p>  2.4 系統(tǒng)硬件電路原理圖設(shè)計(jì)</p><p>  2.5 系統(tǒng)軟件設(shè)計(jì)</p><p>  /* 單片機(jī)恒溫

16、控制程序</p><p> ?。?)單片機(jī)型號89C2051,時(shí)鐘頻率12 MHz</p><p>  (2)P3口作為字型口</p><p>  P3.0~P3.7(除P3.6)對應(yīng)七段LED字段a~g,低電平亮;</p><p>  2051內(nèi)部模擬比較器輸出經(jīng)P3.6腳輸入。</p><p> ?。?)P1口的使

17、用:</p><p>  P1.0~P1.1為內(nèi)部模擬比較器輸入腳;</p><p>  P1.2為鍵盤輸入腳;</p><p>  P1.3為加熱控制輸出腳;</p><p>  P1.4~P1.7為顯示/鍵盤掃描輸出線,對應(yīng)#0~#3位置,低電平有效;</p><p>  (4)利用T0作為A/D轉(zhuǎn)換定時(shí)器(單位1

18、us )。</p><p> ?。?)利用T1作為5ms鍵盤/顯示掃描定時(shí)器 。</p><p><b>  */</b></p><p>  #include <Reg51.h></p><p>  #include <intrins.h></p><p>  #defi

19、ne uchar unsigned char</p><p>  #define uint unsigned int</p><p>  #define TC1 (-5000) /*T1 5ms時(shí)間常數(shù)*/</p><p>  #define STFH 100 /*閃爍周期500ms,單位5ms*/</p&g

20、t;<p>  #define STC 200 /*采樣1s定時(shí)常數(shù),單位5ms*/</p><p>  #define KTC1 13 /*重發(fā)鍵延時(shí),單位20ms*/</p><p>  #define KTC2 8 /*重發(fā)鍵周期,單位20ms*/</p><

21、;p>  #define KSET 1 /*SET鍵值*/</p><p>  #define KINC 2 /*+鍵值*/</p><p>  #define KDEC 3 /*-鍵值*/</p><p>  #define KESC 4

22、 /*ESC鍵值*/</p><p>  #define FSPC 0xff /*空字型*/</p><p>  #define FNGS 0xbf /*負(fù)號字型*/</p><p>  #define TUP 1300 /*設(shè)定溫上限,單位0.1℃*/</p>&l

23、t;p>  #define TLOW -300 /*設(shè)定溫下限,單位0.1℃*/</p><p>  #define TDA 3 /*溫度控制死區(qū),單位0.1℃*/</p><p>  const float CVp=2e+6; /*計(jì)算常數(shù)*/</p><p>  sbit AI0

24、=P1^0; /*比較器+輸入腳*/</p><p>  sbit AI1=P1^1; /*比較器-輸入腳*/</p><p>  sbit KI=P1^2; /*鍵盤輸入腳*/</p><p>  sbit HT=P1^3; /*加熱輸

25、出腳*/</p><p>  sbit CMP=P3^6; /*比較器輸出腳*/</p><p>  uchar dbuf[4]; /*顯示緩沖區(qū)*/</p><p>  uchar key; /*鍵值*/</p><p>  bit DT

26、C,STF; /*當(dāng)前溫度顯示、采樣時(shí)間到標(biāo)志*/</p><p>  void fresh(int,uchar,uchar*); /*顯示刷新函數(shù)*/</p><p>  void thermost(int,int); /*恒溫控制函數(shù)*/</p><p>  int kbfun(uchar,int *);

27、 /*鍵盤處理函數(shù)*/</p><p><b>  /*主函數(shù)*/</b></p><p><b>  main()</b></p><p>  {uint tp; /*電容C2充電時(shí)間*/</p><p>  int tem,stem; /*當(dāng)

28、前溫度、設(shè)定溫度*/</p><p>  TMOD=0x11; /*定時(shí)器1工作在定時(shí)方式、16位計(jì)數(shù) 、內(nèi)啟動 */</p><p>  TH1=TC1>>8; /*裝入定時(shí)器1時(shí)常*/</p><p><b>  TL1=TC1;</b></p><p>  

29、AI1=0; /*關(guān)閉C2充電*/</p><p>  key=0; /*清鍵值*/</p><p>  DTC=1; /*置當(dāng)前溫度顯示態(tài)*/</p><p>  STF=1; /*置采樣時(shí)間到標(biāo)志*/</p><p&

30、gt;  stem=250; /*設(shè)定溫初值25℃(單位0.1℃)*/</p><p>  fresh(0,4,dbuf); /*顯示0.0*/</p><p>  IE=0x88; /*開中斷,允許定時(shí)器1請求中斷*/</p><p>  TR1=1; /*啟動定時(shí)器

31、1*/</p><p>  while(1) /*工作循環(huán)*/</p><p>  {if(_testbit_(STF)) /*若采樣時(shí)間到*/</p><p>  {TH0=0; /*清T0計(jì)數(shù)器*/</p><p><b>  TL0=0;</b><

32、/p><p>  AI1=1; /*開始C2充電*/</p><p>  TR0=1; /*開始T0計(jì)時(shí)*/</p><p>  while(CMP); /*等待AI1≥AI0*/</p><p>  TR0=0; /*停止T0計(jì)時(shí)*/</

33、p><p>  AI1=0; /*關(guān)閉C2充電*/</p><p>  tp=TH0*256+TL0; /*讀取T0計(jì)數(shù)值*/</p><p>  /*計(jì)算當(dāng)前溫度值*/</p><p>  tem=(CVp/tp-273.2)*10;</p><p>  if(DTC)

34、 /*顯示當(dāng)前溫度*/</p><p>  fresh(tem,4,dbuf);</p><p>  thermost(stem,tem); /* 恒溫控制*/</p><p><b>  }</b></p><p>  if(key) /*若按鍵有效*/</p>

35、<p>  {if(kbfun(key,&stem)) /*鍵盤處理*/</p><p>  fresh(tem,4,dbuf);</p><p><b>  key=0;</b></p><p><b>  }</b></p><p>  } //while</p>

36、<p>  } //main</p><p>  /*恒溫控制函數(shù)*/</p><p>  void thermost(int x,int y)</p><p><b>  {</b></p><p>  if(x-y>TDA) HT=0 ; /*開加熱*/</p><p

37、>  if(x-y<-TDA) HT=1; /*關(guān)加熱*/</p><p><b>  }</b></p><p>  /*顯示刷新函數(shù)*/</p><p>  void fresh(int x,uchar num,uchar *y)</p><p>  {/*0~9字型表*/</p>&l

38、t;p>  static uchar font[10]={0xc0,0xf9,0x64,0x70,0x59,</p><p>  0x52,0x42,0xf8,0x40,0x50};</p><p><b>  uint ux;</b></p><p><b>  uchar i;</b></p>&l

39、t;p>  ux=(x>=0?x:-x);</p><p><b>  i=0;</b></p><p>  do /*將ux轉(zhuǎn)換成十進(jìn)制數(shù)字字型送到y(tǒng)[]中*/</p><p>  {y[i]=font[ux%10];</p><p><b>  ux=ux/10;</b>&

40、lt;/p><p><b>  i++;}</b></p><p>  while(i<num&&ux);</p><p>  if(i<num&&x<0) y[i++]=FNGS; /*負(fù)數(shù)寫入"-"字型*/</p><p>  while(i<n

41、um) y[i++]=FSPC; /*多余位寫入空字型*/</p><p><b>  }</b></p><p>  /*鍵盤處理函數(shù)*/</p><p>  int kbfun(uchar k,int *pt)</p><p>  {static int tmp;</p><p>  if

42、(DTC) /*在當(dāng)前溫度顯示態(tài)下*/</p><p>  if(k==KSET) /*SET鍵處理*/</p><p>  {tmp=*pt; /*讀取設(shè)定溫度到tmp*/</p><p>  DTC=0;} /*切換到設(shè)定溫度顯示態(tài)*/</p><p> 

43、 else return(0); /*其他鍵處理*/</p><p>  else /*設(shè)定溫度顯示態(tài)下*/</p><p><b>  switch(k)</b></p><p>  {case KSET: /*按SET鍵處理*/</p><p>  *pt=tm

44、p; /*修改設(shè)定溫度*/</p><p>  case KESC: /*按ESC鍵處理*/</p><p>  DTC=1; /*切換到當(dāng)前溫度顯示態(tài)*/</p><p>  return(1);</p><p>  case KINC: /*按+鍵處理*/</p

45、><p>  if(tmp==TUP) tmp=TLOW;</p><p>  else tmp+=5; /*+0.5℃*/</p><p><b>  break;</b></p><p>  case KDEC: /*按-鍵處理*/</p><p>  if(tmp==T

46、LOW) tmp=TUP;</p><p>  else tmp-=5; /*-0.5℃*/</p><p><b>  }</b></p><p>  fresh(tmp,4,dbuf); /*刷新設(shè)定溫顯示*/</p><p>  return(0);</p><p><b

47、>  }</b></p><p>  /*鍵盤、顯示掃描和定時(shí)中斷服務(wù),一次/5ms*/</p><p>  time1() interrupt 3</p><p>  {/*掃描位置表*/</p><p>  static uchar pot[4]={0xef,0xdf,0xbf,0x7f};</p><

48、;p>  static uchar si=0; /*掃描位置*/</p><p>  static uchar kst=1; /*鍵盤掃描狀態(tài)*/</p><p>  static uchar kstr; /*鍵盤掃描定時(shí)器*/</p><p>  static uchar sit; /*掃描位置暫存*/</p&g

49、t;<p>  static uchar fltr=0; /*閃爍計(jì)時(shí)器*/</p><p>  static uchar samtr=STC; /*采樣定時(shí)器*/</p><p>  bit kc; /*鍵入值暫存*/</p><p>  TH1=TC1>>8; /*重裝定時(shí)器

50、1時(shí)常*/</p><p><b>  TL1=TC1;</b></p><p><b>  /*顯示掃描*/</b></p><p>  P1=(P1|0xf5)&pot[si]; /*當(dāng)前位置送P1口*/</p><p>  if(!DTC&&fltr>STFH

51、/2) /*若顯示設(shè)定溫且在消隱期*/</p><p>  P3=FSPC; /*空字型送P3口*/</p><p><b>  else</b></p><p>  P3=dbuf[si]; /*當(dāng)前字型送P3口*/</p><p><b>  /*計(jì)時(shí)*/

52、</b></p><p>  if(++fltr==STFH) fltr=0;/*閃爍計(jì)時(shí)*/</p><p>  if(!(--samtr)) /*采樣定時(shí)*/</p><p>  {samtr=STC;</p><p><b>  STF=1;}</b></p><p

53、><b>  /*鍵盤掃描*/</b></p><p>  kc=!KI; /*輸入鍵值*/</p><p>  if(kst==1) /*檢測態(tài)*/</p><p><b>  {if(kc)</b></p><p>  {sit=si;

54、 /* 有按鍵暫存掃描位置*/</p><p><b>  kst=2;}}</b></p><p><b>  else </b></p><p>  if(si==sit) /*若完成一周掃描(延遲20ms)*/</p><p>  switch(kst)&

55、lt;/p><p>  {case 2: /*按鍵確認(rèn)態(tài)*/</p><p><b>  if(kc)</b></p><p>  {key=sit+1; /*按鍵有效,生成鍵值*/</p><p>  kstr=KTC1; /*開始持續(xù)鍵延時(shí)*/</p>

56、<p><b>  kst=3;}</b></p><p>  else kst=1; /*按鍵無效,回到檢測態(tài)*/</p><p><b>  break;</b></p><p>  case 3: /*持續(xù)鍵延時(shí)態(tài)*/</p><p>&

57、lt;b>  if(kc)</b></p><p>  {if(!(--kstr))</p><p>  {key=sit+1; /*開始發(fā)第一個(gè)持續(xù)鍵值*/</p><p>  kstr=KTC2; /*開始持續(xù)鍵重發(fā)定時(shí)*/</p><p><b>  kst=4;}</b&g

58、t;</p><p><b>  }</b></p><p>  else kst=5; /*按鍵無效,回到鍵釋放態(tài)*/</p><p><b>  break;</b></p><p>  case 4: /*持續(xù)鍵重發(fā)態(tài)*/</p><

59、;p><b>  if(kc)</b></p><p>  {if(!(--kstr))</p><p>  {key=sit+1; /*重發(fā)持續(xù)鍵值*/</p><p>  kstr=KTC2;}</p><p><b>  }</b></p><p>

60、  else kst=5; /*按鍵無效,回到鍵釋放態(tài)*/</p><p><b>  break;</b></p><p>  case 5: /*鍵釋放態(tài)*/</p><p>  if(kc) kst=2;</p><p>  else kst=1; /*鍵釋

61、放,回到檢測態(tài)*/</p><p>  } //swicth</p><p>  if(++si==4) si=0; /*調(diào)整掃描位置*/</p><p><b>  }</b></p><p><b>  2.6 仿真調(diào)試</b></p><p>  1. 將P

62、roteus安裝盤中的應(yīng)用程序擴(kuò)展模塊VDM51.dll復(fù)制到μVision2文件夾Keil\C51\BIN 中;</p><p>  2. 修改μVision2文件夾Keil中的Tools.ini文件,在該文件的[C51]字段下添加: TDRV1=BIN\VDM51.DLL("PROTEUS VSM MONITOR 51 DRIVER")</p><p>  3.

63、啟動Proteus,在它的Debug菜單中選擇“User Remote Debug Monitor” 菜單項(xiàng)(見圖1) ;</p><p>  4. 運(yùn)行μVision2,在指定的文件夾中建立新項(xiàng)目;</p><p>  5. 在μVision2 的 Project菜單中選擇 “Option for Target '目標(biāo)名'” 菜單項(xiàng),打開“目標(biāo)選項(xiàng)”對話框; 菜單

64、項(xiàng),打開“目標(biāo)選項(xiàng)”對話框; 6. 在對話框Debug卡右上角的下拉列表框中選擇“PROTEUS VSM MONITOR</p><p>  7. 選擇Debug菜單中的“Start/Stop Debug Session”菜單項(xiàng)或單擊按鈕啟動調(diào)試,開始μVision2與Proteus的聯(lián)調(diào)。</p><p><b>  總結(jié)體會:</b></p>

65、<p>  這次畢業(yè)設(shè)計(jì)是我們專業(yè)課程知識綜合應(yīng)用的實(shí)踐訓(xùn)練,著是我們邁向社會,從事職業(yè)工作前一個(gè)必不少的過程.”千里之行始于足下”,通過這次課程設(shè)計(jì),我深深體會到這句千古名言的真正含義.我今天認(rèn)真的進(jìn)行畢業(yè)設(shè)計(jì),學(xué)會腳踏實(shí)地邁開這一步,就是為明天能穩(wěn)健地在社會大潮中奔跑打下堅(jiān)實(shí)的基礎(chǔ).通過這次恒溫控制設(shè)計(jì),本人在多方面都有所提高,綜合運(yùn)用本專業(yè)所學(xué)課程的理論和生產(chǎn)實(shí)際知識進(jìn)行一次實(shí)際訓(xùn)練從而培養(yǎng)和提高學(xué)生獨(dú)立工作能力,獨(dú)立思

66、考的能力也有了提高。</p><p>  在這次設(shè)計(jì)過程中,體現(xiàn)出自己單獨(dú)設(shè)計(jì)的能力以及綜合運(yùn)用知識的能力,體會了學(xué)以致用、突出自己勞動成果的喜悅心情,從中發(fā)現(xiàn)自己平時(shí)學(xué)習(xí)的不足和薄弱環(huán)節(jié),從而加以彌補(bǔ)。</p><p>  在此感謝我們的***老師.,老師嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng)一直是我工作、學(xué)習(xí)中的榜樣;老師循循善誘的教導(dǎo)和不拘一格的思路給予我無盡的啟迪。</p><

67、;p><b>  參考文獻(xiàn):</b></p><p>  [1] 張毅剛等主編 單片機(jī)應(yīng)用技術(shù) 哈爾濱工業(yè)大學(xué)出版社 </p><p>  [2] 王兆安 黃俊主編 電力電子技術(shù) 機(jī)械工業(yè)出版社</p><p>  [3] 孫傳友等主編 測控電路及裝置 北京航空航天大學(xué)出版社</p><p>  [4

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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

提交評論