智能小车的发展背景论文12163_第1页
智能小车的发展背景论文12163_第2页
智能小车的发展背景论文12163_第3页
智能小车的发展背景论文12163_第4页
智能小车的发展背景论文12163_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

1、第1章 绪 论1.1智能小车的发展背景自第一台工业机器人诞生以来,机器人的民展已经遍及机械、电子、冶金、交通、宇航、国防等领域。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人工作的机器一直是人类的梦想。其中智能小车可以作为机器人的典型代表。其需要实现自动导引功能和避障功能就必须要感知导引线和障碍物,实现自动识别路线,选择正确的行进路线,使用传感器感知路线并作出判断和相应的执行动作。智能小车设计与开发涉及控制、模式识别、传感技术、汽车电子、电气、计算机、机械等多个学科。它可以分为三大部分:传感器检测部分,执行部分,cpu。现智

2、能小车发展很快,从智能玩具到各行业都有实质成果,其基本可实现循迹、避障、检测贴片,寻光入库、避崖等基本功能,有向声控系统发展的趋势。比较出名的飞思卡尔智能小车更是走在前列,我们此次的设计主要实现循迹这一个功能。开展自主寻迹智能小车的研究工作,正适合机电一体化专业,制作智能小车为机电一体化专业学科的学生学习和掌握机电一体化技术有很大的帮助,对机电一体化专业学科的学生进一步巩固已学知识加深已学知识起到促进作用,引导和激励学生实事求是、刻苦钻研、勇于创新、多出成果、提高素质,发现和培养一批在学术科技上有作为、有潜力的优秀人才。 我们从来没接触过智能小车方面的知识,这对于我们来说是一个巨大挑战,整个研

3、究的过程,我们都是摸着石头过河的。由于知识和经验的缺乏,我们经常会遭到失败,有时一个小小的因素,就会影响到设计,所以我们的步伐前进得很慢。研究的进程大概可能分为:资料收集及整理阶段、硬件制作阶段和调试阶段。公欲善其事,必先利其器,在做每件事之前都要先经过思考,我们在制作之前会先从网上、书上及请教老师来收集资料,把资料经整理理解透了之后,做出设计。接着就是制作硬件,工具和电子元件都需要购买,途径可以是网购或是商店,由于设计不是完美的,我们不能做到一次就把需要的元件都列出来,一次性购买,所以我们分了好几次去商店买元件;因为方案没有最终确定,若是直接焊接电路板,设计如果不成功,整个电路板就没用了,这

4、样就增加了制作的成本,所以我们需要用面包板制作硬件,在调试阶段完成最终确立设计之后,我们才做出电路板。调试阶段就是要测试设计是否成功、合理,当然经常会失败,但我们要在每次的失败中吸取经验、改正错误,取得最后的成功。整个过程是漫长的,但我们在无数的挫败之后终于成功制作出了智能小车第二章 系统设计2.1 智能小车的工作原理本次智能小车的工作原理,正如现在工厂中用的变频器一样,把小车的每个轮子的动力机构,也就电动机,把它做成一个闭环的系统,让每个电动机的转速恒定,无论哪些影响它的因素改变,它的输出转速依然恒定,如小车爬坡和小车下坡,让它们的速度时刻匀速,电机的工作采用pwm脉冲调制,让它的速度可控,

5、适应我们的转速要求,如小的平滑启动,小车的加速超车,采用两三个单片机做数据处理,第个电机用一个单片机做它的数据处理,在用第三个单片机做总数据发送,采用三个单片机的多机通信模式实现数据的交换,让两个从机做为电机的驱动部分,这样做出来的小车平台就可以在使用中更佳灵活与轻便,电机采用通电机主轴转速,让它的主控单片机计数,采用100ms抽样,这样就可以把电机的转速确定出来,一但电机转速不足于预设值时,马上经过算法去增加pwm值,让电机升速,直到电机转速达到要求为止,保留当前pwm值,如果电机转速过高,电机这时处于发电状态,马上经过算法去减小pwm值,让电机减速,直到电机转速达到要求为止。2.2 研究方

6、案的选择与内容2.2.1 电机计数传感器选择方案一:光电码盘 采用光电对管,利用它的对射原理,在直流电动机的主轴上加上一个圆盘,在圆盘的表面上均匀的加上不同的格子,在把这些格子间隔性的涂上黑色和白色,这样对于光电对管发出来的红外光就会有不同的反光率,在光电对管上在配备上电压比较模块,这样就可以很清晰表现出一上高低电平,也就是我们想要的数字电压信号,正好有利于单片机的信号采集。但是这种方案有一种弊端,就是两个直流电动机是一个很大的功率器件,它的启动和动转都会对电网的电压造成一定的波动。正是这上波动很容易造成处理器工作不稳定,容易出现死机或者是计数不准确的现象。方案二:磁传感霍尔传感器采用磁传感霍

7、尔传感器,它的外围电路设计简单,工作可靠,在电机主轴上粘上一个或多个强磁铁,磁铁越多计数也就越精确,当有强磁从霍尔元件的表面划过时,霍尔元件就会产生一个高电平,霍尔元件实际上是一个开关量,它的输出引脚上只有高电平,或者是低电平,它不会出现高阻状态,这样输出的信号可靠稳定。它就是本身的价格要贵些,但是它的工作可靠性还是值得考虑的。2.2.2 控制器的选择方案一: avr单片机高可靠性、功能强、高速度、低功耗和低价位 , 一直是衡量单片机性能的重要指标,也是单片机占领市场、赖以生存的必要条件。 avr单片机废除了机器周期,抛弃复杂指令计算机(cisc)追求指令完备的做法;采用精简指 令集,以字作为

8、指令长度单位,将内容丰富的操作数与操作码安排在一字之中(指令集中占大多数的单周期指令都是如此),取指周期短,又可预取指令,实现流水作业,故可高速执行指令。当然这种速度上的升跃,是以高可靠性为其后盾的。 avr单片机硬件结构采取8位机与16位机的折中策略,即采用局部寄存器存堆(32个寄存器文件)和单体高速输入/输出的方案(即输入捕获寄存器、输出比较匹配寄存器及相应控制逻辑)。提高了指令执行速度(1mips/mhz),克服了瓶颈现象,增强了功能;同时又减少了对外设管理的开销,相对简化了硬件结构,降低了成本。avr单片机内嵌高质量的flash程序存储器,擦写方便,支持isp和iap,便于产品的调试、

9、开发、生产、更新。内嵌长寿命的 eeprom可长期保存关键数据,避免断电丢失。avr单片机的i/o线全部带可设置的上拉电阻、可单独设定为输入/输出、可设定(初始)高阻输入、驱动能力强(可省去功率驱动器件)等特性,使的得i/o口资源灵活、功能强大、可充分利用。 avr单片机片内具备多种独立的时钟分频器,分别供urat、i2c、spi使用。其中与8/16位定时器配合的具有多达10 位的预分频器可通过软件设定分频系数提供多种档次的定时时间。 avr单片机有自动上电复位电路、独立的看门狗电路、低电压检测电bod,多个复位源(自动上下电复位、外部复位、看门狗复位、bod复位),可设置的启动后延时运行程序

10、,增强了嵌入式系统的可靠性。 avr单片机具有多种省电休眠模式,且可宽电压运行(5-2.7v),抗干扰能力强,可降低一般8位机中的软件抗干扰设计工作量和硬件的使用量。 方案二:at89s51单片机at89s51是一个低功耗,高性能cmos 8位单片机,片内含4k bytes isp(in-system programmable)的可反复擦写1000次的flash只读程序存储器,器件采用atmel公司的高密度、非易失性存储技术制造,兼容标准mcs-51指令系统及80c51引脚结构,芯片内集成了通用8位中央处理器和isp flash存储单元,功能强大的微型计算机的at89s51可为许多嵌入式控制应

11、用系统提供高性价比的解决方案。at89s51具有如下特点:40个引脚,4k bytes flash片内程序存储器,128bytes的随机存取数据存储器(ram),32个外部双向输入/输出(i/o)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(wdt)电路,片内时钟振荡器。at89s51设计和配置了振荡频率可为0hz并可通过软件设置省电模式。空闲模式下,cpu暂停工作,而ram定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存ram的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有pdip、tqfp和plcc等三种封

12、装形式,以适应不同产品的需求。 采用方案二。由于本系统电路简单,不需要更多的i/o口资源,at89s51单片机已经能完全胜任,并且对at89s51单片机熟悉,用起来得心应手,综合各方面利弊,所以选则方案二。2.2.3电机驱动模块选择方案一: 采用电阻网络或数字电位器调整电动机的分压,从而达到调速的目的。但是电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更重要的问题在于一般电动机的电阻很小,但电流很大,分压不仅降低效率,而且实现起来很困难。方案二: 采用继电器对电动机的开或关进行控制,通过开关的切换对电机的转速的调整。此方案的优点是电路比较简单,缺点是继电器的响应时间慢,机械结构易损

13、坏,可靠性不好。方案三:采用有达林顿管组成的h型pwm电路。具体采用电机专用驱动芯片l298n。用单片机控制达林顿管使之工作在占空比可调的开关状态,精确调整电机的转速。这种电路由于工作在管子的饱和截止模式下,效率非常高,h型电路保证了可以简单地实现转速和方向的控制,稳定性极强,是一种被广泛采用的pwm 调速技术,承受负载能力大。采用专用电机驱动芯片l298n,控制方便。2.2.4显示模块的选择方案一:led静态显示模块 该显示驱动电路具有输出锁存功能,单片机将要显示的数据送出后就不再控制led,直到下一次显示时再传送一次新的数据。只要当前显示的数据没有变化,就无须理睬数码显示管。静态显示的数据

14、稳定,占用的cpu时间少。静态显示中,每一个显示器都要占用单独具有琐存功能的i/o口,该接口用于笔画段字型代码。这样单片机只要把显示的字型数据代码发送到接口电路,该字段就可以显示要发送的字型。要显示新的数据时,单片机再发送新的字型码。 方案二:lcd显示模块 lcd为平面超薄的显示设备,它由一定数量的彩色或黑白像素组成,放置于光源或者反射面前方。液晶显示器功耗很低,适用于使用低耗的电子设备。它的主要原理是以电流刺激液晶分子产生点、线、面配合背部灯管构成画面。并且该设备机身薄,节省空间,省电,不产生高温,完全无辐射,有益健康,画面柔和不伤眼。采用方案二,led显示画面单一,不具有视觉表现力,而l

15、cd可视性好,画面可以根据具体要求改变,直观方便的将所要现实的数据显示出来。功耗低更适于本系统的要求。第3章 硬件系统设计与实现3.1 硬件系统概述3.2 控制器电路设计3.2.1 at89s51系列基本组成及特性at89s51是一种带4k字节闪烁可编程可擦除只读存储(fperomfalsh programmable and erasable read only memory)的低电压,高性能cmos8位微处理器,俗称单片机。而在众多的51系列单片机中,要算 atmel 公司的at89c51更实用,也是一种高效微控制器,因为它不但和8051指令、管脚完全兼容,而且其片内的4k程序存储器是fla

16、sh工艺的,这种工艺的存储器,用户可以用电的方式达到瞬间擦除、改写。而这种单片机对开发设备的要求很低,开发时间也大大缩短。 at89s51基本功能描述如下:at89s51是一种低损耗、高性能、cmos八位微处理器,而且在其片种还有4k字节的在线可重复编程快擦快写程序存储器,能重复写入擦除1000次,数据保存时间为十年。它与mcs-51系列单片机在指令系统和引脚上完全兼容,不仅可完全代替mcs-51系列单片机,而且能使系统具有许多mcs-51系列产品没有的功能。at89s51可构成真正的单片机最小应用系统,缩小系统体积, 增加系统的可靠性,降低了系统成本。只要程序长度小于4k, 四个i/o口全部

17、提供给用户。可用5v电压编程,而且写入时间仅10毫秒, 仅为8751/87c51 的擦除时间的百分之一,与8751/87c51的12v电压擦写相比, 不易损坏器件, 没有两种电源的要求,改写时不拔下芯片,适合许多嵌入式控制领域。at89s51 芯片提供三级程序存储器锁定加密, 提供了方便灵活而可靠的硬加密手段, 能完全保证程序或系统不被仿制。另外,at89s51 还具有mcs-51系列单片机的所有优点。1288 位内部ram, 32 位双向输入输出线, 两个十六位定时器/计时器, 5个中断源, 两级中断优先级, 一个全双工异步串行口及时钟发生器等。at89s51有间歇、掉电两种工作模式。间歇模

18、式是由软件来设置的, 当外围器件仍然处于工作状态时, cpu可根据工作情况适时地进入睡眠状态, 内部ram和所有特殊的寄存器值将保持不变。这种状态可被任何一个中断所终止或通过硬件复位。掉电模式是vcc电压低于电源下限, 当振荡器停止振动时, cpu 停止执行指令。该芯片内ram和特殊功能寄存器值保持不变, 一直到掉电模式被终止。只有vcc电压恢复到正常工作范围而且在振荡器稳定振荡后,通过硬件复位、掉电模式可被终止。3.2.2 at89s51系列引脚功能at89s51有40引脚双列直插(dip)形式。其与80c51引脚结构基本相同,其逻辑引脚图如图2-1。图3.12 at89s51逻辑引脚图各引

19、脚功能叙述如下:1电源和晶振vcc运行和程序校验时加+5vgnd接地xtal1输入到振荡器的反向放大器xtal2反向放大器的输出,输入到内部时钟发生器(当使用外部振荡器时,xtal1接地,xtal2接收振荡器信号)rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale

20、脉冲。如想禁止ale的输出可在sfr8eh地址上置0。此时, ale只有在执行movx,movc指令是ale才起作用。另外,该引脚被略微拉高。2i/o(4个口,32根)p0口8位、漏极开路的双向i/o口。当使用片外存储器(rom、ram)时,作地址和数据分时复用。在程序校验期间,输出指令字节(需加外部上拉电路)。p0口(作为总线时)能驱动8个lsttl负载。p1口8位、准双向i/o口。在编程/校验期间,用于输入低位字节地址。p1口可驱动4个lsttl负载。对于80c51,p1.0t2,是定时器的计数端且位输入;p1.1t2ex,是定时器的外部输入端。这时,读两个特殊输入引脚的输出锁存器应由程序

21、置1。p2口8位、准双向i/o口。当使用片外存储器(rom及ram)时,输出高8位地址。在编程/校验期间,接收高位字节地址。p2口可以驱动4个lsttl负载。p3口8位、准双向i/o口,具有内部上拉电路。p3口提供各种替代功能。在提供这些功能时,其输出锁存器应由程序置1。p3口可以输入/输出4个lsttl负载。3串行口p3.0rxd(串行输入口),输入。p3.1txd(串行输出口),输出。4中断p3.2int0外部中断0,输入。p3.3int1外部中断1,输入。5定时器/计数器p3.4t0定时器/计数器0的外部输入,输入。p3.5t1定时器/计数器1的外部输入,输入。6数据存储器选通p3.6w

22、r低电平有效,输出,片外存储器写选通。p3.7rd低电平有效,输出,片外存储器读选通。7控制线(共4根)输入:rst复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。ea/vpp片外程序存储器访问允许信号,低电平有效。在编程时,其上施加21v的编程电压。注意:在加密方式1时,ea将内部锁定为reset;当ea端保持高电平时,此间内部程序存储器。在flash编程期间,此引脚也用于施加12v编程电源(vpp)。输入、输出:ale/prog地址锁存允许信号,输出。ale以1/6的振荡频率稳定速率输出,可用作对外输出的时钟或用于定时。在eprom编程期间,作输入,输入编程脉冲(pr

23、og)。ale可以驱动8个lsttl负载。当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。注意:每当用作外部数据存储器时,将跳过一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上置0。此时, ale只有在执行movx,movc指令是ale才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale禁止,置位无效。输出:psen片外程序存储器选通信号,低电平有效。在从片外程序存储器取址期间,在每个机器

24、周期中,当psen有效时,程序存储器的内容被送上p0口(数据总线)。psen可以驱动8个lsttl负载。3.2.3 at89s51系列单片机的功能单元1并行i/o接口:单片机芯片内有一项主要功能就是并行i/o口。51系列共有4个8位的并行i/o口,分别记作p0、p1、p2、p3每个口都包含一个锁存器,一个输出驱动器和输入缓冲器。实际上,它们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。在访问片外扩展存储器时,低八位地址和数据由p0口分时传送,高八位地址由p2口传送。2定时器/计数器定时器/计数器(timer/counter)是单片机中的重要部件,其工作方式灵活、编程简单,使用它对减轻c

25、pu的负担和简化外围电路都大有好处。s51系列包含有两个16位的可编程定时器/计数器分别称为定时器/计数器t0和定时器/计数器t1;在s51部分产品中,还包含有一个用做看门狗的8位定时器。定时器/计数器的核心是一个加1计数引脚上施加器,其基本功能是加1功能。在单片机的定时器t0或t1中,有一个定时器发生由0到1的跳变时,计数器增1,即为计数功能;在单片机内部对机器周期或其分频进行计数,从而得到定时,这就是定时功能。在单片机中,定时功能和计数功能的设定和控制都是通过软件来进行的。定时器/计数器内部结构及其原理:由定时器0、定时器1、定时器方式寄存器tmod和定时器控制寄存器tcon组成。当定时器

26、/计数器设置为定时工作方式时,计数器对内部机器周期计数,每过一个机器周期,计数器加1,直至计满溢出。定时器的定时时间与系统的振荡频率紧密相关,因为c51系列单片机的一个机器周期由12个振荡脉冲组成,所以,计数频率fc=fosc/12。如果单片机系统采用12mhz晶振,则计数周期为: (3-6) 这是最短的定时周期,适当选择定时器的初值可获取各种定时时间。当定时器/计数器设置为计数工作方式时,计数器对来自输入引脚t0(p3.4)和t1(p3.5)的外部信号计数,外部脉冲的下降沿将触发计数。在每个机器周期的s5p2期间采样引脚输入电平,若前一个机器周期采样值为1,后一个机器周期采样值为0,则计数器

27、加1。新的计数值是在检测到输入引脚电平发生1到0的负跳变后,于下一个机器周期的s3p1期间装入计数器中的,可见,检测一个由1到0的负跳变需要两个机器周期,所以最高检测频率为振荡频率的1/24。计数器对外部输入信号的占空比没有特别的限制,但必须保证输入信号的高电平与低电平的持续时间在一个机器周期以上。3振荡器xtal1和xtal2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,xtal2应不接。当输入至内部时钟信号时要通过一个二分频触发器,而对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。4中断系统中断系统

28、是单片机的重要组成部分。实时控制、故障自动处理、单片机与外围设备间的数据传送往往采用中断系统。中断系统大大提高了系统的效率。s51系统有关中断的寄存器有4个,分别为中断源寄存器tcon和scon、中断允许控制寄存器ie和中断优先级控制寄存器ip;中断源有5个,分别为外部中断0请求int0、外部中断1请求int1、定时器0溢出中断请求tf0、定时器1溢出中断请求tf1和串行中断请求r1或t1。5个中断源的排列顺序由中断优先级控制寄存器ip和顺序查询逻辑电路共同决定,5个中断源分别对应5个固定的中断入口地址。中断的特点是分时操作,实时处理和故障处理。 简单介绍一下本次设计所需的单片机芯片at89s

29、51的中断系统中要用到的中断类型。(1) 外部中断源at89s51有int0和int1两条外部中断请求输入线,用于输入两个外部中断源的中断请求信号,并允许外部中断源以低电平或负边沿两种中断触发方式来输入中断请求信号。at89s51究竟工作于哪种中断触发方式,可由用户对定时器控制寄存器tcon中it0和it1位状态的设定来选取。at89s51在每个机器周期的s5p2时对int0、线上中断请求信号进行一次检测,检测方式和中断触发方式的选取有关。若at89s51设定为电平触发方式(it0=0或it1=0),则cpu检测到int0、int1上低电平时就可认定其上中断请求有效;若设定为边沿触发方式(it

30、0=1或it1=1),则cpu需要两次检测int0、int1线上电平方能确定其上中断请求是否有效,即前一次检测为高电平和后一次检测为低电平时中断请求才有效。(2) 定时器溢出中断源定时器溢出中断由at89s51内部定时器分的中断源产生,故它们属于内部中断。at89s51内部有两个16位定时器/计数器,受内部定时脉冲(主脉冲经12分频后)或t0/t1引脚上输入的外部定时脉冲计数。定时器t0/t1在定时脉冲作用下从全“1”变成全“0”时可以自动向cpu提出溢出中断请求,以表明定时器t0或t1的定时时间已到。 (3) 串行口中断源串行口中断由at89s51内部串行口的中断源产生,也是一种内部中断。串

31、行口中断分为串行口发送中断和串行口接收中断两种。在串行口进行发送/接收数据时,每当串行口发送/接收完一组串行数据时串行口电路自动使串行口控制寄存器scon中的ri或ti中断标志位置位,并自动向cpu发出串行口中断请求,cpu响应串行口中断后便立即转入串行口中断服务程序执行。因此,只要在串行口中断服务程序中安排一段对scon中ri和ti中断标志位状态的判断程序,便可区分串行口发生了接收中断请求还是发送中断请求。(4) 中断标志at89s51在s5p2时检测(或接收)外部(内部)中断源发来的中断请求信号后先使相应中断标志位置位,然后便在下个机器周期检测这些中断标志位状态,以决定是否响应该中断。3.

32、3 显示电路设计 本系统采用lcd作为系统的显示。nokia3110 lcd是一种内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;pcd8544 是一块低功耗的cmos lcd 控制驱动器,设计为驱动48 行84 列的图形显示。所有必须的显示功能集成在一块芯片上,包括lcd 电压及偏置电压发生器,只须很少外部元件且功耗小。pcd8544 与微控制器的接口使用串行总线。pcd8544 采用cmos 工艺。lcd基本特性:单芯片lcd 控制/驱动48 行,84 列输出显示数据ram 48*84 位芯片集成:lcd 电压发生器(也可以使用外部电压供应)lcd偏置电压发生器振荡器不需要外接元

33、件(也可以使用外部时钟)外部res(复位)输入引脚串行界面最高4.0mbits/scmos 兼容输入混合速率:48逻辑电压范围vdd 到vss:2.7v3.3v显示电压范围vlcd 到vss:6.08.5v lcd内部电压发生器(充许电压发生器)6.09.0v lcd 外部电压供应(电压发生器关闭)低功耗,适用于电池供电系统关于vlcd 的温度补偿使用温度范围:-2570本设计的lcd与单片机的接口电路图3.13 lcd与单片机的接口电路3.4 按键电路设计按键的设计是单片机系统设计中重要的一个模块。常见的单片机按键设计分为独立式和行列式(矩阵式)。独立式按键设计简单,但占用i/o口较多;行列

34、是按键设计相对复杂,占用i/o口较少。由于本系统需要的功能按键少,占用的i/o口也较少,所以采用独立式按键完全够用。其电路原理图如下图:图3.14 功能按键原理图3.5 电机驱动电路设计l298n的工作原理: l298n是sgs公司的产品,其内部包含4通道逻辑驱动电路,即内含上二个h桥的高电压大电流双全桥式驱动器,接收,标准ttl逻辑电平信号, 可驱动46v、2a以下的电上机。由l298n构成的pwm功率放大器的工作图1 l298n外部引脚形式为单极可逆模式,2个h桥的下侧桥晶体管发射极连在一起,其引脚排列如图1所示,1脚和15脚可单独引出连接电流采样电阻器,形成电流传号。l298可驱动2个电

35、机,out1、out2和out3、0ut4之间分别接2个电动机。5、7、10、12脚接输入控制电平,控制电机的正反转,ena、enb接控制使能端,控制电机的停转心。这些特性使得l298n很适合用作小型直流电机控制芯片。pwm基本原理pwm即脉冲宽度调制(pulse width modulation),它是指将输出信号的基本周期固定,通过调整基本周期内工作周期的大小来控制输出功率的方法。在pwm驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并根据需要改变一个周期内“接通”和“断开”时间的长短。因此,pwm又被称为“开关驱动装置”。如图3.15脉冲作用下,当电机通电时,速度增加;电机断电

36、时,速度逐渐减少。只要按一定规律,改变通、断电的时间,即可让电机转速得到控制。图3.15 pwm脉冲设电机始终接通电源时,电机转速最大为,设占空比为,则电机的平均速度为: (3-7)式中:表示电机的平均速度;表示电机全通电时的速度(最大);表示占空比。由公式(3-7)可见,当改变占空比d时,就可以得到不同的电机平均速度,从而达到调速的目的。图3.13 电机驱动电路3.6 语音播报设计 apr9600语音录放芯片,是继美国isd公司以后采用模拟存储技术的又一款音质好、噪音低、不怕断电、可反复录放的新型语音电路,单片电路可录放32-60秒,串行控制时可分256段以上,并行控制时最大可分8段。与is

37、d同类芯片相比它具有:价格便宜,有多种手动控制方式,分段管理方便、多段控制时电路简单、采样速度及录放音时间可调、每个单键均有开始停止循环多种功能等特点,同时保留了isd2500芯片的一些特点,都是dip28双列直插塑料封装,在管脚排列上也基本相同。管脚功能管脚功能1、/m1第一段控制或连续录放控制(低电平有效)15、sp-外接喇叭负端2、/m2第二段控制或快进选段控制(低电平有效)16、vcca模拟电路正电源3、/m3第三段控制(低电平有效)17、micin话筒输入端4、/m4第四段控制(低电平有效)18、micref话筒输入基准端5、/m5第五段控制(低电平有效)19、agc自动增益控制端6

38、、/m6第六段控制(低电平有效)20、ana-in线路输入端7、oscr振荡电阻21、ana-out线路输出端(话筒放大器输出端)8、/m7第七段控制及片溢出指示(低电平有效)22、strobe工作期间闪烁指示灯输出端(低电平有效)9、/m8第八段控制(低电平有效)及操作模式选项23、ce复位/停止键或启动/停止键(高电平有效)10、/busy忙信号输出(工作时出0,平时为1)24、msel1模式设置端11、be键声选择(接1为有键声,0则无)25、msel2模式设置端12、vssd数字电路电源地26、extclk外接振荡频率端(用内部时钟时接地)13、vssa模拟电路电源地27、/re录放选

39、择端(0为录音、1为放音)14、sp+外接喇叭正端28、vccd数字电路正电源在apr9600芯片的内部,录音时外部音频信号通过话筒输入和线路输入方式进入,话筒可采用普通的驻极体话筒,在芯片内话筒放大器(pre-amp )中自带自动增益调节(agc),可由外接阻容件设定响应速度和增益范围。如果信号幅度在100mv左右即可直接进入线路输入端,音频信号由内部滤波器、采样电路处理后以模拟量方式存入专用快闪存储器flashram中。由于flashram是非易失器件,断电等因素不会使存储的语音丢失。 放音时芯片内读逻辑电路从flashram中取出信号,经过一个低通滤波器送到功率放大器中,然后直接推动外部

40、的喇叭放音。厂家要求外接喇叭为16欧姆,实际试验用8-16欧姆均可,一般音量下输出功率12.2mw(16欧)。 apr9600的录放控制有多种操作模式,为普通用户使用提供了极大的方便。总的来说分为串行控制和并行控制两种,由芯片msel1(24脚)、msel2(25脚)、/m8(9脚)的设置来实现,功能表如表(二)。其中每种操作模式都有对应的有效键,而且同一个键在不同操作模式下可能有不同的功能。因此在芯片设计、使用前用户应详尽了解芯片的各种操作模式,选择最合适自己的方式设计,电路也会变得非常简单。apr9600操作模式表msel1(24脚)msel2(25脚)/m8(9脚)有效键/m1-8为段控

41、制键,/ce多为停止复位键功能(以60秒计)010/1/m1、/m2、ce并行控制,分二段,每段最大30秒100/1/m1、/m2、/m3、/m4、ce并行控制,分四段,每段最大15秒111/m1/m8、ce并行控制,分八段,每段最大7.5秒110ce单键控制,单段7.5秒循环。ce为启动/停止键001/m1、ce串行顺序控制,可分一至任意多段000/m1、/m2、ce串行选段控制,/m2系选段快进键。(录音时/m8=1时可录一至任意多段,/m8=0时只能录两段。) 注1、re=0(置低电平)为录音状态;re=1(置高电平)为放音状态。注2、/m1/m8键在有效段控放音时,按一下键即开始放音一

42、段,放音期间再按一下即停止;如按键不放即循环放音。注3、/m1/m8键在有效段控录音时,按住不放为录音,松键即停止。一、并行控制模式 在isd芯片中要实现某键对某段的多段并行控制是十分复杂的,一般需要大量的二极管译码阵或单片机来辅助实现,另外在分段录音时也存在很多困难。而在apr9300芯片中却十分简单,每段都有对应的键控制,按哪一键就录、放哪一段,而且可以方便地对任意一段重新录音不影响其它段、对任意一段循环放音等。只是每段录音的最大时间是等分的,而且最多只能分八段。以需要分四段为例说明:并行四段控制需要将芯片的msel1端置1(高电平)、msel2端置0(低电平)、/m8端任意。模式置好后开

43、始录音,置re端为0,压住/m1即听到嘀一声busy指示灯亮起即开始录音第一段,松键时又听到嘀一声busy指示灯熄灭即录音停止。/m2、/m3、/m4分别录其他三段。录音时可以不按顺序,先录任意一段均可,不满意可重新录音。每段的最大时间为15秒(以全片60秒录音计),录满时指示灯熄灭并响嘀嘀两声,当然实际每段录音可以长短不一。置re端为1即是放音状态,按一下/m1即放音第一段,放音期间再按一下/m1即停止放音,如果压住/m1键不放即循环放音第一段直到松键。/m2、/m3、/m4均分别控制第二、三、四段。/ce键为停止键,放音期间按一下它也能停止放音。其它并行二段、八段的控制使用方式相同。二、串

44、行控制模式 串行控制方式用到的键要少得多,它仅需要一、二个键来控制所有的语音段录放,而且段数可以足够多,每段也没有时间限制。只是在选段上没有并行控制模式方便。 置msel1、msel2均为0,在录音时/m8置1。置/re端为0为录音状态,按住/m1即开始录第一段,松键即停止。再按住/m1即录第二段,如此一直分段录音,直到芯片溢出。 在放音时(/re=1)有两种状态,/m8置1为串行顺序控制方式,按一下/m1即放音第一段,再按一下即放第二段,如此顺序逐段放音,到最后一段结束时即停止放音,必须按一下ce键复位,然后再按/m1键就可以又从第一段放音。这种方式下的段不可选择只能按录音的顺序播放,适合走

45、马灯、流程控制等电路使用;/m8置0为串行选段控制方式,按一下/m1只能放音第一段,再按还是放音第一段。这时的/m2有效成为快进选段键,每按一下/m2即向后移动一段,例如现在按了三下/m2,再按/m1就放音第四段。因此可以实现选段放音。按/ce键复位为第一段。apr9600芯片还有其它几种控制方式,用户可根据需要自行实验设计。 apr9600的电性能参数:电源电压4.5-6.5v,静态电流1ua ,工作电流25ma。其外接振荡电阻与采样率、语音频带、录放时间的关系见表(三),该电阻可以根据用户需要的时间和音质效果无级调节. 振荡电阻(7脚oscr)采样频率录放音频带录放音时间44k欧姆4.2k

46、hz2.1khz60s38k欧姆6.4khz3.2khz40s24k欧姆8.0khz4.0khz32s 由于apr9600具有高品质的语音录放特性,同时又具备多种手动控制方式,外围电路设计简单,价格也十分低廉,其在工业控制、家电、电化教育、游艺等产品、系统中将会有广泛的应用前景。3.6 小型控制器设计at89c2051 at89c2051芯片at89c2051是美国atmel公司生产的低电压、高性能cmos 8位单片机,片内含2k bytes的可反复擦写的只读程序存储器(perom)和128bytes的随机数据存储器(ram),器件采用atmel公司的高密度、非易失性存储技术生产,兼容标准mc

47、s-51指令系统,片内置通用8位中央处理器和flash存储单元,at89c2051单片机在电子类产品中有广泛的应用。内部结构at89c2051是一带有2k字节闪速可编程可擦除只读存储器(eeprom)的低电压,高性能8位cmos微处理器。它采用atmel的高密非易失存储技术制造并和工业标准mcs-51指令集和引脚结构兼容。通过在单块芯片上组合通用的cpli和闪速存储器,atmel的at89c2051是一强劲的微型处理器,它对许多嵌入式控制应用提供一定高度灵活和成本低的解决办法。 at89c2051提供以下标准功能:2k字节闪速存储器,128字节ram,15根i/o口,两个16位定时器,一个五向

48、量两级中断结构,一个全双工串行口,一个精密模拟比较器以及两种可选 的软件节电工作方式。空闲方停止cpu工作但允许ram、定时器/计数器、串行工作口和中断系统继续工作。掉电方式保存ram内容但振荡器停止工作并禁止有其它部件的工作到下一个硬件复位。 程序保密at89c2051设计有2个程序保密位,保密位1被编程之后,程序存储器不能再被编程除非做一次擦除,保密位2被编程之后,程序不能被读出。 软硬件的开发at89c2051可以采用下面两种方法开发应用系统。 1、由于89c2051内部程序存贮器为flash,所以修改它内部的程序十分方便快捷,只要配备一个可以编程89c2051的编程器即可。调试人员可以

49、采用程序编辑-编译-固化-插到电路板中试验这样反复循环的方法,对于熟练的mcs-51程序员来说,这种调试方法并不十分困难。但是做这种调试不能够了解片内ram的内容和程序的走向等有关信息。 2、将普通8031/80c31仿真器的仿真插头中p1.0p1.7和p3.0p3.6引出来仿真2051,这种方法可以运用单步、断点的调试方法,但是仿真不够真实,比如,2051的内部模拟比较器功能,p1口、p3口的增强下拉能力等等。 引脚说明 at89c2051芯片引脚图1、vcc:电源电压。 2、gnd:地。 3、p1口:p1口是一个8位双向i/o口。口引脚p1.2p1.7提供内部上拉电阻,p1.0和p1.1要

50、求外部上拉电阻。p1.0和p1.1还分别作为片内精密模拟比较器的同相输入(ani0)和反相输入(ain1)。p1口输出缓冲器可吸收20ma电流并能直接驱动led显示。当p1口引脚写入“1”时,其可用作输入端,当引脚p1.2p1.7用作输入并被外部拉低时,它们将因内部的写入“1”时,其可用作输入端。当引脚p1.2p1.7用作输入并被外部拉低时,它们将因内部的上拉电阻而流出电流。 4、p3口:p3口的p3.0p3.5、p3.7是带有内部上拉电阻 的七个双向i/o口引脚。p3.6用于固定输入片内比较器的输出信号并且它作为一通用i/o引脚而不可访问。p3口缓冲器可吸收20ma电流。当p3口写入“1”时

51、,它们被内部上拉电阻拉高并可用作输入端。用作输入时,被外部拉低的p3口脚将用上拉电阻而流出电流。 p3口还用于实现at89c2051的各种第二功能,如下表所列: 引脚口功 能 p3.0rxd串行输入端口p3.1txd串行输出端口p3.2int0外中断0p3.3int1外中断1p3.4t0定时器0外部输入p3.5 t1定时器1外部输入p3口还接收一些用于闪速存储器编程和程序校验的控制信号。 5、rst:复位输入。rst一旦变成高电平所有的i/o引脚就复位到“1”。当振荡器正在运行时,持续给出rst引脚两个机器周期的高电平便可完成复位。每一个机器周期需12个振荡器或时钟周期。 6、xtal1:作为

52、振荡器反相器的输入和内部时钟发生器的输入。 7、xtal2:作为振荡器反相放大器的输出。 主要性能1、和mcs-51产品兼容; 2、2kb可重编程flash存储器(10000次); 3、2.7-6v电压范围; 4、全静态工作:0hz-24mhz; 5、2级程序存储器保密锁定; 6、128*8位内部ram; 7、15条可编程i/o线; 8、两个16位定时器/计数器; 9、6个中断源; 10、可编程串行通道; 11、高精度电压比较器(p1.0,p1.1,p3.6); 12、直接驱动led的输出端口。 您目前的等级是1级您目前的经验值是46点您还需54点经验值即可升为2级第4章 系统软件设计本系统软

53、件的主要功能有数据的采集、数据处理、角度的解算和输出等。程序编写方案采用模块化程序设计,易于编写与工程管理,也便于子模块的功能调试与仿真。首先,对所用at89s51片上资源进行寄存器设置,以正确使用其功能,即完成初始化程序的编写。其次,编写各功能模块子程序,完成模块子功能以便主程序调用。最后,主程序按数据处理、角度解算、角度显示的顺序调用子程序,完成角度测量功能。4.1 软件编程语言与编程调试环境本系统采用的单片机at89s51支持c语言开发,可以在keil环境下编程、编译在slisp环境下下载与调试。c是一种高级语言,具有可移植性好、可读性强、维护方便的特点,与汇编语言相比,它有不可比拟的优

54、势:1可以大幅度加快开发进度,特别是开发一些复杂的系统,程序量越大,用c语言就越有优势。2可以实现软件的结构化编程,使得软件的逻辑结构变得清晰、有条理,保证整个系统的可靠性。3省去了人工分配单片机资源的工作。在汇编语言中要为每一个子程序分配单片机的资源,复杂而容易出错。使用c语言后,只要在代码中申明一下变量的类型。keil u vision2应用入门keil 软件是众多单片机应用开发的优秀软件之一,它集编辑、编译、仿真于一体,支持汇编、plm语言和c语言的程序设计,界面友好,易学易用。进入keil后,屏幕如下图所示。几秒钟后出现编辑界启动keil时的屏幕进入keil后的编辑界面简单程序的调试学

55、习程序设计语言、学习某种程序软件,最好的方法是直接操作实践。下面通过简单的编程、调试,引导大家学习keil软件的基本使用方法和基本的调试技巧。1)建立一个新工程单击project菜单,在弹出的下拉菜单中选中new project选项 2)然后选择你要保存的路径,输入工程文件的名字,比如保存到e:单片机debug目录里,工程文件的名字为aaa。如下图所示,然后点击保存.不用加后缀,keil软件自动在其后边加uv2 后缀名。3)这时点击保存会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,keil几乎支持所有的51核的单片机,我这里还是以大家用的实验板上的atmel公司 的

56、at89s51来说明,如下图所示,选择at89s51之后,右边一栏是对这个单片机的基本的说明,然后点击确定.在这里可以点击否也可以点击是,添加8051的startup code程序是为了单片机的初始化问题,建议点击是。之后,点击“target”的+号出现下图。到现在为止,我们还没有编写一句程序,下面开始编写我们的第一个程序。5)在下图中,单击“file”菜单,再在下拉菜单中单击“new”选项。此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了,但笔者建议首先保存该空白的文件,单击菜单上的“file”,在下拉菜单中选中“save as”选项单击,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名,同时,必须键入正确的扩展名。注意,如果用语言编写程序,则扩

温馨提示

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

评论

0/150

提交评论