版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 畢業(yè)設計(論文)</b></p><p> 標 題:數(shù)字轉速計的設計 </p><p> 學生姓名: </p><p> 系 部:汽車電子系 </p><p> 專 業(yè):應用電子技術
2、 </p><p> 班 級: </p><p> 指導教師: </p><p><b> 目 錄</b></p><p><b> 第1章 序言3</b></p><
3、;p> 第2章 工作原理和設計思路及方案5</p><p> 2.1 基本原理5</p><p> 2.2 設計思路5</p><p> 2.3 設計方案5</p><p> 第3章 硬件電路設計7</p><p> 3.1 按鍵設計電路圖7</p><p> 3
4、.2 顯示電路設計圖7</p><p> 3.3脈沖產(chǎn)生電路設計圖8</p><p> 第4章 軟件設計8</p><p> 4.1主程序流程及說明9</p><p> 4. 2中斷服務子程序9</p><p> 4.3鍵盤掃描程序10</p><p> 第5章 系統(tǒng)調試
5、及軟件仿真11</p><p> 5.1 程序調試11</p><p> 5.2 硬件電路調試12</p><p><b> 第6章 總結13</b></p><p><b> 參考文獻14</b></p><p><b> 附錄15</
6、b></p><p><b> 系統(tǒng)原理圖:15</b></p><p><b> 程序清單:15</b></p><p><b> 第1章 序言</b></p><p> 隨著科學技術特別是微型計算機技術的高速發(fā)展,單片微機技術也獲得了飛速發(fā)展。目前,單片機
7、已經(jīng)在日常生活和控制領域等方面得到廣泛的應用,它正為我國經(jīng)濟的快速發(fā)展發(fā)揮著舉足輕重的作用。作為自動化專業(yè)的一名工科學生應該牢牢掌握這一重要技術。而課程設計這一環(huán)節(jié)是我們提高單片機應用能力的很好機會,也是我們學好這一課程的必經(jīng)環(huán)節(jié)。通過課程設計可以進一步鞏固我們前面所學理論知識,使我們對單片機理論知識有一個深刻的認識和全面的掌握。另外通過這一真正意義上的實踐活動,我們可以從中發(fā)現(xiàn)自己不足之處并能夠在自己的深思下和老師的指導下得到及時的解
8、決。再次,它能使我們的應用能力和科技創(chuàng)新能力得到較大的提高。</p><p> 本課程設計是單片機系統(tǒng)在測速方面的簡單應用。目前單片機技術已經(jīng)在電機轉速等為控制對象的控制系統(tǒng)中得到了廣泛的應用,而在這一控制過程中必須通過單片機來測量轉速。本課程設計利用89C51單片機及外圍電路來設計一個數(shù)字轉速表。通過測量轉速所對應的方波脈沖來測量轉速,,同時其具體數(shù)值也可以在LED上顯示出來。</p><
9、p> 單片機作為嵌入式微控制器在工業(yè)測控系統(tǒng),智能儀器和家用電氣中得到廣泛應用。雖然單片機的品種很多,但MCS-51系列單片機仍不失為單片機中的主流機型。本課程以MCS-51系列與其特點是由淺入深,注重接口技術和應用。機電一體化是當今制造技術和產(chǎn)品發(fā)展的主要傾向,也是我國機電工業(yè)發(fā)展的必由之路??梢哉J為,它是用系統(tǒng)工程學的觀點和方法,研究在機電系統(tǒng)和產(chǎn)品中如何將機械、計算機、信息處理和自動控制技術綜合應用,以求機電系統(tǒng)和產(chǎn)品達到
10、最佳的組合。機電一體化產(chǎn)品所需要的是嵌入式微機,而單片機具有體積小、集成度高、功能強等特點,適于嵌入式應用。智能儀器、家用電器、數(shù)控機床、工業(yè)控制等機電設備和產(chǎn)品中竟相使用單片機。</p><p> 第2章 工作原理和設計思路及方案</p><p><b> 2.1 基本原理</b></p><p> 本次課程設計用STC89C52作為主
11、控器組成一個轉速表。電機轉速采用光電脈沖傳感器來測量,通過設置定時器/計數(shù)器T0為1S,設置定時器/計數(shù)器T1為計數(shù)器對光電傳感器傳過來的脈沖進行計數(shù),電動機測速采用測周法,即每旋轉一周產(chǎn)生一個脈沖,則設在1s內測量的脈沖個數(shù)為n,故測到轉速n就是脈沖頻率,再乘以60就是電動機的轉速,單位為r/min。在此期間定時1s,在1s內允許中斷,每中斷一次,軟件計數(shù)器加1,1s后,關閉中斷,則軟件計數(shù)器即為1s內的脈沖數(shù),通過計數(shù)一定時間內通過
12、定時器的脈沖數(shù)通過軟硬件結合工作即可測出電機的轉速。</p><p><b> 2.2 設計思路</b></p><p> 為了確定其設計方案,首先必須構思好初步的設計思路。根據(jù)設計要求和實驗仿真條件,初步的設計思路可以總結如下:</p><p> (1) 當前轉速與電動機的狀態(tài)顯示用4段LED數(shù)碼管。</p><p&
13、gt; (2) 鍵盤采用獨立式鍵盤,需要3個鍵。</p><p> (3) 采樣時間用定時/計數(shù)器0來實現(xiàn)。</p><p> (4) 用定時/計數(shù)器1來統(tǒng)計采樣時間內的脈沖數(shù),進而計算轉速。</p><p><b> 2.3 設計方案</b></p><p> 根據(jù)設計要求和設計思路,可以確定該系統(tǒng)的設計方案
14、,圖1為該系統(tǒng)設計的硬件電路設計框圖。硬件主要由三部分組成,即單片機、鍵盤、LED顯示器。單片機采用STC89C52。要求測量的脈沖直接用另一個單片機產(chǎn)生提供。</p><p> 在單片機中,定時功能既可以由硬件(定時/記數(shù)器)實現(xiàn),也可通過軟件定時實現(xiàn)。硬件定時是利用單片機內定時器定時,啟動以后定時器可與CPU并行工作,不占用CPU時間,CPU有較高的工作效率。采用硬件定時和軟件定時并用的方式,即用T0溢出中
15、斷功能實現(xiàn)50ms定時,通過軟件延時程序實現(xiàn)1s定時。定時器的TMOD用于設置定時器/計數(shù)器的工作方式0~3,并確定用于定時還是用于計數(shù)。TCON主要功能是為定時器在溢出時設定標志位,并控制定時器的運行或停止等。硬件電路設計如圖2.1所示。</p><p> 圖2.1 硬件電路設計</p><p> 第3章 硬件電路設計</p><p> 3.1 按鍵設計電路
16、圖</p><p> 對于按鍵電路的設計可以有2種方式:一種方式是直接按鍵設計,也稱獨立按鍵,這種設計電路適用于按鍵較少的控制,具有按鍵電路簡單,編程方便等優(yōu)點;另一種方式是矩陣式鍵盤的設計,它適用于對控制按鍵較多的電路控制, 占用較少的I/O接口,但是按鍵電路復雜,編程比較復雜。本課題總共需要3按鍵,所以采用獨立按鍵設計。設計圖如3.1.1:由上到下的按鍵分別是復位、停止、啟動。</p><
17、;p> 圖3.1. 按鍵電路</p><p> 3.2 顯示電路設計圖</p><p> 本課題所采用得是由LED(數(shù)碼管)作為顯示電路,用以顯示由單片機所接收的脈沖轉換來的BCD碼,以及開始測速時的各種狀態(tài)。硬件電路連接是單片機P0.0~P0.7接數(shù)碼管的由A~G、DP 8個各管腳,P2.0~P2.3接數(shù)碼管的控制端W4、W3、W2、W1采用共陽極連接的方法連接圖如圖3.2.
18、1所示。</p><p><b> 圖3.2顯示電路</b></p><p> 3.3脈沖產(chǎn)生電路設計圖</p><p> 在實際做試驗是由另一塊單片機產(chǎn)生脈沖,在本次設計中我讓另一塊單片機輸入1Hz頻率的脈沖,并把脈沖接到現(xiàn)實的單片機的P3.5口進行計數(shù)。</p><p> 圖3.3 脈沖電路 第4章 軟件設計
19、</p><p> 4.1主程序流程及說明</p><p> 本次設計用T0做定時器定時時間為50ms 、T1作計數(shù)器,都設置為工作方式一。在主程序鐘通過先重裝初值,然后再檢測按鍵,根據(jù)按鍵的狀態(tài)和定時器的狀態(tài)調用相應的子程序。程序流程如圖4.1所示</p><p> 圖4.1主程序流程圖</p><p> 4. 2中斷服務子程序&l
20、t;/p><p> 當定時器的50MS的定時時間到時,假如計數(shù)值大于20次就改變定時器的狀態(tài)位并清定時器的計數(shù)值。</p><p> 圖4.2中斷程序流程圖</p><p><b> 4.3鍵盤掃描程序</b></p><p> 數(shù)字轉速表的鍵盤操作應具有3個功能,即:啟動、停止、復位。本次采用的是直接連接的獨立式按
21、鍵,在鍵盤掃描過程中必須解決以下問題:1、是否有鍵按下;2、是哪一個鍵按下;3是不是有抖動;4、按鍵是不是松開。故在程序應該注意以上問題,不然會產(chǎn)生問題,不能正確的對按鍵進行識別。圖4.3為鍵盤流程圖:</p><p><b> 圖4.3按鍵流程圖</b></p><p> 第5章 系統(tǒng)調試及軟件仿真</p><p><b>
22、5.1 程序調試</b></p><p> 試驗所涉及的2個軟件Keil uVsion2和proteus,以下是仿真步驟。</p><p> 程序調試部分:uVsion2先新建一個工程,選擇芯片為AT89C52然后點擊是,然后彈出是否加入標準啟動文件,點擊否,再新建一個文件,保存為“文件名.C”。然后點開工程窗口的Target右鍵單擊出現(xiàn)彈出菜單,選擇添加文件到工程,選到剛
23、才新建的文件然后點擊OK,輸入程序,點擊工程選擇,選中Output中的Creat Hex File,然后編譯,連接生成Hex文件,有錯誤修改后再編譯鏈接。當編譯結果中沒出現(xiàn)錯誤時證明該程序已不存在語法錯誤。是否能完成課題所要求的功能則需要進行仿真。</p><p> 仿真部分:運行proteus的ISIS后進入仿真界面將所需元件選擇好,根據(jù)原理圖畫出仿真圖,待仿真圖換好后雙擊AT89C52導入Keil uVsi
24、on2所產(chǎn)生的后綴名為.HEX文件,按開始鍵進行仿真。 當輸入脈沖為6HZ時輸出為360rad/min。</p><p> 5.2 硬件電路調試</p><p> 硬件調試的步驟如下:接通電源和數(shù)據(jù)線,通過軟件將在Keil uVsion2中生成的HEX文件下載到單片機板子上,先對板子關電當顯示請上電時按下單片機上的電源開關按鈕上電下載程序到單片機中,通過按鍵和LED的顯示進行調試。&l
25、t;/p><p> 當程序下載完之后,按下電源開關,LED上顯示初始狀態(tài),按下啟動鍵顯示接收數(shù)據(jù)的狀態(tài),按下停止鍵后顯示當前所記錄的數(shù)據(jù),按下復位鍵則顯示初始狀態(tài),關閉所有數(shù)碼管,為全黑狀態(tài)。</p><p><b> 第6章 總結</b></p><p> 回顧起此次課程設計,至今我仍感慨頗多,的確,從選題到定稿,從理論到實踐,在整整兩星期
26、的日子里,可以說得是苦多于甜,但是可以學到很多很多的的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設計的
27、過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,比如說三極管PNP管腳不懂怎么放置,不懂分得二極管的正負極,對單片機匯編語言掌握得不好……通過這次課程設計之后,一定把以前 所學過的知識重新溫故。</p><p> 這次的課程設計終于順利完成了,在設計中遇到了很多編程問題,最后在歐陽老師的辛勤指導下,終于迎刃而解。同時,在歐陽老師的身上我學得到很多實用的知識,在此我表示感謝!同時,對
28、給過我?guī)椭乃型瑢W和各位指導老師再次表示衷心的感謝。</p><p><b> 參考文獻</b></p><p> [1] 周向紅,劉國繁.51系列單片機應用與實踐教程. 北京航空航天大學 出版社, 2008</p><p> [2] 王迎旭.單片機原理及應用.機械工業(yè)出版社,2010</p><p> [
29、3] 張毅剛.新編MCS-51單片機應用設計,哈爾濱工業(yè)大學出版社,2003</p><p> [4] 何立民.編單片機應用系統(tǒng)設計.北航出版社,2000</p><p> [5]劉國榮.單片微型計算機技術.機械工業(yè)出版社,1996</p><p> [6] 張迎新.單片微型計算機原理、應用及接口技術.國防工業(yè)出版社,1993</p><
30、p> [7]房小翠.編單片機實用系統(tǒng)設計技術.國防工業(yè)出版社,1999</p><p> [8]何立民.編單片機應用系統(tǒng)設計.北航出版社,2005</p><p> [9]曹琳琳.編單片機原理及接口技術.國防科技大學出版社,2000</p><p><b> 附錄</b></p><p><b>
31、 系統(tǒng)原理圖:</b></p><p><b> 程序清單:</b></p><p> #include<reg52.h>//頭文件</p><p> #define uchar unsigned char//宏定義</p><p> #define uint unsigne
32、d int//宏定義</p><p> ucharcode tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90, 0x88,0x83,0xC6,0xA1,0x86,0x8E}; //共陽數(shù)碼管代碼 0-F</p><p> uint Count=0;//定時器中斷的次數(shù)</p><p&
33、gt; uint Key_State,T_State;//定義鍵的狀態(tài)和定時器的狀態(tài)</p><p> int second=0;//定時器1在1S內計數(shù)的次數(shù)</p><p> sbit Stop=P3^0;//停止</p><p> sbit Reset=P3^1;//復位</p><p>
34、sbit key=P3^2;//啟動</p><p> void delay(uint ms) //延時子程序</p><p><b> {</b></p><p><b> uint i;</b></p><p> while(ms--)</p><p&g
35、t; for(i=0;i<120;i++);</p><p><b> }</b></p><p> void Display()//顯示子程序</p><p> { </p><p> P2=0xFE; //顯示個位
36、</p><p> P0=Tab[second%10]; </p><p><b> delay(5);</b></p><p> P2=0xFD; //顯示十位 </p><p> P0=Tab[second%100/10];</p><p><b
37、> delay(5);</b></p><p> P2=0xFB;//顯示百位</p><p> P0=Tab[second%1000/100];</p><p><b> delay(5);</b></p><p> P2=0xF7;//顯示千位</p>&
38、lt;p> P0=Tab[second/1000];</p><p><b> delay(5);</b></p><p><b> }</b></p><p> void Scan_Key()//鍵盤掃描子程序</p><p><b> {</b>&
39、lt;/p><p> if(key==0) //啟動功能鍵被按下</p><p><b> {</b></p><p> delay(10);//去抖</p><p> if(key==0)//啟動鍵被按下</p><p><b> { </b>
40、</p><p> if(Key_State==0|Key_State==3)//假如鍵狀態(tài)為0或3</p><p><b> {</b></p><p> TR0=1;//開啟定時器/計數(shù)器0</p><p> TR1=1;//開啟定時器/計數(shù)器1</p><p> Key
41、_State=1; //把鍵狀態(tài)設為1</p><p><b> }</b></p><p> while(!key); //等待啟動鍵釋放</p><p><b> }</b></p><p><b> }</b></p><p>
42、 if(Stop==0)//復位鍵被按下</p><p><b> {</b></p><p> delay(10);//延時去抖</p><p> if(Stop==0)//停止鍵被按下</p><p><b> {</b></p><p&g
43、t; if(Key_State!=2)//鍵狀態(tài)不為2</p><p><b> {</b></p><p> Key_State=2;//狀態(tài)設為2</p><p> TR0=0;//關閉定時器/計數(shù)器0</p><p> TR1=0; //關閉定時器/計數(shù)器1</p><
44、p><b> }</b></p><p> while(!Stop);//等待復位鍵釋放</p><p><b> }</b></p><p><b> }</b></p><p> if(Reset==0)//停止鍵被按下</p>&l
45、t;p><b> {</b></p><p> delay(10);//延時去抖</p><p> if(Reset==0)//停止鍵確實被按下</p><p><b> {</b></p><p> if(Key_State!=3) //鍵狀態(tài)為不3</p
46、><p><b> {</b></p><p> Key_State=3;//鍵狀態(tài)設為3</p><p> TR0=0;//關閉定時器/計數(shù)器0</p><p> TR1=0; //關閉定時器/計數(shù)器1</p><p><b> } </b><
47、/p><p> while(!Reset);//等待停止鍵釋放</p><p><b> }</b></p><p><b> } </b></p><p><b> }</b></p><p> void main()//
48、主函數(shù)</p><p><b> {</b></p><p> TMOD=0x51;//定時器 1和0 都工作在方式1</p><p> TH0=(65536-50000)/256;//定時器0裝入初值</p><p> TL0=(65536-50000)%256;</p><p>
49、; TH1=0;//定時器1裝入初值</p><p><b> TL1=0;</b></p><p> EA=1;//開放總中斷</p><p> ET0=1;//開放定時器/計數(shù)器0中斷</p><p> ET1=1;//開放定時器/計數(shù)器1中斷</p>
50、<p> TR0=0;//關閉定時器/計數(shù)器0</p><p> TR1=0;//關閉定時器/計數(shù)器1</p><p> P2=0xff;//關閉數(shù)碼顯示管</p><p><b> while(1)</b></p><p><b> {</b>&
51、lt;/p><p> Scan_Key();//調用鍵盤掃描子程序</p><p> if(T_State==1&&Key_State==1)//鍵狀態(tài)為1且定時器狀態(tài)為1</p><p><b> { </b></p><p> T_State=0;//把定時器狀態(tài)清0</p>
52、<p> second=(TH1*256+TL1)*60;//計算轉速</p><p> TH1=0;//清計數(shù)器</p><p><b> TL1=0; </b></p><p><b> }</b></p><p> if(Key_State==1|Key_St
53、ate==2)//鍵狀態(tài)為1或2</p><p> Display();//調用顯示子程序</p><p> if(Key_State==3)//鍵狀態(tài)為3</p><p> P2=0XFF;//關閉顯示</p><p><b> } </b></p><p><b
54、> }</b></p><p> void T0timer() interrupt 1 //定時器0用于定時</p><p><b> {</b></p><p> TH0=(65536-50000)/256;//重裝初值</p><p> TL0=(65536-50000)%2
55、56;</p><p> Count++;//計數(shù)值加1</p><p> if(Count>=20)//計數(shù)值到了20次,即1S就清0, 并把定時器狀態(tài)設為1</p><p><b> {</b></p><p><b> Count=0;</b>
56、</p><p> T_State=1; </p><p><b> } </b></p><p><b> }</b></p><p> void T1timer() interrupt 3 //定時器1用于計數(shù)</p><p><b>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字轉速計設計課程設計
- 畢業(yè)設計----數(shù)字電機轉速系統(tǒng)
- 課程設計--數(shù)字轉速(數(shù))計的設計
- 數(shù)字溫度計的設計畢業(yè)設計
- 數(shù)字溫度計的設計畢業(yè)設計
- 畢業(yè)設計---數(shù)字溫度計的設計
- 數(shù)字溫度計設計畢業(yè)設計
- 畢業(yè)設計--數(shù)字溫度計設計
- 數(shù)字溫度計設計畢業(yè)設計
- 數(shù)字溫度計畢業(yè)設計
- 畢業(yè)設計---數(shù)字溫度計
- 數(shù)字溫度計畢業(yè)設計
- 數(shù)字溫度計畢業(yè)設計
- 畢業(yè)設計(論文)數(shù)字溫度計的設計
- 數(shù)字式光電轉速計的設計論文
- 數(shù)字溫度計畢業(yè)設計論文
- 畢業(yè)設計---數(shù)字溫度計作
- 數(shù)字溫度計控制 畢業(yè)設計
- 畢業(yè)設計--- 數(shù)字溫度計的設計與制作
- 畢業(yè)設計----數(shù)字頻率計的設計
評論
0/150
提交評論