第一章 MCS—96基本结构 1
1.1MCS—96系列单片机概述 1
1.1.1CPU 4
1.1.2存贮器组织 6
1.1.3READY控制 9
1.1.4掉电方式 10
1.2中断系统 11
1.2.1概述 11
1.2.2中断控制 13
1.2.3中断优先权排队 15
1.2.4中断时序 18
1.3MCS—96的引脚功能 20
1.4I/O功能简介 25
1.4.1I/O控制寄存器IOCO和IOCI 27
1.4.2I/O状态寄存器IOSO和IOSI 30
1.4.3A/D转换 32
1.4.4高速输入通道HSI 35
1.4.5高速输出通道HSO 38
1.4.6全双工串行口 42
1.4.7监视跟踪定时器 48
1.4.8定时器T1和T2 49
1.4.9 脉冲宽度调制输出PWM 50
1.5.1基本硬件连接 53
1.5硬件设计 53
1.5.2仅有EPROM的基本系统 60
1.5.3带有RAM和ROM的基本系统 61
1.5.4809XBH的基本系统 61
1.5.5基本系统I/O扩展 66
1.6MCS—96指令系统 66
1.6.1操作数类型 66
1.6.2寻地方式 67
1.6.3程序状态字 69
1.6.4指令系统 71
1.7.1寄存器名定义和汇编指令格式 80
1.7MCS—96实用子程序软件包及其使用方法 80
1.7.2软件包文件 83
1.7.3用户程序的编辑、汇编和调试 88
第二章 算术运算子程序 89
2.1定点数运算 89
2.1.1四字节数取补子程序NCMP 89
2.1.2四字节补码加法子程序NADD 89
2.1.3四字节补码减法子程序NSUB 89
2.1.4四字节原码加/减法子程序DADD/DSUB 90
2.1.5四字节无符号数乘法子程序UMUL 92
2.1.6四字节无符号数除法子程序UDIV 93
2.1.7双字节补码整数乘法子程序DMULI 95
2.1.10双字节补码小数除法子程序DDIVF 96
2.1.8双字节补码小数乘法子程序DMULF 96
2.1.9双字节补码整数除法子程序DDIVI 96
2.2多字整数运算 97
2.2.1多字整数加法子程序MADD 97
2.2.2多字整数减法子程序MSUB 98
2.2.3多字无符号整数乘法子程序MUMUL 98
2.2.4多字无符号整数除法子程序MUDIV 101
2.2.5多字取补运算子程序MCMP 104
2.2.6多字补码整数乘法子程序MMUL 104
2.2.7多字补码整数除法子程序MDIV 106
2.3三字节浮点数运算 109
2.3.1三字节浮点数加法子程序FADD3 110
2.3.2三字节浮点数减法子程序FSUB3 114
2.3.3三字节浮点数乘法子程序FMUL3 117
2.3.4三字节浮点数除法子程序FDIV3 120
2.3.5双字节整数变三字节浮点数子程序INTF3 122
2.3.6双字节小数变三字节浮点数子程序FRCF3 122
2.3.7三字节浮点数取整子程序FINT3 123
2.4四字节浮点数运算 125
2.4.1四字节浮点数加法子程序FADD4 127
2.4.2四字节浮点数减法子程序FSUB4 131
2.4.3四字节浮点数乘法子程序FMUL4 135
2.4.4四字节浮点数除法子程序FDIV4 137
2.4.5四字节整数变浮点数子程序INTF4 142
2.4.6四字节小数变浮点数子程序FRCF4 143
2.4.7四字节浮点数取整子程序FINT4 144
第三章 函数计算 147
3.1定点数函数计算 147
3.1.1四字节整数开平方子程序DSQR 147
3.1.2双字节小数正弦/余弦函数子程序DSIN/DCOS 148
3.2三字节浮点数函数计算 150
3.2.1三字节浮点数多项式计算子程序FPLN3 150
3.2.2三字节浮点数开平方子程序FSQR3 155
3.2.3三字节浮点数正弦函数子程序FSIN3 159
3.2.4三字节浮点数余弦函数子程序FCOS3 162
3.2.5三字节浮点数正切函数子程序FTAN3 163
3.2.6三字节浮点数反正切函数子程序FATN3 164
3.2.7三字节浮点数指数函数子程序FEXP3 166
3.2.3三字节浮点数自然对数子程序FLNX3 170
3.3四字节浮点数函数计算 173
3.3.1四字节浮点数多项式计算子程序FPLN4 173
3.3.2四字节浮点数开平方子程序FSQR4 178
3.3.3四字节浮点数正弦函数子程序FSIN4 181
3.3.4四字节浮点数余弦函数子程序FCOS4 184
3.3.5四字节浮点数正切函数子程序FTAN4 187
3.3.6四字节浮点数反正切函数子程序FATN4 188
3.3.7四字节浮点数指数函数子程序FEXP4 190
3.3.8四字节浮点数以十为底的指数函数子程序FEXD4 193
3.3.9四字节浮点数自然对数子程序FLNX4 193
3.3.10四字节浮点数常用对数子程序FLOG4 196
第四章 数制转换 197
4.1双字节定点数数制转换 197
4.1.1双字节整数十翻二子程序IDTB2 197
4.1.2双字节小数十翻二子程序PDTB2 199
4.1.3双字节整数二翻十子程序IBTD2 200
4.1.4双字节小数二翻十子程序PBTD2 201
4.2.1四字节整数十翻二子程序IDTB4 202
4.2四字节定点数数制转换 202
4.2.2四字节小数十翻二子程序PDTB4 203
4.2.3四字节整数二翻十子程序IBTD4 204
4.2四字节小数二翻十子程序PBTD4 204
4.3ASCII码及可变字长数制转换 205
4.3.1ASCII十进制输入转换成4字节二进制整数子程序ASCII 205
4.3.23/4字节二进制整数转换成n位十进制数子程序IBTDA 207
4.3.3ASCII十进制输入转换成定点双字节混合小数子程序ASCTB 210
4.3.4定点双字节混合小数二翻十子程序BBTDA 212
4.4三字节浮点数数制转换 213
4.4.1三字节浮点二翻十子程序FBTD3 213
4.4.2三字节浮点十翻二子程序FDTB3 218
4.5.1四字节浮点二翻十子程序FBTD4 222
4.5四字节浮点数数制转换 222
4.5.2四字节浮点十翻二子程序FDTB4 225
4.6ASCII码与16进制数转换 228
4.6.1ASCII码转换成16进制数子程序ASCHEX 228
4.6.2一字节16进制数转换成二位ASCII码子程序HEXASC 229
第五章 数据处理 230
5.1查表与散转 230
5.1.1单字符查表子程序SCTAB 230
5.1.2字符串命令查表散转程序SSTJM 231
5.1.3查表插值子程序TLOOK 235
5.2链表 237
5.2.2链表插入子程序LTIS 239
5.2.1链表初始化子程序INIT 239
5.2.3链表删除子程序LTDL 240
5.2.4链表查找子程序LTLK 241
5.3队列 241
5.3.1队列写入子程序CBWR 242
5.3.2队列读出子程序CBRD 243
5.4数字滤波 244
5.4.1定点四字节整数算术平均值子程序DAVG4 244
5.4.2浮点三字节滑动平均值子程序FSAV3 245
5.4.3定点双字节整数防脉冲干扰平均值子程序DSAV2 247
5.4.4 浮点四字节低通数字滤波子程序FLBD4 249
6.1.1讯问方式AD转换子程序ADQR 251
第六章 输出输入程序设计 251
6.1模数转换使用方法 251
6.1.250周AD采样子程序AD250 252
6.2高速输入部件和定时器2使用方法 253
6.2.1脉冲宽度测量子程序PSPT 253
6.2.2脉冲周期和频率测量子程序PSTF 256
6.2.3脉冲频率测量子程序FRQM 260
6.3高速输出部件使用方法 262
6.3.1单脉冲输出子程序OUTPS 262
6.3.2连续脉冲输出子程序OUPSS 263
6.4串行口使用方法 264
6.4.2字符输出子程序PUTC 265
6.4.1字符输入子程序GETC 265
6.4.3字符串输入子程序STIN 266
6.4.4字符串输出子程序SOUT 268
6.5PWM和D/A转换实现方法 269
6.5.1PWM输出于程序PWMT 269
6.5.2高分辨率D/A转换子程序HSODA 269
第七章 综合应用程序 271
7.1实时时钟 271
7.1.1初始化程序START 271
7.1.2软件定时器0中断处理程序STINT 272
7.1.3日历时钟读出子程序GTIME 277
7.1.4系统日历写入子程序SDATE 278
7.1.5系统时钟写入子程序STIME 279
7.2用HSO和HSI实现的双积分A/D转换 280
7.2.1硬件电路 281
7.2.2A/D启动测量子程序STAD 282
7.311位A/D实现方法 284
7.3.1硬件电路 284
7.3.211位A/D转换子程序ADIIB 285
7.4打印机驱动方法 286
7.4.1硬件连接方法 286
7.4.2中断方式打印驱动程序PRINT 287
7.5.2显示子程序DESP 289
7.5.1七段显示器 289
7.5键盘显示接口 289
7.5.3键盘接口 293
7.5.4键扫描子程序KIN 293
7.5.5用8279实现键盘显示 296
7.6不用串行口的串行通讯实现方法 300
7.6.1硬件说明 300
7.6.2串行输入子程序INPUT 300
7.6.3串行输出子程序OUTPUT 303
7.6.4示范通讯程序COMPC 304
附录 323
MCS—96指令表 323