已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机的自行车风火轮设计与制作摘要本课题研究的对象是用单片机控制安装在自行车车轮辐条上的led动态显示,使其能呈现出各种有趣的风火轮发光图像。这会让我们的自行车在夜晚更加炫目有个性,而且提高夜晚骑车的安全性。电路系统以avr单片机为核心,霍尔开关产生的电平为信号源,测算出车轮转动一圈所需时间,从而分时段控制led的发亮。本文首先介绍本系统所需要的两个芯片atmega8和74hc595,阐述了其的功能结构及其应用。然后介绍本设计的总体方案并附上基本原理图,并且对单片机和接口设计和各自工作原理进行详细说明。最后谈到该系统的软件设计并附上程序。关键词:风火轮,霍尔开关,74HC595,单片机Design of Hot Wheels based on Avr MCU AbstractThe object of this research is SCM so that it led to a dynamic display showing a variety of common images, its application will enable us to more of a bike at night there are dazzling personality, but also to improve the safety of night riding. The system is single-chip microcomputer as the core avr Hall switch for the signal source of the response, measured around the time required for the rotation of the wheels, which led at times to control the display. This paper first introduces the system required two chips atmega8 and 74hc595, described the function of its structure and its application. And then introduce the design of the overall program with the basic principles of map, and single-chip microcomputer and interface design and principle of their work in detail. Finally, on the system with the software design process.Keyword: feng huo lun ,Hall switch , 74hc595 ,scm 目录摘要1英文摘要1第一章 绪论3 1.1 本课题的目的及研究意义 3 1.2 本课题的应解决的主要问题3 1.3 本章小结3第二章 风火轮系统概述4 2.1 风火轮系统功能需求4 2.2 风火轮结构设计42.3 本章小结4第三章 系统模块设计53.1 主要元器件介绍53.1.1 atmega8: avr单片机53.1.2 74hc595: 32位串行led显示驱动器63.2 各模块组成设计73.2.1感应电路设计83.2.2 信号处理电路83.2.3 32位led驱动模块8第三章 软件设计9第一章 绪论1.1 本课题的目的及研究意义数字电路产品在生活中有着极其广泛的应用,包括计算机、数字通信、智能仪器仪表、自动控制及航天等领域。这些给人们生活,工作等方面带来了极大的方便。风火轮是一种非常有用的创新设计,我国是自行车大国,漆黑的夜晚我们骑车往往不是很安全,后方行人往往不太容易察觉,但这项设计很大的解决了这个问题,有了它夜晚我们的自行车会发出亮光,会让别的行人注意,从而减少事故。并且风火轮绚丽的图案,会使我们的生活更有乐趣。本课题包含了感应电路,数码管驱动电路,单片机程序下载电路,控制电路等四个部分的设计。通过对四个部分的设计,要求实现风火轮的基本功能。其中单片机中集成了定时,中断电路。此次研究旨在对自己专业知识的掌握程度进行检验,加强解决电子方面常见实际问题的能力,掌握一般电子电路设计方法与设计步骤,积累实际电子制作经验,实现向更复杂更实用的应用领域的过渡。目的在于巩固基础、注重设计、培养技能、追求创新、走向实用。1.2 本课题的应解决的主要问题本课题研究通过单片机等集成电路实现led动态显示。在设计过程中需要解决的主要问题有:第一:如何让LED在特定的时间点亮,从而组成图案第二:图像点阵取样第三:不需要使用时,风火轮如何休眠。1.3 本章小结本章说明了课题的研究意义、研究目的、应解决的主要问题等各方面的内容。从宏观角度对本次毕业设计的背景、目的、内容、思路等进行了阐述。 第二章 风火轮系统概述2.1风火轮系统功能需求本课题研究的对象是led动态显示系统,该系统以avr单片机为核心,通过读取霍尔开关捕捉车轮每转一周的电平跳变,用timer0计算出这个时间。用这个时间的 1/256 做为每条显示射线的持续时间,由timer1控制输出。再经74hc595,从而驱动数码管。其大致结构图如下:2.2 风火轮结构设计车轮转动感应电路信号处理电路发光二极管驱动电路显示装置电路 处理器程序下载,电源控制电路风火轮结构框图将系统的功能需求结构化后,不难发现,整体的设计思路及方向更加明确,整个系统主要可划分为三个模块:(1)感应模块-进行车轮的转圈所需时间的测定,并转成电信号给信号处理器(2)信号处理模块- 包含定时计数器,外部中断电路,休眠模式(3)LED驱动模块-接收处理器传来的信号,驱动串联的LED2.3 本章小结本章主要阐述了风火轮的基本工作原理和系统的功能需求,并对系统的结构进行了阐述。在说明系统功能需求的过程中,详细叙述了系统所需实现的基本功能,使得整个设计清晰明了。第三章 系统模块设计3.1 芯片介绍3.1.1 atmega8: avr单片机Atmega8 是atmel公司在2002年第一季度推出的一款新型avr高档单片机。芯片内部集成了较大容量的存储器和丰富强大的硬件接口电路,采用小引脚封装(本系统采用的是MLF32),相比先前的单片机,有着更多的接口,更好的省电性,抗干扰性和稳定性,而且价格便宜,在应用市场极具竞争力。主要性能如下:高性能的、低功耗的8位avr微控制器,先进的RISC精简指令集结构较大容量非易失性程序和数据存储器以及存储器强大的外部接口性能特殊的微控制器性能I/O口和封装(32脚mlf封装)宽工作电压(4.5V)高运行速度(08MHZ)低功耗(4MHZ,3V, 25)1.1.2 管脚及内部结构1.1.3 管脚封装参见图11.1.4 内部结构参见图2 (图1)Atmega8芯片引脚图 (图2)Atmega8单片机系统结构图Atmega8的外部管脚定义如下:VCC电源正(数字):4.5VGND 电源地信号处理模块主要部分3.1.2 74hc595: 32位串行led显示驱动器74hc595特点如下:8位串行输入8位串行或并行输出存储状态寄存器,三种状态输出寄存器可以直接清除100MHz的移位频率输出能力:并行输出,总线驱动串行输出;标准中等规模集成电路串行到并行的数据转换74hc595引脚图表 74hc595的引脚功能符号引脚描述Q0Q715,1,2,3,4,5,6,7并行数据输出GND8地Q79串行数据输出MR10主复位(低电平)SHCP11移位寄存器时钟输入STCP12存储寄存器时钟输入OE13输出有效(低电平)DS14串行数据输入VCC16电源3.2 各模块组成设计3.2.1感应电路设计感应电路是整个系统的信号源,我选用的是霍尔开关,车轮每转一圈,就会产生一个下降沿沿波形,由此波形处理器判断时间。3.2.2 信号处理电路程序下载时,AVR处于SPI从机方式,接口总线时钟SCK,MOSI为从机数据输入,MOSO为从机数据为输出。PB6系统复位引脚,TXD为USART总线的数据输出口,RXD为USART总线的数据输出口。AVR为主机方式时,MOS0为主机数据输入。单片机有两个外部中断INTO,INT1,INT0用于按键检测,长按键大于3s,系统即处于休眠状态,INT1霍尔传感器触发(下降沿)。还用到了Atmega8内部集成的定时器计数器T0,T/C1. T0所选时钟经256分频,一旦TCNT0的计数值与OCRA1的数据相等,T/C1中断。促发LED驱动模块。3.2.3 32位led驱动模块74HC595端口9串接下一595的SER端口,公用CLK,RCLK。四片595串接组成32LED驱动模块。3.3 本章小结本章介绍了抢答器中使用到的主要元器件的管脚图、功能表,着重介绍了三个模块(感应电炉、信号处理、驱动电路)的设计和工作过程,使得整个风火轮系设计理念和工作过程很清晰呈现了出来。 风火轮原理图第三章 软件设计编译软件WINAVR ,经编译获得 hex文件,PROGISP烧录FLASH编译程序如下:#include #include #include #include #include #include #include /*-* * 主时钟 * *-*/#ifndef F_CPU#define F_CPU 8000000 / 8MHz#endif/*-* * 宏定义 * *-*/#define NUM_LEDS 32 / 单面LED数据#define NUM_PIXELS 256 / 像素数256 (刚好一个字节)#define PIC_MODE1 / 图像模式 1:数据存在FLASH / 1/4:数据存在EE 512byte#define HALL_DEBOUNCE 4 / 400us#define STANDBY_TIMEOUT 50000/ 50000100us = 5s#define BUTTON_DEBOUNCE 10/ 100ms#define POWEROFF_TIMEOUT 200/ 约3s/*-* * 按键入口 * *-*/#define KEY_PRESED !(PIND&_BV(PD2)/*-* *霍尔传感电源控制* *-*/#define HALL_ONPORTD|= _BV(PD6)#define HALL_OFF PORTD&=_BV(PD6)/*-* * 74HC595引脚 * *-*/#define SET_SER PORTB|= _BV(PB4)/ 数据-74HC595 14# #define CLR_SER PORTB&=_BV(PB4)#define SET_SCLK PORTB|= _BV(PB5)/ 移位时钟-74HC595 11# #define CLR_SCLK PORTB&=_BV(PB5)#define SET_RCLK PORTD|= _BV(PD4)/ 移位时钟-74HC595 11# #define CLR_RCLK PORTD&=_BV(PD4)/*-* * 变量定义 * *-*/unsigned char tHall;/ 霍尔传感器检测时间 unsigned int tLap; / 轮子转一圈所用时间存放变量 unsigned long leds;/ LED对应缓存unsigned int offset;/ 数据读取索引#if PIC_MODE = 1const unsigned char picNUM_PIXELS*PIC_MODE*4;/ flash图像数据#endif/*-* * 函数声名 * *-*/void ctrl595_out(unsigned long ); /*-* * 端口初始化 * *-*/void port_init(void)PORTB = 0xFF;DDRB = 0x38; PORTC = 0x7F; /m103 output only DDRC = 0x00; PORTD = 0xBF; DDRD = 0x52;/*-* * T0设置 * * - * * TIMER0 initialize - prescale:256 * * WGM: Normal* * desired value: 100uSec* * actual value: 96.000uSec (4.0%) * *-*/void timer0_init(void) TCCR0 = 0x00; / stop TCNT0 = 0x00; / set count TCCR0 = 0x04; / start timer/*-* * T/C1设置 * * - * * TIMER1 initialize - prescale:1 * * WGM: 4) CTC, TOP=OCRnA * * desired value: 100uSec * * actual value: 99.962uSec (0.0%) * *-*/void timer1_init(void) TCCR1B = 0x00; / stop TCNT1H = 0x00 /*INVALID SETTING*/; /setup TCNT1L = 0x00 /*INVALID SETTING*/; OCR1AH = 0x00 /*INVALID SETTING*/; OCR1AL = 0x00 /*INVALID SETTING*/; OCR1BH = 0x00 /*INVALID SETTING*/; OCR1BL = 0x00 /*INVALID SETTING*/; ICR1H = 0x00 /*INVALID SETTING*/; ICR1L = 0x00 /*INVALID SETTING*/; TCCR1A = 0x00; TCCR1B = 0x00; / stop Timer/*-* * T0 100u定时中断 * *-*/SIGNAL (TIMER0_OVF_vect) TCNT0 = 0x00; / reload counter valueif (tHall != 0xff) tHall+; if (tLap != 0xffff) tLap+;/*-* *T/C1 CTC(比较匹配时清零定时器)模式 * * - * * 数器数值TCNT0一直累加到TCNT0与OCR0A匹配,然后 * * TCNT0 清零.产生此中断 * *-*/SIGNAL (TIMER1_COMPA_vect) if (tLap STANDBY_TIMEOUT) / 转一圈地时间小于5S才显示 #if PIC_MODE = 1leds=(long)pgm_read_byte(pic+offset+3)24)|(long)pgm_read_byte(pic+offset+2)16) |(long)pgm_read_byte(pic+offset+1) 8)| pgm_read_byte(pic+offset+0);#elseeeprom_read_block(&leds,(void *)(offset % (NUM_PIXELS*PIC_MODE*4),sizeof(leds);#endif ctrl595_out(leds);/ 将显示数据送出/* 关中断,确保在同一时间其它中断打断写入此地址 */ cli();if(offset250)tKey = 250; if (tKey BUTTON_DEBOUNCE) / 100ms if (tKey HALL_DEBOUNCE) / 软抗骚扰,防止误触发/* 我们知道最后一次霍尔传感器触发后的毫秒数,以及每次扫描有256条射线状“像素” 以便分别在每个像素间断期间取得必要的毫秒数,现在仅仅使得定时器1处于那个比率,也就是T/C1中断时间是T0的256之1,T0所选时钟256分频,则T/C1所选时时钟不分频*/ TCNT1H = 0x00; TCNT1L = 0x00;/ timer1计数值清0 if (tLap 0x3) / 时间太短太长都不处理 OCR1AH = tLap;OCR1AL = TCNT0;/ 输出比较寄存器赋值TCNT0 = 0;/ T0计数值清零#if PIC_MODE = 1 offset = 0;#else offset = 1;/ 取出源数据存放地址,EE地址0空出未用#endif TCCR1B = 0x09; / 开始T/C1 else ctrl595_out(1); TCCR1B = 0x00; / 停止T/C1 tLap = 0; elsectrl595_out(1); tHall = 0;sei();/*-* * 595输出控制 * *-*/void ctrl595_out(unsigned long dat) unsigned char i; for (i=0;i=1; / _ SET_SCLK;/ _ 移位时钟上升沿,数据进入移位寄存器 CLR_RCLK; asm(nop); asm(nop); asm(nop); asm(nop);/ _ SET_RCLK;/ _ 锁存电平上升沿,数据输出到并行端口 /*-* * 初始化配置 * *-*/void init_devices(void) cli(); /disable all interrupts port_init(); wdt_enable(WDTO_500MS); timer0_init(); timer1_init(); MCUCR = 0x08; INT0的低电平产生中断请求 GICR = 0xC0; INT1的下降沿产生一个中断请求 TIMSK = 0x11; /timer interrupt sources 执行T/C0溢出中断请求 sei(); /re-enable interrupts/*-* * 主程序 * *-*/int main(void) init_devices();#if PIC_MODE = 1 offset = 0;#else offset = 1;/ EE地址0空出未用#endif tLap = 0;tHall = 0xff;HALL_ON;/ 打开霍尔传感器leds=1;ctrl595_out(1);while(1)wdt_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电商企业产品描述翻译协议
- 市场调查公司租赁合同
- 保险公司水磨石地面安装合同
- 仪器租用合同:舞台特效设备
- 城市供气工程土建施工合同范本
- 水产养殖水产品存储与配送制度
- 苗木种植项目合作合同
- 康复医院医生聘用合同样本
- 野生动物园山坡租赁合同
- 医院捐赠物资使用规范
- 延安整风与马克思主义中国化
- 我国陆军专业知识讲座
- 煤矿机电运输安全培训课件
- 货车安全隐患排查表
- 学前教育职业规划书
- 教师专业成长概述教师专业发展途径PPT培训课件
- 球磨机安装专项施工方案
- 2023年山东省港口集团有限公司招聘笔试题库及答案解析
- GB/T 25217.10-2019冲击地压测定、监测与防治方法第10部分:煤层钻孔卸压防治方法
- GB/T 20284-2006建筑材料或制品的单体燃烧试验
- GB/T 15604-2008粉尘防爆术语
评论
0/150
提交评论