学习笔记-avr单片机C编程1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学习笔记-avr单片机C编程1
这几天在看AVR 单片机的书。
ASURO 的项目的编程是建立在已有的成熟
函数上,所以导致我对AVR 单片机的运行机理(中断、定时器的使用)不甚
了解。
突然一个个超声波模块的程序放在眼前,才发现我连AVR 单片机的了
解基本上等于零。
另外一个项目需要用mega128 控制直流电机,还有和无线、
有线遥控器的通信,电路(模块)需要自己搭起来,那么就必须知道AVR 单
片机的原理和编程。
和已经学过的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|=(1PWM 脉宽调制波PWM 是脉冲宽度调制的简称。
实际上,PWM 波也是一个连续的方波,但在一个周期中,其高电平和低电平的占空比
是不同的。
一个典型PWM 的波形如图8-15 所示。
在图中,T 是PWM 波的周期,T1 是高电平的宽度,Vcc 是高电平值。
当。