欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 直流電機測速(光電計數轉速計)單片機原理圖與源程序 [打印本頁]

作者: 雨鞋壞了11    時間: 2017-7-24 16:14
標題: 直流電機測速(光電計數轉速計)單片機原理圖與源程序
直流電機測速原理圖如下:
J3
VCC接A或者接B,可以實現正傳和反轉。
SIG脈沖輸出端,接單片機外部中斷端。

電機驅動采用L9110S驅動芯片,測速原理是光電計數.


單片機測速源程序如下:
  1. /*-----------------------------------------------
  2.   名稱:轉速計
  3.   日期:2009.5
  4.   修改:無
  5.   內容:T0外部計數,T1計時1S,計算1S內外部脈沖個數,并在液晶顯示
  6.         轉速
  7. ------------------------------------------------*/
  8. #include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義
  9. #include<stdio.h>
  10. #include"1602.h"
  11. #include"delay.h"
  12. #define HIGH (65536-10000)/256
  13. #define LOW  (65536-10000)%256

  14. sbit LED=P1^2;    //定義LED端口
  15. bit OVERFLOWFLAG;
  16. bit TIMERFLAG;
  17. /*------------------------------------------------
  18.                     定時器0初始化子程序
  19.                     本程序用于計數
  20. ------------------------------------------------*/
  21. void Init_Timer0(void)
  22. {
  23. TMOD |= 0x01 | 0x04;      //使用模式1,16位計數器,使用"|"符號可以在使用多個定時器時不受影響            
  24. TH0=0x00;          //給定初值
  25. TL0=0x00;         
  26. EA=1;            //總中斷打開
  27. ET0=1;           //定時器中斷打開
  28. TR0=1;           //定時器開關打開
  29. }
  30. /*------------------------------------------------
  31.                     定時器1初始化子程序
  32.                     本程序用于定時
  33. ------------------------------------------------*/
  34. void Init_Timer1(void)
  35. {
  36. TMOD |= 0x10;      //使用模式1,16位定時器,使用"|"符號可以在使用多個定時器時不受影響
  37. TH1=HIGH;          //給定初值,這里使用定時器最大值從0開始計數一直到65535溢出
  38. TL1=LOW;
  39. EA=1;            //總中斷打開
  40. ET1=1;           //定時器中斷打開
  41. TR1=1;           //定時器開關打開
  42. }
  43. /*------------------------------------------------
  44.                     主程序
  45. ------------------------------------------------*/
  46. main()
  47. {
  48. unsigned long int a;
  49. float s;
  50. char temp[16];      //定義字符顯示緩沖數組
  51. Init_Timer0();      //初始化定時器0
  52. Init_Timer1();      //初始化定時器1
  53. LCD_Init();         //初始化液晶屏
  54. DelayMs(10);        //延時用于穩定,可以去掉
  55. LCD_Clear();        //清屏
  56. LCD_Write_String(0,0,"111111111");//寫入第一行信息,主循環中不再更改此信息,所以在while之前寫入
  57. while(1)
  58. {
  59.   if(OVERFLOWFLAG)//檢測溢出標志,如果溢出表明頻率過高,顯示溢出信息
  60.     {
  61.      OVERFLOWFLAG=0;//標志清零
  62.      LCD_Write_String(0,1,"overflow >655KHz");
  63.     }
  64.   if(TIMERFLAG)      //定時100ms到,做數據處理
  65.     {
  66.      a=TL0+TH0*256;//讀取計數值
  67.      s=a/4;//100ms的轉數(圓盤有4個孔,一周產生4個脈沖)
  68.      s=s*600;//一分鐘的轉數
  69.      sprintf(temp,"%8.0f r/min",s);
  70.      LCD_Write_String(0,1,temp);//顯示到液晶第二行
  71.      TR0=1;                     //2個定時器打開
  72.      TR1=1;
  73.      TH0=0;                     //保證計數器初值為0
  74.      TL0=0;
  75.      TIMERFLAG=0;               //打開計時計數標志
  76.      
  77.     }
  78.   }
  79. }

  80. /*------------------------------------------------
  81.                  定時器0中斷子程序
  82. ------------------------------------------------*/
  83. void Timer0_isr(void) interrupt 1
  84. {
  85. TH0=00;          //重新給定初值
  86. TL0=00;

  87. OVERFLOWFLAG=1;  //溢出標志

  88. }
  89. /*------------------------------------------------
  90.                  定時器1中斷子程序
  91. ------------------------------------------------*/
  92. void Timer1_isr(void) interrupt 3
  93. {
  94. static unsigned char i;
  95. TH1=HIGH;         //重新賦值10ms
  96. TL1=LOW;

  97. i++;
  98. if(i==10)       //100ms 計數時間單位,得出100ms脈沖個數 x10就是1s中脈沖個數,即為頻率 Hz
  99.    {
  100.    i=0;
  101.    TR0=0;        //2個定時器關閉
  102.    TR1=0;
  103.    TIMERFLAG=1;  //標志位清零
  104.    TH1=HIGH;     //重新賦值
  105.    TL1=LOW;
  106.    }
  107. }

復制代碼

所有資料51hei提供下載:
測速模塊資料.7z (33.21 KB, 下載次數: 451)



作者: hhhdass    時間: 2018-4-9 21:31
好資料,51黑有你更精彩!!!

作者: 千年啊    時間: 2018-4-19 17:37
最近在學小車,剛好用到測速
作者: 12345condon    時間: 2018-4-21 21:21
好資料,51黑有你更精彩!!!
作者: 12345condon    時間: 2018-4-21 21:43
好資料,51黑有你更精彩!!!
作者: 小泉    時間: 2018-4-23 05:44

好資料,黑幣不夠,支持一下
作者: baltam1995    時間: 2018-5-27 10:48
好資料,51黑有你更精彩!!!
作者: lyp1783    時間: 2018-6-24 19:53
謝謝樓主分享,最近在學校單片機,正好用得上
作者: 怪怪愛玩    時間: 2018-9-14 08:51
謝謝樓主。。。。。。。。
作者: 怪怪愛玩    時間: 2018-9-14 08:58
不對呀,請問樓主用什么軟件編譯的呀,KEIL打開沒有程序
作者: 13468823438    時間: 2019-3-13 17:55
這個有點問題啊樓主,按程序里端口接的線。1602什么都不顯示
作者: lindeijun1    時間: 2019-3-13 21:55
好資料,51黑有你更精彩!!!
作者: hc18371269426    時間: 2019-3-14 00:12
謝謝分享!
作者: wzl619    時間: 2019-9-25 10:42

好資料,51黑有你更精彩!!!

作者: asdpoi    時間: 2020-3-13 15:15
好資料,設計剛好用到
作者: sweets1998    時間: 2020-3-23 06:23
能貼上就是貢獻
作者: longlian123    時間: 2020-4-22 22:38
感謝分享
作者: zigongwanjun    時間: 2020-4-28 01:38
不錯,學習借鑒一下。
作者: A星貓    時間: 2020-9-29 19:06
這個文件有毛病,打不開,一打開全是亂碼




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1