自行车测速警报系统设计.doc_第1页
自行车测速警报系统设计.doc_第2页
自行车测速警报系统设计.doc_第3页
自行车测速警报系统设计.doc_第4页
自行车测速警报系统设计.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

嵌入式系统设计题目:自行车测速报警系统设计自行车测速报警系统设计 本设计以AT89C2051为核心,通过霍尔传感器来检测自行车的运转情况进而实现电动自行车的速度,最后用2位的LED能直观的将速度与里程显示给用户,并且在速度高于一定的值时可自动向用户报警,从而达到智能化。主要研究内容:1.传感器电路模块设计光敏电阻对光特别敏感,当白天行驶时,外界光敏电阻对光特别敏感,当黑天行驶时,外界光源导致光敏电阻发出错误信号;光敏电阻对环境的要求相当高,如果光敏电阻或发光二极管被泥沙或灰尘所覆盖,光敏电阻就不能再进行测量;在雾天和雨天光敏电阻的测量的效果也不好。而编码器必须安装在车轴上,这样安装就会给用户带来很多不便。霍尔传感器是对磁敏感的传感元件,是一个3端器件,外形与三极管相似,只要接上电源、地,即可工作,输出通常是集电极开路(OC)门输出,工作电压范围宽,由霍尔元件加整形电路构成的霍尔开关系统,具有输出响应快,数字脉冲性能好,安装方便,性能可靠,不受光线、泥水等因素影响。所以本设计采用霍尔传感器。2.电源电路设计 本系统采用的是MC34063制作的降压变换电源。由于电动车电瓶的电源电压大多是24V,36V,48V等,所以把电瓶电源24V转换为单片机所需要的电压5V。MC34063是一单片双极型线性集成电路,专用于直流-直流变换器控制部分.片内包含有温度补偿带隙基准源、一个占空比周期控制振荡器、驱动器和大电流输出开关,能输出1.5A的开关电流.它能使用最少的外接元件构成开关式升压变换器、降压式变换器和电源反向器。特点:能在3.0-40V的输入电压下工作;短路电流限制;低静态电流;输出开关电流可达1.5A(无外接三极管);输出电压可调工作振荡频率从100HZ到100KHZ。MC34063是一种开关型高效DC/DC变换集成电路。它的内部含有具有温度补偿的基准电压源、比较器、具有限电流电路的占空比可控的振荡器、驱动器和大电流输出开关管。3.存储器电路模块设计 在本设计中用芯片AT24C02.AT24C02的1、2、3脚是三条地址线,用于确定芯片的硬件地址。在AT89C2051试验开发板上它们都接地,第8脚和第4脚分别为正、负电源。第5脚SDA为串行数据输入/输出,数据通过这条双向I2C总线串行传送,在AT89C2051试验开发板上和单片机的P3.5连接。第6脚SCL为串行时钟输入线,在AT89C2051试验开发板上和单片机的P3.6连接。SDA和SCL都需要和正电源间各接一个5.1K的电阻上拉。第7脚需要接地单片机从AT24C02内部的地址向单片机的读出单元字节读出数据,供显示所用。4.报警电路设计 语音报警电路的核心是WTV040语音芯片。当电动车的行使速度达到或超过测速器预设速度时,测速器单片机往外发出一个低电平,直接拉低I/O口P01的电平,使WTV040语音芯片被触发,点亮报警指示进行提示并触发语音进行报警。5. 显示电路设计 显示模块用74HC164驱动数码管显示,数码管,驱动电路等组成显示电路,使用共阳数码管。P3.3-P3.4为数码管的动态扫描位驱动。P1.6,P1.7作数码段码输出。6、程序设计#ifndef _Max7219_H_#define _Max7219_H_#include#include#define uchar unsigned char#define uint unsigned int#define DECODE_MODE 0x09 /译码方式#define INTENSITY 0x0A #define SCAN_LIMIT 0x0B #define SHUT_DOWN 0x0C #define DISPLAY_TEST 0x0D #define delay1us _nop_();#define delay2us delay1us;delay1us;#define delay4us delay2us;delay2us;#define delay5us delay4us;delay1us;#define delay12us delay4us;delay4us;delay4us;sbit din=P20;sbit load=P21;sbit clk=P22;void Max7219_Wr_byte(uchar wrdat);void Max7219_Wr_data(uchar addr,uchar dat);void Init_Max7219(void);void Disp_speed(uint speed);void Disp_set_speed(uint set_speed);/初始化MAX7219void Max7219_Init(void)Max7219_Wr_data(SHUT_DOWN, 0x01); Max7219_Wr_data(DISPLAY_TEST, 0x00); Max7219_Wr_data(DECODE_MODE, 0xff); Max7219_Wr_data(SCAN_LIMIT, 0x07); Max7219_Wr_data(INTENSITY, 0x0a);void Max7219_Wr_byte(uchar wrdat)bit dat;uchar i;for (i=0;i8;i+) clk=0;dat=(bit)(wrdat&0x80);if(dat)din=1;elsedin=0;wrdat=1;clk=1; void Max7219_Wr_data(uchar addr,uchar dat)load=0;Max7219_Wr_byte(addr);Max7219_Wr_byte(dat);load=1;void Disp_speed(uint speed)uchar speed_buf4;uchar i;speed_buf0=speed%10;speed_buf1=speed/10%10|0x80;speed_buf2=speed/100%10;speed_buf3=speed/1000;if(0=speed_buf3)speed_buf3=0x0f;if(0=speed_buf2)speed_buf2=0x0f; for(i=1;i=4;i+)Max7219_Wr_data(i,speed_bufi-1);void Disp_set_speed(uint set_speed)uchar speed_buf4;uchar i;speed_buf0=set_speed%10;speed_buf1=set_speed/10%10|0x80;speed_buf2=set_speed/100%10;speed_buf3=set_speed/1000;if(0=speed_buf3)speed_buf3=0x0f;if(0=speed_buf2)speed_buf2=0x0f; for(i=1;i=4;i+)Max7219_Wr_data(i+4,speed_bufi-1);#endif#include sbit KEY0=P23;sbit KEY1=P24;sbit KEY2=P25;sbit KEY3=P26;sbit SPK=P27;sbit LED_GREEN=P16;sbit LED=P17;uint set_speed;uint speed;uchar sec_cnt;void Init_8051(void);void Delay(uchar time);uint Get_key(void);void Warn_ring(void);void main(void)Init_8051();Max7219_Init();while(1)set_speed=Get_key();Disp_speed(speed);Disp_set_speed(set_speed);Warn_ring();void Delay(uchar time)uchar t1,t2;for(t1=time;t10;t1-)for(t2=248;t20;t2-);/初始化void Init_8051(void)EA=0;TCON=0x00;TMOD=0x51;TL0=0xe0;/定时20msTH0=0xb1;/T1计数13个脉冲TL1=0xf3;TH1=0xff;TR0=1;TR1=1;IE=0x8a;SPK=0;LED=0;LED_GREEN=1;/定时器0函数,定时50*20ms=1svoid Timer0_speed(void) interrupt 1ET0=0;TR0=0;TL0=0xe0;TH0=0xb1;TR0=1;sec_cnt+;ET0=1;/计数中断 计数10次 半径d=20cm/speed=0.2*60*10/sec_cnt*36 km/hvoid Counter_speed(void) interrupt 3 float a=6250;ET1=0;TR1=0;TL1=0xf3;TH1=0xff;TR1=1;speed=4.52*a/sec_cnt;sec_cnt=0;ET1=1;/键盘处理函数uint Get_key(void)staticuint key_value;if(!KEY0)Delay(40);if(!KEY0)while(KEY3)if(!KEY1)Delay(40);if(0=KEY1)while(0=KEY1)Disp_set_speed(key_value);key_value+=10;if(key_value=9999)key_value=0;if(!KEY2)Delay(40);if(0=KEY2)while(0=KEY2)Disp_set_speed(key_value);key_value-=10;if(key_value=0)key_value=9999;return (key_value);/报警函数void Warn_ring(void)if(speed set_speed)LED=1;SPK=0;Delay(1);SPK=1;elseLED=0;7、结论 本设计以AT89C2051为核心,利用单片机的运算和控制功能,并采用系统化LED显示模块实时显示所测速度的设计方案,以及串口数据存储电路和系统软件。实现了电动车速度即时显示,并可通过控制两个按键显示速度或里程。当速度超过限定时就会产生语音报警。 参考文献1谢维成,杨加国单片机原理与应用及C51程序设计M北京:清华大学出版社2 王田苗嵌入式系统设计与实例开发M北京:清华大学出版社3 夏靖波,王航,陈雅蓉嵌入式系统原理与开发M西安:西安电子科技大学出版社4 杨恒ARM嵌入式系统设计与实践M西安:西安电子科技大学出版社5王萍C+面向对象程序设计M北京:清华大学出版社6赵家贵主编.新编传感器电路设计手册.中国计量出版社.2002.97丁杰元主编.单片机微机原理及应用.机械工业出版社 .1998.88沙占友等主编.单片机外围电路设计.电子工业出版社. 2003.1 9张新颖单片机原理与接口技术哈尔滨:黑龙江科学技术出版社,200210杨志忠数字电子技术基础北京:高等教育出版社,200411余发山主编.单片机原理及应用技术.中国矿业大学出版社.2003.12.21-3212董爱华主编.检测与转换技术.中国电力出版社.2007.1213康华光主编.电子技术基础数字部分(第五版).2006.137-153 430-46014Yang. Y., Yi. J., Woo, Y.Y., and Kim. B.: Optimum design for linearity and efficiency of microwave Doherty amplifier using a new l

温馨提示

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

评论

0/150

提交评论