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

下載本文檔

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

文檔簡介

1、<p><b>  直流電機速度控制</b></p><p><b>  1設(shè)計內(nèi)容及要求</b></p><p><b>  1.1設(shè)計目的</b></p><p>  設(shè)計制作和調(diào)試一個由MCS51單片機組成的直流測控系統(tǒng)。通過這個過程學(xué)習(xí)熟悉鍵盤控制和七段數(shù)碼管的使用,掌握直流電機的速

2、度控制和測試方法。</p><p><b>  1.2預(yù)習(xí)與參考</b></p><p>  MCS51單片機匯編程序語言、計算機控制技術(shù)、自動控制原理、</p><p>  1.3 設(shè)計(設(shè)計)要求設(shè)計指標</p><p>  1.在顯示器上顯示任意四位十進制數(shù)</p><p>  2.將8個鍵

3、定義鍵值為0~7,按任意鍵在顯示器上顯示對應(yīng)鍵值</p><p><b>  3.實現(xiàn)功能:</b></p><p> ?。?)定義鍵盤按鍵:5個為數(shù)字鍵0~4;3個功能鍵:設(shè)置SET、清零 CLR、開始START;</p><p> ?。?)顯示器上的四位可顯示每分鐘的速度;</p><p> ?。?)通過鍵盤的按鍵,

4、設(shè)置直流電機每分鐘的速度值;</p><p>  (4)按START鍵啟動電機開始轉(zhuǎn)動,按SET鍵停止;按CLR鍵清零。</p><p><b>  2控制芯片選擇</b></p><p>  根據(jù)實驗要求選擇80C31芯片。選擇該芯片可以根據(jù)控制開關(guān)按鈕的開關(guān)狀態(tài),控制數(shù)碼管的數(shù)字顯示以及變頻直流電動機的轉(zhuǎn)速。</p><

5、p>  80C31單片機,是8位高性能單片機,具有40根引腳。屬于標準的MCS-51的HCMOS產(chǎn)品。它結(jié)合了HMOS的高速和高密度技術(shù)及CHMOS的低功耗特征,標準MCS-51單片機的體系結(jié)構(gòu)和指令系統(tǒng)。 80C31內(nèi)置中央處理單元、128字節(jié)內(nèi)部數(shù)據(jù)存儲器RAM、32個雙向輸入/輸出(I/O)口、2個16位定時/計數(shù)器和5個兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)時鐘振蕩電路。</p><p>  40

6、根引腳按其功能可分為四類: </p><p><b>  1. 電源線2根 </b></p><p>  VCC:編程和正常操作時的電源電壓,接+5V。 </p><p><b>  VSS:地電平。 </b></p><p><b>  2. 晶振:2根 </b></p

7、><p>  XTAL1:振蕩器的反相放大器輸入。使用外部震蕩器是必須接地。 </p><p>  XTAL2:振蕩器的反相放大器輸出和內(nèi)部時鐘發(fā)生器的輸入。當使用外部振蕩器時用于輸入外部振蕩信號。 </p><p>  3. I/O口有p0、p1、p2、p3共四個8位口,32根I/O線,其功能如下: </p><p>  P0.0~P0.7 (

8、AD0~AD7) 是I/O端口O的引腳,端口O是一個8位漏極開路的雙向I/O端口。在存取外部存儲器時,該端口分時地用作低8位的地址線和8位雙向的數(shù)據(jù)端口(在此時內(nèi)部上拉電阻有效)。</p><p>  P1.0~P1.7 端口1的引腳,是一個內(nèi)部上拉電阻的8位雙向I/O通道,專供用戶使用。 </p><p>  P2.0~P2.7 (A8~A15) 端口2的引腳。端口2是一個帶內(nèi)部上拉電阻

9、的8位雙向I/O口,在訪問外部存儲器時,它輸出高8位地址A8~A15 </p><p>  P3.0~P3.7 端口3的引腳。端口3是一個帶內(nèi)部上拉電阻的8位雙向I/O端口,該口的每一位均可獨立地定義第一I/O口功能或第二I/O口功能。作為第一功能使用時,口的結(jié)構(gòu)與操作與P1口完全相同,第二功能如下示: </p><p>  P3.0 RXD(串行輸入口) </p><

10、p>  P3.1 TXD(串行輸出口) </p><p>  P3.2 (外部中斷) </p><p>  P3.3 (外部中斷) </p><p>  P3.4 T0(定時器0外部輸入) </p><p>  P3.5 T1(定時器1外部輸入) </p><p>  P3.6 (外部數(shù)據(jù)存儲器寫選通) <

11、/p><p>  P3.7 (外部數(shù)據(jù)存儲器讀選通) </p><p>  圖2-1 8031管腳圖</p><p>  3方案選擇與結(jié)構(gòu)設(shè)計</p><p><b>  3.1矩陣式鍵盤</b></p><p>  3.1.1矩陣式鍵盤設(shè)計</p><p>  根據(jù)實驗要求

12、通過按鍵開關(guān)可以控制數(shù)碼管的顯示,并且可以通過80C31芯片控制變頻直流電動機的轉(zhuǎn)速,所以設(shè)計一種鍵盤式的按鈕開關(guān)矩陣。</p><p>  矩陣式鍵盤的按鍵識別方法 ,確定矩陣式鍵盤上何鍵被按下介紹一種“行掃描法”。</p><p>  行掃描法 行掃描法又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識別方法,介紹過程如下。</p><p>  1、判斷鍵盤中有

13、無鍵按下 將全部行線置低電平,然后檢測列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與行線相交叉的按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。 </p><p>  2、判斷閉合鍵所在的位置 在確認有鍵按下后,即可進入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時,其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測各列線的電平狀態(tài)。若

14、某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。</p><p>  在這次課程設(shè)計中要求有8個按鍵,其中包過0-4這5個數(shù)字按鍵,以及3個功能鍵:設(shè)置SET、清零 CLR、開始START。所以我們將這些鍵按照兩行 三列來排列。其中的數(shù)字鍵我們可以按照基本的逐行掃描查詢法經(jīng)行按鍵識別。 </p><p>  其中的0-3數(shù)字鍵的

15、一端與80C51 的P1.0,其余的另一端分別連接80C51單片機的P1.4,P1.5,P1.6,P1.7相連。設(shè)置SET功能鍵分別連接P1.2和P1.6,開始START功能鍵分別連接P1.3,P1.4,而剩下的功能鍵CLR則分別連接P1.2,P1.7,這樣就可以利用按鈕開關(guān)和80C51芯片構(gòu)成簡單的矩陣式鍵盤。</p><p>  圖3-1 矩陣式鍵盤</p><p>  3.1.2

16、矩陣式鍵盤程序及程序流程圖</p><p>  在80C51單片機的程序編寫上,采用C語言的程序編寫方法。鍵盤設(shè)計部分的程序流程圖如下:</p><p>  C語言編寫的應(yīng)用于80C31控制數(shù)字鍵盤使其實現(xiàn)功能的程序如下:</p><p>  void key()</p><p><b>  {</b></p>

17、;<p>  uchar i,temp,lie,hang,shu;</p><p>  for(i=0;i<4;i++) //求出按鍵值</p><p><b>  {</b></p><p>  P1=~chose[i];</p><p><b>  temp=P1;</b&

18、gt;</p><p>  temp=temp&0xf0;</p><p>  if(temp!=0xf0)</p><p><b>  {</b></p><p><b>  hang=i;</b></p><p>  if(temp==0xe0)</p>

19、;<p><b>  lie=1;</b></p><p>  else if(temp==0xd0)</p><p><b>  lie=2;</b></p><p>  else if(temp==0xb0)</p><p><b>  lie=3;</b>&

20、lt;/p><p>  else if(temp==0x70)</p><p><b>  lie=4;</b></p><p>  break;</p><p><b>  }</b></p><p><b>  } </b></p>

21、<p>  shu=hang*4+lie;//數(shù)為對應(yīng)的按鍵</p><p>  switch(shu)</p><p><b>  {</b></p><p>  case 1: if(!flag)yishu(0);break;</p><p>  case 2: if(!flag) yishu(

22、1);break;</p><p>  case 3: if(!flag) yishu(2);break;</p><p>  case 4: if(!flag) yishu(3);break;</p><p>  case 5: if(!flag) yishu(4);break;</p><p>  case 6: flag++;fl

23、ag1++; break;</p><p>  case 7: sv=0;miaoshu=0;flag=0;flag1=0;break;</p><p>  case8: flag1++; break;</p><p>  default: break;</p><p><b>  }</b></p>&

24、lt;p>  while(temp!=0xf0)//放鍵檢測</p><p><b>  {</b></p><p><b>  temp=P1;</b></p><p>  temp=temp&0xf0;</p><p>  for(i=0;i<10;i++)</p&g

25、t;<p>  display(sv,miaoshu);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //按鍵檢測程序</b></p><p>  void keyscan()</p>

26、<p><b>  {</b></p><p>  uchar temp;</p><p><b>  P1=0xf0;</b></p><p><b>  temp=P1;</b></p><p>  temp=temp&0xf0;</p>&

27、lt;p>  if(temp!=0xf0)</p><p><b>  {</b></p><p>  delay(5);//消除抖動</p><p><b>  P1=0xf0;</b></p><p><b>  temp=P1;</b></p>&l

28、t;p>  temp=temp&0xf0;</p><p>  if(temp!=0xf0)</p><p><b>  key();</b></p><p><b>  }</b></p><p><b>  }</b></p><p>

29、  void pid(void) //PID 計算輸出量</p><p><b>  {</b></p><p>  ek=sv-miaoshu;</p><p>  uk=uk_1+q0*ek+q1*ek_1+q2*ek_2;</p><p>  ek_2=ek_1;</p><p><

30、b>  ek_1=ek;</b></p><p><b>  uk_1=uk;</b></p><p>  if(uk>501)</p><p>  uk=501; //限定輸出上限</p><p><b>  if(uk<1):</b></p><

31、p>  uk=1; //限定輸出下限</p><p><b>  }</b></p><p>  3.2數(shù)碼管轉(zhuǎn)速顯示</p><p>  LED數(shù)碼管(LED Segment Displays)是由多個發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在內(nèi)部連接完成,只需引出它們的各個筆劃,公共電極。</p><p&

32、gt;<b>  圖3-2數(shù)碼管</b></p><p>  數(shù)碼管要正常顯示,就要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類。 </p><p>  靜態(tài)驅(qū)動也稱直流驅(qū)動。靜態(tài)驅(qū)動是指每個數(shù)碼管的每一個段碼都由一個單片機的I/O端口進行驅(qū)動,或者使用如BCD碼二-十進制譯碼器譯碼進行驅(qū)動。靜態(tài)

33、驅(qū)動的優(yōu)點是編程簡單,顯示亮度高,缺點是占用I/O端口多,如驅(qū)動5個數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O端口來驅(qū)動,要知道一個89S51單片機可用的I/O端口才32個呢:),實際應(yīng)用時必須增加譯碼驅(qū)動器進行驅(qū)動,增加了硬件電路的復(fù)雜性。 </p><p>  數(shù)碼管動態(tài)顯示接口是單片機中應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp&

34、quot;的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示過程中,每位數(shù)碼管的點

35、亮?xí)r間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。 </p><p>  在本次課程設(shè)計中需要用到4個數(shù)碼管在靜態(tài)顯示的工作狀態(tài)下工作,用80C31來驅(qū)動數(shù)碼管正常工作。為了使數(shù)碼管顯示數(shù)據(jù)的時候穩(wěn)定準確,一般是接在80C

36、31單片機的P0口上接一個RESPACK-8排阻,因為P0口內(nèi)部沒有上拉電阻,不能輸出高電平,所以要接上拉電阻。排阻就是好多電阻連載一起,他們有一個公共端 。</p><p>  在用80C31控制4個7位數(shù)碼管的時候后我們還要用到74HC240。74花癡40是一款高速CMOS器件,引腳兼容低功耗雙八線反響緩沖線路驅(qū)動器,具有三態(tài)輸出,該三臺輸出有時能斷控制,任意NOE上的高電平將使輸出端呈現(xiàn)高阻態(tài)。74HC24

37、0在電路中起緩沖保護作用。</p><p><b>  數(shù)碼管顯示流程圖:</b></p><p><b>  數(shù)碼管顯示子程序:</b></p><p>  void display(uint a,uint b)</p><p><b>  {</b></p>

38、<p><b>  char i;</b></p><p>  shu[0]=a/100;</p><p>  shu[1]=a%100/10;</p><p>  shu[2]=a%10;</p><p>  shu[3]=b/100;</p><p>  for(i=0;i<

39、4;i++)</p><p><b>  {</b></p><p>  P2=chose[i];</p><p>  P0=table[shu[i]];</p><p>  delay(3);</p><p><b>  }</b></p><p&

40、gt;<b>  }</b></p><p>  3.3電動機驅(qū)動電路設(shè)計</p><p>  直流電動機調(diào)速的驅(qū)動電路部分,選擇采用基于L298的直流電動機PWM調(diào)速方法。</p><p>  PWM調(diào)速裝置是利用大功率晶體管的開關(guān)特性來調(diào)制固定電壓的直流電源,按一個固定的頻率來接通和斷開 ,并根據(jù)需要來調(diào)節(jié)一個周期內(nèi)接通和斷開的時間的長短,

41、通過改變直流電動機上電樞電壓的占空比來改變平均電壓的大小,從而控制電動機的轉(zhuǎn)速。</p><p>  在整個PWM調(diào)速器中,CPU既是運算處理中心,又是控制中心,是最關(guān)鍵的器件。本系統(tǒng)中選用與MCS一5l系列完全兼容的80C31單片機,它是一種低功耗、高性能、CMOS八位微處理器。</p><p>  3.3.1驅(qū)動電路程序流程圖</p><p><b>

42、  流程圖如下 :</b></p><p>  3.3.2驅(qū)動電路子程序</p><p>  void t0(void) interrupt 1 using 0 //定時T0中斷服務(wù)函數(shù)</p><p><b>  {</b></p><p>  tcnt++; //每過250ust tcnt 加一</

43、p><p>  if(tcnt==40) //計滿40 次(1/100 秒)時</p><p><b>  {</b></p><p>  tcnt=0; //重新再計</p><p><b>  sec++;</b></p><p>  if(sec==10) //定時0.

44、1 秒,在從零開始計時</p><p><b>  {</b></p><p><b>  sec=0;</b></p><p>  TH0=0x06; //對TH0 TL0 賦值</p><p><b>  TL0=0x06;</b></p><p>

45、  miaoshu=count;</p><p><b>  count=0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  vo

46、id sdf(void) interrupt 2 using 0 //計數(shù)T1中斷服務(wù)函數(shù)</p><p><b>  { </b></p><p>  count=count+1;</p><p><b>  }</b></p><p><b>  //左移一位</b>&

47、lt;/p><p>  void yishu(uchar num)</p><p><b>  {</b></p><p>  uchar bai,shi,ge;</p><p>  bai=sv%100/10;</p><p>  shi=sv%10;</p><p><

48、;b>  ge=num;</b></p><p>  sv=bai*100+shi*10+ge;</p><p><b>  }</b></p><p>  3.4芯片80C31在電路中的控制</p><p>  80C31芯片是整個電路中最重要的部分,它需要讀取矩陣式鍵盤按鈕開關(guān)的信息,并通過編碼程序

49、進行一定的數(shù)字編碼,然后輸出控制直流電動機和八位數(shù)碼管顯示,達到完整控制直流電動機調(diào)速。</p><p>  控制編碼部分子程序:</p><p><b>  main()</b></p><p><b>  {</b></p><p>  q0=Kp*(1+T/Ti+Td/T);//先算出PID的

50、計算參數(shù)</p><p>  q1=-Kp*(1+2*Td/T);</p><p>  q2=Kp*Td/T;</p><p><b>  p30=0;</b></p><p><b>  EX0=1;</b></p><p><b>  IT1=1;</b&

51、gt;</p><p>  TMOD=0x02; //定時器T0工作在方式2 自動重裝方式,計數(shù)器T1工作在方式2 自動重裝方式</p><p>  TH0=0x06; //對TH0 TL0 賦值</p><p><b>  TL0=0x06;</b></p><p>  TR0=1; //開始定時</p>

52、<p>  ET0=1; //允許T0 產(chǎn)生中斷</p><p><b>  EA=1;</b></p><p><b>  EX1=1;</b></p><p><b>  EA=1;</b></p><p><b>  sec=0;</b>

53、</p><p>  SCON=0x90; //MODER1,REN=1;</p><p>  PCON=0x00;</p><p>  miaoshu=0;tcnt=0;count=0;sv=0;</p><p><b>  flag=0;</b></p><p><b>  whil

54、e(1)</b></p><p><b>  { </b></p><p>  eleyscan();</p><p>  if(flag==2)</p><p><b>  p30=0;</b></p><p>  if(flag1==2)</p>

55、<p><b>  {</b></p><p><b>  uint i;</b></p><p><b>  pid();</b></p><p>  if(ek>100)</p><p><b>  {</b></p>

56、<p><b>  p30=1;</b></p><p><b>  }</b></p><p>  else if(ek>=0)</p><p><b>  {</b></p><p><b>  p30=1;</b></p>

57、<p>  display(sv,miaoshu);</p><p><b>  p30=0;</b></p><p>  delay(50-uk/10);</p><p><b>  }</b></p><p>  else if(ek<0)</p><p

58、><b>  p30=0;</b></p><p><b>  }</b></p><p>  display(sv,miaoshu); </p><p><b>  } </b></p><p><b>  }</b></

59、p><p>  4直流電動機調(diào)速控制電路仿真</p><p>  本次課程設(shè)計采用proteus7.7軟件進行仿真電路的設(shè)計與制作。</p><p>  Proteus軟件是英國Labcenter electronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。此次課程設(shè)計主要用

60、到proteus軟件的原理圖布局和電器電路仿真。</p><p><b>  4.1原理圖布局</b></p><p>  此次設(shè)計的完整電路圖包括矩陣式鍵盤部分,數(shù)碼管數(shù)字顯示,電動機的PWM調(diào)速控制以及整個電路設(shè)計中的核心芯片80C31芯片。</p><p>  圖4-1直流電動機速度控制原理圖布局</p><p>

61、  圖4-2 直流電動機速度控制仿真效果</p><p><b>  5結(jié)束語</b></p><p>  通過本次課程設(shè)計,加深了對計算機控制技術(shù)中的51系列單片機的認識和理解,對其應(yīng)用有了更深沉的了解,特別是在51系列單片機的編程和數(shù)字控制方面的學(xué)習(xí)。在對電路進行原理圖布局和仿真的過程中,了解并學(xué)會使用了仿真軟件proteus,對其基本用法和一些擴展功能有所了解

62、。在以后的電路仿真中或用到此次課程設(shè)計所積累的經(jīng)驗。其次就是在對電路進行連接的過程中,加強了實際動手操作能力,和應(yīng)對突發(fā)問題的處理能力。</p><p>  矩陣式鍵盤設(shè)計方面,通過網(wǎng)絡(luò)和書籍基本了解了矩陣式鍵盤的設(shè)計方法和原理,對矩陣式鍵盤有了一定的了解。可以連接比較簡單的數(shù)碼管顯示電路,通過80C31單片機可以達到對數(shù)碼管的控制顯示輸出,在這方面獲得了更多的知識。再就是直流電動機轉(zhuǎn)速控制方案的選擇以及電路圖的

63、設(shè)計,結(jié)合電力電子技術(shù)方面的知識,達到多種知識的相互結(jié)合運用,對以后的學(xué)習(xí)將會有更多的幫助!</p><p><b>  參考文獻</b></p><p>  【1 】張波《計算機控制技術(shù)》 中國電力出版社,2010年版</p><p>  【2 】孫增圻《計算機控制理論及應(yīng)用》 清華大學(xué)出版社 1989年版</p><p&

64、gt;  【3 】于海生《微型計算機控制技術(shù)》 清華大學(xué)出版社1999年版</p><p>  【4 】黃一夫《微型計算機控制技術(shù)》 機械工業(yè)出版社 1988年版</p><p>  【5 】戴冠中《計算機控制原理》 國防工業(yè)出版社 2005年版</p><p>  【6 】王兆安 黃俊 《電力電子技術(shù)》 西安交通大學(xué)出版社,2005年版</p>&l

65、t;p>  【7 】郭天祥《51單片機C語言教程》</p><p>  【8 】王兆安 劉進軍《電力電子技術(shù)》 機械工業(yè)出版社 2009年版</p><p>  【9 】Binmal k.bose 《power electronics and motor driver》 Elsevier Science</p><p>  【10】John G 《Princ

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論