本书结合Proteus仿真工具、Keil μVision单片机集成开发环境,以Keil C为开发语言,介绍了嵌入式系统的基本概念、单片机的基本结构、单片机定时器、中断、常见外设、常见外设串行接口、操作系统的基本概念、RTX 51嵌入式实时操作系统等基本概念和基本应用。
单片机是嵌入式系统中最常见、最常用的嵌入式处理器,其软硬件开发技术是嵌入式开发人员应掌握的一项基本技能。
本书不同于传统的单片机书籍和教材,以Keil C为单片机开发语言,没有介绍难懂、难记的汇编指令系统,因此有计算机初步知识的读者即可以无障碍地阅读本书。本书将 单片机理论知识与实际仿真演示相结合,使读者更容易理解单片机中的基本概念和基本原理。同时,通过本书的学习,读者可逐步掌握Proteus单片机仿真环境、Keil μVision单片机集成开发环境的基本使用,并可以在个人计算机上通过Proteus来搭建自己的创新设计 平台。
本书是根据作者4年来讲授的本科“单片机与嵌入式系统”课程讲稿整理而成的,为方便教师授课和学生学习,各章相对独立,每一章可以安排2~3个学时,一共14章,适合26~39学时的课堂教学。
本书结构合理,文字流畅,通俗易懂,是学习51单片机的理想入门教材,具有计算机初步知识的读者都可快速入门。本书可作为大学本、专科学生学习单片机课程的教材或自学材料。
全书共分为14章,各章的主要内容如下。
第1章:嵌入式系统概述,主要讲述了嵌入式系统的基本概念、基本组成等。
第2章:嵌入式系统硬件基础,主要讲述了嵌入式系统硬件的组成部分,着重介绍嵌入式系统的核心——嵌入式微处理器的分类、架构等知识。
第3~8章:MCS-51单片机原理,主要讲述了单片机的基本原理、内部结构、定时器/计数器、中断、Keil C语言、Proteus仿真环境等基础且重要的知识点。
第9~11章:常见单片机外设应用初步,主要讲述了七段数码管、按键、1602液晶模块、12864液晶模块的基本应用。
第12章:单片机串口通信及应用,主要讲述了单片机串口通信的基本原理、内部结构、基本应用和仿真。
第13章:RTX-51实时多任务操作系统,主要讲述了操作系统的基本概念,着重介绍操作系统的进程管理和进程调度等基本概念,讲述RTX-51这一嵌入式实时操作系统的基本应用。
第14章:单片机IIC和SPI接口及应用,主要讲述了SPI总线和IIC总线的基础知识和基本应用仿真。
本书的编写人员主要有于红旗、田苗苗、张琨、刁节涛等人,其中,于红旗负责全书的内容组织、目录规划以及第7~14章的编写,田苗苗负责第1~6章的编写,河南农业大学机电工程学院的张琨完成了本书程序的编写、验证和书稿的校对工作,刁节涛完成了全书的审校。由于时间仓促,加上嵌入式系统本身也在不断地发展变化中,一些有益的科研项目和科研经验尚未在本书中体现。
本书在编写的过程中参阅了不少同行有益的教材,在此深表感谢!
由于作者水平有限,本书中错误和疏漏之处在所难免,欢迎广大教师和读者批评指正。作者的联系方式是dr.yhq@163.com。本书配套有免费的电子课件,有需要的读者可到清华大学出版社的网站(www.tup.ocm.cn)上下载。
编 者
第1章 嵌入式系统概述
1.1 生活中的嵌入式系统
1.2 嵌入式系统的定义及特点
1.2.1 嵌入式系统的定义
1.2.2 嵌入式系统的特点
1.2.3 嵌入式系统与通用计算机系统的区别
1.3 嵌入式系统的基本结构
1.3.1 嵌入式系统的硬件组成
1.3.2 嵌入式系统的软件
1.3.3 嵌入式软件系统的设计方法
1.3.4 嵌入式系统的开发模式
1.3.5 嵌入式项目开发流程
1.4 嵌入式系统的发展
1.4.1 嵌入式系统的历史
1.4.2 嵌入式系统的发展现状
1.4.3 嵌入式系统的发展趋势
1.5 小结
第2章 嵌入式系统硬件基础
2.1 嵌入式系统硬件的基本概念
2.1.1 精简指令集RISC和复杂指令集CISC
2.1.2 冯·诺依曼体系结构和哈佛体系结构
2.1.3 流水线技术
2.2 嵌入式系统基本硬件组件
2.2.1 嵌入式处理器
2.2.2 存储器
2.2.3 输入设备
2.2.4 输出设备
2.3 小结
第3章 MCS-51单片机原理(一)
3.1 MCS-51系列单片机概述
3.1.1 什么是单片机
3.1.2 单片机的发展历史
3.1.3 单片机的应用领域
3.1.4 单片机的发展方向
3.2 MCS-51系列单片机总体结构
3.2.1 MCS-51单片机基本结构
3.2.2 MCS-51单片机的分类
3.3 89C51单片机的内部架构
3.3.1 89C51单片机的内部结构
3.3.2 89C51中央处理单元(CPU)
3.3.3 89C51存储器
3.3.4 89C51 I/O
3.3.5 89C51单片机的运算器
3.3.6 89C51单片机的控制器
3.3.7 89C51单片机的存储器
3.4 小结
第4章 MCS-51单片机原理(二)
4.1 MCS-51单片机的结构及引脚功能
4.1.1 电源、地引脚
4.1.2 外接晶体引脚
4.1.3 控制信号引脚
4.1.4 输入/输出端口
4.2 并行输入/输出电路结构
4.2.1 单片机并行输入/输出电路的特点
4.2.2 P0口
4.2.3 P1口
4.2.4 P2口
4.2.5 P3口
4.3 单片机最小系统的搭建
4.3.1 什么是单片机最小系统
4.3.2 单片机引脚知识点回顾
4.3.3 单片机最小系统
4.3.4 最小系统举例
4.4 单片机时序的概念
4.5 89C51单片机工作方式
4.5.1 复位电路与复位方式
4.5.2 程序运行方式
4.6 单片机开发环境Keil μVision
4.6.1 Keil μVision简介
4.6.2 Keil μVision应用流程
4.6.3 Keil μVision集成开发平台介绍
4.7 小结
第5章 MCS-51单片机原理(三)
5.1 C语言与MCS-51单片机
5.1.1 C语言的特点
5.1.2 C语言的程序结构
5.1.3 单片机C语言与汇编语言比较
5.1.4 C51与标准C语言的比较
5.2 C51的数据类型
5.2.1 字符型char
5.2.2 int整型
5.2.3 特殊功能寄存器型
5.2.4 位类型
5.2.5 数据类型的隐式转换
5.2.6 C51数据类型小结
5.3 C51的运算量
5.3.1 常量
5.3.2 变量
5.4 存储模式
5.5 绝对地址的访问
5.5.1 使用C51运行库中预定义宏
5.5.2 通过指针访问
5.5.3 使用C51扩展关键字_at_
5.6 C51的运算符及表达式
5.6.1 赋值运算符
5.6.2 算术运算符
5.6.3 关系运算符
5.6.4 逻辑运算符
5.6.5 位运算符
5.6.6 复合赋值运算符
5.6.7 逗号运算符
5.6.8 条件运算符
5.6.9 指针与地址运算符
5.7 表达式语句及复合语句
5.7.1 表达式语句
5.7.2 复合语句
5.8 小结
第6章 MCS-51单片机原理(四)
6.1 C51的输入/输出
6.1.1 格式输出函数printf
6.1.2 格式输入函数scanf
6.2 C51程序基本结构与相关语句
6.2.1 C51的基本结构
6.2.2 If语句
6.2.3 switch/case语句
6.2.4 while语句
6.2.5 do while语句
6.2.6 for语句
6.2.7 循环的嵌套
6.2.8 break和continue语句
6.2.9 return语句
6.3 单片机仿真环境Proteus
6.3.1 Proteus简介
6.3.2 Proteus微处理器系统仿真流程
6.3.3 Proteus设计方法和步骤
6.3.4 Proteus电路绘图工具的使用
6.3.5 常用Proteus库元件
6.4 Proteus仿真实例
6.5 小结
第7章 MCS-51单片机原理(五)
7.1 什么是中断
7.2 为什么需要中断
7.3 与中断有关的几个概念
7.4 89C51中断系统结构及中断控制
7.4.1 89C51中断源
7.4.2 89C51中断系统结构
7.4.3 中断控制
7.4.4 如何应用中断
7.5 中断优先级控制
7.6 中断扩展
7.7 小结
第8章 MCS-51单片机原理(六)
8.1 单片机定时器/计数器的结构
8.2 定时器的控制
8.2.1 工作模式寄存器TMOD(Timer Mode)
8.2.2 控制器寄存器TCON(Timer Control)
8.3 定时器的4种模式及应用
8.3.1 模式0及其应用
8.3.2 模式1及其应用
8.3.3 模式2及其应用
8.3.4 模式3简介
8.4 定时器应用
8.5 小结
第9章 常见单片机外设应用初步(一)
9.1 七段数码管及其应用
9.1.1 七段数码管
9.1.2 七段数码管静态显示方式
9.1.3 七段数码管动态显示方式
9.2 按键及其应用
9.2.1 概述
9.2.2 按键的消抖
9.2.3 独立式非编码键盘
9.2.4 矩阵键盘接口及工作原理
9.3 小结
第10章 常见单片机外设应用初步(二)
10.1 液晶显示器概述
10.2 1602液晶显示模块概述
10.3 1602液晶显示模块引脚定义
10.4 1602液晶显示模块和单片机接口
10.5 单片机对1602的4种操作模式
10.5.1 读操作时序
10.5.2 写操作时序
10.6 1602液晶内部显示存储器
10.7 1602液晶指令
10.7.1 显示功能设置
10.7.2 显示开关及光标设置
10.7.3 清屏
10.7.4 设定显示屏或光标移动方向指令
10.7.5 AC值控制及屏幕移动设置
10.7.6 光标归位指令
10.7.7 指令小结及编程技巧
10.7.8 综合实验
10.8 1602液晶的初始化
10.9 1602液晶综合应用
10.9.1 LCD显示字符串
10.9.2 1602液晶显示时钟
10.9.3 1602液晶显示时钟(定时器)
10.10 小结
第11章 常见单片机外设应用初步(三)
11.1 12864液晶模块概述
11.1.1 HD61202的特点
11.1.2 HD61202的引脚功能
11.1.3 HD61202显示RAM地址
11.2 12864液晶模块管脚定义
11.3 单片机对12864液晶模块的操作时序
11.3.1 写操作时序
11.3.2 读操作时序
11.4 12864液晶模块的指令
11.4.1 读状态指令
11.4.2 行设置命令
11.4.3 页设置命令
11.4.4 列地址设置命令
11.4.5 显示开/关
11.5 12864液晶模块的初始化
11.6 12864液晶模块综合应用
11.6.1 字模软件
11.6.2 12864液晶模块显示数字
11.6.3 12864液晶模块显示汉字
11.6.4 12864显示图片
11.6.5 12864液晶模块的绘图
11.7 实验板12864液晶显示
11.8 小结
第12章 单片机串口通信及应用
12.1 串行通信基本概念
12.1.1 同步通信方式
12.1.2 异步通信方式
12.1.3 串行通信的数据传送方式
12.1.4 串行通信的奇偶校验
12.1.5 异步串行通信的波特率
12.1.6 串行接口标准
12.2 RS-232C接口
12.2.1 接口信号
12.2.2 技术指标
12.2.3 RS-232的帧结构
12.2.4 RS-232的编程和使用
12.3 8051单片机串口的编程与应用
12.3.1 89C51串行口结构
12.3.2 89C51串行口控制字及控制寄存器
12.3.3 串行通信工作方式
12.4 小结
第13章 RTX-51实时多任务操作系统
13.1 操作系统基础知识
13.1.1 什么是计算机操作系统
13.1.2 操作系统的功能
13.1.3 进程和线程的基本概念
13.1.4 实时系统及实时操作系统
13.2 RTX-51实时多任务操作系统概述
13.2.1 RTX-51实时多任务系统
13.2.2 RTX-51特点
13.2.3 RTX-51任务管理
13.2.4 RTX-51事件
13.2.5 RTX-51 Tiny系统函数
13.2.6 RTX-51 Tiny程序设计仿真
13.2.7 使用OS编程的优势
13.3 小结
第14章 单片机IIC和SPI接口及应用
14.1 SPI通信接口
14.1.1 什么是SPI
14.1.2 SPI接口的定义及通信原理
14.1.3 DS1302实时时钟及其应用
14.2 IIC总线通信接口
14.2.1 什么是IIC总线
14.2.2 IIC总线的特性
14.2.3 IIC总线的基本术语及协议分析
14.2.4 24C04基本应用仿真
14.3 小结
参考文献