第一章 概述 1
1.1 PL/M—51语言 1
1.2 PL/M—51特点 1
第二章 PL/M—51编程基础 3
2.1 PL/M—51程序构成 3
2.2 PL/M—51字符集 3
2.3 标识符、保留字和预说明标识符 4
2.4 符号、分隔符及空白的作用 5
2.5 注释 6
2.6 常数 7
思考题 8
第三章 变量及说明语句 9
3.1 变量和标量变量 9
3.2 变量说明语句 10
3.3 单片机地址空间及变量后缀 11
3.4 数组 15
3.5 结构 16
3.6 数组及结构访问 18
3.7 基变量及地址引用 19
3.8 存储单元的访问(AT属性) 22
3.9 标号说明语句 23
3.10 存储单元的相邻性 24
3.11 文字说明语句(LITERALLY)及应用 25
思考题 26
第四章 表达式及赋值 27
4.1 PL/M—51表达式 27
4.2 操作数 27
4.3 算术操作符 28
4.4 关系操作符 29
4.5 逻辑操作符 29
4.6 操作数及表达式类型 30
4.7 表达式求解 31
4.8 赋值语句 32
4.9 常数表达式 33
思考题 34
第五章 PL/M—51可执行语句 35
5.1 DO程序块 35
5.1.1 简单DO程序块 35
5.1.2 DO WHILE程序块 37
5.1.3 循环DO程序块 41
5.1.4 DO CASE程序块 45
5.2 条件IF语句 47
5.2.1 IF语句构成及作用 47
5.2.2 嵌套IF语句与并列条件 48
5.2.3 顺序嵌套结构IF语句 50
5.3 GOTO语句 51
5.4 其他可执行语句 52
5.4.1 调用(CALL)和返回(RETURN)语句 52
5.4.2 空语句(;) 52
思考题 53
第六章 结构化程序及作用域 54
6.1 结构化程序 54
6.1.1 结构化程序 54
6.1.2 PL/M—51程序模块 54
6.2 变量、标号及过程的作用域 55
6.2.1 基本术语 55
6.2.2 变量、标号及过程的作用域 56
6.3 扩展作用域:PUBLIC和EXTERNAL属性 59
6.4 标号作用域和对GOTO语句的限制 61
6.4.1 标号的作用域 61
6.4.2 对GOTO语句的限制 62
思考题 64
第七章 过程 65
7.1 过程的概念 65
7.2 过程的说明 65
7.2.1 过程说明 65
7.2.2 过程参数 66
7.2.3 有类过程和无类过程 68
7.2.4 过程的返回 69
7.2.5 过程体 70
7.3 过程的使用 71
7.3.1 过程的调用 71
7.3.2 过程的参数传递方法 74
思考题 76
第八章 中断服务过程 77
8.1 MCS—51中断系统 77
8.2 中断服务过程说明 77
8.3 中断的初始化 80
8.3.1 中断的初始化 80
8.3.2 ENABLE和DISABLE语句 81
8.4 中断嵌套服务过程设计 82
8.5 过程的重入性问题 82
思考题 83
第九章 内部过程 84
9.1 获得变量信息的内部过程 84
9.1.1 LENGTH过程 84
9.1.2 LAST过程 85
9.1.3 SIZE过程 85
9.2 类型转换过程 86
9.2.1 LOW过程 86
9.2.2 HIGH过程 86
9.2.3 DOUBLE过程 86
9.2.4 BOOLEAN过程 86
9.2.5 EXPAND过程 86
9.2.6 PROPAGATE过程 87
9.3 移位和循环移位过程 87
9.3.1 逻辑移位过程SHL和SHR 87
9.3.2 循环移位过程ROL和ROR 87
9.4 其他内部过程 88
9.4.1 TESTCLEAR过程 88
9.4.2 TIME过程 88
第十章 PL/M—51浮点子程序库使用规则 90
10.1 24位浮点运算子程序库(TFPAL51.LIB)的使用规则 90
10.1.1 24位浮点数数据格式 90
10.1.2 24位浮点数在运算中的存取规则 91
10.1.3 24位浮点运算子程序库(TFPAL51.LIB)的具体应用 91
1 0.1.4 TFPAL51.LIB与PL/M—51语言的连接 98
10.2 32位浮点运算子程序库(FFPAL51.LIB)的使用规则 99
10.2.1 32位浮点数数据格式 99
10.2.2 32位浮点数在运算中的存取规则 100
10.2.3 32位浮点运算子程序库(FFPAL51.LIB)的具体应用 101
10.2.4 FFPAL51.LIB与PL/M—51语言的连接 105
第十一章 与MCS—51硬件标志有关的过程 106
11.1 带进位位的PLUS及MINUS操作符 106
11.2 带进位位的内部循环移位过程SCL和SCR 107
11.3 DEC功能 107
11.4 优化与8051硬件标志 108
第十二章 PL/M—51程序设计 109
12.1 引言 109
12.2 结构化程序的基本结构 109
12.3 程序设计的基本步骤 112
12.4 PL/M—51程序结构设计方法 113
12.5 排序程序设计 114
12.5.1 气泡法排序 115
12.5.2 选择法排序 117
12.6 查表程序设计 119
12.6.1 顺序查表法 119
12.6.2 对分查表法 121
12.6.3 散列查表法 123
12.7 散转程序设计 124
12.7.1 由DO CASE散转程序块实现散转 125
12.7.2 利用过程的间接引用实现散转 126
12.7.3 利用散转入口条件表实现散转 127
12.8 代码转换程序设计 127
12.8.1 一位十进制数的ASCII码与BCD码转换 128
12.8.2 ASCII码与十六进制数转换 130
12.8.3 七段显示码与十六进制数转换 131
12.8.4 二进制数与十进制数转换 132
第十三章 PL/M—51应用程序设计 137
13.1 预说明文件REG51.DCL和初始化程序 137
13.1.1 预说明文件REG51.DCL 137
13.1.2 初始化程序设计 139
13.2 MCS—51定时/计数器应用程序设计 140
13.2.1 定时器方式0应用 140
13.2.2 定时器方式1应用 141
13.2.3 定时器方式2应用 142
13.2.4 定时器方式3应用 142
13.2.5 门控位GATE应用 143
13.3 MCS—51中断应用程序设计 144
13.3.1 中断控制特殊功能寄存器 145
13.3.2 中断应用程序设计 146
13.4 MCS—51串行口应用程序设计 149
13.4.1 MCS—51串行接口 149
13.4.2 串行口应用程序设计 150
13.5 MCS—51单片机I/O口应用程序设计 154
13.5.1 MCS—51单片机I/O口的结构 154
13.5.2 MCS—51单片机I/O口应用 154
13.6 8255应用程序设计 155
13.6.1 8255接口 155
13.6.2 8255与8031的接口方法 156
13.6.3 8255应用程序设计 156
13.7 外扩可编程定时/计数器8253应用程序设计 158
13.7.1 8253定时/计数器 158
13.7.2 8253与8031的接口 159
13.7.3 8253应用程序设计 159
13.8 键盘与显示程序设计 164
13.8.1 8155扩展I/O的键盘、显示接口程序设计 165
13.8.2 8279键盘、显示接口程序设计 168
13.9 A/D转换程序设计 170
13.9.1 A/D接口 171
13.9.2 A/D转换程序设计 171
13.10 D/A转换程序设计 172
13.10.1 DAC0832与MCS—51的接口 173
13.10.2 D/A转换程序设计 173
第十四章 PL/M—51高级编程技术 174
14.1 PL/M—51程序模块及模块连接 174
14.1.1 文件名与模块名 174
14.1.2 过程的PUBLIC和EXTERNAL属性 175
14.1.3 模块间过程的相互调用 176
14.2 PL/M—5 1程序同ASM51程序的连接 178
14.2.1 参数传递顺序 178
14.2.2 有类过程的返回值 180
14.3 LIB51目标模块库管理程序 182
第十五章 PL/M—51调试技术 183
15.1 NEUI在线仿真器简介 183
15.2 系统硬件 184
15.2.1 开发系统安装 185
15.2.2 仿真器开关 185
15.2.3 仿真器复位系统 185
15.2.4 仿真器地址空间分配 185
15.3 软件系统及资料 188
15.3.1 编译类 188
15.3.2 动态调试及辅助类 188
15.3.3 资料 189
15.3.4 各软件使用简介 189
15.4 动态调试系统 190
15.4.1 切换当前控制的仿真器(仅DD51中有此命令) 191
15.4.2 装入被调试的用户程序 191
15.4.3 将被调用户程序写入仿真器 191
15.4.4 仿真RAM中的程序存盘 191
15.4.5 列出高级语言程序清单 192
15.4.6 调整程序执行起点 192
15.4.7 寻找显示高级语言变量地址 193
15.4.8 寻找并显示高级语言变量地址及内容 193
15.4.9 定义自动跟踪变量/取消自动跟踪变量 194
15.4.10 断点操作 194
15.4.11 执行操作 197
15.4.12 显示操作 198
15.4.13 修改操作 200
15.4.14 反汇编操作 201
15.4.15 填充操作 202
15.4.16 其他操作 202
15.5 EPROM写入卡操作说明 203
15.5.1 一般操作顺序 203
15.5.2 操作命令 203
15.6 反汇编程序(UNASM) 204
附录A PL/M—51编译控制 206
附录B 出错信息 210
附录C PL/M—51保留字 215
附录D 预说明文件REG51.DCL 216
附录E 预说明标识符 218
附录F PL/M—51字符集 218
附录G ASCII码表 219
附录H D51D动态调试命令表 221
附录I EPROM写入卡操作命令表 222
附录J AEDIT文本编辑命令表 223
参考文献 223