069
电动车速度里程测试系统软件设计样本
(样本只提供该系统的基本情况介绍,若需要完整的设计和论文,建议您购买本系统,凡是购买本站系统的,本站均根据您的要求,把系统上的开发信息,题目等修改成符合您的要求)
本设计包含内容:源代码+毕业论文
论文大概:
(或毕业设计)
电动车速度里程
测试系统软件设计
电动车速度里程测试系统软件设计
摘 要:经济社会的发展促进了交通工具的发展。从马车到小轿车、火车;从自行车到电动车、摩托车发展迅速。但是在资源紧缺和大家注重环境保护的今天,电动车的发展前景是非常光明的。经过认真的市场需求调查研究,发现电动车速度里程测试系统需求量大,市场广阔。电动车速度里程测试系统可以实时提供速度和里程信息,为用户提供第一手参考资料,为用户下一步的行动提供依据。本文主要介绍该系统的设计原理和设计思路、设计调试过程、遇到重要的问题和解决方案、实现结果等内容。以期能让大家全面认识和了解本系统。
关键字:速度;里程;测试系统;软件设计
Software design for the motor car speed and mileage testing
system
Abstract: The development of the economy and society promotes
pileup develop.From wagon to the car and train, from bicycle to the
motor car and motorcycle,it develop quickly. Today because of lack
resources and everyone pay attention to protect environment, the
development foreground of the motor car is very bright. By the
investigates for market need of motor car speed and mileage testing
system, We discoveried it market amplitude.The motor car speed
mileage testing system can provides the speed and the mileage
informations Solid hour for the customers. their next Actions
can base on it.This text main introduction the principles and
thinking of the system, the process of the design and
debug,important problems we meeted and its solutions, the results
etc. We hope that everyone can understand the system clearly by the
text.
Key word:speed; mileage; software design
目录
摘要
2
Abstract
2
1引言
4
2电动车速度里程测试系统的可行性 4
2.1
技术可行性
4
2.2 经济可行性
4
2.3社会可行性
5
3设计原理
5
3.1uVision2集成开发环境
5
3.2编辑器和调试器
5
3.3C51编译器
6
3.4代码优化
6
3.5测试程序
7
3.6 C51
V7版增强功能介绍
8
4设计和调试过程
8
4.1设计过程
8
4.2调试过程
15
5遇到重要的问题和解决方案
17
5.1数码管显示问题
17
5.2时间中断初值的确定
18
5.3小数部分和小数点的显示
19
6实现结果
20
7结束语
20
参考文献
21
附录:程序
1、引 言
中国是一个自行车王国,自行车非常普及,然而在现代科学技术与社会经济高速发展的今天,传统的自行车已经跟不上现在生活的紧张快捷的步调,虽然它有很多优点,比如说小巧,占地小,清洁等等,但是其有最大的缺陷那就是慢速,费力。因此电动车应运而生,他不但具有自行车的优点,同时还解决了自行车的缺点。是一种理想的交通工具,但是电动车上缺少一些汽车上的一些先进而且常见实用的东西(测试速度和路程的仪表),会给人们带来了不便甚至危险,比如人们不知道自己已经骑了多少路程,剩下还有多少路程,剩下的电源还够不够;又比如说由于速度过快容易发生交通事故,速度太慢就有可能到不了目的地。
为了改变这种状况,我们有必要给电动车设计一个测试速度和路程的系统。如果取得成功,必然能增加其性价比,从而更一步扩大电动车市场,增强电动车在各类交通工具中的竞争力,让电动车产业得到更好的发展和进步。
2、电动车速度里程测试系统的可行性
在IT行业日新月异的今天,要设计一个测试速度和路程系统的条件已经成熟,我们完全有能力借鉴汽车上的测速系统,并在此基础上修改完善把它运用到电动车上。
现在从其技术可行性、经济可行性、社会可行性进行研究:
2.1技术可行性
在硬件方面本系统首先需要一个单片机微处理器,这是系统的核心部件,单片机微处理器经过三个阶段(1976年-1978年,初级单片机微处理器阶段;1978-现在,高性能单片机处理器阶段;1982-现在,8位单片机微处理器改良型及16位单片机微处理器阶段)的发展应用已经非常广泛,例如:智能产品、智能仪表、测控系统、数控型控制机、智能接口等。在这里我们可以选用AT89C51内含有ROM(4KB)、RAM(128
字节)、CPU时序和复位电路(RESET),AT89C51共有4个I/O端口,为P0、P1、P2、P3,4个I/O口都是双向的,且每个口都具有锁存器。每个口有8条线,共计32条I/O线。所有这些我们已经足够保存驱动程序,也能实现复位(把路程数变成0)。要设计此系统的功能(测试速度和路程),我们只需增加一个传感器(3144霍尔传感器)、一个磁钢、一个电源电路、和一个显示器及其他附属小器件。使用3144传感器和磁钢可以实现把轮子的转动圈数转化成脉冲电流。电源电路可以把电动车电瓶的电压转化到+5伏,提供给微处理器AT89C51。还有一个是显示器,用来显示当时的速度和已经行驶的路程。
在软件方面可以采用汇编语言或者C语言,如熟悉这两种语言可以轻松完成软件设计。
在开发方面现有的开发技术水平完全能够胜任开发任务,维护、管理上只要使用者注意清洁,保证磁钢和传感器不被尘土覆盖影响正常工作即可。所以说:在技术上实现这个系统是完全可以的。
2.2经济可行性
该系统虽然复杂,有难度,但是要用到的器件并不是很多,设计开发该系统的投入费用只需几千元,在系统完成并投入大规模生产后就对电动车的价格的影响也不会很大,最多一百多元,并且可以让电动车具有更好的性价比。所以说:在经济上实现这个系统是完全有可能的,同时在大众经济接受能力上都是可以承受的。
2.3社会可行性
大众的需求和政府的支持使本系统的开发迫在眉睫,完全可行和完全必要。
3、设计原理
通过查看书籍和跑电子市场研究器件及功能,最后确定本系统设计的主要思路是这样的:首先由一个传感器3144将自行车转动的信号传给一个AT89C51芯片,该芯片记录该圈数,并计算出当前的速度与里程,并在数码管上显示。(流程图如图1—1所示)
图1-1 电动车速度里程测试系统设计图
在软件方面本系统选择了Keil C51 V7开发工具。C51
V7版本是目前最高效、灵活的8051开发平台。它可以支持所有8051的衍生产品,也可以支持所有兼容的仿真器,同时支持其它第三方开发工具。因此,C51
V7版本无疑是8051开发用户的最佳选择。
Keil
C51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点,支持汇编,C语言以及混合编程,同时具备功能强大的软件仿真和硬件仿真(用mon51协议)。C51编译器的功能不断增强,
使你可以更加贴近CPU本身,及其它的衍生产品。C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uVision2
IDE可为它们提供单一而灵活的开发环境。
TCON =0x13;
//INT0负边沿触发
在51系列单片机检测到中断源发来的中断请求信号后,会使相应的中断标志位置位,然后便在下一个机器周期检测这些中断标志位状态,以决定是否响应该中断。中断标志位一般集中安排在定时寄存器TCON(定时器控制寄存器TCON的各位定义如图4_2所示)和串行口控制寄存器SCON中。
该指令0x表示16进制,13把他转换成二进制就是00010011,第1位IT0=1表示~INT0设定为边引中断触发方式(即由负边引引起中断),其位地址为:88H。第2位IE0=1,表示INT0上有中断,第5位TR0=1表示开启T0计数。
图4_3 TMOD寄存器各BIT 含义
TMOD为定时器方式寄存器。CPU只能通过字节传送指令来设定TMOD中的各个状态,而不能用位寻址指令。它的各个比特的定义如图4_9所示。
TMOD
=0x01;
//定时器方式:01
该指令表示控制器T1采用模式0工作方式,定时器模式,计数器只受TRn(n表示第n个定时/计数器)的控制,否则将使用~INTn作为计数器Tn的辅助控制线,不再用作中断线。控制器T0采用模式1工作方式,定时器模式,计数器只受TRn(n表示第n个定时/计数器)的控制,否则将使用~INTn作为计数器Tn的辅助控制线,不再用作中断线。
TH0
=0x3C;
TL0 =0xB0;
这两条指令是用来设置定时器的值为3CB0,用于定时中断时用。
TR0 =
1;
//开始计时
这条指令用来启动定时器0
图4_4 PCON中各位定义
PCON =0;
PCON是特殊功能寄存器,选口地址为87H,PCON的各个比特的定义如图4_4所示。
这条指令用来设定电源控制器采用正常方式。
4.1.2
中断程序
定时/计数器在任何模式下工作时一般要由CPU给计数器选送计数器初值。这个初值是要送到TH和TL中去的。下面的程序设的初值是0x3CB因为总共是十六位(如图4_5所示)那他总共的微秒数就是2的16次65536微秒,现在设初值为0x3CB那么就可以让它50000万微秒产生让它重先计数,同时让time_count++;当time_count=20时就是一秒钟,让EvTimer
=1,而重先变成0。
void TIMER(void) interrupt
1 //定时中断处理程序
{
TH0 =0x3C;
TL0 =
0xB0;
//0x3CB0 ==65536 – 50000
time_count++;
if(time_count ==
20) //1s
{
EvTimer =1;
time_count =
0;
}
}
图4_5
模式1下TL和TH的分配
上面的中断函数是一号端口的中断它实现的功能是让定时器每一秒钟中断一次,因为在初始程序中TMOD=0x01表示T0计数器采用1模式,本模式下,定时器/计数器按16位自加1计数器工作。在定时/计数器启动工作前,CPU先要为它装入方式控制字以设定其工作方式,然后再为它装入定时/计数器初值,并通过指令启动其工作。16位计数器按加1计数。计满为0时发出溢出中断请求,再次计数时CPU必须在中断服务程序中位其设置初值。
void
Signal_INT(void) interrupt
4 //传感器中断
{
round_count++;
}
上面这个中断函数主要是用来计算电动车轮子转动的圈数,每转一圈就发一个中断,让总圈数加一,非常简单。
1、
2、
3、
4、
5、
6、
7、
8、
9、
10、 开始仿真调试,先按一下ME300B上复位按钮,确认ME300B复位,再点击菜单“DEBUG“下的”START/STOP
DEBUG SESSION“(如图4_9所示)即可开始仿真调试。
图4_9
当连机正确后,在UVISION的OUTPUT WINDOW将显示:CONNECTED TO MONITOR-51
V4.X(注:其中V4.X为仿真监控程序版本号),同时程序将通过串口下载到仿真模板内。此时就可以按单步按钮让程序单步执行,并可查看变量的变化、寄存器的变化。点击RUN按钮,程序就进入全速运行状态,要退出全速运行状态,按一下ME300B上的复位按钮K5即可。
5、遇到重要的问题和解决方案
在设计程序的过程需要考虑的问题很多,也需要非常仔细考虑,其中最重要的问题有:
5.1 数码管显示问题
数码管数字显示主要问题有:开始时并不清楚数码管引脚号对应哪个片选信号或者哪根显示灯?在解决了前面的问题后还有就是各个数字分别要显示哪些显示灯?
关于数码管引脚号对应哪个片选信号或者哪根显示灯问题,尽管查了很多资料问了很多人还是没解决,最后我们只能利用最原始的方法,不惜损失一支数码管,通过外部的一个+5V电源,将电源的正极连接致数码管的一个引脚固定不动。负极在其它引脚上移动。比如正极接的是数码管显示灯a上,则电源负极只有碰到片选信号时数码管上相应得显示灯才会亮,从而可以确定片选引脚以及显示灯a引脚。最后我们确定对应情况如下图5_1与5_2所示,其中p表示片选,a,b,d,e,f,g,dp,分别是显示灯。
图5_1
数码管元件
P1(片选) P2
(片选)
P3(片选)
P4(片选)
图5_2