《基于51单片机的速度检测系统毕业论文.doc》由会员分享,可在线阅读,更多相关《基于51单片机的速度检测系统毕业论文.doc(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 基于51单片机的速度检测系统毕业论文目 录第1章 引言1第2章 系统介绍22.1 系统结构22.2 系统要求3第3章 硬件电路设计43.1 单片机模块43.2 霍尔传感器模块93.3 显示模块103.424C02存储器简介11第4章 软件设计144.1编译语言的选择144.2程序模块144.3集成开发环境Keil介绍17第5章调试225.1系统硬件调试225.2 系统软件调试225.3 系统整体调试23结 论24致 谢24参考文献25附件1原理图26附件2 PCB板27附件3 实物28附件4 程序28第1章 引 言 自行车被发明与使用到现在已有两百多年的历史,在这两百年间人类在不断的尝试与研
2、发过程中,自行车发展的目的也从最早的代步工具转换成休闲娱乐的用途,随着生活水平的提高,人们希望自行车的功能更强大,比如说对行车信息的掌握,而里程计/速度计正满足了这个需求。现在先进的里程/速度计能够显示实时的速度和里程,是人们实时掌握相关信息,更好的安全行车。 我国是自行车大国,据统计,平均每个家庭拥有2.6两自行车,自行车在人们的日常生活中扮演者越来越重要的角色,上班,旅行,等等。很多行为都能看到它的身影。它已成为了我们生活中不可或缺的一员了。 常常听说汽车摩托超速行驶造成交通事故,但很少说自行车超速。其实是我们太小看这一问题了,在网上有一份调查报告说,全国和自行车有关的交通事故,相当大比例
3、是由自行车速度过快引起的,自信车的超速造成交通事故而把其他机动车当成替罪的羔羊,是一件很冤枉的,因此说行车过程中对速度的把握是一件很重要的事情。 智能化转速测量可以对自行车的转速进行测量,车在运行的过程中,适时对转速的测量有效地可以反映车的状况。目前国外测量电机转速的方法很多,按照不同的理论方法,先后产生过模拟测速法(如离心式转速表、用电机转矩或者电机电枢电动势计算所得)、同步测速法(如机械式或闪光式频闪测速仪)以与计数测速法。计数测速法又可分为机械式定时计数法和电子式定时计数法。传统的电机转速检测多采用测速发电机或光电数字脉冲编码器,也有采用电磁式(利用电磁感应原理或可变磁阻的霍尔元件等)、
4、电容式(对高频振荡进行幅值调制或频率调制)等,还有一些特殊的测速器是利用置于旋转体的放射性材料来发生脉冲信号其中应用最广的是光电式,光电式测系统具有低惯性、低噪声、高分辨率和高精度的优点加之激光光源、光栅、光学码盘、CCD 器件、光导纤维等的相继出现和成功应用,使得光电传感器在检测和控制领域得到了广泛的应用本系统主要由传感器,单片机AT89C51构成。可以对大围转速进行测量, 测量的转速精度高。第2章 系统介绍2.1 系统结构 本文首先介绍了此系统的结构要求、技术指标以与主要容等;再论述了总体设计过程,确定了技术指标与器件的选择;接着重描述了系统硬件电路设计、硬件设计框图与所使用的各种芯片功能
5、与特性;接着重点剖析了软件设计的过程,最后通过调试达到目标。 转速测量的方案选择,一般要考虑传感器的结构、安装以与测速围与环境条 件等方面 的适用性;本论文中给出的速度测量方案,经过我查资料、构思和自己的分析,从实现难度、熟悉程度、器件用量等方面综合考虑,总体电路为以下方案。下面就看一下我对设计方案的简要说明。系统主要实现的功能是AT89C51单片机接收霍尔传感器传来的脉冲信号,由于霍尔器件直接输出高低电平信号已完成对速度信号的处理,所以可以直接送到单片机的相关接口,单片机根据外部中断,以与部定时器进行记数计算出自行车速度和里程送到LED显示,该处LED显示管采用4位共阳型,同时数据传给24C
6、02,实现数据掉电后保存。同时在运行过程中交替显示速度与里程信息。达到对行车信息的掌握。系统组成框图如下2-1: 霍尔传感器 LED显示 单 片 机 AT89C51 复位电路 存储 时钟电路图2-1 系统框图2.2 系统要求 将霍尔传感器产生的脉冲信号输出入到单片机的外部中断端口,单片机工作在部定时器工作方式0,对周期信号进行部记数,调用计算公式算出转速,调用显示程序显示在LED上,同时通过串口向存储单元发送转速数据。主要容:(1)单片机部分主要完成自行车速度的测量。(2)LED部分主要是把速度显示出来。(3)24C02实现系统在掉电时的信息保存。根据系统要实现的功能以与要求,要实现单片机的转
7、速测量主要是各个模块的设计,定时器记数功能、以与LED驱动。单片机可通过编程控制外围部件,能实现较高的自动化程度。以它为系统核心的控制模块可实现主从控制,完成预定的任务。 硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的原理框图、电路原理图。89C51单片机通过INT0输入传感器的脉冲信号,P0口P2口接LED动态显示和信息存储。软件需要解决的是定时器0的记数和外部中断0的设定、由于测量的转速围大,所以低速和高速都要考虑在,关键在于一个四字节除三字节程序的实现。显示部分、需要有一个二进制到十进制的转化程序,以与转换成非压缩BCD 的程序后、才
8、能进行调用查表程序送到显示。PC机串口和单片机串行口的工作方式,包括串行口的通讯速率、奇偶校验位、停止位等均由通信部分的软件部分实现。转速部分软件设计思路: AT89C51单片机的P3.2口接收传感器的信号。主要编写一个外部中断服务程序INT_0,读取记数值的三个字节,并再次清0记数初值以便下次的记数和计算。调用两字节二进制-三字节十进制(BCD)转换子程序BCD,再调用十进制转换成非压缩BCD程序CBCD、最后调用查表程序送显示,系统要求单片机晶振12MHZ。软件的具体设计将在后面介绍。第3章 硬件电路设计硬件的功能由总体设计所规定,硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具
9、体确定系统中所要使用的元器件,设计出系统的电路原理图,必要时做一些部件实验,以确定电路图的正确性,以与工艺结构的设计加工、印制板的制作、样机的组装等。设计单片机模块,考虑到单片机本身的外围电路较多,所以在单片机模块方面需要极为小心。在整个电路设计时要考虑电平转换电路.3.1单片机模块根据系统功能要求以与单片机硬件电路设计思路对单片机模块进行设计,要使单片机准确的测量电机转速,并且使测出的数据能显示出来,所以整个单片机部分分为传感器电路、时钟电路、复位电路、执行元件以与显示电路五个部分。单片机我们采用AT89C51,其引脚图如图3-1,相较于INTEL公司的8051它本身带有一定的优点。AT89
10、C51是一种带4K字节闪烁可编程可擦除只读存贮器,高性能CMOS 8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器, AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 图3-1 AT89C51引脚图主要特性:与MCS-51 兼容4K字节可编程闪烁存储器寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位部RAM32可编程I/O线两个16位定时器/计数器5
11、个中断源可编程串行通道低功耗的闲置和掉电模式片振荡器和时钟电路管脚说明:1.VCC:供电电压;2.GND:接地;3.P0口:P0口为一个8位漏极开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。4.P1口:P1口是一个部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于部上
12、拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。5.P2口:P2口为一个部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。6.P3口:P3口管脚是8个带部上拉电阻的双向I/O
13、口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表31所示:7.RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。8.ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储
14、器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。表3-1 P3口引脚引 脚第二功能信 号 名 称P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7RXDTXDINT0INT1T0T1WRRD串行数据接收串行数据发送外部中断0请求外部中断1请求定时器/计数器0计数输入定时器/计数器1计数输入外部RAM写选通外部RAM读选通9./PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。10./EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0
15、000H-FFFFH),不管是否有部程序存储器。注意加密方式1时,/EA将部锁定为RESET;当/EA端保持高电平时,此间部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。11.XTAL1:反向振荡放大器的输入与部时钟工作电路的输入。12.XTAL2:来自反向振荡器的输出。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片振荡器。石英振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。芯片擦除:整个
16、PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。时钟电路是计算机的心脏,如图3-2,它控制着计算机的工作节奏。MCS-51单片机允许的时钟频率是因型号而异的典型值为12MHZ图3-2 时钟电路MCS-51部都有一个反相放大器,XTAL1、XTAL2分别为反相放大器输入和输出端,外接定时反馈元件以后就组成振荡器,产生时钟送至单片机部的各个部件。AT89C51是属于CMOS8位微处理器,它的时钟电路在结构上有别于NMOS型的单片机。单片机部(如AT89C
17、51)有一个可控的负反馈反相放大器,外接晶振(或陶瓷谐振器)和电容组成振荡器,图42为CMOS型单片机时钟电路框图。振荡器工作受/PD端控制,由软件置“1”PD(即特殊功能寄存器PCON.1)使/PD0,振荡器停止工作,整个单片机也就停止工作,以达到节电目的。清“0”PD,使振荡器工作产生时钟,单片机便正常运行。图中SYS为晶振或陶瓷谐振器,振荡器产生的时钟频率主要由SYS参数确定(晶振上标明的频率)。电容C1和C2的作用有两个:其一是使振荡器起振,其二是对振荡器的频率f起微调作用(C1、C2大,f变小),其典型值为30pF。计算机在启动运行时都需要复位,如图3-3,使中央处理器CPU和系统中
18、的其它部件都处于一个确定的初始状态,并从这个状态开始工作。图3-3 复位电路单片机采用的复位方式是自动复位方式。对于MOS(AT89C51)单片机只要接一个电容至VCC即可。在加电瞬间,电容通过电阻充电,就在RST端出现一定时间的高电平,只要高电平时间足够长,就可以使MCS-51有效的复位。RST端在加电时应保持的高电平时间包括VCC的上升时间和振荡器起振的时间,Vss上升时间若为10ms,振荡器起振的时间和频率有关。10MHZ时约为1ms,1MHZ时约为10ms,所以一般为了可靠的复位,RST在上电应保持20ms以上的高电平。RC时间常数越大,上电RST端保持高电平的时间越长。若复位电路失效
19、,加电后CPU从一个随机的状态开始工作,系统就不能正常运转。3.2 霍尔传感器模块 CS3020霍尔开关电路最适于响应变化斜率陡峭的磁场并在磁通密度较弱的场合使用,适用于单极或多对磁环工作,它由反向电压保护器、电压调整器、霍尔电压发生器、信号放大器、史密特触发器和集电极开路的输出级组成。工作温度围为-40 150(存储温度为150),可适用于各种机与机电一体化领域。霍尔传感器是对磁敏感的传感元件,常用于开关信号采集的有CS3020(如图3-4)、CS3040等,这种传感器是一个3端器件,外形与三极管相似,只要接上电源、地,即可工作,输出通常是集电极开路(OC)门输出,工作电压围宽,使用非常方便
20、。将有字面对准自己,三根引脚从左向右分别是Vcc,地,输出。图3-4 CS3020外形图 图3-5 CS3020传感器连接方式使用霍尔传感器获得脉冲信号,只要在转轴的圆周上粘上一粒磁钢,让霍尔开关靠近磁钢,就有信号输出,转轴旋转时,就会不断地产生脉冲信号输出。如果在圆周上粘上多粒磁钢,可以实现旋转一周,获得多个脉冲输出。原理电路如图3-5,在粘磁钢时要注意,霍尔传感器对磁场方向敏感,粘之前可以先手动接近一下传感器,如果没有信号输出,可以换一个方向再试。3.3 显示模块显示电路采用LED数码管动态显示,LED是一种外加电压从而渡过电流并发出可见光的器件。LED是属于电流控制器件,使用时必须加限流
21、电阻。LED有单个LED和八段LED之分,也有共阴和共阳两种。常用的七段显示器的结构如下图。发光二极管的阳极连在一起的称为共阳极显示器,阴极连在一起的称为共阴极显示器。1位显示器由八个发光二极管组成,其中七个发光二极管ag控制七个笔画(段)的亮或暗,另一个控制一个小数点的亮和暗,这种笔画式的七段显示器能显示的字符较少。此外,要画出电路图,首先还要搞清楚他的引脚图的分布,在了解了正确的引脚图后才能进行正确的字型段码编码。才能显示出正确的数字来,如图3-6所示,为七段数码管的管脚图。图3-6七段发光显示器管为了节省I/O口线,我们采用的动态显示方式。所谓动态显示,就一位一位地轮流点亮各位显示器(扫
22、描),对于每一位显示器来说,每隔一段时间点亮一次。显示器的亮度既与导通电流有关,也与点亮时间和。5位共阴极显示器和AT89C51的接口逻辑如下图。AT89C51的P0口作为段数据口,接上拉电阻到显示器的各个段;P2口作为扫描口,连接电路如图3-7。 图3-7 显示管电路在AT89C51RAM存贮器中设置4个显示缓冲器单元30H35H,分别存放4位显示器的显示数据,AT89C51的P2口扫描输出总是只在一位为低电平,即4位显示器中仅有一位公共阴极为低电平,其它位为高电平,AT89C51的P0口相应位(阴极为低)的显示数据的段数据,使该位显示出一个字符,其它们为暗,依次地改变P2口输出为高的位,P
23、0口输出对应的段数据,4位显示器就显示出由缓冲器中显示数据所确定的字符。以上介绍的是一位的显示管,在本次设计中,为方便连线,采用4位共阳极型。3.424C02存储器简介24C02 是一个2K 位串行CMOS E2PROM,部含有256 个8 位字节,CATALYST 公司的先进CMOS 技术实质上减少了器件的功耗。AT24C02 有一个16 字节页写缓冲器。该器件通过IC 总线接口进行操作,有一个专门的写保护功能。管脚封装如图3-8所示。DIP:双列直插式封装,是最简单的一种封装技术。 图3-8 24c02外形24C02 支持IC,总线数据传送协议IC,总线协议规定任何将数据传送到总线的器件作
24、为发送器,任何从总线接收数据的器件为接收器。数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。主器件和从器件都可以作为发送器或接收器,其9个动作控制着读愈写的各项操作,但由主器件控制传送数据(发送或接收)的模式,通过器件地址输入端A0、A1 和A2 可以实现将最多8 个24C02 器件连接到总线上。管脚描述如表 表3-2 24C02管脚功能SCL串行时钟AT24C02 串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,这是一个输入管脚。SDA串行数据/地址AT24C02 双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA 是一个开漏输出管脚,可与其它开漏输出或集电极开路输出
25、进行线或(wire-OR)。A0、A1、A2器件地址输入端这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0。当使用AT24C02 时最大可级联8 个器件。如果只有一个24C02 被总线寻址,这三个地址输入脚(A0、A1、A2 )可悬空或连接到Vss,如果只有一个24C02 被总线寻址这三个地址输入脚(A0、A1、A2 )必须连接到Vss。WP写保护:如果WP 管脚连接到Vcc,所有的容都被写保护只能读。当WP 管脚连接到Vss 或悬空允许器件进行正常的读/写操作。以前通过简单的器件之间替换比较,发现不同牌号的24C02其抗干扰性能是不一样的,于是就认定24C02器件存在质量好
26、坏的问题。后来在一次偶然的机会里,发现有些24C02的WP引脚并不起到保护作用,也就是说将 WP引脚与CPU输出引脚断开并保持高电平的情况下,CPU仍然能够对24C02中的数据进行修改写入!在惊讶之余,笔者收集了许多不同牌号的24C02 进行试验,除了基本的读写功能外,还对地址功能以与WP引脚保护功能进行了全面的检测,发现一种ATMEL(激光印字)以与XICOR牌号的24C02具有全面的符合I2C总线协议的功能,而有些牌号24C02要么没有WP引脚保护功能,要么没有器件地址功能(即2 片24C02不能共用一个I2C总线),有些甚至两种功能均无。所以说一些同样功能型号的电子器件在兼容性上往往会带
27、来意想不到的问题,值得引起注意。 在此数据以十进制BCD码方式存入24C02,这样可以提高有效数据的冗余度,即24C02中其有效数据为0-9,大于9则为无效数据。这样,在数据写入24C02之前就可以插入校验子程序,对预备写入的数据进行检查,若该RAM数据已经受到干扰,其值大多数应落在大于9的围(可能性百分比系数为246/256),故此当数据大于9时就禁止执行写入24C02的子程序,以免错误数据写入24C02,而对正常需要修改的参数无影响。24C02中数据保持冗余度后,还可以对读出数据进行检查,若为大于9的非正常数据,说明24C02中数据已经受到干扰,此干扰值是绝对不能用的.24C02连接方式如
28、图3-9所示。 图3-9 24C02电路第4章 软件设计4.1编译语言的选择对于单片机的开发应用中,逐渐引入了高级语言,C语言就是其中的一种。汇编语言的可控性较高级语言来说更具优越性。程序编写语言比较常见的有C语言、汇编语言。汇编语言的机器代码生成效率高,控制性好,但就是移植性不高。C语言编写的程序比用汇编编写的程序更符合人们的思考习惯。还有很多处理器都支持C编译器,这样意味着处理器也能很快上手。且具有良好的模块化、容易阅读、维护等优点,且编写的模块程序易于移植。基于C语言和汇编语言的优缺点,本系统采用C语言编写方法。软件编写的主体思路是将系统按功能模块化划分,然后根据模块要实现的功能写各个子
29、程序。整个软件程序的编写采用查询式方式编写的。4.2程序模块程序实现的功能:与硬时间调整与显示,数据存储。功能子函数的调用。其中在子程序速度信号处理中,设N是部定时器的计数值,为三字节,分别由TH0,TL0,VTT构成;由于采用12MHz的晶振,所以Tc是1um,带入上面公式,即可得到转速的精确计算公式: N=60*11059200/12N=55296000/N。在主程序模块中,需要完成对各接口芯片的初始化、自行车里程和速度的初始化、中断向量的设计以与开中断、循环等待等工作。另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器、速度寄存器,并对它们进行初始化。然后主程序将根据各标志寄
30、存器的容,分别完成启动、清除、计程和计速等不同的操作。P1.0用于显示里程状态和速度状态。速度,高电平为显示里程。中断0用于对轮子圈数的计数输入,轮子每转一圈,霍尔传感器输出一个低电平脉冲。将根据里程寄存器中的容计算和判断出行驶里程数。中断1用于控制定时器T1的启/停,当输入为0时关闭定时器。此控制信号是将轮子圈数的计数经二分频后形成。这样,每次定时器T1的开启时间刚好为转一圈的时间,根据轮子的周长就可以计算出自行车的速度。其程序流程如图4-1所示。开始初始化P1.2=1?NP1.3=1?P1.6=1?P1.7=1?出错提示将车圈周长调入21H开中断,启动定时器P3.0=1?调用里程处理子程序
31、调用速度处理子程序NNNYYYYNY 4-1主程序流程图 下面我们将介绍除数是如何获得的:单片机的转速测量完成,定时器T0作为部定时器,外部中断来的时候读取TH0,TL0,并同时清零TH0、TL0,使定时器再次循环计部脉冲。此外,对于低速情况下,我们还要设定一个软件计数器VTT,当外部中断还没来而部定时器已经溢出,产生定时器0中断时,增加VTT,作为三字节中的高字节,三字节商为两字节(最高转速36000r/min足够)的程序。当最后一位数据移出时转换完成。当CS从低变为高时,A如想要进行下一次转换,CS必须做一个从高到低的跳变 。开始显示单元首址取显示数据送段码到P0口取段码表首址调用延时送位
32、选到P2口4位显示完毕返回Y修改显示单元地址求下一位位选码 4-2显示流程图具体程序见附件.4.3集成开发环境Keil介绍KEIL uVISION2是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,是众多单片机开发软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑,编译,仿真于一体,同时还支持PLM(产品全生命周期管理)、汇编和C语言的程序设计,它的界面和常用的微软VC+的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。安装好后,让我们一起来建立一个小程序项目吧。即使你手中还没有一块实验板,甚至没有一块单片机,不过没有关系我们可以
33、通过KEIL软件仿真看到程序运行的结果。首先当然是运行KEIL51软件。运行几秒后,出现如图的屏幕。图4-3 启动时点击Project 菜单,选择弹出的下拉式菜单中的New Project,如图5-3-2。接着弹出一个标准Windows 文件对话窗口,如图5-3-3,用法技巧也不是这里要说的,以后的章节中出现类似情况将不再说明。在“文件名”中输入您的第一个C 程序项目名称,这里我们用“test”,这是笔者惯用的名称,大家不必照搬就是了,只要符合Windows 文件规则的文件名都行。“保存”后的文件扩展名为uv2,这是KEIL uVision2 项目文件扩展名,以后我们可以直接点击此文件以打开先
34、前做的项目。图4-4 文件窗口选择所要的单片机,这里我们选择常用的Ateml 公司的AT89C51。此时屏幕如5-3-4所示。AT89C51 有什么功能、特点呢?请看图中右边有简单的介绍,是英文的。图4-5 选取芯片首先我们要在项目中创建新的程序文件或加入已经存在的程序文件。如果您没有现成的程序,那么就要新建一个程序文件。在KEIL中有一些程序的Demo,在这里我们还是以一个C程序为例介绍如何新建一个C程序和如何加到您的第一个项目中吧。点中1的新建文件的快捷按钮,在2中出现一个新的文字编辑窗口,这个操作也可以通过菜单FileNew 或快捷键CTRL+N 来实现。点击图5中的3 保存新建的程序,
35、也可以用菜单FileSave 或快捷键CTRL+S进行保存。因是新文件所以保存时会弹出类似5-3-3的文件操作窗口,我们把第一个程序命名为test1.c,保存在项目所在的目录中,这时您会发现程序单词有了不同的颜色,说明KEIL 的C语法检查生效了。如图5-3-5鼠标在屏幕左边的Source Group1 文件夹图标上右击弹出菜单,在这里可以作在项目中增加减少文件等操作。我们选“ Add File to Group SourceGroup 1”弹出文件窗口,选择刚刚保存的文件,按ADD 按钮,关闭文件窗,程序文件已加到项目中了。这时在Source Group1 文件夹图标左边出现了一个小+号说明
36、,文件组中有了文件,点击它可以展开查看。图4-6 把文件加入到项目文件组中C 程序文件已被我们加到了项目中了,下面就剩下编译运行了。这个项目我们只是用做学习新建程序项目和编译运行仿真的基本方法,所以使用软件默认的编译设置,它不会生成用于芯片烧写的HEX 文件。要生成用于芯片烧写的HEX 文件,应进行如下设置:在Creat HEX File前打选择。图4-7烧写中1、2、3都是编译按钮,不同的是1 是用于编译单个文件。2是编译当前项目,如果先前编译过一次之后文件没有做动编辑改动,这时再点击是不会再次重新编译的。3是重新编译,每点击一次均会再次编译一次,这就是开启关闭调试模式的按钮,它也存在于菜单
37、DebugStartStop Debug Session 进入调试模式,软件窗口样式大致如图5-3-8所示。图中1 为运行,当程序处于停止状态时才有效,2 为停止,程序处于运行状态时才有效。3 是复位,模拟芯片的复位,程序回到最开头处执行。下载到单片机的部运行1)用KEIL (或用TOPICE52)生成的HEX文件步骤: 点击Project 菜单,选择弹出的下拉式菜单中的New Project; 选择所要的单片机,如选择常用的Ateml 公司的AT89C51; 在项目中创建新的程序文件或加入已经存在的程序文件; 如果没有已经存在的程序文件,新建、保存; 编译; 调试 、生成HEX文件。2)下载
38、本实验箱提供ISP方式的下载,将KEIL生成的HEX文件下载到单片机的部flash。连接ISP下载器和单片机的ISP下载口。注意:单片机的P1.5 P1.6 P1.7不能被短接。3)ISP下载方法使用Easy 51Pro.exe软件,运行界面如下图。图4-8软件运行界面4)ISP下载步骤 选择器件 装载HEX文件 擦除器件 写器件5)运行将KEIL生成的HEX文件下载到单片机的部flash后,按REST键和关机后再开机即可运行单片机的部的程序。第5章调 试在前面几章中,我们详细讨论了硬件和软件设计,但是要系统真正的运行起来达到预期的指标和功能,就必须对系统进行调试。系统的调试包括系统的硬件和软
39、件设计。5.1系统硬件调试焊接前应对整个电路板进行检查。首先,用万用表对印制的电路板线路进行检查,该过程是在焊接元器件之前的必要工作,主要是检查印制的电路板线路是否有断路的情况,如果检查没有问题,则可以对元器件进行焊接。焊接前对电阻、电容的量值要进行测量、筛选,选择与电路中参数值一致的元器件,在选择芯片时,要注意芯片与设计要求的型号、规格和安装是否一致。在焊接时,应将印制的电路板认真对照原理图,查看元器件的引脚焊接是否正确。PCB版图见附件2。电路板焊接完成后,需要对每个元器件的引脚逐个进行检查,一方面是检查有没有引脚虚焊或与其他信号线短路,另一方面是对器件引脚功能的再检查,查看设计是否正确。
40、检查电路焊接没有问题后,则可以进行上电测试。上电测试是调试的关键部分,按照系统方案设计的模块化思想,应该分模块测试系统。首先系统上电以后,测试各个电源端口和器件的电源部分是否工作正常,同时应注意系统中有无器件过热情况,如果有的话,可能是相应的器件损坏或电路中有短路,需要认真检查之后再加电。如果没有问题,则可以进行功能的检测。由于系统硬件较复杂,硬件电路装配、焊接完成后,可能不能正常工作。为了方便调试,采用分块调试的方法。在通电前,一定要检查电源电压的幅值和极性,否则很容易造成芯片的损坏。加电后检查各插件上引脚的电位,一般先检查VCC与GND之间电位,若在5V5.5V之间属正常围。5.2 系统软
41、件调试硬件调试完成以后,软件调试就非常重要。系统软件调试时也要分模块来进行调试,这样才能使进程有条不紊的进行下去,而不至于出现混乱。首先,检查LED液晶显示屏。LED显示屏上电后,检查是否可以正常显示,第一行显示英文字符,第二行显示时间,此时,按下按键即可对时间进行调整。其次,调试存储模块。检查存储模块是否能够读写信息,当存入一个数据的时候,读出来,看是否与之前存入的数据一致,而可认为存储模块正常工作。再次,调试单片机与数模转换模块,在LED模块调试成功之后,就可以调试数模转换模块,在模拟的测试一个电压,若能够正常显示记录的数据,则调试成功。最后调试传感模块,根据传感器的要求,输入一个9V高电
42、压和一个5V电压,则传感能经过转换,在显示正常的电压,则调试成功。5.3 系统整体调试本设计通过Keil C51软件对程序进行编译调试。在软件和硬件的分别调试成功后,将程序的烧入单片机中后,进行整块系统的调试,提供5V的电压,使单片机和传感器,和各个元件都能正常工作后,即把传感器转动,察看显示的值与理论相符,调试成功。结 论目前,随着人们的生活节奏的改变,自行车的数量也越来越多,从而引发的交通是事故也急剧增加,其中大部分是由于超速。所以设计具有民用价值的速度检测仪的研制受到了人们的高度重视。设计能够满足生活需要,携带方便的便携式速度检测仪迫在眉睫。针对目前的现状,该系统设计遵守体积小,质量轻,
43、性价比高的原则。软件是用C语言相编写的,具有很好的编写语言的优点,具有很好的可控性、模块化和移植性。编写的思路就是模块化的思想,将系统的各个功能进行划分,然后对各个模块进行设计。本系统的主要模块为传感检测、单片机处理、液晶显示和存储器存储。首先要了解系统所要实现的功能;其次根据功能去选择相应的硬件资源;再次将一个大的系统进行模块化划分,然后逐一去攻破。最后把所有模块进行优化整合,便得到了一个完整的系统。基于这样的思路,我才成功完成了速度检测仪的基本设计。致 谢参考文献1.何立民.单片机应用技术选编.M:航空航天大学,1997,102.有德.单片微机原理、应用与实验J.:复旦大学,1997,83
44、.朝青.单片机外围数字M.:航空航天大学,1998,44.梁廷立 .现代集成电路实用手册M.:科学技术,1999,65.于海生.微型计算机控制技术选编J.:清华大学,1999.36.徐爱钧.智能化测量控制仪表原理M. :航空航天大学,1995.117.周兴华.手把手教你学单片机M.:航空航天大学,1996,78.神龙工作室.Protel 2004 实用培训教程J.:人民邮电,1995,19.扈啸,周旭升编著.单片机数据通信 J.:电子科技大学,2002,910全利、仲伟峰、徐军.单片机原理与应用M.: 清华大学 11何小艇、电子系统设计D. :大学 12Atmels Self-gramming
45、 MictrollersRM. Odd Jostein 200313 Intel. MCS-51 Family ofSingle Chip Users ManualJ.1990 14单片机控制的新型交流电压表系统J.息,2008,(14):103104,209.15 王伟,晓平.高精度数字电压表方案设计J.仪表技术,2007,(4):.16 proble William S M C , Iame B Y T ,Vernon L B. A noise insengitive solution to an ambiguity m in spectral estimation J . IEEE Trans. on AES ,1989 , 25 ( 5) :729-732.附件1原理图附件2 PCB板附件3 实物附件4 程序#include #include #include #include#include #include #include #define uint unsigned int#define uchar unsigned char/sbit LED=P23;/变
限制150内