




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 选题目的和意义自行车被发明及使用到现在已有两百多年的历史,在这两百年间人类在不断的尝试与研发过程中,自行车发展的目的也从最早的代步工具转换成休闲娱乐的用途,随着生活水平的提高,人们希望自行车的功能更强大,而里程计/速度计正满足了这个需求。现在先进的里程/速度计不仅能显示实时的速度和里程,还显示时间,甚至具有测量骑车人的心跳、显示骑车人热量消耗等功能。对于自行车爱好者来说,本设计更是有着很重要的意义,增加了出行的安全性和便捷性,本设计主要针对具有远距离跋涉性质的自行车设计的。中国是一个自行车大国,从前景来说,随着社会的进一步发展,我国的私家车总量越来越大,堵车现象也越来越严重,影响了社会效率,必然还会有大量的人选择骑自行车,因此为自行车提供便捷也将成为一个热门话题和热门课题。本设计采用at89c51单片机作控制,利用霍尔元件等器件设计一个可用led数码管显示当前自行车行驶的距离及速度并具有超速报警功能的自行车里程/速度表,使其作为自行车的一种辅助工具,让自行车的功用更强大,给人们带来更多的方便。2 关于本课题的国内外现状目前国内自行车里程/速度计等设备的发明具有测量骑车人的心跳,显示骑车人热量消耗等功能,让人能清楚的知道当前的速度、时间、里程等数据。如佛山高明华劲电子公司的自行车里程表ms601,能动态显示形式路程、骑车时间、实时速度等,此外山地自行车爱好者为了测算自己的骑行里程,他们使用了具有类似功能的码表。国外很多大学生喜好山地自行车,为了在山地,丘陵,高原等地形中,更加安全舒适,他们自行研究设计速度里程计,此外还设有显示温度,湿度,心跳,脉搏等,功能齐全,在发达的欧洲国家,比如瑞士,国民对自行车这种环保交通工具比较钟爱,因此科研机构或个人也有很多致力于研究自行车配件的,为了让人们在骑自行车时更加舒适,安全,人性化。3 设计思路 采用at89c51芯片,用霍尔元件将车轮的转速转换成电脉冲,经过处理后送入单片机。里程及速度的测量,是经过at89c51的定时/计数器测出总的脉冲数和每转一圈的时间,再经过单片机的计算得出,计算结果通过led显示器显示出来。传感器是获取自然或生产领域中信息的关键器件,是现代信息系统和各种设备不可缺少的信息采集工具。磁传感器是一种将磁学量信号转变为电信号的器件或装置。随着信息产业、工业自动化、医疗仪器等的飞速发展和计算机应用的普及,需要大量的传感器将被测或被控的非电信号转换成可与计算机兼容的电信号。作为输入信号,这就给磁传感器的快速发展提供了机遇,形成了磁传感器的产业。其中最具代表的磁传感器就是霍尔传感器,在自动检测系统中,利用霍尔传感器测转数是一种最基本的测量工作。本课题的主要功能是测量并通过led数码管进行动态显示当前的速度和里程,并在超速时发出警报。本课题要求达到的各项指标及实现方法如下:1. 利用霍尔传感器产生里程数的脉冲信号。2. 对脉冲信号进行计数。实现:利用单片机自带的计数器t1对霍尔传感器脉冲信号进行计数。3. 对数据进行处理,要求用led显示里程总数和即时速度。实现:利用软件编程,对数据进行处理得到需要的数值。最终实现目标:自行车的速度里程表具有里程、速度测试与显示功能,采用单片机作控制,显示电路可显示里程及速度。总体设计思路:首先进行初始化,选择车轮周长,p3.0是用于里程和速度切换的,低电平为显示速度,高电平为显示里程。根据p3.0的状态来决定显示内容,p3.0=1时,转到计算速度子程序并进行显示;p3.0=0时,转到计算里程子程序并进行显示。p1.0和p1.1口分别用于显示里程状态和速度状态。p1.2、p1.3、p1.6和p1.7口分别用于设置轮圈的大小,低电平有效。中断0用于对轮子圈数的计数输入,轮子每转一圈,霍尔传感器输出一个低电平脉冲。将根据里程寄存器中的内容计算和判断出行驶里程数。中断1用于控制定时器t1的启/停,当输入为0时关闭定时器。此控制信号是将轮子圈数的计数经二分频后形成。这样,每次定时器t1的开启时间刚好为转一圈的时间,根据轮子的周长就可以计算出自行车的速度。外部信号霍尔传感器外部存储器at89c51单片机里程显示速度显示报警部分系统的原理框图4 系统分析单片机是本次设计的核心部件,它是信号从采集到输出的桥梁,而且包括计算、定时、信息处理等功能。当轮子每转一圈,通过开关型霍尔元件传感器采集到一个脉冲信号,并从引脚12即p3.2外部中断0端输入,传感器每获取一个脉冲信号即对系统提供一次计数中断。每次中断代表车轮转动一圈,中断数n轮圈的周长为l的乘积为里程值。计数器t1计算每转一圈所用的时间t,就可以计算出即时速度v。当里程键按下时,里程指示灯亮,led切换显示当前里程,与当速度键按下时,速度指示灯亮,led切换显示当前速度,若自行车超速,系统发出报警信号,指示灯闪烁。里程数据自动记忆,也可用于电动自行车、摩托车、汽车等机动车仪表上。设计包括硬件、软件两部分,硬件电路包括at89c51单片机的外围电路以及led显示电路等,这里对硬件部分只做简单介绍,主要阐述的是软件部分的设计,包括数据初始化程序的设计、主程序的设计、处理子程序的设计、显示子程序的设计;最后针对仿真过程遇到的问题进行了具体说明与分析,对本次设计进行总结。5 硬件分析at89c51芯片简介at89c51是一种带4k字节闪存可编程可擦除的只读存储器即为fperomflash programmable and erasable read only memory的低电压、高性能cmos 8位微处理器,俗称单片机。管脚说明:vcc:供电电压。 gnd:接地。 p0口:p0口为一个8位漏级开路双向i/o口,每脚可吸收8ttl门电流。当p1口的管脚第一次写1时,被定义为高阻输入。p0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在fiash编程时,p0 口作为原码输入口,当fiash进行校验时,p0输出原码,此时p0外部必须被拉高。p1口:p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出4ttl门电流。p1口管脚写入1后,被内部上拉为高,可用作输入,p1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在flash编程和校验时,p1口作为第八位地址接收。 p2口:p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电流,当p2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。 p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。p3口也可作为at89c51的一些特殊功能口,如下表所示: p3.0 rxd(串行输入口) p3.1 txd(串行输出口) p3.2 /int0(外部中断0) p3.3 /int1(外部中断1) p3.4 t0(记时器0外部输入) p3.5 t1(记时器1外部输入) p3.6 /wr(外部数据存储器写选通) p3.7 /rd(外部数据存储器读选通) rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。 ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在flash编程期间,此引脚用于输入编程脉冲。psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/psen有效。但在访问外部数据存储器时,这两次有效的psen信号将不出现。 tc4024芯片简介 at24c01芯片简介6程序设计模块化结构设计即是根据要求和硬件设计的结构,将整个系统的功能分成许多小的功能模块,再根据这些小的功能模块进行程序编写的过程。这样的设计方法,使得系统的整个功能和各部分的功能趋于明朗化。当系统出现问题,就可以根据功能设置找出问题的根源,从而更快地解决问题。所以说,在整个设计过程中,软件设计必须与硬件设计紧密地结合在一起。软件设计包括初始化程序、主程序、行车过程中里程和速度计算子程序、延时子程序、中断服务子程序、显示子程序等。6.1 流程图初始化p3.0=1?计算里程显示里程计算速度显示速度n开始y6.2 源程序代码主要内存单元及用处:50h:eeprom器件寻址字节存放单元51h:eeprom传送字节数存放单元30h:eeprom发送数据缓冲单元40h:eeprom读出数据存放单元0a0h:eeprom寻址字节写入0a1h:eeprom寻址字节读出62h:dptr计数扩展高8位6ch:定时器t1计数扩展高8位6dh:定时器t1计数扩展高816位60h、61h、62h:里程计数单元68h、69h、6ah、6bh:存放自行车每圈时间数70h、71h、72h、73h:显示bcd码数据存放用11h-15h:存放被除数16h19h:存放除数6.2.1初始化程序初始化程序主要完成以下工作:将t1设为外部控制定时器方式;外部中断0及外部中断1设为边沿触发方式;将部分内存单元清0;设置轮子周长;开中断及定时器;将eeprom中的数据调入内存。clearmen:mov tmod,#90h ;t1为16位外部控制定时器 mov sp,#75h ;堆栈从75h开始 setb px0 ;外部中断0优先级为1 setb it0 ;外部中断0用边沿触发 setb it1 ;外部中断1用边沿触发 clr a ;清a mov 20h,a ;清内存中特定单元 mov 6ch,a ;清内存中特定单元 mov 6dh,a ;清内存中特定单元 mov 70h,a ;清内存中特定单元 mov 71h,a ;清内存中特定单元 mov 72h,a ;清内存中特定单元 mov 73h,a ;清内存中特定单元 mov 60h,a ;清内存中特定单元 mov 61h,a ;清内存中特定单元 mov 62h,a ;清内存中特定单元 mov 63h,a ;清内存中特定单元 dec a ;a为0ffh mov 68h,a ;内存置数据0ffh mov 69h,a ;内存置数据0ffh mov 6ah,a ;内存置数据0ffh mov 6bh,a ;内存置数据0ffh mov p1,a ;p1口置1clear1: jb p1.2,key1 ;根据p1.2设置状态 mov 21h,#0fh ljmp clear2 ;转clear2key1: jb p1.3,key2 ;根据p1.3设置状态 mov 21h,#12h ljmp clear2key2: jb p1.6,key3 ;根据p1.6设置状态 mov 21h,#14h ljmp clear2key3: jb p1.7,err ;根据p1.7设置状态 mov 21h,#19hclear2: setb tr1 ;开定时器t1 setb ea ;开中断允许 setb ex0 ;开外中断0 setb et1 ;开定时中断t1 setb p3.1 ;关报警器 lcall viicread ;将eeprom中原里程数据调入内存 reterr: cpl p3.1 ;未设置车轮周长,开始报警 lcall dl5s ;延时5s ljmp clear1 ;重新初始化初始化具体过程:首先对p1.2口的内容进行查询,若p1.2=0,则说明p1.2口接的按钮被按下,即选择第一种车轮周长,同时将周长存入21h单元内;若p1.2=1,则第一个按钮没被按下,再对p1.3口的内容进行查询,内容为0则将其周长值存入21h中,不为0则扫描p1.6,内容为0则将其周长值存入21h中,不为0则扫描p1.7,若p1.7为0则将其周长值存入21h中,不为0则说明没有选择车轮直径,此时开始报警,并调用延时子程序。接着再从p1.2口扫描,如此循环,直到有键按下后停止报警。初始化p1.2=1?np1.3=1?p1.6=1?p1.7=1?出错提示将车圈周长调入21h开中断,启动定时器nnnyyyy开报警器并延时关报警器系统初始化流程图6.2.2 主程序主程序根据p3.0口的开关状态选择里程速度显示。start: lcall clearmen ;上电初始化start1: jb p3.0,displays ;p3.0=1,显示里程 lcall displayv ;p3.0=0,显示速度start2: sjmp start1 ;循环 初始化开始p3.0=1?调用里程处理子程序y调用速度处理子程序n 主程序流程图6.2.3用外部中断0实现的里程计数程序定时中断是为满足定时或计数的需要而设置的。在单片机内部有两个定时/计数器,以对其中的计数结构进行计数的方法,来实现定时或计数功能。当结构发生计数溢出时,即表明定时时间或计数值已满,这时就以计数溢出信号作为中断请求,去置位一个溢出标志,作为单片机接受中断请求的标志。这种中断请求是在单片机芯片内部发生的,因此无须在芯片上设置引入端。定时/计数器控制寄存器tcon是8位寄存器,地址为88h,可以位寻址。其高4位用于定时/计数器中断控制,低4位借给外部中断,用做中断标志和触发方式选择位。本设计采用定时中断,对自行车的里程和速度进行计数。intex0: push acc ;累加器堆栈保护 push psw ;状态字堆栈保护 inc 60h ;圈数加1 clr a ;清a cjne a,60h,intex0out ;计数器没溢出转intex0out inc 61h ;溢出进位(61h加1) cjne a,61h,intex0out ;计数器没溢出转intex0out inc 62h ;溢出进位(62h加1)intex0out:lcall viicwrite ;里程数据存入eeprom setb ex1 ;开外部中断1 pop psw ;状态字恢复 pop acc ;累加器恢复 9 reti ;中断返回;每转一圈时间计数处理程序,每圈时间放在68h6bh单元中intex1: push acc ;累加器堆栈保护 push psw ;状态字堆栈保护 clr ex1 ;关外部中断1 jnb 00h,intex11 ;溢出标志为0转intex11 mov tl1,#0ffh ;溢出时计时单元赋#0ffh(显示速度为零) mov th1,#0ffh mov 6ch,#0ffh mov 6dh,#0ffhintex11: mov 68h,tl1 ;将时间计数值移入暂存单元68h-6bh mov 69h,th1 mov 6ah,6ch mov 6bh,6dh clr a ;清a mov tl1,a ;计数单元置零 mov th1,a mov 6ch,a mov 6dh,a clr 00h ;清溢出标志 pop psw ;状态字堆栈恢复 pop acc ;累加器堆栈恢复 reti ;中断返回;t1计数器中断服务程序。(计数器t1由外部中断1输入控制,当为高电平时计时开始)intt1: push acc ; 累加器堆栈保护 push psw ;状态字堆栈保护 inc 6ch ;6c计时单元加1 mov a,6ch ;6c单元内容移入a jnz intt11 ;不为0,转intt11 inc 6dh ;进位,6dh单元加1 mov a,6dh ;移入a jnz intt11 ;不为0,转intt11 setb 00h ;计时器溢出,置溢出标志位intt11: pop psw ;状态字堆栈恢复 pop acc ;累加器堆栈恢复 reti ;中断返回 关中断开始现场保护开中断中断处理关中断现场恢复开中断中断返回图 3.4 中断流程图6.2.4里程、速度处理程序6.2.4.1里程处理程序外中断0服务程序用于对单片机p3.2口输入的圈脉冲进行计数,为十六进制计数器。60h为低位,62h为高位。每次计数一次后,对里程数据进行一次存储操作。当车轮每转一圈,通过霍尔元件将脉冲数输入单片机内,通过计数器计出脉冲数,再用乘法子程序算出里程数。sss: mov 19h,#64h ;除数最高位赋值 mov 18h,#00h ;除数赋值 mov 17h,#00h ; 除数赋值 mov 16h,#00h ; 除数赋值 mov 11h,#00h ; 被除数赋值 mov 12h,#00h ; 被除数赋值 mov 13h,62h ; 被除数赋值 mov 14h,61h ; 被除数赋值 mov 15h,60h ; 被除数赋值 lcall divst ;调除法程序 11 lcall bcdst ; 跳到二进制转bcd码程序 mov a,25h ;将25h内容移入a anl a,#0fh ; 高四位为0 mov 70h,a ;移入70h mov a,25h ; 将25h内容移入a swap a ;交换高低字节 anl a,#0fh ; 高四位为0 mov 71h,a ; 移入71h mov a,24h ; 将24h内容移入a anl a,#0fh ; 高四位为0 mov 72h,a ; 移入72h mov a,24h ; 将24h内容移入a swap a ; 交换高低字节 anl a,#0fh ; 高四位为0 mov 73h,a ; 移入73h ret点亮里程指示灯开始将车圈数转换成里程显示里程值返回里程处理程序流程图6.2.4.2速度处理程序外中断1服务程序用于处理轮子转动一圈后的计时数据。当标志位(00h)为1时,计数溢出,放入最大时间值(为#0ffh);当标志位为0时,将计数单元(tl1、th1、6ch、6dh)的值放入68h6bh单元。定时器计出每转一圈所用的时间,用自行车车轮的周长除以时间就得出自行车的速度。vvv: mov 18h,68h ;除数赋值 mov 17h,69h ;除数赋值mov 16h,6ah ;除数赋值 12mov 11h,#00h ;被除数赋值mov 12h,#00h ;被除数赋值mov 13h,#36h ;被除数赋值mov 14h,#0eeh ;被除数赋值mov 15h,#80h ;被除数赋值lcall divst ;调除法程序mov 14h,#00h ;舍去一位lcall bcdst ;跳到二进制转bcd码程序mov a,25h ;以下将速度值放入显示单元anl a,#0fh ;高四位为0mov 70h,a ;放入70h内mov a,25h ;再取数swap a ;高低字节交换anl a,#0fh ;高四位为0mov 71h,a ;放入71h内mov 72h,#00h ;72h为0mov 73h,#00h ;73h为0ret ;子程序返回开始开速度指示灯计算速度报警显示速度ny返回p3.0=1? p3.0=1?22速?速度处理程序流程图 136.2.5显示子程序采用动态扫描显示接口电路,动态显示接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共极com各自独立地受i/o线控制。cpu向字段输出口送出字型码时,所有显示器接收到相同的字型码,但究竟是哪个显示器亮,则取决于com端。可以采用分时的方法,轮流控制各个显示器的com端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。本设计p2.0、p2.1、p2.2、p2.3信号一起组成位选通的位选信号,p0.0p0.7信号一起组成段码选通的段选信号,通过软件编程,先把所要显示的数据放入存储单元,然后把数据送入段选通对应的地址,再选通某一个led,逐步完成四个led的显示。;里程显示控制程序displays:setb p1.0 ;点亮led1 clr p1.1 ;关闭速度指示灯 setb p3.7 lcall sss ;将圈数转为公里数 lcall display ;显示公里数据 ljmp start1 ;跳回start1;速度显示程序displayv:clr p1.0 ;关闭led1(里程指示灯) s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 森林狂想曲打击乐课件
- 桶装水业务员培训课件
- 4.1.2 现代生物进化理论以自然选择学说为核心 课件
- 桥梁知识培训收获课件
- 2025年网络安全工程师招聘面试实战指南及模拟题答案
- 桥梁施工课件
- 2025年智能科技公司法务高管招聘笔试预测试题
- 2025年建筑工程施工现场安全员招聘面试要点与模拟题解析
- 2025年健身教练应聘指南与职业技能模拟题详解
- 2026届广东省培正中学化学高一上期中学业水平测试试题含解析
- 破产清算申请书(债务人版)
- 染整基础知识培训课件
- 长沙市芙蓉区2024-2025学年四年级数学第二学期期末经典模拟试题含解析
- 出差国外安全协议书
- 人教版九年级英语unit-1教案电子教案
- 中学历史教师课程思政研修计划
- 2025年公租房入住合同范例
- 征兵业务培训
- Unit 6 Useful numbers Part C Project(说课稿)-2024-2025学年人教PEP版(2024)英语三年级上册
- 危险废物处置服务协议
- 《观光农业概论》课件
评论
0/150
提交评论