这几天在看AVR单片机的书。ASURO的项目的编程是建立在已有的老练函数上,所以导致我对AVR单片机的运转机理(中止、守时器的运用)不甚了解。忽然一个个超声波模块的程序放在眼前,才发现我连AVR单片机的了解基本上等于零。别的一个项目需求用mega128操控直流电机,还有和无线、有线遥控器的通讯,电路(模块)需求自己搭起来,那么就必须知道AVR单片机的原理和编程。
和现已学过的51单片机比较,MEGA系列单片机是非常高档的单片机,功用强大,因而在结构和运用上也杂乱了一些。 PWM脉宽调制波 PWM 是脉冲宽度调制的简称。实践上,PWM 波也是一个接连的方波,但在一个周期中, 在图中,T 是 PWM 波的周期,T1 是高电平的宽度,Vcc 是高电平值。当该 PWM 波通过一个积分器后(低通滤波器)后,咱们能够得到其输出的均匀电压为: 式中,T1/T 称为 PWM 波的占空比。操控调理和改动 T1 的宽度,即改动 PWM 的占空比, 在实践运用中,除了要考虑怎么正确的操控和调整 PWM 波的占空比,取得到达要求的平
存储器差异,AVR分为5个部分,拜访指令上有差异。
输入输出,51是准双向口,每个端口只要一个寄存器。而AVR的I/O口是规范双向口,每个端口有三个寄存器,DDRX(输出使能),PORTX(输出数据,上拉使能?),PINX(输入管脚)。
守时器,51的守时器两种用法,即以晶振频率的十二分频信号作为输入的守时器工作方式,或以外部引脚INT0,INT1上输入信号的计数器工作方式。 而AVR的守时器除了一般的守时/计数功用外,还有一些增强的功用,如:比较匹配(?),PWM调制器,由ICP引脚或模仿比较器触发的捕捉功用(?)。在挑选输入信号上,分频比有1、8、64、256、1024几种,作为计数器运用,既可上升沿触发,也能够下降沿触发。如下,一部分和守时器相关的寄存器
T0: TCCR0: CS02 CS01 CS00 分频比
T1: TCCR1A: COM1X1/0
PWM11/0
TCCR1B: ICNC1,CTC1,ICES1
TCNT1
OCIX 等等
C中的一些位操作现已模块化了,如PORTB|=(1<<2);D2方位一
PORTB&=~(1<<6);D6位清零
TCCR2=(1<
其高电平和低电平的占空比是不同的。一个典型 PWM 的波形如图 8-15 所示。
就能够的到不同的均匀电压输出。因此在实践运用中,常运用 PWM 波的输出,完成 D/A 转化,调理电压或电流操控改动马达的转速,完成变频操控等功用。
一个 PWM 方波的参数有频率、占空比和相位(在一个 PWN 周期中,凹凸电平转化的开始时刻),其间频率和占空比为首要的参数。图 8-16 为 3 个占空比都为 2/3 的 PWM 波形,虽然他们输出的均匀电压是相同的,但其间(b)的频率比(a)高一倍,相位相同;而(c)与(a)的频率相同,但相位不同。
均电压的输出外,还需求归纳的考虑 PWM 的周期、PWM 波占空比调理的精度(通常用 BIT 位表明)、积分器的规划等。并且这些要素相互之间也是相互牵连的。依据 PWM 的特色,在运用 AVR 守时计数器规划输出 PWM 时应留意以下几点:
1,首要应依据实践的状况,确认需求输出的 PWM 波的频率规模。这个频率与操控的对
象有关。如输出的 PWM 波用于操控灯的亮度,因为人眼不能分辩 42Hz 以上的频率,
所以 PWM 的频率应高于 42Hz,不然人眼会察觉到灯的闪耀。PWM 波的频率越高,经
过积分器输出的电压也越滑润。
2,一起还要考虑占空比的调理精度。相同,PWM 波占空比的调理精度越高,通过积分
器输出的电压也越滑润。但占空比的调理精度与 PWM 波的频率是一对对立,在相同
的体系时钟频率时,进步占空比的调理精度,将导致 PWM 波频率的下降。
3,因为 PWM 波的自身仍是数字脉冲波,其间含有很多丰厚的高频成分,因此在实践使
用中,还需求一个好的积分器电路,如选用有源低通滤波器,或多阶滤波器等,能
将高频成分有用的去除去,然后取得比较好的模仿改变信号。