历史上的今天

今天是:2024年10月14日(星期一)

正在发生

2021年10月14日 | 基于51单片机的霍尔自行车里程测速仪

发布者:幸福之舞 来源: eefocus关键字:51单片机  霍尔 手机看文章 扫描二维码
随时随地手机看文章

一.硬件方案

以 51 单片机为核心,A44E 霍尔传感器测转数,实现对自行车里程/速度的测量统计,采用 数码管实时显示自行车的里程数及速度。利用霍尔元件将自行车每转一圈的脉冲数传入单片机系统,然后单片机系统将信号经过处理送显示。


主要由51单片机+最小系统+霍尔传感器+数码管+三极管+lm393+LED指示灯模块+按键;如图:

二.设计功能

(1)51单片机作为控制核心,驱动显示模块,驱动按键模块等,并利用霍尔传感器与磁铁获取脉冲信号。

(2)4位共阳数码管为速度,距离显示模块,速度单位为 km/h,距离单位是 km。

(3)设有一个按键来切换显示速度和距离。


三.设计原理图

原理图主要采用AD软件进行设计,如图:

四.软件设计

(1)程序流程图

(2)主程序源码


//====================================主函数=========================================================

void main()

{

time0_int0_init();//定时器0和外部中断0的初始化

while(!TR0) //上电一直未切割时就显示  0.0.0.0 

{

init_display();

}

while(1)

{

if(!change)//按下切换按键显示里程

{

delay1m(5);

if(!change)

flag = ~flag;

}

while(!change);

}

 

}

}


//==================================定时器0中断函数================================

void time0_interrupt()interrupt 1 

{

TL0 = (65536 - 5000) % 256;// 12M晶振,5ms定时

TH0 = (65536 - 5000) / 256;

display_function();

time_counter++;

time_counter8++;

if(time_counter8 >= 1600)//大于8s没切割,车子视为停下了,速度为:0,但里程还记着

{

time_counter8 = 0;

speed = 0;//速度为 0

point1 = 0;

buf1[3] = speed%10;buf1[2] = speed/10%10;

buf1[1] = speed/100%10;buf1[0] = speed/1000%10;

}

}

//==================================外部中断0中断函数=========================

void int0_interrupt()interrupt 0

{

external_counter++;

if(external_counter ==1 )TR0 = ~TR0;//第一次切割打开定时器0

if(external_counter == 65535)external_counter = 0;

time_counter8 = 0; //只要8秒内有切割,车子就任在运行

if(external_counter % 2 == 0)//切割2次 更新下速度

{ //*5是因为中断一次是5MS

if(flag1==0){speed =((ulong)(36000)*zhouchang)/(time_counter * 5);flag1=1;}

else if(flag1==1){speed =((ulong)(36000)*2*zhouchang)/(time_counter * 5);}//速度:单位为 m/h ,*1000的目的是不出现浮点数

if((speed >= 100)&&(speed < 1000)) //100 ---- 1000       3位整数

{

point1 = 1;buf1[3] = speed%10;buf1[2] = speed/10%10;

buf1[1] = speed/100%10;buf1[0] = 0;}

else if((speed >= 1000)&&(speed < 10000))   //1000 ---- 10000        4位整数

{

point1 = 1;speed = (uint)speed;

buf1[3] = speed%10;buf1[2] = speed/10%10;

buf1[1] = speed/100%10;buf1[0] = speed/1000%10;}

else if((speed >= 10000)&&(speed < 100000))   //10000 ----- 100000      5位整数

{

point1 = 2;

buf1[3] = speed/10%10;buf1[2] = speed/100%10;

buf1[1] = speed/1000%10;buf1[0] = speed/10000%10;}

else if((speed >= 100000)&&(speed < 1000000))  //100000 ------ 1000000    6位整数

{

point1 = 3;

buf1[3] = speed/100%10;buf1[2] = speed/1000%10;

buf1[1] = speed/10000%10;buf1[0] = speed/100000%10;} 

time_counter = 0;

}

if(external_counter % 8 == 0)//每切割8次 更新下里程

{

s = (ulong)external_counter * zhouchang;  //里程:单位为   cm

if((s >= 1000)&&(s < 10000))

{

point2 = 1;    //  0.012    001212

buf2[3] = s/100%10;buf2[2] = s/1000%10;

buf2[1] = 0;buf2[0] = 0;}//   4位整数

else if((s >= 10000)&&(s < 100000))

{

point2 = 1;

buf2[3] = s/100%10;buf2[2] = s/1000%10;

buf2[1] = s/10000%10;buf2[0] = 0;}//     5位整数    0.123 012345

else if((s >= 100000)&&(s < 1000000))

{

point2 = 1;

buf2[3] = s/100%10;buf2[2] = s/1000%10;

buf2[1] = s/10000%10;buf2[0] = s/100000%10;} //    6位整数 1.234    1234 56

    else if((s >= 1000000)&&(s < 10000000))

{

point2 = 2;

buf2[3] = s/1000%10;buf2[2] = s/10000%10;

buf2[1] = s/100000%10;buf2[0] = s/1000000%10;}//     7位整数   1234 567

else if((s >= 10000000)&&(s < 100000000))

{

point2 = 3;

buf2[3] = s/10000%10;buf2[2] = s/100000%10;

buf2[1] = s/1000000%10;buf2[0] = s/10000000%10;} //     8位整数 1234 5678

}

}

关键字:51单片机  霍尔 引用地址:基于51单片机的霍尔自行车里程测速仪

上一篇:基于51单片机的智能灯光控制系统
下一篇:基于51单片机的温度+烟雾报警系统设计

推荐阅读

前不久,国内AI巨头科大讯飞陷入了一场“造假”漩涡之中,有媒体报道,科大讯飞的AI同传可能是人类翻译冒充,并非机器翻译。虽然科大讯飞事后澄清并未造假,却无法打消大家的质疑。 实际上,类似的事件之前也出现过,在江苏卫视《最强大脑》节目中,百度大脑挑战一众最强大脑,也有网友认为其中可能存在鲜为人知的内幕。那么,为何大家会对AI产生诸多质疑...
  “AI前进的道路上会有各种各样想象不到的事情发生,但我们前行的决心不会改变。”  百度AI开发者大会亮点不断,但最令人意外上了热搜的却是李彦宏当场遭浇水。  但无论有多少人,对百度有多少的不满和不认可,不可否认的是百度在AI前进的路上,一直走在领头的位置。  累计200万公里路测,L4级自动驾驶出租车队,156家Apollo生态合作伙伴、获首批...
英伟达上个月正式宣布将以400亿美元的价格从软银手中收购Arm。此前有证券机构认为,这笔收购案所面临的最大挑战将会是中国监管机构的批准。现据外媒的最新消息,英国政府可能会阻止这项交易。批评人士警告称,该交易将对就业构成风险,还有可能威胁Arm在全球的地位。该报道指出,英国文化部长奥利弗•道登(Oliver Dowden)现在主要负责这项交易,并有权下...
针对上篇文章对于程序可移植性不强的问题进行优化,基本思路是首先搭建好IIC底层驱动程序,该程序可用于任何IIC通讯设备,然后针对不同的IIC设备单独编写应用程序,本篇文章仍以SHT30为例。一、IIC底层驱动之myiic.h#ifndef __MYIIC_H#define __MYIIC_H#include "sys.h" //IO方向设置#define SDA_IN() {GPIOC->CRH&=0XFFFF0FFF;GPIOC-...

史海拾趣

问答坊 | AI 解惑

ev2440开发

EV2440开发软件用户手册…

查看全部问答∨

发一本单片机教程

这本教程我感觉写的不错,但是只有上本,我暂时还没找到下册,上传,分享下。…

查看全部问答∨

微波、射频电路设计3

微波、射频电路设计3…

查看全部问答∨

热插拔试验

大家有没有做过windows驱动开发技术详解14章的试验,会出现什么效果啊?…

查看全部问答∨

求助msp430 spi问题

串口通讯问题 我使用ADS7886做模数转换,但结果总死在第一个 while(!(IFG2 & UCA0RXIFG))这里了。。 麻烦哪位高手帮下忙,万分感谢!!! void init_spi() { P3DIR |=0X41; P3SEL |=0X21; UCA0CTL0 |=UCMSB+UCMST+UCSYNC;//3线8位spi UC ...…

查看全部问答∨

实钟程序

实钟程序,通过89C52让1602液晶显示出实钟,通过key1键(功能键)设置日期,时间,key2键为按一次时间或日期加1,key3为按一次时间或日期减1,现在,更改日期时间还有时间走秒走分走时都没问题,就是小时每到24小时后星期不知道要怎么显示往前进一 ...…

查看全部问答∨

求教生产滤波器的厂家

近期需要考虑一款模拟滤波器,需要带宽足够窄,查到村田有一款但是到货太慢,还有其它厂家吗?请大家帮忙建议一下!…

查看全部问答∨

关于奇数分频大家都什么好的思路呢?

如题 如果是你会如何充分利用FPGA的资源来实现奇数分频呢…

查看全部问答∨

MT6589_EMMC_LPDDR2_WG+TG_V0.02

联发科手机原理图MT6589_EMMC_LPDDR2_WG+TG_V0.02 …

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved