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

下載本文檔

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

文檔簡介

1、<p><b>  一、設(shè)計目的</b></p><p>  設(shè)計一個計算機溫度巡回檢測程序控制系統(tǒng),可以對糧倉的溫度進(jìn)行多點巡回檢測。通過設(shè)計,掌握數(shù)據(jù)采集系統(tǒng)的工作原理、掌握計算機控制系統(tǒng)的設(shè)計原理、設(shè)計步驟,進(jìn)一步提高綜合運用知識的能力。</p><p><b>  二、設(shè)計內(nèi)容和要求</b></p><p&g

2、t;  (1)選擇傳感器,設(shè)計接口電路,對八點的溫度進(jìn)行巡回檢測,要求溫度測量范圍是0~50℃,精度±1℃。</p><p>  (2)編寫控制程序,在屏幕上顯示八點溫度的實測值。</p><p>  (3)寫出設(shè)計說明書。</p><p><b>  三、系統(tǒng)設(shè)計方案</b></p><p>  該系統(tǒng)由硬

3、件和軟件兩大塊組成,硬件部分分為:1、控制芯片,是該系統(tǒng)的核心;2、檢測環(huán)節(jié),即溫度傳感器,用于采集環(huán)境溫度;3、顯示部分,用于顯示當(dāng)前環(huán)境溫度;4、分時采集部分,用于對八點溫度進(jìn)行分時采集。軟件部分分為三塊:1、數(shù)據(jù)處理;2、液晶顯示;3、分時尋采集控制。</p><p><b>  下面是具體方案:</b></p><p><b>  1、硬件部分<

4、;/b></p><p>  1.1控制芯片:選用常用的89c52可滿足需要。</p><p>  1.2溫度檢測環(huán)節(jié):</p><p>  方案一、使用熱敏電阻通過matlab對溫度和電阻之間的非線性關(guān)系進(jìn)行數(shù)據(jù)擬合得到相應(yīng)關(guān)系式。但熱敏電阻器是敏感元件的一類,按照溫度系數(shù)不同分為正溫度系數(shù)熱敏電阻器(PTC)和負(fù)溫度系數(shù)熱敏電阻器(NTC)。熱敏電阻器的典

5、型特點是對溫度敏感,不同的溫度下表現(xiàn)出不同的電阻值。正溫度系數(shù)熱敏電阻器(PTC)在溫度越高時電阻值越大,負(fù)溫度系數(shù)熱敏電阻器(NTC)在溫度越高時電阻值越低,它們同屬于半導(dǎo)體器件。其最大的缺點就在于:阻值與溫度的關(guān)系非線性嚴(yán)重。不易通過程序進(jìn)行精確控制,誤差較大;</p><p>  方案二、使用DS18B20溫度傳感器。該芯片具有獨特的單線借口方式,它與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與DS18B

6、20的雙向通信,測溫范圍-55℃~+125℃,精度為0.5±℃而且在使用中不需要任何外圍元件,接線簡單。</p><p>  綜合以上分析上,選用DS18B20溫度傳感器,將其I/O口與單片機的I/O口相接,在單片機中寫入處理程序即可。</p><p><b>  顯示部分</b></p><p>  方案一、用數(shù)碼管顯示溫度,程序簡

7、單,缺點是只能顯示數(shù)字,不能顯示字母,功能局限性太大;</p><p>  方案二、用1602LCD,既可顯示字母也可顯示數(shù)字,操縱靈活多變,可滿足本課題需要;</p><p><b>  綜上、選用方案二。</b></p><p><b>  分時采集部分</b></p><p>  方案一、CD

8、4051單8通道數(shù)字控制模擬電子開關(guān),有三個二進(jìn)控制輸入端A、B、C</p><p>  和INH輸入,具有低導(dǎo)通阻抗和很低的截止漏電流。當(dāng)INH輸入端=“1”時,所有的通道截止。三位二進(jìn)制信號選通8通道中的一通道,可連接該輸入端至輸出。</p><p>  方案二、繼電器+3/8譯碼器,通過譯碼器的三個地址段選通8個繼電器中的任意一個,但接線復(fù)雜,成本高;</p><

9、p>  綜合以上分析,選擇方案一。</p><p><b>  2、軟件部分</b></p><p>  #include<reg52.h></p><p>  #include<stdio.h></p><p>  #define uchar unsigned char</p>

10、<p>  #define uint unsigned int</p><p>  sbit ds=P2^3;//溫度傳感器18B20I/O口</p><p>  sbit inh=P2^4;//譯碼器使能端</p><p>  sbit A=P1^0;//3/8譯碼器地址選擇端</p><p>  sbit B=P1^1;&l

11、t;/p><p>  sbit C=P1^2;</p><p>  sbit lcd_en=P2^6;//液晶LCD使能端</p><p>  sbit lcd_rs=P2^4;//液晶LCD數(shù)據(jù)/命令選擇端</p><p>  sbit lcd_wr=P2^5;//讀寫選擇端</p><p>  uchar data t

12、able_temp[12];//存放顯示的字符和溫度</p><p>  uchar num;</p><p>  uint temp;</p><p>  uchar i,j,k,l;</p><p>  float f_temp;</p><p>  sbit led0=P1^0;</p><p

13、>  void delay1()//延時函數(shù)</p><p><b>  {</b></p><p>  uchar i,j;</p><p>  for(j=5;j>0;j--)</p><p>  for(i=125;i>0;i--);</p><p><b>  

14、}</b></p><p>  void delay(uint z)//帶參數(shù)的延時</p><p><b>  {</b></p><p><b>  uint x,y;</b></p><p>  for(x=z;x>0;x--)</p><p>  f

15、or(y=110;y>0;y--);</p><p><b>  }</b></p><p>  void dsreset(void)//對18B20進(jìn)行初始化</p><p><b>  {</b></p><p><b>  uint i;</b></p>

16、<p><b>  ds=0;</b></p><p><b>  i=103;</b></p><p>  while(i>0)</p><p><b>  i--;</b></p><p><b>  ds=1;</b></p

17、><p><b>  i=4;</b></p><p>  while(i>0)</p><p><b>  i--;</b></p><p><b>  }</b></p><p>  bit tempreadbit(void)//讀一位溫度

18、</p><p><b>  {</b></p><p><b>  uint i;</b></p><p><b>  bit dat;</b></p><p><b>  ds=0;i++;</b></p><p>  ds=1

19、;i++;i++;</p><p><b>  dat=ds;</b></p><p>  i=8;while(i>0)i--;</p><p>  return(dat);</p><p><b>  }</b></p><p>  uchar tempread(vo

20、id)//讀8位溫度即一個字節(jié)的溫度</p><p><b>  {</b></p><p>  uchar i,j,dat;</p><p><b>  dat=0;</b></p><p>  for(i=1;i<=8;i++)</p><p><b> 

21、 {</b></p><p>  j=tempreadbit();</p><p>  dat=(j<<7)|(dat>>1);</p><p><b>  }</b></p><p>  return(dat);</p><p><b>  }<

22、;/b></p><p>  void tempwritebyte(uchar dat)//寫指令函數(shù)</p><p><b>  {</b></p><p><b>  uint i;</b></p><p><b>  uchar j;</b></p>

23、<p>  bit testb;</p><p>  for(j=1;j<=8;j++)</p><p><b>  {</b></p><p>  testb=dat&0x01;</p><p>  dat=dat>>1;</p><p><b> 

24、 if(testb)</b></p><p><b>  {</b></p><p><b>  ds=0;</b></p><p><b>  i++;i++;</b></p><p><b>  ds=1;</b></p>&

25、lt;p>  i=8;while(i>0)i--;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  ds=0;</b></p>

26、<p>  i=8;while(i>0)i--;</p><p><b>  ds=1;</b></p><p><b>  i++;i++;</b></p><p><b>  }</b></p><p><b>  }</b><

27、;/p><p><b>  }</b></p><p>  void tempchange(void)//數(shù)值轉(zhuǎn)換</p><p><b>  {</b></p><p>  dsreset();</p><p><b>  delay(1);</b><

28、;/p><p>  tempwritebyte(0xcc); //跳過rom地址選擇</p><p>  tempwritebyte(0x44); //啟動溫度轉(zhuǎn)換,將數(shù)據(jù)存入ram</p><p><b>  }</b></p><p>  uint get_temp()//將寄存器中的溫度數(shù)據(jù)轉(zhuǎn)換初來</p>

29、<p><b>  {</b></p><p>  uchar a,b;</p><p>  dsreset();</p><p><b>  delay(1);</b></p><p>  tempwritebyte(0xcc);</p><p>  temp

30、writebyte(0xbe);//讀ram的溫度數(shù)據(jù)</p><p>  a=tempread();//讀第八位</p><p>  b=tempread();//讀高八位</p><p><b>  temp=b;</b></p><p><b>  temp<<=8;</b><

31、;/p><p>  temp=temp|a;//得到16位溫度數(shù)據(jù)</p><p>  f_temp=temp*0.0625;//得到溫度</p><p>  temp=f_temp*10+0.5;//四舍五入</p><p>  return temp;</p><p><b>  }</b><

32、;/p><p>  void init_com(void)//初始化</p><p><b>  {</b></p><p>  TMOD=0x20;//模式二</p><p>  PCON=0x00;//正常工作狀態(tài)&正常波特率</p><p>  SCON=0x50;//異步收發(fā)(8位)&

33、lt;/p><p>  TH1=0xFd;//波特率9600</p><p><b>  TL1=0xFd;</b></p><p>  TR1=1;//定時器一運行控制打開</p><p>  lcd_wr=0;//寫數(shù)據(jù)</p><p><b>  inh=0;</b><

34、;/p><p><b>  }</b></p><p>  void write_com(uchar com)//液晶寫指令函數(shù)</p><p><b>  {</b></p><p><b>  lcd_rs=0;</b></p><p><b>

35、;  P0=com;</b></p><p><b>  delay1();</b></p><p><b>  lcd_en=1;</b></p><p><b>  delay1();</b></p><p><b>  lcd_en=0;</b

36、></p><p><b>  }</b></p><p>  void write_data(uchar date)//液晶寫數(shù)據(jù)函數(shù)</p><p><b>  {</b></p><p><b>  lcd_rs=1;</b></p><p>

37、;<b>  P0=date;</b></p><p><b>  delay1();</b></p><p><b>  lcd_en=1;</b></p><p><b>  delay1();</b></p><p><b>  lcd_e

38、n=0;</b></p><p><b>  }</b></p><p>  void dis_temp(uint t)//液晶顯示函數(shù)</p><p><b>  {</b></p><p><b>  i=t/1000;</b></p><p

39、>  j=t%1000/100;</p><p>  k=t%100/10;</p><p><b>  l=t%10;</b></p><p>  table_temp[0]='W';</p><p>  table_temp[1]='E';</p><p&

40、gt;  table_temp[2]='N';</p><p>  table_temp[3]='D';</p><p>  table_temp[4]='U';</p><p>  table_temp[5]=':';</p><p>  table_temp[6]=i

41、;</p><p>  table_temp[7]=j;</p><p>  table_temp[8]=k;</p><p>  table_temp[9]='.';</p><p>  table_temp[10]=l;</p><p>  table_temp[11]='C';

42、</p><p><b>  lcd_en=0;</b></p><p>  write_com(0x38);</p><p>  write_com(0x0c);</p><p>  write_com(0x06);</p><p>  write_com(0x01);</p>&

43、lt;p>  write_com(0x80);</p><p>  for(num=0;num<12;num++)</p><p><b>  {</b></p><p>  if(num==8||num==6||num==7||num==10)</p><p>  write_data(table_temp

44、[num]+0x30);</p><p><b>  else</b></p><p>  write_data(table_temp[num]);</p><p><b>  }</b></p><p><b>  }</b></p><p>  v

45、oid main()</p><p><b>  {</b></p><p><b>  uint t;</b></p><p>  uint dr=0x07;</p><p>  uchar i,j;</p><p>  init_com();</p><

46、;p><b>  while(1)</b></p><p><b>  {</b></p><p><b>  j=0;</b></p><p>  while(j<dr)//八路巡回檢測</p><p><b>  {</b></p&g

47、t;<p><b>  P1=j++;</b></p><p>  tempchange();</p><p>  for(i=10;i>0;i--)</p><p><b>  {</b></p><p>  t=get_temp();//數(shù)據(jù)轉(zhuǎn)換</p><

48、;p>  dis_temp(t);//顯示</p><p>  delay(10);//</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  

49、}</b></p><p><b>  四、原理圖</b></p><p><b>  五、PCB圖</b></p><p><b>  結(jié)論</b></p><p>  通過軟硬件設(shè)計,用STC89C52為核心來控制整個系統(tǒng),實現(xiàn)了溫度正負(fù)號,三位整數(shù)和一位小數(shù)的

50、顯示,了解了液晶,溫度傳感器的使用規(guī)律。本次選用的DS18B20芯片測溫范圍 -55℃~+125℃,精度為±0.5度達(dá)到了系統(tǒng)的基本要求,但由于硬件條件的限制,僅用一路溫度傳感器進(jìn)行信號采集,八路巡回檢測僅從原理上進(jìn)行了闡述,另外顯示等基本功能還不夠強大,如89c51的頻率還不夠快,肉眼可清楚看見刷屏,系統(tǒng)還有待改進(jìn)。</p><p><b>  參考文獻(xiàn)</b></p>

51、;<p>  1 李朝青.單片機原理及接口技術(shù).北京航空航天大學(xué)出版社.2006.12</p><p>  2 郭天祥.新概念51單片機c語言教程.北京:電子工業(yè)出版社.2009.1</p><p>  4 趙山林.c程序設(shè)計.北京:人民郵電出版社,2004.8</p><p>  5 張艷兵,王忠慶,鮮浩.計算機控制技術(shù).北京:國防工業(yè)出版社.200

52、6.8</p><p>  6 畢滿清.模擬電子技術(shù)基礎(chǔ).北京:電子工業(yè)出版社,2008.6</p><p><b>  致謝</b></p><p>  通過這次課程設(shè)計,我深切的認(rèn)識到自己不足的一面,我一定要在以后好好彌補。這次課程設(shè)計加深了我對計算機控制技術(shù)的了解,感謝老師給了我們這次機會,同時也感謝同學(xué)的幫助和任課老師在課堂上精辟的講解

溫馨提示

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

評論

0/150

提交評論