AVR单片机从零开始
<一> AVR单片机的特点:
单片机按CPU的处理能力分类目前有4位、8位、16位、32位,位数越高的单片机在数据处理能力和指令系统方面就越强,AVR、51、PIC都属于8位机。8位单片机也是目前应用最广泛的单片机,在各个领域上都可以看到它的身影。
AVR单片机是1997年由ATMEL公司研制开发的一种新型的8位单片机,AVR单片机分抵挡的ATtiny系列、中档的AT90S系列、高档的ATmega系列,本站推荐初学者选择学习的芯片型号是ATmega48/88/168或者ATmega16;不推荐使用中档的AT90S系列,因为它们都是比较早期的产品,现在它们早已经停产了。
AVR单片机全部型号(个别老型号除外)都支持ISP在线编程(烧写)、芯片可以反复擦写,这样学习AVR就变得非常的方便,设计者可以通过下载线直接在目标电路板上对芯片进行编程、调试,而不需要把芯片放在专用的编程器或者仿真器上烧写与调试。
51单片机也有一部分型号支持ISP在线编程,如AT89S51、AT89S52等。PIC单片机也是部分支持ISP,但是它有很多型号是OPT一次性烧写的,这些的确为难了广大初学者。
<二> AVR与51、PIC单片机相比具有一系列的优点,用通俗的说法主要体现在这几个方面:
1、在相同的系统时钟下AVR运行速度最快;
2、所有AVR单片机的FLASH、EEPROM蓄存器都可以反复烧写、支持在ISP在线编程(烧写),入门费用非常少;
3、片内集成多种频率的RC振荡器、上电自动复位、看门狗、启动延时等功能,使得电路设计变得非常简单;
4、每个IO口作输出时都可以输出很强的高、低电平,作输入时IO口可以是高阻抗或者带上拉电阻;
5、片内具有丰富实用的资源,如AD模数器、DA数模器,丰富的中断源、SPI、USART、TWI通信口、PWM等等;
6、片内采用了先进的数据加密技术,大大的提高了破解的难度;
7、片内FLASH空间大、品种多,引脚少的有8脚,多的有64脚等各种封装
8、部分芯片的引脚兼容51系列,代换容易,如ATtiny2313兼容AT89C2051,ATmega8515/162兼容AT89S51等
<三> 开发AVR单片机的基本条件:
1:下载线(烧写器/编程器)一个,常见的有“并口AVRISP下载线”和“AVRISP/STK500下载线”;
2:下载线的控制软件一套;
3:编译程序代码的开发软件一套(可以用C语言,也可以用汇编语言);
4:试验板一块;
5: 电脑一台。
<四> 下载线介绍:
下载线就是我们俗称的“烧写器”或者“编程器”,在AVR领域一般叫AVRISP下载线,不同的下载线与电脑的连接方式也有所不同,一般有并口、串口和USB接口。
并口AVRISP下载线的优点是价格便宜、结构简单,它里面就是一个74HC244芯片和几个阻容元件,缺点就是体积大、需要占用一个打印机的并行接口。并口下载线本身不需要升级,控制软件的版本不同,它所适应的芯片和功能也不同,控制软件一般使用双龙电子的SL-ISP软件,它中文界面、操作简单。
串口和USB接口的AVRISP下载线一般都是集成一个AVR单片机作为控制芯片,最常见的芯片就是ATMEGA8535,通过升级这个芯片的程序版本和控制软件的程序版本可以适应不同型号的AVR单片机。串口和USB口的不同点就是USB接口的下载线多了一个USB转串口的芯片而已。支持串口和USB口下载线的软件有很多,一般的AVR编译软件都支持它们,如CodeVisionAVR(简称CVAVR)、AVR Studio、IAR等,可惜到目前为止还没有一款好用的中文界面的软件支持它。
<五> 编译程序代码的开发软件介绍:
软件 |
介绍 |
AVR Studio |
AVR官方ATMEL公司的免费软件,汇编语言,集软硬件仿真、调试、下载于一体 |
WinAVR |
GCC语言,它的优点是免费 |
ATmanAVR |
GCC语言,它的优点是中文界面,集成AVR Studio软仿真器,有工程向导,共享软件 |
IAR |
C语言,共享软件,价格特贵! |
ICCAVR |
C语言,共享软件,听说生成的代码量稍为大一点 |
FASTAVR |
Basic语法,共享软件。集成较多常用外围器件的操作函数,简单易学 |
BASCOM-AVR |
Basic语法,共享软件。集成较多常用外围器件的操作函数,简单易学,集模拟仿真、下载烧写于一体,值得一提的就是它的帮助文件集成了较多的例子 |
CodeVisionAVR 简称CVAVR |
C语言,共享软件,一款优秀的AVR单片机C编译器,入门容易 集成较多常用外围器件的操作函数,支持绝大部分AVR芯片,支持位变量,风格类似Keil C51 集成串口/并口AVRISP等下载烧写功能 集成功能强大的代码生成向导 推荐 |
备注 |
业余 编程且没有单片机基础的电子爱好者,入门软件推荐使用 BASCOM-AVR; 已经有了一点单片机基础或者想真心学好AVR单片机的初学者,入门软件推荐使用 CVAVR; 不管是CVAVR,还是IAR、AVRGCC、ICCAVR等,它们的语法都是大同小异,它们的原理都是先将源代码转为汇编代码,再由AVR汇编编译器编译成最终的机器代码;但是它们又有各自的特点和差异,所以,入门软件选择简单易学的CVAVR不愧是一个明智的选择。 最终的机器代码一般是hex文件或者是二进制的bin文件。 |