本书以ATMEL的AT89C52作为典型产品来阐明单片机的一般原理和应用技术,但不局限于该产品,内容上反映了单片机的新部件、新技术,原理上具有普遍性,结构上具有如下特点:
增加了C51基本语法、程序设计和调试的内容,适用于未学过C语言的学生;实验分散到各章节,增加了例题、习题、实验的种类和数量,并使三者密切结合;将单片机功能部件工作原理、应用电路和C51应用程序设计紧密衔接、综合在一起论述;用Keil C51模拟调试器或用带Keil Monitor的实验模块(见附录3)在线仿真调试实验程序,编排的实验均有调试方法指导。
本书在2006年出版的《单片微型机原理、应用与实验》(第五版)基础上改编而成。这一版本最大的特点是以C51作为程序语言取代了原来使用的汇编语言,内容和章节也都作了适当的调整。
本书在介绍C51基本语法和Keil-C51使用方法的基础上,以89C52单片机为范例,系统地论述了单片机的系统结构、片上资源、外围模块的结构、工作原理、应用电路和应用程序的设计。接着讨论单片机的扩展原理、扩展电路、典型器件和设备的接口技术以及输入输出程序的设计方法。最后介绍一些单片机应用实例电路和程序设计方法,以及应用系统研制的过程与方法。
本书的特点是将例题、习题与实验紧密结合,以利于学以致用;相关硬件和程序的设计放在一起讨论,以利于相互协调和衔接。本书共包含50多个经过验证的例题,并可以在Keil-C51平台上实验。同时本书向相关任课教师赠送教学辅助光盘,该光盘含有本书所有例题、习题和实验题目的程序和调试现场文件。
本书兼顾教学的循序性、内容的系统性和先进性,各章节具有相对独立性。可以作为各类高校(本科、大专、高职等)电子类专业的单片机基础教材,使用时可以根据实际课时和教学对象进行增删。本书也可以作为从事电子产品设计的科技人员参考使用。
第1章 单片机基础知识
§1.1 概述
1.1.1 计算机
1.1.2 微型计算机
1.1.3 单片机
1.1.4 嵌入式系统
§1.2 单片机中数的表示方法
1.2.1 数制及其转换
1.2.2 BCD码
1.2.3 ASCII码
§1.3 单片机的内部结构
1.3.1 中央处理器CPU
1.3.2 单片机的存储器
1.3.3 单片机的输入/输出接口(I/O)
§1.4 典型单片机产品
1.4.1 单片机的类型和特性
1.4.2 典型的单片机产品
§1.5 单片机的应用和应用系统结构
1.5.1 单片机的应用
1.5.2 单片机应用系统的结构
小结
习题
第2章 51系列单片机系统结构
§2.1 总体结构
2.1.1 51系列单片机一般的总体结构
2.1.2 89C52的总体结构
§2.2 存储器组织
2.2.1 程序存储器
2.2.2 内部RAM数据存储器
2.2.3 特殊功能寄存器
2.2.4 位地址空间
2.2.5 外部RAM和I/O口
§2.3 时钟、时钟电路、CPU定时
§2.4 复位和复位电路
2.4.1 外部复位
*2.4.2 内部复位
*2.4.3 系统复位
§2.5 中断系统
2.5.1 中断概念
2.5.2 89C52中断系统
2.5.3 外部中断触发方式选择
*2.5.4 51系列其他单片机的中断系统
*§2.6 51指令系统
2.6.1 寻址方式
2.6.2 程序状态字PSw
2.6.3 指令系统
小结
习题
第3章 C51基本语法
§3.1 C5P程序的结构和特点
3.1.1 C51程序的结构
3.1.2 C51的字符集、标识符与关键字
§3.2 C5P数据类型
3.2.1 C51数据类型
3.2.2 常量
3.2.3 变量
3.2.4 存储器类型和存储模式
3.2.5 C51扩展的数据类型
3.2.6 绝对地址访问的变量
§3.3 运算符和表达式
3.3.1 算术运算符和算术表达式
3.3.2 位运算符和位运算
3.3.3 赋值运算符和赋值表达式
3.3.4 逗号运算符和逗号表达式
§3.4 C51语句和结构化程序设计
3.4.1 C51语句和程序结构
3.4.2 表达式语句、复合语句和顺序结构程序
3.4.3 选择语句和选择结构程序
3.4.4 循环语句和循环结构程序
§3.5 C51的数组、结构、联合
3.5.1 数组
3.5.2 结构
3.5.3 联合
§3.6 指针
3.6.1 定义指针变量
3.6.2 指针变量的引用
§3.7 函数和中断函数
3.7.1 函数的定义
3.7.2 函数的调用
3.7.3 C51函数的参数传递
3.7.4 和断函数
3.7.5 局部变量和全局变量
3.7.6 变量的存储种类
§3.8 预处理命令、库函数
3.8.1 预处理命令
3.8.2 C51的通用文件
3.8.3 C51的库函数
小结
习题
第4章 051程序的设计和调试
§4.1 C51程序设计方法
4.1.1 程序设计步骤
4.1.2 程序框图和程序结构
4.1.3 输入输出函数
4.1.4 自定义函数的设计和调用
4.1.5 计算程序的设计和库函数的调用
4.1.6 主函数和中断函数的设计
§4.2 C51程序调试-Keil C51基本使用方法
4.2.1 C51程序的生成
4.2.2 C51程序调试
§4.3 实验过程和方法
小结
习题
实验
实验一 计算程序模拟仿真调试
实验二 主函数和中断函数设计与调试
第5章 51单片机的外围模块及其应用
§5.1 并行口及其应用
5.1.1 P1口
5.1.2 P3口
5.1.3 P2口
5.1.4 P0口
5.1.5 并行口的应用——晶闸管的接口和编程
5.1.6 并行口的应用——拨码盘的接口和编程
5.1.7 并行口的应用——4×4键盘的接口和编程
5.1.8 并行口的应用——串行接口器件的接口和编程
§5.2 定时器及其应用
5.2.1 定时器的一般结构和工作原理
5.2.2 定时器T0、T1的功能和使用方法
5.2.3 定时器T0的应用——定时中断控制晶闸管导通角
5.2.4 定时器T2的功能和使用方法
5.2.5 T2的应用——定时读键盘
*5.2.6 T2捕捉方式应用——脉冲参数的测量和计算
*5.2.7 可编程计数器阵列(PCA)的功能和使用方法
*5.2.8 PCA应用——高速输出和PWM输出
*5.2.9 PCA模块综合应用——软件双积分A/D
§5.3 串行口UART
5.3.1 串行口的组成和特性
5.3.2 串行口的工作方式
5.3.3 波特率
5.3.4 多机通信原理
5.3.5 串行口的应用和编程
*5.3.6 RS-232C总线和电平转换器
5.3.7 RS-422/485通信总线和发送/接收器
*§5.4 8XC552的A/D转换器
5.4.1 A/D转换器功能和使用方法
5.4.2 A/D的应用和编程
*§5.5 其他外围模块简介
5.5.1 液晶显示器(LCD)驱动器
5.5.2 串行外围接口SPI
5.5.3 I2C串行总线口
5.5.4 控制器局域网(CAN)接口
5.5.5 其他
小结
习题
实验
实验一 T0应用程序调试
实验二 PCA应用程序设计和调试
实验三 串行口输入输出程序设计与调试
实验四 串行通信程序的设计与调试
实验五 80C552 A/D采样程序的设计与调试
实验六 并行口操作实验
实验七 键盘实验
第6章 单片机接口技术
§6.1 51系列单片机并行扩展原理
6.1.1 大系统的扩展总线和扩展原理
6.1.2 紧凑系统的扩展总线和扩展原理
6.1.3 海量存储器系统地址译码方法
§6.2 程序存储器扩展
6.2.1 常用EPROM存储器
6.2.2 程序存储器扩展方法
§6.3 数据存储器扩展
6.3.1 常用RAM芯片
6.3.2 RAM存储器的扩展和读写操作
§6.4 RAM/10扩展器8155的接口技术和应用
6.4.1 RAM/IO扩展器8155的接口技术
6.4.2 七段发光显示器的结构和工作原理
6.4.3 8155的应用——6位动态显示器的接口和编程
6.4.4 8155的应用——3×8键盘的接口和编程
*§6.5 并行接口8255A的接口技术和应用
6.5.1 8255A的接口和编程
6.5.2 8255A的应用——点阵式发光显示器的接口和编程
§6.6 74系列器件的接口技术和应用
6.6.1 用74HC245扩展并行输入口
6.6.2 用74ftC377扩展并行输出口
*§6.7 A/D器件接口技术
6.7.1 8路8位A/D ADC0809/0808的接口和编程
6.7.2 12位A/D AD574的接口和编程
*§6.8 液晶显示模块LCM的接口和编程
6.8.1 GY1206 LKSCY7G液晶显示模块简介
6.8.2 GY1206 LKSCY7G的接口和编程
*§6.9 模拟串行扩展技术
6.9.1 I2C时序模拟
6.9.2 SPI时序模拟
小结
习题
实验
实验一 程控扫描显示器键盘实验
实验二 定时扫描显示器、键盘实验
实验三 8255和点阵式发光显示器实验
*实验四 GY1206液晶显示模块实验
第7章 C51应用程序设计
§7.1 字符串命令的校验和处理
§7.2 步进电机控制器
§7.3 多路低频脉冲发器
*§7.4 直流电机控制器
§7.5 顺序控制器
*§7.6 软件控制的异步串行口
§7.7 交通灯控制器
小结
习题
实验
实验一 字符串命令处理实验
实验二 顺序控制器实验
实验三 步进电机实验
实验四 直流电机实验
实验五 交通灯控制实验
*第8章 单片机应用系统研制
§8.1 系统设计
8.1.1 总体设计
8.1.2 硬件设计
8.1.3 软件设计
§8.2 开发工具及系统调试
习题(讨论题)
附录
附录1 C语言运算符优先级和结合性
附录2 教学光盘内容和使用说明
附录3 实验仿真模块简介
参考文献