单片机技术的出现给现代工业测控领域带来了一次崭新的技术革命。随着信息化社会和知识经济的发展,单片机的应用已经渗透到各行各业,越来越多的单片机产品被应用到各个电子领域,已成为我国单片机市场上新的亮点,其中作为单片机中的典型芯片51系列更是大多数人的首选。
本书从单片机课程教学角度出发,结合具体实践操作,讲清原理,突出与实践的结合,并结合具体设计实例对重点和难点内容进行了深入讲解。同时结合当前单片机的前沿应用技术,增加了其在新技术领域中的典型扩展接口及应用等新内容,突出了与单片机应用发展相结合的特点。
本书以单片机的基本组成构造为主,以外围器件、相关电路的扩展为辅,向读者介绍了单片机软硬件的初步知识和基本的系统扩展。
本书分9章,循序渐进地对C51单片机展开讲解,内容涉及单片机的硬件、软件及系统扩展等方面,并介绍了一些当前比较新的单片机扩展及应用。本书使用的典型实例都是精挑细选后确定的,基本覆盖了单片机的主要应用技术。通过学习本书的实例,读者除可以掌握单片机的基本知识外,还可获得如何针对一个具体的项目需求设计初步的解决方案以及如何运用单片机的关键技术满足项目需求。
本书基础性和实用性较强,对于单片机初学者和进行实际项目开发都具有非常高的参考价值。本书适合普通高等院校电子信息科学与技术、电子信息工程、通信工程、自动控制、电子技术、计算机科学与技术及网络工程等专业单片机等相关课程教学使用,同时也适合单片机初学者、开发人员和系统设计人员阅读和参考。
第1章 C51单片机的组成及结构
1.1 C51单片机的内部结构
1.2 C51单片机的CPU结构
1.2.1 运算器
1.2.2 布尔处理机
1.2.3 控制部件及振荡器
1.3 C51单片机的存储器空间
1.3.1 存储器的基本知识
1.3.2 C51单片机的存储器
1.3.2.1 数据存储器
1.3.2.2 程序存储器
1.4 C51单片机的并行输入/输出端口
1.4.1 P0口
1.4.2 P1口
1.4.3 P2口
1.4.4 P3口
1.4.5 四个并行口使用的注意事项
1.5 C51单片机的引脚信号和CPU时序
1.5.1 C51单片机引脚功能说明
1.5.2 复位电路
1.5.3 CPU时序
1.6 C51单片机的工作方式
1.6.1 复位方式
1.6.2 程序执行方式
1.6.3 掉电保护方式
1.6.4. C51单片机的低功耗方式
习题和思考题
第2章 C51单片机的指令系统
2.1 C51单片机的指令系统概述
2.2 C51单片机的寻址方式
2.2.1 立即寻址
2.2.2 寄存器寻址
2.2.3 寄存器间接寻址
2.2.4 直接寻址
2.2.5 变址寻址
2.2.6 相对寻址
2.2.7 位寻址
2.2.8 寻址方式总汇
2.3 C51单片机的指令说明
2.3.1 数据传送类指令
2.3.2 算术运算类指令
2.3.3 逻辑运算类指令
2.3.4 控制转移类指令
2.3.5 位操作指令
2.4 C51单片机的伪指令
2.4.1 程序起始地址伪指令ORG
2.4.2 结束汇编伪指令END
2.4.3 定义字节伪指令DB
2.4.4 定义字伪指令DW
2.4.5 预留存储空间伪指令DS
2.4.6 等值伪指令EQU
2.4.7 位地址定义伪指令BIT
2.5 C51单片机的程序设计举例
2.5.1 简单程序设计
2.5.2 分支程序设计
2.5.3 循环程序设计
2.5.4 数据转换程序设计
2.5.5 查表程序设计
习题和思考题
第3章 单片机的C程序设计
3.1 单片机程序设计概论
3.1.1 单片机的C语言编程特点
3.1.2 C51单片机的C语言编译器
3.1.3 C51单片机的程序结构
3.2 C51的数据与运算
3.2.1 数据与数据类型
3.2.2 常量与变量
3.2.3 C51数据的存储类型与存储器结构
3.2.4 特殊功能寄存器(SFR)及其定义
3.2.5 并行接口及其定义
3.2.6 位变量(BIT)及其定义
3.2.7 C51运算符、表达式及其规则
3.3 C51流程控制语句
3.3.1 C语言程序的基本结构及其流程图
3.3.2 选择语句
3.3.3 循环语句
3.4 C51构造数据类型
3.4.1 数组
3.4.2 指针
3.4.3 结构
3.4.4 共用体
3.4.5 枚举
3.5 函数
3.5.1 函数的分类
3.5.2 函数的定义
3.5.3 函数的参数和函数值
3.5.4 函数的调用
3.5.5 数组/指针作为函数的参数
3.5.6 局部变量和全局变量
3.6 C51的库函数
3.7 编程举例
习题和思考题
第4章 C51单片机的内部资源
4.1 输入/输出控制方式
4.1.1 程序控制方式
4.1.2 中断控制方式
4.2 中断系统
4.2.1 中断的基本概念
4.2.2 中断源
4.2.3 中断入口地址
4.2.4 中断控制
4.2.5 中断响应
4.2.6 中断的程序设计
4.3 定时/计数器
4.3.1 定时/计数器的控制寄存器
4.3.2 定时/计数器的工作方式
4.3.3 定时/计数器的应用实例
4.4 串行通信接口
4.4.1 串行通信基础知识
4.4.2 C51串行接口
习题和思考题
第5章 C51单片机的系统扩展
5.1 系统扩展概述
5.1.1 C51单片机的最小系统
5.1.2 系统扩展及结构
5.1.3 C51单片机存储器扩展与编址技术
5.2 程序存储器的扩展
5.2.1 扩展:EPROM
5.2.2 扩展(E2PROM)
5.3 数据存储器的扩展
5.3.1 单片数据存储器扩展
5.3.2 线选法多片数据存储器扩展
5.3.3 译码法多片数据存储器扩展
5.4 可编程外围并行接口8255A
5.4.1 8255A的引脚功能和逻辑结构
5.4.2 8255A的工作方式及数据I/O操作
5.4.3 8255A控制字及初始化
5.4.4 8255A与C51单片机的接口
5.5 可编程外围定时器8253
5.5.1 8253的结构和引脚
5.5.2 8253的工作方式和控制字
5.5.3 8253与C5 l单片机的接口
5.6 可编程并行接口芯片8155
5.6.1 8155的引脚功能和逻辑结构
5.6.2 8155的工作原理
5.6.3 8155的命令/状态字
5.6.4 8155的定时/计数器
5.6.5 8155的输入/输出口
5.6.6 8155与C51单片机的接口
5.7 I2C接口芯片AT24C01
5.7.1 I2C总线特点
5.7.2 I2C总线工作原理
5.7.3 AT24C01与C51的接口
5.8 SPI接口芯片X5045
5.8.1 SPI总线的组成
5.8.2 X5045与C51单片机的接口
5.9 单片机配置FPGA
5.9.1 FLEX10K的工作状态
5.9.2 FLEX10K器件的配置
5.9.3 主动串行模式配置FLEX10K器件
5.9.4 基于C51的被动串行配置FLEX10K器件
习题和思考题
第6章 C51单片机的机间串行通信
6.1 点对点的串行异步通信
6.1.1 通信双方的硬件连接
6.1.2 通信双方的约定
6.1.3 点对点通信编程
6.2 多机通信
6.2.1 通信接口
6.2.2 通信协议
6.2.3 通信程序
6.3 PC和单片机之间的通信方法
6.3.1 MSCOMM控件
6.3.2 编程实现
习题和思考题
第7章C51单片机人机交互的C编程
7.1 键盘接口技术
7.1.1 独立式键盘与工作原理
7.1.2 行列式键盘与工作原理
7.1.3 键盘扫描的控制程序
7.2 LED数码显示技术
7.2.1 LED显示器的结构与原理
7.2.2 LED静态显示接口
7.2.3 LED动态扫描显示接口
7.3 可编程键盘/显示接口芯片8279
7.3.1 8279引脚和内部结构
7.3.2 8279的命令字和状态字
7.3.3 8279和C51单片机的接口
7.4 字符型LCD显示模块
7.4.1 字符型LCD的结构和引脚
7.4.2 显示板控制器的指令系统
7.4.3 LCD显示板与单片机的接口和编程
7.5 点阵型LCD显示模块
7.5.1 HD61830的特点和引脚
7.5.2 HD61830指令集
7.5.3 与内藏HD61830的液晶模块的接口和编程
习题和思考题
第8章 Keii C51上机指南
8.1 Keil C51软件的安装
8.1.1 系统需求
8.1.2 软件安装
8.2 Keil C51 工程的建立及设置
8.2.1 Keil工程的建立
8.2.2 设置工程属性
8.3 代码编译
8.4 程序调试
8.4.1 常用调试命令
8.4.2 在线汇编
8.4.3 断点设置
8.5 Keil程序调试窗口
8.5.1 存储器窗口
8.5.2 观察窗口
8.5.3 工程窗口寄存器页
8.5.4 外围接口
8.6 Keil程序调试
8.6.1 片内程序模拟
8.6.2 仿真试验板仿真
8.6.3 硬件连接调试
习题和思考题
第9章 C51单片机系统综合实例
9.1 外部存储器综合扩展
9.2 系统中断程序设计
9.3 定时/计数器程序设计
9.4 串口程序设计
9.5 外扩并行I/O口的C语言编程
9.6 点阵型LCD中文显示的C语言编程
附录 C51单片机指令系统表
参考文献