沈阳理工大学学士学位论文
TOV3 、 OCF3A 、 OCF3B 、 OCF3C和ICF控制寄存器A(TCCR1A) 寄存器TCCR1A的地址为$004F,初始化值为$00。其各位的定义如下:
图3.5寄存器TCCR1A图
Bit 7:6 – COMnA1:0: 通道A 的比较输出模式 Bit 5:4 – COMnB1:0: 通道B 的比较输出模式 Bit 3:2 – COMnC1:0: 通道C 的比较输出模式
COMnA1:0 、COMnB1:0 与COMnC1:0分别控制OCnA 、OCnB 与OCnC 的状态。如果COMnA1:0(COMnB1:0 或COMnC1:0)的一位或两位被写入 \”,OCnA( OCnB或OCnC )输出功能将取代I/O 端口功能。此时OCnA( OCnB 或OCnC ) 相应的输出引脚数据方向控制必须置位以使能输出驱动器。
当OCnA(OCnB 或OCnC )与物理引脚相连时,COMnx1:0 的功能由WGMn3:0的设置决定。
控制寄存器B (TCCR1B)
寄存器TCCR1B的地址为$004E,初始化值为$00.其各位的定义如下:
图3.6寄存器TCCR1B图
Bit 7 – ICNCn: 输入捕捉噪声抑制器
置位ICNC1 将使能输入捕捉噪声抑制功能。此时外部引脚ICPn 的输入被滤波。其作用是从ICPn 引脚连续进行4 次采样。如果4 个采样值都相等,那么信号送入边沿检测器。因此使能该功能使得输入捕捉被延迟了4 个时钟周期。 Bit 6 – ICESn: 输入捕捉触发沿选择
该位选择使用ICPn 上的哪个边沿触发捕获事件。ICESn 为\” 选择的是下降沿触发
17
沈阳理工大学学士学位论文
输入捕捉;ICESn 为\” 选择的是逻辑电平的上升沿触发输入捕捉。
按照ICESn 的设置捕获到一个事件后,计数器的数值被复制到 ICRn 寄存器。捕获事件还会置为ICFn。如果此时中断使能,输入捕捉事件即被触发。当ICRn 用作TOP值(见TCCRnA与TCCRnB寄存器中WGMn3:0位的描述 ) 时,ICPn与输入捕捉功能脱开,从而输入捕捉功能被禁用。 Bit 5 – 保留位
该位保留。为保证与将来器件的兼容性,写TCCRnB时,该位必须写入\”。 Bit 2:0 – CSn2:0:时钟选择
这三个标志位用于选择T/C1 的时钟源
表3.5
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/64( 来自预分频器) clkTOS/256 ( 来自预分频器) clkTOS/1024 ( 来自预分频器) 外部Tn引脚。下降沿驱动后 外部Tn引脚。上降沿驱动
控制寄存器C(TCCR1C)
控制寄存器TCCR1C的地址为$007A,初始化值为$00.其各位的定义如下:
图3.7寄存器TCCR1C图
Bit 7 – FOC1A:强制输出比较通道A Bit 6 – FOC1B: 强制输出比较通道B Bit 5 – FOC1C: 强制输出比较通道C
18
沈阳理工大学学士学位论文
当标志位只在WGMn3:0 位被设置为非PWM 模式时才有效。当对写\” 将强制波形发生器产生一次成功的比较匹配,并使波形发生器依据 COMnx1:0 的设置而改变的输出状态的电平。FOC1x的作用如同一个选通信号,COMnx1:0 的设置才是最终确定比较匹配结果的因素。这三个标志位不会产生任何中断请求,也不会对计数器清零。FOC1x 的读返回值总为零。Bit 4:0 – 保留位
这几位保留。为保证与将来器件的兼容性,写TCCR1C时,这几位必须写入\”。 定时/计数器1寄存器(TCNT1H和TCNT1L)
TCNT1H 与TCNT1L 组成了T/C1的数据寄存器TCNT1。通过它们可以直接对定时器/计数器单元的16位计数器进行读写访问。为保证CPU对高字节与低字节的同时读写,必须使用一个8 位临时高字节寄存器TEMP 。TEMP 是所有的16位寄存器共用的。 定时/计数器1寄存器TCNT1H(高8位)的地址为$004D,TCNT1L(低8位)的地址为$004C,初始化值都为$00。其各位的定义如下:
图3.8寄存器TCNT1图
3.1.4 AVR单片机的中断系统
中断系统的定义中断是单片机实时的处理内部或外部事件的一种内部机制。当某种内部或外部事件发生时,单片机的中断系统将迫使CPU暂停正在执行的程序,转而去执行中断事件的处理,中断处理完毕,又返回被中断的程序处,继续执行下去。中断系统即为中断装置和中断处理程序的统称。中断系统是计算机的重要组成部分。中断系统提高了计算机的应用效率,故此中断系统一般应用在实时控制、故障自动处理、计算机与外围设备间的数据传送等。中断系统的功能实现中断相应和中断返回。实现优先权排队。
实现中断嵌套。中断系统的优点分时操作实时处理唤醒状态故障处理中断源的分类 非屏蔽中断:MCU不能屏蔽的中断源产生的中断请求信号,一旦发送中断请求,MCU必须应该中断。外部中断RESET产生的复位信号是非屏蔽中断。可屏蔽中断:用户程序通过中断屏蔽标志位对中断源产生的中断请求信号进行控制,即允许或禁止MCU对该中断
19
沈阳理工大学学士学位论文
的响应。可屏蔽中断的中断请求是否被MCU响应。最终是由用户程序控制的。在单片机中,大多的中断都是可屏蔽中断。软件中断:CPU具有相应的软件中断指令,当MCU执行这条指令是就进入软件中断服务,以完成特定的功能。大多数单片机都不具备软件中断的指令,因此不能直接实现软件的功能。因此,在单片机系统中,若要实现软件中断,必须通过间接的方式实现。
3.1.5 可编程IO端口
在ATmege128单片机中,提供了53个可编程的I/O端口,分别为PA-PG口。当用SBI或CBI指令改变某个I/O引脚的输入/输出方向、改变引脚的输出电平或在禁止/允许引脚的内部上拉电阻时,其它引脚的状态不会被改变。同时它可以输出或吸收大电流,直接驱动LED。当上拉电阻激活且引脚被拉低时该引脚会输出电流。I/O端口的特点
AVR单片机大部分I/O端口都具有双重功能,可分别与片内的各种不同功能的外围接口电路组合成一些可以完成特殊功能的I/O口,如定时器、计数器、串行接口、模拟比较器、捕捉器等。AVR单片机通用的主要特点如下:可自行定义输入输出工作方式。 输出/吸收大电流。内部上拉电阻可控。DDRX可控的方向寄存器。
PA口为8 位双向I/O 口,并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。复位发生时端口A 为三态。它配有三个数据存储地址,分别为数据寄存器PORTA($003B)、数据方向控制寄存器DDRA($003A)和A口的输出引脚寄存器PINA($0039).A口的输入引脚地址为只读方式,而数据方向控制寄存器和数据寄存器为读写方式。
寄存器端口A数据寄存器(PORTA)的各位定义如下:
图3.9 PORTA图
端口A数据方向控制寄存器(DDRA)的各位定义如下:
20
沈阳理工大学学士学位论文
图3.10 DDRA图
端口A输入引脚寄存器(PINA)的各位定义如下:
图3.11 PINA图
第二功能
端口A的第二功能为外部存储器接口的低字节地址以及数据。
图3.12 PORTA第二功能图
PB口B 为8 位双向I/O 口,并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。复位发生时端口B 为三态。它配有三个数据存储地址,分别为数据寄存器PORTB($0038)、数据方向控制寄存器DDRB($0037)和B口的输出引脚寄存器PINB($0036).B口的输入引脚地址为只读方式,而数据方向控制寄存器和数据寄存器为读写方式。寄存器与A 相似。 B口的第二功能如表:
表3.6
引脚 PB7
第二功能
OC2/OC1C (T/C2 的输出比较和PWM输出,或是T/C1的输出比较和PWM输出C)
PB6
OC1B (T/C1 的输出比较和PWM 输出B)
21