流行单片机实用子程序及应用实例
分类: 图书,计算机/网络,硬件 外部设备 维修,
作者: 杨振江 等编著
出 版 社: 西安电子科技大学出版社
出版时间: 2002-7-1字数: 336000版次: 1页数: 221印刷时间: 2004/01/01开本:印次:纸张: 胶版纸I S B N : 9787560611372包装: 平装内容简介
本书从应用角度出发,精选了在我国最流行的MCS-51、PIC和MCS-96三种单片机的实用子程序和典型器件应用实例20多类100余种。内容包括单片机的基本运算、排序、数码转换、数字滤波、软件抗干扰、串行通信、中断处理、器件接口等实用程序。书中所涉及的内容大部分都经过上机验证,具有很强的实用性。有些例子直接来自于科学研究和生产实践, 有些例子稍加修改就可解决工作中的实际问题。
本书对从事智能仪器设计、数据采集、自动控制、数字通信及计算机接口等领域工作的科技人员和广大的单片机爱好者都具有很高的使用和参考价值,也可作为工科大专院校有关课程的教学参考书。
目录
第 1 章 MCS-51单片机基本运算子程序
1.1 二进制基本运算子程序
1.1.1 两个半字节数合并成一个一字节数子程序RZD-YZD
1.1.2 双字节数取补子程序D-QBSUB
1.1.3 双字节补码(或原码)加法子程序D-BYJSUB
1.1.4 两个无符号双字节数相加子程序DW-ADD1
1.1.5 多字节无符号加法子程序D-WADD1
1.1.6 多字节无符号整数加法子程序D-WADD2
1.1.7 双字节补码(或原码)减法子程序D-QYJSUB
1.1.8 多字节无符号整数减法子程序D-NISUB1
1.1.9 多字节无符号减法子程序D-NISUB2
1.1.10 双字节无符号乘法子程序D-MULSUB
1.1.11 双字节乘法子程序H2MUL-SUB
1.1.12 双字节无符号快速乘法子程序D-MULSUB2
1.1.13 多字节数乘10子程序D-MUL10
1.1.14 三字节乘二字节乘法子程序H3MUL-SUB
1.1.15 四字节乘四字节乘法子程序H4MUL-SUB
1.1.16 多字节无符号数乘法子程序D-WMUL1
1.1.17 多字节无符号整数乘法子程序D-NIMUL2
1.1.18 双字节平方根子程序SQRT-SUB
1.1.19 双字节无符号除法子程序D-WFHDIV
1.1.20 多字节无符号除法子程序D-NIDIV
1.1.21 带符号双字节除单字节除法子程序SHF-1DIV
1.1.22 双字节除以双字节除法子程序SHZ-2DIV
1.1.23 三字节除双字节商为三字节除法子程序SH-32DIV
1.1.24 四字节除双字节商为二字节除法子程序SH-42DIV
1.1.25 五字节除五字节除法子程序SHZ-5DIV
1.1.26 程序转入相应的分支子程序JMP-XX
1.2 二进制符点运算子程序
1.2.1 原码有符号双字节小数乘法子程序YD-2MUL
1.2.2 双字节带符号小数乘法子程序SHF-2MUL
1.2.3 原码有符号双字节小数除法子程序YD-DIVX
1.2.4 尾数用原码表示的双字节浮点数乘法子程序WS-2FMUL
1.2.5 尾数用原码表示的双字节除单字节浮点数除法子程序WS-1FDIV
1.2.6 浮点数比较大小子程序FD-CMPP
1.3 十进制(BCD码)运算子程序
1.3.1 单字节BCD码转换成压缩BCD码子程序D-BCD-Y
1.3.2 十进制求补运算子程序BCD-QMP
1.3.3 多字节十进制加法子程序D-BCDADD
1.3.4 多字节十进制减法子程序D-BCDSSUB
1.3.5 多字节十进制BCD码减法子程序D-BCDSUB
1.3.6 无符号十进制数乘法子程序W-BCDCMUL
1.3.7 无符号十进制数除法子程序W-BCDDIV
1.3.8 四字节十进制除法子程序DEV-BCD4
1.3.9 多字节无符号BCD码除法子程序D-WBCDDIV
1.3.10 单字节BCD码平方根子程序D-1SQR-SUB
1.3.11 双字节BCD码平方根子程序D-2SQR-SUB
1.3.12 三字节BCD码平方根子程序D-3SQR-SUB
第 2 章 MCS-51单片机排序、数码转换等子程序
2.1 数据排序子程序
2.1.1 单字节无符号数排序子程序SQRT-1WP
2.1.2 单字节无符号数据块排序子程序SQRT-2WP
2.1.3 单字节带符号数按由小到大排序子程序SQRT-3WP
2.1.4 双字节无符号数由小到大排序子程序SQRT-4WP
2.1.5 存储器无符号数据排序子程序DATA-SORT
2.1.6 单字节顺序检索子程序DZ-1FIND
2.1.7 测试字符串的长度子程序T-CHAR
2.1.8 比较两个无符号数大小子程序CMP-DX
2.1.9 大于256个字节表的双字节查表子程序D-FIND
2.2 数码转换子程序
2.2.1 二进制数转换成ASCII码字符串子程序BIN-ASCII
2.2.2 四位二进制数转换为ASCII码子程序SBIN-ASCII
2.2.3 十六进制数转换成ASCII码子程序HEX-ASCII
2.2.4 十六进制数转换成二位ASCII码子程序HEX-ASCII
2.2.5 ASCII码转换为四位二进制数子程序ASII-SBIN
2.2.6 ASCII码转换成十六进制数子程序ASCII-HEX
2.2.7 二进制数转换成十六进制数子程序BIN-16BCH
2.2.8 BCD码转换成二进制数转换子程序BCD-BIN
2.2.9 四字节非压缩BCD码数据转换成二进制数子程序S-BCD-BIN
2.2.10 四位十进制数(BCD码)转换为二进制码子程序S-BCDBIN
2.2.11 四位BCD码转换成十六位二进制数子程序SZ-16BIN-S
2.2.12 双字节二进制数转换成三字节BCD码子程序SBIN-BCD
2.2.13 双字节二进制小数转换成四字节BCD码子程序DXS-SBCD
2.2.14 三字节二进制整数转换成四字节BCD码子程序SBIN-SBCD
2.2.15 三字节小数BCD码转换成四字节二进制数子程序SXB-SBIN
2.2.16 带符号小数BCD码转换成二进制数子程序DX-BINSUB
2.3 其它实用子程序
2.3.1 读取汉字字模子程序LOAD-ZM
2.3.2 点与点画图子程序POINT-P
2.3.3 几种散转程序PRG-JMP1/2/3/4/5
2.3.4 子程序调用时的几种参数传递程序PRG-CALL1/2/3/4
第 3 章 MCS-51单片机软件抗干扰、串口等子程序
3.1 单片机执行过程中的软件抗干扰措施
3.1.1 采用指令冗余对程序“跑飞”的一种软件处理
3.1.2 采用软件陷阱对程序“跑飞”的一种软件处理
3.1.3 使用“看门狗”对程序“跑飞”的软件处理
3.1.4 采用8155芯片对单片机“死机”的处理
3.1.5 通过“复位”使系统恢复正常
3.2 数字滤波子程序
3.2.1 中值数字滤波子程序ZZ-FILLE
3.2.2 防脉冲干扰数字滤波子程序FG-FILIE
3.2.3 循环冗余检测(CRC)子程序LOP-CRCS
3.3 中断服务子程序
3.3.1 利用定时/计数器T0、T1端作为外部中断源子程序TO-T0SUB
3.3.2 精确定时子程序TIMES-P
3.3.3 扩展外部中断源子程序IO-POOP
3.4 串行通信子程序
3.4.1 全双工串行通信子程序QS-COMMA
3.4.2 多机串口通信子程序D-COMMA
3.4.3 用外部中断配合查询接收串行数据子程序YW-READCX
3.4.4 PC机与51单片机的快速串行通信程序COMUN-PC/COMUN-51
3.4.5 带纠错的串行通信子程序JERR-COM
第 4 章 MCS-51单片机应用程序
4.1 步进电机控制子程序MOT-DRVB
4.1.1 硬件描述
4.1.2 应用程序
4.2 八位串行输出A/D转换器TLC548/549及应用程序
4.2.1 硬件描述
4.2.2 数据采集程序
4.3 11路12位串行A/D转换器TLC2543及应用程序
4.3.1 硬件描述
4.3.2 数据采集程序
4.4 10位串行D/A转换器TLC5615及应用程序
4.4.1 硬件描述
4.4.2 应用程序
4.5 八位串行LED显示驱动器MAX7219/7221及应用程序
4.5.1 硬件描述
4.5.2 应用程序
4.6 液晶显示驱动器HD61202及应用子程序
4.6.1 硬件描述
4.6.2 驱动程序的编写
4.7 液晶显示控制器SED1330/1335/1336/E1330及应用程序
4.7.1 硬件描述
4.7.2 应用程序
4.8 点阵液晶显示控制器MSM6255及应用程序
4.8.1 硬件描述
4.8.2 驱动及应用程序
4.9 高性能低功耗带RAM实时时钟芯片DS1302及应用程序
4.9.1 硬件描述
4.9.2 应用程序
4.10 跨越2000年的时钟芯片DS12C887及应用程序
4.10.1 硬件描述
4.10.2 器件的软件编程
4.11 二总线串行EEPROM AT24C01/02/04/08/16及应用程序
4.11.1 硬件描述
4.11.2 应用程序
4.12 51单片机中两种典型的查表程序设计
4.12.1 RAM表的程序设计
4.12.2 ROM表的程序设计
4.13 μP-16B微打印机与51单片机的硬件接口与应用程序
4.13.1 硬件接口描述
4.13.2 软件编程
第 5 章 PIC单片机与MCS-96单片机应用程序
5.1 PIC单片机应用子程序
5.1.1 单字节无符号数BCD码加法子程序WBCD-ADD
5.1.2 单字节无符号数BCD码减法子程序WBCD-SUBB
5.1.3 双精度加法运算子程序DJD-ADD
5.1.4 双精度减法运算子程序DJD-SUBB
5.1.5 双精度乘法运算子程序D-MULSUB
5.1.6 双精度除法运算子程序DJD-DIV
5.1.7 二进制数转换成BCD码子程序PICBIN-BCD
5.1.8 BCD码转换成二进制数子程序PICBCD-BIN
5.2 MCS-96单片机应用程序
5.2.1 单字节ASCII码转换成十六进制数子程序DASCII-HEX
5.2.2 单字节十六进制数转换成ASCII子程序DHEX-ASCII
5.2.3 二通道数据采集程序SCD2-SUB
5.2.4 转速系统的测量与控制程序ZHUAN-CTR
5.2.5 用定时器0定时中断发送ASCII码字符串程序T0-INTESUB
5.2.6 通过HSO0中断发送ASCII码字串程序HSO0-INTE
5.2.7 对应用程序进行加密程序PRG-SAVE