没有公告
第1章 AVR单片机与C语言1.l 用C语言开发单片机的优势1.2 AVR单片机的特点1.3 从Keil C51向ICCAVR快速过渡l.3.1 AVR和 MCS-51存储器配置的对比1.3.2 AVR输入/输出端曰的使用1.3.3 AVR和MCS-51定时器的对比1.3.4 AVR和MCS-51中断系统的对比1.3.5 AVR和MCS-51位操作的对比1.3.6 AVR单片机内置EEPROM的使用1.3.7 AVR单片机内置看门狗电路(Watchdog)的使用l.3.8 AVR和MCS-51中串口通信UART功能的对比1.3.9 C51的源代码向ICCAVR的快速转换第2章 ICCAVR使用的C语言基础知识2.l 标识符、关键字和数据类型2.1.l 标识符2.1.2 数据类型2.2 数据的输入/输出2.2.l 数据输入2.2.2 数据输出2.3 逻辑运算和判断选取控制2.3.l 关系表达式和逻辑表达式2.3.2 if语句2.3.3 条件运算符2.3.4 switch语句2.4 循环控制2.4.1 goto语句以及用goto语句构成循环2.4.2 while语句2.4.3 do…while语句2.4.4 for语句2.4.5 几种循环的比较2.5 数组2.5.l 一维数组的定义和引用2.5.2 二维数组的定义和引用2.5.3 字符数组2.6 函数2.6.l 库函数2.6.2 函数的定义和返回值2.6.3 函数的参数2.6.4 函数的调用2.6.5 中断服务函数2.7 指针2.7.l 变量的指针和指向变量的指针变量2.7.2 指针变量的定义和指针变量的基类型2.7.3 对指针变量的操作2.7.4 数组的指针和指向数组的指针变量2.7.5 字符串指针和指向字符串的指针变量2.7.6 函数的指针和指向函数的指针变量2.7.7 指针数组和指向指针的指针2.7.8 有关指针的数据类型和指针运算的小结2.8 结构体与共用体2.8.l 定义结构体类型变量的方法2.8.2 结构体变量的初始化2.8.3 结构体类型变量的引用2.8.4 定义一个结构体数组2.8.5 指向结构体类型数据的指针2.8.6 用指针处理链表2.8.7 共用体2.8.8 枚举类型2.8.9 用typedef定义类型2.9 位运算2.9.l 位运算符2.9.2 位域2.10 标识符的作用域和存储类型2.10.l 局部变量和全局变量2.10.2 局部变量及其作用域和生存期2.10.3 全局变量及其作用域和生存期2.11 编译预处理2.11.l 宏定义2.11.2 "文件包含"处理2.11.3 条件编译2.11.4 编译附注和扩充2.12 在线汇编2.12.l 汇编界面2.12.2 在线汇编中函数调用规则2.12.3 汇编语法2.12.4 ICCAVR增补的汇编伪指令2.13 C源程序常见错误分析2.14 C源程序调试第3章 ICCAVR集成环境3.1 ICCAVR编译器的安装与注册3.1.1 ICCAVR编译器的安装3.1.2 ICCAVR编译器的注册3.2 ICCAVR编译器的特点3.2.1 ICCAVR编译器简介3.2.2 ICCAVR中的文件类型及扩展名3.2.3 AVR存储器的使用3.2.4 启动文件3.3 ICCAVR菜单解释3.4 ICCAVR编译器的IDE环境3.4.1 工程管理3.4.2 创建并编译一个文件3.4.3 创建并编译一个工程文件3.5 用应用构筑向导生成一个工程文件3.6 ICCAVR 6.26C支持的库函数介绍3.6.l 头文件3.6.2 库源代码3.6.3 macros.h3.6.4 字符类型函数3.6.5 浮点类型函数3.6.6 标准输入/输出函数3.6.7 读/写内置EEPROM函数3.6.8 标准库和内存分配函数3.6.9 字符串函数3.6.10 变量参数函数3.6.11 堆栈检查函数3.6.12 双龙电子增补的库函数第4章 用 ICCAVR C操作硬件资源4.l 访问AVR的硬件4.2 位操作4.2.l 位操作的特点4. 2.2 位操作的C源程序实例及剖析4.2.3 使用单总线访问DS18B204.3 程序存储器和常量数据4.3.l 程序存储器和常量数据的特点4.3.2 程序存储器和常量数据的C语言源程序及剖析4. 3.3 利用程序空间常量表实现16位快速CRC4.4 C任务(TaskS)4.5 I/O寄存器4.5.1 I/O寄存器操作的特点4.5.2 I/O寄存器的C语言源程序及剖析4.5.3 实现1*8键盘和 LED显示4.6 数据存储器的绝对寻址4.6.l 数据存储器绝对寻址的操作特点4.6.2 绝对寻址数据存储器C语言源程序及剖析4.6.3 使用ST16C550扩展串口4.6.4 程序存储器的绝对定位4.6.5 EEPROM的绝对定位4.7 中断操作4.7.l 中断操作的特点(外部中断和定时/计数器中断)4.7.2 中断操作的C语言源程序及剖析4.7.3 4*4按键唤醒电路4.8 定时/计数器4.8.l 定时/计数器操作的特点4.8.2 定时/计数器操作的C语言源程序及剖析4.8.3 60Hz时钟发生器4.9 访问UART4.9.l 访问UART操作的特点4.9.2 访问UART操作的C语言源程序及剖析4.9.3 UART速率自适应检测4.10 访问内置的EEPROM4.10.l 访问单片机内置EEPROM操作的特卢4.10.2 访问内置EEPROM操作的C源程序实例及剖析4.10.3 初始化内置的EEPROM数据4.11 访问同步串行接口SPI4.11.l 访问SPI操作的特点4.11.2 访问SPI操作 C源程序实例及剖析4.11.3 使用 DataFlash存储器4.12 复位和Watchdog4.12.l 复位和Wachdog操作的特点4.12.2 复位和WDT的C源程序实例及剖析第5章 ICCAVR应用实例5.1 C程序优化5.1.l 程序结构的优化5.1.2 源程序中代码的优化5.2 延时函数5.3 读/写片内EEPROM5.4 信号周期测量程序5.5 键盘扫描程序5.6 生成模拟音乐5.7 利用I2C总线读写AT24C025.8 利用单总线访问DS18B205.9 用LCD显示中文及图形5.10 多通道 A/D变换5.11 A/D和 D/A变换5.12 利用PWM方式产生双音频信号5.13 通过UART使用PC机键盘5.14 ATmegas的boot引导IAP应用5. 15 ATmegas内置RTC的应用第6章 GCCAVR软件使用初步6.1 GCCAVR安装6.1.l 下载6.1.2 安装6.2 使用GCC AVR工具6.2.l 建立一个项目6.2.2 编译和链接6.2.3 使用"MAP"文件6.2.4 产生.hex文件6.2.5 使用makefile文件6.3 应用 API6.3.l 应用程序启动过程(Start Up)6.3.2 存储器API6.3.3 中断 API6.3.4 I/O端口 API6.3.5 看门狗 WDT API6.4 GCC AVR使用在线汇编6.4.1 GCC AVR的 ASM声明6.4.2 汇编代码6.4.3 输入/输出操作数6.4.4 Clobber寄存器6.4.5 在线汇编中使用#define定义的常量6.4.6 混合编程的寄存器使用6.5 使用定时/计数器6.5.l 定时/计数器06.5.2 定时/计数器16.6 通用异步串行通信UART6.6.l 发送数据6.6.2 接收数据6.7 库函数6.7.l 头文件介绍6.7.2 库函数功能介绍第7章 CodeVsionAVR集成环境7. 1 CodeVsionAVR编译器简介7.1.l 标识符7.1.2 关键字7.1.3 数据类型7.1.4 常量7.1.5 变量7.1.6 运算符7.1.7 存储空间7.1.8 访问寄存器7. 1.9 中断服务函数7. 1.10 C任务7.2 CodeVisionAVR菜单简介7.3 CodeVisionAVR编译器常用库函数简介7.3.l 字符类型函数7.3.2 标准输入/输出函数7.3.3 标准内存分配函数7.3.4 数学函数7.3.5 字符串函数7.3.6 BCD转换函数7.3.7 存储器访问函数7.3.8 延时函数7.3.9 LCD函数7.3.10 I2C总线函数7.3.11 单总线函数7.3.12 SPI函数7.3.13 电源管理函数7.3.14 格雷码转换函数7.4 CodeVisionAVR应用实例7.4.l 延迟函数7.4.2 字符型LCD7.4.3 访问AT24C027. 4.4 使用 I2C总线访问 LM757.4.5 使用12C总线访问PCF85637.4.6 使用单总线访问DS18207.4.7 使用SPI访问AD78967.4.8 8路A/D自动巡测系统第8章 IAR软件使用初步8.1 IAR Embedded Workbench简介8.1.l 安装8.l.2 配置IAR C编译器8.2 使用IAR寄存器和位操作8.2.l 使用IAR寄存器8.2.2 IAR位操作8.3 IAR中断向量和中断使用8.4 IAR数据类型和数据空间8.4.l 数据类型及取值范围8.4.2 数据空间8.5 IAR操作MCU外设8.5.l 使用定时/计数器8.5.2 使用 UART8.5.3 使用 EEPROM8.5.4 使用数据空间绝对地址8.6 使用IAR模拟I2C主模式程序实例附录A SL-AVR开发实验器简介附录B SL-mega8开发实验器原理图参考文献