本书以C8051F020为讲述对象,是因为该单片机为C8051F系列单片机中功能较全、最具有代表性的一款。熟悉了C8051F020单片机工作原理和编程方法后,可较快地对C8051F系列其他单片机上手编程。事实上,模拟和数字外设以及各种总线具有共性,因而本书也可作为其他厂商单片机的参考资料,书中例程稍加修改,即可应用于其他单片机。而且本书全部代码采用C51语言编写,这也是单片机应用的发展方向,同时增强了程序的可读性和可移植性。
因为书中着重介绍C51与标准C语言的不同之处,读者应该在具备一定C语言编程知识的基础上阅读本书内容。
本书以C8051F020为例介绍了SOC型的单片机原理及应用,该系列单片机具有与MCS51完全兼容的指令内核和丰富的外设接口及片内资源。书中详细叙述了该单片机的基本结构、指令系统及用C51语言对片内资源的编程方法、C8051F单片机应用系统的开发方法及实验项目等方面的内容。本书附有习题、实验题、应用实例及程序源码,以供读者练习。同时在清华大学出版社网站(www.tup.com.cn)提供用于教学的PPT教案。
全书内容自成体系,语言通俗流畅,结构合理紧凑。本书既可作为高等院校单片机课程的教材及实验指导书,也可作为电子技术人员的参考书。
第1章 概述
1.1 单片机的发展概况
1.1.1 单片机的发展历史
1.1.2 典型的8位单片机产品
1.2 单片机的应用及发展趋势
1.2.1 单片机的应用
1.2.2 单片机的发展趋势
习题1
第2章 SOC单片机的结构与原理
2.1 C8051F系列单片机总体结构
2.1.1 C8051F系列单片机简介
2.1.2 CIP-51内核
2.1.3 C8051F020单片机的片上资源
2.2 C8051F020存储器组织
2.2.1 程序存储器
2.2.2 内部数据存储器
2.2.3 特殊功能寄存器
2.2.4 位寻址区
2.2.5 外部RAM和片内XRAM
2.3 CIP-51指令介绍
2.3.1 寻指方式
2.3.2 51指令集
2.4 中断系统
2.4.1 中断概念
2.4.2 C8051F中断系统
2.5 端口输入/输出
2.5.1 优先权交叉开关译码器
2.5.2 端口I/O初始化
2.5.3 端口4-7
2.5.4 交叉开关引脚分配示例
2.5.5 片上资源配置工具Config的应用
2.6 电源管理方式
2.6.1 空闲方式
2.6.2 停机方式
2.7 复位与时钟
2.7.1 复位源
2.7.2 上电/掉电复位
2.7.3 外部复位
2.7.4 内部复位
2.7.5 系统时钟
习题2
第3章 51单片机编程语言
3.1 单片机的编程语言概述
3.2 汇编语言
3.2.1 汇编指令
3.2.2 简单程序设计
3.2.3 分支程序设计
3.2.4 循环程序设计
3.2.5 子程序设计及参数传递方法
3.3 C51语言
3.3.1 标识符、关键字与运算符
3.3.2 数据类型
3.3.3 常量及变量
3.3.4 C51中的特殊数据类型
3.3.5 指针
3.3.6 函数
3.3.7 C和汇编混合编程
3.3.8 程序设计的三种基本结构
3.3.9 C51程序设计的注意事项
3.3.10 代码风格及代码维护的建议
3.4 C8051F系列单片机开发环境
3.4.1 Silicon Laboratories IDE集成开发环境简介
3.4.2 程序开发的基本操作
3.4.3 JTAG接口及在线编程调试
3.4.4 程序开发示例
习题3
第4章 SOC单片机的片内功能部件
4.1 定时器/计数器
4.1.1 定时器/计数器的一般结构和工作原理
4.1.2 定时器/计数器T0和T1
4.1.3 定时器/计数器T2和T4
4.1.4 定时器/计数器T3
4.2 可编程计数器阵列
4.2.1 PCA0交叉开关配置
4.2.2 PCA0的特殊功能寄存器
4.2.3 PCA0定时器/计数器
4.2.4 PCA0捕捉/比较模块
4.2.5 PCA0应用举例
4.3 UART通信接口
4.3.1 串行通信及基础知识
4.3.2 串行接口的组成和特性
4.3.3 串行接口的工作方式
4.3.4 波特率设计
4.3.5 串行口应用编程
4.3.6 多机通信原理及应用
4.4 系统管理总线SMBus
4.4.1 SMBus原理
4.4.2 SMBus协议
4.4.3 SMBus数据传输方式
4.4.4 SMBus特殊功能寄存器
4.4.5 SMBus应用举例
4.5 串行外设接口总线SPI
4.5.1 SPI的原理、控制信号及交叉开关配置
4.5.2 SPI特殊功能寄存器
4.5.3 SPI0操作
4.5.4 SPI应用举例
习题4
第5章 模/数和数/模转换器
5.1 模/数转换器
5.1.1 模数转换原理和性能指标
5.1.2 2C8051F020的ADC0功能结构
5.1.3 模拟多路选择器和PGA
5.1.4 ADC的工作方式
5.1.5 ADC0可编程窗口检测器
5.1.6 ADC1(8位ADC)
5.1.7 模数转换举例
5.2 数/模转换器
5.2.1 数模转换原理及性能指标
5.2.2 C8051F020的DAC功能结构
5.2.3 DAC输出更新
5.2.4 DAC输出定标/调整
5.2.5 数模转换举例
5.3 电压基准
5.4 比较器
习题5
第6章 SOC的特殊型号芯片介绍
6.1 资源最少配置型C8051F单片机——C8051F30X
6.2 资源较多配置型单片机——C8051F5XX
6.3 JTAG接口
6.3.1 边界扫描
6.3.2 闪存编程命令
6.3.3 调试支持
习题6
第7章 SOC单片机实验介绍
7.1 实验系统介绍
7.1.1 C8051F单片机开发工具
7.1.2 NMC-20XX核心模块简介
7.1.3 系统实验板
7.2 C8051F单片机实验项目
7.2.1 数据传送实验
7.2.2 查表实验
7.2.3 七段码显示与按键实验
7.2.4 定时器实验
7.2.5 直流电机转速测量控制实验
7.2.6 步进电机控制实验
7.2.7 温度数据采集实验
7.3 Keil uVision2开发环境
7.3.1 在Keil uVision2中集成Silicon的驱动和配置
7.3.2 使用Keil uVision2开发C8051F020单片机项目示例
习题7
第8章 应用举例
8.1 用SMBus实现串行Flash芯片的读写
8.1.1 Flash芯片概述
8.1.2 串行Flash芯片的通信协议
8.1.3 程序代码
8.2 日历时钟与键盘显示
8.2.1 实时时钟芯片S-3530A
8.2.2 程序代码
8.3 用过采样和求均值提高ADC分辨率
8.3.1 工作原理
8.3.2 程序代码
8.4 电压谐波监测
8.4.1 工作原理
8.4.2 程序代码
8.5 液晶显示程序
8.5.1 并口连接方式
8.5.2 串口连接方式
8.6 GPRS与SMS的应用
8.6.1 设计思路
8.6.2 核心代码
8.7 μCosII在C8051F单片机上的移植
8.7.1 OS_CPU.H
8.7.2 OS_CPU_A.ASM
8.7.3 OS_CPU_C.C
附录A CIP-51指令一览表
附录B C8051F020的引脚定义及封装
附录C C8051F020的电气参数
附录D 基本逻辑门电路图形符号
参考文献