描述
包 装: 平塑国际标准书号ISBN: 9787121351228
内容简介
本书以不需要外部晶振与复位电路的可仿真高速STC15W4K58S4单片机为核心,培养和锻炼学生应用、开发单片机系统的技能。全书包括对单片机操作环境的介绍、如何点亮LED小灯、如何让LED小灯闪烁、对单片机的存储器和整体结构的介绍、对指令的介绍,以及编程综合实训等。基本上每一个项目都设置了知识导航,说明了重点和难点、教学安排和编程要求。每个项目按内容从浅到深排列,并根据单片机开发实践设计案例,不断将新的知识点固化到程序中,和实际应用紧密结合。为了方便教师教学,本书配有电子教学课件、习题参考答案、汇编程序文件、程序效果视频等资源,所有资源都上传至UMU平台,登录平台并搜索“STC单片机入门-汇编语言版”,就可以查看所有的相关资源。如果需要本书相关的开发板,可以与武汉职业技术学院机电学院联系。本书可作为应用型本科院校和高职高专院校电子信息类、自动化类、机电类、机械制造类专业的单片机应用技术课程的教材,也可作为开放大学、成人教育、自学考试、中职学校和培训班的教材,以及电子工程技术人员的参考工具书。
目 录
目 录
内容简介 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
内容简介 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
评论
还没有评论。