AVR基本原理及应用

上传人:n**** 文档编号:50725042 上传时间:2018-08-10 格式:PPT 页数:133 大小:4.85MB
返回 下载 相关 举报
AVR基本原理及应用 _第1页
第1页 / 共133页
AVR基本原理及应用 _第2页
第2页 / 共133页
AVR基本原理及应用 _第3页
第3页 / 共133页
AVR基本原理及应用 _第4页
第4页 / 共133页
AVR基本原理及应用 _第5页
第5页 / 共133页
点击查看更多>>
资源描述

《AVR基本原理及应用 》由会员分享,可在线阅读,更多相关《AVR基本原理及应用 (133页珍藏版)》请在金锄头文库上搜索。

1、- 1 -第2章AVR基本原理及应用- 2 -本章目标 了解ATmega16的特点、外部引脚 理解ATmega16的存储储器映像 了解AVR熔丝丝位作用 掌握ATmega16通用I/O口的配置和使用 掌握ATmega16中断的配置和使用 掌握ATmega16定时时器的配置和使用 掌握USART和SPI的配置和使用- 3 -2.1 ATmega16概述2.2 通用I/O接口2.3 中断系统统2.4 定时时器2.5 USART2.6 SPI- 4 -2.1 ATmega16概述ATmega16是一款中档功能的AVR单片机较全面地体现了AVR的特点不仅适合对AVR的入门学习,也满足一般应用AVR的3

2、大系列:tinyAVR、megaAVR和XMEGA- 5 -2.1 ATmega16概述ATmega16特点ATmega16外部引脚ATmega16结构系统时钟与熔丝位复位源与复位方式- 6 -2.1.1 ATmega16特点采用先进RISC结构的AVR内核,大多数指令的执行时间为单个指令周期;片内含16KB的Flash程序存储器、1KB的SRAM数据存储器及512字节EEPROM数 据存储器;片内含JTAG接口,支持扩展的片内ISP调试功能,可实现对片内Flash、EEPROM 、 熔丝位配置等的下载编程;丰富的外围接口:3个定时/计数器接口、模拟比较器和模数转换器接口、面向字节 的两线接口

3、TWI(兼容IIC硬件接口),1个USART和1个SPI串行接口等;宽电压:ATmega16L为2.75.5V,ATmega16为4.55.5V,ATmega16A为 2.75.5V;高速度:ATmega16L为08MHz,ATmega16为016MHz,ATmega16A为 016MHz;低功耗:ATmega16L工作在1MHz、3V、25度时的典型功耗:正常模式为1.1mA, 空间模式为0.35mA,掉电模式为 void delay_ms(unsigned int ms); /1毫秒延时函数 void main(void) DDRC |= ( 1 0; i-) for(j = 1400;j

4、 0; j-) ; - 38 -2.2.3 通用I/O编程编程应用任务描述2.D.2:采用查询方式,编写一个按键控制LED亮灭的程序。- 39 -2.2.3 通用I/O编程【描述2.D.2】 main.c#include/*宏定义*/#define uchar unsigned char#define uint unsigned int/*函数声明*/void IO_init();void led_control(uchar i);void delay_ms(uint ms);uchar read_key();- 40 -2.2.3 通用I/O编程【描述2.D.2】 main.c/*主函数*/

5、void main(void)uchar key_state;IO_init();while(1)key_state = read_key(); /读按键的状态led_control(key_state);/根据按键状态控制LED亮灭- 41 -2.2.3 通用I/O编程【描述2.D.2】 main.c/*IO口初始化设置*/void IO_init()PORTC |= 1 0; i-)for(j = 1400;j 0; j-);- 44 -2.2.3 通用I/O编程【描述2.D.2】 main.c /*读取按键状态,含延时去抖动判定*/ uchar read_key() if(!PIND_B

6、it2) /PIND2为0 delay_ms(20); /延时20 ms 去抖动 if(!PIND_Bit2) return 0; /PIND2仍为0,SW2按下,返回值0else return 1; /PIND2不为0,由于按键抖动引起瞬时/低电平,SW2并未按下 else /PIND2不为0,SW2未按下,返回1 return 1; - 45 -2.3 中断系统中断是CPU在执行期间,由于系统内发生非寻常或非预期的急需处理事件,使CPU停止正在执行的程序而转去执行相应的事件处理程序,待处理完毕后自动返回原程序处执行的过程。本节将介绍ATmega16的中断源与中断向量、外部中断的工作原理及简

7、单编程应用。- 46 -2.3 中断系统中断源与中断向量外部中断- 47 -2.3.1 中断源与中断向量- 48 -2.3.1 中断源与中断向量21个中断包含:1个非屏蔽中断(RESET):RESET是系统复位中断,也称系统复位源,是ATmega16中唯一的一个不可屏蔽中断。当ATmega16由于各种原因被复位后,程序将跳到复位向量(默认为0x0000)处,在该地址处通常放置一 条跳转指令,跳转到主程序继续执行。3个外部中断( INT0、INT1和INT2 ):INT0、INT1和INT2是3个外部中断源,分别由ATmega16芯片的外部引脚PD2,PD3和PB2上的电平变化或状态触发。17个

8、内部中断:包括3个定时/计数器相关中断、USART和SPI传送中断等。- 49 -2.3.2 外部中断触发方式触发方式INT0INT1INT2说明 上升沿(异步)下降沿(异步) 任意电平变化 低电平无中断标志从表中可以看出:INT0和INT1均有上升沿触发、下降沿触发、任意电平变化触发和低电平触发4种方式,其中低电平触发无中断标志位。INT2有上升沿和下降沿触发2种方式,通过异步方式进行检测,即不需要I/O时钟信号。- 50 -2.3.2 外部中断相关寄存器与外部中断相关的寄存器有:状态寄存器SREG通用中断控制寄存器GICR通用中断标志寄存器GIFR微控制器控制寄存器MCUCR微控制器状态与

9、控制寄存器MCUCSR- 51 -2.3.2 外部中断相关寄存器1) SREG:状态寄存器SREG的BIT7(I位)为全局中断使能位,响应中断后,I位由硬件自动清零。使能全局中断通常采用下述代码实现:SREG=0x80;- 52 -2.3.2 外部中断相关寄存器2) GICR:通用中断控制寄存器GICR的高3位分别是INT1、INT0和INT2的中断允许控制位,为1时表示中断允许。GICR的低5位与外部中断的设置无关。若要开启INT0、INT1和INT2中断允许可通过下述代码实现:GICR |= ( 1void init(void); /端口和中断初始化/*主函数*/void main(voi

10、d)init();while(1);- 60 -2.3.3 外部中断编程【描述2.D.3】 main.c/*端口和中断初始化设置*/ void init(void) PORTC=0XFF; /C口全部引脚为高电平,保证上电时LED灯不亮 DDRC |= 1 unsigned int i=0; /溢出次数计数变量 unsigned int flag=0; /2s时间标志位 void main( void ) PORTD =0xFF; /端口D初始化 DDRD |= (1 void Timer1_init(); /T/C1初始化 void IO_init(); /端口C初始化 int i=0; /

11、控制led变量 /*主函数*/ void main( void ) IO_init(); Timer1_init(); TIFR |=(1 #include #define uchar unsigned char #define uint unsigned int uchar tx_buf30; /定义发送缓冲数组 void Usart_init(void); /串口初始化 void Usart_TransTest(uchar *p); /串口字符串发送函数 void delay_ms(uint ms); /1毫秒延时函数 /*串口发送测试主函数*/ int main( void ) Usar

12、t_init(); /串口初始化 while(1) memcpy(tx_buf,“usart transmit testingrn”,24); /字符串内存/拷贝函数 Usart_TransTest(tx_buf); /发送字符串 delay_ms(500); return 0; - 114 -2.5.3 USART编程【描述2.D.6】 main.c/*串口初始化函数*/void Usart_init(void)SREG i-)for(j = 1400;j 0; j-);- 117 -2.5.3 USART编程开启超级串口程序,按照实践2.G.3的方法设置好串口号,波特率设置为 9600(按

13、照代码设置)。程序运行后,超级串口端观察到的实验结果为:- 118 -2.6 SPI串行外设接口SPI(serialperipheral interface)总线系统是一种同步串行外设接口,允许MCU与各种外围设备以串行方式进行通信、数据交换,具有电路简单、控制方便、通信速度快、通信可靠等优点。很多器件如LCD模块、Flash/EEPROM存储器、数据输入/输出设备都采用了SPI接口。- 119 -2.6 SPISPI概述SPI配置- 120 -2.6.1 SPI概述SPI接口一般用于系统板上芯片之间的短距离通信,如单片机与外围EEPROM存储器、A/D及D/A转换器、实时时钟RTC等器件的直

14、接扩展和连接。采用SPI串行总线可以简化系统结构、降低系统成本,使系统具有灵活的可扩展性。SPI允许ATmega16和外设之间,或几个AVR单片机之间以标准SPI接口协议兼容的方式进行高速的同步数据传输。- 121 -2.6.1 SPI概述特点ATmega16 SPI的特点如下: 全双工、3线同步数据传输; 可选择的主/从机操作模式; LSB首先发送或MSB首先发送; 7种可编程的比特率; 传输结束中断标志; 写冲突标志检测; 可以从闲置模式被唤醒(从机模式下); 作为主机时具有倍速模式(CK/2)。- 122 -2.6.1 SPI概述系统组成典型的SPI通信系统由一个主机、一个从机和它们之间的4根信号线组成,通信连接如下图所示:MOS

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 电子/通信 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号