ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:33.14KB ,
资源ID:7078507      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7078507.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(自行车里程表的设计毕业设计论文.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

自行车里程表的设计毕业设计论文.docx

1、自行车里程表的设计毕业设计论文课程 单片机原理及应用课程设计题目 自行车里程表的设计 主要内容、基本要求、主要参考资料等1、主要内容:根据单片机课程所学内容,结合其他相关课程知识,设计一个自行车里程表,以加深对单片机知识的理解,锻炼实践动手能力,为以后的毕业设计和工作打下坚实基础。2、基本要求:以AT89C2051型单片机为核心,实时测量并显示自行车行驶过程中两项运动参数:速度和里程。所测量各值可单独显示,测量值误差小于1%。超速行驶(设置两各可选择的限速参数:10m/s,8m/s)时,能自动发出声光报警。3、主要参考资料: 1 张毅坤,陈善久.单片微型计算机原理及应用.西安:西安电子科技大学

2、出版社,2002. 2 张友德,赵志英,徐时亮.单片微机原理应用与实验.上海:复旦大学出版社,2000. 3 伟福Lab2000P系列单片机仿真实验系统说明书.完成期限2010.3.15-2010.3.19 指导教师 专业负责人 2010年3 月 13日目 录第一章 概 述 2第二章 硬件设计 32.1系统组成结构框图 32.2具体硬件电路及工作原理 32.3 AT89C2051单片机简介 42.3.1芯片概述 42.4其他外围硬件电路 62.4.1电源电路 62.4.2霍尔传感器 62.4.3 4位串行静态显示电路 7第三章 软件设计 83.1主程序设计 83.2 外中断0和 T1定时溢出中

3、断服务子程序设计 83.3 速度/里程显示控制子程序设计 83.4系统完整源程序 9总 结 10参考文献 11附录 12附录1 整体电路图 12附录2 源程序 13第一章 概 述本设计介绍的速度与里程表设计以单片机和光电传感器为核心。传感器将不同车速转变成的不同频率的脉冲信号输入到单片机进行控制与计算,再采用LED模块进行显示,使得电动自行车的速度与里程数据能直接的显示给使用者。该设计能实时地将所测的速度与累计里程数显示出来,主要是将传感器输入到单片机的脉冲信号的频率(传感器将不同车速转变成不同频率的脉冲信号)实时地测量出来,考虑到信号的衰减、干扰等影响,在信号送入单片机前应对其进行放大整形,

4、然后通过单片机计算出速度和里程,再将所得的数据存储到串口数据存储器,并由LED显示模块交替显示所测速度与里程。本设计的里程数的算法是一种大概的算法(假设在一定时间内自行车是匀速行进,平均速度与时间的乘积即为里程数)。本系统由信号预处理电路、单片机AT89C2051、系统化LED显示模块、串口数据存储电路和系统软件组成。其中信号预处理电路包含信号放大、波形变换和波形整形。对待测信号进行放大的目的是降低对待测信号的幅度要求;波形变换和波形整形电路则用来将放大的信号转换成可与单片机相连的TTL信号;通过单片机的设置可使内部定时器T1对脉冲输入引脚T0进行控制,这样能精确地算出加到T0引脚的单位时间内

5、检测到的脉冲数;设计中速度显示采用LED模块,通过速度换算得来的里程数采用I2C总线并通过E2PROM来存储,既节省了所需单片机的口线和外围器件,同时也简化了显示部分的软件编程。 设计时,应综合考虑测速精度和系统反应时间。本设计用测量脉冲频率来计算速度,因而具有较高的测速精度。在计算里程时取了自行车的理想状态。实际中,误差控制在几米之内,相对于整个里程来说不是很大。为了保证系统的实时性,系统的速度转换模块和显示数据转BCD码模块都采用快速算法。另外,还应尽量保证其他子模块在编程时的通用性和高效性。本设计的速度和里程值采用6位显示,并包含两个小数位。第二章 硬件设计2.1系统组成结构框图根据功能

6、要求,首先要进行的是总体方案的设计于论证,构思一个符合实际要求的系统,如图2.1所示。系统由测量模块、功能选择模块、显示模块、供电模块和单片机小系统构成。功能选择后启动测量,大片及实时采集、处理后显示。发电机图2.1 系统组成结构框图2.2具体硬件电路及工作原理具体硬件电路如图2.2所示。 图2.2 系统硬件电路原理图速度和里程由开关型霍尔传感器测量,已知自行车轮子的周长(本系统采用的是1.8m,设为L),轮子每转动一圈,传感器采样一个下降沿信号并送到单片机的外中断0产生一次中断,全书加1,两个相邻下降沿信号的时间由单片机定时器1计时(设为T),哪么计算当前速度(设为V)和行驶里程(设为S)的

7、公式为: V=1.8/T, S=1.8m*所行驶的圈数S1是单片机的复位开关,系统采用按键电平复位开关;S2是电源开关,并由灯D1指示;S3为速度和里程切换开关;S4为限速切换开关,可以根据自身需要选择不同的最大超速速度;S5为里程单位切换开关。P1.4输出低电平时,控制D2亮,表示此时显示的里程值为km/h,P1.5输出低电平时,控制灯D3亮,提示速度太慢;P1.6输出低电平时,控制灯D4亮,表示此时的显示值时里程(否则为速度);P1.7控制超速报警电路,其为高电平表示行驶速度正常,为低电平时,三极管9012导通,驱动蜂鸣器报警。2.3 AT89C2051单片机简介2.3.1芯片概述AT89

8、C2051是一个低电压,高性能CMOS 8位单片机,片内含2k bytes的可反复擦写的只读Flash程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大AT89C2051单片机可为您提供许多高性价比的应用场合。AT89C2051是一个功能强大的单片机,但它只有20个引脚,15个双向输入/输出(I/O)端口,其中P1是一个完整的8位双向I/O口,两个外中断口,两个16位可编程定时计数器,两个全双向串行通信口,一个模拟比较放大器。同时AT89C205

9、1的时钟频率可以为零,即具备可用软件设置的睡眠省电功能,系统的唤醒方式有RAM、定时/计数器、串行口和外中断口,系统唤醒后即进入继续工作状态。省电模式中,片内RAM将被冻结,时钟停止振荡,所有功能停止工作,直至系统被硬件复位方可继续运行。管角配置图2.3所示。图2.3 2051引脚图主要功能介绍(1) 兼容MCS51指令系统(2) 15个双向I/O口(3) 两个16位可编程定时/计数器(4) 时钟频率0-24MHz(5) 两个外部中断源(6) 可直接驱动LED(7) 低功耗睡眠功能(8) 可编程UARL通道(9) 2k可反复擦写(1000次)Flash ROM(10) 6个中断源(11) 2.

10、7-6.V的宽工作电压范围(12) 128x8bit内部RAM(13) 两个串行中断(14) 两级加密位(15) 内置一个模拟比较放大器(16) 软件设置睡眠和唤醒功能可见。2051可以为很多的嵌入式控制应用提供高度灵活而且价格低廉的方案,特别适合小系统。本系统仅用到单片机的10个I/O口,所以选用2051单片机做主系统。2.4其他外围硬件电路 2.4.1电源电路 如图2.4所示。发电机发出+15V的交流电,经整流滤波后,再给镍氢电池组充电,充电采用恒流方式。已充电的电池组经7805稳压,给霍尔传感器和单片机系统供电。由图2.4 电源电路原理图于充电电流可达400500mA,且充电时间较长,所

11、以三极管选用功率高的C8050。5K的电位器用于调节充电电流,避免电流过大烧坏元件。当然,实验设计过程中为了简便,我们可以不用电机。直接用4个1.5V的电池组经7805稳压后得到+5V电压给单片机系统和霍尔传感器供电。2.4.2霍尔传感器 霍尔传感器是利用霍尔效应把磁输入信号转换成电信号的器件。本系统采用JK8002D霍尔接近开关,他是一种非接触型无触点开关,系统通过它探测外部的磁场的强弱变化,继而控制开关输出。磁场由外部的磁钢产生。JK8002D霍尔接近开关的内部原理图和输入/输出特性如图(5)和图(6)所示。JK8002D霍尔接近开关的输入量是磁感应强度B,当B值达到一定的程度(如Bl)时

12、,霍尔开关内部的触发器翻转,其输出电平状态也随之翻转。当探头与磁钢距离由远而近为8mm时,霍尔元件输出端输出一个无抖动的低电平(约为0.2V),当两者距离足够远时,霍尔元件输出端输出一个无抖动的高电平(约为3.7V),所以输出信号可直接到单片机的外中断0的引脚。 2.4.3 4位串行静态显示电路当单片机的UART口部进行串行通信时,可设置其工作于同步移位寄存器方式0,以输出显示信息,实现n位LED的静态显示,这样做只占用了很少的I/O口线。系统中,4各共阳极得LED数码管和4片 74LS164构成4位数字显示电路,74LS164将串行输入的显示信息转换成并行输出,驱动数码管显示。74LS164

13、在低电平输出时允许通过的电流为8mA,故不必添加驱动电路即可获取理想亮度。与动态扫描方式相比较,该方式无须CPU做不停的扫描,频繁地为显示服务,节省了CPU的时间,软件世界也比较简单。显示电路如图2.5所示。图2.5 4位串行静态显示电路原理图第三章 软件设计3.1主程序设计主程序流程图见图3.1。开机后系统自检,正常时LED显示“”,同时等待自行车行驶。轮子开始转圈后,系统进行记录和计算,并根据速度/里程开关的选择显示数值。Y图3.1 主程序流程图3.2 外中断0和 T1定时溢出中断服务子程序设计外中断0服务子程序用于对输入脉冲的个数即轮子转圈的次数计数。每计数一次,系统保存圈数值的同时保存

14、定时器的计时值,并根据功能开关键实时显示相应的值。T1定时溢出中断服务子程序用于实时统计记一次数的经历时间。T1定时的基准时间设为20ms,假设记一次数中T1中断的次数为C,1.8/(20C)ms即当前自行车行驶的速度。用内部定时加外中断的方法实现了对输入脉冲信号的测量,这是本系统最关键的程序部分。3.3 速度/里程显示控制子程序设计最大允许速度由限速切换开关S4控制,超速使单片机的P1.7输出低电平报警。若行驶速度太慢(0.5m/s),灯D3不断闪烁,LED交替显示“Erro”、“Sudu”和当前速度值,以引起骑车者的注意。速度显示值的单位有km/h和每m/s,由功能键S5切换。对于里程值,

15、为了较精确地显示,程序设置了不同里程范围时所显示的小数点后数字的位数:里程为10m99m,显示2位小数;里程为100m999m,显示1位小数。3.4系统完整源程序如附录1总 结本设计以AT89C2051为核心,通过光电传感器来检测自行车的运转情况进而实现电动自行车的速度,里程的计算及里程的累计,存储,最后用6位的LED能直观的将速度与里程显示给用户,并且在速度高于一定的值时可自动向用户报警,从而达到智能速度里程表。这次课程设计使我掌握了很多实践知识,在老师和同学的帮助下对单片机有了进一步的了解。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识

16、与实践相结合起来,从理论中得出结论,进而提高自己的实际动手能力和独立思考的能力。整个设计过程可以说不是很顺利,因为有很多知识已经淡忘,还有很多新的东西没有掌握,所以这次设计在不断的复习、学习中度过,使我受益匪浅,也使我对单片机的运用有了进一步的了解和掌握,也为今后的学习生活和工作打下良好的基础。参考文献1 张毅坤,陈善久.单片微型计算机原理及应用.西安:西安电子科技大学出版社,2002.2 张友德,赵志英,徐时亮.单片微机原理应用与实验.上海:复旦大学出版社,2000.3 伟福Lab2000P系列单片机仿真实验系统说明书.附录附录1 整体电路图附录2 源程序自行车里程表 /* 各引脚用途及系统

17、功能说明P1.0 速度和里程切换:1显示速度,0显示里程P1.1 限速度切换:1 10m/s;0 8m/sP1.2 km/h和 m/s的切换:P1.4 指示显示器单位为km/hP1.5 速度太慢灯闪烁警告P1.6 0时灯亮,指示里程;为以灯不亮,显示速度P1.7 超速度报警 距离最大值为9999m6H圈、 38H圈、 22C圈、 15B6圈0m=S10m 10m=S100m 100m=S1000m 1000m=S10000m周长0707H 00B4H 0012H 0012H/0AH/变量定义/XIAOSHU EDU 57H ; 小数点位数单元 GEWEI EDU 40H ; 显示单元SHIWE

18、I EDU 41H ; BAIWEI EDU 42H ;QIANWEI EDU 43H ; QSHU1 EDU 43H ; QSHU0 EDU 61H ; 自行车圈数存储单元高位QSHU0 EDU 62H ; 自行车圈数存储单元低位SJIAN0 EDU 6CH ; T1定时溢出存储单元高位SJIAN1 EDU 6DH ; T1定时溢出存储单元低位/主程序/ ORG 000H AJMP START ORG 0003H AJMP INTEX0 ORG 001BH AJMP IT11 ORG 0030HSTART: MOV SP,#75H ; 设置堆栈指针 MOV SCON,#00H ; 串行口工作

19、方式 MOV GEWEI,#0AH ; 开机显示 MOV SHIWEI,#0AH MOV BAIWEI,#0AH MOV QIANWEI,#0AH ACALL DIS11 SETB P3.2 ; 外中断0为输入查询方式 JB P3.2 ; 等待第一个有效脉冲(下降沿)到来 ACALL CLEARRAM ; 调用系统准备显示初始化子程序STLOOP: JNB P1.0,ST1 ; p1.0=0,显示速度 ACALL DISPLAYS ; P1.0=1, 显示里程 SJMP STLOOP ; 循环显示ST1: ACALL DISPLAYV ; 第一个下降沿来后显示速度 AJMP STLOOP ;

20、循环显示/系统准备显示初始化子程序/CLEARRAM: MOV TMOD,#10H ; T1用于定时,工作于模式1 MOV TH1,#0B1H ; 定时20ms初始值 SETB P1.2 ; P1.2-P1.0为输入 SETB P1.1 SERB P1.0 CLR A ; 相应内RAM空间清零 MOV 21H,A ; 速度/里程的BCD码高位清0 MOV 22H,A ; 速度/里程的BCD码低位清0 MOV QSHU1,A ; 圈数空间清0 MOV QSHU0,A MOV 6AH,A ; T1溢出次数暂存单元高位清0 MOV 6BH,A ; T1溢出次数暂存单元低位清0 MOV SJIAN0,

21、A ; 计数器空间清零 MOV SJIAN1,A MOV XIAOSHU,#01H ; 默认显示3位小数 SETB IT0 ; 设置外中断为边沿触发方式 SETB PT1 ; T1优先级最高 SETB EA ; 开总中断 SETB ET1 ; 开T1中断 SETB EX0 ; 开外0中断/外中断0服务子程序/INTEX0: PUSH ACC ; 累加器堆栈保护 PUSH PSW ; 状态字堆栈保护 INC QSHU0 ; 圈加1 SETB P1.7 ; 置1不报警 CLR A ; 清A CJNE A,QSHU0,SUBX0 ; 计数没溢出转SUBX0 INC QSHU1 ; 溢出进位(61H加

22、1)SUBX0: CLR TR1 ; 关计时,读轮子转一圈的时间 MOV 6AH,SJIAN0 ; 时间暂存 MOV 6BH,SJIAN1 MOV TH1,#0B1H ; 定时器T1重付初值 MOV TL1,#0DFH CLR A MOV SJIAN0,A ; 清计时空间 MOV SJIAN1,A SETB TR1 ; 重新计时 POP PSW ; 状态字恢复 POP ACC ; 累加器恢复 RETI ; 中断返回/T1定时器溢出时中断服务子程序/IT11: PUSH ACC ; 堆栈保护 PUSH PSW INC SJIAN1 ; 定时20毫秒溢出次数 MOV A,SJIAN1 ; 读一圈定

23、时的次数 CJNE A,#0BBH,SUBT1 ; 速度太慢(0.5),处理 AJMP SUBT2 SUBT1: JC SUBT2 INC 69H ; (69H)为奇数,LED显示“Erro” MOV A,69H ; 再显示具体速度的值 JB ACC.0 ERRO ; (69H)为偶数,LED显示“Sudu” MOV GEWEI,#05H ; 再显示具体速度的值 MOV SHIWEI,#0BH MOV BAIWEI,#0DH MOV QIANWEI,#0BH MOV XIAOSHU,#0BH ACALL DIS11 SJMP FS12ERRO: MOV GEWEI,#0CH MOV SHIWE

24、I,#OBH MOV BAIWEI,#0BH MOV QIANWEI,#0DH ACALL DIS21;“Erro”或“sudu”和具体速度大值交替闪烁显示FS12: MOV R2,#01H ; CLR P1.5 ACALL DELAY2 SETB P1.5 ACALL DELAY2 DJNZ R2,FLASHSUBT2: MOV TH1,#0B1H MOV TL1,#0DFH SETB TR1 POP PSW POP ACC RETI/里程显示控制子程序/DISPLAYS:CLR P1.6 ACALL JULI MOV A,QSHU1 CJNE A,#02H,DIAOYONG AJMP PA

25、NDYDIAOYONG:JNC PANDY1 AJMP BUDYPANDY: MOV A,QSHU0 CJNE A,#2CH,PANDY2 AJMP PANDY1PANDY2: JC BUDYPANDY1: MOV R6,#00h MOV R7,#0AH ACALL JULI2 ACALL BCDC ACALL FENKAI ACALL DIS21 ACALL DELAY1 RETBUDY: MOV R6,#00h MOV R7,#01h ACALL JULI2 ACALL BCDC ACALL FENKAI ACALL DIS11 ACALL DELAY1 ACALL DELAY1 RET/

26、速度显示控制子程序/DISPLAYV:SETB P1.6 ACALL SUDU ACALL BCDC ACALL FENKAI MOV XIAOSHU,#01H RET/处理子程序1/JULI: PUSH PSW PUSH ACC MOV R2,QSHU1 MOV R3,QSHU0 JNZ GAO MOV A,QSHU0 CJNE A,#06H,PAN1 AJMP PAN2PAN1: JNC PAN2 AJMP CZ707PAN2: MOV A,QSHU0 CJNE A,#38H,PAN3 AJMP GAOPAN3: JC CZB4GAO: AJMP CZ12CZ707: MOV R6,#07

27、H MOV R7,#07H MOV XIAOSHU,#01H AJMP KAISHICZB4: MOV R6,#00H MOV R7,#0B4H MOV XIAOSHU,#02H AJMP KAISHICZ12: MOV R6,#00H MOV R7,#00H MOV XIAOSHU,#03H KAISHI为两字节乘两字节程序段KAISHI: MOV A,R3 MOV B,R7 MUL AB MOV R4,B MOV R5,B MOV A,R3 MOV B,R6 MUL AAB ADD A,R4 MOV R4,A CLR A ADDC A,B MOV B,R7 MUL AB ADD A,R4

28、MOV R4,A MOV A,R3 ADDC A,B MOV R3,A CLR A RLC A XCH A,R2 MOV B,R6 MUL AB ADD A,R3 MOV R3,A MOV A,R2 ADDC A,B MOV 50H,R2 MOV 51H,R3 MOV 52H,R4 MOV 53H,R5 POP PSW POP ACC RET/处理里程子程序2/Juli2: PUSH PSW PUSH ACC MOV R2,50H MOV R3,51H MOV R4,52H MOV R5,53HDIVD11: CLR C MOV A,R3 SUBB A,R7 MOV A,R2 SUBB A,R

29、6 JC DVD11 SETB OV RETDVD111: MOV B,#10HDVD211: CLR C MOV A,R5 MOV R5,A MOV A,R4 RLC A MOV R4,A MOV A,R3 RLC A MOV R3,A XCH A,R2 XCH A,R2 MOV F0,C CLR C SUBB A,R7 MOV R1,A MOV A,R2 SUBB A,R6 ANL C,/F0 JC DVD311 MOV R2,A MOV A,R1 MOV R3,A INC R5DVD311: DJNZ B,DVD211 MOV A,R4 MOV R2,A MOV A,R5 MOV R3,

30、A CLR OV MOV 30H,R2 MOV 31H,R3 POP ACC POP PSW NOP RET/十六进制转换乘BCD子程序/BCDC: PUSH ACC PUSH PSW MOV R6,30H MOV R7,31H CLR A MOV R3,A MOV R4,A MOV R5,A MOV R2,#10HHB322: MOV A,R7 RLC A MOV R7,A MOV A,R6 RLC A MOV R6,A MOV A,R5 DA A MOV R5,A MOV A,R4 ADDC A,R4 DA A MOV R4,A MOV A,R3 ADDC A,R3 DJNZ R2,HB322 MOV 20H,R3 MOV 21H,R4 MOV 22H,R5 POP PSW

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1