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

下載本文檔

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

文檔簡介

1、<p><b>  電機測速系統(tǒng)設(shè)計</b></p><p><b>  設(shè)計目的</b></p><p>  測量小功率直流電機的轉(zhuǎn)速</p><p>  本次課程設(shè)計主要以單片機,直流電動機和顯示器等器件及軟件程序為基礎(chǔ),設(shè)計了一個簡單的基于單片機的電機測速系統(tǒng)。本統(tǒng)采用PWM測量電動機的轉(zhuǎn)速,用STC89C

2、52單片機對直流電動機的轉(zhuǎn)速進行控制和檢速。本設(shè)計主要要求設(shè)計系統(tǒng)的基本結(jié)構(gòu)、工作原理、運行特性及其設(shè)計方法有一定的掌握,且最終應(yīng)用理論知識做出一個完整的簡單測速模型,從而對測速系統(tǒng)的專業(yè)知識及機械化等方面的知識有一定的拓展。</p><p><b>  二、設(shè)計要求</b></p><p>  1.用按鍵控制電機起停;</p><p>  2

3、.電機有兩種速度,可通過按鍵改變;</p><p>  3.用數(shù)碼管顯示電機每分鐘或每秒轉(zhuǎn)數(shù)。</p><p>  STC89C52單片機的介紹</p><p>  本系統(tǒng)采用單片機STC8952作為主控制器,使用光電傳感器測量電機的轉(zhuǎn)速,最終在LED上顯示測試結(jié)果。此外,還可以根據(jù)需要調(diào)整制電機的轉(zhuǎn)速,硬件組成由圖3.1所示。</p><p&g

4、t;  單片機( single Micro Controller Unit),又稱為微控制器,是指在一塊芯片上集成了中央處理器CPU、隨機存儲器RAM、程序存儲器ROM、定時器/計數(shù)器、中斷控制器以及串行和并行I/0 接口等部件,構(gòu)成一個完整的微型計算機。目前,新型單片機內(nèi)還有A/D(D/A)轉(zhuǎn)換器、高速輸入輸出部件、DMA 通道、浮點運算等特殊功能部件。由于它的結(jié)構(gòu)和指令功能都是按工業(yè)控制要求設(shè)計的,特別適用于工業(yè)控制及其數(shù)據(jù)處理場

5、合。</p><p>  STC89C52是擁有256字節(jié)的RAM,8K的片內(nèi)ROM,3個16位定時器,6個中斷源的微處理器,也就是俗稱的單片機。</p><p>  89系列單片機的內(nèi)核是8031,所以其指令與Intel 8051 系列單片機完全兼容,并且具有以下優(yōu)點:</p><p>  (1)內(nèi)部含有Flash 存儲器(STC89C52 有8k)。因此在系統(tǒng)的

6、開發(fā)過程中可以十分容易進行程序的修改,這就大大縮短了系統(tǒng)的開發(fā)周期。同時,在系統(tǒng)工作過程中,能有效地保存一些數(shù)據(jù)信息,即使外界電源損壞也不影響到信息的保存。</p><p>  (2)插座與80C51兼容。89系列單片機的引腳和80C51是一樣的,當用89系列單片機取代80C51時,可以直接進行代換。</p><p> ?。?)靜態(tài)時鐘方式。89系列單片機采用靜態(tài)時鐘方式,可以節(jié)省電能,這

7、對于降低便攜式產(chǎn)品的功耗十分有用。</p><p> ?。?)錯誤編程亦無廢品產(chǎn)生。因為89系列單片機內(nèi)部采用了Flash 存儲器,所以,錯誤編程之后仍可以重新編程,直到正確為止,故不存在廢品。</p><p> ?。?)可反復進行系統(tǒng)試驗。用89系列單片機設(shè)計的系統(tǒng),可以反復進行系統(tǒng)試驗,每次試驗可以編入不同的程序,這樣可以保證用戶的系統(tǒng)設(shè)計達到最優(yōu)。而且隨著用戶的需要和發(fā)展,還可以進行

8、修改,使系統(tǒng)不斷能追隨用戶的最新要求。</p><p>  STC8952引腳圖如圖3.5所示。</p><p><b>  四、系統(tǒng)設(shè)計</b></p><p>  1、直流電機調(diào)速原理:</p><p>  本設(shè)計的主要思想為利用PWM控制占空比從而達到改變電機速度。下面為PWM控制原理:</p>&l

9、t;p>  圖1為PWM降壓斬波器的原理電路及輸出電壓波形。在圖1a中,假定晶體</p><p>  管V1先導通T1,秒(忽略V1的管壓降,這期間電源電壓Ud全部加到電樞上),然后關(guān)斷T2秒(這期間電樞端電壓為零)。如此反復,則電樞端電壓波形如圖1b中所示。電動機電樞端電壓Ua為其平均值。</p><p>  圖1 PWM降壓斬波器原理電路及輸出電壓波形</p>&

10、lt;p>  原理圖 b)輸出電壓波形</p><p><b>  (3)</b></p><p><b>  式(3)中</b></p><p><b>  (4)</b></p><p>  為一個周期T中,晶體管V1導通時間的比率,稱為負載率或占空比。使用下面三種方

11、法中的任何一種,都可以改變的值,從而達到調(diào)壓的目的:</p><p>  (1)定寬調(diào)頻法:T1保持一定,使T2在0~∞范圍內(nèi)變化;</p><p>  (2)調(diào)寬調(diào)頻法:T2保持一定,使T1在0~∞范圍內(nèi)變化</p><p>  (3)定頻調(diào)寬法:T1+T2=T保持一定,使T,在0~T范圍內(nèi)變化。</p><p>  不管哪種方法,的變化范

12、圍均為0≤≤l,因而電樞電壓平均值Ua的調(diào)節(jié)范圍為0~Ud,均為正值,即電動機只能在某一方向調(diào)速,稱為不可逆調(diào)速。當需要電動機在正、反向兩個方向調(diào)速運轉(zhuǎn),即可逆調(diào)速時,就要使用圖1—2a所示的橋式(或稱H型)降壓斬波電路。</p><p>  在圖2a中,晶體管V1、V4是同時導通同時關(guān)斷的,V2、V3也是同時導通同時關(guān)斷的,但V1與V2、V3與V4都不允許同時導通,否則電源Ud直通短路。設(shè)V1、V4先同時導通T

13、1秒后同時關(guān)斷,間隔一定時間(為避免電源直通短路。該間隔時間稱為死區(qū)時問)之后,再使V2、V3同時導通T2秒后同時關(guān)斷,如此反復,則電動機電樞端電壓波形如圖2b所示。</p><p>  圖2 橋式PWM降壓斬波器原理電路及輸出電壓波形</p><p>  a)原理圖 b)輸出電壓波形</p><p>  電動機電樞端電壓的平均值為</p>&l

14、t;p><b>  (4)</b></p><p>  由于0≤≤1,Ua值的范圍是 -Ud~+Ud,因而電動機可以在正、反兩個方向調(diào)速運轉(zhuǎn)。</p><p>  圖3給出了兩種PWM斬波電路的電樞電壓平均值的特性曲線。</p><p>  圖3兩種斬波器的輸出電壓特性</p><p>  2、直流電動機測速原理

15、</p><p>  電機的葉輪置于紅外對射管之間,葉輪轉(zhuǎn)過,擋住傳感器,產(chǎn)生中斷,給單片機,從而實現(xiàn)計數(shù),進而計算出電機的速度。</p><p>  四、設(shè)計方案及分析(包含設(shè)計電路圖)</p><p><b>  總體設(shè)計思路:</b></p><p>  電機轉(zhuǎn)動,利用光電傳感器采集信號,送給單片機,單片機通過計算

16、,將傳感器采集到的信號通過數(shù)碼管顯示出來,流程圖如下:</p><p>  3、各硬件部分電路的設(shè)計:</p><p>  電機驅(qū)動及調(diào)速電路的設(shè)計</p><p>  采用專用電機控制集成芯片ULN2003a來控制電機轉(zhuǎn)動及調(diào)速,該方案簡單,可靠。其電路圖如下</p><p>  其原理是:ULN2003a芯片是16腳7路電機驅(qū)動芯片,這塊

17、芯片可以看做是7非門芯片,作用是保證1腳和16腳的輸出為一高一低。當某一時刻占空比大于50%時,電機呈現(xiàn)正轉(zhuǎn)加速或者反轉(zhuǎn)減速狀態(tài);某一時刻占空比小于50%時,電機呈現(xiàn)正轉(zhuǎn)減速或者反轉(zhuǎn)加速狀態(tài),電機就是通過矩形波占空比的不同來調(diào)節(jié)轉(zhuǎn)速的電機呈現(xiàn)出來的轉(zhuǎn)速是平均轉(zhuǎn)速。而我們這次是要測電機的兩種轉(zhuǎn)速,不需要電機的正反轉(zhuǎn),所以我們選擇電機正轉(zhuǎn)加速和正轉(zhuǎn)減速。</p><p><b>  4、轉(zhuǎn)速測量原理<

18、/b></p><p>  轉(zhuǎn)速的測量方法很多,根據(jù)脈沖計數(shù)來實現(xiàn)轉(zhuǎn)速測量的方法主要有M法(測頻法)、T法(測周期法)和MPT法(頻率周期法)等,該系統(tǒng)我們采用了M法。</p><p>  M法(測頻法):在規(guī)定(定時)的檢測時間內(nèi),檢測光電傳感器所產(chǎn)生的脈沖信號的個數(shù)來確定轉(zhuǎn)速。雖然檢測時間一定但檢測的起止時間具有隨機性,因此M法測量轉(zhuǎn)速在極端情況下會產(chǎn)生±1多個高低電平

19、。當被測轉(zhuǎn)速較高或電機轉(zhuǎn)動一圈發(fā)出的轉(zhuǎn)速脈沖信號的個數(shù)較大時,才有較高的測量精度,因此M法適合于較高速測量。</p><p>  由于轉(zhuǎn)速是以單位時間(秒)內(nèi)轉(zhuǎn)數(shù)來測量,在變換過程中多數(shù)是有規(guī)律的重復運動。根據(jù)光電效應(yīng)原理,將一片5齒葉輪固定定在電機轉(zhuǎn)軸上。轉(zhuǎn)盤隨測軸旋轉(zhuǎn),葉輪也將跟著同步旋轉(zhuǎn),在轉(zhuǎn)盤掃過光電器件ST151間時轉(zhuǎn)動時,光敏三極管時所產(chǎn)生三極管的導通與否。光電器(三極管E端)輸出脈沖信號,其頻率和轉(zhuǎn)

20、速成正比。脈沖信號的周期與電機的轉(zhuǎn)速有以下關(guān)系:</p><p><b>  R=N/(5*T)</b></p><p>  式中:N 為電機轉(zhuǎn)轉(zhuǎn)過圈數(shù);5為電機轉(zhuǎn)一圈的脈沖數(shù);T定時時長。</p><p>  根據(jù)上式即可計算出直流電機的轉(zhuǎn)速(r/s)。</p><p>  鑒于M法即測頻法,能夠很好的測量較高轉(zhuǎn)速的電

21、機,且其原理容易被設(shè)計者和使用者理解、掌握,故本次設(shè)計采用了M法。</p><p><b>  5、傳感檢測電路</b></p><p>  速度檢測電路是由光電傳感器和電機、葉輪組成。</p><p>  測量電機轉(zhuǎn)速的第一步就是要將電機地轉(zhuǎn)速表示為單片機可以識別的脈沖信號,從而進行脈沖計數(shù)。光電器件作為一種轉(zhuǎn)速測量系統(tǒng)的傳感器,具有結(jié)構(gòu)牢固

22、、體積小、重量輕、壽命長、安裝方便等優(yōu)點,當電機轉(zhuǎn)動時,帶動傳感器,產(chǎn)生對應(yīng)頻率的脈沖信號,經(jīng)過信號處理后輸出到計數(shù)器或其他的脈沖計數(shù)裝置,進行轉(zhuǎn)速的測量。</p><p>  在傳感檢測電路中,將光電傳感器和電機進行有效相連,然后把光電傳感器連接在單片機的外部中斷端口。工作時,當葉輪隨轉(zhuǎn)軸經(jīng)過光電傳感器時,由光電轉(zhuǎn)換工作原理知,每次有一個葉輪轉(zhuǎn)過時,將輸出一個低電平信號;而當葉輪離開光電傳感器后,又將輸出一個高

23、電平。這樣通過高低電平的轉(zhuǎn)換,將其送入單片機后就可以測量它的轉(zhuǎn)速。其電路如圖所示。</p><p>  6、單片機最小系統(tǒng)電路</p><p>  單片機最小系統(tǒng)電路如圖3.4所示,由主控器STC89C52、時鐘電路和復位電路三部分組成。單片機STC89C52作為核心控制器控制著整個系統(tǒng)的工作,而時鐘電路負責產(chǎn)生單片機工作所必需的時鐘信號,復位電路使得單片機能夠正常、有序、穩(wěn)定地工作。&l

24、t;/p><p>  圖3.4 單片機最小系統(tǒng)</p><p><b>  7、復位電路</b></p><p>  單片機在RESET端加一個大于20ms正脈沖即可實現(xiàn)復位,上電復位和按鈕組合的復位電路如圖2。</p><p>  在系統(tǒng)上電的瞬間,RST與電源電壓同電位,隨著電容的電壓逐漸上升,RST電位下降,于是在RS

25、T形成一個正脈沖。只要該脈沖足夠?qū)捑涂梢詫崿F(xiàn)復位,即ms。一般取R1,C22uF。</p><p>  當人按下按鈕S1時,使電容C1通過R1迅速放電,待S1彈起后,C再次充電,實現(xiàn)手動復位。R1一般取200。</p><p><b>  圖2 復位電路</b></p><p><b>  8.時鐘電路</b></

26、p><p>  當使用單片機的內(nèi)部時鐘電路時,單片機的XATL1和XATL2用來接石英晶體和微調(diào)電容,如圖3所示,晶體一般可以選擇3M~24M,電容選擇30pF左右。我們選擇晶振為12MHz,電容33pF。</p><p><b>  圖3 時鐘電路</b></p><p><b>  4)軟件設(shè)計</b></p>

27、;<p><b>  (1)主程序設(shè)計</b></p><p>  本系統(tǒng)采用STC89C52中的T0定時器和T1計數(shù)器配合使用對轉(zhuǎn)速脈沖定時計數(shù)。計數(shù)器T1工作于計數(shù)狀態(tài)對外部脈沖進行計數(shù);T0工作為定時器方式每次定時1s。本設(shè)計程序編程的思想就是在給定的1s之內(nèi),用單片機的計數(shù)器T0對外部脈沖進行計數(shù)。主程序的流程圖如圖4.1所示。</p><p>

28、  圖4.5 主程序流程圖</p><p>  (2) T0定時中斷程序設(shè)計</p><p>  T0定時中斷程序主要是完成10ms的定時任務(wù),并且對變量buf_min進行加一處理,其中在對T0進行賦初值時,選擇為10236而不是10000。主要是c語言在經(jīng)過反匯編后,一條c語句將會編譯成幾條語句,這樣就增加了指令執(zhí)行的時間,使定時產(chǎn)生誤差,而在經(jīng)過多次調(diào)試后,選擇10236為T0初值是

29、最接近10ms的。</p><p>  2.傳感器脈沖信號采集電路的設(shè)計</p><p>  采用光電式傳感器ST151采集信號,其電路圖如下</p><p>  其原理是:ST151光電式傳感器內(nèi)部是由一個發(fā)光二極管(左端)及一個光敏三極管(右端)組成,當電機的扇葉擋住發(fā)光二極管的時候,光敏三極管接收不到信號,不導通,此時,輸出端出書低電平送給單片機進行處理,再送

30、給數(shù)碼管顯示一個數(shù),當電機扇葉(假設(shè)電機只有一個扇葉)連續(xù)擋住發(fā)光二極管的時候,光敏三極管連續(xù)不導通,連續(xù)送給單片機低電平,數(shù)碼管就會顯示一段時間內(nèi)采集到的信號數(shù)量,即為電機的轉(zhuǎn)速。</p><p>  3.單片機時鐘電路的設(shè)計</p><p>  STC89C52單片機芯片內(nèi)部設(shè)有一個由反向放大器所構(gòu)成的振蕩器,19腳為振蕩器。反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端,18腳為振蕩器反相放大

31、器的輸出端,在18,19引腳上外接定時元器件,內(nèi)部振蕩電路就會產(chǎn)生自激震蕩。本系統(tǒng)采用的定時元器件為石英晶體(晶振)和電容組成的并聯(lián)諧振回路,晶振頻率為12MHz,電容大小為33pF。電路圖如下</p><p>  該部分電路負責產(chǎn)生單片機所必需的時鐘信號。</p><p>  4.單片機復位電路的設(shè)計</p><p>  STC89C52的復位是由外部的復位電路來

32、實現(xiàn)的,復位電路通常采用上電復位和按鈕復位兩種方式。本設(shè)計采用的是按鈕復位方式,時鐘頻率選用12MHz,電容選用100uF的電解電容,電阻選用10千歐。電路圖如下</p><p>  該部分電路作用是使單片機能夠正常,有序,穩(wěn)定地工作。</p><p>  4.按鍵控制電路的設(shè)計</p><p>  實驗要求通過按鍵控制電機的轉(zhuǎn)速,其電路圖如下</p>

33、<p>  開關(guān)按鍵是控制電機的起停,高低速按鍵是控制電機的兩種轉(zhuǎn)速</p><p><b>  5.數(shù)碼管顯示電路</b></p><p>  點亮LED顯示器由兩種方式:靜態(tài)顯示和動態(tài)顯示。所謂靜態(tài)顯示,就是顯示器顯示某一個字符時,相應(yīng)的發(fā)光二極管恒定的導通或截止,這種方式的電路,每一位可單獨顯示。只要在要顯示的那位段選線上保持段選電平,該位就能保持顯

34、示相應(yīng)的顯示字符。這種電路的優(yōu)點是:在同一瞬間可以顯示不同的字符;但缺點是占用的端口資源較多。所謂動態(tài)顯示,就是將要顯示的多位LED顯示器采用一個8位的段選端口,然后采用動態(tài)掃描方式一位一位地輪流點亮各位顯示器。本設(shè)計采用動態(tài)顯示,采用四位共陽極數(shù)碼管顯示,電路圖如下:</p><p>  其中用到一個排阻作為保護電阻,保護數(shù)碼管。還用到四個三極管,是為了放大信號,一是為了提高數(shù)碼管的亮度,二是為了避免信號太弱而

35、無法顯示。</p><p>  4、數(shù)碼管及顯示電路</p><p>  LED又稱為數(shù)碼管,它主要由8段發(fā)光二極管組成的不同組合,可以顯示a~g為數(shù)字和字符顯示段,h段為小數(shù)點顯示,通過a~g為7個發(fā)光段的不同組合,可以顯示0~9和A~F共16個數(shù)字和字母。LED可以分為共陰極和共陽極兩種結(jié)構(gòu)。共陰極結(jié)構(gòu)即把8個發(fā)光二極管陰極連在一起。這種裝入數(shù)碼管中顯示字形的數(shù)據(jù)稱字形碼,又稱段選碼。

36、</p><p>  點亮LED顯示器有兩種方式:一是靜態(tài)顯示:二是動態(tài)顯示。</p><p>  所謂靜態(tài)顯示,就是當顯示器顯示某一個字符時,相應(yīng)的發(fā)光二極管恒定的導通或截止。如圖3.4所示</p><p>  圖3.4  靜態(tài)顯示電路</p><p><b>  5、光電傳感器</b></p><

37、p>  光電傳感器是指能夠?qū)⒖梢姽廪D(zhuǎn)換成某種電量的傳感器。光敏二極管是最常見的光傳感器。光敏二極管的外型與一般二極管一樣,只是它的管殼上開有一個嵌著玻璃的窗口,以便于光線射入,為增加受光面積,PN結(jié)的面積做得較大,光敏二極管工作在反向偏置的工作狀態(tài)下,并與負載電阻相串聯(lián),當無光照時,它與普通二極管一樣,反向電流很?。ǎ?#181;A),稱為光敏二極管的暗電流;當有光照時,載流子被激發(fā),產(chǎn)生電子-空穴,稱為光電載流子。在外電場的作用

38、下,光電載流子參于導電,形成比暗電流大得多的反向電流,該反向電流稱為光電流。光電流的大小與光照強度成正比,于是在負載電阻上就能得到隨光照強度變化而變化的電信號。</p><p>  光敏三極管除了具有光敏二極管能將光信號轉(zhuǎn)換成電信號的功能外,還有對電信號放大的功能。光敏三級管的外型與一般三極管相差不大,一般光敏三極管只引出兩個極——發(fā)射極和集電極,基極不引出,管殼同樣開窗口,以便光線射入。為增大光照,基區(qū)面積做得

39、很大,發(fā)射區(qū)較小,入射光主要被基區(qū)吸收。工作時集電結(jié)反偏,發(fā)射結(jié)正偏。在無光照時管子流過的電流為暗電流Iceo=(1+β)Icbo(很?。?,比一般三極管的穿透電流還小;當有光照時,激發(fā)大量的電子-空穴對,使得基極產(chǎn)生的電流Ib增大,此刻流過管子的電流稱為光電流,集電極電流Ic=(1+β)Ib,可見光電三極管要比光電二極管具有更高的靈敏度。</p><p>  圖 3.6 光電傳感器</p><

40、p>  本次設(shè)計采用的光電傳感器如圖3.6所示。</p><p><b>  軟件部分的設(shè)計</b></p><p>  對于電機轉(zhuǎn)速的測定,一般有兩種方法:一種是測頻率,就是在給定時間內(nèi)測電機轉(zhuǎn)了幾圈,這種方法適合于高速旋轉(zhuǎn)的電機;另一種則是測周期,就是測電機轉(zhuǎn)一圈的時間,這種方法適合于測低速的電機。而我們這次使用的電機是一個高速的直流電機,所以就選用測頻法來

41、編程。</p><p>  本系統(tǒng)采用STC89C52中的T0定時器和T1計數(shù)器配合使用對轉(zhuǎn)速脈沖定時計數(shù)。計數(shù)器T1工作于計數(shù)狀態(tài)對外部脈沖進行計數(shù);T0工作為定時器方式每次定時10ms。本設(shè)計程序編程的思想就是在給定的10ms之內(nèi),用單片機自帶的計數(shù)器T1對外部脈沖進行計數(shù)。主程序的流程圖如下:</p><p>  五.問題分析與解決方法</p><p>  問

42、題1.電路板剛搭建好,接通電源的時候,數(shù)碼管不亮。</p><p>  分析:電源有可能沒接好,或者芯片沒供電,或者是程序編寫有問題。</p><p>  解決方法:通過檢查編寫的程序,沒有發(fā)現(xiàn)錯誤。再檢查整個電路板,發(fā)現(xiàn)確實是因為單片機沒有接電源,最后接上電源,數(shù)碼管點亮了,但是有點暗,也就是出現(xiàn)的第二個問題。</p><p>  問題2.數(shù)碼管亮度很低,顯示不清

43、楚。</p><p>  分析:電壓不夠,或者是哪個部分所加的電阻太大。</p><p>  解決方法:通過用萬用表檢測電源,顯示電壓源是5V左右,沒什么問題。再檢測每個管腳的電壓高低,也沒有問題。最后考慮到信號的強弱問題,在單片機和數(shù)碼管顯示電路之間加了三極管,最后數(shù)碼管亮度明顯提高,能夠清楚的顯示數(shù)字。</p><p>  問題3.接通電源,接上電機,發(fā)現(xiàn)數(shù)碼管

44、沒反應(yīng),不計數(shù)。</p><p>  分析:可能是計數(shù)部分的程序問題,還有數(shù)碼管的連接,傳感器的連接有問題。</p><p>  解決方法:通過檢查程序,沒有發(fā)現(xiàn)錯誤,再檢查顯示電路的設(shè)計,也沒發(fā)現(xiàn)問題,最后考慮到是不是數(shù)碼壞了,或者是接法不對,通過更換傳感器,數(shù)碼管依然沒變化,再通過網(wǎng)上查閱有關(guān)光電式傳感器的資料,發(fā)現(xiàn)傳感器接法不對,因為本次設(shè)計我們用的是光電式傳感器,當電機扇葉每遮住傳

45、感器中的光敏二極管一次,就采集一個低電平作為脈沖信號送給單片機處理,而我們所連接的電路是每當電機扇葉不遮住光敏二極管,就采集一個高電平。所以最后通過改變傳感器的接法,實現(xiàn)了信號的采集,數(shù)碼管才有了反應(yīng),整個電路的所有問題到此也就解決了。</p><p><b>  六.設(shè)計結(jié)果</b></p><p><b>  1.設(shè)計總電路圖</b><

46、/p><p>  開關(guān)按鍵控制電機的起停,高低速開關(guān)是控制電機的兩種轉(zhuǎn)速,從而測得這兩種速度時的轉(zhuǎn)速,并通過數(shù)碼管顯示其轉(zhuǎn)數(shù)。</p><p><b>  2.設(shè)計總程序:</b></p><p>  #include <reg52.h></p><p>  #define uchar unsigned char

47、</p><p>  #define uint unsigned int</p><p>  sbit a0 = P2^0;// 千</p><p>  sbit a1 = P2^1; //百</p><p>  sbit a2 = P2^2; //數(shù)碼管位選--十位</p><p>  sbit a3

48、= P2^3; //數(shù)碼管位選--個位</p><p>  sbit test=P3^2; //傳感器測試</p><p>  sbit motor=P1^0; //連接電機</p><p>  sbit kaiguan=P1^4; //電機開關(guān)</p><p>  sbit sudu1=P1^5;//速度改變按鍵</p>

49、;<p>  sbit sudu2=P1^6;</p><p>  uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//數(shù)值 </p><p>  uint dat;//計數(shù)變量 </p><p>  uint qian,bai,shi,ge; //

50、計數(shù)變量</p><p>  uchar x; //定時標志</p><p>  ucharz; //開關(guān)標志</p><p>  uinttimer1,aa;</p><p>  /**************延時函數(shù)****************/</p><p>  void delay(uint z

51、)</p><p><b>  {</b></p><p><b>  uint x,y;</b></p><p>  for(x=z;x>0;x--)</p><p>  for(y=110;y>0;y--);</p><p><b>  }<

52、/b></p><p>  /******************數(shù)碼管顯示函數(shù)***********************/</p><p>  voiddisplay()</p><p><b>  {</b></p><p>  a3=1; //顯示ge位</p><p> 

53、 P0=table[ge];</p><p><b>  delay(5);</b></p><p><b>  a3=0;</b></p><p>  a2=1; //顯示shi位</p><p>  P0=table[shi];</p><p><b> 

54、 delay(5);</b></p><p><b>  a2=0;</b></p><p>  a1=1; //顯示bai位</p><p>  P0=table[bai];</p><p><b>  delay(5);</b></p><p><

55、b>  a1=0;</b></p><p>  a0=1; //顯示qian位</p><p>  P0=table[qian];</p><p><b>  delay(5);</b></p><p><b>  a0=0;</b></p><p>&

56、lt;b>  }</b></p><p>  /***************外部中斷0**********************/</p><p>  void int0(void) interrupt 0</p><p><b>  {</b></p><p><b>  dat++;

57、</b></p><p><b>  }</b></p><p>  /***************定時器0中斷********************************/</p><p>  void time0_int(void) interrupt 1</p><p><b>  {

58、</b></p><p>  TH0=0x3C;//50毫秒</p><p><b>  TL0=0xB0;</b></p><p><b>  x--;</b></p><p><b>  if(x==0)</b></p><p><

59、;b>  { </b></p><p><b>  x=21;</b></p><p><b>  EX0=0;</b></p><p>  dat=dat/5;</p><p>  qian=dat/1000 ;</p><p>  bai=(dat%10

60、00)/100;</p><p>  shi=(dat%100)/10;</p><p>  ge=dat%10;</p><p><b>  TR0=0;</b></p><p><b>  }</b></p><p><b>  }</b><

61、/p><p>  /***************定時器1中斷函數(shù)**********************/</p><p>  void time1_int() interrupt 3 </p><p><b>  {</b></p><p>  TH1 = 0xFC; // 10ms</p>&l

62、t;p>  TL1 = 0x18;</p><p><b>  timer1++;</b></p><p>  if(aa==1) //速度1</p><p>  if((timer1<600)&&timer1>2) motor=1;</p><p>  elsemotor=0;&

63、lt;/p><p>  if(timer1>600)</p><p><b>  {</b></p><p><b>  timer1=0;</b></p><p><b>  }</b></p><p>  if(aa==2) //速度2

64、</p><p>  if((timer1<600)&&timer1>550) motor=1;</p><p>  elsemotor=0;</p><p><b>  }</b></p><p>  /***************變速函數(shù)************************

65、*/</p><p>  voidBianSu()</p><p><b>  {</b></p><p>  if(sudu1==0) //速度1</p><p><b>  {</b></p><p><b>  delay(3);</b>&l

66、t;/p><p>  while(sudu1==0) ;</p><p>  ET0=1;//開T0定時器</p><p>  EX0=1; //外部中斷0</p><p><b>  aa=1;</b></p><p><b>  timer1=0;</b></p&

67、gt;<p><b>  }</b></p><p>  if(sudu2==0)//速度2</p><p><b>  { </b></p><p><b>  delay(3);</b></p><p>  while(sudu2==0) ;</p&

68、gt;<p>  ET0=1;//開T0定時器</p><p>  EX0=1; //外部中斷0</p><p><b>  aa=2;</b></p><p><b>  timer1=0;</b></p><p><b>  } </b></p&g

69、t;<p><b>  }</b></p><p>  /*************開關(guān)函數(shù)*********************/</p><p>  voidKaiGguan()</p><p><b>  {</b></p><p>  if(kaiguan==0)<

70、/p><p><b>  {</b></p><p><b>  delay(3);</b></p><p>  while(kaiguan==0);</p><p>  motor=1; //打開電機</p><p><b>  z++;</b>&l

71、t;/p><p>  // ET0=1;//開T0定時器</p><p>  ET1=1;//開T1定時器</p><p>  // EX0=1; //外部中斷0</p><p><b>  if(z==2)</b></p><p><b>  {</b><

72、/p><p><b>  motor=0;</b></p><p><b>  z=0;</b></p><p><b>  ET0=0;</b></p><p><b>  ET1=0;</b></p><p><b>  

73、EX0=0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  /*****************初始化函數(shù)*****************/</p>

74、<p>  voidInti()</p><p><b>  {</b></p><p><b>  motor=0;</b></p><p>  kaiguan=1;</p><p>  x=21; //定時一秒</p><p>  P0=0xFF;

75、 //關(guān)閉數(shù)碼管</p><p><b>  test=1;</b></p><p>  TMOD= 0x11;//T1定時輸出PWM波形調(diào)速,T0定時測速用</p><p>  TH1 = 0xFC; //10 毫秒定時</p><p>  TL1 = 0x18;</p><p>  TH0=

76、0x3C;//50毫秒定時</p><p>  TL0=0xB0; </p><p>  IT0=1; //下降沿觸發(fā)</p><p><b>  EA=1; </b></p><p><b>  TR0=1;</b></p><p><b>  TR1=

77、1;</b></p><p><b>  PX0=1;</b></p><p><b>  }</b></p><p>  /******************主函數(shù)***************************/</p><p>  voidmain()</p>

78、<p><b>  {</b></p><p><b>  Inti();</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  KaiGguan();</p>

79、<p><b>  BianSu();</b></p><p>  display();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  設(shè)計體會與收獲</b></p>

溫馨提示

  • 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

提交評論