找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7263|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)霍爾測速里程表源代碼與實(shí)物DIY作品分享

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
為了學(xué)習(xí)單片機(jī),不知不覺來論壇好幾個(gè)月。一直都是伸手黨。今天特將自己的資料分享給大家。順便展示一下DIY成果。霍爾測速,按鍵清零,usb充電。因?yàn)殡妷焊哌_(dá)65v。所以采用HRD05003,修改了電壓為13V。LM2596s降壓5v充電充電,采用二級降壓手機(jī)充電更安全
只要修改一下distance=distance+0.0010100;后面的數(shù)字就可以校準(zhǔn)速度和里程。這個(gè)是我的車輪12寸周長101厘米
不過也有很多不足之處,斷電不能保存里程。速度顯示不完美,一個(gè)脈沖3.56KM/H。如果要想精度更高必須修改刷新時(shí)間。歡迎單片機(jī)大神來指正。


降壓模塊,日本拆機(jī)。某寶7塊左右,默認(rèn)電壓5v?梢酝ㄟ^修改電阻修改電壓,現(xiàn)在已經(jīng)被我改為13v電壓。
官方標(biāo)稱耐壓高達(dá)50v。因?yàn)椴捎玫氖峭秸,所以效率高達(dá)3a左右。完爆國產(chǎn)。還有很多不錯(cuò)的模塊,現(xiàn)在都漲價(jià)了。









單片機(jī)源程序如下:
  1. #########################################################################
  2. #include"lcd.h"
  3. #include <intrins.h>
  4.       
  5. #define uchar unsigned char
  6. #define uint  unsigned int

  7. sbit K1 =  P3^0;  

  8. uchar Time=0;
  9. uchar count=0;

  10. float speed=0;
  11. float distance=0;

  12. void IntConfiguration()
  13. {
  14.         //設(shè)置INT0
  15.         IT0=1;//跳變沿出發(fā)方式(下降沿)
  16.         EX0=1;//打開INT0的中斷允許。
  17.       
  18.         EA=1;//打開總中斷      
  19. }

  20. void TimerConfiguration()
  21. {
  22.     TMOD = 0x01; //選擇工作方式1
  23.     TH0 = 0x3C;         //設(shè)置初始值,定時(shí)50MS
  24.     TL0 = 0xB0;
  25.     EA = 1;                         //打開總中斷
  26.     ET0 = 1;TR0 = 1;                 //打開定時(shí)器0中斷//啟動(dòng)定時(shí)器0                     
  27. }

  28. main()
  29. {
  30. //    uchar i;
  31.         IntConfiguration();
  32.         TimerConfiguration();
  33.         LcdInit();
  34.         LCDWrite_String(0, 0, 16, "Sudu:       Km/h");
  35.         LCDWrite_String(0, 1, 16, "Licheng:      Km");
  36.         while(1)
  37.         {
  38.                 if(K1==0)
  39.                 {
  40.                         distance=0;
  41.                 }               

  42.                 LcdWriteCom(0x80+6);
  43.                 LcdWriteData('0'+(int)speed/100%10);
  44.                 LcdWriteData('0'+(int)speed/10%10);
  45.                 LcdWriteData('0'+(int)speed%10);
  46.                 LcdWriteData('.');
  47.                 LcdWriteData('0'+(int)(speed*10)%10);
  48.                 LcdWriteData('0'+(int)(speed*100)%10);

  49.                 LcdWriteCom(0xc0+9);
  50.                 LcdWriteData('0'+(int)distance/10%10);
  51.                 LcdWriteData('0'+(int)distance%10);
  52.                 LcdWriteData('.');
  53.                 LcdWriteData('0'+(int)(distance*10)%10);
  54.                 LcdWriteData('0'+(int)(distance*100)%10);
  55.                
  56.         }

  57. }

  58. void Int0()        interrupt 0                //外部中斷0的中斷函數(shù)
  59. {
  60.         count++;
  61.         distance=distance+0.0010100;
  62. }

  63. void Timer0() interrupt 1
  64. {
  65.         TH0 = 0x3C;         //設(shè)置初始值
  66.     TL0 = 0xB0;
  67.         Time++;
  68.         if(Time>=20)                //每1s計(jì)算一次
  69.         {
  70.                 speed=count*4.9455*0.72;                 //KM/H
  71.                 count=0;
  72.                 Time=0;
  73.         }
  74. }
復(fù)制代碼



所有資料51hei提供下載:
電動(dòng)車?yán)锍瘫?zip (39.98 KB, 下載次數(shù): 72)


評分

參與人數(shù) 2黑幣 +105 收起 理由
Lieternal + 5 很給力!
admin + 100 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表