ATMEGA128单片机的数据实时采集系统 - 图文(4)

2019-08-31 12:36

沈阳理工大学学士学位论文

3 硬件设计

3.1 CUP选型

3.1.1 ATmega128 简介

本课题是基于AVR单片机。所以选用ATMEL公司推出的ATMEG128L完成。 ATmega128为基于AVR RISC 结构的8 位低功耗CMOS微处理器。由于其先进的指令集以及单周期指令执行时间,ATmega128 的数据吞吐率高达1MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。

3.1.2 ATmega128 特点

图3.1 ATmega128引脚图

12

沈阳理工大学学士学位论文

高性能、低功耗的 AVR?8 位微处理器先进的 RISC 结构 133 条指令 – 大多数可以在一个时钟周期内完成32 x 8 通用工作寄存器 + 外设控制寄存器全静态工作工作于16 MHz 时性能高达16 MIPS只需两个时钟周期的硬件乘法器非易失性的程序和数据存储器128K 字节的系统内可编程Flash 寿命: 10,000 次写 / 擦除周期 具有独立锁定位、可选择的启动代码区通过片内的启可以对锁定位进行编程以实现软件加密可以通过SPI 实现系统内编程JTAG 接口( 与IEEE 1149.1 标准兼容)遵循JTAG 标准的边界扫描功能支持扩展的片内调试通过JTAG 接口实现对Flash, EEPROM, 熔丝位和锁定位的编程外设特点两个具有独立的预分频器和比较器功能的8 位定时器 / 计数器两个具有预分频器、比较功能和捕捉功能的16位定时器 / 计数器具有独立预分频器的实时时钟计数器两路8 位PWM6路分辨率可编程 (2 到16位)的PWM输出比较调制器

8路10位ADC8 个单端通道个差分通道个具有可编程增益 (1x, 10x, 或200x)的差分通道 面向字节的两线接口 两个可编程的串行USART可工作于主机 / 从机模式的 SPI 串行接口具有独立片内振荡器的可编程看门狗定时器片内模拟比较器特殊的处理器特点上电复位以及可编程的掉电检测 片内经过标定的RC振荡器 片内 / 片外中断源6种睡眠模式: 空闲模式、ADC噪声抑制模式、省电模式、掉电模式、Standby 模式以及扩展的Standby 模式可以通过软件进行选择的时钟频率通过熔丝位可以选择ATmega103 兼容模式 全局上拉禁止功能I/O 和封装53个可编程I/O 口线64引脚TQFP 与 64 引脚 MLF 封装工作电压 2.7 - 5.5V ATmega128L 4.5 - 5.5V ATmega128 速度等级 0 - 8 MHz ATmega128L0 -16 MHz ATmega128L

3.1.3 定时器和计数器

T/C0是一个通用的,单通道8 位定时器/ 计数器模块。其主要特点如下: 单通道计数器,比较匹配发生时清除定时器( 自动加载)无毛刺的相位修正PWM 频率发生器,10位时钟预分频器,溢出和比较匹配中断源(TOV0 和OCF0),允许外部32kHz 钟振作为时钟与T/C0相关的寄存器T/C0控制寄存器(TCCR0)

图3.2寄存器TCCR0图

13

沈阳理工大学学士学位论文

8位寄存器TCCR0是T/C0的控制寄存器,通过对其各个标志位的设置,用户可以设计计数器的计数源、工作模式以及比较输出方式等进行选择,它的地址为﹩0053,初始化值为﹩00。Bit 7 – FOC0: 强制输出比较FOC0 仅在WGM指明非PWM模式时才有效。但是,为了保证与未来器件的兼容性,在使用PWM 时,写 TCCR0要对其清零。对其写1 后,波形发生器将立即进行比较操作。比较匹配输出引脚 OC0 将按照COM01:0的设置输出相应的电平。要注意FOC0 仅仅是一个启动信号,真正对强制输出比较起作用的是COM01:0的设置。 FOC0 不会引发任何中断,也不会在使用 OCR0 作为TOP的CTC模式下对定时器进行清零。读FOC0 的返回值永远为0。Bit 6, 3 – WGM01:0: 波形产生模式这几位控制计数器的计数序列,计数器最大值TOP的来源,以及使用何种波形。T/C 支持的模式有:普通模式,比较匹配发生时清除计数器模式(CTC) ,以及两种PWM 模式,如表3.1

表3.1

模式

WGM01 (CTC0) 0 1

0 0

WGM00(PW0)

0 1

T/C的工作模式

普通 PWM,相位修正

2 3

1 1

0 1

CTC 快速PWM

OCR0 OXFF

立即更新 TOP

MAX MAX

0XFF 0XFF TOP

OCR0的更新时间

立即更新 TOP

TOV0

置位时间 MAX BOTTM

Bit 5:4 – COM01:0: 比较匹配输出模式这些位控制输出比较引脚OC0的行为。若 COM01:0的任意一位或两位都置位,OC0输出功能将重载普通端口功能。此时数据方向寄存器 (DDR) 需要按照OC0功能进行设置。当OC0连接到物理引脚上时,COM01:0式时COM01:0的功能。

表3.2

COM01 0 0 1

1

COM00

0 1 0 1

说明 正常的端口操作,OC0未连接 比较匹配发生时OC0取反 比较匹配发生时OC0清0 比较匹配发生时OC0置位

14

沈阳理工大学学士学位论文

下面给出了当WGM01:0设置为快速PWM 模式时COM01:0的功能

表3.3

COM01 0 0 1 1

COM00

0 1 0 1

说明 正常的端口操作,OC0未连接 保留

比较匹配发生时OC0清零,计数到TOP时OC0置位 比较匹配发生时OC0置位,计数到TOP时OC0清零

Bit 2:0 ( CS02:0): 时钟选择位

这三个标志位用来选择设定T/C0的时钟源,如下表所示

表3.4

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 不工作 clkTOS/( 没有预分频) clkTOS/8 ( 来自预分频器) clkTOS/32 ( 来自预分频器) clkTOS/64 ( 来自预分频器) clkTOS/128 ( 来自预分频器) clkTOS/256 ( 来自预分频器) clkTOS/1024 ( 来自预分频器)

T/CO寄存器(TCNT0)

图3.3寄存器TCNT0图

通过T/C 寄存器可以直接对计数器的8 位数据进行读写访问。对 TCNT0寄存器的写

15

沈阳理工大学学士学位论文

访问将在下一个时钟阻止比较匹配。在计数器运行的过程中修改TCNT0的数值有可能丢失一次TCNT0和OCR0 的比较匹配。它的地址为$0052,初始化值为$00。 定时器/计数器中断屏蔽寄存器(TIMSK)

定时器/计数器中断屏蔽寄存器(TIMSK)的地址为$0057,初始化值为$00.寄存器TIMSK各位的定义如下:

图3.4寄存器TCNT0图

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 位置位时,中断例程得以执行。定时器/计数器中断标志寄存器(TIFR)

定时器/计数器中断标志寄存器(TIFR)的地址为$0056,初始化值为$00。寄存器各位的定义如下:Bit 1 – 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 都置位时,中断例程得到执行。

在PWM 模式中,当T/C0在$00 改变记数方向时,TOV0 置位。

16位定时/计数器116位的T/C 可以实现精确的程序定时( 事件管理) 、波形产生和信号测量。其主要特点如下真正的16位设计( 即允许16位的PWM)3 个独立的输出比较单元双缓冲的输出比较寄存器 一个输入比较单元 输入捕捉噪声抑制器 比较匹配发生时清除寄存器( 自动重载)无毛刺的相位修正PWM可变的PWM 周期频率发生器 外部事件计数器10个独立的中断源(TOV1 、OCF1A、 OCF1B 、 OCF1C 、 ICF1 、

16


ATMEGA128单片机的数据实时采集系统 - 图文(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:人教版六年级品德与社会上册教学计划

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: