学习笔记-avr单片机C编程1
和已经学过的51单片机相比,MEGA系列单片机是十分高级的单片机,功能强大,因而在构造和使用上也复杂了一些。
存储器区别,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脉宽调制波
PWM 是脉冲宽度调制的简称。实际上,PWM 波也是一个连续的方波,但在一个周期中,
其高电平和低电平的占空比是不同的。一个典型 PWM 的波形如图 8-15 所示。
在图中,T 是 PWM 波的周期,T1 是高电平的宽度,Vcc 是高电平值。当该 PWM 波通过一个积分器后(低通滤波器)后,我们可以得到其输出的平均电压为:
式中,T1/T 称为 PWM 波的占空比。控制调节和改变 T1 的宽度,即改变 PWM 的占空比,
就可以的到不同的平均电压输出。因此在实际应用中,常利用 PWM 波的输出,实现 D/A 转换,调节电压或电流控制改变马达的转速,实现变频控制等功能。
一个 PWM 方波的参数有频率、占空比和相位(在一个 PWN 周期中,高低电平转换的起始时间),其中频率和占空比为主要的参数。图 8-16 为 3 个占空比都为 2/3 的 PWM 波形,尽管他们输出的平均电压是一样的,但其中(b)的频率比(a)高一倍,相位相同;而(c)与(a)的频率相同,但相位不同。
在实际应用中,除了要考虑如何正确的控制和调整 PWM 波的占空比,获得达到要求的平
均电压的输出外,还需要综合的考虑 PWM 的周期、PWM 波占空比调节的精度(通常用 BIT 位表示)、积分器的设计等。而且这些因素相互之间也是互相牵连的。根据 PWM 的特点,在使用 AVR 定时计数器设计输出 PWM 时应注意以下几点:
1,首先应根据实际的情况,确定需要输出的 PWM 波的频率范围。这个频率与控制的对
象有关。如输出的 PWM 波用于控制灯的亮度,由于人眼不能分辨 42Hz 以上的频率,
所以 PWM 的频率应高于 42Hz,否则人眼会察觉到灯的闪烁。PWM 波的频率越高,经
过积分器输出的电压也越平滑。
2,同时还要考虑占空比的调节精度。同样,PWM 波占空比的调节精度越高,经过积分
器输出的电压也越平滑。但占空比的调节精度与 PWM 波的频率是一对矛盾,在相同
的系统时钟频率时,提高占空比的调节精度,将导致 PWM 波频率的降低。
3,由于 PWM 波的本身还是数字脉冲波,其中含有大量丰富的高频成分,因此在实际使
用中,还需要一个好的积分器电路,如采用有源低通滤波器,或多阶滤波器等,能
将高频成分有效的去除掉,从而获得比较好的模拟变化信号。
学习笔记avr单片机C编 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)