循迹避障小车毕业设计(共71页)

上传人:29 文档编号:80431072 上传时间:2022-04-25 格式:DOC 页数:71 大小:762KB
收藏 版权申诉 举报 下载
循迹避障小车毕业设计(共71页)_第1页
第1页 / 共71页
循迹避障小车毕业设计(共71页)_第2页
第2页 / 共71页
循迹避障小车毕业设计(共71页)_第3页
第3页 / 共71页
资源描述:

《循迹避障小车毕业设计(共71页)》由会员分享,可在线阅读,更多相关《循迹避障小车毕业设计(共71页)(71页珍藏版)》请在装配图网上搜索。

1、精选优质文档-倾情为你奉上摘要自循迹避障小车是行走机器人的一种,这种小车可以适应不同环境,不受温度、湿度、磁场辐射、重力等条件的影响,在人类无法进入或生存的环境中完成人类无法完成的探测任务,适用于国防及民用等多个领域。本设计的主要任务是设计和实现基于ATMega128单片机的寻迹避障小车,包括硬件和软件两个部分。硬件电路部分主要包括控制器、循迹电路、避障电路、电机驱动电路、显示电路、电源电路等。自循迹避障小车的软件平台为ICCAVR开发环境。软件系统包含系统初始化程序、红外传感器循迹程序、超声波避障程序与显示程序等。车前部安装的红外传感器负责釆集道路信号,作为小车的循迹依据;超声波传感器负责测

2、量障碍物和小车之间的距离,作为避障依据。微控制器读取传感器当前状态,从而控制相应的电路,进而控制小车行进的速度和角度,最后实现小车在实验环境中自动循迹避障行驶的功能。在本设计中,系统硬件和软件都采用了模块化结构,整个系统的电路结构简单,可靠性高,并可按需求增加或删除功能。在实际的调试过程中,小车能自适应直道、弯道、交叉线等路况,并且能够避开跑道上的障碍物。关键词:ATMega128;循迹;避障;ICCAVR专心-专注-专业AbstractSelf-tracing and obstacle avoidance electric vehicle is a kind of mobile robot,

3、 which is able to adapt various environments, humidity, magnetic radiation and gravity. Consequently the vehicle take the place of human to implement many tasks in the environment where human cannot set foot, which is applicable in many fields in the national defence and civilian.The main job of thi

4、s project is to design and implement based on ATMega128 single-chip microcomputer self-tracing and obstacle avoidance car, including its hardware and software in two parts. The hardware circuit part mainly comprises a controller, a signal detection circuit, obstacle avoidance circuit, motor drive ci

5、rcuit, display circuit and power supply circuit. the software platform is ICCAVR. The software include initialization program, self-tracing program, obstacle avoidance program and display program. The road information is acquired for navigation by red sensor in the front of the vehicle. The red sens

6、or recognizes the black line. The ultrasonic transducer recognizes the barriers. The micro controller acquires current state to control corresponding circuit and then the vehicles speed and angle. In this way the self-tracing driving function is realized in the experimental environment.The hardware

7、and software of this project are all the modular it has. The circuit is simple in structure and the function can be added or deleted according to requirement. In the experiment, the vehicle can autonomously adapt straight road, corners and crosses line. The target of the self-tracing and obstacle av

8、oidance vehicle are met.Key words: ATMega128; infrared sensor; obstacle avoidance; ICCAVR目录0前言 1 1方案设计与论证 21.1整体硬件方案论证 21.2整体软件控制方案 32系统硬件设计 42.1单片机最小系统 42.2电源模块 82.3循迹模块 92.4超声波避障模块 202.5步进电机模块 232.6液晶显示模块 242.7 DS1302时钟模块253系统软件设计 273.1 AVR单片机C语言设计 273.2 ICCAVR编程器软件 273.3系统程序流程图 314系统总体调试 324.1硬件调

9、试 324.2软件调试 325系统抗干扰设计 336技术经济分析 357结论 36致谢 37参考文献 38附录A 译文 39附录B 外文文献 43附录C 设计程序 490 前言人们一直都想拥有一种能够自动驾驶,并且能够适应各种复杂路面情况和沿着指定道路(轨迹)行驶的车辆。多年来,随着企业生产技术不断提髙,自动化技术不断加深,电子智能控制技术在汽车工业上的应用越来越普遍,人们的这一梦想终于有望得到实现。现在,世界上许多国家都在对智能车辆进行研究和设计。循迹避障小车的研究是移动机器人的一个分支,是一项涉及到计算机技术,传感技术,通讯技术,自动控制技术,人工智能技术等相关技术的综合系统。当今的循迹避

10、障小车技术的发展主要有两个特点:第一,应用的领域不断扩大;第二,智能化程度越来越高。它的主要功能是能够自动识别路径,自动控制车速,自动转向等1。循迹避障小车是一个具有环境感知能力,规划决策能力的综合体,其主要特点是在复杂的道路情况下能自动的驾驶车辆并沿着预定道路行驶,特别适用于在人类无法工作的环境中工作。作为智能交通系统(ITS)2中的一部分,循迹避障小车技术已经渗透到社会各个领域并且成为该领域中的研究热点。对于循迹避障小车系统来说,它主要由路径识别、角度控制及车速控制等功能模块组成,它是一个集环境感知、规划决策等功能于一体的综合系统。本循迹避障小车由模型小车、传感器、单片机以及所需的硬件电路

11、组成。其核心是自动控制系统,它是一个由传感器和处理器组成的网络,可以对路径识别并做出反应,能够自动调节行驶方向和速度,而无须遥控。本课题有助于解决现实问题,有很强的研究价值。1 方案设计与论证1.1 整体硬件设计方案根据设计任务的要求,确定如下方案:通过高发射功率红外光电二极管和高灵敏度光电晶体管组成的传感器循迹模块判断黑线路径,通过超声波模块测量出障碍物和小车之间的距离,并将测量数据传送至单片机进行处理,然后由单片机通过IO口控制L298N驱动模块改变两个直流电机的工作状态,实现对小车的控制。1.1.1 系统基本组成小车主要由ATMega128单片机电路、TCRT5000循迹模块、超声波模块

12、、液晶显示模块、L298N驱动模块、直流减速电机、小车底板、电源模块、DS1302模块等组成。ATMega128超声波避障模块循迹模块液晶显示模块电源模块驱动模块DS1302模块 图1-1 单片机控制系统原理框图Fig.1-1 single-chip microcomputer control system principle1)单片机电路:采用ATMega128芯片作为控制单元。ATMega128是ATMEL公司的 8位系列单片机,稳定性高,应用广泛。所有I/O端口都具有真正的读-修改-写功能;具有两个独立的预分频器和比较器功能的8位定时器/计数器;具有两个预分频器、比较功能和捕捉功能的16

13、位定时器/计数器;具有独立预分频器的实时时钟计数器;能够产生两路8位PWM、6路分辨率可编程(1到16位)的PWM;可以通过SPI实现系统内编程3。2)TCRT5000循迹模块:采用反射式红外发射接收器作为循迹传感器,由红外传感器完成黑线识别并产生高、低电平信号,经过LM324整形后传送到单片机,单片机通过程序控制驱动模块来控制两个直流电机的工作状态,完成自动循迹3。3)电机驱动模块:采用L298N作为电机驱动芯片。L298N具有高电压、大电流、响应频率高的全桥驱动芯片,一片L298N可以控制两个直流电机,并且带有控制使能端。该电机驱动芯片驱动能力强、操作方便,稳定性好,性能优良。L298N的

14、使能端可以外接电平控制,也可以利用单片机进行软件控制,满足各种复杂电路的需要。另外,L298N的驱动功率较大,能够根据输入电压的大小输出不同的电压和功率,解决了负载能力不够的问题。 4)直流电机:采用ASLONG JGA25-370直流减速电机。直流减速电机,即齿轮减速电机,是在普通直流电机的基础上,加上配套齿轮减速箱。齿轮减速箱的作用是提供较低的转速,较大的力矩。同时,齿轮箱不同的减速比可以提供不同的转速和力矩。5) 超声波避障模块:采用超声波测距模块(HC-SR04),利用单片机PC6控制HC-SR04的Trig引脚产生一个10us以上的高电平,用单片机外部中断6(INT6)检测接收口Ec

15、ho高电平输出。一有输出则引起外部中断,在外部中断内开定时器0计时,当Echo端口变为低电平时再次触发外部中断6,在中断内停止定时器0计数。最后读出定时器的值,该时间值2超声波传播速度=障碍物和小车的距离。当障碍物与小车的距离小于规定值时,小车在行进中会绕开障碍物,沿着另一条跑道前进。6)液晶显示模块:采用HG12232带中文字库的液晶显示屏显示小车运行状态。主要显示小车运行时间,实时运行状况。该液晶屏可以并行传输,也可以串行传输。在这个设计中,考虑到ATMega128有足够的引脚,故采用并行传输。7)DS1302时钟模块:DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的

16、实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用DS1302对小车运行时间计时。8)电源模块:电机电源由四个串联的1.5V碱性电池作为电源。单片机系统由四个串联的1.5V碱性电池,然后串接一个IN4007,最后用0.1uF电容进行滤波。电机电源和单片机系统电源分开供电,提高了系统供电稳定性。1.2 整体软件控制方案黑线是小车跟踪的目标,检测系统检测车的相对路径,然后将此信息输入到单片机,单片机处理此信息后,将控制命令输出到驱动模块,以控制小车的直流减速电机,保证小车平稳地沿预先设定好的路线行驶。同时,超声波模块实时监测跑道上障碍物和

17、小车之间的距离,当距离小于规定值时,小车进入岔道,然后继续沿着黑线前进。2 系统的硬件设计2.1 单片机最小系统设计2.1.1 单片机的功能特性描述本设计采用ATMega128A单片机,该单片机是ATMEL公司的8位系列单片机,稳定性高,应用广泛。1)主要特性高性能、低功耗的AVR 8位微处理器;先进的RISC结构;133条指令大多数可以在一个时钟周期内完成;32x8通用工作寄存器;芯片工作于16MHz时性能高达16MIPS;只需两个时钟周期的硬件乘法器;非易失性的程序和数据存储器;128K字节的系统内可编程Flash(寿命:10000次写/擦除周期);具有独立锁定位、可选择的启动代码区;通过

18、片内的启动程序实现系统内编程;真正的读-修改-写操作;4K字节的EEPROM(寿命:100000次写/擦除周期);4K字节的内部SRAM;多达64K字节的优化的外部存储器空间;可以对锁定位进行编程以实现软件加密;可以通过ISP实现系统内编程;JTAG接口(与IEEE 1149.1标准兼容);遵循JTAG标准的边界扫描功能;支持扩展的片内调试;通过JTAG接口实现对Flash、EEPROM、熔丝位和锁定位的编程。2)外设特点两个具有独立的预分频器和比较器功能的8位定时器/计数器;两个具有预分频器、比较功能和捕捉功能的16位定时器/计数器;具有独立预分频器的实时时钟计数器;两路8位PWM;6路分辨

19、率可编程(1到16位)的PWM;输出比较调制器;8路10位ADC;8个单端通道;7个差分通道;两个可编程的串行USART;可工作于主机/从机模式的SPI串行接口;具有独立片内振荡器的可编程看门狗定时器;片内模拟比较器。3)特殊的处理器特点上电复位以及可编程的掉电检测;片内经过标定的RC振荡器;片内/片外中断源;6种睡眠模式:空闲模式、ADC噪声抑制模式、省电模式、掉电模式、Standby模式以及扩展的Standby模式;可以通过软件进行选择的时钟频率;通过熔丝位可以选择ATmega103兼容模式;全局上拉禁止功能。2.1.2 ATMega128各引脚功能1)Vcc:数字电路的电源。2)GND:

20、地。3)端口A(PA7PA0)、端口B(PB7PB0)、端口C(PC7PC0)、端口D(PD7PD0)、端口E(PE7PE0)、端口F(PFTPF0)、端口G(PG4PG0):这些端口均为双向I/O口并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。复位发生时端口为三态。端口也可以用作其他不同的特殊功能。4)RESET:复位输入引脚。超过最小门限时间的低电平将引起系统复位。低于此时间的脉冲不能保证可靠复位。5)XTAL1:反向振荡器放大器及片内时钟操作电路的输入。6)XTAL2:反向振荡器放大

21、器的输出。7)AVCC:AVCC为端口F以及ADC转换器的电源。需要与Vcc相连接,即使没有使用ADC也应该如此。使用ADC时应该通过一个低通滤波器与Vcc连接。8)AREF:AREF为ADC的模拟基准输入引脚。9)PEN:PEN是SPI串行下载的使能引脚。在上电复位时保持为低电平将使器件进入SPI串行下载模式。在正常工作过程中PEN引脚没有其他功能。2.1.3 ATmega128的中断向量表2-1 复位和中断向量Tab.2-1 reset and interrupt vectors向量号程序地址中断源中断定义1$0000RESET外部引脚、上电复位、掉电检测复位、看门狗复位2$0002INT

22、0外部中断请求03$0004INT1外部中断请求14$0006INT2外部中断请求25$0008INT3外部中断请求36$000AINT4外部中断请求47$000CINT5外部中断请求58$000EINT6外部中断请求69$0010INT7外部中断请求710$0012TIMER2 COMP定时器/计数器2比较匹配11$0014TIMER2 OVF定时器/计数器2溢出12$0016TIMER1 CAPT定时器/计数器1捕捉事件13$0018TIMER1 COMPA定时器/计数器1比较匹配A14$001ATIMER1 COMPB定时器/计数器比较匹配B15$001CTIMER1 OVF定时器/计数

23、器1溢出16$001ETIMER0 COMP定时器/计数器0比较匹配17$0020TIMER0 OVF定时器/计数器0溢出18$0022SPI,STCSPI串行传输结束19$0024USART0,RXUSART0,RX结束20$0026USART0,UDREUSART0数据寄存器空21$0028USART0,UDREUSART0,TX结束22$002AADCADC转换结束23$002CEE READYEEPROM就绪24$002EANALOG COMP模拟比较器25$0030TIMER1 COMPC定时器/计数器1比较匹配C26$0032TIMER3 CAPT定时器/计数器3捕捉事件27$00

24、34TIMER3 COMPA定时器/计数器3比较匹配A28$0036TIMER3 COMPB定时器/计数器3比较匹配B29$0038TIMER3 COMPC定时器/计数器3比较匹配C30$003ATIMER3 OVF定时器/计数器3溢出31$003CUSART1,RXUSART1,RX结束2.1.4 系统时钟ATMega128单片机的XTAL1和XTAL2分别为用作片内振荡器的反向放大器的输入和输出,这个振荡器可以使用石英晶体,也可以使用陶瓷谐振器。熔丝位CKOPT用来选择这两种放大器模式的其中之一。当CKOPT被编程时振荡器在输出引脚产生满幅度的振荡。这种模式适合于噪声环境,而且这种模式的频

25、率范围比较宽。当保持CKOPT为未编程状态时,振荡器的输出信号幅度比较小。其优点是大大降低了功耗,但是频率范围比较窄。图2-1 晶体振荡器连接图Fig.2-1 crystal oscillator connections2.1.5 复位电路复位是单片机芯片本身的硬件初始化操作,以便CPU以及其他内部功能部件都处于一个确定的初始状态,并从这个初始状态开始工作。AVR单片机复位操作的主要功能是把程序计数器PC初始化为$0000,使单片机从$0000单元开始执行程序。同时绝大部分的寄存器(通用寄存器和I/O寄存器)也被复位操作清零。外部复位:当外部引脚/RESET为低电平时且低电平持续一定的时间时,

26、单片机复位。图2-2 外部复位Fig.2-2 external reset2.1.6 串行编程方式(ISP)串行编程方式是通过AVR芯片本身的SPI串行口来实现的,由于编程时只需要占用比较少的外围引脚,所以可以实现芯片的在线编程,不需要将芯片从PCB板上取下来。当RESET位低电平时,可以通过串行SPI总线对Flash行编程。串行接口包括SCK、MOSI(输入)及MISO(输出)。RESET为低之后,应在执行编程/擦除操作之前执行编程允许指令。尽管SPI编程接口重用SPI I/O模块,但其中有一点不同:MOSI/MISO引脚映射到SPI的I/O模块的PB2与PB3在编程接口并不使用,而PE0与

27、PE1用来传递数据。图2-3 SPI系统内编程Fig.2-3 SPI interface for in-system programming2.1.7 ATmega128的熔丝位在AVR内部有多组与器件配置和运行环境相关的熔丝位,可以通过设定和配置熔丝位,使AVR具备不同的特性,以更加适合实际的需要。在AVR的器件手册中使用已编程(Programmed)和未编程(Unprogrammed)定义加密位和熔丝位的状态。Unprogrammed表示熔丝位的状态为“1”(禁止),Programmed表示熔丝位的状态为“0”(使能)4。需要从新下载程序时,或芯片被加密锁定后,或发现熔丝位配置不正确时,都

28、必须先在编程状态下使用芯片擦除命令,然后重新下载运行代码和数据,修改和配置相关的熔丝位。ATMega128在出厂时M103C默认状态为“0”,即默认以ATmega103兼容方式工作。当用户系统设计使芯片以ATmega128方式工作时,应首先将M103C的状态配置为“1”。表2-2 晶体振荡器工作模式Tab.2-2 crystal oscillator operating modes熔丝位工作频率范围/MHzC1、C2容量/pF(仅适用于石英晶振)CKOPTCKSEL3:01101x0.4-0.9仅适用于陶瓷振荡器1110x0.9-3.012-221111x3.0-8.012-220101x,1

29、10x,111x1.012-22图2-4 ATMega128单片机最小应用系统Fig.2-4 the least application system about ATMega128 2.2 电源模块为了确保供电的稳定性和提高系统的抗干扰能力,电机电源和单片机系统电源分开供电。电机电源由四个串联的1.5V碱性电池作为电源。单片机系统由四个串联的1.5V碱性电池,利用IN4007导通压降0.7V左右的性质,在电路中串接一个IN4007,使得输出电压5至5.5V。最后用0.1uF电容进行滤波。为了得到3.3V电压,用AMS1117稳压模块将5V电压降为3.3V。为了确保AMS1117的稳定性,输出

30、端需要连接一个至少22F的电容。图2-5 电源模块Fig.2-5 power module 2.3 循迹模块系统结构 循迹模块是由传感器阵列检测到小车的位置状态,然后将相应的信息传送给单片机,单片机通过判断来控制左右电机工作,从而使得小车沿着黑线前进。传感器阵列驱动器驱动器左电机右电机 控制器ATMega128 图2-6 循迹系统结构图Fig.2-6 diagram of tracking system2.3.1 直流减速电机选择模块中采用ASLONG JGA25-370直流减速电机。直流减速电机,即齿轮减速电机,是在普通直流电机的基础上,加上配套齿轮减速箱。齿轮减速箱的作用是提供较低的转速,

31、较大的力矩。同时,齿轮箱不同的减速比可以提供不同的转速和力矩。该电机额定电压为6V,空转转速176rpm,空载电流60ma,负载转速150rpm,负载电流300ma,负载扭矩0.85kg.cm,功率2w,堵转扭矩5kg.cm,堵转电流900ma,减速比1:34。2.3.2 光电检测模块循迹小车的传感器系统采用大功率红外传感器。使用红外传感器可以有效地避免背景光带来的干扰。为了达到循迹小车对高精度实时定位的需求,定位系统需要检测各种状态信息。循迹小车采用红外传感器构成阵列来实现高精度实时定位目标。光电传感器采用TCRT5000,光电检测电路如图2-7,红外光电传感器为TCRT5000。传感器采用

32、高发射功率红外光电二极管和高灵敏度光电晶体管组成,输出信号经LM324整形,稳定可靠。传感器的红外发射二极管不断发射红外线,当发射出的红外线没有被反射回来或被反射回来但强度不够大时,光敏三极管一直处于关断状态,此时模块的输出端为高电平;被检测物体出现在检测范围内时,红外线被反射回来且强度足够大,光敏三极管饱和,此时模块的输出端为低电平5。 为了对小车实现精确的定位及纠正小车在行走中出现的偏差,检测系统采用8个如图2-8所示的传感器构成检测阵列。8个检测头的排布为5个在前,3个在后,并用数字编号。1、2工作在黑线上,3和4、5和6分别在1、2两边夹住黑线,7和8则离得相对较远。图2-7 光电检测

33、电路Fig.2-7 the circuit of photoelectric detection 图2-8 传感器检测阵列Fig.2-8 the array of sensors 表2-3 小车运动状态表Tab.2-3 table of motion state for car#1#2#3#4#5#6#7#8对应状态11xxxxxx未偏10000000未偏10100000微偏(下次再较)10010000微偏(下次再较)10001000左偏10101000左偏10011000左偏10000100右偏10100100右偏10010100右偏01000000未偏01100000右偏01010000左

34、偏01001000微偏(下次再较)01101000右偏01011000左偏01000100微偏(下次再较)01100100右偏01010100左偏00101000微偏(下次再较)00111100未偏(过线)00100100右偏00011000左偏xxxxxx10大右偏xxxxxx01大左偏00100000上次检测时1、4都没亮为微偏,否则右偏00010000上次检测时1、3都没亮为微偏,否则左偏00001000上次检测时2、5都没亮为微偏,否则右偏00000100上次检测时2、6都没亮为微偏,否则左偏00000000保持上一次状态表2-4小车运动偏差与校正方案Tab.2-4 motion de

35、viation and correction scheme for the car运动偏差类别解决方案左偏在一定时间内,左轮转的快些,右轮转的慢些右偏在一定时间内,右轮转的快些,左轮转的慢些大左偏右轮停转,左轮旋转直到1或3传感器在黑线上大右偏左轮停转,右轮旋转直到1或4传感器在黑线上2.3.3 直流减速电机控制设计循迹小车采用2轮驱动以实现直线和曲线运动,在小车的运动过程中需要对2个主动轮的运动方式进行合理安排。在本设计中采用PWM方式进行调速,选用L298N来驱动2个直流减速电机实现运动控制。PWM调速控制的基本原理是按一个固定频率来接通和断开电源,并根据需要改变一个周期内接通和断开的时间

36、比(占空比)来改变直流电机电枢上电压的“占空比”,从而改变平均电压,控制电机的转速。脉冲宽度越大即占空比越大,提供给电机的平均电压越大,电机转速就高。反之脉冲宽度越小,则占空比越越小。提供给电机的平均电压越小,电机转速就低。在脉宽调速系统中,当电机通电时其速度增加,电机断电时其速度减低。只要按照一定的规律改变通、断电的时间,即可控制电机转速6。在本设计中使用16位定时器3产生两路PWM波(PE4控制A电机,PE5控制B电机),PWM频率为500Hz。PWM分辨率位数为12位。图2-9 电机驱动电路Fig.2-9 motor drive circuitL298N是一款能承受高压大电流的全桥型电机

37、驱动器,各引脚功能如2-5表所示:表2-5 L298N引脚功能表Tab.2-5 table of pin function for L298N 引脚编号名称功能1电流传感器A在该引脚和地之间接小阻值电阻可用来检测电流2输出引脚1内置驱动器A的输出端1,接电机A3输出引脚2内置驱动器A的输出端2,接电机A4电机电源端电机供电输入端5输入引脚1内置驱动器A的逻辑控制输入端16使能端A内置驱动器A的使能端7输入引脚2内置驱动器A的逻辑控制输入端28逻辑地逻辑地9逻辑电源端逻辑控制电路的电源输入端10输入引脚3内置驱动器B的逻辑控制输入端111使能端B内置驱动器B的使能端12输入引脚4内置驱动器B的逻

38、辑控制输入端213输出引脚3内置驱动器B的输出端1,接电机B14输出引脚4内置驱动器B的输出端2,接电机B15电流传感器B在该引脚和地之间接小阻值电阻可用来检测电流表2-6 L298N逻辑控制表Tab.2-6 logic control table of L298N 输入信号电机运动方式使能端A/B输入引脚1/3输入引脚2/4110前进101后退111紧急停车100紧急停车0xx自由转动2.3.4 16位定时器/计数器31)16位的T/C可以实现精确的程序定时、波形产生和信号测量。其主要特点如下:真正的16位设计(即允许16位的PWM);3个独立的输出比较单元;双缓冲的输出比较寄存器;一个输入

39、比较单元;输入捕捉噪声抑制器;比较匹配发生时清除寄存器(自动重载);无毛刺的相位修正PWM;可变的PWM周期;频率发生器;外部事件计数器;5个独立的中断源(TOV3、OCF3A、OCF3B、OCF3C和ICF3)。2)16位定时器/计数器3寄存器主要有定时器/计数器TCNT3、输出比较寄存器OCR3A/B/C与输入捕捉寄存器ICR3 均为16位寄存器。T/C控制寄存器TCCR3A/B/C为8位寄存器。信号在中断标志寄存器TIFR与扩展定时中断标志寄存器ETIFR都有反映。所有中断都可以由中断屏蔽寄存器TIMSK及扩展定时中断屏蔽寄存器ETIMSK控制。T/C可由内部时钟通过预分频器驱动,没有选

40、择时钟源时T/C处于停止状态。双缓冲输出比较寄存器OCR3A/B/C一直与T/C的值做比较。波形发生器用比较结果产生PWM或在输出比较引脚OC3A/B/C输出可变频率的信号。比较匹配结果还可置位比较匹配标志OCF3A/B/C,用来产生输出比较中断请求。在某些操作模式下,TOP值或T/C的最大值可由OCR3A寄存器、ICR3寄存器,或一些固定数据来定义。当需要一个固定的TOP值时可以使用ICR3寄存器,从而释放OCR3A来用作PWM的输出。定时器/计数器的时钟源:T/C时钟源可以来自内部,也可来自外部,由位于T/C控制寄存器B(TCCR3B)的时钟选择位(CS32:0)决定。3)相位修正PWM模

41、式相位修正PWM模式(WGM33:0 = 1、2、3、10或11)为用户提供了一个获得高精度的、相位准确的PWM波形的方法。与相位和频率修正模式类似,此模式基于双斜坡操作。计时器重复地从BOTTOM计到TOP,然后又从TOP倒退回到BOTTOM。在一般的比较输出模式下,当计时器往TOP计数时若TCNT3与OCR3x(x为A、B、C)匹配,OC3x(x为A、B、C)将清零为低电平;而在计时器往BOTTOM计数时若TCNT3与OCR3x(x为A、B、C)匹配,OC3x将置位为高电平。工作于反向比较输出时则正好相反。与单斜坡操作相比,双斜坡操作可获得的最大频率要小。但其对称特性十分适合于电机控制。相

42、位修正PWM模式的PWM分辨率固定为8、9或10位,或由ICR3或OCR3A定义。最小分辨率为2比特(ICR3或OCR3A设为0x0003),最大分辨率为16位(ICR3或OCR3A设为MAX)。PWM分辨率位数可用下式计算: (2-1) 工作于相位修正PWM模式时,计数器的数值一直累加到固定值0x00FF、0x01FF、0x03FF(WGM33:0=1、2或3)、ICR3(WGM33:0 =10)或OCR3A(WGM33:0 = 11),然后改变计数方向。工作于相位修正PWM模式时,比较单元可以在OC3x引脚输出PWM波形。设置COM3x1:0为2可以产生普通的PWM,设置COMnx1:0为

43、3可以产生反向PWM。要真正从物理引脚上输出信号还必须将OC3x的数据方向DDR_OC3x设置为输出。OCR3x和TCNT3比较匹配发生时OC3x寄存器将产生相应的清零或置位操作,从而产生PWM波形。工作于相位修正模式时PWM频率公式: (2-2)变量N表示预分频因子(1、8、64、256或1024)。4)定时器/计数器3控制寄存器TCCR3A表2-7定时器/计数器3控制寄存器TCCR3ATab.2-7 timer/counter 3 control register TCCR3ACOM3A1COM3A0COM3B1COM3B0COM3C1COM3C0WGM31WGM30Bit 7:6-COM

44、3A1:0:通道A的比较输出模式Bit 5:4-COM3B1:0:通道B的比较输出模式Bit 3:2-COM3C1:0:通道C的比较输出模式COM3A1:0、COM3B1:0与COM3C1:0分别控制OC3A、OC3B与OC3C的状态。如果COM3A1:0(COM3B1:0或COM3C1:0)的一位或两位被写入“1”,OC3A(OC3B或OC3C)输出功能将取代I/O端口功能。此时OC3A(OC3B或OC3C)相应的输出引脚数据方向控制必须置位以使能输出驱动器。OC3A(OC3B或OC3C)与物理引脚相连时,COM3x1:0的功能由WGM33:0的设置决定。表2-8 比较输出模式,非PWMTa

45、b.2-8 compare output mode, non-PWMCOM3A1/COM3B1/COM3C1COM3A0/COM3B0/COM3C0说明00普通端口操作,OC3A/OC3B/OC3C未连接01比较匹配时,OC3A/OC3B/OC3C电平取反10比较匹配时清零,OC3A/OC3B/OC3C(输出低电平)11比较匹配时置位,OC3A/OC3B/OC3C(输出高电平)表2-9 比较输出模式,快速PWMTab.2-9 compare output mode, fast PWMCOM3A1/COM3B1/COM3C1COM3A0/COM3B0/COM3C0说明00普通端口操作,OC3A/

46、OC3B/OC3C未连接01WGM33=0:普通端口操作,OC3A/OC3B/OC3C未连接WGM33=1:比较匹配时OC3A电平取反,OC3B/OC3C 保留10比较匹配时清零OC3A/OC3B/OC3C,在TOP时置位OC3A/OC3B/OC3C11比较匹配时置位OC3A/OC3B/OC3C,在TOP时清零OC3A/OC3B/OC3C表2-10 比较输出模式,相位修正及相频修正PWM模式Tab.2-10 compare output mode, phase correct and phase and frequency correct PWMCOM3A1/COM3B1/COM3C1COM3

47、A0/COM3B0/COM3C0说明00普通端口操作,OC3A/OC3B/OC3C未连接01WGM33=0:普通端口操作,OC3A/OC3B/OC3C未连接WGM33=1:比较匹配时OC3A电平取反,OC3B/OC3C 保留10升序记数时比较匹配将清零OC3A/OC3B/OC3C,降序记数时比较匹配将置位OC3A/OC3B/OC3C 11升序记数时比较匹配将置位OC3A/OC3B/OC3C,降序记数时比较匹配将清零OC3A/OC3B/OC3CBit 1:0-WGM31:0:波形发生模式这两位与位于TCCR3B寄存器的WGM33:2相结合,用于控制计数器的计数序列。T/C支持的工作模式有:普通模

48、式(计数器),比较匹配时清零定时器(CTC)模式,及三种脉宽调制(PWM)模式。表2-11 波形产生模式的位描述Tab.2-11 waveform generation mode bit description模式WGM33WGM32WGM31WGM30定时/计器工作模式TOPOCR3x更新时刻TOV3置位时刻00000普通模式0XFFFF立即更新MAX100018位相位修正PWM0X00FFTOPBOTTOM200109位相位修正PWM0X01FFTOPBOTTOM3001110位相位修正PWM0X03FFTOPBOTTOM40100CTCOCR3A立即更新MAX501018位快速PWM0X

49、00FFTOPTOP601109位快速PWM0X01FFTOPTOP7011110位快速PWM0X03FFTOPTOP81000相位与频率修正PWMICR3ABOTTOMBOTTOM91001相位与频率修正PWMOCR3ABOTTOMBOTTOM101010相位修正PWMICR3TOPBOTTOM111011相位修正PWMOCR3ATOPBOTTOM121100CTCICR3立即更新MAX131101保留-141110快速PWMICR3TOPTOP151111快速PWMOCR3ATOPTOP表2-12 定时器/计数器3控制寄存器TCCR3BTab.2-12 timer/counter 3 co

50、ntrol register TCCR3BICNC3ICES3-WGM33WGM32CS32CS31CS30Bit7-ICNC3:输入捕捉噪声抑制器置位ICNC3将使能输入捕捉噪声抑制功能。此时外部引脚ICP3的输入被滤波。其作用是从ICP3引脚连续进行4次采样。如果4个采样值都相等,那么信号送入边沿检测器。因此使能该功能使得输入捕捉被延迟了4个时钟周期。Bit 6-ICES3:输入捕捉触发沿选择该位选择使用ICP3上的哪个边沿触发捕获事件。ICES3为“0”选择的是下降沿触发输入捕捉;ICES3为“1”选择的是逻辑电平的上升沿触发输入捕捉。按照ICES3的设置捕获到一个事件后,计数器的数值被

51、复制到ICR3寄存器。捕获事件还会置为ICF3。如果此时中断使能,输入捕捉事件即被触发。当ICR3用作TOP值时,ICP3与输入捕捉功能脱开,从而输入捕捉功能被禁用。Bit 5:保留位Bit 4:3-WGM33:2:波形发生模式Bit 2:0-CS32:0:时钟选择表2-13 时钟选择位描述Tab.2-13 clock select bit descriptionCS32CS31CS30说明000无时钟源(T/C停止)001clk/1(无预分频)010clk/8(来自预分频器)011clk/64(来自预分频器)100clk/256(来自预分频器)101clk/1024(来自预分频器)110外部

52、T3引脚,下降沿驱动111外部T3引脚,上升沿驱动表2-14定时器/计数器3数据寄存器TC3T3H和TC3T3LTab.2-14 timer/counter 3 TC3T3H and TC3T3LTCNT315:8TCNT37:0TCNT3H与TCNT3L组成了T/C3的数据寄存器TCNT3,通过它们可以直接对定时器/计数器单元的16位计数器进行读写访问。表2-15 扩展的定时器/计数器中断屏蔽寄存器ETIMSKTab.2-15 extended timer/counter interrupt mask register ETIMSK-TICIE3OCIEAOCIE3BTOIE3OCIE3CO

53、CIE1CBit 5-TICIE3:T/C3输入捕捉中断使能当该位被设为“1”,且状态寄存器中的I位被设为“1”时,T/C3的输入捕捉中断使能。一旦ETIFR的ICF3置位,CPU即开始执行T/C3输入捕捉中断服务程序。Bit 4-OCIE3A:T/C3输出比较A匹配中断使能当该位被设为“1”,且状态寄存器中的I位被设为“1”时,T/C3的输出比较A匹配中断使能。一旦ETIFR上的OCF3A置位,CPU即开始执行T/C3输出比较A匹配中断服务程序。Bit 3-OCIE3B:T/C3输出比较B匹配中断使能当该位被设为“1”,且状态寄存器中的I位被设为“1”时,T/C3的输出比较B匹配中断使能。一

54、旦ETIFR上的OCF3B置位,CPU即开始执行T/C3输出比较B匹配中断服务程序。Bit 2-TOIE3:T/C3溢出中断使能当该位被设为“1”,且状态寄存器中的I 位被设为“1” 时,T/C3的溢出中断使能。一旦ETIFR上的TOV3置位,CPU即开始执行T/C3溢出中断服务程序。Bit 1-OCIE3C:T/C3输出比较C匹配中断使能当该位被设为“1”,且状态寄存器中的I位被设为“1”时,T/C3的输出比较C匹配中断使能。一旦ETIFR上的OCF3C置位,CPU即开始执行T/C3输出比较C匹配中断服务程序。Bit 0-OCIE1C:T/C1输出比较C匹配中断使能当该位被设为“1”,且状态

55、寄存器中的I位被设为“1”时,T/C1的输出比较C匹配中断使能。一旦ETIFR上的OCF1C置位,CPU即开始执行T/C1输出比较C匹配中断服务程序。表2-16 扩展的定时器/计数器中断标志寄存器ETIFRTab.2-16 extended timer/counter interrupt flag register ETIFR-ICF3OCF3AOCF3BTOV3OCF3COCF1CBit 7:6:保留位Bit 5-ICF3:T/C3输入捕捉标志位外部引脚ICP3出现捕捉事件时ICF3置位。此外,当ICR3作为计数器的TOP值时,一旦计数器值达到TOP,ICF3也置位。执行输入捕捉中断服务程序

56、时ICF3自动清零。也可以对其写入逻辑“1”来清除该标志位。Bit 4-OCF3A:T/C3输出比较A匹配标志位当TCNT3与OCR3A匹配成功时,该位被设为“1”。强制输出比较(FOC3A)不会置位OCF3A。Bit 3-OCF3B:T/C3输出比较B匹配标志位当TCNT3与OCR3B匹配成功时,该位被设为“1”。强制输出比较(FOC3B)不会置位OCF3B。Bit 2-TOV3:T/C3溢出标志该位的设置与T/C3的工作方式有关。工作于普通模式和CTC模式时,T/C3溢出时TOV3置位。对工作在其它模式下的TOV3标志位置位。执行溢出中断服务程序时OCF3B自动清零。也可以对其写入逻辑“1”来清除该标志位。Bit 1-OCF3C:T/C3输出比较C匹配标志位当TCNT3与OCR3C匹配成功时,该位被设为“1”。强制输出比较(FOC3C)不会置位OCF3C。Bit 0-OCF1C:T/C1输出比较C匹配标志位当TCNT1与OCR1C匹配成功时,该位被设为“1”。强制输出比较(FOC1C)不会置位OCF1C。2.4 超声波避障模块超声波避障模块

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!