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

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  課 程 設(shè) 計(jì) 說 明 書</p><p>  課程名稱 _單片機(jī)原理__________</p><p>  題 目 __數(shù)字電壓表設(shè)計(jì)________</p><p>  院 系 _電子信息工程學(xué)院_________</p><p>  班 級(jí) 自動(dòng)化085班__________</p

2、><p>  學(xué)生姓名 _____________</p><p>  指導(dǎo)教師 ______________</p><p>  設(shè)計(jì)題目 數(shù)字電壓表設(shè)計(jì) </p><p><b>  課程設(shè)計(jì)目的</b></p>

3、<p>  培養(yǎng)學(xué)生文獻(xiàn)檢索的能力,如何利用Internet檢索需要的文獻(xiàn)資料。</p><p>  培養(yǎng)學(xué)生綜合分析問題、發(fā)現(xiàn)問題和解決問題的能力。</p><p>  培養(yǎng)學(xué)生綜合運(yùn)用知識(shí)的能力和工程設(shè)計(jì)的能力。</p><p>  培養(yǎng)學(xué)生理論聯(lián)系實(shí)際的能力。</p><p>  提高學(xué)生課程設(shè)計(jì)報(bào)告撰寫水平。</p

4、><p><b>  設(shè)計(jì)內(nèi)容和設(shè)計(jì)要求</b></p><p><b>  1、設(shè)計(jì)內(nèi)容</b></p><p>  利用51單片機(jī)與ADC0808或ADC0809設(shè)計(jì)一個(gè)數(shù)字電壓表,能夠測(cè)量0-5V之間的直流電壓值,四位數(shù)碼顯示或LM1602液晶顯示,但要求使用的元器件數(shù)目最少。</p><p> 

5、?。?)使用ADC0808或ADC0809芯片做為電壓輸入的AD模塊;</p><p> ?。?)使用外部按鍵控制方式讀取電壓信號(hào);</p><p> ?。?) 使用4位共陰極動(dòng)態(tài)LED數(shù)碼管或LM1602液晶顯示屏作為輸出顯示部分;</p><p> ?。?)軟件可用C語言或匯編語言,硬件可用實(shí)驗(yàn)箱或Protues仿真軟件實(shí)現(xiàn)功完整的能演示。</p>

6、<p><b>  2、設(shè)計(jì)要求</b></p><p>  (1)設(shè)計(jì)單片機(jī)最小系統(tǒng)(包括復(fù)位按鈕、晶振電路等);</p><p> ?。?)共陰極LED數(shù)碼管或LM1602液晶顯示。</p><p> ?。?)用定時(shí)器中斷方式定時(shí)刷新或按鍵控制讀取方式顯示,使用按鍵控制時(shí)要求使用外部中斷方式。</p><p&

7、gt;  (4)繪制實(shí)現(xiàn)本設(shè)計(jì)內(nèi)容的硬件電路(原理圖),系統(tǒng)的組成框圖。</p><p> ?。?)給出ADC0808或ADC0809的功能說明與使用方法;</p><p> ?。?)編寫本課程設(shè)計(jì)內(nèi)容的軟件設(shè)計(jì)(包含程序流程圖和對(duì)程序注釋)。</p><p><b>  三、硬件設(shè)計(jì)原理</b></p><p><

8、;b>  模數(shù)轉(zhuǎn)換原理:</b></p><p>  試驗(yàn)中,我們選用ADC0809作為模數(shù)轉(zhuǎn)換的芯片,其為逐次逼近式AD轉(zhuǎn)換式芯片,其工作時(shí)需要一個(gè)穩(wěn)定的時(shí)鐘輸入,根據(jù)查找資料,得到ADC0809的時(shí)鐘頻率在10khz~1200khz,我們選擇典型值640khz。課題要求測(cè)量電壓范圍是0到5V,又ADC0809的要求:Vref+<=Vcc,Vref->=GND,故我們?nèi)ref+=

9、+5V,Vref-=0V。由于ADC0809有8個(gè)輸入通道可供選擇,我們選擇IN6通道,直接使ADC0809的A接地,B、C接高電平可以了,在當(dāng)ADC0809啟動(dòng)時(shí)ALE引腳電平正跳變時(shí)變可以鎖存A、B、C上的地址信息。ADC0809可以將從IN6得到的模擬數(shù)據(jù)轉(zhuǎn)換為相應(yīng)的二進(jìn)制數(shù),由于ADC0809輸出為8位的二進(jìn)制數(shù),轉(zhuǎn)換時(shí)將0到5V分為255等分,所以我們可以得到轉(zhuǎn)換公式為x/255*5化簡(jiǎn)為:x/51,x為得到的模擬數(shù)據(jù)量,也就

10、是直接得到的電壓量。在AD轉(zhuǎn)換完成后,ADC0809將在EOC引腳上產(chǎn)生一個(gè)8倍于自身時(shí)鐘周期的正脈沖,以此來作為轉(zhuǎn)換結(jié)束的標(biāo)志。然后當(dāng)OE引腳上產(chǎn)生高電平時(shí),ADC0809將允許轉(zhuǎn)換完的二進(jìn)制數(shù)據(jù)輸出。</p><p><b>  數(shù)據(jù)處理原理:</b></p><p>  由ADC0809的轉(zhuǎn)換原理可以知道我們從其得到數(shù)據(jù)還只是二進(jìn)制數(shù)據(jù),我們還需要進(jìn)一步處理來的

11、到x的十進(jìn)制數(shù),并且對(duì)其進(jìn)行精度處理,也就是課題要求的的精確到小數(shù)點(diǎn)后兩位,在這里我們用51單片機(jī)對(duì)數(shù)據(jù)進(jìn)行處理。我們處理數(shù)據(jù)的思路是:首先將得到的二進(jìn)制數(shù)直接除以十進(jìn)制數(shù)51,然后取整為x的整數(shù)部分,然后就是將得到的余數(shù)乘以10,然后再除以51,再取整為x的十分位,最后將得到的余數(shù)除以5得到x的百分位。</p><p><b>  硬件原理圖:</b></p><p&g

12、t;<b>  系統(tǒng)框圖:</b></p><p><b>  四、主要器件介紹</b></p><p><b>  1、AT89C51</b></p><p>  AT89C51芯片模型</p><p>  AT89C51芯片的各引腳功能為:</p><p

13、>  P0口:8位,漏極開路的雙向I/O口。這組引腳共有8條,P0.0為最低位。這8個(gè)引腳有兩種不同的功能,分別適用于不同的情況。</p><p>  P1口:8位,準(zhǔn)雙向I/O口,具有內(nèi)部上拉電阻。這8個(gè)引腳和P0口的8個(gè)引腳類似,P1.7為最高位,P1.0為最低位,當(dāng)P1口作為通用I/O口使用時(shí),P1.0-P1.7的功能和P0口的第一功能相同,也用于傳送用戶的輸入和輸出數(shù)據(jù)。</p>&l

14、t;p>  P2口:這組引腳的第一功能與上述兩組引腳的第一功能相同即它可以作為通用I/O口使用,它的第一功能和P0口引腳的第二功能相配合,用于輸出片外存儲(chǔ)器的高8位地址,共同選中片外存儲(chǔ)器單元,但并不是像P0口那樣傳送存儲(chǔ)器的讀/寫數(shù)據(jù)。</p><p>  P3口:這組引腳的第一功能和其余三個(gè)端口的第一功能相同,第二功能為控制功能,每個(gè)引腳并不完全相同,如下表2所示:</p><p&g

15、t;  ALE/PROG:地址鎖存允許信號(hào),輸出。配合P0口的第二功能使用,在訪問外部存儲(chǔ)器時(shí),89C51的CPU在P0.0-P0.7引腳線去傳送隨后而來的片外存儲(chǔ)器讀/寫數(shù)據(jù)。在不訪問片外存儲(chǔ)器時(shí),89C51自動(dòng)在ALE線上輸出頻率為1/6震蕩器頻率的脈沖序列。該脈沖序列可以作為外部時(shí)鐘源或定時(shí)脈沖使用。</p><p>  /EA:片外存儲(chǔ)器訪問允許信號(hào),低電平有效??梢钥刂?9C51使用片內(nèi)ROM或使用片外

16、ROM,若/EA=1,則允許使用片內(nèi)ROM, 若/EA=0,則只使用片外ROM。</p><p>  /PSEN:片外ROM的選通信號(hào)低電平有效。在訪問片外ROM時(shí),89C51自動(dòng)在/PSEN線上產(chǎn)生一個(gè)負(fù)脈沖,作為片外ROM芯片的讀選通信號(hào)。</p><p>  RST:復(fù)位線,可以使89C51處于復(fù)位(即初始化)工作狀態(tài)。通常89C51復(fù)位有自動(dòng)上電復(fù)位和人工按鍵復(fù)位兩種。</p

17、><p>  XTAL1和XTAL2:片內(nèi)震蕩電路輸入線,這兩個(gè)端子用來外接石英晶體和微調(diào)電容,即用來連接89C51片內(nèi)OSC(震蕩器)的定時(shí)反饋回路。</p><p>  2、ADC0808的功能說明與使用方法</p><p>  ADC0808是一種典型的A/D轉(zhuǎn)換器。它是由8位A/D轉(zhuǎn)換器,一個(gè)8路模擬量開關(guān);8位模擬量地址鎖存譯碼器和一個(gè)三態(tài)數(shù)據(jù)輸出鎖存器組成;

18、+5V單電源供電,轉(zhuǎn)化時(shí)間在100us左右;內(nèi)部沒有時(shí)鐘電路,故需外部提供時(shí)鐘信號(hào)。芯片模型如下圖所示:</p><p>  ADC0808芯片模型</p><p><b>  功能說明:</b></p><p>  (1) IN0~IN7:8路模擬量輸入端。</p><p>  (2) D0~D7:8位數(shù)字量輸出端口。

19、</p><p>  (3) START:A/D轉(zhuǎn)換啟動(dòng)信號(hào)輸入端。</p><p>  (4) ALE:地址鎖存允許信號(hào),高電平有效。</p><p>  (5) EOC:輸出允許控制信號(hào),高電平有效。</p><p>  (6) OE: 輸出允許控制信號(hào),高電平有效。</p><p>  (7) CLK:時(shí)鐘信號(hào)輸

20、入端。</p><p>  (8)ADDA、ADDB、ADDC:轉(zhuǎn)換通道地址,控制8路模擬通道的切換。ADDA、ADDB、ADDC分別與地址線或數(shù)據(jù)線相連,三位編碼對(duì)應(yīng)8個(gè)通道地址端口,ADDA、ADDB、ADDC=000~111分別對(duì)應(yīng)IN0~IN7通道的地址端口。</p><p><b>  使用方法:</b></p><p>  ADC0

21、808采用逐次比較的方法完成A/D轉(zhuǎn)換,由單一的+5V電源供電。片內(nèi)帶有鎖存功能的8路選1的模擬開關(guān),由ADDA、ADDB、ADDC的編碼來決定所選的通道。ADC0808完成一次轉(zhuǎn)換需100μs左右,它具有輸出TTL三態(tài)鎖存緩沖器,可直接連接到AT89C51的數(shù)據(jù)總線上。通過適當(dāng)?shù)耐饨与娐罚珹DC0808可對(duì)0~5V的模擬信號(hào)進(jìn)行轉(zhuǎn)換。</p><p><b>  五、部分電路介紹</b>&

22、lt;/p><p><b>  1、晶振電路</b></p><p>  本設(shè)計(jì)系統(tǒng)采用內(nèi)部時(shí)鐘方式,利用單片機(jī)內(nèi)部的高增益反相放大器,外部電路簡(jiǎn),只需要一個(gè)晶振和 2個(gè)電容即可,如下圖所示。</p><p><b>  晶振電路</b></p><p>  電路中的器件選擇可以通過計(jì)算和實(shí)驗(yàn)確定,也可

23、以參考一些典型電路。參數(shù),電路中,電容器C1和C2對(duì)震蕩頻率有微調(diào)作用,通常的取值范圍是30±10pF,在這個(gè)系統(tǒng)中選擇了33pF;石英晶振選擇范圍最高可選24MHz,它決定了單片機(jī)電路產(chǎn)生的時(shí)鐘信號(hào)震蕩頻率,在本系統(tǒng)中選擇的是12MHz,因而時(shí)鐘信號(hào)的震蕩頻率為12MHz。</p><p><b>  2、復(fù)位電路</b></p><p>  單片機(jī)在啟動(dòng)

24、運(yùn)行時(shí)都需要復(fù)位,使CPU和系統(tǒng)中的其他部件都處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作。MCS-51單片機(jī)有一個(gè)復(fù)位引腳RST,采用施密特觸發(fā)輸入。當(dāng)震蕩器起振后,只要該引腳上出現(xiàn)2個(gè)機(jī)器周期以上的高電平即可確保時(shí)器件復(fù)位。復(fù)位完成后,如果RST端繼續(xù)保持高電平,MCS-51就一直處于復(fù)位狀態(tài),只要RST恢復(fù)低電平后,單片機(jī)才能進(jìn)入其他工作狀態(tài)。</p><p><b>  復(fù)位電路</b&g

25、t;</p><p><b>  3、模擬輸入電路</b></p><p>  通過可變電阻一端接電源+5v,一端接地GND,通過改變電阻的阻值,從而改變所測(cè)電壓值,實(shí)現(xiàn)電壓的模擬信號(hào)輸入。</p><p><b>  模擬輸入電路</b></p><p><b>  六、軟件設(shè)計(jì)<

26、/b></p><p><b>  程序流程圖:</b></p><p><b>  主程序流程圖</b></p><p><b>  A/D轉(zhuǎn)換流程圖</b></p><p><b>  源程序:</b></p><p> 

27、 /*************************************</p><p>  *程序功能:實(shí)現(xiàn)數(shù)模轉(zhuǎn)換,并將結(jié)果在*</p><p>  *數(shù)碼管上顯示出來。 */</p><p>  #include <reg51.h></p><p>  #include<absac

28、c.h></p><p>  #define LED_Data P2</p><p>  #define A 10</p><p>  #define U 11</p><p>  sbit LED1=P3^0;</p><p>  sbit LED2=P3^1;</p><p>  

29、sbit LED3=P3^2;</p><p>  sbit LED4=P3^3;</p><p>  sbit dp=P3^5;</p><p>  #define LED_slect P3</p><p>  #define uchar unsigned char</p><p>  #define uin

30、t unsigned int</p><p>  static uchar dispdata[4];</p><p>  unsigned char code num[]={</p><p>  0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x3e</p><p>  };

31、 //數(shù)字編碼</p><p><b>  //AD0809</b></p><p>  #define XBYTE ((unsigned char volatile xdata *) 0) </p><p>  #define adin XBYTE[0x7ff9] //0809的外部地址&l

32、t;/p><p>  void delayus(uint us)</p><p><b>  {</b></p><p>  while(us--);</p><p><b>  }</b></p><p>  uchar ad_action(uchar ch)//0~255代表

33、0~5V,所以V=out*5.0/255</p><p><b>  {</b></p><p>  uchar read_data;</p><p>  adin=ch; //ch:通道號(hào)</p><p>  delayus(6);</p><p>  read_data

34、=adin; //????</p><p>  return read_data; //0809的輸出,數(shù)字量</p><p><b>  /*</b></p><p>  LCALL ad_action(C:0463)</p><p>  MOV DPTR,#0x7FFF</p>

35、<p>  MOV A,R7</p><p>  MOVX @DPTR,A</p><p>  MOV R7,#0x06</p><p>  MOV R6,#0x00</p><p>  LCALL delayus(C:02D3)</p><p>  MOVX

36、 A,@DPTR</p><p>  MOV R7,A</p><p><b>  RET </b></p><p><b>  */</b></p><p><b>  } </b></p><p><b>  //數(shù)碼管

37、顯示控制</b></p><p>  void decodenum(float adv,uchar ch) //ch: AD通道號(hào)</p><p><b>  {</b></p><p>  uint temp;</p><p>  temp=(uint)(adv*1000);//若顯示3位: temp=(u

38、int)(adv*100)</p><p>  dispdata[0]=temp/1000;</p><p>  dispdata[1]=temp/100%10;</p><p>  dispdata[2]=temp/10%10;</p><p>  dispdata[3]=temp%10;</p><p>  dis

39、pdata[3]=ch;//可在最后1位顯示通道號(hào)</p><p><b>  }</b></p><p>  void select(uchar LED)</p><p><b>  {</b></p><p>  switch(LED)</p><p><b>

40、  {</b></p><p>  case 0:LED1=0;break;</p><p>  case 1:LED2=0;break;</p><p>  case 2:LED3=0;break;</p><p>  case 3:LED4=0;break;</p><p>  default: LED

41、_slect=0xff;</p><p><b>  }</b></p><p><b>  }</b></p><p>  void dispone(uchar LED,bit ifpoint,uchar number) //,number 0--9</p><p><b>  {

42、 </b></p><p>  select(LED);</p><p>  if(ifpoint)</p><p><b>  dp=1;</b></p><p><b>  else</b></p><p><b>  dp=0;</b

43、></p><p>  LED_Data=num[number]|0x80;</p><p>  delayus(200);</p><p>  LED_slect=0xff;</p><p><b>  }</b></p><p>  void disp()</p><

44、p><b>  {</b></p><p><b>  uchar i;</b></p><p>  bit point;</p><p>  for(i=0;i<4;i++)</p><p><b>  {</b></p><p><

45、b>  if(i==0)</b></p><p><b>  point=1;</b></p><p><b>  else</b></p><p><b>  point=0;</b></p><p>  dispone(i,point,dispdata[i

46、]);</p><p><b>  }</b></p><p><b>  } </b></p><p>  #define addo (5.0/255.0)</p><p>  #define zero 0.005 //用于校準(zhǔn)AD的誤差 </p><p>  void

47、 main()</p><p><b>  {</b></p><p>  uint cnt=0;</p><p>  //ad_action(0); </p><p><b>  while(1)</b></p><p><b>  {</b><

48、;/p><p>  switch(cnt++)</p><p><b>  {</b></p><p>  case 0: decodenum(ad_action(0)*addo+zero,0);break; </p><p>  /* case 0: decodenum(ad_action(0)*

49、addo+zero,0);break; </p><p>  case 70: decodenum(ad_action(1)*addo+zero,1);break;</p><p>  case 140: decodenum(ad_action(2)*addo+zero,2);break;</p><p>  case 210: decodenum(ad_acti

50、on(3)*addo+zero,3);break;</p><p>  case 280: decodenum(ad_action(4)*addo+zero,4);break;</p><p>  case 350: decodenum(ad_action(5)*addo+zero,5);break;</p><p>  case 420: decodenum(ad

51、_action(6)*addo+zero,6);break;</p><p>  case 490: decodenum(ad_action(7)*addo+zero,7);break;*/</p><p>  case 560:cnt=0;break;</p><p><b>  }</b></p><p><b

52、>  disp();</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  七、總結(jié)與體會(huì)</b></p><p>  經(jīng)過一周的努力終于設(shè)計(jì)成功,LED的顯示結(jié)果和直接用數(shù)字電壓表測(cè)試模擬量輸入所

53、得結(jié)果幾乎一致,誤差完全在合理的范圍之內(nèi)。由于儀器誤差,LED顯示最大值只能是5.005V,離標(biāo)準(zhǔn)最大值5.0V已經(jīng)不遠(yuǎn),達(dá)到預(yù)期目的,設(shè)計(jì)成功。 本設(shè)計(jì)參考了教材上第十一章89C51與ADC0809轉(zhuǎn)換的接口連線,設(shè)計(jì)出電路圖的連線,從并中理解了許多基本的知識(shí)和接線方法,在程序的設(shè)計(jì)與電壓表調(diào)試的過程中遇到了很多的問題,剛開始時(shí)四個(gè)數(shù)碼管根本不顯示,后來發(fā)現(xiàn)用的是共陽極的數(shù)碼管,而設(shè)計(jì)是共陰極的,更換后數(shù)碼管終于顯示,但問題又

54、出現(xiàn)了,單路顯示和循環(huán)顯示的開關(guān)不能控制電路的單路顯示和循環(huán)顯示,經(jīng)過仔細(xì)地檢查電路和修改程序,采用中斷的方法,產(chǎn)生一次外部中斷0,程序轉(zhuǎn)移到單路顯示,按一次單路顯示開關(guān),地址加一,轉(zhuǎn)換的模擬通道相應(yīng)的加一,如果按下循環(huán)按鍵就返回循環(huán)顯示的程序,功夫不負(fù)有心人,最后終于調(diào)試成功。</p><p>  在此再次向帶領(lǐng)我們這次課程設(shè)計(jì)的老師說聲:謝謝! </p><p><b>  

55、八、參考文獻(xiàn)</b></p><p>  1.胡健.單片機(jī)原理及接口技術(shù).北京:機(jī)械工業(yè)出版社,2004年10月</p><p>  2. 魏立峰.單片機(jī)原理及應(yīng)用技術(shù).北京大學(xué)出版社,2005年</p><p>  3. 何立民.單片機(jī)中級(jí)教程-原理與應(yīng)用. 北京航空航天大學(xué)出版社</p><p>  4. 苗紅霞.單片機(jī)實(shí)現(xiàn)數(shù)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論