《AVR系列单片机C语言编程与应用实例》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:金春林等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2003
  • ISBN:7302074577
  • 页数:324 页
图书介绍:本书首先介绍了AVR单片机------A790LS8535的基本结构;然后介绍了C语言的数据类型、函数和指针等基础知识;最后文章结合大量实例,讲解了如何使用C语言开发AVR系列单片机。

第1章 单片机系统概述 1

1.1 AVR系列单片机的特点 1

1.2 AT90系列单片机简介 3

第2章 AT90LS8535单片机的基础知识 5

2.1 AT90LS8535单片机的总体结构 5

2.1.1 AT90LS8535单片机的中央处理器 7

2.1.2 AT90LS8535单片机的存储器组织 8

2.1.3 AT90LS8535单片机的I/O接口 9

2.1.4 AT90LS8535单片机的内部资源 10

2.1.5 AT90LS8535单片机的时钟电路 12

2.1.6 AT90LS8535单片机的系统复位 13

2.1.7 AT90LS8535单片机的节电方式 14

2.1.8 AT90LS8535单片机的芯片引脚 15

2.2 AT90LS8535单片机的指令系统 16

2.2.1 汇编指令格式 20

2.2.2 寻址方式 20

2.2.3 伪指令 22

2.2.4 指令类型及数据操作方式 24

2.3 应用程序设计 29

2.3.1 程序设计方法 29

2.3.2 应用程序举例 30

第3章 AT90LS8535单片机的C编程 33

3.1 支持高级语言编程的AVR系列单片机 33

3.2 AVR的C编译器 34

3.3 ICC AVR介绍 35

3.3.1 安装ICC AVR 35

3.3.2 设置ICC AVR 37

3.4 用ICC AVR编写应用程序 39

3.5 下载程序文件 41

第4章 数据类型、运算符和表达式 43

4.1 ICC AVR支持的数据类型 43

4.2 常量与变量 44

4.2.1 常量 44

4.2.2 变量 45

4.3 AT90LS8535的存储空间 46

4.4 算术和赋值运算 47

4.4.1 算术运算符和算术表达式 47

4.4.2 赋值运算符和赋值表达式 49

4.5 逻辑运算 50

4.6 关系运算 51

4.7 位操作 52

4.7.1 位逻辑运算 53

4.7.2 移位运算 54

4.8 逗号运算 55

第5章 控制流 57

5.1 C语言的结构化程序设计 57

5.1.1 顺序结构 57

5.1.2 选择结构 58

5.1.3 循环结构 59

5.2 选择语句 59

5.2.1 if语句 59

5.2.2 switch分支 62

5.2.3 选择语句的嵌套 63

5.3 循环语句 64

5.3.1 while语句 64

5.3.2 do...while语句 65

5.3.3 for语句 66

5.3.4 循环语句嵌套 67

5.3.5 break语句和continue语句 68

第6章 函数 71

6.1 函数的定义 71

6.1.1 函数的定义的一般形式 71

6.1.2 函数的参数 73

6.1.3 函数的值 75

6.2 函数的调用 76

6.2.1 函数的一般调用 76

6.2.2 函数的递归调用 79

6.2.3 函数的嵌套调用 82

6.3 变量的类型及其存储方式 83

6.3.1 局部变量 84

6.3.2 局部变量的存储方式 85

6.3.3 全局变量 87

6.3.4 全局变量的存储方式 90

6.4 内部函数和外部函数 92

6.4.1 内部函数 92

6.4.2 外部函数 92

第7章 指针 94

7.1 指针和指针变量 94

7.2 指针变量的定义和引用 95

7.2.1 指针变量的定义 95

7.2.2 指针变量的引用 96

7.2.3 指针变量作为函数参数 97

7.3 数组与指针 98

7.3.1 指向数组元素的指针变量 98

7.3.2 数组元素的引用(通过指针) 99

7.3.3 数组名作为函数参数 101

7.3.4 指向多维数组的元素的指针变量 106

7.4 字符串与指针 108

7.4.1 字符串的表示形式 108

7.4.2 字符串指针变量与字符数组的区别 111

7.5 函数与指针 111

7.5.1 函数指针变量 112

7.5.2 指针型函数 113

7.6 指向指针的指针 114

7.7 有关指针数据类型和运算小结 116

7.7.1 有关指针的数据类型的小结 116

7.7.2 指针运算的小结 116

8.1 结构体的定义和引用 118

8.1.1 结构体类型变量的定义 118

第8章 结构体和共用体 118

8.1.2 结构体类型变量的引用 120

8.2 结构类型的说明 121

8.3 结构体变量的初始化和赋值 122

8.3.1 结构体变量的初始化 122

8.3.2 结构体变量的赋值 123

8.4 结构体数组 124

8.4.1 结构体数组的定义 124

8.4.2 结构体数组的初始化 125

8.5 指向结构体类型变量的指针 127

8.5.1 指向结构体变量的指针 127

8.5.2 指向结构体数组的指针 129

8.5.3 指向结构体变量的指针做函数参数 130

8.6 共用体 131

8.6.1 共用体的定义 131

8.6.2 共用体变量的引用 132

9.1 I/O口 135

9.1.1 端口A 135

第9章 AT90LS8535的内部资源 135

9.1.2 端口B 136

9.1.3 端口C 141

9.1.4 端口D 143

9.1.5 I/O口的编程 148

9.2 中断 148

9.2.1 单片机的中断功能 148

9.2.2 AT90LS8535单片机的中断系统 149

9.2.3 ICC AVRC编译器的中断操作 153

9.2.4 中断的编程 153

9.3.1 数据通信基础 155

9.3 串行数据通信 155

9.3.2 AT90LS8535的同步串行接口 156

9.3.3 AT90LS8535的异步串行接口 160

9.4 定时/计数器 167

9.4.1 定时/计数器的分频器 167

9.4.2 8位定时/计数器0 168

9.4.3 16位定时/计数器1 170

9.4.4 8位定时/计数器2 178

9.5 EEPROM 182

9.5.1 与EEPROM有关的寄存器 182

9.5.2 EEPROM读/写操作 183

9.5.3 EEPROM的应用举例 184

9.6 模拟量输入接口 184

9.6.2 ADC的使用 185

9.6.1 模数转换器的结构 185

9.6.3 与模数转换器有关的寄存器 186

9.6.4 ADC的噪声消除 188

9.6.5 ADC的应用举例 188

9.7 模拟比较器 189

9.7.1 模拟比较器的结构 189

9.7.2 与模拟比较器有关的寄存器 190

9.7.3 模拟比较器的应用举例 191

第10章 AT90LS8535的人机接口编程 193

10.1 键盘接口 193

10.1.1 非矩阵式键盘 193

10.1.2 矩阵式键盘 198

10.2 LED显示输出 200

10.2.1 LED的静态显示 202

10.2.2 LED的动态扫描显示 203

10.2.3 动态扫描显示专用芯片MC14489 204

10.3 LCD显示输出 208

10.3.1 字符型LCD 208

10.3.2 点阵型LCD 214

10.4 ISD2500系列语音芯片的编程 224

10.4.1 ISD2500的片内结构和引脚 224

10.4.2 ISD2500的操作 225

10.4.3 ISD2500和单片机的接口及编程 227

10.5 TP-μP微型打印机 229

10.5.1 TP-μP打印机的接口和逻辑时序 229

10.5.2 P-μP打印机的打印命令和字符代码 230

10.5.3 AT90LS8535与TP-μP系列打印机的接口及编程 230

10.6 IC卡 232

10.6.1 IC卡读写装置 232

10.6.2 IC卡软件 233

第11章 AT90LS8535的外围扩展 246

11.1 简单I/O扩展芯片 246

11.1.1 用74LS377扩展数据输出接口 246

11.1.2 数据输入接口 247

11.2 模拟量输出 250

11.2.1 D/A转换器简介 250

11.2.2 8位数模转换器DAC0832 252

11.2.3 8位数模转换器与单片机的接口及编程 253

11.2.4 12位数模转换器DAC1230 255

11.2.5 12位数模转换器与单片机的接口及编程 257

11.3 可编程I/O扩展芯片8255A 258

11.3.1 8255A的引脚和内部结构 258

11.3.2 8255A的工作方式 260

11.3.3 8255A的控制字 263

11.3.4 AT90LS8535和8255A的接口 264

11.4 带片内RAM的I/O扩展芯片8155 266

11.4.1 8155的引脚和内部结构 266

11.4.2 8155的O/O口工作方式 268

11.4.3 8155的定时/计数器 269

11.4.4 8155的命令和状态字 269

11.4.5 AT90LS8535与8155的接口及编程 270

11.5 定时/计数器芯片8253 272

11.5.1 8253的信号引脚和逻辑结构 273

11.5.2 8253的工作方式 274

11.5.3 8253的控制字 275

11.5.4 AT90LS8535与8253的接口及编程 276

11.6 实时时钟芯片DS1302 277

11.6.1 DS1302的引脚和内部结构 277

11.6.2 DS1302的控制方式 278

11.6.3 AT90LS8535与DS1302的接口与编程 279

11.7 数字温度传感器DS18B20 283

11.7.1 DS18B20的引脚和内部结构 284

11.7.2 DS18B20的温度测量 286

11.7.3 AT90LS8535与DS18B20的接口与编程 287

第12章 AT90LS8535的通信编程 290

12.1 串口通信 290

12.1.1 异步串口UART通信 290

12.1.2 同步串口SPI通信 292

12.2 I2C总线 293

12.2.1 I2C总线协议 293

12.2.2 采用AT90LS8535的并行I/O口模拟I2C总线 297

12.3.2 CAN协议的信息格式 300

12.3.1 CAN总线的特点 300

12.3 CAN总线 300

12.3.3 CAN控制器SJA1000 301

12.3.4 AT90LS8535与SJA1000的接口及编程 307

12.4 AT90LS8535单片机与PC的串行通信 311

12.4.1 基于VC++6.0的PC串口通信 311

12.4.2 应用实例 316

第13章 系统设计中的程序处理方法 319

13.1 数字滤波处理 319

13.1.1 平滑滤波 319

13.1.2 中值滤波 320

13.1.3 程序判断滤波 321

13.2 非线性处理 321

13.2.1 查表法 322

13.2.2 线性插值法 323