自行车里程表电路设计毕业设计.docx
- 文档编号:25910496
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:39
- 大小:161.65KB
自行车里程表电路设计毕业设计.docx
《自行车里程表电路设计毕业设计.docx》由会员分享,可在线阅读,更多相关《自行车里程表电路设计毕业设计.docx(39页珍藏版)》请在冰豆网上搜索。
自行车里程表电路设计毕业设计
安阳师范学院本科学生毕业设计报告
自行车里程表电路设计
系(院)物理与电气工程学院
专业电气工程及其自动化
诚信承诺书
郑重承诺:
所呈交的论文是作者个人在导师指导下进行的研究工作及取得的研究成果。
除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得安阳师范学院或其他教育机构的学位或证书所使用过的材料。
与作者一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。
作者签名:
日期:
导师签名:
日期:
院长签名:
日期:
论文使用授权说明
本人完全了解安阳师范学院有关保留、使用学位论文的规定,即:
学校有权保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论文。
保密论文在解密后遵守此规定。
作者签名:
导师签名:
日期:
自行车里程表电路设计
陈乐乐
(安阳师范学院物理与电气工程学院河南安阳455000)
摘要:
介绍了自行车里程表研究的意义,提出了自行车里程表的设计方案,详细阐述了采用STC89C52、霍尔传感器、LED数码管等设计制作自行车里程表的过程。
关键词:
里程表;单片机;霍尔传感器;LED数码管
1引言
自行车由于本身低碳环保及方便等优点,成为居民喜爱的交通、健身工具。
在这个背景下,自行车里程表作为自行车的一大辅助工具迅速发展起来。
科学、美观、合理设计自行车里程表有一定的实用价值,它能计算出里程数,使运动者运动适量,达到健康运动与代步的最佳效果。
现在汽车上都装载有里程表,但是由于成本昂贵,不太适合应用在自行车上。
本里程表的设计具有结构简单,成本低廉,显示清晰,稳定可靠等优点,并且可进行扩充。
2设计要求
(1)以单片机为控制核心,采用霍尔传感器检测自行车轮胎的运转情况,通过抗干扰处理和计算后,由数码管显示自行车的里程;
(2)总里程<999.9Km;
(3)可扩展显示自行车速度。
3方案论证
3.1方案1
(1)利用霍尔传感器产生里程数的脉冲信号;
(2)利用单片机自带的计数器T1对霍尔传感器脉冲信号进行计数;
(3)对数据进行处理,用LED显示里程数。
实现:
利用软件编程,对数据进行处理得到需要的数值。
最终实现目标:
自行车里程显示功能。
整个设计过程包括硬件电路的搭建,软件的编程,系统的调试,调试通过后,固化程序,脱离开发系统运行。
3.2方案2
总体思路与方案1一致,依然利用单片机自带的计数器对霍尔传感器产生里程数的脉冲信号进行计数,但是数据显示模块采用LCD显示,更能清晰的显示里程数。
3.3方案比较
本设计采用方案1,数码管低功耗,容易控制,占用CPU资源少,价格比较便宜,比较实用。
4硬件设计
4.1框图
本系统是由数据采集,单片机控制系统,数据存储3部分构成。
其中数据的采集是由霍尔传感器来完成的,它的输出是矩形脉冲,经过RC滤波后就向单片机系统提供转速信号。
其中关键的处理由单片机系统来完成,单片机将对INT0脚的接收的信号进行计数,信号由显示部分送LED进行显示,显示当前的行驶里程情况。
在本次行驶过后数据存入EEPROM中,以便下次行驶时在其基础上继续计数送出显示总共的里程数,到记忆的目的。
以上所述就是整个系统的总体设计思想。
利用霍尔元件对里程进行测量,将霍尔元件安装在车前叉的一侧,在车圈侧面贴一个磁片,当磁片经过霍尔元件时,霍尔元件输出端的电压发生变化产生脉冲,单片机根据脉冲数来计算里程。
该设计能实时地将所测的累计里程数显示出来,信号送入单片机前应对其进行放大整形,然后通过单片机计算出里程,再将所得的数据存储到数据存储器,并由LED显示模块交替显示所测里程。
本设计的里程数的算法是一种大概的算法(假设在一定时间内自行车是匀速行进)。
原理框图如图1所示。
图1原理框图
4.2电路原理图和电路原理
本设计所用的霍尔传感器是一块集成芯片,它结合了采样和放大功能于一体。
首先我们把磁钢放在自行车的转轴上,而霍尔元件就放在与其水平的转轴上,当我们完成安装后,转动自行车的转轴,磁钢也就跟着一起转动,从而使霍尔传感器周围的磁场发生变化,这种变化将会导致霍尔电压变化从而产生一个方波,再通过其内部的整形和放大,产生出一个适合外部电路的脉冲电压。
假定轮圈的周长为L,在轮圈上安装1个磁铁,则测得的里程值最大误差为L。
当轮子每转一圈,通过开关型霍尔元件传感器采集到一个脉冲信号,并从引脚P3.2口中断0端输入,传感器每获取一个脉冲信号即对系统提供一次计数中断,每次中断代表车轮转动一圈,中断数n轮圈的周长L的乘积即为里程值。
电路原理如图2所示。
图2电路原理图
5软件设计
5.1软件编程实现
5.1.1系统软件框图
本系统软件采用模块化设计方法,整个系统由初始化模块、里程计算模块、数据转BCD码模块、里程显示模块、数据存储、读取模块、定时器中断服务模块以及其他功能模块组成,如图3所示。
图3系统软件框图
5.1.2总体程序设计
自行车里程表的软件设计包括上电初始化程序、中断子程序、里程调用子程序、LED显示子程序、延时子程序等部分,下面将分析其主要部分。
在主程序模块中,需要完成对各接口芯片的初始化、自行车里程的初始化、中断向量的设计以及开中断、循环等待等工作。
另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器,并对它们进行初始化。
然后主程序将根据各标志寄存器的内容,分别完成启动、清除、计程等不同的操作。
P1.1口用于显示里程状态,P1.7口用于设置轮圈的大小,低电平有效。
中断0用于对轮子圈数的计数输入,轮子每转一圈,霍尔传感器输出一个低电平脉冲,将根据里程寄存器中的内容计算出行驶里程数。
中断1用于控制定时器T1的启/停,当输入为0时关闭定时器。
此控制信号是将轮子圈数的计数经二分频后形成,其程序流程如图4所示
。
N
Y
图4主程序流程图
5.2中断子程序的设计
定时中断是为满足定时或计数的需要而设置的。
为此在单片机内部有两个定时/计数器,以对其中的计数结构进行计数的方法,来实现定时或计数功能。
当结构发生计数溢出时,即表明计数值已满,这时就以计数溢出信号作为中断请求,去置位一个溢出标志,作为单片机接受中断请求的标志。
这种中断请求是在单片机芯片内部发生的,因此无须在芯片上设置引入端。
定时/计数器控制寄存器TCON是8位寄存器,地址为88H,可以位寻址。
其高4位用于定时/计数器中断控制,低4位借给外部中断,用做中断标志和触发方式选择位。
本设计采用定时中断,对自行车的里程进行计数。
5.3里程计算子程序的设计
外中断0服务程序用于对单片机P3.2口输入的圈脉冲进行计数,为十六进制计数器。
60H为低位,62H为高位。
每次计数一次后,对里程数据进行一次存储操作。
当车轮每转一圈,通过霍尔元件将脉冲数输入单片机内,通过计数器计出脉冲数,再用乘法子程序算出里程数。
5.4显示子程序的设计
本次设计采用动态扫描显示接口电路,动态显示接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共极COM各自独立地受I/O线控制。
CPU向字段输出口送出字型码时,所有显示器接收到相同的字型码,但究竟是哪个显示器亮,则取决于COM端。
我们可以采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。
在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。
本设计P2.0、P2.1、P2.2、P2.3信号一起组成位选通的位选信号,P0.0~P0.7信号一起组成段码选通的段选信号,通过软件编程,先把所要显示的数据放入存储单元,然后把数据送入段选通对应的地址,再选通某一个LED,逐步完成四个LED的显示,显示子程序流程图如图5所示。
图5显示子程序流程图
6主要元器件介绍
6.1霍尔传感器
霍尔传感器是对磁敏感的传感元件,常用于信号采集的有A44E、CS3020、CS3040等,这类传感器是一个3端器件,外形与三极管相似,只要接上电源、地,即可工作,通常是集电极开路(OC门)输出,工作电压范围宽,使用非常方便。
A44E的外形如图6所示。
1-Vcc2-GND3-OUT
图6A44E外形图
使用霍尔传感器获得脉冲信号,其机械结构也可以做得较为简单,只要在转轴的齿轮盘上粘上一粒磁钢,霍尔元件固定在前叉上,当车子转动时霍尔元件靠近磁钢,就有信号输出,转轴旋转时,就会不断地产生脉冲信号输出。
6.2LED数码管
与LCD液晶显示器相比,数码管虽没有液晶显示器那样的显示效果,但是它有其自己的特点,它低功耗,容易控制,占用CPU资源少,从而成为一些显示器的首选。
数码管由7个发光二极管组成,它门可以共阴极,也可以共阳极。
通过解码电路得到的数码接通相应的发光二极而形成相应的字符,可以显示从1到9的数字,这满足设计要求。
由霍尔传感器采集的脉冲数据信号,通过RC滤波后向单片机提供数据脉冲,单片机再对其进行记数。
当达到先前所设计的计数值的时候单片机就申请中断,从而使单片机响应中断程序,既使其输出一个信号代表此时自行车已经行驶了1Km,这时在经过显示单元电路使LED数码管显示1Km。
当第二个信号来的时候,电路实现加一的功能后在送LED显示,这样就实现了显示里程的目的。
6.3STC89C52单片机
6.3.1单片机原理简介
单片微型计算机是指集成在一个芯片上的微型计算机,也就是把组成微型计算机的各种功能部件,包括CPU(CentralProcessingUnit)、随机存储器RAM(RandomAccessMemory)、只读存储器ROM(Read-onlyMemory)、基本输入/输出(input/output)接口电路,定时器/计数器等部件都制作在一块集成芯片上,构成一个完整的微型计算机从而实现微型计算机的基本功能。
单片机实质上是一个芯片,在实际应用中,通常很少将单片机直接和被控对象进行电气连接,必须外加各种扩展接口电路、外部设备、被控对象等硬件和软件,才能构成一个单片机应用系统。
6.3.2单片机的引脚功能
STC89C52是一种低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的只读程序存储器(EPROM)和256字节的随机存取数据存储器(RAM),片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大,STC89C52单片机适合于许多较为复杂控制场合应用,其引脚图如图7所示。
图789C52引脚图
STC89C52提供以下标准功能:
8k字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个全双工串行通信口,片内具有振荡器及时钟电路。
同时,STC89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
89C52的主要管脚功能如下:
P0.0~P0.7:
P0口是一组8位漏极开路型双向I/O口,也是地址/数据总线复用口。
作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
P1.0~P1.7:
P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲极可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
ALE:
地址锁存控制信号。
在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。
此外,由于ALE是以晶振1/6的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。
RST:
复位信号。
当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作。
XTALl和XTAL2:
外接晶体引线端。
当使用芯片内部时钟时,此二引线端用于外接石英晶体和电容;当使用外部时钟时,用于接外部时钟脉冲信号。
VSS:
地线。
VCC:
+5V电源。
6.474LS244
本次设计中的采用驱动数码管的芯片为74LS244,74LS244为三态输出的八位缓冲器和线驱动器,若单片机输出口直接接显示部分电路,则电流太小,会导致显示部分不能正常工作,所以在单片机输出口先接入驱动芯片74LS244,增大电流,使LED能够正常工作。
其逻辑图如图8所示。
图874LS244逻辑图
6.574LS74
74LS74是D触发器的一种,它是一个具有记忆功能的二进制信息存储器件,是构成多种时序电路的最基本逻辑单元。
触发器具有两个稳定状态,即"0"和"1",在一定的外界信号作用下,可以从一个稳定状态翻转到另一个稳定状态,由于其状态的更新发生在CP脉冲的边沿故又称之为上升沿触发的边沿触发器,D触发器的状态只取决于时针到来前D端的状态。
D触发器应用很广,可用做数字信号的寄存、移位寄存、分频和波形发生器等。
7制作、安装和调试
7.1制作
7.1.1系统仿真
本次设计采用的仿真软件是Proteus,Proteus仿真软件可以实现数字电路、模拟电路及微控制系统与外设的混合电路系统的电路仿真、系统协同仿真和PCB设计等全部功能。
电路仿真原理图如9所示。
图9电路仿真原理图
当完成原理图布线后,利用ProteusISIS编辑环境所提供的电器规则检查命令对设计进行检查,并根据系统提供的错误检查报告修改原理图,直到通过电器规则检查为止。
单片机系统的仿真是Proteus的一大特色,将原理图连接完成之后,利用Keil软件可将程序烧入单片机里面,这样可以在设计中直接编辑代码,源代码通过编译无误后,就可以进行仿真,并查看仿真的结果。
7.1.2制作PCB板
(1)用Protel提供的各种功能及命令编辑原理图文件。
(2)启动Protel时参数设计,进入PCB编辑环境,指定元件的布置、板层、布线等参数。
(3)装入原理图及元件封装。
该环节是在准备好的电路原理图的基础上进行的。
元件的封装也就是元件的外形,每个元件都对应电路板上的几个焊盘,对于每个装入的元件必须有相应的外形封装,这样才能保证电路板布线的顺利进行。
(4)元件在电路板上的布置。
放置了电路板的物理尺寸,即确定了电路板的板边之后,才可以装入电路原理图。
在装入电路原理图之后,程序自动装入所有元件,元件自动放在电路板边框内,这时根据器件的布局需要把其中零乱的器件布置好。
(5)自动布线和手工调整。
PCB有自动布线的功能,只要把有关参数设置适当,元件位置布置合理,就可以自动布线,自己不满意的地方可以通过手工调整来弥补。
(6)打印PCB电路板。
PCB板图如附录2所示
7.2安装
在完成仿真实验后,开始搭建硬件电路,按照原理图进行连接,焊接PCB板,将源代码烧写到单片机里,完成了本次毕业设计的任务。
7.3调试
将电路板连接上电源后,二极管正常发光,数码管显示四个0,用磁铁经过霍尔传感器,数码管开始计数,达到预期的目的。
8结束语
本次课程设计的主要任务是做一个以单片机为核心的自行车里程表。
设计主要分为硬件部分和软件部分,硬件部分着重考虑硬件电路的可行性及优化,软件部分采用模块化设计思想,增强程序的可读性。
通过仿真验证了系统的可行性,能满足设计要求。
当然,本次设计也有不足之处。
在实际的硬件焊接电路上,Protues软件仿真不能很好的显示实际的现象,必须在实际的电路上调节测试,同时,电路板的焊接也具有很大的挑战性。
本次设计可以扩展,可以扩展为速度里程表,更能清楚了解到自己所处的状况。
经过这段时期系统的设计,我对51单片机有了更深的了解和认识,同时也给了我一个独立思考和解决问题的机会,锻炼了自己。
在里程表的功能模块分析、算法计算、程序编写等各方面的设计中,需要进行细致全面的思考,从中让我学会了软硬结合,理论学习联系实际操作,学会了怎样将书本知识转化到实际应用中去。
参考文献
[1]张毅刚.单片机原理与应用及应用[M].北京:
高等教育出版社,2011
[2]郭天祥.51单片机C语言教程[M].北京:
电子工业出版社,2009
[3]高玉芹.单片机原理与应用及C51编程技术[M].北京:
机械工业出版社,2011
[4]李林功.单片机原理与应用:
基于实例驱动和Proteus仿真[M].北京:
科学出版社,2011
[5]王锁弘.电子车速里程表的单片机实现方案[J].国外电子元器件,2004
BicycleOdometerCircuitDesign
ChenLele
(SchoolofPhysicsandElecticalEngineering,AnyangNormalUniversity,Anyang,Henan455000)
Abstract:
Thesignificanceofbicycleodometerisintroduced,putforwardthedesignofbicycleodometer,detailedelaboratedtheSTC89C52,hallsensors,LEDdigitaltube,etc.Designandproductionprocessofbicycleodometer.
Keywords:
speedometer;singlechipmicrocomputer;;hallsensor;LEDdigitaltube
附录1元器件明细表
序号
名称
型号
数量
1
单片机
STC89C52
1个
2
驱动器
74LS244
1个
3
D触发器
74LS74
1个
4
排阻
1K
1个
5
霍尔元件
A44E
1个
6
发光二极管
LED
1个
7
晶振
12MHz
1个
8
共阴极四位数码管
SMA420564
1个
9
电容
33PF
2个
10
F
1个
10
电阻
10K
1个
100
1个
2K
1个
11
微动开关
1个
12
电路板
1块
13
导线
若干
附录2PCB图
附录3程序
;;;;;;;;;;;
;中断初始化
;;;;;;;;;;;
ORG0000H;程序执行开始地址
LJMPSTART;跳至START
ORG0003H;外中断0中断程序入口
LJMPINTEX0;跳至INTEX0中断服务程序
RETI;中断返回
ORG0013H;外中断1中断入口
LJMPINTEX1;跳至INTEX1中断服务程序
ORG001BH;定时器T1中断程序入口
LJMPINTT1;跳至INTT1中断服务程序
ORG0023H;串口中断入口地址
RETI;中断返回
;;;;;;;;;;;;;;;;;;;;
;上电初始化程序
;;;;;;;;;;;;;;;;;;;;
CLEARMEN:
MOVTMOD,#90H;T1为16位外部控制定时器
SETBPX0;外中断0优先级为1
SETBIT0;外中断0用边沿触发
SETBIT1;外中断1用边沿触发
CLRA;清A
MOV20H,A;清内存中特定单元
MOV6CH,A;
MOV6DH,A;
MOV70H,A;
MOV71H,A;
MOV72H,A;
MOV73H,A;
MOV60H,A;
MOV61H,A;
MOV62H,A;
MOV63H,A;清内存中特定单元
DECA;A为#0FFH
MOV68H,A;内存置数据#0FFH
MOV69H,A;内存置数据#0FFH
MOV6AH,A;内存置数据#0FFH
MOV6BH,A;内存置数据#0FFH
MOVP1,A;P1口置1
CLEAR1:
JBP1.2,KEY1;根据P1.2,P1.3,P1.6,P1.7设置状态,
;在21H地址单元赋自行车周长值
KEY:
MOV21H,#19H;28寸自行车周长值
CLEAR2:
SETBTR1;开定时器T1
SETBEA;开中断允许
SETBEX0;开外中断0
SETBET1;开定时中断T1
SETBP3.1;关报警器
LCALLVIICREAD;将EEPROM中原里程数据调入内存
RET;子程序返回
;;;;;;
;START
;;;;;;
START:
MOVSP,#75H;堆栈在75H开始
LCALLCLEARMEN;上电初始化
START1:
JBP3.0,DISPLAYS;P3.0=1,显示里程
LCALLDISPLAYV;显示速度
START2:
SJMPSTART1;转START1循环
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;里程计数程序,用外中断0实现,计数用60H-62H内存单元。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
INTEX0:
PUSHACC;累加器堆栈保护
PUSHPSW;状态字堆栈保护
INC60H;圈加1
CLRA;清A
CJNEA,60H,INTEX0OUT;计数没溢出转INTEX0OUT
INC61H;溢出进位(61H加1)
CJNEA,61H,INTEX0OUT;计数没溢出转INTEX0OUT
INC62H;溢出进位(62H加1)
INTEX0OUT:
LCALLVIICWRITE;里程数据存入EEPROM
SETBEX1;开外中断1
POPPSW;状态字恢复
POPACC;累加器恢复
RETI;中断返回
;;;;;;;;;;;;;;;;;;;;;;;
;T1计数器中断服务程序
;;;;;;;;;;;;;;;;;;;;;;;
INTT1:
PUSHACC;累加器堆栈保护
PUSHPSW;状态字堆栈保护
INC6CH;6CH计时单元加1
MOVA,6CH;移入A
JNZINTT11;不等于0转INTT11
INC6DH;进位,6DH单元加1
MOVA,6DH;移入A
JNZINTT11;不等于0转INTT11
SETB0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自行车 里程表 电路设计 毕业设计