内容简介
目录
第1章 二进制定点数运算
1.1 加法
子程序1——双字节无符号数加法
子程序2——多字节无符号数加法
子程序3——双字节有符号数加法
子程序4——多字节有符号数加法
1.2 减法
子程序5——双字节无符号数减法
子程序6——多字节无符号数减法
子程序7——双字节有符号数减法
子程序8——多字节有符号数减法
1.3 乘法
子程序9——双字节无符号数乘法
子程序10——多字节无符号数乘法
子程序11——双字节有符号数乘法
子程序12——多字节有符号数乘法
1.4 除法
子程序13——双字节无符号数除法
子程序14——多字节无符号数除法
子程序15——双字节有符号数除法
子程序16——多字节有符号数除法
1.5 开方
子程序17——单字节开方
子程序18——双字节开方
子程序19——多字节开方
第2章 二进制浮点数运算
子程序20——双字节无符号数加法
子程序21——多字节无符号数加法
2.1 加法
子程序22——双字节有符号数加法
子程序23——多字节有符号数加法
2.2 减法
子程序24——双字节无符号数减法
子程序25——多字节无符号数减法
子程序26——双字节有符号数减法
子程序27——多字节有符号数减法
2.3 乘法
子程序28——双字节无符号数乘法
子程序29——多字节无符号数乘法
子程序30——双字节有符号数乘法
子程序31——多字节有符号数乘法
2.4 除法
子程序32——双字节无符号数除法
子程序33——多字节无符号数除法
子程序34——双字节有符号数除法
子程序35——多字节有符号数除法
第3章 十进制(BCD码)数运算
子程序37——双字节加法
3.1 加法
子程序36——单字节加法
子程序38——多字节加法
3.2 减法
子程序39——单字节减法
子程序40——双字节减法
子程序41——多字节减法
3.3 乘法
子程序42——单字节乘法
子程序44——多字节乘法
子程序43——双字节乘法
3.4 除法
子程序45——单字节除法
子程序46——双字节除法
子程序47——多字节除法
3.5 开方
子程序48——单字节开方
子程序49——双字节开方
子程序50——多字节开方
第4章 代码转换
子程序52——二位十六进制数转换为ASCII码
4.1 十六进制数到ASCII码的转换实例
子程序51——一位十六进制数转换为ASCII码
子程序53——多位十六进制数转换为ASCII码
4.2 ASCII码到十六进制数的转换实例
子程序54——ASCII码到十六进制数的转换
4.3 十六进制数到BCD码的转换实例
子程序55——单字节整数转换
子程序56——双字节整数转换
子程序57——多字节整数转换
子程序58——单字节十六进制小数转换成单字节BCD码小数
子程序59——双字节十六进制小数转换成双字节BCD码小数
子程序60——多字节十六进制小数转换成双字节BCD码小数
4.4 BCD码到十六制数的转换实例
子程序61——单字节整数转换
子程序62——双字节整数转换
子程序63——多字节整数转换
子程序64——小数转换
4.5 BCD码到ASCII码转换实例
子程序66——BCD码到ASCII码的转换
子程序65——双字节BCD码小数转换成双字节十六进制小数
4.6 ASCII码到BCD码转换实例
子程序67——ASCII码到BCD码的转换
4.7 二进制数到格雷码的转换实例
子程序68——二进制数到格雷码的转换
4.8 格雷码到二进制数的转换实例
子程序69——8位格雷码转换为二进制数
子程序70——9位格雷码转换为二进制数
第5章 数据变换
子程序71——二进制定点数移位
子程序72——BCD码移位
5.1 移位
5.2 求补
子程序73——二进制定点数求补
子程序74——BCD码求补
5.3 规格化
子程序75——二进制数左规
子程序76——二进制浮点数右规
子程序77——双字节定点数转换成格式化浮点数
子程序78——多字节二进制数转换为浮点数
子程序79——格式化浮点数转换成双字节定点数
子程序80——32位整数转换为4字节规格化浮点数
5.4 浮点数对阶
子程序81——多字节浮点数对阶
子程序82——多字节浮点数减法对阶
第6章 排序和查找
6.1 数据块的排序
子程序83——单字节无符号数据块排序
子程序84——单字节有符号数据块排序
子程序85——双字节无符号数据块排序
子程序87——浮点数顺序查找
子程序86——单字节顺序查找
6.2 数据的查找
子程序88——单字节折半查找
子程序89——单字节最值查找
子程序90——浮点数最值查找
子程序91——双字节字符串顺序查找
子程序92——N字节字符串顺序查找
6.3 线性表的排序
子程序93——插入排序
子程序94——选择排序
子程序95——冒泡排序
子程序96——并归排序
子程序97——快速排序
6.4 线性表的查找
子程序98——顺序查找单字节表
子程序99——顺序查找双字节表
子程序100——单字节无符号增序数据表对分查找
子程序101——双字节无符号增序数据表对分查找
子程序102——表的分块查找
子程序103——串的匹配
子程序104——求解阶乘问题的递归算法
6.5 递归实例
6.6 递推实例
子程序105——求解阶乘问题的递推算法
6.7 回溯实例
子程序106——用回溯算法求解简化背包问题
第7章 数学函数
7.1 浮点数操作与处理函数实例
子程序107——浮点数传送
子程序108——浮点数压栈
子程序110——浮点数代数值比较
子程序109——浮点数弹栈
子程序111——浮点绝对值函数
子程序112——浮点符号函数
子程序113——浮点取整函数
子程序114——浮点倒数函数
子程序115——浮点数牛顿迭代开平方
子程序116——浮点弧度数转换成浮点度数
子程序117——浮点度数转换成浮点弧度数
子程序118——最小二乘法拟合
子程序119——浮点数多项式计算
子程序120——浮点正弦函数
7.2 三角函数和反三角函数实例
子程序121——浮点余弦函数
子程序122——反正弦函数
子程序123——反余弦函数
子程序124——反正切函数
7.3 指数函数和对数函数实例
子程序125——以10为底的浮点指数函数
子程序126——以e为底的浮点指数函数
子程序127——以2为底的浮点指数函数
子程序128——以10为底的浮点对数函数
子程序129——以e为底的浮点对数函数
第8章 树和图
8.1 二叉树的遍历
子程序130——编号遍历
子程序131——前根遍历
子程序132——中根遍历
子程序133——后跟遍历
8.2 普通树的遍历实例
子程序134——利用父指针数组的普通树前根遍历算法
子程序135——利用子指针数组的普通树前根遍历算法
子程序136——利用子指针数组的普通树后根遍历算法
8.3 图的遍历实例
子程序137——利用邻接矩阵的图广度优先遍历算法
子程序138——利用邻接表的图广度优先遍历算法
子程序139——利用邻接矩阵的图深度优先遍历算法
子程序140——利用邻接表的图深度优先遍历算法
子程序141——利用邻接表图的深度优先生成树生成算法
8.4 网络最小生成树和最短路径实例
子程序142——利用邻接矩阵的网络最小生成树算法
子程序143——利用邻接表的图最短路径算法
第9章 延时与跳转控制
9.1 循环延时
子程序144——一重循环延时
子程序145——多重循环延时
9.2 简单延时
子程序146——精确延时
子程序147——突发等待延时
9.3 分支程序
子程序148——无条件转移
子程序149——条件分支转移
9.4 散转程序实例
子程序150——N种分支的散转程序
子程序151——256种分支的散转程序
第10章 人机交互接口
10.1 键盘接口
子程序152——键盘输入需要解决的问题
子程序153——独立式键盘接口
子程序154——8279键盘接口
子程序155——拨码盘接口
子程序156——键盘扫描
10.2 LED显示接口
子程序157——六位数码管时钟显示
子程序158——串行口扩展显示
子程序159——基于8155软件译码键盘显示
子程序160——基于8279的显示器
10.3 LCD显示接口
子程序161——段式LCD显示
子程序162——字符型LCD显示
子程序163——图形LCD显示
子程序164——LCD点阵字符型液晶显示
10.4 打印机接口实例
子程序165——LH-GP16打印机接口
子程序166——XLF微型打印机接口
10.5 CRT显示实例
子程序167——CRT显示
第11章 单片机测控接口
11.1 8位A/D转换器ADC0809接口实例
子程序168——用中断方式读取转换结果的数字量
子程序169——AD578模数转换
11.2 12位A/D转换器AD578/AD678/AD1678接口实例
11.3 12位串行A/D转换器接口实例
子程序170——TLC2543数据采集
11.4 串行A/D转换器MAX187接口实例
子程序171——MAX187数据采集
11.5 16位A/D转换器ADC1 143接口实例
子程序172——ADC1143数模转换
11.6 单路8位D/A转换器DAC0832接口实例
子程序173——DAC0832同步波形输出
11.7 单路10位D/A转换器AD7520接口实例
子程序174——AD7520正弦波输出
子程序175——AD7543数模转换
11.8 12位串行D/A转换器7543接口实例
11.9 16位D/A转换器AD1147接口实例
子程序176——AD1147数模转换
第12章 51单片机内部资源编程实例
12.1 51单片机I/O口的应用
子程序177——P1口的应用
子程序178——P0口的扩展使用
子程序179——并行I/O口编程
子程序180——单片机的FPGA并行配置
子程序181——利用T0、T1作为外部中断源
12.2 中断服务子程序
子程序182——INT0中断
12.3 定时器/计数器应用
子程序183——定时器/计数器0工作在模式0方式
子程序184——定时器/计数器0工作在模式1方式
子程序185——定时器/计数器0工作在模式2方式
子程序186——定时器/计数器0工作在模式3方式
12.4 程序存储器的扩展
子程序187——扩展EPROM的典型电路
子程序188——扩展EPROM
子程序189——扩展EEPROM的典型电路
子程序190——扩展EEPROM
12.5 数据存储器的扩展
子程序191——数据存储区扩展的典型电路
子程序192——扩展RAM到扩展RAM的数据复制
子程序193——扩展RAM到片内RAM数据复制
第13章 单片机数据传输接口
13.1 串行接口
子程序194——RS-232-C/RS-485接口标准
子程序195——数据传输率发生
子程序196——单片机RS-485接口
子程序197——用外部中断配合查询方式接收串行数据
子程序198——PC机和51单片机的快速串行通信
子程序199——单片机多机通信
13.2 USB总线接口
子程序200——USB总线协议
子程序201——通用USB程序模块
13.3 I2C总线接口
子程序202——基于I2C的时钟模块X1203
子程序203——用两个普通IO模拟I2C总线
子程序204——SPI和Microwire串行总线协议
13.4 SPI和Microwire串行总线接口
子程序205——SPI接口LCD显示模块EDM1079
子程序206——SPI接口语音录放模块ISD4104
子程序207——SPI接口时钟日历模块DS1302
子程序208——Microwire接口E2PROM存储器NM93Cx6应用
13.5 1-WIRE总线接口
子程序209——单总线数据通信协议
子程序210——单总线数字温度传感器
13.6 CAN总线接口
子程序211——CAN接口汇编语言编程
子程序212——CAN接口C语言编程
13.7 单片机的红外接口
子程序213——遥控显示数码0123456789
第14章 波形发生与控制
14.1 波形发生实例
子程序214——锯齿波信号发生
子程序215——单极性PWM信号发生
子程序216——正弦信号发生
14.2 控制实例
子程序217——位置式PID控制
子程序218——增量式PID控制
第15章 C51单片机软件抗干扰和数字滤波
15.1 单片机执行过程中的软件抗干扰措施
子程序219——采用指令冗余对程序“跑飞”的软件处理
子程序220——采用软件陷阱对程序“跑飞”的软件处理
子程序221——软件“看门狗”对程序“跑飞”的处理
子程序222——通过“复位”使系统恢复正常
15.2 信息冗余校验实例
子程序223——汉明码校验实例
子程序224——循环冗余校验
15.3 数字滤波子程序
子程序225——程序判断滤波
子程序226——中值滤波
子程序227——算术均值滤波
子程序228——加权平均滤波
子程序229——滑动平均滤波
子程序230——防脉冲干扰数字滤波
子程序231——一阶滞后滤波
附录1 ATMEL8051系列单片机
附录2 单片机常见缩略语
附录3 常用存储器型号