第1篇 汇编指令查询篇 2
第1章 指令系统简介 2
1.1指令格式 2
1.2指令分类 3
1.3描述指令常用的符号说明 5
1.4寻址方式 6
第2章 数据传送类指令 9
2.1指令1 MOV——片内传送 9
2.2指令2 MOVX——片外传送 17
2.3指令3 MOVC——查表 19
2.4指令4 XCH——全字节交换 21
2.5指令5 XCHD——半字节交换 22
2.6指令6 SWAP——高低位交换 23
2.7指令7 PUSH——进栈 24
2.8指令8 POP——出栈 25
第3章 算术运算类指令 29
3.1指令9 INC——加1 29
3.2指令10 DEC——减1 32
3.3指令11 ADD——不带进位加法 35
3.4指令12 ADDC——带进位加法 38
3.5指令13 SUBB——减法 40
3.6指令14 MUL——乘法 44
3.7指令15 DIV——除法 46
3.8指令16 DA——十进制调整 48
第4章 逻辑运算类指令 50
4.1指令17 CPL——累加器A取反 50
4.2指令18 CLR——累加器A清0 51
4.3指令19 ANL——逻辑“与”运算 52
4.4指令20 ORL——逻辑“或”运算 55
4.5指令21 XRL——逻辑“异或”运算 57
4.6指令22 RL——左循环移位 59
4.7指令23 RLC——带进位左循环移位 60
4.8指令24 RR——右循环移位 62
4.9指令25 RRC——带进位右循环移位 63
第5章 控制转移类指令 65
5.1指令26 AJMP——无条件近程转移 65
5.2指令27 LJMP——无条件远程转移 67
5.3指令28 SJMP——无条件短程转移 68
5.4指令29 JMP——无条件间接转移 70
5.5指令30 JZ——累加器判0条件转移 71
5.6指令31 JNZ——累加器判非0转移 73
5.7指令32 CJNE——比较条件转移 74
5.8指令33 DJNZ——减1条件转移 76
5.9指令34 ACALL——子程序近程调用 78
5.10指令35 LCALL——子程序远程调用 79
5.11指令36 RET——子程序返回 80
5.12指令37 RETI——中断子程序返回 82
5.13指令38 NOP——空操作 83
第6章 位操作类指令 85
6.1指令39 MOV——位数据传送 86
6.2指令40 SETB——位置位 87
6.3指令41 CLR——位复位 88
6.4指令42 ANL——位逻辑“与” 90
6.5指令43 ORL——位逻辑“或” 91
6.6指令44 CPL——位逻辑“非” 93
6.7指令45 JC——进位位为1转移 95
6.8指令46 JNC——进位位为0转移 96
6.9指令47 JB——位为1转移 97
6.10指令48 JNB——位为0转移 98
6.11指令49 JBC——位为1清0转移 99
第7章 伪指令 101
7.1伪指令1 ORG——汇编起始 102
7.2伪指令2 END——汇编结束 103
7.3伪指令3 EQU——等值 104
7.4伪指令4 DB——定义字节 105
7.5伪指令5 DW——定义数据字 107
7.6伪指令6 DS——预留存储单元 107
7.7伪指令7 BIT——定义位地址 108
7.8伪指令8 DATA——定义数据地址 109
7.9伪指令9 $——表示当前地址 109
第8章 汇编程序常用形式 111
8.1形式1顺序程序 111
8.2形式2分支程序 113
8.3形式3循环程序 117
8.4形式4查表程序 120
8.5形式5子程序 124
第2篇 C51语言查询篇 132
第9章 C51程序的基本结构 132
9.1 C51语言基础 132
9.2 C51程序的基本结构 133
9.3 C51程序的书写特点 136
第10章 C51数据结构 139
10.1 C51的数据类型 139
10.2常量与变量 141
10.3数组与指针 143
第11章 C51常用的运算符 146
11.1运算符1赋值运算 146
11.2运算符2增量和减量运算 147
11.3运算符3关系运算 148
11.4运算符4逻辑运算 148
11.5运算符5位运算符 150
11.6运算符的运算优先次序 151
第12章 C51流程结构及流程图 152
12.1结构1顺序结构 152
12.2结构2选择结构 154
12.3结构3循环结构 155
第13章 C51流程控制语句 157
13.1语句1 if-else——条件选择 157
13.2语句2 if-else-if——嵌套 160
13.3语句3 switch-case——多分支选择 163
13.4语句4 goto——无条件转向 166
13.5语句5 while——当型循环 170
13.6语句6 do-while——直到型循环 172
13.7语句7 for——循环 175
13.8循环的嵌套 178
13.9语句8 break——中断 179
13.10语句9 continue——接续 181
13.11语句10 return——函数返回值 183
第14章 C51函数 186
14.1 C51函数的定义 186
14.2 C51库函数 191
14.3 C51中断函数 194
第15章 函数分类举例 197
15.1形式1无参数输入和返回值 197
15.2形式2有参数输入无返回值 199
15.3形式3无参数输入有返回值 201
15.4形式4有参数输入和返回值 203
第3篇 基本模块查询篇 208
第16章 汇编语言基本模块 208
16.1模块1延时模块 208
16.2模块2 LED闪动模块 212
16.3模块3移位式输出模块 215
16.4模块4查表输出模块 218
16.5模块5按键输入模块 222
16.6模块6按键计数输入模块 225
16.7模块7发声模块 229
16.8模块8定时中断模块 231
16.9模块9转换模块 235
第17章 C51语言基本模块 241
17.1模块1延时模块 241
17.2模块2 LED闪动 244
17.3模块3移位式输出模块 247
17.4模块4查表输出模块 251
17.5模块5按键输入模块 254
17.6模块6按键计数输入模块 257
177模块7发声模块 261
17.8模块8定时中断模块 263
17.9模块9转换模块 266
第4篇 应用实例模块篇 272
第18章 LED花样变换 272
18.1实例1 LED闪动花样 272
18.2实例2 LED左移花样 278
18.3实例3 LED循环左右移花样 283
18.4实例4 LED“跑马灯”花样 291
18.5实例5 LED“蛇形”移动花样 296
第19章 简易报警器 302
19.1实例6手控变频报警 302
19.2实例7自动报警 305
19.3实例8响声加闪光报警 308
第20章 步进电机的使用 313
20.1实例9步进电机正转与反转 313
20.2实例10步进电机加速与减速 317
20.3实例11按键控制步进电机 320
第21章 LCD显示器 327
21.1实例12 LCD显示字符 327
21.2实例13 LCD循环显示字符串 333
21.3实例14 LCD显示自建图形 339
第22章 串行口通信 345
22.1实例1580C51自身串口通信 345
22.2实例16 8051与8051串口通信 348
22.3实例17 80C51与PC通信 350
第23章 矩阵式键盘的应用 353
23.1实例18键盘输入显示二进制数 353
23.2实例19键盘输入显示十六进制数 358
23.3实例20键盘输入显示十进制数 362
23.4实例21键盘输入控制LED花样 365
第24章 A/D、D/A转换 376
24.1实例22 D/A转换简单程序 376
24.2实例23数字调压器 379
24.3实例24电位器控制LED 383
第25章 PWM控制 387
25.1实例25产生PWM脉冲 387
25.2实例26三相PWM控制LED 389
25.3实例27 PWM控制LED增减光 392
第26章 LED字幕显示 396
26.1实例28静态显示单字 396
26.2实例29依序显示10个字 401
26.3实例30“字”显示闪动 410
第27章 时钟设计 416
27.1实例31简单时钟 416
27.2实例32定时闹钟 428
27.3实例33带倒计时闹钟 441
附录A 80C51单片机指令速查表 458