本书介绍了ICCAVR编译器使用C语言的有关知识,也穿插介绍ICCAVR与常用的其他C编译器使用C语言的一些异同点,并简单介绍ICCAVR的集成环境和ICCAGVR 6.26C能支持的库函数。本书重点放在如何利用C语言来操作AVR单片机的硬件资源,以及如何编写一些实用的程序段,最后再通过一些简单的应用实例来说明如何使用C语言一开发AVR芯片。本书适合开发AVR单片机的工程技术人员,也适合大中专院校电子专业的学生学习使用。
\r\n
第1章 AVR单片机与C语言\r\n 第1节 用C语言开发单片机的优势\r\n 第2节 AVR单片机的特点\r\n 第3节 从Keil C51向ICCAVR快速过渡\r\n第2章 ICCAVR使用的C语言基础知识\r\n 第1节 标识符、关键字和数据类型\r\n 第2节 数据的输入/输出\r\n 第3节 逻辑运算和判断选取控制\r\n 第4节 循环控制\r\n 第5节 数组\r\n 第6节 函数\r\n 第7节 指针\r\n 第8节 结构体与共用体\r\n 第9节 位运算\r\n 第10节 标识符的作用域和存储类型\r\n 第11节 编译预处理\r\n 第12节 在线汇编\r\n 第13节 C源程序常见错误分析\r\n 第14节 C源程序调试\r\n第3章 ICCAVR集成环境\r\n第4章 用ICCAVR C操作硬件资源\r\n第5章 ICCAVR应用实例\r\n第6章 GCCAVR软件使用初步\r\n第7章 CodeVisionAVR集成环境\r\n第8章 IAR软件使用初步\r\n附录A SL-AVR开发实验器简介\r\n附录B SL-mega8开发实验器原理图\r\n参考文献\r\n
ATMEL公司是世界上著名的高性能、低功耗、非易失性存储器和数字集成电路的一流半导体制造公司,公司最引人注目的是EEPROM电可擦除技术、闪速存储器技术和高质量、高可靠的生产技术。在CMOS器件生产领域中,ATMEL的先进设计水平、优秀的生产工艺及封装技术,一直处于世界领先地位,ATMEL将这些技术应用于单片机的生产,使单片机也具有优秀的品质。
在20世纪90年代初,ATMEL公司率先把MCS-51内核与其擅长的Flash技术相结合,推出轰动业界的AT89C51/52、1051/2051系列单片机,取代了8751系列单片机,至今还在大规模生产。1997年,ATMEL公司挪威设计中心的A先生与V先生出于市场需求考虑,推出全新配置的精简指令集(Reduced Instruction Set CPU)单片机,简称为 AVR。与其相比,采用复杂指令集CISC(Complex Instruction Set CPU)的单片机(如引系列),在效率、速度及指令格式上就显得比较复杂,更不适合于在嵌入式系统中使用。近几年来,随着AVR单片机不断改进并持续推出新的品种,现已形成系列产品,其中ATtiny、AT90与ATmega分别对应为低、中、高档产品,在国外已得到了广泛的应用。特别是近一两年,随着高档ATmega系列单片机的大幅降价,部分产品的价格甚至低于同类中档AT90系列单片机的价格,其性价比更高,在国内也有广阔的市场前景。
本书适合开发AVR单片机的工程技术人员,也适合大中专院校电子专业的学生学习使用。本书的编写以介绍用C语言开发AVR单片机入门为目的,假定读者已学习过AVR单片机的硬件结构及汇编指令、C语言(如Turboc)的基础知识。本书以介绍 ICCAVR编译器为主,希望通过结合应用实例的讲解,使读者能够熟练使用ICCAVR编译器来开发AVR单片机。本书还对国内市场上常见的GCCAVR、CodeVsion和 IAR编译器进行了简单的介绍,使读者能够举一反三,掌握其中一种或几种C编译器的使用。实际上,一般情况只要精通其中的一种C编译器就足够应用了。
本书先介绍ICCAVR编译器使用C语言的有关知识,也穿插介绍了ICCAVR与常用的其他 C编译器使用 C语言的一些异同点,并简单介绍了 ICCAVR的集成环境和 ICCAVR 6.26C支持的库函数。本书重点放在如何利用C语言来操作AVR单片机的硬件资源,以及如何编写一些实用的程序段,最后再通过一些简单的应用实例来说明如何使用C语言来开发AVR芯片。至于用C语言开发AVR的技巧与提高,以及目前正在单片机上开始流行的实时操作系统、USB和TCP/IP等完整应用实例,则放到编者正在编写的《AVR单片机C语言开发应用与提高》一书中讲述。
编者推荐读者使用ICCAVR编译器,因为ICCAVR提供30天的免费试用,在试用期内等同于标准版滁了部分功能被限制,如代码压缩优化等),能够生成INTEL HEX格式的烧写文件,而且价格低廉(相对于heIl、IAR等软件而言)、升级速度快,在国内又有双龙电子提供技术支持,用ICCAVR编写的程序能够很快转到IAR中使用。当然,MR和CodeVision以及GCCAVR相对ICCAVR而言还是各有所长的,特别值得一提的是free的GCCAVR,相对于ICCAVR还是很有竞争优势的,这几种C编译器目前还有市场,也说明了这一点。
由于ICCAVR升级较快,至本书截稿时,ICCAVR的最新版本为6.26C版(2003年1月10日推出),读者需要新版的软件,可以到imagecraft公司网站(httP://www.imagecraft.com/software)或其国内总代理双龙电于公司网站下载。
本书在出版前,ICCAVR和GCCAVR均推出新版软件,所以再次做了修订,其中与ICCAVR有关的内容已全部按6.26C版修订,因此本书所讲述ICCAVR均针对6.26C版。本书也针对新版的GCCAVR(20030115版)进行了修订,特别安装了过程与函数库,尽管在应用实例中有些语句还是使用旧版(20020625版)的API函数,而不是新版本建议使用的新语句,这一点请读者注意,但是这些用法并不会影响应用实例在新版中的编译结果。
本书在编写过程中,得到了双龙电子公司的大力支持;得到福建武夷通信设备厂厂长柯友德以及曾兴和张德群的指导和帮助;也得到建阳市教育局领导和建阳三中王庭霞的关心;耿德根和詹卫前对本书进行了全面的审阅,提出许多建议性的意见并修改了部分章节。本书在编写的过程中,也参考了2licBBS(http://www.2lic.com)和 c51BBS(http://www.c5lbbs.com)上部分网友的贴子,向这些无私奉献的网友致谢,并且对关心和支持本书的所有同志表示衷心的感谢。
鉴于国内目前还没有专门讲述用C语言开发AVR单片机的书籍,因此本书的出版只是为了满足初学者的需要而抛砖引玉。由于编者经验不足、水平有限,书中肯定会有不少缺点及错误,请广大读者批评指正,以便再版时能够改正。读者在学习本书过程中如有任何疑问,可以到由双龙电子公司赞助的2licBBS中“AVR单片机论坛”提出,本书编者及论坛中其他热心的网友会进行解答。
沈文
2003年2月于福建建阳