《单片机应用技术 汇编+C51项目教程》共设计了10个项目,分别是:单片机控制的LED流水灯、单片机控制的数码管电子时钟、可调控的走马灯、单片机控制的点阵显示屏、用LCD1602与DS18B20设计的数字温度计、用24C02与LED数码管设计电子密码锁、单片机控制的波形发生器、单片机交通灯远程控制系统、SF6气体密度实时监测系统设计。《单片机应用技术 汇编+C51项目教程》以项目为载体,涵盖了单片机系统中典型的知识点:存储器结构、中断与定时、LED数码管显示器与点阵显示器、键盘、LCD1602字符液晶和LCD12864图形液晶、1-wire总线、SPI总线、I2C总线、串行通信、A-D转换及D-A转换、DS18B20和1302用法、单片机系统开发环境。内容的编排上遵循工作过程导向的思路,项目主导,任务分解。在程序方面既有汇编语言,又有C51编程。每个项目都用到了Wave6000或KeilC51开发软件和Proteus仿真软件。可以真正实现在课堂上做实验,实现“学中做、做中学”这样高效的学习方式。《单片机应用技术 汇编+C51项目教程》可作为高职高专院校自动控制类、机电类、供用电类、电子信息类、铁道机车车辆类等相关专业的单片机课程教材或教学参考书,也可作为工程技术人员的参考用书。
《单片机应用技术——汇编+C51项目教程》以10个精选的项目为依托,串接了单片机各知识点。这10个项目分别涵盖了存储器结构、中断与定时、LED数码管显示器与点阵显示器、键盘、LCD1602字符液晶和LCD12864图形液晶、1wire总线、SPI总线、I2C总线、串行通信、AD转换及DA转换、DS18B20和DS1302的用法、单片机系统开发环境等关键知识点。
本书加大了软硬件仿真的分量和作用。单片机的这些知识点,如果采用传统的教学和学习方法,学起来会感觉非常枯燥单调,效果也是事倍功半。如果想动手做实验验证,往往需要配备相应的单片机实验箱等配套设备,不是很方便。
本书采用英国Labcenter公司的Proteus仿真软件作平台,配合KEIL μVision集成开发环境,使单片机学习的方式、内容和效果有了显著的变化。本书的所有项目均采用Proteus进行逼真的模型仿真,使用Proteus软件中的ISIS画出单片机的硬件系统原理图;使用KEIL软件编写C语言或汇编语言程序并编译输出HEX文件,让原理图中的单片机和HEX文件关联,可以在ISIS中进行联合仿真调试,控制单片机应用系统工作。这样可以清晰直观地观察到程序运行后的现象、单片机的引脚输出状态及各种虚拟仪器、实物模型的工作状态,从感性上加深了对单片机应用系统的理解。而所有这些效果,完全可以在课堂上实现。
本书的特点如下:
(1)任务驱动,每个项目确定了一个明确的题目,然后以此为主线,将与本项目相关的知识点都一个一个串接起来,使学生始终带着问题来学习。
(2)本书的绝大部分项目和例题,都分别给出了汇编程序和C51程序。提供汇编程序主要是想让大家透彻理解单片机的结构和CPU对程序的执行过程,以及满足读者参加某些考试的需要。重点讲述C51当然是因为C语言功能强大、解决复杂问题更高效、C语言程序容易阅读和理解,也是为了最大限度地贴近职业岗位的需要,让学生尽可能不走弯路,学以致用。
(3)10个项目以及每个带硬件的例题都给出了Proteus电路、汇编或C51源程序,并且都已经调试通过,源代码可直接在学习过程中使用、验证。在用本书进行学习时,每个项目一开始就可以先让大家在Proteus中体验到项目的运行结果,做到心中有数,带着任务去求知。
(4)内容上适度体现先进性。本书所采用的Proteus 78、KEIL μVision4这些工具软件都是比较新的版本。本书内容涉及传统接口器件和总线,也涉及比较流行的串行接口器件和串行总线。
郑州铁路职业技术学院的姚存治任本书主编,负责全书的统稿,并编写了项目2的任务21~25和思考与练习;黄峰亮任副主编,编写了项目10;郭丽娜编写了项目7、项目2的任务27和附录B;芮红编写了项目1的任务11~13、任务15~16和思考与练习;王大文编写了项目5、项目1的任务14和项目2的任务26;侯应旗编写了项目3、4、9和附录A;孙逸洁编写了项目6和项目8。郑州大学信息工程学院钱晓捷教授担任本书主审,对本书的编写提出了许多宝贵意见。在本书编写过程中,郑州迪邦科技有限公司给予了大力支持,为我们提供了宝贵的技术资料。
同时,对参考文献中所列出的作者表示衷心的感谢。由于编者水平有限,加之时间仓促,书中难免有错漏或不妥之处,恳请广大读者批评指正。
编者
前言
项目1 单片机控制的LED流水灯的设计和制作
任务1.1 初识单片机
1.1.1 什么是单片机
1.1.2 单片机的应用形式
1.1.3 单片机的发展历程
1.1.4 单片机的主要产品种类
1.1.5 单片机的应用领域
任务1.2 了解单片机中的数制与码制
1.2.1 数制
1.2.2 各种数制间的转换
1.2.3 计算机中数的表示
1.2.4 常用二进制编码
任务1.3 学习MCS 51单片机的内部配置和引脚功能
1.3.1 MCS 51单片机的内部结构及工作原理
1.3.2 MCS 51单片机的引脚功能
1.3.3 MCS 51单片机的存储器结构
1.3.4 单片机最小系统的概念
任务1.4 了解单片机的开发环境
1.4.1 WAVE6000软件使用简介
1.4.2 KEIL μVision4软件使用简介
1.4.3 Proteus 7.8 软件简介
任务1.5 学习单片机C51编程
1.5.1 C51的数据结构
1.5.2 C51的运算符
1.5.3 一个完整的C51程序结构
1.5.4 C51的应用举例
任务1.6 8位LED流水灯的控制设计与仿真
1.6.1 硬件介绍
1.6.2 程序的编制
1.6.3 综合仿真调试
思考与练习
项目2 单片机控制的数码管电子
时钟的设计与制作
任务2.1 学习单片机汇编语言
2.1.1 汇编语言的特点
2.1.2 汇编语言的语句和指令
2.1.3 MCS 51单片机指令简介及指令中符号的含义
2.1.4 寻址方式
任务2.2 学习MCS 51单片机指令系统
2.2.1 数据传送类指令
2.2.2 算术运算指令
2.2.3 逻辑运算与移位类指令
2.2.4 控制转移类指令
2.2.5 位操作指令
任务2.3 学习汇编语言程序设计
2.3.1 软件编程的步骤和方法
2.3.2 汇编语言源程序的汇编
2.3.3 汇编语言编程实例
任务2.4 学习MCS 51单片机中断系统
2.4.1 中断的基本概念
2.4.2 引入中断技术的优点
2.4.3 中断系统应有的功能
2.4.4 中断请求标志
2.4.5 中断允许控制
2.4.6 中断优先级的设定
2.4.7 中断处理过程分析
2.4.8 中断技术应用
任务2.5 学习MCS 51单片机定时器/计数器
2.5.1 定时器/计数器的结构和工作原理
2.5.2 定时器/计数器的四种工作方式分析
2.5.3 定时器/计数器的应用
任务2.6 认识LED数码管显示器
2.6.1 LED数码管显示器的内部结构和显示原理
2.6.2 LED显示方式
2.6.3 MCS 51和八段数码管显示器的接口设计
任务2.7 8位数字时钟的设计与仿真
2.7.1 硬件电路设计
2.7.2 程序设计
2.7.3 综合调试
思考与练习
项目3 可调控的走马灯的设计与制作
任务3.1 学习键盘接口技术
3.1.1 独立式键盘应用
3.1.2 按键的消抖处理
3.1.3 行列式键盘应用
任务3.2 可以调控的走马灯的设计与仿真
3.2.1 硬件电路设计
3.2.2 程序编制
3.2.3 综合仿真调试
思考与练习
项目4 单片机控制的点阵显示屏的设计与制作
任务4.1 LED点阵显示器介绍
4.1.1 LED点阵显示器的结构和原理
4.1.2 MCS 51单片机和LED点阵显示器的接口设计
任务4.2 单片机控制的点阵显示屏的设计与仿真
4.2.1 硬件电路设计
4.2.2 程序编制
4.2.3 综合仿真调试
思考与练习
项目5 用LCD1602与DS18B20设计数字温度计
任务5.1 学习LCD1602的原理与接口
5.1.1 LCD1602的内部结构
5.1.2 LCD1602的控制命令
5.1.3 MCS 51与LCD1602的接口技术
任务5.2 1 wire总线技术与DS18B20的应用
5.2.1 1 wire总线技术简介
5.2.2 DS18B20简介
任务5.3 数字温度计设计与仿真
5.3.1 硬件电路设计
5.3.2 程序编制
5.3.3 综合仿真调试
思考与练习
项目6 用24C02与LED数码管设计电子密码锁
任务6.1 学习I2C总线扩展
6.1.1 I2C总线基础知识
6.1.2 串行EEPROM 24C02扩展
任务6.2 电子密码锁设计与仿真
6.2.1 硬件电路设计
6.2.2 程序编制
6.2.3 综合仿真调试
思考与练习
项目7 单片机控制的波形发生器的
设计与制作
任务7.1 了解A D转换器原理及指标
7.1.1 A D转换器的原理
7.1.2 A D转换器的性能指标
7.1.3 典型的D A转换器芯片DAC
任务7.2 学习单片机与A D转换器的接口应用
7.2.1 单片机与并行8位DAC的接口应用
7.2.2 单片机与并行12位DAC的接口方法
7.2.3 单片机与串行DAC接口
任务7.3 了解A D转换器原理及指标
7.3.1 逐次逼近式A D转换器的原理分析
7.3.2 A D转换器的性能指标
7.3.3 典型的A D转换器芯片ADC
任务7.4 学习单片机与A D转换器的接口应用
7.4.1 单片机与并行8位A D转换器的接口应用
7.4.2 单片机与串行8位A D转换器的接口应用
任务7.5 波形发生器的设计与仿真
7.5.1 硬件电路设计
7.5.2 典型波形分析
7.5.3 程序设计
7.5.4 综合仿真调试
思考与练习
项目8 单片机交通灯远程控制系统的
设计与制作
任务8.1 认识串行通信接口
8.1.1 串行通信基础知识
8.1.2 AT89S51单片机串行口
8.1.3 串行通信的电平转换
8.1.4 串行口应用
任务8.2 单片机交通灯远程控制系统的设计与仿真
8.2.1 硬件电路设计
8.2.2 虚拟串口驱动软件及串口调试软件的使用
8.2.3 程序设计
8.2.4 综合仿真调试
思考与练习
项目9 基于单片机的直流电动机正反转控制系统的设计与仿真
任务9.1 认识步进电动机
9.1.1 步进电动机简介
9.1.2 步进电动机工作原理
任务9.2 直流电动机正反转控制设计与仿真
9.2.1 硬件电路设计
9.2.2 程序设计
9.2.3 综合仿真调试
思考与练习
项目10 SF6气体密度实时监测系统的设计与仿真
任务10.1 学习LCD12864的原理与接口技术
10.1.1 LCD12864硬件接口与内部寄存器
10.1.2 LCD12864控制器软件接口
10.1.3 LCD12864应用实例
任务10.2 学习DS1302的原理与接口
10.2.1 DS1302硬件原理
10.2.2 DS1302软件接口
任务10.3 了解SF6密度继电器工作原理
10.3.1 SF6密度继电器简介
10.3.2 SF6气体密度继电器工作原理
任务10.4 单片机系统的抗干扰设计
10.4.1 干扰的作用机制
10.4.2 抗干扰的硬件措施
10.4.3 抗干扰的软件措施
任务10.5 SF6气体密度实时监测系统设计
10.5.1 系统硬件设计
10.5.2 系统软件设计
10.5.3 系统调试运行
思考与练习
附录
附录A 单片机及常用接口芯片引脚图
附录B MCS 51系列单片机汇编指令表
参考文献