目录 2
第1部分 相关基础知识及08系列单片机入门 2
第1章 嵌入式应用技术概述 2
1.1 嵌入式系统的基本含义 2
1.1.1 嵌入式系统与单片机 2
1.1.2 MCU的主要应用领域 4
1.2 MCU发展概况 5
1.2.1 MCU的发展简史 5
1.2.2 MCU在我国的应用简况 6
1.3 MCU发展新特点及选型原则 7
1.3.1 MCU发展的新特点 7
1.3.2 MCU的选型原则 7
1.4 如何学习嵌入式应用技术 9
1.5 嵌入式产品的一般构成与开发方法 10
1.5.1 嵌入式产品的一般构成 10
1.5.2 嵌入式产品的一般开发方法 11
2.1 数字电路基础知识 15
2.1.1 嵌入式应用技术中常用的数制及其转换 15
第2章 嵌入式应用技术的硬件基础 15
2.1.2 数字电路中几个名词解释 17
2.1.3 门电路 18
2.2 嵌入式应用的常用元器件 20
2.2.1 二极管 20
2.2.2 晶体管 21
2.2.3 锁存器 25
2.2.4 可编程逻辑器件PLD 25
2.3 嵌入式应用技术的常用术语 28
3.1.1 Visual Basic 6.0概述 31
第3章 高级语言的串行通信编程 31
3.1 Visual Basic 6.0编程简介 31
3.1.2 面向对象的程序设计概念 32
3.1.3 事件驱动的程序设计 33
3.1.4 Visual Basic 6.0开发系统 34
3.1.5 Visual Basic 6.0的帮助系统 36
3.2 Visual Basic 6.0语言基础 36
3.2.1 编码基础 36
3.2.2 基本语句 38
3.3 Visual Basic 6.0的常用控件 41
3.4.1 串行接口通信编程 42
3.4 Visual Basic 6.0的串行通信控件MSComm 42
3.4.2 MSComm控件的引用 43
3.4.3 MSComm控件的主要属性 43
3.4.4 MSComm控件的事件 47
3.4.5 MSComm控件通信的方式 48
3.5 Visual Basic6.0的串行通信编程实例 48
3.5.1 实例概述 48
3.5.2 窗体设计 49
3.5.3 程序设计及测试 50
4.1.1 Freescale半导体公司MCU的命名规则 53
第4章 Freescale 08系列MCU概述 53
4.1 08系列MCU简介 53
4.1.2 08系列MCU资源简介 54
4.2 HC08系列MCU 56
4.2.1 MC68HC908GP32 MCU的性能概述 56
4.2.2 内部结构简图与引脚功能 57
4.2.3 GP32存储器组织 60
4.3 HCS08系列MCU 61
4.3.1 HCS08系列MCU的基本特征 61
4.3.2 MC9S08GB60的内部结构简图与引脚功能 62
4.3.3 GB60存储器组织 64
第5章 HC08 CPU与汇编基础 66
5.1 HC08 CPU基本构成 66
5.2 寻址方式 68
5.3 指令系统 73
5.3.1 数据传送类指令 74
5.3.2 算术运算类指令 76
5.3.3 逻辑运算类指令 80
5.3.5 移位类指令 81
5.3.4 位操作类指令 81
5.3.6 程序控制类指令 83
5.3.7 其他指令 85
5.4 HCS08 CPU与HC08CPU的比较 87
5.5 08汇编语言基础 88
5.5.1 08汇编源程序格式 88
5.5.2 08伪指令 89
第6章 普通I/O与第一个汇编程序 91
6.1 MC68HC908GP32的普通I/O 91
6.1.1 A接口 92
6.1.2 B接口 93
6.1.3 C接口、D接口和E接口 94
6.2 汇编程序编程框架 95
6.2.1 08汇编主程序组成 96
6.2.2 第一个可执行的08汇编程序 97
6.3 08汇编语言编译过程所涉及的文件 98
6.4 SD-HC08嵌入式MCU在线编程集成开发系统 101
6.4.1 硬件系统说明 101
6.4.2 软件使用说明 103
7.1.1 MCU编程语言 107
7.1 MCU的C语言编程概述 107
第7章 08C语言 107
7.1.2 CPU的C语言 108
7.2 标准C语言的基本语法 108
7.2.1 数据类型 109
7.2.2 运算符 109
7.2.3 流程控制 110
7.2.4 函数 114
7.2.5 指针 115
7.2.6 结构体 116
7.2.7 编译预处理 118
7.2.8 用typedef定义类型 119
7.3 08C语言的使用 119
7.3.1 寄存器和I/O端口的使用 119
7.3.2 使用汇编指令 120
7.3.3 中断处理 121
7.3.4 08C语言的常用库函数 122
7.4 08C语言程序编程框架 123
7.4.1 实践环境 123
7.4.3 第一个08C语言例程 124
7.4.2 08C语言程序的组成 124
7.5 08C语言的编译过程 126
7.5.1 编译过程 127
7.5.2 编译文件输出 127
7.6 08C编程技巧 133
7.6.1 数据类型的选用 133
7.6.2 算法设计问题 134
7.6.3 数据存储器的分配 134
7.6.4 MCU08C语言与汇编语言的混合编程 135
8.1.1 基本概念 138
8.1 串行通信基本知识概要 138
第8章 串行通信接口(SCI)与串行外设接口(SPI) 138
第2部分 HC08系列MCU的功能模块及基本应用 138
8.1.2 RS-232C总线标准 140
8.2 SCI的外围硬件电路与基本编程原理 142
8.2.1 SCI的外围硬件电路 142
8.2.2 SCI的基本编程原理 143
8.3 SCI模块的编程结构 144
8.3.1 SCI的寄存器 145
8.3.2 串行接口初始化与收发编程的基本方法 149
8.4.1 08汇编语言串行通信子程序 150
8.4 串行通信编程实例 150
8.4.2 08汇编语言串行通信测试实例 153
8.4.3 08C语言串行通信子程序与测试实例 158
8.5 SPI模块的编程结构及应用实例 162
8.5.1 SPI的基本工作原理 163
8.5.2 SPI的寄存器 164
8.5.3 SPI编程基本方法 166
8.6 SPI应用实例——高位A/D扩展接口 167
8.6.1 TLC2543芯片简介 167
8.6.2 TLC2543与GP32 MCU接口扩展 169
9.1.1 键盘的基本问题 174
第9章 键盘中断模块与A/D转换模块 174
9.1 键盘基本问题与GP32的键盘中断接口 174
9.1.2 MC68HC908GP32 MCU的键盘中断模块 175
9.2 汇编语言键盘中断模块编程实例 177
9.2.1 按键识别与键盘定义子程序 177
9.2.2 键盘中断编程举例 180
9.3 08C语言键盘中断模块编程实例 183
9.3.1 按键识别与键盘定义函数 183
9.3.2 键盘中断编程08C语言举例 185
9.4.1 A/D转换相关基础知识 187
9.4 MC68HC908GP32 MCU内部的A/D转换模块 187
9.4.2 MC68HC908GP32 A/D转换模块的寄存器 188
9.4.3 A/D转换模块的基本编程方法 189
9.5 MC68HC908GP32 MCU A/D转换编程实例 190
9.5.1 A/D转换汇编语言编程实例 190
9.5.2 A/D转换08C语言编程实例 193
第10章 定时接口模块 196
10.1 计数器/定时器的基本工作原理 196
10.1.1 实现计数与定时的基本方式 196
10.1.2 MC68HC908GP32 MCU的定时接口的基本原理概述 197
10.2.1 定时器模块的3个基本寄存器 199
10.2 定时器模块的编程基础 199
10.2.2 定时溢出中断编程汇编程序例 201
10.2.3 定时溢出中断编程C语言程序例 205
10.3 定时器模块的输入捕捉功能 208
10.3.1 输入捕捉功能的基本含义 208
10.3.2 输入捕捉的寄存器 209
10.3.3 输入捕捉中断编程实例 211
10.4 定时器模块的输出比较功能 214
10.4.2 输出比较的寄存器 215
10.4.1 输出比较功能的基本含义 215
10.4.3 不带缓冲输出比较与带缓冲的输出比较 216
10.5 定时器模块的脉宽调制输出功能 217
10.5.1 脉冲宽度调制器PWM 217
10.5.2 用定时器通道实现PWM 218
10.5.3 不带缓冲脉宽调制输出与带缓冲脉宽调制输出 218
10.5.4 PWM编程汇编语言例 219
10.5.5 PWM编程C语言例 221
第11章 Flash存储器的在线编程 224
11.1 Flash存储器概述与编程模式 224
11.1.2 M68HC08系列MCU Flash存储器的特点与编程模式 225
11.1.1 Flash存储器的基本特点与编程模式 225
11.2 MC68HC908GP32 MCU Flash存储器编程方法 227
11.2.1 Flash存储器编程的基本概念 227
11.2.2 Flash存储器的编程寄存器 228
11.2.3 Flash存储器的编程过程 229
11.3 GP32 MCU Flash在线编程汇编语言实例 231
11.3.1 Flash存储器的擦除及写入汇编子程序 231
11.3.2 Flash存储器在线编程汇编主程序及计算机方程序 235
11.4 GP32 MCU Flash存储器在线编程C语言实例 242
11.4.1 Flash存储器的擦除及写入C语言子函数 242
11.4.2 Flash存储器在线编程C语言主函数 245
11.5 HCS08系列MCU的Flash存储器编程方法 246
11.5.1 Flash存储器的编程寄存器 246
11.5.2 Flash存储器的编程过程 249
11.5.3 Flash存储器的安全性 251
第12章 GP32 MCU的其他功能模块 253
12.1 CONFIG寄存器 253
12.2 时钟发生模块与锁相环 254
12.2.1 PLL的基本概念 255
12.2.2 MC68HC908GP32的CGM结构及外部连接器件 256
12.2.3 CGM的编程基础 258
12.2.4 PLL参数计算与编程步骤 262
12.2.5 初始化及PLL编程实例 263
12.3 中断 265
12.3.1 中断源与中断向量地址 265
12.3.2 IRQ引脚中断 267
12.3.3 断点模块与软件中断指令 267
12.4 复位与系统集成模块 268
12.4.1 复位 268
12.4.2 系统集成模块 268
12.5.1 低功耗模式 269
12.5 低功耗模式与看门狗功能 269
12.5.2 系统正常操作监视模块 270
12.6 监控模块MON 271
12.7 定时基模块 272
第13章 LCD与LED编程 273
13.1 LCD概述 273
13.1.1 LCD的特点 273
13.1.2 LCD的分类 274
13.2 点阵字符型LCD的接口特性 274
13.2.2 HD44780的引脚与时序 275
13.2.1 点阵字符型LCD模块的基本特点 275
13.2.3 HD44780的编程结构 277
13.2.4 HD44780的指令集 279
13.3 点阵字符型LCD编程实例 280
13.3.1 LCD编程汇编程序例 281
13.3.2 LCD编程C语言程序例 286
13.4 数码管编程实例 288
13.4.1 扫描法LED显示编程原理 288
13.4.2 接口编程实例 290
14.1 USB通信基本知识概要 296
14.1.1 有关基本概念 296
第14章 USB接口 296
第3部分 常用外部设备的应用扩展 296
14.1.2 USB总线标准 299
14.2 USB的通信协议 299
14.2.1 包 300
14.2.2 封包格式 301
14.2.3 事务 302
14.2.4 控制传输 304
14.2.5 设备列举 305
14.3 USB模块的编程方法 309
14.3.2 USB复位信号 310
14.3.3 USB悬挂 310
14.3.1 USB功能模块 310
14.3.4 USB低速设备 311
14.3.5 USB寄存器 311
14.3.6 USB中断 317
14.3.7 USB接口初始化与数据的收发编程 318
第15章 CAN通信接口 327
15.1 现场总线概述 327
15.2.1 CAN的基本概念 328
15.2 CAN技术规范 328
15.2.2 CAN总线的位数值表示与通信距离 329
15.2.3 报文传输和帧结构 330
15.2.4 错误处理 333
15.2.5 故障界定 334
15.2.6 位定时与同步 334
15.3 MSCAN08模块及其外围接口硬件电路 335
15.3.1 MSCAN08模块 335
15.3.2 总线驱动芯片PCA82C250 336
15.3.4 MSCAN08编程原理 337
15.3.3 MSCAN08通信接口硬件电路 337
15.4 MSCAN08模块的编程结构 338
15.4.1 报文存储 338
15.4.2 控制寄存器 340
15.4.3 CAN接口初始化与CAN报文收发编程的基本方法 348
15.5 MSCAN08编程实例 350
第16章 08系列MCU编程器的开发 355
16.1 编程器技术基础 355
16.1.1 HC08系列MCU的监控模式 355
16.1.2 HC08系列MCU的监控ROM程序 356
16.1.3 HC08系列MCU在监控模式下的工作过程 357
16.1.4 HC08系列MCU的监控命令 359
16.2 HC08系列MCU编程器的实现方法 361
16.2.1 HC08编程器硬件设计方案 361
16.2.2 HC08编程器软件设计思想 362
16.3 HC08系列MCU编程器实例 363
16.3.1 硬件设计 363
16.3.2 主控MCU发送和接收1个字节子程序 364
16.3.3 主控MCU发送保密字节 366
16.3.4 发送监控命令 367
16.3.5 针对目标芯片JB8的编程 368
16.3.6 基板中主控MCU的编程 371
16.4 HCS08系列MCU编程器原理 374
16.4.1 两种系列MCU的结构差异 374
16.4.2 激活的背景工作模式 375
16.4.3 数据通信格式 375
16.4.4 BDC命令 378
第17章 工业以太网 380
17.1 工业以太网概要 380
17.1.1 技术概要 380
17.1.2 工业以太网的优势 381
17.1.3 工业以太网互连模型 382
17.1.4 工业以太网技术应解决的问题及相关措施 383
17.2 8位MCU的嵌入式以太网接口设计实例 384
17.2.1 嵌入式以太网接口分析 385
17.2.2 硬件设计 388
17.2.3 工业以太网接口驱动程序设计 388
第18章 非接触式IC卡及其读写设备 395
18.1 智能卡基本知识概要 395
18.1.1 关于智能卡 395
18.1.3 智能卡的国际标准 396
18.1.2 智能卡的接口设备 396
18.2 非接触式IC卡 397
18.2.1 非接触式IC卡 397
18.2.2 非接触卡的应用 398
18.2.3 非接触式IC卡Mifare 399
18.2.4 非接触式IC卡标准ISO/IEC 14443 401
18.3 非接触式IC卡读写设备设计 402
18.3.1 概述 402
18.3.2 硬件设计 404
18.3.3 低端软件设计 408
18.3.4 计算机软件设计 415
附录 417
附录A GP32寄存器及中断向量简表 417
附录B MC9S08GB60的寄存器和向量表 422
附录C CPU08按字母索引的指令系统 427
附录D HC08标准头文件(GP32-汇编语言用) 437
附录E HC08标准头文件(GP32-C语言用) 439
附录F 08C函数库 441
附录G 射频读写芯片MF RC500寄存器 445
参考书目 448