当前位置:首页 > 循迹避障小车毕业设计
辽宁工程技术大学毕业设计(论文)
2)T/C0工作在普通模式(WGM21:0=0)不分频。普通模式由波形发生模式(WGM01:0)的控制位决定,在此模式下计数器不停地累加,计到8比特的最大值后(TOP=0xFF),由于数值溢出,计数器简单地返回到最小值0x00重新开始。在TCNT0为零的同一个定时器时钟里T/C溢出标志TOV2置位。时钟预分频器由CS02,CS01,CS00控制。
表2-17 定时器/计数器控制寄存器TCCR0 Tab.2-17 timer/counter control register TCCR0
FOC0
WGM00
COM01
COM00
WGM01
CS02
CS01
CS00
Bit 7-FOC0:强制输出比较
FOC0仅在WGM00位指明非PWM模式时才有效。但是,为了保证与未来器件的兼容性,使用PWM时,写TCCR0要对其清零。写“1”后,波形发生器将立即进行比较操作。比较匹配输出引脚OC0将按照COM01:0的设置输出相应的电平。要注意FOC0类似一个锁存信号,真正对强制输出比较起作用的是COM01:0的设置。 Bit 6,3-WGM01:0:波形产生模式
这几位控制计数器的计数序列,计数器最大值TOP的来源,以及产生何种波形。T/C支持的模式有:普通模式,比较匹配发生时清除计数器模式(CTC),以及两种PWM模式。
表2-18 波形产生模式的位定义
Tab.2-18 waveform generation mode bit description
模式 0 1 2 3
WGM01
0 0 1 1
WGM00
0 1 0 1
T/C的工作模式 普通 相位修正 CTC 快速PWM
TOP 0XFF 0XFF OCR2 0XFF
OCR0的更新时间
立即更新 TOP 立即更新 TOP
TOV0的置位时刻
MAX BOTTOM MAX MAX
表2-19 时钟选择位定义 Tab.2-19 clock select bit description
CS02 0 0 0 0 1 1 1 1
CS01 0 0 1 1 0 0 1 1
CS00 0 1 0 1 0 1 0 1
说明
无时钟源(T/C停止) clk/1(无预分频) clk/8(来自预分频器) clk/64(来自预分频器) clk/256(来自预分频器) clk/1024(来自预分频器) 外部Tn引脚,下降沿驱动 外部Tn引脚,上升沿驱动
21
基于ATMega128的循迹避障小车的设计与实现
表2-20 定时器/计数器寄存器TCNT0 Tab.2-20 timer/counter register TCNT0
TCNT0[7:0]
通过T/C寄存器可以直接对计数器的8位数据进行读写访问。
表2-21 定时器/计数器中断屏蔽寄存器TIMSK Tab.2-21 timer/counter interrupt mask register TIMSK
-
-
-
-
-
-
OCIE2
TOIE2
Bit 1-OCIE0:T/C0输出比较匹配中断使能
当OCIE0和状态寄存器的全局中断使能位I都为“1”时,T/C0的输出比较匹配中断使能。当T/C0的比较匹配发生,即TIFR中的OCF0置位时,中断例程得以执行。 Bit 0-TOIE0:T/C0溢出中断使能
当OCIE0和状态寄存器的全局中断使能位I都为“1”时,T/C0的溢出中断使当T/C0发生溢出,即TIFR中的TOV0位置位时,中断例程得以执行。
表2-22 定时器/计数器中断标志寄存器TIFR Tab.2-22 timer/counter interrupt flag register TIFR
-
-
-
-
-
-
OCF0
TOV0
Bit1-OCF0:输出比较标志0
当T/C0与OCR0(输出比较寄存器0)的值匹配时,OCF0置位。此位在中断例程里硬件清零,或者通过对其写1来清零。当SREG中的位I、OCIE0和OCF0都置位时,中断程序得到执行。
Bit 0-TOV0:T/C0溢出标志
当T/C0溢出时,TOV0置位,执行相应的中断例程时此位硬件清零。此外,TOV0也可以通过写1来清零。当SREG中的位I、TOIE0和TOV0都置位时,中断例程得到执行。
2.4.3 外部中断6
外部中断通过引脚PE6(INT6)触发。只要使能了中断,即使引脚INT6配置为输出,只要电平发生了合适的变化,中断也会触发。通过设置外部中EICRB(5:4),中断可以由下降沿、上升沿,低电平或者任意逻辑电平变换触发。当外部中断使能并且配置为电平触发,只要引脚电平为低,中断就会产生。
表2-23 外部中断控制寄存器EICRB Tab.2-23 External Interrupt Control Register EICRB
-
- ISC61 ISC60 - - - -
22
辽宁工程技术大学毕业设计(论文)
Bits 5:4-ISC61,ISC60:外部中断6敏感电平控制位
外部中断6由引脚INT6激活,如果SREG寄存器的I标志和EIMSK寄存器相应的中断屏蔽位置位的话。检测信号跳变沿之前MCU首先对INT6引脚进行采样。如果选择了跳变沿中断或是电平变换中断(上升沿和下降沿都将产生中断),只要信号持续时间大于一个时钟周期,中断就会发生,否则无法保证触发中断。要注意由于XTAL分频器的存在,CPU时钟有可能比XTAL时钟慢。若选择了低电平中断,低电平必须保持到当前指令完成,然后才会产生中断。而且只要将引脚拉低,就会引发中断请求。
表2-24 中断敏感电平控制 Tab.2-24 interrupt sense control
ISC61 0
0 1 1
ISC60 0 1 0 1
说明
INT6为低电平时产生中断请求
INT6引脚上任意的逻辑电平变换都将引发中断
只要两次采样发现INT6上发生了下降沿就会产生中断请求 只要两次采样发现INT6上发生了上升沿就会产生中断请求 表2-25 外部中断屏蔽寄存器EIMSK Tab.2-25 external interrupt mask register EIMSK
INT7
INT6
INT5
INT4
INT3
INT2
INT1
INT0
Bits 7:0-INT7:INT0:外部中断请求7:0使能
当INT7-INT0为“1”,而且状态寄存器SREG的I 标志置位,相应的外部引脚中断就使能了。外部中断控制寄存器EICRA和EICRB的中断敏感电平控制位决定中断是由上升沿、下降沿,还是电平触发的。只要使能,即使引脚被配置为输出,只要引脚电平发生了相应的变化,中断可将产生。
表2-26 外部中断标志寄存器EIFR Tab.2-26 external interrupt flag register EIFR
INTF7
INTF6
INTF5
INTF4
INTF3
INTF2
INTF1
INTF0
Bits 7:0-INTF7:INTF0:外部中断标志7-0
INT7:0引脚电平发生跳变时触发中断请求,并置位相应的中断标志INTF7:0。如果SREG的位I 以及EIMSK寄存器相应的中断使能位为“1”,MCU既跳转到中断例程。中断例程执行时标志被硬件清零。此外,标志位也可以通过写入“1”的方式来清零。
2.5 步进电机模块
采用减速步进电机28BYJ48,该电机为5线4相制电机,工作电压5V 可以用普通
23
基于ATMega128的循迹避障小车的设计与实现
ULN2003芯片驱动。步进角度:5.625 x 1/64(八拍),减速比:1/64。在该设计中采用单四拍工作方式。
ULN2003是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。该电路的特点如下:ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。ULN2003工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V的电压,输出还可以在高负载电流并行运行。采用集电极开路输出,输出电流大,故可直接驱动继电器或固体继电器。用于感性负载时,COM引脚接负载电源正极,实现续流作用[8]。
图2-11 步进电机驱动电路 Fig.2-11 stepper motor drive circuit
2.6 液晶显示模块
本设计采用HG122329带中文字库的液晶显示屏显示小车运行状态。主要显示小车运行时间,实时运行状况。该液晶屏可以并行传输,也可以串行传输。在这个设计中,考虑到ATMega128有足够的引脚,故采用并行传输。
表2-27 液晶屏引脚功能 Tab.2-27 pin function of LCD
引脚 1 2 3 4
符号 GND VCC VO A0(CS)
电平 0V 5V - H/L
(串行片选信号)
指令数据选择信号:H读,L写
5
R/W(SID)
H/L
(串行数据输入输出)
24
引脚说明 地 电源 对比度调节,悬空
指令数据选择信号:H数据,L指令
共分享92篇相关文档