速度里程表课程设计报告.doc

  • 格式:doc
  • 大小:31.50 KB
  • 文档页数:7

速度里程表课程设计报告河南机电高等专科学校单片机课程设计题目电动自行车速度里程表课程名称单片机原理及应用系部电子系班级电信082 小组组长姚利涛小组成员姚利涛01 王鹏飞21 许鹏飞王素贞28 指导教师张亚华设计时间2010.12.10---12.24 电动自行车速度里程表1、设计内容及要求1.检测并显示电动自行车实时速度2.检测、显示并累计电动自行车行驶里程3.技术参数i. 电动自行车最高速度35km/h ii. 电动自行车轮胎直径14英寸iii. 电动自行车电池电压24V iv. 检测精度±1 v. 显示8位LED 4.设计要求(1)电路图(2)设计说明书(不少于2500字)(3)程序清单(4)运行结果2、方案设计与讨论1.速度测量原理测量一定时间间隔T内自行车转过的圈数Q。

假设车轮的周长为L,则速度VQ*L/T 2.开关型霍尔传感器霍尔传感器是利用霍尔效应把磁输入信号转换成电信号的器件。

把开关型霍尔传感器安装在自行车贴近车轮的支架上,磁钢安装在辐条上,当磁钢靠近霍尔传感器的时候,传感器输出一个无抖动的低电平,单片机根据此信号可计算里程、速度等。

霍尔传感器的优点是稳定和安装简易,缺点是成本较高。

本设计采用开关型霍尔传感器,但由于实验室设计所限,实际测速时并未采用,而是直接从信号发生器中产生低频脉冲代替霍尔传感器向单片机输入脉冲信号,从而显示相应的速度。

3.LED八段数码管显示8位LED显示。

其中低3位显示速度,要求保留1位小数。

高5位显示里程,同样要求保留1位小数。

速度即时显示,最大显示位35.0,里程每走100米计数一次,最高显示9999.9。

3、系统概述及工作原理1.本系统由信号预处理电路、单片机8051F410、系统化LED显示模块、串口数据存储电路和系统软件组成。

其中信号处理电路包含信号放大、波形变换和波形整形、对待测信号进行放大的目的是降低对待侧信号的幅度要求;波形变换和波形整形电路则用来将放大的信号转换成可与单片机相连的TTL信号;通过单片机的设置可使内部定时器T0对脉冲输入引脚进行控制,这样能精确地算出加到引脚的单位时间内检测到的脉冲数;设计中速度显示采用LED模块,通过速度换算得来的里程数采用I2C总线并通过E2PROM来存储,既节省了所需单片机的口线和外围器件,同时也简化了显示部分的软件编程。

流程图系统软件包括单片机和LED显示模块的初始化模块、速度里程技术模块、速度显示数据转BCD码模块、演示模块、数据显示模块以及及时终端服务模块等。

2.该设计能实时地将所测的速度显示出来,该速度里程表能将传感器输入到单片机的脉冲信号的频率实时地测量出来,并由串口晶体管显示模块实时显示。

单片机利用系统时钟的计时中断功能,并利用定时器T0的计数脉冲,然后通过计算在晶体管上即时显示。

为了方便计算要显示数据段码,可再将其转换成压缩BCD码,然后通过查表将要显示的数据值中每一位的压缩BCD码转换成8段码送到显示缓冲区,最后经串口送至晶体管显示模块显示所测的速度或里程。

设计时,应综合考虑测速精度和系统反应时间。

本设计用测量脉冲频率来计算速度,因而具有较高的测速精度。

为了保证系统的实时性,系统的速度转换模块和显示数据转BCD码模块都采用快速算法。

另外,还应尽量保证其他子模块在编程时的通用性和高效性。

本设计的速度和里程分别采用3位和5位数码显示。

4、系统硬件设计1.410单片机实验板C8051F410原理框图C8051F410单片机实验板原理图2.霍尔传感器速度检测电路霍尔检测电路3.5v降压电路由于自行车提供的电压是24V直流电压,单片机供电电压为5v。

故需要给电路提供5v的降压电路。

本设计采用LM2576S-ADJ集成块降压电路LM2576降压集成块5、系统的软件设计系统软件框图如图所示,本系统软件采用模块化设计方法。

整个系统由初始化模块、频率测量模块、速度,里程计算模块、数据转BCD码模块、速度显示模块、里程显示模块、数据存储,读取模块、定时器中断服务模块以及其他功能模块组成。

系统软件框图6、心得体会本设计以8051F410单片机为核心,通过霍尔传感器来检测自行车的运转情况进而实现电动自行车的速度,里程的计算及里程的累计,存储,最后用8位的LED能直观的将速度与里程显示给用户,并且在速度高于一定的值时LED可自动关掉,从而达到智能速度里程表。

在此课程设计之前,我们都怀着一种好奇而又焦急的心情,急切的想知道做单片机课程设计是多么有意义且有用的。

所以我们每个人都积极主动地投入的设计之中,在两个周的时间内我们要完成的工作看起来很少,但是老师说不容乐观。

在组长的带领下我们认真的走好每一步。

其间的欢欣与苦楚这里我就不在此叙述了,我们真的都学到了很多东西,知道了知识的重要性,为什么高科技才具有价值,因为付出的很多很多。

我在此首先要感谢张亚华老师,是他在我们一筹莫展的时候给了我们提醒,致使我们顺利地完成了本课程设计。

同时感谢设计过程中组员们的相互配合及鼓励,使我们坚决的走下去...... 7、参考文献l 单片机原理及应用夏路易主编电子工业出版社l C8051F410/1/2/3 混合信号ISP FLASH微控制器数据手册潘琢金译Rev 0.7 2006.02 版l 网站/article/art_101_3869.htm 8、附录1.组员工作安排姚利涛设计方案的论证;程序的调试;C语言编程及410单片机的初始化王鹏飞设计方案的论证;程序的调试;C语言编程;课程设计报告的纂写王素贞设计方案的论证;程序的调试;课程设计报告的纂写许鹏飞设计方案的论证;程序的调试;相关的材料收集2.速度里程表显示C程序include “C8051F410.h“ void Init_Devicevoid; //完成void delaymsunsigned char i;//搞定void delayusvoid;//搞定void toch452unsigned int cmda;//搞定void displayvoid;//显示函数void Flash_PageErase unsigned int addr;//Flash字节擦除函数void Flash_ByteWrite unsigned int addr,char byte;//Flash 字节写函数unsigned char Flash_ByteRead unsigned int addr;//Flash 字节读函数unsigned char i,dispbuff[8]{0,0,0,0,0,0,0,0}; //显示缓冲全零sbitCH452_SCL P13; sbit CH452_SDA P14; sbit CH452_KEY P15; unsigned int CMD,DAT,DAT1; bit flag,mark; unsigned int n,ss;//定时器0溢出中断次数unsigned long v,mile,count; unsigned char code hex[21]{0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,0xFE,0 xF6, //0123456789 0xFD,0x61,0xDB,0xF3,0x67,0xB7,0xBF,0xE1,0xFF,0xF7,0x00 }; //0.1.2.3.4.5.6.7.8.9. main { float SP; Init_Device; //初始化delayms100; P1P1 CMD 0x9103;//设置CH452系统参数toch452CMD; CMD 0x9500; //设置CH452显示参数toch452CMD; display; for i0;i38 { SP340.28/n; vSP*4032; dispbuff[2]v/10000; dispbuff[1]v10000/100010; dispbuff[0]v1000/100; display; } else { for i0;i0x8000 CH452_SDA 1; else CH452_SDA 0; CH452_SCL 1; delayus; CH452_SCL 0; cmda cmda 99999 count0; } nss;//ss送给全局变量n flag1; ss0; } void timer0 interrupt 1 //定时中断(T0)服务{ ifss65535 ss; } void displayvoid//显示程序{ unsigned char i; DAT1 0xA100; for i0;i8;i { DAT DAT1 hex[dispbuff [i]]; toch452DAT; DAT1 DAT1 0x0400; } } void Flash_PageErase unsigned int addr//Flash字节擦除函数{ bit EA_SAVEEA;//保存EA char xdata*data pwrite;//Flash写指针EA0;//禁止中断VDM0CN0x80;//使能VDD控制RSTSRC0x02;//VDD监控器作为复位源pwritechar xdata*addr;//指向地址FLKEY0xA5;//输入关键字FLKEY0xF1;//输入关键字PSCTL|0x03;//使能擦除与写入PSWE1;PSEE1 VDM0CN0x80;//使能VDD监控器RSTSRC0x02;//VDD监控器作为复位源*pwrite0;//页擦除PSCTL//禁止擦除EAEA_SA VE;//恢复中断} void Flash_ByteWrite unsigned int addr,char byte//Flash 字节写函数{ bit EA_SA VEEA;//保存EA char xdata*data pwrite;//Flash 写指针EA0;//禁止中断VDM0CN0x80;//使能VDD监控器RSTSRC0x02;//使能VDD监控器作为复位源pwritechar xdata*addr; FLKEY0xA5;//写关键字FLKEY0xF1;//写关键字PSCTL|0x01;//使能写PSWE1 VDM0CN0x80;//使能VDD监控器RSTSRC0x02;//使能VDD作为复位源*pwritebyte;//写一个字节PSCTL //禁止写PSWE0 EAEA_SAVE;//恢复中断} unsigned char Flash_ByteRead unsigned int addr//Flash 字节读函数{ bit EA_SA VEEA;//保存EA char code*data pread;//指向Flash读指针unsigned char byte; EA0;//禁止中断preadchar code*addr; byte*pread;//读一个字节EAEA_SA VE;//恢复中断return byte; } 3.硬件电路连接图。