本书从单片机的实际应用出发,通过任务驱动方式,使学生在完成任务的过程中,逐步掌握单片机的基本结构、原理、接口技术及其应用。书中通过15个任务,使学生逐步掌握单片机内部资源的应用和I/O口的功能及控制方法,掌握数码管显示、键盘、液晶显示、A-D转换、D-A转换、EEPROM的控制等单片机常用技术,从而进一步学会和掌握利用单片机开发交通灯控制器、温控仪表等工业产品的技术和方法。本书在内容编排上力求体现单片机知识的系统性,注重前后知识点之间的关联,在注重理论基础的同时突出实践应用,并通过任务、实例引导激发读者学习兴趣,培养实际应用能力。
本书可作为普通高校计算机类、电子信息类、电气自动化及机械专业的教学用书,还可作为高职高专以及培训机构的教学用书,同时,也可作为单片机应用领域工程技术人员的参考书。
适读人群 :适合单片机设计、制造专业人员参考
为完善教师培养标准和课程体系,教育部、财政部在“职业院校教师素质提高计划”框架内专门设置了职教师资培养资源开发项目,系统开发用于本科专业职教师资培养标准、培养方案、核心课程和特色教材等系列资源。
本书为教育部、财政部“职业院校教师素质提高计划——本科专业职教师资培养资源开发项目”(项目编号:VTNE030)的成果之一。
单片机作为计算机发展的一个重要分支,已渗透到人们生活的各个领域。单片机在各领域的广泛应用,使其成为目前工程教育中最基本和最核心的课程之一。
在教学体系中,单片机是一门实践性很强的课程,如果只注重理论学习,不重视实践环节,就得不到好的学习效果。只有遵循“任务驱动→案例引导→在学中做→在做中学”这样一个循序渐进、由浅入深的学习过程,才能逐渐理解和掌握单片机的理论知识和应用技能。
单片机的学习,难在软件设计,也就是如何用软件控制硬件,因此书中列举了大量的案例,这些案例都是经过实验验证的。读者可以通过分析这些案例,理解和掌握单片机的编程及操作,同时通过这些案例加深对理论的理解。分析案例和模仿案例进行程序设计是初学者提高技能的有效方法,但一直模仿下去就不会进步了,因此要尽力独立完成工作任务,尽情发挥个人创造力,多实践、多积累,就会逐渐成为编程高手。
学习单片机的最终目的,是获得利用知识解决生产实际问题的能力。为此,本书在详细介绍了单片机的基础知识后,从工程实际应用角度出发,以培养开发设计能力为目的,在单片机接口技术的应用方面,引入了交通灯控制器设计和温控仪表设计等侧重于实际应用的工作任务,旨在引导读者掌握工业产品开发的能力。
就软件设计而言,汇编语言和C语言各有特点,很难区分孰优孰劣。究竟采用哪种语言编程,完全取决于个人的兴趣和爱好。但汇编语言入门难和移植性不好是业界公认的,而且随着存储器技术的发展和单片机执行速度的提升,在设计开发时人们已经不再担心存储容量和程序执行时间的问题,因此C语言逐渐成为单片机软件开发的“新宠”。本书采用C语言作为软件设计语言,对C语言的介绍以“够用”为目标,只求灵活精炼,不求广博深奥,并简单介绍了Keil C51编译器的实操用法。
本书除能满足大中专院校《单片机控制技术与应用》的课程教学外,也可以作为相关专业课程设计、毕业设计的参考书,还可以作为单片机开发设计爱好者的参考资料。
本书是吉林工程技术师范学院刘君义教授主持的教育部、财政部“职业院校教师素质提高计划——本科专业职教师资培养资源开发项目”(项目编号:VTNE030)的成果之一。
本书由唐耀武、罗忠宝、张立新编著,唐耀武编写了第2章、第4章、第8章及附录;罗忠宝编写了第3章、第5章及第6章;张立新编写了第1章和第7章;全书由唐耀武统稿,由刘君义教授通篇审读。在此对全体参编人员予以感谢,同时感谢许建平教授、方建教授在本书编写过程中给予的大力帮助。
由于编著者水平有限,书中不足之处难免,敬请广大读者批评指正。
前言
第1章 单片机概述
1.1 什么是单片机
1.2 单片机的用途
1.3 单片机的种类
1.4 本书的选择
1.5 如何学习单片机
练习题
第2章 MCS-51单片机的硬件结构
2.1 MCS-51单片机的硬件组成
2.2 MCS-51单片机的引脚功能
2.3 MCS-51单片机的CPU
2.3.1 运算器
2.3.2 控制器
2.4 MCS-51单片机的存储器结构
2.4.1 程序存储区
2.4.2 数据存储区
2.4.3 特殊功能寄存器
2.4.4 位地址空间
2.5 MCS-51单片机的并行I/O口
2.5.1 P0口
2.5.2 P1口
2.5.3 P2口
2.5.4 P3口
2.6 时钟电路
2.7 复位电路
2.8 单片机最小系统
2.9 单片机的低功耗节电模式
2.9.1 节电模式控制寄存器
2.9.2 空闲模式
2.9.3 掉电模式/停机模式
练习题
第3章 MCS-51单片机的指令系统
3.1 指令系统概述
3.2 MCS-51单片机的寻址方式
3.3 MCS-51单片机指令分类介绍
3.3.1 数据传送类指令
3.3.2 算术运算类指令
3.3.3 逻辑操作类指令
3.3.4 控制转移类指令
3.3.5 位操作类指令
3.4 汇编语言程序设计
3.4.1 伪指令及汇编语言源程序汇编
3.4.2 汇编语言程序设计举例
练习题
第4章 MCS-51单片机的C语言编程
4.1 C51的数据类型
4.2 常量与变量
4.3 C51数据的存储类型与MCS-51单片机存储器结构
4.4 MCS-51单片机特殊功能寄存器及其C51定义
4.5 MCS-51单片机并行接口及其C51定义
4.6 位变量及其C51定义
4.7 C51的运算符、表达式及其规则
练习题
第5章 单片机开发软件及开发工具
5.1 C51程序结构
5.2 Keil C51应用
5.3 下载前的准备
5.4 使用STC-ISP下载软件
练习题
第6章 MCS-51单片机I/O口的应用
6.1 任务1 流水灯控制
6.1.1 发光二极管
6.1.2 单片机的I/O口
6.1.3 单片机如何实现延时
6.1.4 C51语言程序的基本结构及其流程图
6.1.5 循环语句
6.1.6 一维数组
6.1.7 函数
6.1.8 局部变量和全局变量
6.2 任务2 LED数码管显示电路
6.2.1 LED数码管显示电路
6.2.2 LED显示器接口实例
6.3 任务3 键盘电路
6.3.1 键盘接口原理
6.3.2 键盘的工作原理
6.3.3 键盘的工作方式
6.3.4 选择语句
6.3.5 键盘/显示器接口实例
6.3.6 C51的库函数
练习题
第7章 MCS-51单片机内部资源应用
7.1 任务4 中断应用——闪光报警电路
7.1.1 中断系统概述
7.1.2 MCS-51单片机的中断系统
7.1.3 中断响应过程
7.1.4 外部中断的响应时间
7.1.5 外部中断的触发方式选择
7.1.6 中断请求的撤除
7.1.7 中断服务程序的设计
7.2 任务5 定时器/计数器应用——分秒计时器
7.2.1 定时器/计数器的结构
7.2.2 定时器/计数器的工作方式
7.2.3 定时器/计数器的应用编程
7.2.4 指针
7.3 任务6 串行口应用1——串行口扩展并行口
7.3.1 MCS-51单片机串行口及控制
7.3.2 串行口的工作方式0
7.3.3 用MCS-51单片机的串行口扩展并行口
7.4 任务7 串行口应用2——单片机双机通信
7.4.1 串行数据通信概述
7.4.2 串行口用于串行数据通信的工作方式
7.4.3 多处理机通信方式
7.4.4 串行口波特率计算
7.4.5 串行口编程和应用
7.5 任务8 带时间显示的交通灯系统设计
7.5.1 单片机应用系统的设计与开发
7.5.2 交通灯系统设计
练习题
第8章 单片机扩展应用技术
8.1 任务9 D-A转换应用—信号发生器
8.1.1 概述
8.1.2 D-A转换典型集成芯片DAC0832芯片
8.1.3 DAC0832应用举例
8.2 任务10 A-D转换应用—数字电压表
8.2.1 A-D转换概述
8.2.2 STC12C5A60S2系列单片机
8.2.3 STC12C5A60S2系列单片机的A-D转换器的结构
8.2.4 A-D转换控制寄存器
8.2.5 A-D转换器应用举例
8.3 任务11 EEPROM存储器应用——数据的掉电保护
8.3.1 EEPROM的功能
8.3.2 IAP及EEPROM新增特殊功能寄存器介绍
8.3.3 EEPROM空间大小及地址
8.3.4 EEPROM存储器应用的程序实现
8.4 任务12 LCD点阵显示电路LCD1602的应用
8.4.1 LCD1602硬件介绍及其工作原理
8.4.2 LCD1602指令
8.4.3 LCD1602内部复位电路初始化
8.5 任务13 温度测控仪表的设计
8.5.1 测控仪表要考虑的问题
8.5.2 温度检测电路的测试
8.5.3 温控仪表的硬件设计
8.5.4 仪表壳确定和PCB设计
8.5.5 温控仪表的软件设计
8.6 任务14 数字式电流表设计
8.6.1 小电流的测量方式
8.6.2 大电流的测量方法
8.6.3 交流电流测量
8.6.4 利用5A/5mA电流互感器设计电流表
8.7 任务15 远程循环检测仪表设计
8.7.1 串行总线通信的基本原理
8.7.2 RS-485接口电路
8.7.3 RS-485通信协议
8.7.4 基于RS-485通信的软件设计
练习题
附录
《单片机控制技术及应用》学生工作任务单
参考文献