《AVR单片机概述.ppt》由会员分享,可在线阅读,更多相关《AVR单片机概述.ppt(45页珍藏版)》请在优知文库上搜索。
1、本章重点:本章重点: 1.AVR1.AVR单片机与单片机与5151单片机的区别单片机的区别 2.AVR2.AVR单片机的资源单片机的资源 3.3.如何使用如何使用AVRAVR单片机单片机单片机的类型:单片机的类型:l经典单片机经典单片机 51 单片机单片机l性价比高功能强大性价比高功能强大 AVR 单片机单片机l功能最强大的单片功能最强大的单片 ARM 单片机单片机AVRAVR单片机与单片机与5151单片机的区别单片机的区别1.511.51是复杂指令集,是复杂指令集,AVRAVR是精简指令集。是精简指令集。2. 512. 51速度慢,还要内部分频,速度慢,还要内部分频,AVRAVR速度快。速度
2、快。3. 513. 51的的IOIO口带负载能力小,口带负载能力小,AVRAVR输出电流输出电流20-40mA20-40mA,而且灌电流拉电流一样大。而且灌电流拉电流一样大。4. AVR4. AVR 外围硬件齐全,内部集成外围硬件齐全,内部集成I2CI2C 、SPISPI、 PWMPWM5.5.用用AVRAVR比较方便。程序量比较大,内存比较大,和比较方便。程序量比较大,内存比较大,和同级别的同级别的5151比,内部带比,内部带EEPEEP,内部晶振,内部复位,内部晶振,内部复位我们入门学什么单片机呢?我们入门学什么单片机呢?lAVRAVR已经成为代替已经成为代替5151单片机的主流。单片机的
3、主流。l学学AVRAVR单片机优先学习单片机优先学习mega16. mega16. 相对相对mega8mega8功能功能强大,相对强大,相对mega48mega48、mega128mega128价格更为低廉。价格更为低廉。 AVR单片机分类单片机分类1、AT90S 系列:系列: AT90S8515、8535,属于中属于中 档,适合一般系统开发档,适合一般系统开发 2、ATmega 系列:系列:Mega8、 Mega16,属于高,属于高 档,适合各种具有较高要求的系统档,适合各种具有较高要求的系统 注:目前注:目前AT90系列产品已很少用,多数使用系列产品已很少用,多数使用ATmega系列系列1
4、 、速度快、速度快 2 、片上资源丰富、片上资源丰富3 、驱动能力强、驱动能力强 4 、 功耗低功耗低5 、可选择型号种类多、可选择型号种类多 6 、 性价比高性价比高7 、 保密性好保密性好1、16K的的Flash2、Boot代码区代码区3、512字节的字节的EEPROM4、1K的的SRAM5、JTAG接口接口, 仿真和下载仿真和下载7、3个个带带PWM的定时器的定时器8、8路路10位的位的AD转换器转换器9、UART(异步串口)(异步串口)10、SPI(同步串口)(同步串口)11、看门狗、看门狗12、TWI(IIC)接口)接口13、模拟比较器、模拟比较器14、32个通用个通用I/O口口6、
5、支持、支持ISP下载下载AVR单片机单片机 型号的识别型号的识别lATmage16L-8PIl数字数字16表示单片机内部表示单片机内部flash容量为容量为16KB;lL表示该单片机为低功耗类型单片机。表示该单片机为低功耗类型单片机。l8表示芯片允许的最大时钟频率为表示芯片允许的最大时钟频率为8MHZ。lP表示单片机的封装形式,表示单片机的封装形式,P为双列直插为双列直插lI表示该芯片为工业级。表示该芯片为工业级。32位位I/O口口 ATmega16 ATmega16芯片有芯片有PORTAPORTA、PORTBPORTB、PORTCPORTC、PORTDPORTD(简称(简称PAPA、PBPB
6、、PCPC、PDPD)4 4组组8 8位,共位,共3232路通用路通用I/OI/O接口,分别对应于芯接口,分别对应于芯片上片上3232根根I/OI/O引脚。所有这些引脚。所有这些I/OI/O口都是口都是双(有的为双(有的为3 3)功能)功能复用的复用的。 其中其中第一功能均第一功能均作为数字通用作为数字通用I/OI/O接口使用,接口使用,复用功能复用功能则分别用于中断、时钟则分别用于中断、时钟/ /计数器、计数器、USRATUSRAT、I2CI2C和和SPISPI串行通串行通信、模拟比较、捕捉等应用。信、模拟比较、捕捉等应用。 定时器定时器l2个个8位定时器,位定时器,1个个16位定时器位定时
7、器。可做时钟分频器,供可做时钟分频器,供UART,I2C,SPI使用;使用;可形成三角波,与输出比较器匹配寄存器配合,生可形成三角波,与输出比较器匹配寄存器配合,生成占空比可变、频率可变、相位可变方波的设计方成占空比可变、频率可变、相位可变方波的设计方法(即脉宽调制输出法(即脉宽调制输出PWM)ATmega16最小系统设计(图最小系统设计(图1-3)l电源电源:5V和和3.3V两种电压。两种电压。l晶振电路晶振电路:内置:内置RC振荡电路,可产生振荡电路,可产生1MHZ,2MHZ,4MHZ,8MHZ的振荡频率。也可使用外部时的振荡频率。也可使用外部时钟,如图钟,如图1-3。l复位电路复位电路:
8、51单片机采用高电平复位,而单片机采用高电平复位,而AVR采用的是采用的是低电平复位。如图低电平复位。如图1-3lA/D转换滤波电路转换滤波电路:可在:可在AVCC串上一只串上一只10微亨的电感,微亨的电感,然后接一只然后接一只0.1微法的电容到地。微法的电容到地。lISP下载接口下载接口:使用双排:使用双排2*5插座,与插座,与PB5,PB6,PB7连。连。lJTAG仿真接口仿真接口:使用双排:使用双排2*5插座,与插座,与PC2,PC3,PC4,PC5连。连。类型类型符号符号关键字关键字数的表示范围数的表示范围所占位数所占位数整型整型字符型字符型实型实型有有无无(signed) int16
9、-3276832767(signed) short16-3276832767(signed) long32-2147483648214748364716unsigned int0655353204294967295unsigned long intunsigned short int16065535有有float323.4e-383.4e38有有double641.7e-3081.7e308有有char8-128127无无unsigned char802551、基本数据类型、基本数据类型2、AVR单片机单片机C语言的运算符语言的运算符与与C语言基本相同:语言基本相同:+ - + - * * /
10、 / (加(加 减减 乘乘 除)除) = = 1:0 1 0 1 0 0 0 00XA10X50 2.2、位左移、位左移1 0 1 0 0 0 0 1 1:0 1 0 0 0 0 1 00XA10X42 2.3、按位与、按位与 1 0 1 0 0 0 0 1 &0 1 0 1 0 0 0 10XA10X510 0 0 0 0 0 0 10X01 |0XA1& 0X51= 0X01按位与常用以下用途按位与常用以下用途l清零某一个端口,其他位保持不变:清零某一个端口,其他位保持不变:PORTA&=0X7Fl取某一位状态:取某一位状态:if(PORTA&0X80)=0) 程序语句程序语句l保留某位状
11、态,其余位均清零:保留某位状态,其余位均清零:PORTA|=0X802.4、按位或、按位或 1 0 1 0 0 0 0 1 |0 1 0 1 0 0 0 10XA10X511 1 1 1 0 0 0 10XF1 |0XA1 | 0X51= 0XF1l或运算或运算l常用来置常用来置1某一端口,其他位不变某一端口,其他位不变lPORTA|=0X80l异或运算符异或运算符l使特定位取反,其他位不变使特定位取反,其他位不变lPORTA=0X80;2.5 AVR单片机常用位操作指令单片机常用位操作指令 BIT(x) 定义为 1 (x) BIT(0)=0 0 0 0 0 0 0 1 BIT(3)=0 0
12、0 0 1 0 0 0BIT(3)=1 1 1 1 0 1 1 1PORTD|=BIT(7)PORTD|=(17) PORTD口的第口的第7位置位置1PORTD=BIT(7)PORTD口的第口的第7位取反位取反TCCR0|=(1CS01)|(1CS00);TCCR0功能寄存器的功能寄存器的CS01 、CS00位置位置1。PORTA | = (10) |( 13); 10表示表示00000001 13表示表示00001000 (10) |( 13)表示表示00001001 这里表示将这里表示将PORTA的第的第0,3位置位置1 与与PORTA | = (1PA0) |( 1PA3)一致一致 5、
13、中断处理函数、中断处理函数#pargma interrupt_handlerAVR有有20个中断源和个中断源和1个复位中断,向量号为个复位中断,向量号为1-21关键字关键字volatilevolatilel在变量前面加入在变量前面加入volatile这个关键字后,变量的值就不能改变了这个关键字后,变量的值就不能改变了lVoid main(void)llVolatile int i;lInt j;li=1; /不能被优化不能被优化i=1li=2; /不能被优化不能被优化i=1li=3; /不能被优化不能被优化i=1lj=1; /被优化被优化lj=2; / /被优化被优化lj=3; / j=3lC
14、 C语言体系结构是函数结构语言体系结构是函数结构 #include #include / Declare your global variables herevoid main(void).void function(void).预编译命令:文预编译命令:文件包含指令件包含指令函数头函数头函数体函数体主函数主函数main( ):C程序程序总是总是从从main( )函数开始执行。而函数开始执行。而不论其在程序中的位置如何。不论其在程序中的位置如何。当主函数执行完毕时,亦即当主函数执行完毕时,亦即程序执行完毕。程序执行完毕。定义了一些与定义了一些与I/0接口有关的接口有关的特定变量,他们对应单片机
15、内特定变量,他们对应单片机内部的特殊功能寄存器,用大写部的特殊功能寄存器,用大写字母书写。字母书写。流水灯程序流水灯程序l#includel#define uint unsigned intl#define uchar unsigned charlvoid delay_ms(uint xms) /延时函数延时函数llint i,j;lfor(i=0;ixms;i+)lfor(j=0;j1140;j+);lvoid port_init(void) /端口初始化函数端口初始化函数lDDRA=0XFF;lPORTA=0XFF;l流水灯程序流水灯程序lvoid main(void)lluchar te
16、mp;luchar i;lport_init();lwhile(1)llfor(i=0;i8;i+)lPORTA=0XFF;ltemp=120mA的电流;而当的电流;而当PORTx=0时,时,I/O引脚呈现低电平。引脚呈现低电平。AVR单片机开发软件的使用单片机开发软件的使用lICC AVR的安装与使用的安装与使用l编译生成编译生成*.hex文件后可写入文件后可写入proteus的的AVR单片机中进行仿真。单片机中进行仿真。l用用ICC AVR初始化程序的方法初始化程序的方法ISP下载器的安装与使用下载器的安装与使用lISP下载软件的使用下载软件的使用l熔丝位的设置(时钟源的设置)熔丝位的设置(时钟源的设置)lCKSEL3:0=0000 从外部输入时钟信号(有源晶振)从外部输入时钟信号(有源晶振)lCKSEL3:0=0001-0100 已校准的内部已校准的内部RC振荡振荡l0001 1.0MHZ 0010 2.0MHZl0011 4.0MHZ 0100 8.0MHZlCKSEL3:0=101x 0.4-0.9MHZ外部晶振外部晶振lCKSEL3:0=110 x 0.9-3.0MHZ外部