单片机原理及应用项目化教程(C语言版)

-
【作 者】主编 谢四连 王善伟 李石林
【I S B N 】978-7-5170-4504-5
【责任编辑】李炎
【适用读者群】本专通用
【出版时间】2016-07-20
【开 本】16开
【装帧信息】平装(光膜)
【版 次】第1版第1次印刷
【页 数】236
【千字数】364
【印 张】14.75
【定 价】¥30
【丛 书】普通高等教育“十三五”规划教材(计算机专业群)
【备注信息】
简介
本书特色
前言
章节列表
精彩阅读
下载资源
相关图书
本书以十一个项目的形式分别介绍了51单片机的基础知识、常用软件Keil C与Proteus的使用、单片机的输入/输出功能、数码管基础与矩阵键盘扫描、定时器与数码管动态显示、外部中断与串行通信、LCD1602显示原理及实现、I2C总线与EEPROM、温度传感器DS18B20与蜂鸣器、A/D与D/A转换、实时时钟DS1302、红外与步进电机。
本书中的项目以由浅入深的形式对单片机的各个部分进行了介绍,每个部分都以具体的实例对内容进行巩固,几乎所有实例都配有电路图和具体分析,程序代码的编写规范已经过实际验证,部分章节后留有思考题,可以供同学们后续自学。
本书内容难易适中,编排合理,可作为各类工科院校自动化、电子信息工程、电子信息科学与技术、计算机、机电一体化等专业的单片机课程教材,也可作为从事电子技术、计算机应用与开发的工程技术人员的学习和参考用书,还可作为单片机自学者的入门用书。
本书配有电子教案,读者可以到中国水利水电出版社网站和万水书苑上免费下载,网址为http://www.waterpub.com.cn/softdown/和http://www.wsbookshow.com。
采用项目教学法,使学生在“做中学,学中做”:项目中涵盖了51系列单片机的重要知识点。各项目的编排采用了由浅入深、由易到难的顺序。
采用C语言教学,突出单片机C程序的软件架构设计:本书中的所有实例都采用C语言编写,突出单片机C语言程序的软件架构设计思想。
针对当今技术需求,讲解热点知识:本书突出了对当今热点知识的讲解,把重点放在定时器、中断、串行通信、键盘、LCD显示、温度采集、A/D与D/A转换、实时时钟、红外与步进电机、I2C总线、EEPROM等知识的应用上,突出了实时性与实用性。
前 言
单片机作为微型计算机的一个重要分支,被广泛应用于工业过程的自动检测与控制等领域。目前,单片机作为嵌入式系统的入门课程在各工科院校中被广泛开设,长期以来,该课程存在原理难以理解、设计能力难以提高等问题。本书结合作者多年的教学成果,采用新思路、新方法编写而成,更加适合单片机初学者学习。
本书的主要特点:
1.采用项目教学法,使学生在“做中学,学中做”
本书以十一个项目的形式分别介绍了51单片机的基础知识、常用软件Keil C与Proteus的使用、单片机的输入/输出功能、数码管基础与矩阵键盘扫描、定时器与数码管动态显示、外部中断与串行通信、LCD1602显示原理及实现、I2C总线与EEPROM、温度传感器DS18B20与蜂鸣器、A/D与D/A转换、实时时钟DS1302。项目中涵盖了51系列单片机的重要知识点,各项目的编排采用了由浅入深、由易到难的顺序。
2.采用C语言教学,突出单片机C程序的软件架构设计
本书中的所有实例都采用C语言编写,突出单片机C语言程序的软件架构设计思想。另外C语言具有运算速度快、编译效率高的特点,有良好的可移植性,而且可以直接实现对系统硬件进行控制,和单片机汇编语言相比,还具有不需要记指令,学生容易掌握与理解等优点。
3.针对当今技术需求,讲解热点知识
本书突出了对当今热点知识的讲解,把重点放在定时器、中断、串行通信、键盘、LCD显示、温度采集、A/D与D/A转换、实时时钟、红外、步进电机、I2C总线、EEPROM等知识的应用上,突出了实时性与实用性。
本书的项目一由谢四连、王善伟共同编写,项目二、三、四、五、六由王善伟编写,项目七、八、九、十、十一由李石林编写,谢四连负责全书的统编定稿与审阅工作,方智文、胡文明负责全书的校对工作。
本书中所有项目的实例都是基于金沙滩工作室的KST-51单片机开发板设计的,感谢金沙滩工作室宋雪松老师等对本书出版的支持和内容上的指导。
本书的所有作者都是多年从事单片机原理及应用教学的老师,本书更是作者们多年教学经验的积累和总结,但仍难免存在错误和不足,恳请广大读者指正和谅解,您的指正是我们的期待,我们的联系方式:1635@huhst.edu.cn。
最后,再次感谢所有帮助和关心我们的朋友,谢谢你们使用本书,并祝你们早日成功。
作 者
2016年5月
项目一 单片机介绍 1
1.1 任务一:认识单片机 1
1.1.1 单片机的基本概念 1
1.1.2 单片机的应用领域 2
1.1.3 单片机的种类 3
1.1.4 单片机的选择 5
1.1.5 MCS-51单片机识读 5
1.1.6 单片机最小系统的组成 9
1.2 任务二:Keil开发软件的使用 12
1.2.1 Keil软件安装 12
1.2.2 Keil基本情况介绍 14
1.2.3 Keil软件的使用 17
1.3 任务三:Proteus仿真软件的使用 24
1.3.1 Proteus软件安装 24
1.3.2 Proteus软件的使用 27
项目二 输入/输出功能 38
2.1 任务一:输出功能——点亮LED灯 38
2.1.1 LED灯介绍 38
2.1.2 任务实施 39
2.2 任务二:输入功能——按键检测 45
2.2.1 键盘介绍 45
2.2.2 MCS-51单片机并行I/O接口结构 46
2.2.3 独立按键扫描 49
2.2.4 任务实施 51
项目三 数码管基础与矩阵键盘扫描 53
3.1 任务一:认识数码管 53
3.1.1 数码管的基本介绍 53
3.1.2 数码管真值表 54
3.1.3 数码管的静态显示 56
3.2 任务二:矩阵键盘扫描 58
3.2.1 结构和工作原理 58
3.2.2 软件设计思路 59
3.2.3 任务实施 60
项目四 定时器与数码管动态显示 63
4.1 任务一:定时器的使用 63
4.1.1 定时器的初步认识 63
4.1.2 定时器的寄存器 64
4.1.3 定时器初始化 67
4.1.4 定时器中断 68
4.1.5 定时器的应用 73
4.2 任务二:数码管动态显示 75
4.2.1 动态显示的基本原理 75
4.2.2 数码管动态显示应用 75
项目五 外部中断与串行通信 80
5.1 任务一:STC89C52外部中断 80
5.1.1 外部中断触发电路 80
5.1.2 外部中断初始化 81
5.1.3 外部中断的应用 82
5.2 任务二:串行通信 84
5.2.1 串行口介绍 84
5.2.2 串行口初始化 89
5.2.3 串口助手使用说明 90
5.2.4 串行数据发送 91
5.2.5 串行数据接收 93
项目六 LCD1602显示原理及实现 95
6.1 任务一:了解液晶显示器 95
6.1.1 1602字符型液晶显示模块的
基本组成 95
6.1.2 LCD1602字符型液晶显示器
引脚及功能 96
6.1.3 LCD指令码工作说明 97
6.1.4 LCD控制器接口时序说明 101
6.1.5 LCD初始化设置 103
6.1.6 LCD1602简单实例 103
6.2 任务二:LCD显示时钟 106
项目七 I2C总线与EEPROM 110
7.1 任务一:认识 I2C总线 110
7.1.1 I2C总线内部结构 110
7.1.2 I2C时序 111
7.1.3 I2C数据传输格式 111
7.1.4 I2C寻址模式 112
7.2 任务二:学习EEPROM 118
7.2.1 EEPROM读写操作时序 118
7.2.2 EEPROM跨页写操作时序 119
7.3 任务三:设计计数器 119
项目八 温度传感器DS18B20与蜂鸣器 125
8.1 任务一:了解温度传感器DS18B20 125
8.1.1 温度传感器DS18B20特性 125
8.1.2 应用范围 126
8.1.3 温度传感器DS18B20引脚定义 126
8.1.4 温度传感器DS18B20工作原理 126
8.2 任务二:了解蜂鸣器 131
8.3 任务三:制作温度报警器 132
项目九 A/D与D/A转换 137
9.1 任务一:了解A/D转换 137
9.1.1 A/D的主要指标 137
9.1.2 PCF8591的硬件接口 138
9.1.3 PCF8591的软件编程 139
9.1.4 任务实施 140
9.2 任务二:了解D/A转换 143
项目十 实时时钟DS1302 146
10.1 任务一:了解DS1302 146
10.1.1 DS1302的特点 146
10.1.2 DS1302的硬件电路 147
10.1.3 DS1302寄存器介绍 149
10.1.4 DS1302通信时序介绍 150
10.2 任务二:设计具有闹钟功能的
高精度时钟 151
项目十一 红外与步进电机 170
11.1 任务一:了解红外遥控器 170
11.1.1 红外光的基本原理 170
11.1.2 红外遥控通信原理 170
11.1.3 NEC协议(红外遥控器) 172
11.2 任务二:认识28BYJ-48型步进电机 177
11.2.1 步进电机的分类 177
11.2.2 让电机转起来 179
11.3 任务三:用红外遥控器控制步进电机
正反转 182
附录A ASCII码字符表 187
附录B 单片机C语言基础 191
附录C 单片机C语言技术规范 214
参考文献 230
- Java面向对象程序设计 [主编 姜春磊 陈虹洁]
- C语言程序设计实验指导与实训(第二版) [主编 倪燃]
- 程序思维与C语言实现 [张祎 王俊海 吕波]
- Python程序设计及实践教程 [肖朝晖]
- C语言程序设计 [魏琴 刘祖珉 赵仕波 肖阳春]
- C语言程序设计实验教程 [张小刚 司春景]
- 电气控制与PLC程序设计(第二版) [胡冠山]
- Java Web项目化设计实践教程 [邱云 曾陈萍]
- C语言程序设计(第三版) [主编 丁红 王立新 蔡开立]
- Python数据分析 [主编 冯志辉 赵磊 李放]
- Python程序设计与应用(第二版) [主编 张广渊]
- C程序设计实践教程 [刘卫国]
- C程序设计(慕课版) [刘卫国]
- 程序设计基础实践教程(C/C++语言版) [张桂芬 葛丽娜]
- C++案例项目精讲 [主编 杨国兴]
- SwiftUI完全开发 [李智威 著]
- MySQL数据库项目式教程 [陈亚峰]
- C语言程序设计习题与实验指导(第二版) [主编 甄增荣 张宾]
- C语言程序设计(第二版) [主编 甄增荣 田云霞]
- Unity3D虚拟现实应用开发实践 [主 编 刘龙]
- Python程序设计 [主编 姜春磊 陈虹洁]
- C语言程序设计实践教程(活页式) [主编 郑茵 陈巍 滕泓虬]
- 面向对象程序设计 [主编 张勇 张平华 赵小龙]
- Python程序设计基础及实战 [主编 刘健]
- C语言程序设计 [姜雪]
- Python程序设计实践教程 [王鹤琴 蔡正保]
- C++程序设计实践教程(第三版) [主编 刘卫国 曹岳辉]
- C++程序设计(第三版) [主编 曹岳辉 刘卫国]
- C语言程序设计项目化教程(活页式) [主编 张利华 潘晓利]
- 机器人流程自动化(RPA)实战——基于UiPath [主编 金鑫]