电动车里程表课程设计报告书_第1页
电动车里程表课程设计报告书_第2页
电动车里程表课程设计报告书_第3页
电动车里程表课程设计报告书_第4页
电动车里程表课程设计报告书_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录 TOC o 1-3 h z u HYPERLINK l _Toc192915965 第 1 章 概述 PAGEREF _Toc192915965 h 2 HYPERLINK l _Toc192915966 第 2 章 硬件设计 PAGEREF _Toc192915966 h 3 HYPERLINK l _Toc192915967 2.1 系统组成框图 PAGEREF _Toc192915967 h 3 HYPERLINK l _Toc192915968 2.2 具体硬件电路及工作原理 PAGEREF _Toc192915968 h 3 HYPERLINK l _Toc192915969

2、2.3 AT89C2051单片机介绍 PAGEREF _Toc192915969 h 4 HYPERLINK l _Toc192915970 2.3.1 芯片概述 PAGEREF _Toc192915970 h 4 HYPERLINK l _Toc192915971 2.4 其他外围硬件电路 PAGEREF _Toc192915971 h 6 HYPERLINK l _Toc192915972 2.4.1 电源电路 PAGEREF _Toc192915972 h 6 HYPERLINK l _Toc192915973 2.4.2 霍尔传感器 PAGEREF _Toc192915973 h 6

3、HYPERLINK l _Toc192915974 2.4.3 4位串行静态显示电路 PAGEREF _Toc192915974 h 7 HYPERLINK l _Toc192915975 第 3 章 软件设计 PAGEREF _Toc192915975 h 8 HYPERLINK l _Toc192915976 3.1 主程序设计 PAGEREF _Toc192915976 h 8 HYPERLINK l _Toc192915977 3.2 外部中断0和T1时序溢出中断服务子程序设计 PAGEREF _Toc192915977 h 8 HYPERLINK l _Toc192915978 3.

4、3 速度/里程显示控制子程序设计 PAGEREF _Toc192915978 h 8 HYPERLINK l _Toc192915979 3.4 系统完整源程序 PAGEREF _Toc192915979 h 9 HYPERLINK l _Toc192915980 总结 PAGEREF _Toc192915980 h 10 HYPERLINK l _Toc192915981 参考文献 PAGEREF _Toc192915981 h 11 HYPERLINK l _Toc192915982 附录 PAGEREF _Toc192915982 h 12 HYPERLINK l _Toc1929159

5、83 附录1 整体电路图 PAGEREF _Toc192915983 h 12 HYPERLINK l _Toc192915984 附录 2 源程序 PAGEREF _Toc192915984 h 13第一章概述本设计中引入的速度和里程表设计基于微控制器和光电传感器。传感器将不同车速转换成的不同频率的脉冲信号输入单片机进行控制计算,再通过LED模组进行显示,从而将电动自行车的速度和里程数据直接显示给用户。该设计可以实时显示实测车速和累计里程,主要是通过实时测量传感器输入到单片机的脉冲信号的频率(传感器将不同的车速转换成不同频率的脉冲信号),考虑到信号衰减、干扰等影响,信号在致到单片机前应进行放

6、大整形,然后由单片机计算速度和里程,将得到的数据存入串口端口数据记忆,测得的速度和速度由LED显示模块交替显示。里程。本设计中设计的里程算法是一种近似算法(假设自行车在某个时间匀速行驶,平均速度与时间的乘积就是里程)。该系统由信号预处理电路、单片机AT 89C2051、系统LED显示模块、串行数据存储电路和系统软件组成。其数字预处理电路包括信号放大、波形变换和波形整形。对被测信号进行放大的目的是为了降低对被测信号的幅度要求;波形变换和波形整形电路,用于将放大后的信号转换为可连接单片机的TTL信号;控制脉冲输入引脚T0,可以准确计算单位时间内检测到的脉冲数2C。存储,既省去了所需的单片机接口线和

7、外围设备,又简化了显示部分的软件编程。设计时应综合考虑测速精度和系统响应时间。本设计采用测量脉冲频率计算速度,具有较高的速度测量精度。计算里程时采用自行车的理想状态。在实践中,误差控制在几米以内,相对于整个里程来说,并不是很大。为了保证系统的实时性,系统的速度转换模块和显示数据到BCD码模块均采用快速算法。此外,应尽可能保证其他子模块编程的通用性和效率。此设计的速度和里程值以 6 位显示,包括两位小数。第二章硬件设计2.1 系统组成框图根据功能需求,首先进行整体方案的设计和论证,构思出符合实际需求的系统,如图2.1所示。该系统由测量模块、功能选择模块、显示模块、电源模块和单片机系统组成。选择功

8、能后,开始测量,显示大范围实时采集处理。霍尔传感器霍尔传感器开关功能选择显 示功能指示灯2051 单 片 机 稳压器+5V电池组充电电路发电机图 2.1 系统组成框图2.2 具体硬件电路及工作原理具体硬件电路如图2.2所示。图 2.2 系统硬件电路原理图速度和里程由开关式霍尔传感器测量,自行车车轮周长已知(本系统使用1.8m,设置为L ) ,车轮每转动一次,传感器采样一个下降沿信号并将其致到外部中断单片机的0产生中断,整书加1,由单片机定时器1(设置为T)对相邻两个下降沿信号的时间进行计时,所以计算当前速度的公式(设置为V)和里程(设置为S)是:V=1.8/T, S= 1.8m*行驶圈数S1为

9、单片机复位开关,系统采用按钮级复位开关; S2为电源开关,由灯D1指示; S3为速度和里程开关; S4为限速开关,可根据自身需要选择。速度; S5 是里程单位的开关。当 P1.4 输出低电平时,控制 D2 亮,表示显示的里程值为 km/h。当P1.5输出低电平时,控制灯D3亮,表示速度太慢;当P1.6输出低电平时,当控制灯D4亮时,表示此时显示值的里程(否则为车速); P1.7控制超速报警电路,为高电平表示驱动速度正常,为低电平时晶体管9012导通,驱动器蜂鸣报警。2.3 89CAT 2051 MCU简介2.3.1芯片概述 HYPERLINK :/ zymcu /datasheet/atmel

10、/At89c2051.pdf t _blank AT89C2051是一款低压、高性能CMOS 8位单片机,内含2k字节可重写只读Flash程序存储器和128字节随机存取数据存储器(RAM)。该设备采用ATMEL的高密度、非易失性易失性存储技术生产,兼容标准MCS-51指令系统,片上通用8位中央处理器和Flash存储单元,功能强大的AT 89C2051微控制器可为您提供许多具有成本效益的应用程序。 AT 89C2051是一款功能强大的微控制器,但它只有20个引脚和15个双向输入/输出(I/O)端口,其中P1是一个完整的8位双向I/O端口,两个外部中断端口,两个16位可编程定时器计数器、两个全双向

11、串行通信端口和一个模拟比较器放大器。同时89C,AT2051的时钟频率可以为零,即具有可以软件设置的休眠省电功能。系统的唤醒方式包括RAM、定时器/计数器、串口和外部中断端口。系统唤醒后进入连续工作状态。在省电模式下,片内 RAM 将被冻结,时钟停止振荡,所有功能停止工作,直到系统被硬件复位。管角配置如图 2.3 所示。图 2.3 2051 引脚图主要功能介绍兼容MCS51指挥系统15个双向I/O端口两个 16 位可编程定时器/计数器时钟频率 0-24MHz两个外部中断源可以直接驱动LED低功耗休眠功能可编程UART通道2k 可重写(1000 次)Flash ROM6个中断源2.7-6.V的宽

12、工作电压范围128x8 位内存两个串行中断两级加密位设置模拟比较放大器软件设置睡眠和唤醒功能可见的。 2051 可为许多嵌入式控制应用提供高度灵活且低成本的解决方案,尤其是小型系统。本系统仅使用单片机的10个I/O口,故选择2051单片机作为主系统。2.4 其他外围硬件电路2.4.1电源电路如图 2.4 所示。发电机发出+15V的交流电,经过整流滤波后给镍氢电池组充电。充电采用恒流方式。充电后的电池组由 7805 稳压,为霍尔传感器和 MCU 系统供电。取决于图 2.4 电源电路示意图因为充电电流可以达到400500mA,而且充电时间长,所以三极管选用大功率的C8050。 5K 电位器用于调节

13、充电电流,避免电流过大烧坏元器件。当然,在实验设计过程中为了简单起见,我们可以不用电机。直接用4个1.5V电池组经7805稳压后得到+5V电压给单片机系统和霍尔传感器供电。2.4.2霍尔传感器霍尔传感器是一种利用霍尔效应将磁输入信号转换为电信号的设备。系统采用JK8002D霍尔接近开关,是一种非接触式非接触式开关,系统通过它检测外部磁场强度的变化,进而控制开关量输出。磁场由外部磁铁产生。JK8002D霍尔接近开关的原理图和输入/输出特性如图(5)和(6)所示。 JK8002D霍尔接近开关的输入量为磁感应强度B,当B值达到一定电平(如Bl)时,霍尔开关部分的触发器翻转,其输出电平状态也翻转。当探

14、头与磁钢距离由远至近时,霍尔元件输出端输出低电平(约0.2V),无抖动。当两者距离足够远时,霍尔元件的输出端输出无抖动的低电平。8mm高电平(约3.7V),所以输出信号可以直接到单片机的外部中断0脚。2.4.3 4位串行静态显示电路单片机的UART口进行串口通信时,可设置为工作在同步移位寄存器模式0,输出显示信息,实现n位LED的静态显示,只占用几I/ O线。 .系统中4个共阳极LED数码管和4片74LS164组成4位数码显示电路,74LS164将串行输入的显示信息转换为并行输出,驱动数码管显示。 74LS164在低电平输出时允许电流为8mA,因此无需增加驱动电路即可获得理想的亮度。与动态扫描

15、方式相比,这种方式不需要CPU做不断的扫描,频繁地服务于显示器,节省了CPU的时间,软件世界也比较简单。显示电路如图 2.5 所示。图2.5 4位串行静态显示电路示意图第三章软件设计3.1 主程序设计主程序流程图如图 3.1 所示。系统开机后系统自检,正常时LED显示“”,等待自行车运行。车轮开始转动后,系统根据速度/里程开关的选择进行记录计算,并显示数值。NN系统初始化主程序P3.2=0?Y开始初始显示P1.0=1?N显示里程显示速度Y图 3.1 主程序流程图3.2 外部中断0和T1时序溢出中断服务子程序设计外部中断0服务子程序用于统计输入脉冲数,即轮子转动的次数。每次计时,系统保存圈数和定

16、时器的计时值,并根据功能切换键实时显示相应的数值。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进行切换。对于里程值,

17、为了显示更准确,程序设置了不同里程范围内显示的小数点后位数:里程为10m 99m,显示2位小数;里程为100m 999m3.4 系统完整源程序如附录 1总结本设计以AT 89C2051为核心,通过光电传感器检测自行车的运行情况,实现电动自行车的速度、里程的计算、里程的累加和存储,最后6位LED可以直观地向用户显示速度和里程。 ,并能在车速高于一定值时自动向用户报警,从而实现智能车速里程表。本次课程设计让我掌握了很多实用知识,并且在老师和同学的帮助下,对单片机有了进一步的了解。通过本次课程设计,我了解到理论联系实际非常重要。只有理论知识是远远不够的。只有将所学的理论知识与实践相结合,才能从理论中

18、得出结论,进而提高自己的实践能力和独立思考能力。整个设计过程可以说不是很顺利,因为很多知识都忘记了,很多新东西没有掌握,所以这个设计花在了不断的复习和学习中,让我受益匪浅,而且它也让我熟悉了微控制器。随着对应用的进一步了解和掌握,也为以后的学习、生活和工作打下良好的基础。参考1 易琨,善久单片机原理与应用:电子科技大学,2002。2 尤德,志英,许世良单片机原理应用与实验:复旦大学,2000。3威孚Lab2000P系列单片机仿真实验系统手册。附录附录1 整体电路图附录 2 源程序自行车里程表/* 各管脚用途及系统功能说明P1.0 速度和里程切换:1表示速度,0表示里程P1.1限速开关:1个10

19、m/s; 0 8m/sP1.2 km/h和 m/s:P1.4表示显示单位为km/hP1.5 速度过慢灯闪烁警告P1.6 0时,灯亮,指示里程;灯灭时显示车速P1.7 超速报警最大距离为9999m6H圈,38H圈,22C圈,15B6圈0m=S 10m10m=S 100m100m=S 1000m周长 0707H 00B4H 0012H 0012H/0AH/变量定义/小书教育57H;小数点单位格威教育40H;显示单元室威教育 41H;百威教育42H;前卫教育43H;QSHU1 教育 43H;QSHU0 教育 61H;自行车膝上存储单元高QSHU0 教育 62H;自行车膝上存储单元低SJIAN0 ED

20、U 6CH; T1时序溢出存储单元高SJIAN1 EDU 6DH; T1时序溢出存储单元低位/ 主程序 /组织机构 000HAJMP 开始组织机构 0003HAJMP 国际展览中心0ORG 001BHAJMP IT11组织机构 0030H开始:移动 SP,#75H;设置堆栈指针MOV SCON,#00H ;串口工作模式MOV格伟,#0AH;开机显示MOV SHIWEI,#0AHMOV百威,#0AHMOV前卫,#0AH呼叫 DIS11SETB P3.2;外部中断0为输入查询模式P3.2;等待第一个有效脉冲的到来(下降沿)呼叫清除内存;调用系统准备显示初始化子程序STLOOP:JNB P1.0,S

21、T1; p1.0=0,显示速度呼叫显示; P1.0=1,显示里程SJMP 循环;循环显示ST1:呼叫显示V;第一个下降沿后的显示速度AJMP 溢出;循环显示/系统准备显示初始化子程序 /CLEARRAM:MOV TMOD,#10H; T1用于计时,工作在模式1移动 TH1, #0B1H ;定时 20ms 初始值SETB P1.2; P1.2-P1.0 为输入SETB P1.1塞尔维亚P1.0CLR 一个;相应的RAM空间被清除移动 21H,A ;速度/里程BCD码高位清0移动 22H,A ;速度/里程BCD码低位清0MOV QSHU1,A ;将圈空间清零MOV QSHU0,A移动 6AH,A

22、; T1溢出次数暂存单元高位清0移动 6BH,A ; T1溢出次数暂存单元低位清0MOV SJIAN0,A ;清理柜台空间MOV SJIAN1,AMOV小舒,#01H ;默认显示 3 位小数SETB IT0 ;将外部中断设置为边沿触发SETB PT1; T1 具有最高优先级SETB EA;打开总中断SETB ET1;打开 T1 中断SETB EX0;打开外部0中断/外部中断0服务子程序/INTEX0:推加速;蓄电池组保护推 PSW;状态字堆栈保护INC QSHU0 ;圈加1SETB P1.7;设置1不报警CLR 一个;清除 ACJNE A,QSHU0,SUBX0;如果计数没有溢出则转到 SUB

23、X0公司QSHU1;溢出进位(61H 加 1)SUBX0:CLR TR1;关闭计时,读取车轮转动一次的时间MOV 6AH, SJIAN0 ;时间暂存MOV 6BH, SJIAN1移动 TH1, #0B1H ;定时器 T1 还清初始值MOV TL1,#0DFHCLR AMOV SJIAN0,A ;清晰的时间空间MOV SJIAN1,ASETB TR1;重定时POP PSW;状态字恢复流行音乐节;蓄能器回收视网膜病变;从中断返回/当T1定时器溢出时中断服务程序/IT11:推加速;堆栈保护推送 PSWINC SJIAN1 ;定时20ms溢出次数MOV A,SJIAN1 ;读取一圈计时的次数CJNE

24、A,#0BBH,SUBT1;速度太慢(0.5 ) ,处理AJMP SUBT2SUBT1:JC SUBT2公司 69H; (69H) 为奇数,LED 显示“Erro ”MOV A,69H ;再次显示特定速度的值ACC.0 错误; (69H) 偶数,LED显示“速渡”MOV 格伟,#05H ;再次显示具体速度值MOV SHIWEI,#0BHMOV百味,#0DHMOV前卫,#0BHMOV小舒,#0BH呼叫 DIS11SJMP FS12错误:MOV GEWEI,#0CHMOV施伟,#OBHMOV百威,#0BHMOV前卫,#0DH呼叫 DIS21; “Erro ”或“sudu ”与具体速度值交替闪烁显示

25、FS12:MOV R2,#01H;CLR P1.5呼叫延迟2SETB P1.5呼叫延迟2DJNZ R2,闪光灯SUBT2: 移动 TH1,#0B1HMOV TL1,#0DFHSETB TR1POP PSW流行音乐节视网膜病变/里程显示控制子程序/显示:CLR P1.6呼叫朱莉MOV A,QSHU1CJNE A,#02H,DIAYONGAJMP 潘迪DIAYONG:JNC PANDY1AJMP 好友潘迪:MOV A,QSHU0CJNE A,#2CH,PANDY2AJMP PANDY1PANDY2:JC 好友PANDY1: MOV R6,#00hMOV R7,#0AH呼叫朱利2呼叫 BCDC呼叫分

26、开呼叫 DIS21呼叫延迟1RET好友:MOV R6,#00hMOV R7,#01h呼叫朱利2呼叫 BCDC呼叫分开呼叫 DIS11呼叫延迟1呼叫延迟1RET/速度显示控制子程序/显示V:SETB P1.6呼唤速都呼叫 BCDC呼叫分开MOV小舒,#01HRET/处理子程序1/朱莉:推 PSW推加速MOV R2,QSHU1MOV R3,QSHU0郑州高MOV A,QSHU0CJNE A,#06H,PAN1AJMP PAN2PAN1:JNC PAN2AJMP CZ707PAN2:MOV A,QSHU0CJNE A,#38H,PAN3AJMP高PAN3:JC CZB4高:AJMP CZ12CZ70

27、7: MOV R6,#07HMOV R7,#07HMOV小舒,#01HAJMP开石CZB4: MOV R6,#00HMOV R7,#0B4HMOV小舒,#02HAJMP开石CZ12: MOV R6,#00HMOV R7,#00HMOV小舒,#03HKAISHI 是一个两字节乘两字节的程序段凯士:MOV A,R3MOV B, R7穆尔 ABMOV R4,BMOV R5,BMOV A,R3MOV B,R6穆尔AAB添加 A,R4MOV R4,ACLR AADDC A,BMOV B,R7穆尔 AB添加 A,R4MOV R4,AMOV A,R3ADDC A,BMOV R3,ACLR ARLC AXCH

28、 A,R2MOV B,R6穆尔 AB添加 A,R3MOV R3,AMOV A,R2ADDC A,BMOV 50H,R2MOV 51H,R3MOV 52H,R4MOV 53H,R5POP PSW流行音乐节RET/处理里程子程序2/朱利2:推PSW推加速MOV R2,50HMOV R3,51HMOV R4,52HMOV R5,53HDIVD11:CLR CMOV A,R3SUBB A, R7MOV A,R2SUBB A,R6JC DVD11SETB OVRETDVD111: MOV B,#10HDVD211:CLR CMOV A,R5MOV R5,AMOV A,R4RLC AMOV R4,AMOV

29、 A,R3RLC AMOV R3,AXCH A,R2XCH A,R2MOV F0,CCLR CSUBB A,R7MOV R1,AMOV A,R2SUBB A,R6ANL C,/F0JC DVD311MOV R2,AMOV A,R1MOV R3,AINC R5DVD311:DJNZ B,DVD211MOV A, R4MOV R2,AMOV A,R5MOV R3,ACLR OVMOV 30H,R2MOV 31H,R3流行音乐节POP PSW无RET/十六进制转换乘BCD子程序/BCDC:推加速推送 PSWMOV R6,30HMOV R7,31HCLR AMOV R3,AMOV R4,AMOV R5

30、,AMOV R2,#10HHB322: MOV A,R7RLC AMOV R7,AMOV A,R6RLC AMOV R6,AMOV A,R5大甲MOV R5,AMOV A,R4ADDC A,R4大甲MOV R4,AMOV A,R3ADDC A,R3DJNZ R2,HB322MOV 20H,R3MOV 21H, R4MOV 22H, R5POP PSW流行音乐节无RET/计算速度十六进制值子程序/SUDU:推 PSW推加速P1.2,公里SJMP JUBU公里: MOV R2,#00HMOV R3,#04HMOV R4,# 0F1HMOV R5,# 0A0HCLR P1.4SJMP QUANJUJ

31、UBU: MOV R2,#00HMOV R3,#001HMOV R4,#05FHMOV R5,#090HCLR P1.4QUANJU: MOV A, 6BHP1.1,XIAN10CJNE A,#0BH,BUXIANGSJMP JC0XIAN10: CJNE A,#09H,BUXIANGSJMP JC0BUXIANG: JC JC0SJMP BUJGJC0: MOV A, 6AHCJNE A,#00H,BUJGAJMP JIANGAOJIANGAO: CLR P1.7MOV GEWEI,#0CHMOV SHIWEI,#0BHMOV BAIWEI,#0BHMOV QIANWEI,#0DHACALL

32、 DIS21ACALL DELAY1MOV GEWEI,#0EHMOV SHIIWEI, #0EHMOV BAIWEI,#0EHMOV QIANWEI, #0EHACALL DIS21ACALL DELAY1SJMP QUANJUBUJU: MOV A, 6BHCJNE A,#0AFH,LING0AJMP LING1LING0: JC LING1AJMP BUJINGLING1: MOV A, 6AHCJNE A,#00J,BULING0AJMP BULING1BULING0: JC BULING1BULING: MOV SJIAN0,#00HMOV SJIAN1,#00HRET/4 byte

33、s divided by 2 bytes division subroutine /BULING1:MOV R6,6AHMOV R7,6BH分区:CLR CMOV A,R3SUBB A, R7MOV A,R2SUBB A, R6JC DVD1SETB OVRETDVD1:MOV B,#10HDVD2:CLR CMOV A,R5RLC AMOV R5,AMOV A, A4RLC AMOV R4,AMOV A,R3RLC AMOV R3,AXCH A,R2XCH A,R2MOV F0,CCLR CSUBB A,R7MOV R1,AMOV A,R2SUBB A,R6ANL C,/F0JC DVD3MOV R2,AMOV A,R1MOV R3,AINC R5DVD3: DJNZ B,DVD2MOV A,R4MOV R2,AMOV A,R5MOV R3,ACLR OVMOV 30H,R2MOV 31H,R3流行音乐节POP PSWSETB P1.7无RET/压缩BCD码到非压缩BCD码子程序/奋开:MOV R7,#02HMOV R0,#格伟MOV R1,#21HFENKAI1: MOV A, R1ANL A,# 0F0H交换一个MOV R0,AINC R0MOV A,R1ANL A,#0FHMOV R0,AIN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论