图书简介:
目 录
内容简介 II
前言 III
项目1 单片机操作环境 1
1.1 学什么单片机 1
1.2 如何学习单片机 2
1.3 单片机学习的准备工作 3
1.4 单片机开发软件环境搭建 4
1.5 Keil 基本概况介绍 6
1.6新建一个工程 8
1.7 程序下载 18
项目2 点亮你的LED 23
2.1 认识STC单片机 23
2.2 单片机最小系统 25
2.2.1电源 26
2.2.2晶振 27
2.2.3复位 28
2.3 LED 小灯 28
2.4 编写点亮小灯的程序 30
2.4.1 特殊功能寄存器和伪指令 30
2.4.2 各种数制及转换 32
2.5 点亮小灯的原理 34
第3章 闪烁的LED 38
3.1 什么是单片机系统 39
3.2单片机的IO口 41
3.2.1 STC单片机的IO口 41
3.3 闪烁的LED 43
3.3.1 软件设计流程图 44
3.3.2 汇编指令格式 45
3.3.3 程序详解 45
3.3.4延时子程序的编写 47
3.4 实例延伸——按键控制LED闪烁 49
3.4.1 明确系统功能 49
3.4.2 硬件电路 50
3.4.3软件设计 50
第四章 单片机的存储器组织 55
4.1程序存储器 55
4.1.1程序下载到哪里 55
4.1.2 STC15W单片机的程序存储器 56
4.2 STC15W单片机的数据存储器 58
4.2.1 数据存储器的作用 58
4.2.2 片内和片外数据存储器 58
4.2.3 00H~1FH工作寄存器区 61
4.2.4 20H~2FH位寻址区 62
45.2.5 30H~FFH——开放区 63
4.3 STC15W单片机的特殊功能寄存器SFR 64
4.3.1 特殊功能寄存器分布图 64
4.3.2 SFR的操作方法—字节操作与位操作 66
4.3.3 特殊功能寄存器简介 67
4.4 实例延伸——按键长按和短按 68
4.4.1 明确系统功能 69
4.4.2 硬件电路 69
4.4.3软件设计 70
第5章 解剖单片机 77
5.1 从IO口到单片机的“解剖结构” 77
5.1.1 P1口结构及解剖图 77
5.1.2 单片机的解剖结构 79
5.1.3深入”解剖”——算术逻辑单元ALU 81
5.2存储器家族 82
4.3随机访问存储器——RAM 82
5.4只读存储器——ROM 85
5.5数据是如何保存的 86
5.5.1文字数据与存储器 86
5.5.2图像数据与存储器 88
5.6 实例点拨——用取表方式控制流水灯 90
5.6.1 明确系统功能 90
5.6.2 流水灯的显示数据转换 90
5.6.3 取表法 92
第六章 单片机指令的执行 100
6.1 汇编语言详谈 100
6.1.1 汇编器 101
6.1.2 汇编程序书写格式 102
6.1.3 伪指令 104
6.2 时钟与指令的执行 106
6.2.1 时钟究竟是什么 106
6.2.1 程序计数器PC的角色 109
6.2.3指令的执行 109
6.3 寻址方式 110
6.3.1 立即寻址 110
6.3.2 直接寻址 111
6.3.3 间接寻址 111
6.3.4 寄存器寻址 111
6.3.5 相对寻址 112
6.3.6 变址寻址 112
6.3.7 位寻址 112
6.4 实例点拨—程序存储器和数据存储器的寻址 112
6.4.1把程序存储器中的数据载入工作寄存器中 112
6.4.2把程序存储器中的数据载入数据存储器中 114
6.4.3再谈取表法 115
第七章 程序结构及综合实例 123
7.1 程序的基本结构 123
7.1.1 顺序结构程序设计 124
7.1.2 分支(选择)结构程序设计 124
7.1.3 循环结构程序设计 125
7.1.4 查表程序设计 126
7.1.5 散转(多分支)程序设计 127
7.2 综合实例——4种模式流水灯 127
7.2.1 明确系统功能 128
7.2.2 软件设计 129
7.3 综合实例——简单加法器的设计 140
7.3.1 明确系统功能 140
7.3.2 软件设计 140
7.4 蜂鸣器和音乐的实现 145
7.4.1 单片机 IO 口的结构 145
7.4.2上下拉电阻 146
7.4.3蜂鸣器 147
7.4.4音乐的单片机实现原理 147
7.4.5 软件设计 151
第八章 单片机的指令详谈 157
8.1指令概述 157
8.1.1影响程序状态字PSW的指令 157
8.2算术操作类指令 158
8.2.1 加法指令——ADD A, <scr-byte> 158
8.2.2带进位的加法指今——ADDC A,〈src-byte〉 159
8.2.3带借位的减法指今——SUBB A,〈src-byte〉 160
8.2.4 自增/自减指今——INC <Byte>/DEC <Byte> 161
8.2.5 乘法指令——MUL AB 162
8.2.6 除法指令——DIV AB 162
8.2.7 十进制调整指令——DA A 163
8.3 逻辑运算指令 163
8.3.1 AND操作----ANL 〈dest-byte〉,〈src-byte〉 163
8.3.2 OR操作----ORL〈dest-byte〉,〈src-byte〉 164
8.3.3 XOR操作----XRL〈dest-byte〉,〈src-byte〉 165
8.3.4 清0操作——CLR A 166
8.3.5 取反操作——CPL A 166
8.3.6 位移动操作——RL、RLC、RR、RRC 167
8.4 片内数据传送指令 167
8.4.1 数据传送指令——MOV <dest>, <src> 167
8.4.2数据指针寄存器装载指令——MOV DPTR,#data16 169
8.4.3 堆栈指令——PUSH和POP 169
8.4.4 数据交换指令——XCH/XCHD/SWAP 172
8. 5 片外数据装载指令 172
8.6 查表指令 174
8.7 布尔指令 175
8.7.1 清0、置1——CLR、SETB 175
8.7.2 布尔逻辑指令——ANL、ORL、CPL 175
8.7.3 位数据装载指令——MOV <dest-bit>,<src-bit> 176
8.7.4 布尔跳转指令——JC、JNC、JB、JNB、JBC 177
8.8 调用子程序 177
8.8.1 长调用指令——LCALL 178
8.8.2 绝对调用指令——ACALL 178
8.8.3 返回指令——RET和RETI 178
8.9 跳转和循环指令 179
8.9.1 无条件跳转指令——LJMP、AJMP、SJMP、JMP 179
8.9.2 跳转指令——JZ、JNZ和CJNE 180
8.9.3 减1条件循环指令——DJNZ<byte>,<rel-addr> 182
8.9.4 无操作指令——NOP 183
8.10 单片机对于带符号数的处理和溢出问题 183
8.10.1无符号数与带符号数 183
8.10.2二进制的二补数 184
8.10.3带符号数操作中的溢出问题 185
8.10.4 什么时候会溢出 185
8.10.5 如何防止进位或溢出产生的错误 186
8.11 实例点拨——指令应用实例 186
8.11.1数据求和 186
8.11.2减法与二进制的二补数 187
8.11.3 XRL指令应用于比较寄存器数值 188
8.11.4 利用布尔指令产生矩形波信号 188
参考文献 193
附录1 电路原理图 194
附录2 汇编指令 195
附录3 STC15系列单片机的SFR功能 200
附录4 ASCII码表 204
附录5 指令的执行代码表 205
附录6 51单片机汇编程序保留字 212
展开
前言
计算机技术在信息社会中的作用越来越重要,单片机技术作为其一个分支,广泛应用于工业控制、智能仪器仪表、机电一体化产品、家用电器等各个领域。在教学中,它不仅是一门实用技术,更是一种工具:提高学生的思维能力、动手能力、创新能力的工具。
单片机技术是和实际最紧密相连的学科之一,很容易激发学生的学习兴趣,然而学生普遍感到这门课非常难学。究其原因有以下两点:
1、单片机技术的知识点多、逻辑性强。需要学生主动思考程序逻辑,需要综合应用各个知识点,需要多编程、多排错、多感受,只有体会到编程的成功,完成项目的喜悦,学生才有学习的积极性和持续的动力,才愿意发自内心的想去学习。
2、教学内容、教学手段沉旧,理论和实际脱节。单片机技术发展迅速,芯片功能日渐强大,过时的内容应该更新,教材的编写应该着眼于主流芯片的实际应用,程序效果应该立竿见影,这就需要借助好的开发板,需要有实际项目经验的老师,需要合理的信息化教学手段。
因此在编排本书时,编者做到以下几点:
1、 每个项目都能看到效果。书中所以的实例和编程作业都配备二维码,通过扫码二维码可以看到程序清单和效果视频,形象生动,激发学习兴趣。
2、 本书所有的程序都是根据自行开发的单片机板编写的,该单片机板采用目前主流高速STC15W4K58S4单片机为核心,尺寸精悍55cm*35cm,成本低廉,下载方便,满足初学者的功能要求。
3、 将知识点打散,编排到每个项目中,每个项目既相对独立,又承前启后,逐步增加难度,循序渐进掌握编程语言和逻辑思维。
4、 既授人以鱼,也授人以渔。每章的"实例点拨"巩固每章的学习知识点,伴随着仔细的讲解,一个例子下来就能摸清来龙去脉。然后布置一个拓展作业,让读者思考程序如何改写,锻炼编程能力。
本书在内容结构的编排上遵循学生的认知规律,每一章都设置了知识导航,说明了每一章的重点和难点、教学安排和编程要求。每个章节之间从浅到深,根据单片机开发实践设计案例,不断有新的知识点固化到程序中,和实际应用紧密结合。每章最后是一个“实例点拨”,既紧扣每章的内容,又升华每章的知识点,通过实例的学习,读者可以举一反三,编写每章后面的编程拓展题。
本书为应用型本科和高职高专院校电子信息类、自动化类、机电类、机械制造类等专业的单片机技术课程的教材,也可作为开放大学、成人教育、自学考试、中职学校和培训班的教材,也可以作为电子工程技术人员的参考工具书。
本书由武汉职业技术学院陈亭志任主编,程利民和朱晓玲任副主编。具体分工为:陈亭志对本书的编写思路与大纲进行总体策划,指导全书的编写,对全书通稿,并编写项目1至项目6;程利民编写项目7和项目8的8.6-8.11,附录1;朱晓玲编写项目8的8.1-8.5,附录2-附录6。本书的完成,特别感谢程利民和朱晓玲两位老师,他们多年来持续不断的支持和鼓励,使得书中的点点滴滴最终得以沉淀。程利民老师开发的实验板为本书的完成提供坚实的硬件基础,该实验板尺寸只有55cm*35cm,成本不高,程序下载非常方便,一根手机数据线就可以完成,便携的硬件条件为学生单片机的学习提供有利保证。在编写过程中参考了多位同行老师的著作及资料,再此一并表示感谢。
为了方便教师教学,本书配有电子教学课件、习题参考答案、汇编程序文件、程序效果视频等资源,所有资源都上传至UMU平台,只需要搜索:STC单片机入门-汇编语言版,就可以查看所有的资源。武汉职业技术学院为本教材配备了单片机核心板,使用本教材的院校,如果需要可以与武汉职业技术学院机电学院联系。
由于时间紧迫与编者水平有限,书中的错误和缺点在所难免,热诚欢迎使用者对本书提出批评与建议。
展开