第一部分 程序设计练习 1
一、代码转换 1
1.4位2进制数转换成ASCII码 1
2.16进制数的ASCII码转换成4位2进制数 3
3.多字节2进制整数转换成BCD码 5
4.多位BCD码小数转换为2进制小数 7
5.多字节2进制小数转换为BCD码 9
6.多位整数BCD码转换成2进制整数 12
二、算术运算 15
1.10进制运算 15
2.2进制运算方法 17
3.多字节移位子程序 19
4.双字节整数乘法子程序 20
5.双字节整数除法子程序 24
第二部分 单片机的I/O接口扩展 29
一、并行I/O接口硬件扩展及软件编程 29
(一)I/O接口芯片8255的扩展 29
1.8255A芯片介绍 29
2.8255A的输入/输出编程实验 40
(二)8255A在EPROM固化板上的应用 42
1.固化板编程 42
2.EPROM固化程序分析 44
(三)1/O接口与外部RAM扩展(8155) 46
1.8155芯片介绍 46
2.8155中扩展RAM的读写 54
3.8155的输入/输出编程 54
4.8155的CTC定时编程 55
二、模拟/数字转换接口 56
(一)8位A/D转换(ADC0809) 56
1.ADC0809模拟/数字转换芯片介绍 56
2.实验内容与步骤 58
(二)高精度模/数转换(ICL8068 / ICL7104——16) 59
1.ICL8068 / ICL7104—16CPL的主要特性 60
2.16位A/D转换器的典型电路 61
3.ICL7104与MCS—51单片机的接口 62
(三)三位半双积分A/D变换器(5G14433) 64
1.5G14433的主要特性 64
2.5G14433 的引脚功能说明 64
3.编程操作 67
三、数字/模拟转换接口 68
(一)8位D/A转换(DAC0832) 69
1.DAC0832数模转换芯片介绍 69
2.实验内容与步骤 72
(二)双锁存D/A转换 73
1.实验原理 73
2.实验内容与步骤 74
(三)高精度数字/模拟转换(7520) 74
1.转换原理 75
2.实验操作 75
四、存储器的扩充 76
1.单片机常用存储器芯片介绍 76
2.实验内容 80
3.实验步骤 81
五、定时器/计数器(CTC)应用 83
(一)定时编程操作 83
1.CTC介绍 83
2.实验内容及步骤 84
(二)用CTC作实时时钟产生器 87
1.实验内容 87
2.实验步骤 87
3.参考程序 87
六、开发系统的用户自定义键盘及显示程序设计 91
1.实验内容及步骤 91
2.键盘分析与显示子程序的注释及使用 94
七、单片机的中断 99
1.MCs—51系列单片机的中断系统概述 99
2.实验内容 101
3.实验步骤 101
八、通用打印机接口设计 104
1.通用打印机接口介绍 105
2.用8255A扩充的打印机按口电路 105
3.打印程序的编制 105
4.其它接口方式 107
九、串行口实验 109
第三部分 单片机系统设计 114
一、开发系统设计 114
(一)开发系统概述 114
(二)开发系统的键盘操作 116
1.返回“P”状态及存储器读写 116
2.寄存器及外存检查 118
3.设置断点和运行程序 120
4.插入、删除与偏移量 123
5.EPROM固化与检查 126
6.数据块搬家及比较 127
(三)开发系统的结构与设计 128
1.主机板的设计 129
2.键盘/显示电路的设计 130
3.EPROM固化板的设计 131
实验板的设计 131
二、应用系统设计 136
(一)系统设计原理 136
(二)全部程序清单 140
附录A 浮点运算子程序 155
A.1多字节2进制整数转换成浮点数 155
A.2浮点数取补子程序 155
A.3浮点数规格化程序 156
A.4浮点数对阶子程序 159
A.5浮点数加法子程序 161
A.6浮点数减法子程序 164
A.7多字节浮点数乘法 164
A.8浮点数除法子程序 169
附录B MCS— 51单片机汇编及指令表 176
附录C 常用集成电路引脚图 188