搜档网
当前位置:搜档网 › 工学简易自行车数字里程表设计

工学简易自行车数字里程表设计

工学简易自行车数字里程表设计
工学简易自行车数字里程表设计

本科毕业论文

题目:简易自行车数字里程表设计

摘要

本文对自行车里程表的结构、设计原理进行了介绍,并应用芯片LM339和AT89S51设计、制作了自行车里程表。文章介绍了所用芯片的存储结构、各管脚的功能,对各个模块的工作原理进行了分析。并对自行车里程表进行了展望。

本文先对里程表设计当中所需设备作了详细介绍,对设计中存在的问题进行了说明;而后对硬件和软件部分的设计和实现作了认真的分析;然后给出了系统的建模过程及相应的系统模型,在此基础上进行了控制仿真,并对仿真效果进行了比较。

本里程表的设计具有结构简单,成本低廉,显示清晰,稳定可靠等优点。并且可进行扩充,加入时速表的功能,更加方便的了解你现在所处的情况。

【关键词】光电对管;单片机AT89S51 ;LM339;键盘;

Abstract

In this paper, the structure and principle of traditional bicycle odometer are introduced, and applying LM339 and ATS89S51 has designed and made a bicycle odometer .The article has introduced what be memory structure of used chip , every function of pin ,and has carried out analysis on operating principle of each modules, and has been in progress to design of bicycle odometer to look into the distance.

This article first right Odometer designs required equipment, details of the design issues of; Later on hardware and software design and implementation carefully analyzed; Then the system modeling process and the corresponding model, based on the control simulation, Simulation results also were compared.

Odometer the design of the structure is simple, low cost, showing clear, stable and reliable results. And can be expanded to speed the function table and more convenient understand you are now stand.

Keywords:photoelectric cell; AT89S51;LM339; keys;

摘要I

ABSTRACT I

1绪论1

1.1.课题的背景与意义1

1.2课题所要解决的主要问题1

2系统设计2

2.1.系统功能分析2

2.2.系统功能模块设计2

2.2.1硬件电路设计2

2.2.2软件设计8

3程序代码10

3.1.数据采集程序10

3.2键盘扫描程序10

3.3.中断程序11

4系统调试与结果分析12

4.1.电路调试12

4.1.1硬件调试12

4.1.2软件调试12

4.2.结果分析13

5总结与展望13

致谢14

参考文献14

附录1程序原代码15

附录2系统电路图21

附录3系统实拍图错误!未定义书签。

1绪论

1.1.课题的背景与意义

中国的轻型电动车产业在2000年进入产业化发展阶段,目前正处于产业生命周期快速增长阶段的初期。尽管处于处处封杀的重压下,消费者对这一新兴交通工具的青睐,推动轻型电动车产业近年来保持了80%以上的增长速度。2005年,在整体经济需求增长放慢、工业增速回落的背景下,轻型电动车行业却出现令人瞩目的“井喷”行情,成为耐用消费品市场不多的“亮点”之一。2006产销量达到1500万辆。据此估算,2010年,中国轻型电动车的产销量将可能达到3000万辆,出口量将可能达到500~600万辆。实现工业产值700亿元,包括上下游带动产值的产业总体规模将达到1300亿。

我国是自行车大国,随着人们生活水平的不断提高,自行车已经不仅仅是运输、代步的工具,其辅助功能也变得越来越重要。因此,人们希望自行车的娱乐、休闲、锻炼的功能越来越多,能带来大家更多的健康与快乐。在这个背景下,自行车里程表作为自行车的一大辅助工具迅速发展起来.科学、美观、合理设计自行车里程表有一定的实用价值.它能合理计算出速度及公里数,使运动者运动适量,达到健康运动与代步的最佳效果。

随着自行车里程表的发展,其功能也逐渐从单一的里程显示发展到速度、时间显示,甚至有的还具有测量骑车人的心跳、显示骑车人热量消耗等功能,让人能清楚地知道当前的速度、时间、里程等物理量。

1.2 课题所要解决的主要问题

(1).设计一个轻便、省电、全天候野外使用的自行车里程表;

(2).可显示里程、速度、加速度,行驶时间等信息;

(3).适用于各种车型(不同尺寸),车型信息可通过键盘设置

2系统设计

2.1.系统功能分析

本系统可以实现自行车或电动车在行驶过程中速度,里程数的显示功能。系统元件简单,实用性强。通过光电对管进行信号的采集,每来一次信号,计数器加一,每五秒钟计算一次平均速度。本系统的核心在于单片机,把采集到的数据送入单片机后进行处理,再通过单片机把处理好的数据通过液晶显示出来,从而实现速度和里程的显示。

本系统是由数据采集,单片机控制系统,键盘显示,液晶显示4部分构成。其中数据的采集是由光电对管来完成的,它的输出是矩形脉冲,其中关键的处理由单片机系统来完成,单片机将对P3.0脚的信号进行计数,输出的信号由液晶进行显示,显示当前的行驶里程情况。键盘的作用是输入自行车的车型等信息,以上所诉就是整个系统的总体设计思想。[6]

该设计能实时地将所测的累计里程数显示出来,主要是将传感器输入到单片机的脉冲信号的频率(传感器将不同车速转变成不同频率的脉冲信号)实时地测量出来,通过单片机计算出里程,并由液晶显示模块显示所测里程。本设计的里程数的算法是一种大概的算法(假设在一定时间内自行车是匀速行进,平均速度与时间的乘积即为里程数)。

设计时,应综合考虑测速精度和系统反应时间。本设计用测量脉冲频率来计算速度,因而具有较高的测速精度。在计算里程时取了自行车的理想状态。实际中,误差控制在几米之内,相对于整个里程来说不是很大。另外,还应尽量保证其他子模块在编程时的通用性和高效性。

2.2.系统功能模块设计

2.2.1硬件电路设计

1.系统数据采集电路

信号采集单元采用一对光电管[15],光电管信号采集是通过光强弱的变化从而得到电信号的。如图2-1所示随着铝盘的转动,发射管光线也随之通过或不通过过孔。接收管感应到光线的强弱发生变化以电信号的形式输出,这样就实现了信号的采集。为了避免外界光线的干扰和保证定位探测的精度,首先要将光电管在一定距离内对准固定住,同时在光电管上套上紫铜管[9]。

图2-1数据采集电路图

2.信号预处理单元硬件设计

信号预处理单元要对信号进行放大,本系统设计通过LM339比较器使得信号预处理电路变得简单。LM339在使用时要接上拉电阻,通过正负端输入电压的大小比较(正端输入电压>负端输入电压,输出+5V电压;正端输入电压<负端输入电压,输出0V电压)。如图4-3所示10k的滑动变阻器是调节LM339负输入端的电压值。当接收管收到发射管的光线时,接收管的负端会导通,电阻变得很小,输入正端的电压趋近于0,输出端电压值就会变成0V。P3.0为输出信号端口,加电容是为消除干扰信号[11]。

用于频率测量的方法有很多,频率测量的准确度主要取决于所测的频率范围以及被测对象的特点.而测量所能达到的精度,不仅仅取决于作为标准器使用的频率源的精度,也取决于所使用的测量设备和测量方法。待测信号经预处理电路后加至单片机的P3.0引脚可为单片机测量信号频率提供有效的输入信号。单片机通过检测P3.0引脚电平来决定是否使计数器加一。当该引脚电平不变时,系统处于等待状态,要一直到该引脚出现电平跳转时才开始计数[9]。

该设计能实时地将所测的速度与里程数显示出来,主要是将传感器输入到单片机的脉冲信号的频率(传感器将不同车速转变成不同频率的脉冲信号)实时地测量出来,然后通过单片机计算出速度和里程,并由液晶显示模块交替显示所测速度与里程。本设计的里程数的算法是一种大概的算法(假设在一定时间内自行车是匀速行进,平均速度与时间的乘积即为里程数)。

设计时,应综合考虑测速精度和系统反应时间。本设计用测量脉冲频率来计算速度,因而具有较高的测速精度。在计算里程时取了自行车的理想状态。实际中,误差控制在几米之内,相对于整个里程来说不是很大。另外,还应尽量保证其他子模块在编程时的通用性和高效性。本设计的速度和里程值采用液晶显示。

图2-2信号预处理硬件电路

3.单片机系统

AT89S51[11]是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。下面简单介绍下AT89S51单片机:

美国MEL公司的AT89S系列51单片机支持ISP功能,给单片机应用开发带来了极

大方便。现介绍一款简易型开发板的使用方法。将该板插入DIP40封装的8051单片机插

座处,通过廉价的ISP即可编程AT89S51,支持在线擦写,速度更快,非常方便。

AT89S51芯片内有两个独立的16位定时/计数器,两个外中断接口,一个串行通讯口,4k 字节快闪擦写存储器(FLASH MEMORY),低功耗的闲置和掉电模式,内带有看门狗电路,在不附加任何外围电路的情况下,能实现大部分比较复杂的逻辑控制功能,对存储容量要求不高的实际应用,AT89S51确实是一种不可多得的高效能单片机。

(1)主要特性:

与MCS-51 兼容

4K字节可编程闪烁存储器

寿命:1000写/擦循环

数据保留时间:10年

全静态工作:0Hz-24Hz

三级程序存储器锁定

128*8位内部RAM

32可编程I/O线

两个16位定时器/计数器

5个中断源

可编程串行通道

低功耗的闲置和掉电模式

片内振荡器和时钟电路

(2)AT89S51增加的新功能包括:

ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离,是一个强大易用的功能。

工作频率为33MHz,大家都知道AT89C51的极限工作频率只有24MHz,就是说S51具有更高工作频率,从而具有了更快的计算速度。

具有双工UART串行通道。

内部集成看门狗计时器,不再需要像AT89C51那样外接看门狗计时器单元电路。双数据指示器。

电源关闭标识。

全新的加密算法,这使得对于AT89S51的解密变为不可能,程序的保密性大大加强,这样就可以有效的保护知识产权不被侵犯。

兼容性方面:向下完全兼容51全部字系列产品。比如8051、AT89C51等等早期MCS-51兼容产品。也就是说所有教科书、网络教程上的程序(不论教科书上采用的单片机是8051还是AT89C51还是MCS-51等等),在AT89S51上一样可以照常运行,这就是所谓的向下兼容。[3]

本系统的核心部分就在于单片机,通过单片机从LM339读数据,然后处理,再通过单片机送到液晶显示。

LM339是个比较器,每次输出非0即1,所以单片机读到的信号要么是0要么是1。其中单片机的P3.0口接LM339的输出端,P3.0每跳变一次,单片机里的计数器加一。

单片机的P0口接8个上拉电阻,再接键盘,通过读P0口实现键盘扫描.系统一开始会出现”Width:”字样,要求用户输入自行车的轮胎宽度,在本系统中可以通过测量前面模仿轮胎的纸片的半径值来设置宽度。通过键盘把轮胎宽度传给单片机。之后单片机根据采集到的数据来计算自行车行驶的速度,和里程数,速度精确到0.1m,里程数精确到0.1km。最后把速度和里程数的值通过液晶显示模块显示出来。

图2-3 单片机系统电路图

4.显示系统

本系统采用的是1602的液晶显示,其中RS接P2.0,RW接P2.1,E接P2.2,D0-D7接单片机的P1口,通过程序即可实现显示速度和里程数。

1602介绍:

管脚功能:

1602采用标准的16脚接口,其中:第1脚:VSS为电源地;第2脚:VDD接5V 电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端。第7~14脚:D0~D7为8位双向数据端。第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。操作控制:

表2-1 1602操作控制表

1602内部的字符发生存储器一共存储了160多个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地41H中的点阵字符图形显示出来,我们就能看到字母“A”。因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如'A’。读的时候,先读左边那列,再读上面那行,如:感叹号!的ASCII 为0x21,字母B的ASCII为0x42(前面加0x表示十六进制)。

指令集:

1602通过D0~D7的8位数据端传输数据和指令。显示模式设置:(初始化)0011 0000 [0x38] 设置16×2显示,5×7点阵,8位数据接口;显示开关及光标设置:(初始化),0000 1DCB D显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效)0000 01NS N=1(读或写一个字符后地址指针加1 &光标加1),N=0(读或写一个字符后地址指针减1 &光标减1),S=1 且N=1 (当写一个字符后,整屏显示左移)S=0 当写一个字符后,整屏显示不移动数据指针设置:数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H)其他设置:01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。

5.键盘系统

本系统采用4*4键盘,其中使用到的只有其中10个,另外六个保留,键盘的作用就是设置轮胎的宽度,和另外的一些参数值,也可以通过键盘来控制程序的运行(本系统未使用)。4*4的键盘引出的8个引脚接单片机的P0口。键盘扫描原理是按键部分由16个轻触按键按照4行4列排列,连接到P0端口。将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。本系统采用的扫描法,具体如下:判断键盘中有无键按下:将全部行线置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。判断闭合键所在的位置:在确认有键按下后,即可进入确定具体闭合键的过程。方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。[3]

图2-4键盘扫描电路图

2.2.2软件设计

(1)系统介绍

本系统主要通过C语言进行单片机编程,从而实现信号的读取与显示,通过51单片机的内部中断来实现实时的显示速度和里程数。键盘扫描,液晶显示等部分都是通过软件来控制。

(2)系统流程图

程序设本系统的核心部分,系统的各个方面都是通过程序来控制和协调。程序的核心部分就是中断时间到了之后进中断的各个数据的计算。程序开始的时候先初始化1602的液晶,然后液晶模块上会提示用户输入自行车的轮胎宽度:width(0-99cm),当用户输入完后,这个数值将被作为自行车的轮胎半径参加计算。之后程序就初始化中断模式,之后就进入一个while循环,在循环中接收信号和显示数据,如果中断时间到了,那么进入中断,从新计算速度跟里程数。退出中断后又继续显示新的速度跟里程数。流程图如下:

图2-5 系统流程图

3程序代码

3.1.数据采集程序

void recv()

{if(q!=p)

{q=p;

count++;}

}

上面程序是数据的采集,其中sbit p=P3^0;sbit q;因为p是接收脉冲的,时刻都在改变,所以用q来保存p的值,每次当P3.0口发生跳变的时候,计数器加一,此处为什么不用高电平或低电平的时候计数器加一呢?因为光电对管传过来的电平在高电平或低电平的时间可能不一样,如果高电平时间过长,那么P3.0检测到的将一直是高电平或低电平,这样计数器就可能一直加一,这样就导致采集的数据不准确。

3.2键盘扫描程序

unsigned char Scan_Key(void)

{

char a1,i;

unsigned char ptr=0,m,m_ptr;

bit FLAG0;

FLAG0=0;

while(!FLAG0)

{

//FLAG0=0;

a1=0xf7;

for(i=0;i<4;i++)

{

P0=a1;

delay(10);

m=P0;

switch( m & 0xf0 )

{

case 0x70:

ptr=i*4;

FLAG0=1;

break;

case 0xb0:

ptr=i*4+1;

FLAG0=1;

break;

case 0xd0:

ptr=i*4+2;

FLAG0=1;

break;

case 0xe0:

ptr=i*4+3;

FLAG0=1;

break;

default:

break;

}

if(FLAG0==1)

{

break; }

a1=a1>>1 | 0x80; }

if(ptr<10)

m_ptr=ptr;

if(ptr>10)return 'a';

}

return m_ptr;

}

这里的FLAG是标记键盘有没有按下的,ptr是记录按下键盘的键值所对应的数值。在程序的最后为什么添加个m_ptr呢?这是为了满足,width能够在0-100内取值,因为如果width<10的话,那么只要按一次键即可实现,如果width>10的话,就必须输两次。在这里,程序中每次都要求用户输入两个数据,如果第一次输入是在0-9内的,第二次输入也在0-9的,那么width就是一个两位数;如果第一次输入在0-9内的,第二次输入大于10的,那么程序就认为width是0-10的数,数值就等于第一次输入的值,在程序中也就是if(ptr>10)return 'a';在下面的程序中就会对键盘扫描得到的值进行分析,判断是不是’a’.这样就实现了键盘输入的width可以控制在0-99了。[3]

3.3.中断程序

void Timer() interrupt 1

{ TR0=0;

TH0=0x0fe;//重新设定定时时间

TL0=0x0c;

if(m_usetime==5000)//每五秒算一次速度

{

speed=(6.28*wheel_width*count)/5.0;//计算速度

m_usetime=0;

count=0;

distance_n+=5*speed;

if(distance_n>=100)

{

distance=(distance+distance_n/1000.0); distance_n=0;

}

}

else m_usetime++;

TR0=1;

}

在中断里的任务主要是实时的计算自行车在行驶中的速度和里程数,在本程序中,采用每五秒计算一次速度,因为自行车的速度比较慢,可能在1秒内光电对管收不到信号,所以这里显示的速度就是每5秒自行车速度的平均值,精确到0.1m;而里程数是精确到0.1km,程序中以distance_n来提示里程增值是否到达100,如果到达一百那么里程数就加0.1;但是由于晶振可能有问题,所以这里的定时器总是不是很准确。

源程序详见附录1。

4系统调试与结果分析

4.1.电路调试

4.1.1硬件调试

本电路的硬件部分比较简单,在调试过程中,主要是信号采集电路与1602液晶模块的调试。

信号采集电路采用的光电对管在电路焊接中,两个对管一定要对得很准否则就可能影响信号的采集,本人在调试光电对管的时候就发生这样的情况,由于两个对管都是直接焊接在开发板上的,但是在对齐上面有偏差,就导致了信号不能采集。最后用了光电对管的最小模块系统,成功的采集到信号。而1602液晶显示则必须注意调节它的背光,否则不能正常显示。如果电路连接正常,上电后,看到液晶有正常的亮度,但是不能显示实验的数据时,首先应该考虑到液晶的背光没有调节好,之后才考虑到硬件或软件的问题。

4.1.2软件调试

本系统的核心部分是软件,因此在前期的工作中主要的工作就是调试软件,在proteus 仿真中正常执行。下面讲下本人在软件调试中遇到的各个问题

首先是变量的定义问题,大家都知道,在C语言中我们习惯的使用int型的数据,但是在单片机软件的设计中,如果变量很多,就应该避免使用int型的,尽量使用unsigned char 型的,因为单片机的内部存储器有限,用unsigned char可以节省空间。本人开始由于都使用int型,导致最后生成的hex文件过大。但是,当我们使用的数据的值大过256时,我们就不能使用unsigned char类型,否则就会导致数据溢出,这时我们就要使用unsigned int

型或short型,本人在调试的时候,当速度小的时候都能够正常显示,当速度很大的时候,1602显示的数据就不对,经过对程序的检查才知道是数据类型的定义问题。之后就是程序

的流程必须先画好,程序各个模块的代码先写好,之后再根据程序的流程图整合各个模块

的小程序,同时要注意程序的时序问题。[13]

4.2.结果分析

本系统使用的是光电对管来进行数据采集,光电对管产生的信号非0即1,也就是方波,因为实验条件有限,因此,本人使用信号发生器来模拟自行车行驶过程中,光电对管

所采集到的信号。1HZ就表示自行车每秒钟转一圈。本系统软件中计算速度的公式是:speed=3.14*width*count/2;width是通过键盘输入的,count就是计数器,因为程序是根据跳

变来计数的,所以最后除以2。下表就是不同的width,不同的频率所显示的速度值,以及

理论值。测试结果见表5-1。

表5-1 测试数据表

5总结与展望

本文对自行车里程表作了细致、全面、规范的分析;对总体相应的软、硬件进行了设计、制作及调试,并贯穿至设计的全过程。对文中所提到的各种算法都进行了处理,并得出结论。所做工作如下:

(1)对设计中所需要的元件分析其原理和性能,极其应用和发展。

(2)详细介绍本自行车里程表硬件设计的方案,电路图,并附上说明。

(3)详细介绍软件设计方法,并给出个部分的程序清单。

(4)给出对本设计进行仿真调试的过程。

系统设计中有待改进的方面有一下几点:

(1) 显示的速度和里程值有误差:在速度值不大的时候误差比较小,但是当速度值大的时候误差就比较大,而里程数也只有精确到0.1km。

(2) 里程的值不能够保存:本系统测量的里程数只能是本次行驶的里程,不能测量一共的里程数,因此可以加个外部程序存储器来储存里程数,使掉电后仍有效。

(3)只测量了速度跟里程:为了更多的需要,里程表可以增加温度显示,人体消耗的热量等等。[11]

本次设计时间从开始选题算起,已经花费近五个月的时间去分析论证、设计制作和调试功能,已具有可实用性,基本达到了设计任务目标要求。系统的设计涵盖了软件和硬件两个方面,虽然遇到了不少的困难,但是还是在自己的努力和老师的指导下完成了整个系统的基本功能。

致谢

本论文是在导师吴平老师的悉心指导下完成的,在此我首先对吴老师表示最诚挚的谢意!

在此,我要感谢物理与电子信息学院的每位教导过我的老师和同学们,感谢他们在我的工作和课题研究中给予了我很多的关心、支持和帮助,使得我能顺利地工作和完成课题最后,向所有关心、支持、帮助过我的各位老师、领导、同学和朋友们再次表示诚挚的感谢!

参考文献

[1] 何立民. 单片机高级教程—应用与设计[M].北京:北京航空航天大学出版社,2000年:100-150.

[2] 潘栋. 单片机在自行车里程表中的应用[J].电子与自动化,1998,3:42-43.

[3] 高锋.单片微型计算机原理与接口技术[M].北京:科学出版社,2003:140-150.

[4] 童诗白.华成英.模拟电子技术基础[M].北京:高等教育出版社,2001:434- 438.

[5]郑农发.电子式车速里程表[M].芜湖:安徽机电学院,1999-10:18-27.

[6] 刘清波,菜淑珍,孙业歧,史楠.基于单片机的汽车里程表设计[N].河北:《河北

大学学报(自然科学版)》,2002,3:277-278.

[7] 王锁弘.电子车速里程表的单片机实现方案[J].国外电子元器件,2004,5:7-10.

[8] 刁文兴.自行车电子里程表的初步设计[N].南京:《南京工业职业技术学院学报》,

2004,2:31-33.

[9] 张怀强,周通,陆坤,何为民.基于单片机与光电传感器的电动自行车速度与里程

表的设计[J].《今日电子》,2006 ,7:49-52.

[10] 卢结成.电子电路实验及应用课题设计[J].北京:中国科学技术大学出版社,

2002,2:130-140.

[11] 诸德宏,潘天红,朱湘临.数字式汽车里程表的的设计[J].江苏:江苏大学电气信

息工程学院,2002-10,12:830-832.

[12] 周航慈.单片机应用程序设计技术[M].北京:北京航空航天大学出版社,1991,3:

266-286.

[13] 汤向恒,袁端才.用单片机实现的电子式里程表[J].湖南:电子世界,2003,2:

37.

[14] 王义方.周伟航.微型计算机原理及应用[M].北京:机械工业出版社,1997:20-25.

[15] 王煜东. 传感器及应用[M].北京:机械工业出版社. 2004:125-128.

附录1程序原代码

#include

#include

#include

sbit RS = P2^0;

sbit RW = P2^1;

sbit EN = P2^2;

sbit p=P3^0;

sbit q=0;

unsigned int m_usetime=0; float distance=0, speed=0; float wheel_width=0; unsigned char count=0; unsigned char distance_n=0; unsigned char k[32] ;

//////////////////////////////

/////////////软件延时/////////

//////////////////////////////

void delay(unsigned int n) {

unsigned int cc;

while(n-->0)

{

for(cc=10;cc>0;cc--);

} }

//////////////////////////////

////////////读lcd状态指令/////

//////////////////////////////

void recom( )

{

EN=0;

RS=0;

RW=1;

EN=1;

}

//////////////////////////////

//////////测试是否忙//////////

//////////////////////////////

void busytest()

{

P1=0xff;

RS=0;

RW=1;

EN=1;

while((P1&0x80)==0x80)

{

EN=0; //这两句protues仿真必须加

EN=1; //

};

EN=0;

}

//////////////////////////////

////写lcd指令不判断是否忙///// //////////////////////////////

void wrcom(unsigned char n) {

RS=0;

RW=0;

P1=n;

EN=1;

_nop_();

EN=0;

}

//////////////////////////////

/////写lcd指令判断是否忙////// //////////////////////////////

void wrcomn (unsigned char n) {

busytest();

wrcom(n);

}

/////////////////////////////

///////////清屏//////////////

/////////////////////////////

void clrscr()

{

wrcomn(0x01); //清屏

}

/////////////////////////////

///////////初始化lcd/////////

/////////////////////////////

void initlcd()

{

delay(150);

wrcom(0x38);

delay(50);

wrcom(0x38);

delay(50);

wrcom(0x38);

wrcomn(0x38);

wrcomn(0x08); //关显示不显示光标wrcomn(0x01); //清屏

wrcomn(0x06); //光标模式

wrcomn(0x0c); //开显示

}

////////////////////////////

//////////设置光标位置//////

////////////////////////////

void setpos(unsigned char x,unsigned char y) {

busytest();

x&=0x0f;

y&=0x03;

if(y==0x00)

wrcomn(x|0x80);

else if(y==0x01)

wrcomn((x+0x40)|0x80);

}

////////////////////////////

////////////写数据//////////

////////////////////////////

void wrightdata(unsigned char n)

{

busytest();

RS=1;

RW=0;

P1=n;

EN=1;

_nop_();

EN=0;

}

////////////////////////////

///////////写字符串数据/////

////////////////////////////

void wrightstrdata(unsigned char *s,unsigned int length)

{

int x,y;

int YMAX,XMAX[2];

if(length>16)

{

YMAX=2;

XMAX[0]=16;

XMAX[1]=length-16;

}

else

{

YMAX=1;

XMAX[0]=length;

XMAX[1]=0;

}

for(y=0;y

for(x=0;x

{

setpos(x,y);

wrightdata(*s);

s++;

}

}

////初始化///////

void Init()

{

TMOD=0x01;

TH0=0xfc;//设定定时时间,约为1.00043362

TL0=0x18;

ET0=1;

EA=1;

TR0=1;

}

//////接收脉冲///////

void recv()

{

if(q!=p)

{

q=p;

count++;

}

}

////中断/////////////

void Timer() interrupt 1

{ TR0=0;

TH0=0x0fc;//重新设定定时时间

TL0=0x18;

//printf("%d",count);

if(m_usetime==1000)//每五秒算一次速度

{

//k[7]=count/100+48;

//k[8]=(count%100)/10+48;

//k[9]=count%10+48;

speed=(6.28*wheel_width*0.5*count)/1.0;//计算速度

m_usetime=0;

count=0;

distance_n+=5*speed;

if(distance_n>=100)

电动车里程表设计

本文介绍的速度与里程表设计以单片机和光电传感器为核心。传感器将不同车速转变成的不同频率的脉冲信号输入到单片机进行控制与计算,再采用LED模块进行显示,使得电动自行车的速度与里程数据能直观的显示给使用者。 系统概述 本系统由信号预处理电路、单片机AT89C2051、系统化LED显示模块、串口数据存储电路和系统软件组成。其中信号预处理电路包含信号放大、波形变换和波形整形。对待测信号进行放大的目的是降低对待测信号的幅度要求;波形变换和波形整形电路则用来将放大的信号转换成可与单片机相连的TTL信号;通过单片机的设置可使内部定时器T1对脉冲输入引脚T0进行控制,这样能精确地算出加到T0引脚的单位时间内检测到的脉冲数;设计中速度显示采用LED模块,通过速度换算得来的里程数采用I2C总线并通过E2PROM来存储,既节省了所需单片机的口线和外围器件,同时也简化了显示部分的软件编程。 系统的原理框图如图1所示。

图1 系统的原理框图 工作原理 该设计能实时地将所测的速度与累计里程数显示出来,主要是将传感器输入到单片机的脉冲信号的频率(传感器将不同车速转变成不同频率的脉冲信号)实时地测量出来,考虑到信号的衰减、干扰等影响,在信号送入单片机前应对其进行放大整形,然后通过单片机计算出速度和里程,再将所得的数据存储到串口数据存储器,并由LED显示模块交替显示所测速度与里程。本设计的里程数的算法是一种大概的算法(假设在一定时间内自行车是匀速行进,平均速度与时间的乘积即为里程数)。 设计时,应综合考虑测速精度和系统反应时间。本设计用测量脉冲频率来计算速度,因而具有较高的测速精度。在计算里程时取了自行车的理想状态。实际中,误差控制在几米之内,相对于整个里程来说不是很大。为了保证系统的实时性,系统的速度转换模块和显示数据转BCD码模块都采用快速算法。另外,还应尽量保证其他子模块在编程时的通用性和高效性。本设计的速度和里程值采用6位显示,并包含两个小数位。 系统的硬件设计 脉冲发生源 本设计采用了ST1101红外光电传感器,进行非接触式检测。当有物体挡在红外光电发光二极管和高灵敏度的光电晶体管之间时,传感器将会输出一个低电平,而当没有物体挡在中间时则输出为高电平,从而形成一个脉冲。 该系统在自行车后轮的轴处保持着与轮子旋转切面平行的方向延伸附加一个铝盘,在这个铝盘的边沿处挖出若干个圆形过孔,把传感器的检测部分放在圆孔的圆心位置。每当铝盘随着后轮旋转的时候,传感器将向外输出若干个脉冲。把这些脉冲通过一系列的波形整形成单片机可以识别的TTL电平,即可算出轮子即时的转速。

自行车里程表的设计【开题报告】

毕业设计(论文)开题报告 题目:自行车里程表的设计 专业:电子信息工程 一、选题的背景、意义 192个国家的谈判代表召开峰会,商讨《京都议定书》一期承诺到期后的后续方案,即2012009年12月7日开是在丹麦首都哥本哈根召开的《哥本哈根世界气候大会》,来自2年至2020年的全球减排协议,就未来应对气候变化的全球行动签署新的协议。气候变化已经成为全世界共同关注的焦点问题,节能减排迫在眉睫,全球各个国家都在为节能减排做进一步的努力。加之2008年爆发的经济危机的影响之深远,让每一个身处社会的人都心有余悸。但是在这经济危机爆发的时刻,人来面临的能源问题,远比经济危机要让大家头痛得许多,中国正在积极推动企业的节能减排,提高全社会节能减排的意识。 电电动自行车是绿色节能的交通工具,在城城市化发展的进程中电动自行车满足了消消费者出行半径增大的需求。经过15年的快速发展,电动自行车产业已经进入了成熟期,产品的质量不断提高,技术创新成果普遍应用。中国已成为全球电动自行车的制造、消费大国,目前中国市场年产销量超过2000万辆,整个产业链的经济规模达到1000亿以上,从业人员近500万人。整车企业1000余家、6000余家相关联配套企业、100000家经销商、市场保有量达 1.2亿辆,电动自行车成为中国一个重要的产业,也是中国老百姓主要的交通工具。目前平均每四户居民家庭中就有一辆电动自行车,电动自行车已经成为城乡人民生活中的一种重要的消费品。2009年以来,面对世界金融危机的挑战,电动自行车产业依然保持了平稳发展。中国自行车协会助力车专业委员会的统计,50家主要生产电动自行车的企业,1-8月份累计总产量为656万辆,同比增长13%。另外,根据国家统计局的统计,1-8月份行业规模以上企业电动自行车产量累计生产为445.5万辆,同比增长8.7%。两个不同口径的统计数字均说明,2009年的前8个月行业仍然是增长的态势。 1989年清华第一台电动自行车样机到现在二十年的时间,中国电动自行车行业经历了从无到有,从小到大的过程,目前年产量已达2000万辆以上,社会总需求量在5亿辆以上。随着城市扩大化的发展进程,电动自行车已经逐渐成为百姓出行不可或缺的代步工具。2009年10月,国家标准管理委员会公布了《电动摩托车和电动轻便摩托车

电子车速里程表的设计

电子车速里程表的设计 摘要 随着电子技术的迅猛发展,电子式里程表得以广泛应用,现在很多轿车仪表已经使用电子车速里程表。本设计介绍一种基于AT89C51单片机的智能电子里程表。该电子式里程表是一种数字式仪表,主要由车速表和里程表两部分组成,其传感器采用霍尔传感器的脉冲信号检测与转换。此里程表不仅可显示车辆行驶的总里程,也可显示一段时间的阶段里程,还可显示车速,以及实现超速报警等功能,并具有较强的再开发能力。 本文详细描述了利用霍尔传感器和AT89C51单片机开发测速系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现实时速度、里程的采集和显示,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,有利于我们日常生活和汽车生产业的发展,也可以当作测速处理模块嵌入其它系统中,作为其他主系统的辅助扩展。该系统结构简单,抗干扰能力强,适合于恶劣环境下进行速度里程测量,有广泛的应用前景。 关键词:AT89C51,数码管显示器,霍尔传感器,速度里程表

目录 1 绪论 (1) 1.1 课题描述 (1) 1.2 基本工作原理及框图 (1) 2 相关芯片及硬件电路设计 (2) 2.1 AT89C51芯片 (2) 2.1.1 AT89C51的主要特性 (2) 2.1.2 AT89C51的管脚说明 (3) 2.2 霍尔速度传感器 (4) 2.2.1 霍尔传感器工作原理 (4) 2.2.2 霍尔效应 (4) 2.2.3 霍尔元件 (4) 2.3 单片机最小系统及电路 (5) 2.4 车速信号处理电路 (6) 2.5 显示电路 (8) 2.5 系统原理图 (9) 3 系统的软件及程序设计 (9) 3.1 主程序程序框图 (9) 3.2 调试及仿真 (11) 总结 (12) 致谢 (13) 参考文献 (14) 附录 (15)

基于单片机的电动车里程表设计说明

《基于单片机的电动车里程表设计》 目录 引言 (1) 1.总体设计 (2) 2.设计任务及要求 (2) 3.电路原理 (2) 4.硬件系统模块 (3) 4.1芯片的选择 (6) 4.2结构框图 (7) 5.软件系统设计 (7) 5.1控制系统源程序 (11) 6.调试 (13) 7.参考文献 (13)

引言 里程表广泛应用于各类机车,传统的机械式里程表虽然稳定可靠,但功能单一、易受磨损。随着电子技术的迅猛发展,电子式里程表得以广泛应用,现在很多轿车仪表已经使用电子车速里程表,从保护环境和经济条件许可等因素综合来看,电动自行车目前乃至今后都有着广阔的发展空间。目前市面上电动自行车的速度表和里程表都是机械的,看起来不够直观与方便。如果能用液晶显示屏直接显示出来里程数和速度值,就可节省用户的时间及精力处理自行车行进过程中的突发事件。 本设计介绍一种基于单片机的智能电子里程表。该电子式里程表是一种数字式仪表,主要由车速表和里程表两部分组成,其传感器采用无接触测量的光电传感器。传感器将不同车速转变成的不同频率的脉冲信号输入到单片机进行控制与计算,再采用液晶显示器模块进行显示,使得电动自行车的速度与里程数据能直观的显示给使用者。它不仅可显示车辆行驶的总里程,还可显示当前车速,以及实现超速报警等功能,并具有较强的再开发能力。它的实现方式是,通过安装在汽车转轴上的测量盘,用光电式转速传感器检测转速的脉冲信息,在脉冲状态下,将转速的变化转换成光通量的变化,再通过光电转换元件将光通量的变化转换成电量的变化,接着通过频率测量电路将脉冲信号输入到单片机中,然后依据电量与转速的函数关系实现转速测量,再通过计算,从而得出里程、车速的信息,并由液晶显示器显示出来。

基于单片机的里程表设计

《单片机原理及应用A》课程设计学院:电气工程学院 题目:基于单片机的里程表设计 起止时间:2016年8月22日至2016年9月9日 学生姓名: 专业班级: 指导教师: 教研室主任: 院长: 2016年8月20日

《单片机原理及应用A》课程设计 任务书 学院:电气工程学院 题目:基于单片机的里程表设计 起止时间:2016年8月22日至2016年9月9日 学生姓名: 专业班级: 指导教师: 教研室主任: 院长: 2016年8月20日

摘要:本次设计是采用MSC-51系列单片机中的STC89C52RC和YL-57霍尔传感器模块以及24C02B(E2PROM)模块构成的低成本电子式里程表。单片机STC89C52RC是一款低功耗、高性能的CMOS8位单片机,由于它强大的功能和低价位,因此在很多领域都是用它。YL-57霍尔传感器模块是有磁场切割就有TTL 电平信号输出,该模块包括一个74HC04和一块3144霍尔传感器,该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。设计主要包括硬件电路的设计和系统软件的设计。 硬件电路主要包括单片机、霍尔磁感应检测模块、显示模块、蜂鸣器以及控制设备等5部分。由LCD1602液晶模块构成系统显示模块;测速控制电路由YL-57霍尔传感器模块和预设速度值比较警告电路组成,同时将行驶里程数存入E2PROM使里程数断电不丢失;用户根据需要预先输入车轮周长和限速速速,测量实际行驶速度,发出警告信号(蜂鸣器蜂鸣),敦促驾驶员减速行驶。 软件部分包括了主程序、显示子程序、E2PROM读写子程序。 关键词:STC89C52RC;YL-57霍尔传感器模块;24C02B(E2PROM) 模块

自行车码表

出口澳大利亚/加拿大自行车码表 MULTI-FUNCTION CYCLECOMPUTER OEM , W/O BATTERY BLISTER CARD 马表说明书 请在使用时仔细阅读以下说明: FUNCTIONS 功能 1.Current Speed流速 2.24Hour Clock二十四小时计时器 3.Total Distance (ODO)全行程 4.Trip Time(TM)单次骑行时间 5.Maximum Speed (MXS) 最大时速 6.Average Speed(AVS)平均速度 7.Trip time (TM) 单次行程时间 8.Scan(SCAN)浏览 9.Kilometer/Mile conversion公里/英里转换 1O.Wheel Circumeference Setting 车轮周长设置 11.LCD Auto Clear 显示屏自动清除 12.Speed Trend 速度趋势 13.Auto Stop/Start自动开关 Main Units主件 1.Liquid Crystal Display液晶显示器 2.Mode Button模式按钮: use to Select the functions 用于选择功能 3.Set Button设置按钮: use to set the digit 用于设置数字 4.Battery Case Over电池盒 5.Cycle Computer Accessories马表配件 Mounting the cycle computer main unit bracket 安装马表的主件为支架Attach the bracket in the handlebar by means of the screw procided, the enclosed rubber pad can be used if the handle bar shouldn't provide the required thickness, tighten the screw and make sure the bracket is steady. 用螺丝拧支架在车手上,倘若车手管有点细可以用所附的像胶垫塞一下.拧紧螺丝确保支架装牢. Mounting the sensor unit and magnet 安装传感器和磁铁 Attach the magnet to the spoke on the front wheel with the screw. Attach the sensor to the inner side of the front fork, adjust their relative position, ensure that the magnet is directly at the bulge near the top of the sensor and the distance between them is less 5mm. 用螺丝装磁铁在前轮的辐丝上.传感器装到前叉内侧,整调好它们相对应的位置. 确 保磁铁在近于传感器上面及它与传感器的距离少于5MM就可以直接膨胀. Tighten all cable clip and screw to make all parts steady. 系紧线索并且拧紧螺丝,确保所有的零件都固定好 Operation 操作 1.Setting wheel circumference, clock and metric of British unit. 设置轮子周长,时钟,公制或英制.

基于单片机的自行车里程表设计样本

摘要 随着居民生活水平不断提高,自行车不再仅仅是普通运送、代步工具,而是成为人们娱乐、休闲、锻炼首选。自行车里程表可以满足人们最基本需求,让人们能清晰地懂得当前速度、里程等物理量。重要阐述一种基于霍尔元件自行车里程表设计。以AT89C52 单片机为核心,A44E 霍尔传感器测转数,实现对自行车里程/速度测量记录,采用24C02 实当前系统掉电时候保存里程信息,并能将自行车里程数及速度用LED实时显示。文章详细简介了自行车里程表硬件电路和软件设计。硬件某些运用霍尔元件将自行车每转一圈脉冲数传入单片机系统,然后单片机系统将信号通过解决送显示。软件某些用汇编语言进行编程,采用模块化设计思想。该系统硬件电路简朴,子程序具备通用性,完全符合设计规定。 核心词:里程/速度;霍尔元件;单片机;LED显示

Abstract With the developing of people’s life,the bicycle is not only the universal tool of transportation and substitute for walking,but becomes the first choice of entertainmenting and exercising. The bicycle mileage/speed can fulfill the basic need of people’s life,so that they can learn the speed and the mileage of the bicycle. In these paper,the bicycle mileage/speed design based on the Hall element is elaborated. By AT89C52 as kernel,using A44E Hall element to measure revolution,the measure and statistic are achieved. The range informations are saved by 24C02 when the power is off,the bicycle speed can be displayed on LED. In this article,the hardware circuit and software design of bicycle mileage/speed instrument are introduced in detail. About the hardware,the pulse number is transmitted of one cycle of the bicycle into Single Chip Microcomputer system. Then the signal processed by Single Chip Microcomputer system is sent to display scream. About the software,in assemble language,the program is designed in the mode of modules. The system has simple hardware,common sub-program,and meet the demand of design. Key words:Mileage / speed;Hall element;Single Chip Microcomputer;LED

数字式里程表电路的设计

课程设计成果说明书 题目:数字式里程表电路设计学生姓名: 学号: 学院:班级: 指导教师: 浙江海洋学院教务处 年月日 I

浙江海洋学院课程设计成绩评定表2013—2014学年第 2 学期

数字式里程表电路设计 (东海科学技术学院机电系浙江舟山316000) 摘要 传统的车速表是机械式的,典型的机械式里程表连接一根软轴,软轴内有一根钢丝缆,软轴另一端连接到变速器某一个齿轮上,齿轮旋转带动钢丝缆旋转,钢丝缆带动里程表罩圈内一块磁铁旋转,罩圈与指针联接并通过游丝将指针置于零位,磁铁旋转速度的快慢引起磁力线大小的变化,平衡被打破指针因此被带动。这种车速里程表简单实用,被广泛用于大小型汽车上。 绝大数多轿车使用没有软轴的电子传感器的车速表,常见的一种是从变速器上的速度传感器获取信号,通过脉冲频率的变化使指针偏转或者显示数字表示汽车的时速。汽车里程表还包括由连接同一信号源的两个液晶数字显示窗,分别累计本次里程和总里程。 本次里程通常有四位数,供短期计数,这是可以清零的;总里程则有六位数,不能清零。电子式里程表累积的里程数字存储在非易失性存储器内,在无电状下态数据也能保存。我们现在做的是数字式里程表,随着数字技术的不断发展,数字集成电路在各个领域运用也越来越广泛。本文介绍用数字电路设计的里程表。 关键字:蜂鸣器;施密特触发器;计数器;其他电路;

目录 前言 (2) 1.工作原理................................................................................. 错误!未定义书签。2.主要单元电路设计 (2) 2.1施密特触发器 (2) 2.2 计数器 (2) 2.3方波信号 (3) 2.4超速报警 (4) 2.5里程和圈数 (4) [参考文献] (6)

自行车里程表_数电实验

数字类:自行车里程表 一、课程设计要求 (一)设计任务 设计、制作一个根据车轮周长、辐条数等参数来记录行驶里程的简易里程表。 要求具有可调整的手段,以适应不同车型。 (二)参考设计方案 1、首先使用红外光电传感器对转动的车轮辐条进行测量,产生基本技术脉冲。若以0.1公里作为里程表的计数单位,则需测量出车轮的周长、一周有多少根辐条、没走0.1 公里要有多少根辐条通过传感器。若将此计数值转化为里程表的一个计数脉冲,提供给一个多位十进制里程计数器,则记录分辨率就为0.1公里,最后由多位数码管显示出来。 2、框图:

(三)设计要求 1、显示数字为3位,精度为0.1公里,即(00.0——99.9公里)。 2、数码管要有小数点,即个位与十位间的小数点要亮起来。 3、要标明你所设计的条件(轮周长、辐条数等),给出根据条件不同进行调 整的方法。 4、结构简单、所用芯片尽量少、成本低、易于制作。 5、所用芯片与元件尽量在参考元器件围选择(实验室没有的需自行解决) 6、要制作一个模拟的(或真实的)测试模型,以便进行实际的测试。尽量 做到结构合理、可靠,结构设计要作为考核的重要部分。 (四)发挥部分 从使用角度考虑,尝试加上你认为可以完善、改进的功能(如节电功能、显示清零等)。 (五)参考元件 CD40106;CD4518(或CD4017,74LS161等);74LS21,74LS08,CD4011(或74LS00);CD4553,CD4543;共阴(共阳)数码管;NPN(PNP)开关管;红外光电传感器等;电阻,电容若干

二、设计方案及仿真 (一)实验初步设计 由题可知,该实验主要分为4个部分:红外传感器及脉冲整形电路、轮辐计数电路、0.1公里计数电路、数码管显示电路(包括译码驱动)。 首先要将红外传感器接收到的轮辐脉冲整形成为规则的方波,整形可以用施密特触发器,当车的轮辐扫过红外传感器后,红外传感器将感应得到的脉冲送到施密特触发器进行整形,然后接入设计的轮辐计数器中,后经过轮辐计数器与0.1公里计数器完成计数,再由数码显示管显示里程。 根据提供的参考元件,初步确定了以下方案: 以CD40106为脉冲整形,若干CD4518作为轮辐计数器,CD4553为三位十进制计数器作为0.1公里计数电路,即从00.0计到99.9,CD4543作为7段共阴数码管驱动芯片,LG5631AH作为共阴数码显示管显示里程。 根据车轮半径以及车轮转动一周红外传感器感应到的辐条数,可以计算出每走0.1公里要有多少根辐条通过传感器,从而确定进制及所需CD4518数量。 在我们的实验中按照车轮的辐条数n=28,半径D=49cm计算。 车轮周长C=πD=3.1415926×49cm=1.539m 设轮辐计数器为N进制,有C/n×N=100m 解得: N=910 可得脉冲计数器为910进制,即每当传感器感应到910根辐条时系统应记0.1公里,计数器自动清零,周而复始从而达到计数的目的,CD4518一片里面有两个计数电路,共需三个计数电路即两片CD4518。 (二)红外光电传感器及脉冲整形电路 1.设计要求:当轮辐扫过红外传感器后,接收到的脉冲信号通过施密特触发器进行整形,得到标准的方波信号,再输入到轮辐计数器中。 2. 实现:输入脉冲由红外传感器提供,通过光偶的传递将信号输入到 CD40106中进行整形得到规则的方波信号。 上图为红外光电传感器的输出脉冲 下图为经过施密特触发器整形过后的规则方波信号 3.芯片资料及部分电路 1)红外光电传感器由光耦合器发光二极管和光敏晶体管组成,其输出特 性与晶体管相似,但其电流传输比I C /I D 比晶体管的电流放大倍数β小得 多,一般只有0.1~0.3,响应时间一般约为10μs。 2)CD40106芯片资料 CD40106引脚图

自行车里程显示的设计报告

课题名称:电子设计制作与工艺实习 学生姓名:刘凯 学号:201016010104 专业班级:10级自动化一班 指导教师:梅彬运 完成时间: 2012年06月27日 报告成绩: 评阅意见: 评阅教师日期

和 收 音 机 的 组 装 调 试 自 行 车 里 程 显 示 电 路 设 计

目录 摘要............................................................. I I Abstract........................................................... I I 第1章自动车里程显示电路的设计方案.. (1) 1.1 基于单片机的自行车里程显示 (1) 1.2 基于数字逻辑电路的自行车里程显示 (2) 1.3 方案比较 (2) 第2章自行车里程显示电路的设计 (3) 2.1 距离检测电路 (3) 2.2 脉冲计数电路 (5) 2.3 数字显示电路 (5) 第3章自行车里程显示电路的仿真与分析 (8) 3.1 分频电路的仿真分析 (8) 3.2 脉冲计数电路仿真分析 (9) 3.3 显示电路仿真分析 (9) 3.4 自行车里程显示电路整体仿真分析 (10) 总结 (12) 第4章收音机的组装与调试 (12) 4.1 设计目的 (14) 4.2 设计要求 (14) 4.3 主要器材 (14) 4.4 元件识别 (17) 4.5 安装前的工作准备 (18) 4.6 收音机的基本工作原理 (18) 4.7 设计过程 (19) 参考文献 (21) 致谢 (22) 附录1 自行车里程显示电路的电路图 (23)

基于单片机的汽车数字里程表系统设计说明

计算机控制技术 课程设计 成绩评定表 设计课题:基于单片机的汽车数字里程表系统设计 学院名称:电气工程学院 专业班级: 学生: 学号: 指导教师:王黎 设计地点:中原路校区2号楼421 设计时间: 2010.6.27—2010.7.3

计算机控制技术课程设计 课题设计名称:基于单片机的汽车数字里程表系统设计 专业班级: 学生姓名: 学号: 指导教师:王黎 课程设计地点:中原路校区2号楼421 课程设计时间: 2010.6.27—2010.7.3

计算机控制技术课程设计任务书

摘要 随着电子技术的迅猛发展,电子式里程表得以广泛应用,现在很多轿车仪表已经使用电子车速里程表,本设计介绍一种基于单片机的智能电子里程表。该电子式里程表是一种数字式仪表,主要由车速表和里程表两部分组成,其传感器采用无接触测量的光电传感器。它不仅可显示车辆行驶的总里程,也可显示一段时间的阶段里程,还可显示车速,以及实现超速报警等功能。它的实现方式是,通过安装在汽车转轴上的测量盘,用光电式转速传感器检测转速的脉冲信息,在脉冲状态下,将转速的变化转换成光通量的变化,再通过光电转换元件将光通量的变化转换成电量的变化,接着通过频率测量电路将脉冲信号输入到单片机中,然后依据电量与转速的函数关系实现转速测量,再通过计算,从而得出里程、车速的信息,并由LED显示器显示出来。并且该电子式里程表累积的里程数字存储在非易失性的EEPROM存储器,在无电状态下数据也能保存。 关键词:AT89S51单片机;里程表;光电传感器;LED显示器;存储器 目录

1引言 (1) 2 总体方案设计 (3) 2.1控制器的选择 (3) 2.2传感器的选择 (3) 2.3键盘模块的选择 (5) 2.4显示模块的选择 (5) 2.5存储模块的选择 (6) 3 硬件各单元电路设计 (7) 3.1 传感器的设计 (7) 3.2 单片机与光电传感器的接口设计 (8) 3.3 单片机与外部存储器的接口设计 (9) 3.4 单片机与超速报警电路的接口设计 (10) 3.5 单片机与键盘和7段显示器的接口设计 (10) 4 系统软件设计 (11) 4.1 脉冲测量部分 (13) 4.2 键盘输入部分 (13) 4.3 数据处理部分 (14) 4.4 存储器部分 (14) 4.5 超速报警部分 (15) 4. 6 显示部分 (16) 总结 (18) 参考文献 (19) 附录 (20)

基于单片机自行车的里程测速仪

《基于单片机的 自行车里程表、测速仪》单片机大作业 09电子2班 薛强 学号:423

目录摘要 第一章系统设计 1.1 设计任务和要求 1.1.1设计任务 1.1.2 基本要求 1.2 总体设计方案 1.2.1系统总体设计思路 1.2.2方案设计与讨论 1.3功能描述 1.4操作说明 1.5结构框图 1.6原理说明 第二章硬件设计 2.1 硬件电路 2.2 主要元件介绍 第三章软件设计 3.1 系统主程序流程图 3.2 仿真截图 3.3 源程序代码

基于80C51单片机的 自行车里程表、测速仪 摘要:本文介绍了一种基于单片机控制的简易自动自行车速度以及里程计算系统,包括自行车里程表的硬件构成,软件逻辑以及程序代码。该里程测速系统以AT89C51作为系统控制核心,采用光电传感器来检测信号,通过一定时间间隔内对信号的采集,结合自行车本身车轮参数,经过单片机对采集信号进行分析计算,最终在LCD以及LED上显示车辆行驶里程、平均速度和瞬时速度,并且具有超速报警功能。 关键词:自行车测速;单片机;光电传感器,LCD/LED显示 一、系统设计 1.1 设计任务和要求 1.1.1设计任务 设计一个自行车里程表、测速仪,可以将自行车一段时间内的行驶里程,瞬时速度,平均速度在LCD上显示出来,有一个能用LCD显示的腕式自行车里程显示器,传感器采用霍尔元器件,安装在自行车的车轮上; 1.1.2 基本要求 能实时显示当前的车速和行驶里程; 能去除或保留原先的里程数; 电池供电。 1.2 总体设计方案 1.2.1系统总体设计思路 本系统实现自行车运行过程中对行驶里程、当前瞬时速度、平均速度进行测量和显示。总体设计思路如图1所示。系统包括控制器模块、信号检测采集模块、显示模块、电源模块四部分。

简易自行车数字里程表设计

本科毕业论文 题目:简易自行车数字里程表设计

摘要 本文对自行车里程表的结构、设计原理进行了介绍,并应用芯片LM339和AT89S51设计、制作了自行车里程表。文章介绍了所用芯片的存储结构、各管脚的功能,对各个模块的工作原理进行了分析。并对自行车里程表进行了展望。 本文先对里程表设计当中所需设备作了详细介绍,对设计中存在的问题进行了说明;而后对硬件和软件部分的设计和实现作了认真的分析;然后给出了系统的建模过程及相应的系统模型,在此基础上进行了控制仿真,并对仿真效果进行了比较。 本里程表的设计具有结构简单,成本低廉,显示清晰,稳定可靠等优点。并且可进行扩充,加入时速表的功能,更加方便的了解你现在所处的情况。 【关键词】光电对管;单片机A T89S51 ;LM339;键盘;

Abstract In this paper, the structure and principle of traditional bicycle odometer are introduced, and applying LM339 and ATS89S51 has designed and made a bicycle odometer .The article has introduced what be memory structure of used chip , every function of pin ,and has carried out analysis on operating principle of each modules, and has been in progress to design of bicycle odometer to look into the distance. This article first right Odometer designs required equipment, details of the design issues of; Later on hardware and software design and implementation carefully analyzed; Then the system modeling process and the corresponding model, based on the control simulation, Simulation results also were compared. Odometer the design of the structure is simple, low cost, showing clear, stable and reliable results. And can be expanded to speed the function table and more convenient understand you are now stand. Keywords: photoelectric cell; AT89S51;LM339; keys;

基于单片机的汽车里程表设计

电动自行车里程表的软件设计 序言 本文介绍里程表设计以单片机和霍尔传感器为核心。霍尔传感器将到来的低电平脉冲信号输入到单片机进行控制与计算,再采用LED模块进行显示,使得电动自行车的里程数据能直观的显示给使用者。 自行车里程表是用于远距离连续测量自行车行驶距离的仪表。它分为电源、霍尔传感器和显示器3部分。目前,里程表普遍使用在汽车和摩扦车上,是一种机械测量装置,测试精度相对低,自行车上使用里程表的还很少见。针对这种情况,研制新型的数字化里程表用于自行车上是非常必要的。本文介绍的自行车里程表是由电源稳压系统供电,AT89C52单片机为中央处理器,结合高精度的控制电路,方便地实现了智能化、高精度、高可靠性、高效率的自行车里程表的设计,并且使用方便。 里程表广泛应用于各类机车,包括厂矿企业所使用的电机车和汽车、摩托车等。传统的机械式里程表虽然稳定可靠,但功能单一,随着电子技术的迅猛发展,电子式里程表得以广泛应用。一种以单片机为核心的里程表,它不仅可以显示车辆行驶的总里程,也可显示一段时间的阶段里程,并且具有较强的再开发能力。这一切都是因为利用了单片机系统强大的数据存储和处理控制功能。里程表以单片机AT89C52为核心,由系统输入、单片机部分和系统输出组成。

第 1 章绪论 单片机自从推出以来,以其超小型化、结构紧凑、可靠性高、成本低等优点被人们广泛接受,从而应用于工业、电讯、数据处理、仪器仪表等多方面。电动自行车里程表是电动自行车的重要配件,在电动自行车仪表中占重要位置,但几十年来其发展变化并不大,现在国外很多车中使用了数字里程表,但在国内还并不多见。 1.1课题背景 里程表的原理很简单,因为汽车车轮的直径已知,车轮的圆周长便是恒定不变的。由此可以计算出每走一里路车轮要转多少圈,这个数也是恒定不变的。因此只要能够自动把车轮的转数积累下来,然后除以每一里路对应的转数就可以得到行驶的里程了。这样简单的原理古人就已经发现,并且开始使用了。“记里鼓车”就是这样的装置,它是利用上述原理,再加上巧妙的机构使得车轮每转一定圈数就自动敲一下鼓,此时只要有专人把它记下了,就可以得到所走里程。此装置十分巧妙无论白天、黑夜均可使用,而且盲人也可使用,体现出了我国古代劳动人民的聪明才智。不过,如果车上没有人默记鼓声数目的话,单靠记里鼓车本身还不能累计一共走了多少里。而且车停下来之后谁也不知道这车曾经走过多少里路,这是美中不足之处。 从保护环境和经济条件许可等因素综合来看,电动自行车目前乃至今后都有着广阔的发展空间。目前市面上电动自行车的速度表和里程表都是机械的,看起来不够直观与方便。如果能用LED直接显示出来里程数或速度值,就可节省用户的时间及精力处理自行车行进过程中的突发事件。 1.2里程表的发展 现在汽车上的里程表可就不一样了,它克服了“记里鼓车”的不足之处,既能告诉你这次走了多少公里,也能记忆自从出厂以来一共走了多少公里,于是,车辆是否需要

电动车里程表课程设计

目录 第一章概述 (2) 第二章硬件设计 (3) 2.1系统组成结构框图 (3) 2.2具体硬件电路及工作原理 (3) 2.3 AT89C2051单片机简介 (4) 2.3.1芯片概述 (4) 2.4其他外围硬件电路 (6) 2.4.1电源电路 (6) 2.4.2霍尔传感器 (6) 2.4.3 4位串行静态显示电路 (7) 第三章软件设计 (8) 3.1主程序设计 (8) 3.2 外中断0和 T1定时溢出中断服务子程序设计 (8) 3.3 速度/里程显示控制子程序设计 (8) 3.4系统完整源程序 (9) 总结 (10) 参考文献 (11) 附录 (12) 附录1 整体电路图 (12) 附录2 源程序 (13)

第一章概述 本设计介绍的速度与里程表设计以单片机和光电传感器为核心。传感器将不同车速转变成的不同频率的脉冲信号输入到单片机进行控制与计算,再采用LED 模块进行显示,使得电动自行车的速度与里程数据能直接的显示给使用者。该设计能实时地将所测的速度与累计里程数显示出来,主要是将传感器输入到单片机的脉冲信号的频率(传感器将不同车速转变成不同频率的脉冲信号)实时地测量出来,考虑到信号的衰减、干扰等影响,在信号送入单片机前应对其进行放大整形,然后通过单片机计算出速度和里程,再将所得的数据存储到串口数据存储器,并由LED显示模块交替显示所测速度与里程。本设计的里程数的算法是一种大概的算法(假设在一定时间内自行车是匀速行进,平均速度与时间的乘积即为里程数)。 本系统由信号预处理电路、单片机AT89C2051、系统化LED显示模块、串口数据存储电路和系统软件组成。其中信号预处理电路包含信号放大、波形变换和波形整形。对待测信号进行放大的目的是降低对待测信号的幅度要求;波形变换和波形整形电路则用来将放大的信号转换成可与单片机相连的TTL信号;通过单片机的设置可使内部定时器T1对脉冲输入引脚T0进行控制,这样能精确地算出加到T0引脚的单位时间内检测到的脉冲数;设计中速度显示采用LED模块,通过速度换算得来的里程数采用I2C总线并通过E2PROM来存储,既节省了所需单片机的口线和外围器件,同时也简化了显示部分的软件编程。 设计时,应综合考虑测速精度和系统反应时间。本设计用测量脉冲频率来计算速度,因而具有较高的测速精度。在计算里程时取了自行车的理想状态。实际中,误差控制在几米之内,相对于整个里程来说不是很大。为了保证系统的实时性,系统的速度转换模块和显示数据转BCD码模块都采用快速算法。另外,还应尽量保证其他子模块在编程时的通用性和高效性。本设计的速度和里程值采用6位显示,并包含两个小数位。

课程设计:自行车里程表

工业学院 本科课程设计(论文) 题目__________________________________ __________________________________ 指导教师__________________________ 辅导教师__________________________ 学生__________________________ 学生学号__________________________ _______________________________ 院(部)____________________________专业 ________________班 自行车里程表 自动化与电子学院电子信息科学与技术081 2011 12 27

______年___月___日 自行车里程表 摘要:本文介绍的速度与里程表设计以单片机最小系统和霍尔传感器为核心。传感器将不同车速转变成的不同频率的脉冲信号输入到单片机进行控制与计算,再采用LED模块进行显示,使得电动自行车的速度与里程数据能直观的显示给使用者。 本系统由霍尔传感器、RC滤波电路、单片机AT89S51、系统化LED显示模块、数据存储电路和键盘控制组成。其中霍尔传感器包含信号放大和波形整形。对待测信号进行放大的目的是降低对待测信号的幅度要求;波形变换和波形整形电路则用来将放大的信号转换成可与单片机相连的TTL信号;通过单片机的设置可使部定时器T1对脉冲输入引脚T0进行控制,这样能精确地算出加到T0引脚的单位时间检测到的脉冲数;设计中速度显示采用LED模块,通过速度换算得来的里程数采用I2C总线并通过E2PROM来存储,既节省了所需单片机的口线和外围器件,同时也简化了显示部分的软件编程 本文先对里程表设计当中所需设备作了详细介绍,对设计中存在的问题进行了说明;而后对硬件和软件部分的设计和实现作了认真的分析;然后给出了系统的建模过程及相应的系统模型,在此基础上进行了控制仿真,并对仿真效果进行了比较。 本里程表的设计具有结构简单,成本低廉,显示清晰,稳定可靠等优点。并且可进行扩充,加入时速表的功能,更加方便的了解你现在所处的情况。 关键词:单片机最小系统,LED数码管,霍尔传感器,RC滤波器,EEPROM存储器

基于单片机的自行车里程表设计论文附程序

自行车里程表 设计论文 【摘要】以AT89S52型单片机为核心,实时测量并显示自行车行驶过程中的各项参数。 【关键词】单片机LCD干簧管累计里程速度 【作品要求】 设计一个可以适用自行车的轻便、省电、全天候野外使用的自行车里程表。(1)基计要求 总里程〈999.99km; 可以轮流显示或选择显示(用十进制数): 里程——当前行驶里程; 速度——当前平均速度km/h; 最大速度——本次行驶中的最大速度; 时间——当前行驶累计时间,时、分、秒; 电源不高于5V,体积小、结构可靠,便于安装及使用。 (2)发挥部分 可以显示最大加速度;用可编程器件实现;用单片机实现 【方案设计与讨论】 1.速度测量原理 测量自行车的速度的原理有两种: 1)测量一定时间间隔t1里自行车车轮转过的圈数qs。假设车轮周长为tc, 则速度V=tc*qs/t1 2)测量自行车车轮转过一圈的时间t2,则速度V=tc/t2 本里程表是根据原理2计算速度的。 2.传感器的选择 1)红外对管。把红外对管分别安装在自行车车轮的两侧,当车轮转动时, 辐条会阻挡红外对管的光路,接收管输出低电平,单片机根据此信号可 计算里程、速度等。红外对管的优点是测量精度高,缺点是安装比较复 杂和容易受外来光线、灰尘等的影响。 2)开关型霍尔传感器。霍尔传感器是利用霍尔效应把磁输入信号转换成电 信号的器件。把开关型霍尔传感器安装在自行车贴近车轮的支架上,磁 钢安装在辐条上,当磁钢靠近霍尔传感器的时候,传感器输出一个无抖

动的低电平,单片机根据此信号可计算里程、速度等。霍尔传感器的优 点是稳定和安装简易,缺点是成本较高。 3)干簧管。干簧管是一种磁敏的有触点无源电子开关元件,应用在里程表 上的原理与开关型霍尔传感器类似,把干簧管安装在自行车贴近车轮的 支架上,磁钢安装在辐条上,当磁钢靠近霍尔传感器的时候,干簧管闭 合,单片机根据此信号可计算里程、速度等。干簧管的优点是成本低廉 和安装简易,缺点是比较脆弱和不够稳定。 本里程表选用干簧管作为传感器。给干簧管套上废弃笔杆,可克服其脆弱的缺点;软件防抖可克服其不够稳定的缺点。 3.显示模块的选择 1)动态扫描LED数码管显示。里程表的显示内容以数字为主,利用LED 数码管可基本满足使用要求,且成本较低。但是用动态扫描的方式驱动 数码管,亮度太低,在阳光下几乎看不见显示内容,失去使用价值。 2)串行静态LED数码管显示。把单片机的串行口设置为方式0(同步移位 寄存器),输出显示信息,可实现LED数码管的静态显示,其亮度令人 满意。但由于要使用74HC164/74LS164串并转换芯片驱动LED数码管,因此会带来体积大、成本高、功耗高等的缺点。 3)LCD液晶显示模块。液晶显示模块具有体积小、功耗低、显示内容丰富 等特点,现在字符型液晶显示模块已经是单片机应用设计中最常用的信 息显示器件了。 本里程表使用1602 LCD作为显示模块。 【功能描述】 以AT89S52型单片机为核心,实时测量并显示自行车行驶过程中的各项参数,包括当前行驶累计时间、当前行驶累计里程(m/km自动调整)、当前速度(km/h)、最大速度(km/h)、平均速度(km/h)、加速度(m/s2)、当前时间等,各参数分屏显示。可更改自行车轮胎直径,适应不同的自行车,通用性好。本里程表具有时钟功能,不安装在自行车上时也可作为时钟使用,实用性高。 【操作说明】 里程表板面如上图所示,包括电源2pin排针、干簧管3pin排针、液晶显示器、液晶背光开关、电源开关、电源LED指示灯、功能按钮SW1-SW5、Reset 按钮。

相关主题