久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 15389|回復(fù): 1
收起左側(cè)

單片機(jī)的直流電機(jī)測速系統(tǒng)設(shè)計

[復(fù)制鏈接]
ID:435895 發(fā)表于 2018-11-29 17:16 | 顯示全部樓層 |閱讀模式
電機(jī)測速系統(tǒng)
  • 設(shè)計目的

隨著科技的飛速發(fā)展,計算機(jī)應(yīng)用技術(shù)日益滲透到社會生產(chǎn)生活的各個領(lǐng)域,而單片機(jī)的應(yīng)用則起到了舉足輕重的作用。在工程實踐中,經(jīng)常會遇到各種需要測量轉(zhuǎn)速的場合,例如在發(fā)動機(jī)、電動機(jī)、機(jī)床主軸等旋轉(zhuǎn)設(shè)備的試驗運(yùn)轉(zhuǎn)和控制中,常需要分時或連續(xù)測量、顯示其轉(zhuǎn)速及瞬時速度。為了能精確地測量轉(zhuǎn)速,還要保證測量的實時性,要求能測得瞬時轉(zhuǎn)速。因此設(shè)計一種較為理想的電機(jī)測速控制系統(tǒng)是非常有價值的。

  • 設(shè)計要求
1.用按鍵控制電機(jī)起停;
2.電機(jī)有兩種速度,通過按鍵來改變速度;
3.通過數(shù)碼管顯示每分鐘或每秒的轉(zhuǎn)速。
三、設(shè)計器材
         器件名稱
             數(shù)量
STC89C52單片機(jī)
            1
ST151光電傳感器
            1
四位一體數(shù)碼管
            1
電阻
各種阻值若干
電容
10uf  1個     30pf  2個
晶振12MHz
            1
按鍵
            1
單排排阻
            2
開關(guān)
1
直流電機(jī)
1
四、設(shè)計方案及分析(包含設(shè)計電路圖)
1. STC89C52單片機(jī)介紹
STC89C52是一種帶8K字節(jié)閃爍可編程可檫除只讀存儲器(FPEROM-Flash Programmable and Erasable Read Only Memory )的低電壓,高性能COMOS8的微處理器,俗稱單片機(jī)。該器件采用ATMEL搞密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。
(1)單片機(jī)最小系統(tǒng)

單片機(jī)最小系統(tǒng)電路如圖所示,由主控器STC89C52、時鐘電路和復(fù)位電路三部分組成。單片機(jī)STC89C52作為核心控制器控制著整個系統(tǒng)的工作,而時鐘電路負(fù)責(zé)產(chǎn)生單片機(jī)工作所必需的時鐘信號,復(fù)位電路使得單片機(jī)能夠正常、有序、穩(wěn)定地工作。

圖 單片機(jī)最小系統(tǒng)

(2)晶振電路

(3)復(fù)位電路

復(fù)位是單片機(jī)的初始化操作。其主要功能是把PC初始化為0000H,使單片機(jī)從0000H單元開始執(zhí)行程序。除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)行出錯或操作錯誤使系統(tǒng)處于死鎖狀態(tài)時,為擺脫困境,也需按復(fù)位鍵重新啟動。

2. ST151

光電轉(zhuǎn)速傳感器是根據(jù)光敏二極管工作原理制造的一種感應(yīng)接收光強(qiáng)度變化的電子器件,當(dāng)它發(fā)出的光被目標(biāo)反射或阻斷時,則接收器感應(yīng)出相應(yīng)的電信號。它包含調(diào)制光源,由光敏元件等組成的光學(xué)系統(tǒng)、放大器、開關(guān)或模擬量輸出裝置。光電式傳感器由獨(dú)立且相對放置的光發(fā)射器和收光器組成。當(dāng)目標(biāo)通過光發(fā)射器和收光器之間并阻斷光線時,傳感器輸出信號。由于葉輪的旋轉(zhuǎn),當(dāng)葉輪扇葉進(jìn)入凹槽遮擋著發(fā)光二極管時,光敏三極管沒接收光,輸出為零;當(dāng)葉輪扇葉通過光電傳感器時,光敏三極管接收光在ST151電路輸出為頻率信號。

3. 設(shè)計思路
通過ST151光電傳感器接收電機(jī)扇葉轉(zhuǎn)動切割的次數(shù)獲得脈沖,從而通過單片機(jī)T1口接收高低電平,計數(shù)器在定時器的定時范圍內(nèi)記錄脈沖個數(shù),通過計算將轉(zhuǎn)速送給數(shù)碼管并進(jìn)行顯示。
4. 程序框圖


五. 程序
參見附錄一。
六.系統(tǒng)仿真
    參見附錄二。
七、設(shè)計體會與收獲(小組成員每人一份)
XXX
本次課程設(shè)計我主要負(fù)責(zé)電路板的焊接,電路板的焊接需要先了解整個電路的各個硬件的組成,并清楚它們各自的所在功能區(qū)域,然后要做的就是在電路板上為各硬件做一個整體的規(guī)劃,合適的規(guī)劃很重要,既要考慮到整體看上去的美觀,還要考慮到對以后的調(diào)試和調(diào)整方便的地方,本人具體是先在電路板上劃分開具體的功能區(qū)域,比如單片機(jī)在左邊占一塊適當(dāng)?shù)奈恢茫淖蠖诉要留有晶振電路和復(fù)位電路,依此做好其他模塊的分配。關(guān)于電路的具體焊接,感覺只要按照電路仿真圖按一定的次序焊接,本人焊接時速度較慢,但是基本比較順利,沒有出現(xiàn)很大問題。
XX
本次課程設(shè)計我主要負(fù)責(zé)程序的編寫以及調(diào)試。編寫程序的主要是利用中斷來產(chǎn)生PWM,利用中斷統(tǒng)計ST151產(chǎn)生的頻率信號。
    才拿到題目時面臨的一個問題是如何利用程序來改變點(diǎn)擊的速度,請教同學(xué)后知道一種方法叫 PWM,通過改變一個周期的電信號的占空比來實現(xiàn)。當(dāng)然,在寫程序時還是遇到了不少問題,比方按鍵怎么判斷、改變 PWM 怎么實現(xiàn)、怎么再繼續(xù)產(chǎn)生等。
    程序的第二重點(diǎn)則是利用中斷來統(tǒng)計電機(jī)轉(zhuǎn)動后由ST151產(chǎn)生的頻率信號。這個問題前前后后想了幾種方法,如用計數(shù)器統(tǒng)計再讀取計數(shù)值、通過計數(shù)定時時間的頻率再湊成1秒等。但是由于方法不當(dāng),結(jié)果做出來的效果很差。最終選定,定時時間直接1秒再來統(tǒng)計頻率,這樣的結(jié)果還是可以的。
    程序的第三個重點(diǎn),是中斷程序的設(shè)計。這是我第一次編C,所以在中斷方面有很多不懂的地方,參考資料、請教同學(xué)后有了一定的了解,再寫程序就不再那么不順了。


本次實習(xí)我們組是直流電機(jī)測速系統(tǒng)的設(shè)計,就是要通過轉(zhuǎn)速的改變將其速度顯示在led中,來體現(xiàn)其轉(zhuǎn)速的增大或減小。而如何改變其速率呢,就是通過pwm改變其占空比來實現(xiàn)的。
    我主要負(fù)責(zé)仿真,即使用軟件Proteus 7 Professional測試仿真調(diào)試。這次實習(xí)的重點(diǎn)就是如何編寫程序以及仿真中的行騙各個管腳的連接問題,主要的芯片有89C52、uln2003、led顯示、電機(jī)。首先分清各管腳起什么作用,比如說晶振要與89C 2的XTAL1和XTAL2連接等等。其次還要知道那個管腳是高電平哪個是低電平、跟誰連才能達(dá)到選通。通過同組同學(xué)所編程序,就可以清楚的知道這些芯片的連接,再細(xì)心的對照各個管腳的初始化、定義來連接各個芯片。在仿真的時,我學(xué)到的就是熟練掌握使用proteus 7 Professional軟件,比如知道在proteus 7 Professional中如何正確的找出單片機(jī)、uln、led顯示、電機(jī)等這些芯片,怎么將keil中運(yùn)行鏈接好的程序燒錄到proteus 7 Professional中,然后正確的運(yùn)行。當(dāng)同組的同學(xué)咁好板子后,接通電源時發(fā)現(xiàn)led顯示不夠亮,所以就進(jìn)行改進(jìn),通過再接入放大器放大信號就可以使led更好的顯示出來。
總的來說這次實習(xí),受益匪淺,不僅熟悉了兩個軟件的使用更進(jìn)一步的將所學(xué)的知識實踐了出來,以前沒有怎么接觸過這兩個軟件,現(xiàn)在發(fā)現(xiàn)我索要學(xué)習(xí)的還很多。合作也是我收獲很多的一點(diǎn)。

在本次課程設(shè)計中,我們做的是“直流電機(jī)的測速系統(tǒng)”。
在實驗中,我們最先遇到的問題是在電機(jī)驅(qū)動中的頻率變化問題,一開始只使用了一個三極管,結(jié)果造成了電機(jī)轉(zhuǎn)動始終處于一個較穩(wěn)定狀態(tài),經(jīng)過復(fù)位也沒有變化,后來在原基礎(chǔ)上增加了一個三極管,放大了頻率信號,使得返回INT0口的信號更明顯,得到了預(yù)想的結(jié)果使直流電機(jī)完成了變速。
在實驗的最后,我們的電機(jī)已經(jīng)按照要求完成了改變轉(zhuǎn)速的功能,但是數(shù)碼管的亮度很暗,得用手擋著才可以看到其具體顯示,這是數(shù)碼管亮度不夠造成的,通過分析添加了第二個排阻,讓他來控制片選信號,通過這個排阻使得共陽極數(shù)碼管變得較亮。
這次實驗是對本學(xué)期所學(xué)的單片機(jī)課程的簡單應(yīng)用,在實驗中運(yùn)用了80c52單片機(jī)。通過它完成了電機(jī)的簡單驅(qū)動,調(diào)節(jié)轉(zhuǎn)速使之反饋及讓轉(zhuǎn)速具體的體現(xiàn)在數(shù)碼管上的功能。

附錄二 系統(tǒng)仿真電路圖



單片機(jī)源程序如下:
  1. #include <reg52.h>
  2. unsigned char code TABLE[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  3. void display();
  4. #define uint unsigned int
  5. #define uchar unsigned char
  6. #define V_TH1 (65535 - 1000) / 256
  7. #define V_TL1 (65535 - 1000) % 256
  8. sbit output = P2^7; //P2^7接ULN2003
  9. sbit key1 = P3^3; //P3^3接可以改變電機(jī)轉(zhuǎn)速的按鍵

  10. int  frq = 0, frq1, flag;
  11. char pwm;
  12. int div = 0, p = 0;
  13. uchar a;
  14. uint c;
  15. void display();

  16. /*系統(tǒng)初始化*/
  17. void initial(void)
  18. {
  19.               TMOD = 0x10;  //設(shè)置定時器1在工作方式1下
  20.               EA = 1; //開中斷
  21.               EX0 = 1; //外部中斷0使能
  22.               ET1 = 1; //定時器1使能
  23.               IT0 = 1; //外部中斷0下降沿觸發(fā)
  24.               IT1 = 1; //外部中斷1下降沿觸發(fā)
  25.               TH1 = V_TH1; //裝載計數(shù)值
  26.               TL1 = V_TL1;               
  27.               TR1=1; //定時器1可工作
  28. }

  29. /*延時程序*/
  30. void delay(unsigned int k)
  31. {
  32.   unsigned int i,j;
  33.   for(i = 0;i < k;i++)
  34.   {
  35.                 for(j = 0;j < 110;j++)
  36.                 {
  37.                               ;
  38.                 }
  39.    }
  40. }

  41. /*顯示子程序*/
  42. void display()
  43. {
  44.               uchar qian,bai,shi,ge;
  45.               qian = 0;
  46.               bai = 0;
  47.               shi = 0;
  48.               ge = 0;
  49.               c = frq1;
  50.               qian = c / 1000;
  51.               bai = c / 100 % 10;
  52.               shi = c / 10 % 10;
  53.               ge = c % 10;
  54.               P2 = 0X01;
  55.               P0 = TABLE[qian];
  56.               delay(5);
  57.               P2 = 0X02;
  58.               P0 = TABLE[bai];
  59.               delay(5);
  60.               P2 = 0X04;
  61.               P0 = TABLE[shi];
  62.               delay(5);
  63.               P2 = 0X08;
  64.               P0 = TABLE[ge];
  65.               delay(5);
  66. }


  67. /*主函數(shù)*/
  68. void main()
  69. {

  70.               initial();
  71.               while(1)
  72.     {
  73.                             if(key1 == 0)
  74.                   delay(100);   //按鍵消抖
  75.                             if(key1 == 0)
  76.                             {
  77.                                           while(key1 == 0) ;                              //松手檢測
  78.                                           div ++;
  79.                             }
  80.                             if(div % 2 == 0)
  81.                             flag = 0;
  82.                             if(div % 2 == 1)
  83.                             flag = 1;
  84.                             if(flag == 0)
  85.                             pwm = 30;
  86.                             if(flag == 1)
  87.                             pwm = 70;

  88.                                 display();
  89.               }
  90. }


  91. /*外部中斷0*/
  92. void int0isr() interrupt 0 //統(tǒng)計定時時間內(nèi)的個數(shù)
  93. {
  94.               frq ++;
  95. }


  96. /*定時器1中斷*/
  97. void time1isr() interrupt 3 //定時器1實現(xiàn)pwm
  98. {
  99.               TH1 = V_TH1; //裝載計數(shù)值
  100.               TL1 = V_TL1;
  101.               EA = 0;
  102.               a ++;
  103.               p ++;
  104.               if (a <= pwm)
  105.               output = 1;
  106.               else output = 0;
  107.               if(a > 100)
  108.               a = 0;
  109.               if(p > 1000)
  110.               {
  111.                             frq1 = frq;
  112.                             frq = 0;
  113.                             p = 0;
  114.               }
  115.               EA = 1;
  116. }
復(fù)制代碼

全部資料51hei下載地址:
單片機(jī)的直流電機(jī)測速系統(tǒng).doc (197 KB, 下載次數(shù): 188)


回復(fù)

使用道具 舉報

ID:648944 發(fā)表于 2019-11-25 11:12 | 顯示全部樓層
大佬我想問一下這個測速系統(tǒng)在51單片機(jī)上要怎么連線呢
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 艹逼网 | 欧美精品一区二区免费 | 欧美一级做a爰片免费视频 国产美女特级嫩嫩嫩bbb片 | 亚洲v日韩v综合v精品v | 午夜精品久久久久久不卡欧美一级 | 亚洲欧美日韩成人在线 | 国产高清精品在线 | 国产成人在线一区二区 | 性xxxxx| 成人在线精品 | 黄在线免费观看 | 五月激情综合 | 欧美黄 片免费观看 | 美女视频. | 国产资源在线视频 | 日韩一区二区av | 欧美一二三 | 日本不卡一区二区三区在线观看 | 日韩电影中文字幕在线观看 | 欧美精品久久久久 | 免费亚洲网站 | 91精品国模一区二区三区 | 午夜码电影 | 精品一区二区在线观看 | 久久久久国产精品 | 皇色视频在线 | 国产成人精品在线 | 婷婷丁香在线视频 | 999久久久 | 久久久亚洲 | 国产一区二区三区久久久久久久久 | 少妇性l交大片免费一 | 国产精品久久久久久福利一牛影视 | 美女视频久久 | 欧美成人一区二免费视频软件 | 国产日产精品一区二区三区四区 | 国产亚洲一区二区三区在线 | 日韩国产欧美一区 | a级黄色毛片免费播放视频 国产精品视频在线观看 | 亚洲444eee在线观看 | 亚洲人人 |