MCS-51单片机应用开发实用子程序
2005-9
人民邮电出版社
边春远
459
719000
本书从工程应用的角度出发,系统地介绍了MCS-51单片机在计算、转换、应用等方面的各种子程序,内容包括二进制数运算、十进制数运算、数据转换、排序与查找、数学函数、树和图、延时和跳转、人机交互、单片机测控、单片机内部资源编成、单片机数据传输、波形发生与控制以及单片机软件抗干扰和数字滤波。对每个子程序,本书给出了入口条件、出口信息、影响资源、堆栈要求及经过详细注释的程序清单。本书的子程序具有很强的实用性。 本书可作为高等院校相关专业师生学习MCS-51程序设计的参考书和工具书,也可供MCS-51单片机应用开发的科技人员参考。
第1章 二进制定点数运算 1.1 加法 1.1.1 子程序1——双字节无符号数加法 1.1.2 子程序2——多字节无符号数加法 1.1.3 子程序3——双字节有符号数加法 1.1.4 子程序4——多字节有符号数加法 1.2 减法 1.2.1 子程序5——双字节无符号数减法 1.2.2 子程序6——多字节无符号数减法 1.2.3 子程序7——双字节有符号数减法 1.2.4 子程序8——多字节有符号数减法 1.3 乘法 1.3.1 子程序9——双字节无符号数乘法 1.3.2 子程序10——多字节无符号数乘法 1.3.3 子程序11——双字节有符号数乘法 1.3.4 子程序12——多字节有符号数乘法 1.4 除法 1.4.1 子程序13——双字节无符号数除法 1.4.2 子程序14——多字节无符号数除法 1.4.3 子程序15——双字节有符号数除法 1.4.4 子程序16——多字节有符号数除法 1.5 开方 1.5.1 子程序17——单字节开方 1.5.2 子程序18——双字节开方 1.5.3 子程序19——多字节开方 第2章 二进制浮点数运算 2.1 加法 2.1.1 子程序20——双字节无符号数加法 2.1.2 子程序21——多字节无符号数加法 2.1.3 子程序22——双字节有符号数加法 2.1.4 子程序23——多字节有符号数加法 2.2 减法 2.2.1 子程序24——双字节无符号数减法 2.2.2 子程序25——多字节无符号数减法 2.2.3 子程序26——双字节有符号数减法 2.2.4 子程序27——多字节有符号数减法 2.3 乘法 2.3.1 子程序28——双字节无符号数乘法 2.3.2 子程序29——多字节无符号数乘法 2.3.3 子程序30——双字节有符号数乘法 2.3.4 子程序31——多字节有符号数乘法 2.4 除法 2.4.1 子程序32——双字节无符号数除法 2.4.2 子程序33——多字节无符号数除法 2.4.3 子程序34——双字节有符号数除法 2.4.4 子程序35——多字节有符号数除法 第3章 十进制(BCD码)数运算 3.1 加法 3.1.1 子程序36——单字节加法 3.1.2 子程序37——双字节加法 3.1.3 子程序38——多字节加法 3.2 减法 3.2.1 子程序39——单字节减法 3.2.2 子程序40——双字节减法 3.2.3 子程序41——多字节减法 3.3 乘法 3.3.1 子程序42——单字节乘法 3.3.2 子程序43——双字节乘法 3.3.3 子程序44——多字节乘法 3.4 除法 3.4.1 子程序45——单字节除法 3.4.2 子程序46——双字节除法 3.4.3 子程序47——多字节除法 3.5 开方 3.5.1 子程序48——单字节开方 3.5.2 子程序49——双字节开方 3.5.3 子程序50——多字节开方 第4章 代码转换 4.1 十六进制数到ASCII码的转换实例 4.1.1 子程序51——一位十六进制数转换为ASCII码 4.1.2 子程序52——二位十六进制数转换为ASCII码 4.1.3 子程序53——多位十六进制数转换为ASCII码 4.2 ASCII码到十六进制数的转换实例 4.3 十六进制数到BCD码的转换实例 4.3.1 子程序54——单字节整数转换 4.3.2 子程序55——双字节整数转换 4.3.3 子程序56——多字节整数转换 4.3.4 子程序57——单字节十六进制小数转换成单字节BCD码小数 4.3.5 子程序58——双字节十六进制小数转换成双字节BCD码小数 4.3.6 子程序59——多字节十六进制小数转换成双字节BCD码小数 4.4 BCD码到十六制数的转换实例 4.4.1 子程序60——单字节整数转换 4.4.2 子程序61——双字节整数转换 4.4.3 子程序62——多字节整数转换 4.4.4 子程序63——小数转换 4.4.5 子程序64——双字节BCD码小数转换成双字节十六进制小数 4.5 BCD码到ASCII码转换实例 4.6 ASCII码到BCD码转换实例 4.7 二进制数到格雷码的转换实例 4.8 格雷码到二进制数的转换实例 4.8.1 子程序65——8位格雷码转换为二进制数 4.8.2 子程序66——9位格雷码转换为二进制数 第5章 数据变换 5.1 移位 5.1.1 子程序67——二进制定点数移位 5.1.2 子程序68——BCD码移位 5.2 求补 5.2.1 子程序69——二进制定点数求补 5.2.2 子程序70——BCD码求补 5.3 规格化 5.3.1 子程序71——二进制数左规 5.3.2 子程序72——二进制浮点数右规 5.3.3 子程序73——双字节定点数转换成格式化浮点数 5.3.4 子程序74——多字节二进制数转换为浮点数 5.3.5 子程序75——格式化浮点数转换成双字节定点数 5.3.6 子程序76——32位整数转换为4字节规格化浮点数 5.4 浮点数对阶 5.4.1 子程序77——多字节浮点数对阶 5.4.2 子程序78——多字节浮点数减法对阶 第6章 排序和查找 6.1 数据块的排序 6.1.1 子程序79——单字节无符号数据块排序 6.1.2 子程序80——单字节有符号数据块排序 6.1.3 子程序81——双字节无符号数据块排序 6.2 数据的查找 6.2.1 子程序82——单字节顺序查找 6.2.2 子程序83——浮点数顺序查找 6.2.3 子程序84——单字节折半查找 6.2.4 子程序85——单字节最值查找 6.2.5 子程序86——浮点数最值查找 6.2.6 子程序87——双字节字符串顺序查找 6.2.7 子程序88——N字节字符串顺序查找 6.3 线性表的排序 6.3.1 子程序89——插入排序 6.3.2 子程序90——选择排序 6.3.3 子程序91——冒泡排序 6.3.4 子程序92——并归排序 6.3.5 子程序93——快速排序 6.4 线性表的查找 6.4.1 子程序94——顺序查找单字节表 6.4.2 子程序95——顺序查找双字节表 6.4.3 子程序96——单字节无符号增序数据表对分查找 6.4.4 子程序97——双字节无符号增序数据表对分查找 6.4.5 子程序98——表的分块查找 6.4.6 子程序99——串的匹配 6.5 递归实例 6.6 递推实例 6.7 回溯实例 第7章 数学函数 7.1 浮点数操作与处理函数实例 7.1.1 子程序100——浮点数传送 7.1.2 子程序101——浮点数压栈 7.1.3 子程序102——浮点数弹栈 7.1.4 子程序103——浮点数代数值比较 7.1.5 子程序104——浮点绝对值函数 7.1.6 子程序105——浮点符号函数 7.1.7 子程序106——浮点取整函数 7.1.8 子程序107——浮点倒数函数 7.1.9 子程序108——浮点数牛顿迭代开平方 7.1.10 子程序109——浮点弧度数转换成浮点度数 7.1.11 子程序110——浮点度数转换成浮点弧度数 7.1.12 子程序111——最小二乘法拟合 7.1.13 子程序112——浮点数多项式计算 7.2 三角函数和反三角函数实例 7.2.1 子程序113——浮点正弦函数 7.2.2 子程序114——浮点余弦函数 7.2.3 子程序115——反正弦函数 7.2.4 子程序116——反余弦函数 7.2.5 子程序117——反正切函数 7.3 指数函数和对数函数实例 7.3.1 子程序118——以10为底的浮点指数函数 7.3.2 子程序119——以e为底的浮点指数函数 7.3.3 子程序120——以2为底的浮点指数函数 7.3.4 子程序121——以10为底的浮点对数函数 7.3.5 子程序122——以e为底的浮点对数函数 第8章 树和图 8.1 二叉树的遍历 8.1.1 子程序123——编号遍历 8.1.2 子程序124——前根遍历 8.1.3 子程序125——中根遍历 8.1.4 子程序126——后跟遍历 8.2 普通树的遍历实例 8.2.1 子程序127——利用父指针数组的普通树前根遍历算法 8.2.2 子程序128——利用子指针数组的普通树前根遍历算法 8.2.3 子程序129——利用子指针数组的普通树后根遍历算法 8.3 图的遍历实例 8.3.1 子程序130——利用邻接矩阵的图广度优先遍历算法 8.3.2 子程序131——利用邻接表的图广度优先遍历算法 8.3.3 子程序132——利用邻接矩阵的图深度优先遍历算法 8.3.4 子程序133——利用邻接表的图深度优先遍历算法 8.3.5 子程序134——利用邻接表图的深度优先生成树生成算法 8.4 网络最小生成树和最短路径实例 8.4.1 子程序135——利用邻接矩阵的网络最小生成树算法 8.4.2 子程序136——利用邻接表的图最短路径算法 第9章 延时与跳转控制 9.1 循环延时 9.1.1 子程序137——一重循环延时 9.1.2 子程序138——多重循环延时 9.2 简单延时 9.2.1 子程序139——精确延时 9.2.2 子程序140——突发等待延时 9.3 分支程序 9.3.1 子程序141——无条件转移 9.3.2 子程序142——条件分支转移 9.4 散转程序实例 9.4.1 子程序143——N种分支的散转程序 9.4.2 子程序144——256种分支的散转程序 第10章 人机交互接口 10.1 键盘接口 10.1.1 子程序145——键盘输入需要解决的问题 10.1.2 子程序146——独立式键盘接口 10.1.3 子程序147——8279键盘接口 10.1.4 子程序148——拨码盘接口 10.1.5 子程序149——键盘扫描 10.2 LED显示接口 10.2.1 子程序150——六位数码管时钟显示 10.2.2 子程序151——串行口扩展显示 10.2.3 子程序152——基于8155软件译码键盘显示 10.2.4 子程序153——基于8279的显示器 10.3 LCD显示接口 10.3.1 子程序154——段式LCD显示 10.3.2 子程序155——字符型LCD显示 10.3.3 子程序156——图形LCD显示 10.3.4 子程序157——LCD点阵字符型液晶显示 10.4 打印机接口实例 10.4.1 子程序158——LH-GP16打印机接口 10.4.2 子程序159——XLF微型打印机接口 10.5 CRT显示实例 第11章 单片机测控接口 11.1 8位A/D转换器ADC0809接口实例 11.2 12位A/D转换器AD578/AD678/AD1678接口实例 11.3 12位串行A/D转换器接口实例 11.4 串行A/D转换器MAX187接口实例 11.5 16位A/D转换器ADC1143接口实例 11.6 单路8位D/A转换器DAC0832接口实例 11.7 单路10位D/A转换器AD7520接口实例 11.8 12位串行D/A转换器7543接口实例 11.9 16位D/A转换器 AD1147接口实例 第12章 51单片机内部资源编程实例 12.1 51单片机I/O口的应用 12.1.1 子程序160——P1口的应用 12.1.2 子程序161——P0口的扩展使用 12.1.3 子程序162——并行I/O口编程 12.1.4 子程序163——单片机的FPGA并行配置 12.2 中断服务子程序 12.2.1 子程序164——利用T0、T1作为外部中断源 12.2.2 子程序165——INT0中断 12.3 定时器/计数器应用 12.3.1 子程序166——定时器/计数器0工作在模式0方式 12.3.2 子程序167——定时器/计数器0工作在模式1方式 12.3.3 子程序168——定时器/计数器0工作在模式2方式 12.3.4 子程序169——定时器/计数器0工作在模式3方式 12.4 程序存储器的扩展 12.4.1 子程序170——扩展EPROM的典型电路 12.4.2 子程序171——扩展EPROM的 12.4.3 子程序172——扩展EEPROM的典型电路 12.4.4 子程序173——扩展EEPROM的 12.5 数据存储器的扩展 12.5.1 子程序174——数据存储区扩展的典型电路 12.5.2 子程序175——扩展RAM到扩展RAM的数据复制 12.5.3 子程序176——扩展RAM到片内RAM数据复制 第13章 单片机数据传输接口 13.1 串行接口 13.1.1 子程序177——RS-232-C/RS-485接口标准 13.1.2 子程序178——数据传输率发生 13.1.3 子程序179——单片机RS-485接口 13.1.4 子程序180——用外部中断配合查询方式接收串行数据 13.1.5 子程序181——PC机和51单片机的快速串行通信 13.1.6 子程序182——单片机多机通信 13.2 USB总线接口 13.2.1 子程序183——USB总线协议 13.2.2 子程序184——通用USB程序模块 13.3 I2C总线接口 13.3.1 子程序185——基于I2C的时钟模块X1203 13.3.2 子程序186——用两个普通IO模拟I2C总线 13.4 SPI和MICROWIRE串行总线接口 13.4.1 子程序187——SPI和MICROWIRE串行总线协议 13.4.2 子程序188——SPI接口LCD显示模块EDM1079 13.4.3 子程序189——SPI接口语音录放模块ISD4104 13.4.4 子程序190——SPI接口时钟日历模块DS1302 13.4.5 子程序191——MICR0WIRE接口E2PR0M存储器NM93Cx6应用 13.5 1-WIRE总线接口 13.5.1 子程序192——单总线数据通信协议 13.5.2 子程序193——单总线数字温度传感器 13.6 CAN总线接口 13.6.1 子程序194——CAN接口汇编语言编程 13.6.2 子程序195——CAN接口C语言编程 13.7 单片机的红外接口 第14章 波形发生与控制实例 14.1 波形发生实例 14.1.1 子程序196——锯齿波信号发生 14.1.2 子程序197——单极性PWM信号发生 14.1.3 子程序198——正弦信号发生 14.2 控制实例 14.2.1 子程序199——位置式PID控制 14.2.2 子程序200——增量式PID控制 第15章 C51单片机软件抗干扰和数字滤波 15.1 单片机执行过程中的软件抗干扰措施 15.1.1 子程序201——采用指令冗余对程序“跑飞”的软件处理 15.1.2 子程序202——采用软件陷阱对程序“跑飞”的软件处理 15.1.3 子程序203——软件“看门狗”对程序“跑飞”的处理 15.1.4 子程序204——通过“复位”使系统恢复正常 15.2 信息冗余校验实例 15.2.1 子程序205——汉明码校验实例 15.2.2 子程序206——循环冗余校验 15.3 数字滤波子程序 15.3.1 子程序207——程序判断滤波 15.3.2 子程序208——中值滤波 15.3.3 子程序209——算术均值滤波 15.3.4 子程序210——加权平均滤波 15.3.5 子程序211——滑动平均滤波 15.3.6 子程序212——防脉冲干扰数字滤波 15.3.7 子程序213——一阶滞后滤波 附录1 ATMEL8051系列单片机 附录2 单片机常见缩略语 附录3 常用存储器型号
原来这本书图书馆是有的,看了之后觉得这本书很有用,对我写汇编程序很有用的,我喜欢做笔记,但是图书馆的书又不能随便写的,所以我就自己买了一本,就可以做笔记啦@@@
很实用的材料,适合编程人员参考
好!实用!
此书真的好用!物有所值!这么多的子程序,让我不用再去编写了!
书中有些程序可以直接使用,大大缩短了开发周期。感觉很好,很实用。
这本书还不错,对于编程人员来说还挺有用的!
这本书总体而言还可以
解决了很多实际的问题
一般,权当参考
老土的东西,没有实用价值,我喜欢电子制作,觉得它里面的程序没怎么看过,也许我资料多吧,觉得这本书不好,买回来没好好看过,因为觉得还有其他比他好的书
不大好,没有哈工大的那本子程序集灵活,可惜那本书已经买不到了,我的同事有一本,跳槽时拿走了,郁闷!