
本书是一本介绍MCS51单片机及其系统设计实践知识的教学用书,书中简要介绍了MCS51单片机的基本结构、系统扩展方法、C51程序设计基础知识、STC单片机及项目用开发板功能、Keil C51及STCISP软件应用的相关知识,引入了14个单片机项目以介绍单片机应用系统设计方法,这些项目涵盖了数码管、LCD、A/D和D/A、串行通信、数字钟、温度计、直流电机和步进电机控制及红外数据传输等单片机系统的多个应用领域,最后列出了4个综合实例项目,并给出了详细的基于STC单片机的工业控制系统设计过程。
本书采用项目教学方法,可作为模拟单片机系统设计与研发的仿工作过程教学模式的教材或教学参考书,非常适合作为应用型本科高校及高职高专院校的自动化、测控、仪器仪表、电气、电子信息、机械电子和通信电子等专业的教材,也可作为单片机系统设计工程人员和爱好者的参考用书。
这是一本关于如何用MCS51系列单片机进行具体项目设计的实践性教学用书,书中在引入了MCS51单片机和C51程序设计的一些必备基础知识之后,详细介绍了MCS51增强型STC单片机的特色及项目用开发板功能和Keil C51及STCISP软件使用知识。
全书的重点在于具体的项目设计方法和解决方案,项目的引入原则是由简入繁,从基本的单片机输入/输出控制到红外数据传输的14个单片机基础项目,都是按照“项目目标设计→项目任务→系统板上硬件连线设置→程序流程图→C语言源程序→系统构成和程序分析”的顺序进行组织和讲解。读者在使用本书时应将项目中的C语言源程序编译后下载到与本书配套的单片机开发板上进行验证,再通过观察开发板上系统运行时出现的物理现象,对照相应的单片机和C51程序设计基础知识,学习和分析项目中的软硬件设计方法。每个基础项目的最后都有“项目扩展任务”,供读者在掌握每个项目的基础之上,进行更深层次的能力和知识训练。
“综合项目提高篇”中的4个项目是建立在14个基础项目之上的综合运用实例,这些综合项目中的系统设计实例与我们的生活息息相关,具有很高的实用价值,希望能够对读者在实际应用中扩展自己的单片机应用系统的知识和技能起到抛砖引玉的作用。
现在很多高等学校使用的单片机教材基本上都是以单片机的结构为主线,展开的顺序依次为从单片机的硬件结构到指令,然后是简单的软件编程,再到中断的概念和应用,最后是单片机系统的扩展和各种外围器件的应用,同时结合一些实例,而对涉及硬件的综合性分析几乎不做讲解。教师在讲解过程中涉及很多抽象的理论知识,如总线、并行接口、中断、堆栈、地址、数据等,学生普遍感到难学,导致此类教材变成了“天书”,学生逐渐失去了学习的信心和兴趣。这类教材反映的教学方法造成了学生对单片机系统在实际工程项目中应用能力培养的缺失,也不利于他们开拓能力的培养,当走上工作岗位后,他们就会感觉到与相关工作岗位的能力要求存在一定的差距。
为了改善这种单片机课程的被动式教学模式,最佳的方法就是在教学过程中不断培养学生对这门课程的兴趣。以项目任务驱动为主的教学方式,视学生为主体,以项目达成为牵引,单片机系统设计能力培养为目标。学生在模仿工作过程的项目教学中,为了达成项目任务,必须反复动手尝试、积极思考,将学习的过程由被动转变为主动,最终达到训练自身专业能力的目的。实施这种面向“工作过程”的岗位训练,课程的重心更侧重学生综合素质的提高、岗位技能的培养以及专业知识的综合运用,为他们毕业之后与工作岗位的近距离连接创造了有利的条件。本教材就是为了探索这种模仿单片机系统设计与研发过程的项目教学模式而撰写的。
为了更好地介绍和分析项目中出现的各种知识点,全书给出了大量的插图,这些插图可以进一步帮助读者进行相关项目的学习。由于C语言与汇编语言相比,更加适合复杂系统的功能设计实现,因此书中所有项目程序均采用了C语言进行开发。
为了便于读者对这些项目进行学习和验证,编者开发了与之配套的51单片机开发板,板子的硬件原理图在本书的附录中已全部列出,读者既可以针对自己将要设计的单片机系统对参考原理图进行裁减,设计自己的PCB、焊接器件及测试系统,也可以通过编写的博客http://panshimeng.blog.tianya.cn咨询开发板的购买信息。
本书是多个不同学校教师在各自单片机教学过程中的实践总结和教学成果的结晶,嘉兴学院的朱耀东老师负责第11、14和15章的撰写,兰州市商业学校的潘晓东老师负责第9、10章的撰写,南京邮电大学的杨敏老师负责第7、8章的撰写,余下的章节和全文的组织统编工作由潘晓宁老师负责。
MCS51单片机基础知识部分主要参照了文献1、2,C51程序设计基础知识部分主要参照了文献3、4、5,书中引用的其他参考资料都在文中详细标出,在此对被引用文献的作者深深地表示敬意和感谢。
本书配有丰富的教学资源,随书光盘中包含每个项目的所有程序及实验演示视频,为了方便高校教师使用,光盘中还包括了开发板的电路原理图(JPEG图片格式)。本书同时配有电子教案,有需要者可到清华大学出版社网站(www.tup.com.cn)下载。
深圳信息职业技术学院电子通信技术系2006级的胡金伟、李君荣、黄育珍和杨运利同学在项目视频及PPT的制作和书稿的校对上给予了本人很大的帮助,在此一并表示感谢。
最后,还要感谢我的妻子和孩子,在本书的撰写过程中给予我的无私支持和鼓励。书中难免会出现不妥之处,希望读者批评和指正,以便本人在第二版进行适当的修订。如果在书的使用过程中有更好的建议及相关技术问题,可以通过panxn@sziit.com.cn或编写的博客与编者进行探讨,本人将尽力进行解答。
编者2009年1月17日
单片机程序设计实践教程
基础知识篇
第1章单片机概述
1.1单片机的发展
1.2MCS51系列单片机简介
1.3单片机的应用模式和应用领域
1.4如何使用这本书
第2章MCS51单片机的内部结构
2.1内部结构与引脚功能
2.1.1内部结构
2.1.2CPU部件及特殊功能寄存器
2.1.3引脚功能
2.2并行I/O(输入/输出)接口
2.2.1输入功能
2.2.2输出功能及负载配置
2.3存储器配置方法
2.3.1程序存储器配置
2.3.2数据存储器配置
2.4时钟电路与CPU时序
2.4.1时钟电路
2.4.2CPU时序
第3章MCS51单片机的系统资源
3.1中断系统和外部中断
3.1.1中断技术概述
3.1.2MCS51单片机中断系统
3.1.3中断服务函数
3.2定时器/计数器
3.2.1定时器/计数器的结构及工作原理
3.2.2定时器/计数器的四种工作方式
3.3串行通信
3.3.1串行通信的概念
3.3.2MCS51单片机的串行口结构
3.3.3MCS51单片机串行通信工作方式
3.3.4MCS51单片机串行口波特率的选择
第4章STC单片机内部资源和PMY单片机开发板简介
4.1STC单片机系统资源和特点
4.1.1STC单片机的特点和选型
4.1.2STC单片机减少对外部电磁辐射的三大措施
4.1.3STC89C52 RC单片机的特殊功能寄存器
4.2PMY单片机开发板介绍
单片机程序设计实践教程
第5章Keil C51程序设计基础
5.1标识符和关键字
5.2C51的数据类型
5.2.1整型(int)
5.2.2实型数据
5.2.3字符型数据(char)
5.2.4指针型(*)
5.2.5bit位标量
5.2.6各类数值型数据之间的混合运算
5.3C51 的数据存储类型
5.4C51 的基本运算
5.4.1算术运算符和算术表达式
5.4.2关系运算符
5.4.3逻辑运算符
5.4.4位运算
5.5C51的基本语句
5.5.1条件语句
5.5.2循环语句
5.5.3break、continue和goto语句
5.6C51的函数
5.6.1函数的分类与定义
5.6.2C51的中断服务函数
5.7数组与指针
5.7.1数组
5.7.2指针
5.8C51的预处理命令
5.8.1宏定义
5.8.2文件包含
5.8.3条件编译
第6章Keil C51和STCISP软件的使用
6.1Keil C51软件的使用
6.1.1启动Keil C51软件
6.1.2简单程序的调试
6.2用STCISP软件将HEX文件写入单片机芯片中
6.2.1项目开发板和STC下载线的配置
6.2.2将HEX 文件写入单片机芯片
基础项目篇
第7章单片机端口输入/输出控制(按键和点灯)
7.1项目目标设计
7.2项目任务
7.3系统板上硬件连线
7.4程序流程图
7.5C语言源程序
7.6系统构成和程序分析
7.7项目扩展任务
第8章流水灯控制
8.1项目目标设计
8.2项目任务
8.3系统板上硬件连线
8.4程序流程图
8.5C语言源程序
8.6系统构成和程序分析
8.7项目扩展任务
第9章七段数码管和4×4键盘控制
9.1项目目标设计
9.2项目任务
9.3系统板上硬件连线
9.4程序流程图
9.5C语言源程序
9.6系统构成和程序分析
9.7项目扩展任务
第10章继电器和直流小电机正反转控制
10.1项目目标设计
10.2项目任务
10.3系统板上硬件连线
10.4程序流程图
10.5C语言源程序
10.6系统构成和程序分析
10.7项目扩展任务
第11章A/D转换
11.1项目目标设计
11.2项目任务
11.3系统板上硬件连线
11.4程序流程图
11.5C语言源程序
11.6系统构成和程序分析
11.7项目扩展任务
第12章光电传感器和蜂鸣器控制
12.1项目目标设计
12.2项目任务
12.3系统板上硬件连线
12.4程序流程图
12.5C语言源程序
12.6系统构成和程序分析
12.7项目扩展任务
第13章简易数字信号发生器
13.1项目目标设计
13.2项目任务
13.3系统板上硬件连线
13.4程序流程图
13.5C语言源程序
13.6系统构成和程序分析
13.7项目扩展任务
第14章1602液晶显示控制
14.1项目目标设计
14.2项目任务
14.3系统板上硬件连线
14.4程序流程图
14.5C语言源程序
14.6系统构成和程序分析
14.7项目扩展任务
第15章串行通信
15.1项目目标设计
15.2项目任务
15.3系统板上硬件连线
15.4程序流程图
15.5C语言源程序
15.6系统构成和程序分析
15.7项目扩展任务
第16章数字钟设计
16.1项目目标设计
16.2项目任务
16.3系统板上硬件连线
16.4程序流程图
16.5C语言源程序
16.6系统构成和程序分析
16.7项目扩展任务
第17章EEPROM器件24C02读写控制
17.1项目目标设计
17.2项目任务
17.3系统板上硬件连线
17.4程序流程图
17.5C语言源程序
17.6系统构成和程序分析
17.7项目扩展任务
第18章温度传感器
18.1项目目标设计
18.2项目任务
18.3系统板上硬件连线
18.4程序流程图
18.5C语言源程序
18.6系统构成和程序分析
18.7项目扩展任务
第19章步进电机控制
19.1项目目标设计
19.2项目任务
19.3系统板上硬件连线
19.4程序流程图
19.5C语言源程序
19.6系统构成和程序分析
19.7项目扩展任务
第20章红外数据传输
20.1项目目标设计
20.2项目任务
20.3系统板上硬件连线
20.4程序流程图
20.5C语言源程序
20.6系统构成和程序分析
20.7项目扩展任务
综合项目提高篇
第21章停车场驻车信息显示和出入口模拟控制系统
21.1需求分析
21.2系统分析
21.3系统设计任务
21.4硬件设计分析
21.5系统软件设计分析
第22章空调模拟控制系统
22.1需求分析
22.2系统分析
22.3系统设计任务
22.4硬件设计分析
22.5系统软件设计分析
第23章具有远程调时功能的城市十字路口信号灯模拟控制系统
23.1概述
23.2需求分析
23.3城市交通信号灯控制系统的发展和分类
23.4系统分析
23.5系统设计任务
23.6硬件设计分析
23.7系统软件设计分析
第24章具有串口校时和闹铃功能的数字钟系统设计
24.1需求分析
24.2系统分析与设计任务
24.3硬件设计分析
24.4系统软件设计分析
附录APMY单片机开发板系统原理图
附录BPMY单片机开发板系统PCB布板图
参考文献