《自行车里程速度计设计(共72页).doc》由会员分享,可在线阅读,更多相关《自行车里程速度计设计(共72页).doc(72页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上毕业设计(论文)题 目: 自行车里程速度计设计 学 院: 电子信息学院 专业班级: 自动化2011级4班 指导教师: 王敏 职称: 讲师 学生姓名: 杨龙飞 学 号: 专心-专注-专业摘 要随着自行车行业和电子技术的发展,自行车速度里程计技术也在不断进步和提高,不仅可以显示速度里程,还可以显示热量消耗、心跳等参数,在大家注重环境保护和运动健康的今天,速度里程计不仅可以使运动者运动适量,还可以达到健康运动和代步的最佳效果,因此设计了以单片机为基础的自行车速度里程计,让人们能清楚地知道当前的速度、里程等物理量,而且单片机体积小、可靠性高、价格便宜。该设计重点阐述了系统的工
2、作原理、硬件构成、各部分的主要功能以及软件的结构和实现。硬件包括主控模块、数据采集模块、数据处理模块、显示模块等组成,采用STC89C52单片机为主要控制芯片,运用自行车车轮上的传感器进行计数,通过一定时间间隔对信号的采集,结合自行车本身车轮参数,送入单片机并由单片机对采集信号进行分析计算,最终在液晶显示器LCD上显示车辆行驶的里程和速度;软件部分用C语言编程,采用模块化设计思想,并在keil和proteus中进行调试和仿真。自行车里程速度计的设计本着安全、方便、性价比高、人性化的原则进行,可使现代生活显著提高。关键词:单片机,LCD1602,霍尔传感器,里程计ABSTRACT As the
3、bicycle industry and the development of electronic technology, bicycle speed odometer technology is also in constant progress and improve, not only can display speed range, can also display parameters such as heat consumption, heart rate, in everybody pays attention to environmental protection and h
4、ealth/fitness today, speed odometer can not only make people exercise right amount motion, also can to achieve the desired effect of the health sports and walking, thus designed on the basis of the single chip microcomputer bike speed odometer, let people can clearly know the current speed, mileage
5、and other physical quantities, in addition, SCM has small size, high reliability and cheaper price. The design expounds the working principle, hardware composition, main functions of each part and the software structure and implementation. Hardware includes main control module, data acquisition modu
6、le, data processing module, display module and so on, Using the STC89C52 single-chip microcomputer as main control chip, using sensors on bicycle wheels to count, sending the signals collected by a certain time interval and the bike itself parameters to the single chip microcompute. Finally Using si
7、ngle chip microcomputer to collect signal analysis and display.Software part in C language programming Adopting the idea of modular design, and debugging and simulation in the keil and proteus. Bicycle mileage speedometer design in line with safe, convenient and cost-effective, humanized principle,
8、can make modern life improved significantly.KEYWORDS:singlechip, LCD1602, , odometer目 录 诚信声明第1章 绪 论1.1 课题背景我国是自行车大国,经济生活的发展促进了交通工具的发展,从马车到小轿车、火车;从自行车到电动车、摩托车发展迅速,但在资源短缺、大家注重环境保护和运动健康的今天,自行车不再仅仅是普通的运输代步工具,而且成为人们休闲、娱乐、锻炼的首选,越来越多的自行车爱好者出现。在这个大背景下,自行车速度里程计作为自行车一大辅助工具迅速发展起来,科学、美观、合理设计自行车速度里程计有很大的实用价值,它能合
9、理计算速度、里程等物理量,使运动者运动适量,达到健康运动和代步的最佳效果。速度里程计不仅运用在自行车上,在其他方面也有很多应用,如工业测速、电机测速等,甚至在健身房的运动器材上都会用到,比如跑步机,它不仅可以显示速度里程,还可以测量热量、心跳等参数。随着电子技术的发展,自行车里程计技术也在不断进步和提高,国内自行车里程计已经经历了四个阶段的发展,从传统的全部由机械元器件组成的机械式,到半电子式即用电子线路代替部分机械元器件的自行车里程计,再从集成电路式到目前的单片机系统设计的自行车里程计。随着社会的不断发展,单片机应用技术飞速发展,里程计的功能也在不断完善.当单片机出现并应用于里程计后,现代自
10、行车里程计的模型也就基本具备了,它可以完成计程,显示等基本工作,同时还具备了LCD显示、永久时钟、存储等其他一些附加功能。单片机以及外围芯片的不断发展也进一步促进了里程计的发展,而随着单片机技术的不断发展,单片机在自行车里程计行业的应用将会越来越广泛。1.2 系统要求本课题主要任务是设计一个可以实时显示自行车速度、里程的自行车速度里程表。各项要求如下:(1)实时显示速度(2)路程实时记录(3)可设置最高速度(4)超速报警(5)显示时钟实现:利用软件编程,对数据进行处理得到需要的数值。最终实现目标:自行车的速度里程表具有里程、速度测试与显示功能,采用单片机作控制,显示电路可显示里程及速度。1.3
11、 课题实现方法本设计采用单片机实现:用霍尔传感器将所测转速转变为数字脉冲信号,然后再将数字脉冲信号数据传输于核心单片机处理,单片机将根据设计程序计算在一定时间内数字脉冲的频率,再由计数值最终得到里程数并通过终端显示设备显示出来。且附加报警功能,在速度超过某一个固定值后,蜂鸣器响,提示需要减速。常用的测速元件有霍尔传感器、光电传感器和光电编码器1。里程测量传感器的选择也有以下几种方案:使用光敏电阻对里程进行测量、利用编码器对车轮的圈数进行测量、利用霍尔传感器对里程进行测量、利用干簧管型传感器测量里程。第2章 系统框图及方案介绍2.1 总体方案比较方案一:利用大规模数字逻辑器件实现,简单的自行车里
12、程计,其原理是利用计数器来实现对汽车车轮旋转时按在车轮上的传感器产生的计数脉冲进行计数,通过计数值达到33次可以认为近似0.1公里,用数字逻辑器件设计电路,电路的复杂,成本很高,没有实际运用价值。方案二:利用51单片机实现自行车里程计的设计,大部分的功能可以用单片机来实现,这样可以使整个电路比较简单,成本也比较低,而且使用单片机的外围电路比较简单,在时间计数和速度的计算上精度大,扩展功能很方便。方案三:利用CPLD/FPGA来实现电子EDA技术,实现自行车里程计。可行性很高,而且电路简单,可以用软件完全仿真,但设计实现比较困难,对设计者的要求很高。软件要求高。2.2 总体方案选择比较以上三个方
13、案的优缺点,我们决定使用方案二,能够完成所有要求的功能。而且容易实现。2.2.1 系统总体框图基于本设计的基本要求,设计了如图2-1所示的总体框图。2.2.2 系统总体设计系统采用52单片机作为中心处理器,有霍尔传感器模块、按键模块、显示模块、时钟模块,霍尔传感器模块主要用于检测自行车参数并输出脉冲信号个单片机,单片机对信号进行处理计算出自行车的速度里程;因为要对自行车速度里程进行显示,所以采用LCD1602显示模块进行显示,4个独立式按键构成按键模块,对相应参数进行设置;时钟模块主要是产生时间。图2-1 系统设计总框图2.3 各模块设计与选择2.3.1 单片机的选择随着微电子技术和超大规模集
14、成电路技术的发展,单片微型计算机以其体积小、性价比高、功能强、可靠性高等独有的特点,在各个领域(如工业控制、家电产品、汽车电子、智能仪器仪表)得到了广泛的应用。下面就简要介绍具有代表性的几款单片机。(1) 8031单片机是Intel公司生产的MCS-51系列单片机中的一种,除无片内ROM外,其余特性与MCS-51单片机基本一样,内部含有一个8位CPU、128个字节的RAM,21个特殊功能寄存器。而单片机8031要进行存储器的扩展比较麻烦,外围器件多,而且8031的功耗也大2。(2) 单片机8032/8052/8752是增强型产品,而8032、80C32片内是没有ROM的,而89C51内部含有4
15、K字节的FLASH的ROM。52系列的单片机计数器为三个16位计数器,中断源为8个3。(3) 8051是最早最典型的产品,是在8031的基础上片内又集成4KROM,作为程序存储器。8051单片机与80C51单片机从外形看是完全一样的,其指令系统、引脚信号、总线等完全一致(完全兼容),也就是说在8051下开发的软件完全可以在80C51上应用,反过来,在80C51下开发的软件也可以在8051上应用。(4)STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash 存储器。在单片机芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制
16、应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口。另 CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选4。在本次设计中,经过分析与比较,选择了单片机STC89C52,这是因为:单片机STC89C52采用的是CHMOS工艺:高速度、高密度、低功耗。也
17、就是说STC89C52单片机是一种低功耗单片机。可靠性高、便于扩展。控制功能强。 单片机89C51片内存储容量较小,除此之外,单片机STC89C52还具有集成度高、体积小、性价比高、应用广泛、易于产品化等特点5。2.3.2 显示模块的选择串行静态LED数码管显示。把单片机的串行口设置为方式0(同步移位寄存器),输出显示信息,可实现LED数码管的静态显示,其亮度令人满意。但由于要使用74HC164/74LS164串并转换芯片驱动LED数码管,因此会带来体积大、成本高、功耗高等缺点。LCD液晶显示模块。液晶显示模块具有体积小、功耗低、显示内容丰富等特点,现在字符型液晶显示模块已经是单片机应用设计中
18、最常用的信息显示器件了。在本次设计中,LCD能够满足设计要求,实时显示自行车速度和里程,而且使用方便,所以选LCD1602作为显示模块。2.3.3 传感器的选择(1)红外光电传感器把红外对管分别安装在自行车车轮的两侧,当车轮转动时,辐条会阻挡红外对管的光路,接收管输出低电平,单片机根据此信号可计算里程、速度等。红外对管的优点是测量精度高,缺点是安装比较复杂和容易受外来光线、灰尘等的影响6。(2)霍尔传感器霍尔传感器是利用霍尔效应把磁输入信号转换成电信号的器件。把开关型霍尔传感器安装在自行车贴近车轮的支架上,磁钢安装在辐条上,当磁钢靠近霍尔传感器的时候,传感器输出一个无抖动的低电平,单片机根据此
19、信号可计算里程、速度等7。(3)干簧管干簧管是一种磁敏的有触点无源电子开关元件,应用在里程表上的原理与开关型霍尔传感器类似,把干簧管安装在自行车贴近车轮的支架上,磁钢安装在辐条上,当磁钢靠近霍尔传感器的时候,干簧管闭合,单片机根据此信号可计算里程、速度等。干簧管的优点是成本低廉和安装简易,缺点是比较脆弱和不够稳定。因为霍尔传感器可以很好的检测数据,方便与单片机通信,原理简单,操作方便,能够满足设计需求,因此选霍尔传感器8。2.3.4 时钟芯片的选择时钟芯片种类繁多,有内置晶振及充电电池的,也有外置晶振的。DS1302是美国 DALLAS 公司推出的一种高性能、低功耗的实时时钟芯片附加31字节静
20、态 RAM,采用 SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.55.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电 方式,提供了对后背电源进行涓细电流充电的能力。经分析采用DS1302时钟芯片。2.3.5 按键模块的选择本设计共需要4个开关式按键,用来设置极限速度和日期,实现的功能比较简单,独立式按键已经可以很好的满足要求,所以采用独立式按键,若采用矩阵式键盘则会使设计更繁琐。第3章 硬件设计3.1 单片机最小系统3.1.
21、1 最小系统接线图基于本系统的设计要求中需要用到单片机最小系统,查阅相关资料后设计图如图3-1所示。图3-1 STC89C52单片机最小系统如图3-1所示为单片机最小系统,包括时钟电路和复位电路。3.1.2 时钟电路单片机工作时,从取指令到译码再进行微操作,必须在时钟信号控制下才能有序地进行,时钟电路就是为单片机工作提供基本时钟的。单片机的时钟信号通常有两种产生方式:内部时钟方式和外部时钟方式。内部时钟方式则是在单片机XTAL1和XTAL2引脚上跨接上一个晶振和两个稳频电容,可以与单片机片内的电路构成一个稳定的自激振荡器。晶振的取值范围一般为0-24MHz,常用的晶振频率有6MHz、12 MH
22、z、11.0592 MHz、24 MHz等,本设计采用12 MHz,再外接22pF的瓷片电容对振荡器进行频率微调,使振荡信号频率与晶振频率一致,同时起到稳定频率的作用;外部时钟方式则是在单片机XTAL1引脚上外接一个稳定的时钟信号源,它一般适用于多片单片机同时工作的情况,使用同一时钟信号可以保证单片机的工作同步9。3.1.3 复位电路无论是在单片机刚开始接上电源时,还是运行过程中发生故障都需要复位。复位电路用于将单片机内部各电路的状态恢复到一个确定的初始值,并从这个状态开始工作。单片机的复位形式:上电复位、按键复位。上电复位电路中,利用电容充电来实现复位。在电源接通瞬间,RST引脚上的电位是高
23、电平(Vcc),电源接通后对电容进行快速充电,随着充电的进行,RST引脚上的电位也会逐渐下降为低电平。只要保证RST引脚上高电平出现的时间大于两个机器周期,便可以实现正常复位;按键复位电路中,当按键没有按下时,电路同上电复位电路。如在单片机运行过程中,按下RESET键,已经充好电的电容会快速通过200电阻的回路放电,从而使得RST引脚上的电位快速变为高电平,此高电平会维持到按键释放,从而满足单片机复位的条件实现按键复位。本系统的复位电路是采用按键复位的电路,如图3-1所示,若运行过程中需要程序从头执行,只需按下按键即可。按下按键,可直接把+5V加到了RET/VPD端从而复位。复位后,P0到P3
24、并行I/O口全为高电平,其它寄存器全部清零,只有SBUF寄存器状态不确定10。3.2 显示模块本设计中需要对速度、里程进行实时显示,可以选用数码管或LCD液晶显示,因为液晶显示操作方便,满足设计要求,我选用LCD1602进行显示。3.2.1 液晶显示电路如图3-2所示,液晶屏LCD1602的1脚VSS接地;2引脚VDD接电源为单片机供电;3脚VEE为背光调节端,通过改变电位来调节,本系统采用10K的线性电位器,通过调节电位器可以调节液晶屏亮度;4引脚RS为寄存器选择端,接单片机P1.0口,高电平时选择数据寄存器、低电平时选择指令寄存器;5引脚RW为读写信号线,接单片机P1.1口,高电平时进行读
25、操作,低电平时进行写操作;6引脚E为使能端,接单片机P1.2口,当E端由高电平跳变成低电平时,液晶模块执行命令;714脚为8位双向数据线,接单片机P0口;15引脚为背光源正极;16引脚为背光源负极。图3-2 液晶显示电路3.2.2 显示器LCD1602的介绍(1)液晶显示原理液晶显示的原理是利用液晶的物理特性,通过电压对显示区域进行控制,有电就有显示,这样就可以显示出图形。液晶显示器适用于大规模集成电路直接驱动,目前已经被广泛的运用在便携式电脑、数字摄像机、PDA移动通信工具等众多的领域。(2)液晶显示各种图形原理:线段的显示点阵图形式液晶由MN个显示单元组成,假设LCD显示屏有64行,每行有
26、128列,每8列对应1字节的8位,即每行有16字节,共168=128个点组成,屏上6416个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。字符的显示用LCD显示一个字符时比较复杂,因为一个字符由68
27、或88点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。汉字的显示汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码,每个汉字占32B,分左右两半,各占16B,左边为1、3、5右边为2、4、6根据在LCD上开始显示的行列号及每行的列数可找出显示RAM对应的地址,设立光标,
28、送上要显示的汉字的第一字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节,直到32B显示完LCD就可以得到一个完整的汉字。3LCD1602指令集:0x38 设置16*2显示,5*7点阵,8位数据接口0x01 清屏0x0F 开显示,显示光标,光标闪烁0x08 只开显示0x0e 开显示,显示光标,光标不闪烁0x0c 开显示,不显示光标0x06 地址加1,当写入数据的时候光标右移0x02 地址计数器AC=0; 光标归原点,但是DDRAM中断内容不变0x18 光标和显示一起向左移动3.3 传感器模块由于需要检测元件对自行车参数进行检测,然后对所检测的信息进行处理,从而显示,基于此要求本设计选
29、用霍尔传感器A3144,如图3-3所示,霍尔传感器有3个引脚,从左到右分别为电源引脚,地引脚,输出端,本设计中1脚接5V电源为芯片供电;2脚接地;3脚接单片机P3.2口,霍尔传感器检测到信号后经3脚输出脉冲给单片机。图3-3 霍尔传感器 3.3.1 霍尔传感器工作原理霍尔传感器是利用霍尔效应制成的一种磁敏传感器。在置于磁场中的导体或半导体通入电流I,若电流垂直磁场B,则在与磁场和电流都垂直的方向上会出现一个电势差Uh,这种现象称为霍尔效应。利用霍尔效应制成的元件称为霍尔元件。因为它具有结构简单、频率响应宽、灵敏度高、测量线性范围大、抗干扰能力强以及体积小、使用寿命长等一系列特点,因此被广泛应用
30、于测量、自动控制及信息处理等领域。图3-4 霍尔传感器工作原理3.3.2 霍尔传感器的特性(1)线性型霍尔传感器的特性如图3-5所示:图3-5线性霍尔传感器的特性输出电压与外加磁场强度呈线性关系,如图3-5所示,可见,在B1B2的磁感应强度范围内有较好的线性度,磁感应强度超出此范围时则呈现饱和状态。(2)开关型霍尔传感器的特性如图3-6所示,其中BOP为工作点“开”的磁感应强度,BRP为释放点“关”的磁感应强度。图3-6开关型霍尔传感器特性当外加的磁感应强度超过动作点Bop时,传感器输出低电平,当磁感应强度降到动作点Bop以下时,传感器输出电平不变,一直要降到释放点BRP时,传感器才由低电平跃
31、变为高电平。Bop与BRP之间的滞后使开关动作更为可靠。另外还有一种“锁键型”(或称“锁存型”)开关型霍尔传感器,其特性如图3-7所示图3-7 锁键型开关型霍尔传感器3.3.3 测速方法如图3-8所示,在非磁性材料的圆盘边上粘一块磁钢,霍尔传感器放在靠近圆盘边缘处,当圆盘旋转一周时,霍尔传感器就会输出一个脉冲给单片机,传感器每次获取一个脉冲信号即对系统提供一次计数中断。中断数n与轮圈的周长L的乘积即为里程值。计数器T1计算每转一圈所用的时间,就可以计算出自行车的速度。图3-8 模拟测速3.4 时钟模块基于自行车里程计需要显示日期、时间等参数,本设计选用了DS1302时钟芯片,它和单片机工作后可
32、以显示日期、时间,也可以对日期和时间进行设置。3.4.1 时钟电路图3-9 时钟电路时钟芯片电路设计图如图3-9所示,1引脚Vcc2接5V电源为芯片供电;2脚X1和3脚X2接晶振,为了使时钟更加精确,选用32.768KHz的晶振 ;4脚GND接地;5脚RST为复位脚,通过把RST输入驱动置高电平来启动所有的数据传送;6脚为数据输入/输出引脚;7脚SCLK时钟输入端;8脚Vcc1为后备电源管脚。DS1302与STC89C52的连接线有三条线:RST引脚接单片机P1.5口,单片机通过P1.5口把RST输入驱动置高电平来启动所有的数据传送;SCLK串行时钟引脚接单片机P1.3口、I/O串行数据引脚接
33、单片机P1.4口,Vcc2作为备用电源,2、3引脚外接晶振X2。3.4.2 时钟芯片介绍 DS1302是DALLAS公司推出的涓流充电时钟芯片,内含一个实时时钟/日历和31字节静态RAM,可以通过串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、星期、月、年的信息,每个月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM标志位决定采用24或12小时时间格式。DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需三根I/O线:复位(RST)、I/O数据线、串行时钟(SCLK)。时钟/RAM的读/写数据以一字节或多达31字节的字符组方式通信。DS1302工作时功耗很低,
34、保持数据和时钟信息时,功耗小于1mW。3.4.3 DS1302的工作原理DS1302工作时为了对任何数据传送进行初始化,需要将复位脚(RST)置为高电平且将8位地址和命令信息装入移位寄存器。数据在时钟(SCLK)的上升沿串行输入,前8位指定访问地址,命令字装入移位寄存器后,在之后的时钟周期,读操作时输出数据,写操作时输出数据。时钟脉冲的个数在单字节方式下为8+8(8位地址+8位数据),在多字节方式下为8加最多可达248的数据。3.4.4 DS1302的控制字节图3-10 DS1302的控制字节 DS1302 的控制字如图3-10所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能
35、把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。3.4.5 数据输入输出(I/O)在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。3.5 按键模块按键模块主要用于对时钟、速度等参数进行设置,设计电路图如图3-11所示。图3-11按键电路按键模块作为人机接口的一部分,主要采用
36、4个独立式按键,分别接单片机的P3.3、P3.4、P3.5、P3.6口,用来设置时钟和可显示的最高速度,四个按键分别为减键、加键、选择键、设置键,当按键没有按下时为高电平,当按键按下时,为低电平,单片机对此进行相应处理。3.6 系统总设计图系统总体框图如图3-12所示,采用52单片机作为中心处理器,有霍尔传感器模块、按键模块、显示模块、时钟模块,霍尔传感器模块主要用于检测自行车参数并输出脉冲信号个单片机,单片机对信号进行处理计算出自行车的速度里程;因为要对自行车速度里程进行显示,所以采用LCD1602显示模块进行显示,4个独立式按键构成按键模块,对相应参数进行设置;时钟模块主要是产生时间。图3
37、-12系统总设计图第4章 系统软件设计与实现4.1 C语言介绍由于本系统设计需要用到C语言编程,所以简单介绍一下C语言。C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言, 编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛主要有以下特点:(1)简洁紧凑、灵活方便C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。(2)运算符
38、丰富C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。(3)数据结构丰富C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能, 支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。(4)C是结构式语言结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰
39、,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。(5)C语法限制不太严格、程序设计自由度大一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。(6)C语言允许直接访问物理地址,可以直接对硬件进行操作因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。(7)C语言程序生成代码质量高,程序执行效率高 一般只比汇编程序生成的目标代码效率低1020%。(8)C语言适用范
40、围大,可移植性好(9)C语言有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。(10)C语言方便易学,容易上手4.2 软件实现的功能(1)利用霍尔传感器产生里程数脉冲信号(2)利用单片机计数器T0对霍尔传感器脉冲信号进行计数 (3)对数据进行处理,要求用LCD显示里程和速度 (4)自行车超速,系统发出报警信号根据任务要求设计3个模块,分别是程序初始化、显示程序、速度和里程处理程序4.3 主流程图如图4-1所示为主程序流程图。单片机上电之后首先开始初始化液晶模块,开中断和定时器,然后再判断是否有按键按下,如果有按键按下,则进行相应参数的设置,如果没有按键按下,则运行
41、下一步程序,同时单片机一直对P3.2口和定时器进行监测,当自行车每转过一圈,单片机P3.2口就会接受到霍尔传感器输出的一个脉冲信号,单片机对脉冲信号进行处理,结合定时器、计数器计算出速度、里程,然后判断有没有超过设定的最大速度,若没有则用1602进行显示,若超速,则报警。图4-1 主程序流程图4.5 显示子程序设计如图4-2所示是显示流程图,该子程序用LCD动态扫描显示方式。先将单片机的P2.2口连接使能端口E。接着将单片机的P2.0口连接数据/命令选择端RS,P0口连接数据端D0D7,然后将要显示的数字的值发送给P0口。然后调用延时,接着将P2.2口置0,P2.0口置1,写指令,将P2.2口
42、置1,P2.0口置1,写数据,直到要显示的数字全部显示在液晶上。图4-2 显示流程图4.6 速度、里程处理流程设计4.6.1 处理流程图速度、里程处理流程图如图4-3所示:图4-3 处理流程图4.6.2 算法流程设轮圈的周长为L,在轮圈上安装a个永久磁铁,则测得的里程值最大误差为L/a。经综合分析,本设计中取a=1。当轮子每转一圈,单片机通过开关型霍尔元件传感器采集到一个脉冲信号,并从引脚P3.2中断0端输入,传感器每次获取一个脉冲信号便对系统提供一次计数中断。每次中断代表自行车车轮转动一圈,中断数n与轮圈的周长L的乘积即为自行车里程值。定时器T1定时1秒,计数器计这段时间内中断次数即自行车车
43、轮所转圈数,就可以计算自行车速度。若自行车超过限定速度,系统发出报警信号。 (4-1) (4-2) 公式(4-1)中S表示里程,L表示车轮周长,n表示车轮所转圈数;公式(4-2)中V表示速度,L表示车轮周长,t为时间。当霍尔传感器将所测转速转变为数字脉冲信号传输给单片机后,单片机将根据设计程序计算在一定时间内数字脉冲的频率,再由计数值最终得到里程数并通过终端显示设备显示出来。且附加报警功能,在速度超过某一个固定值后,蜂鸣器响提示需要减速。4.7 按键处理流程设计图4-4 按键流程图如图4-4所示为按键流程图,当有按键按下时,单片机要去抖动,确认是否按键真的按下,确认完毕后再判断按键值,进行相应
44、设置操作。第5章 系统调试与仿真5.1 软件调试5.1.1 Keil简介Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。是目前最流行开发51系列单片机的软件。支持C语言和汇编语言。Keil使用步骤为:建立一个新的工程,选择单片机型号;建立程序源代码文件后保存源代码文件,若为C语言程序保存文件的后缀为.c,若为汇编语言保存文件的后缀为.ASM;添加源代码文件到工程中;编辑、编译;保存工程。5.
45、1.2 程序调试本设计在Keil中编写C程序进行调试,通过编译生成hex文件,用proteus进行仿真。Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(Vision)将这些部分组合在一起。本设计中Keil调试界面如图5-1所示:5.1.3调试中的问题 (1)Keil编译不成功。由于程序字符太多,在输入时导致字母写错、未定义变量等错误。根据提示信息进
46、行修改。 (2)Keil编译不成功,由于程序太多,在输入时导致缺少括号,少些分号等错误; (3)Keil调试时,编译错误,检查发现宏定义嵌套混乱; (4)Keil调试时,编译错误,检查发现没有头文件; (5)Keil调试时,无法生成hex文件,检查发现keil没破译,破译之后成功生成hex文件; 图5-1Keil调试界面5.2 硬件仿真5.2.1 Proteus简介Proteus是英国Labcenter公司开发的电路分析与仿真软件。该软件的特点是:集原理图设计、仿真和PCB设计于一体,真正实现从概念到产品的完整电子设计工具;具有模拟电路、数字电路、单片机应用系统、嵌入式系统(不高于ARM7)设计与仿真功能;可以进行全速、单步、设置断点等多种形式的调试功能;包含各种信号源和电路分析所需的虚拟仪表;支持Keil、uVision2、MTLAB第三方的软件编译和调试环境;是目前世界上唯一将软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,拥有Proteus,就相当于拥有了一个电子设计和分析平台。Proteus的工作界面是一种标准的Windows界面,如图5-2所示。图5-2 Proteus工作界面