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

下載本文檔

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

文檔簡介

1、<p>  基于光敏電阻的簡易傳感器</p><p>  ——光感自動控制百葉窗</p><p><b>  1.摘要</b></p><p>  本設(shè)計(jì)題目是光感自動控制百葉窗,用光照的強(qiáng)弱來改變光敏電阻的阻值大小,采用了MS-C51單片機(jī)為主控制電路,用數(shù)碼管顯示光照強(qiáng)度值,進(jìn)而控制步進(jìn)電動機(jī)控制百葉窗的旋轉(zhuǎn)包括正轉(zhuǎn)、反轉(zhuǎn)和暫停。

2、本設(shè)計(jì)電路各個(gè)部分電路的設(shè)計(jì)原理及功能都能實(shí)現(xiàn),要求對各種基本的電子元器件,電阻、電容、二極管、三極管等熟悉,掌握Proteus 仿真軟件的運(yùn)用、Protel 99 SE工具軟件等繪圖軟件,并加以運(yùn)用。用單片機(jī)內(nèi)部的AD轉(zhuǎn)換實(shí)現(xiàn)模擬轉(zhuǎn)化為數(shù)字量,通過編程控制各個(gè)外圍電路并實(shí)現(xiàn)其功能。本設(shè)計(jì)具有有線路簡單、結(jié)構(gòu)緊湊、價(jià)格低廉、性能優(yōu)越等特點(diǎn)。</p><p>  單片機(jī)以其高可靠性、高性價(jià)比、低電壓、低功耗等一系列

3、優(yōu)點(diǎn),近幾年得到迅猛發(fā)展和大范圍推廣,廣泛應(yīng)用于各領(lǐng)域各方面。本次設(shè)計(jì)是以單片機(jī)為核心,加上其他器件,設(shè)計(jì)電路來實(shí)現(xiàn)百葉窗的控制。</p><p>  2.系統(tǒng)總體設(shè)計(jì)方案</p><p><b>  2.1設(shè)計(jì)要求</b></p><p>  單片機(jī)以其高可靠性、高性價(jià)比、低電壓、低功耗等一系列優(yōu)點(diǎn),近幾年得到迅猛發(fā)展和大范圍推廣,廣泛應(yīng)用于

4、各領(lǐng)域各方面。本次設(shè)計(jì)是以單片機(jī)為核心,加上其他器件,設(shè)計(jì)電路來實(shí)現(xiàn)百葉窗的控制。</p><p>  利用光敏電阻與標(biāo)準(zhǔn)電阻串聯(lián)輸入模擬信號,通過ADC0809芯片轉(zhuǎn)換成數(shù)字信號傳送給單片機(jī),通過單片機(jī)處理并控制LCD顯示當(dāng)前的測量光強(qiáng)值,以及輸出步進(jìn)電動機(jī)的驅(qū)動信號,再利用達(dá)林頓管ULN2003提高單片機(jī)的輸出功率驅(qū)動步進(jìn)電動機(jī)。</p><p><b>  2.2總體框圖&

5、lt;/b></p><p><b>  3.系統(tǒng)硬件設(shè)計(jì)</b></p><p><b>  3.1總體電路圖</b></p><p><b>  3.2組成模塊介紹</b></p><p>  單片機(jī):AT89C51是一種帶4K字節(jié)FLASH存儲器(FPEROM—Fl

6、ash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。</p><p>  AD轉(zhuǎn)換模塊: 將光敏電阻用滑

7、動變阻器代替。R10為標(biāo)準(zhǔn)10K電阻,RV1為10K滑動變阻器,以代替光敏電阻仿真。由于仿真軟件只支持ADC0808芯片仿真,故在仿真時(shí)使用此芯片,實(shí)際電路板中選用了ADC0808。處于實(shí)際電路板焊接時(shí)候引腳選用方便考慮,選用IN7輸出口。即將模擬輸入選擇口ADD A、ADD B、ADD C接入VCC。處于實(shí)際電路焊接考慮,將ST接入P3.0口,EOC接入P3.1口,OE接入P3.2口,CLK接入P3.3口,具體電路如右圖。</p

8、><p>  步進(jìn)電動機(jī)驅(qū)動:如果直接用單片機(jī)驅(qū)動步進(jìn)電動機(jī),因?yàn)閱纹瑱C(jī)的輸出電流太低,功率不夠,無法驅(qū)動步進(jìn)電動機(jī),故接入達(dá)林頓管ULN2003來增加輸出功率,處于實(shí)際電路焊接考慮,使用P3.4~P3.7端口。電路如下圖</p><p>  暫??刂疲河瞄_關(guān)控制,開關(guān)閉合時(shí)步進(jìn)電動機(jī)暫停,LCD顯示暫停狀態(tài)(*字符),但依舊可以測量出光強(qiáng)值。</p><p>  LC

9、D顯示:LCD接口如圖所示,由于單片機(jī)P0口和P2口在單片機(jī)的右邊,故將LCD的輸入口和控制口分別接入P0和P2口,由于P0口無上拉電阻,故接入LCD時(shí)接入一排上拉電阻。如右圖</p><p><b>  4.元件清單</b></p><p>  5.系統(tǒng)調(diào)試與測量結(jié)果</p><p><b>  5.1程序流程圖</b>

10、</p><p><b>  5.2程序代碼</b></p><p>  #include <reg52.h></p><p>  unsigned char get_data;</p><p>  unsigned int temp;</p><p>  unsigned char

11、code tab1[]="welcome on!";</p><p>  unsigned char code tab2[]="light:";</p><p>  unsigned char code tab3[]="mcd";</p><p>  sbit ST = P3^0;</p>&

12、lt;p>  sbit EOC= P3^1;</p><p>  sbit OE = P3^2;</p><p>  sbit CLK= P3^3;</p><p>  sbit A1 = P3^5;</p><p>  sbit B1 = P3^6;</p><p>  sbit C1 = P3^7;</

13、p><p>  sbit D1 = P3^4;</p><p>  sbit RS = P2^0;</p><p>  sbit RW = P2^1;</p><p>  sbit E = P2^2;</p><p>  sbit key= P2^4;</p><p>  #define r1 {

14、A1=1;B1=1;C1=1;D1=0;} </p><p>  #define r2 {A1=1;B1=1;C1=0;D1=0;}</p><p>  #define r3 {A1=1;B1=1;C1=0;D1=1;}</p><p>  #define r4 {A1=1;B1=0;C1=0;D1=1;}</p><p>  #define

15、 r5 {A1=1;B1=0;C1=1;D1=1;}</p><p>  #define r6 {A1=0;B1=0;C1=1;D1=1;}</p><p>  #define r7 {A1=0;B1=1;C1=1;D1=1;}</p><p>  #define r8 {A1=0;B1=1;C1=1;D1=0;}</p><p>  voi

16、d timer()</p><p><b>  {</b></p><p>  TMOD=0x10;</p><p>  TH0=(65536-190)/256;</p><p>  TL0=(65536-190)%256;</p><p><b>  EA=1;</b>&l

17、t;/p><p><b>  ET0=1;</b></p><p><b>  TR0=1;</b></p><p><b>  }</b></p><p>  void delay(unsigned int t)</p><p><b>  {&

18、lt;/b></p><p><b>  int i,j;</b></p><p>  for(i=t;i>0;i--)</p><p>  for(j=112;j>0;j--);</p><p><b>  }</b></p><p>  writecom

19、(unsigned char com)</p><p><b>  {</b></p><p><b>  RS=0;</b></p><p><b>  RW=0;</b></p><p><b>  P0=com;</b></p><

20、;p><b>  E=0;</b></p><p><b>  delay(1);</b></p><p><b>  E=1;</b></p><p><b>  delay(1);</b></p><p><b>  E=0;</

21、b></p><p><b>  }</b></p><p>  writedata(unsigned char date)</p><p><b>  {</b></p><p><b>  RS=1;</b></p><p><b>

22、  RW=0;</b></p><p><b>  P0=date;</b></p><p><b>  E=0;</b></p><p><b>  delay(1);</b></p><p><b>  E=1;</b></p>

23、<p><b>  delay(1);</b></p><p><b>  E=0;</b></p><p><b>  }</b></p><p>  void writecount(unsigned int Data)</p><p><b>  {

24、</b></p><p>  switch(Data)</p><p>  {case 0: writedata(0x30);break;</p><p>  case 1: writedata(0x31);break;</p><p>  case 2: writedata(0x32);break;</p>&l

25、t;p>  case 3: writedata(0x33);break;</p><p>  case 4: writedata(0x34);break;</p><p>  case 5: writedata(0x35);break;</p><p>  case 6: writedata(0x36);break;</p><p> 

26、 case 7: writedata(0x37);break;</p><p>  case 8: writedata(0x38);break;</p><p>  case 9: writedata(0x39);break;</p><p><b>  }</b></p><p><b>  }</b&

27、gt;</p><p>  void bujin(unsigned int pd)</p><p><b>  {</b></p><p><b>  if(pd) </b></p><p>  { </p><p><b>  r1</b&g

28、t;</p><p><b>  delay(5);</b></p><p><b>  r2</b></p><p><b>  delay(5);</b></p><p><b>  r3</b></p><p><b&g

29、t;  delay(5);</b></p><p><b>  r4</b></p><p><b>  delay(5);</b></p><p><b>  r5</b></p><p><b>  delay(5);</b></p&

30、gt;<p><b>  r6</b></p><p><b>  delay(5);</b></p><p><b>  r7</b></p><p><b>  delay(5);</b></p><p><b>  r8<

31、;/b></p><p><b>  delay(5);</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>

32、  r8</b></p><p><b>  delay(5);</b></p><p><b>  r7</b></p><p><b>  delay(5);</b></p><p><b>  r6</b></p><

33、p><b>  delay(5);</b></p><p><b>  r5</b></p><p><b>  delay(5);</b></p><p><b>  r4</b></p><p><b>  delay(5);</

34、b></p><p><b>  r3</b></p><p><b>  delay(5);</b></p><p><b>  r2</b></p><p><b>  delay(5);</b></p><p><

35、b>  r1</b></p><p><b>  delay(5);</b></p><p><b>  };</b></p><p><b>  }</b></p><p>  void disp(unsigned int a) </p>

36、<p><b>  {</b></p><p>  unsigned int c;</p><p>  a*=4; </p><p>  writecom(0xc0+7);</p><p>  writecount(a/1000);</p><p>  writecom(0

37、xc0+8);</p><p>  writecount(a%1000/100);</p><p>  writecom(0xc0+9);</p><p>  writecount(a%100/10);</p><p>  writecom(0xc0+10);</p><p>  writecount(a%10);&l

38、t;/p><p>  writecom(0xc0+11);</p><p>  for(c=0;c<3;c++)</p><p>  writedata(tab3[c]);</p><p><b>  }</b></p><p>  pduan(unsigned int a)</p>

39、<p><b>  {</b></p><p>  unsigned int x;</p><p>  if(a<51) x=0;</p><p>  else if(a<102) x=1;</p><p>  else if(a<153) x=2;</p><p>

40、;  else if(a<204) x=3;</p><p><b>  else x=4;</b></p><p>  return(x);</p><p><b>  }</b></p><p><b>  main()</b></p><p>

41、;<b>  {</b></p><p>  unsigned int compare=0;</p><p>  unsigned int dji;</p><p>  unsigned int i,j,k;</p><p>  writecom(0x38);</p><p>  writecom

42、(0x0c);</p><p>  writecom(0x06);</p><p>  writecom(0x80+1);</p><p>  for(i=0;i<11;i++)</p><p>  writedata(tab1[i]);</p><p>  writecom(0xc0+1);</p>

43、<p>  for(j=0;j<6;j++)</p><p>  writedata(tab2[j]);</p><p><b>  timer();</b></p><p>  while(1) </p><p><b>  {</b></p>

44、<p><b>  ST=0;</b></p><p><b>  OE=0;</b></p><p><b>  ST=1;</b></p><p><b>  ST=0;</b></p><p>  while(EOC==0);</

45、p><p><b>  OE=1;</b></p><p>  get_data=P1;</p><p><b>  OE=0;</b></p><p>  temp=get_data;</p><p>  disp(temp); </p>&

46、lt;p>  dji=pduan(temp);</p><p>  writecom(0x80+14);</p><p>  writedata(0x2a); </p><p>  if(key) </p><p><b>  {</b></p><

47、;p>  writecom(0x80+14);</p><p>  writedata(0x20); </p><p>  if(dji>compare) </p><p><b>  {</b></p><p>  for(k=25*(dji-compare);k>0;k--)

48、</p><p><b>  bujin(0);</b></p><p>  compare=dji;</p><p><b>  }</b></p><p>  else if(dji<compare)</p><p><b>  {</b>&l

49、t;/p><p>  for(k=25*(compare-dji);k>0;k--)</p><p><b>  bujin(1);</b></p><p>  compare=dji;</p><p><b>  }</b></p><p>  else compare=

50、dji;</p><p><b>  };</b></p><p><b>  };</b></p><p><b>  }</b></p><p>  void t0(void) interrupt 1 using 0</p><p><b>

51、;  {</b></p><p>  TH0=(65536-190)/256;</p><p>  TL0=(65536-190)%256;</p><p><b>  CLK=~CLK;</b></p><p><b>  }</b></p><p><b

52、>  6.測量結(jié)果分析</b></p><p>  當(dāng)光敏電阻受光照強(qiáng)度的不同時(shí)電阻值改變,進(jìn)而改變步電機(jī)的轉(zhuǎn)速與方向,是室內(nèi)的采光程度最好。</p><p>  如果想自己手動改變采光度,停止步電機(jī)的工作可以關(guān)閉開關(guān)。</p><p><b>  7.心得體會</b></p><p>  通過這一次的

53、電路設(shè)計(jì),掌握了LCD液晶顯示、AD轉(zhuǎn)換和步進(jìn)電動機(jī)驅(qū)動的方法,對單片機(jī)運(yùn)用技術(shù)又有了進(jìn)一步的提高。單片機(jī)可以驅(qū)動電路和實(shí)現(xiàn)的功能多種多樣,對單片機(jī)的靈活運(yùn)用顯然還欠缺許多知識,但經(jīng)過這次的課程設(shè)計(jì),相信對單片機(jī)的各方面可以慢慢學(xué)習(xí)滲透,將其融會貫通。</p><p>  仿真時(shí)LCD無任何字符顯示,檢查源程序的LCD初始化是否正確,修改錯誤,重新載入源程序仿真。</p><p>  顯示

54、的轉(zhuǎn)換數(shù)據(jù)為錯亂數(shù)據(jù),網(wǎng)上查閱ADC0809芯片功能書發(fā)現(xiàn)改芯片的輸出口與IO口的高低位相反,OUT0~OUT7為高位到低位,恰與我們平時(shí)定義的相反。</p><p><b>  8.參考文獻(xiàn)</b></p><p>  《傳感器與檢測技術(shù)》 陳杰 黃鴻 編著</p><p>  《基于單片機(jī)的百葉窗設(shè)計(jì)》 網(wǎng)絡(luò)文獻(xiàn)</p&g

溫馨提示

  • 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

提交評論