第1章 C51程序Keil调试 1
1.1 求和 1
实例1 sum=1+2+…+100 1
实例2 sum=1+3+5+…+99 4
实例3 sum=1!+2!+…+10! 5
1.2 排序 6
实例4 a、b、c从小到大排序 6
实例5 数组a[8]从大到小(从小到大)排序 6
实例6 数组元素按相反顺序存放 8
实例7 解压缩BCD码 8
1.3 打印输出 9
实例8 按顺序打印输出数组元素 9
实例9 输出100~200间能被3整除的数 10
实例10 计算并输出半径r等于1~10时的圆面积a 11
实例11 输出变量x对应的平方值 12
实例12 摄氏温度转换为华氏温度 13
实例13 a、b、c排序打印输出 14
实例14 16个数据从大到小排列输出 15
实例15 打印输出金字塔图形 17
1.4 查找统计 17
实例16 查找并统计ASCII字符“$”的个数 17
实例17 查找并统计数组a[16]中正数、负数和零的个数 18
实例18 查找并统计1~99之间的偶数项 19
1.5 延时 19
实例19 单循环延时 20
实例20 双循环延时 21
1.6 数据块传送 21
实例21 外RAM→内RAM 21
实例22 ROM→内RAM 22
第2章 输出信号控制 23
2.1 键控信号灯 23
实例23 单灯闪烁 23
实例24 双键控3灯 27
实例25 双键控4灯 30
实例26 无锁按键的4种不同键控方式 33
2.2 循环灯 37
实例27 流水循环灯 37
实例28 花样循环灯 41
2.3 模拟交通灯 43
实例29 模拟交通灯 43
实例30 带限行时间显示的模拟交通灯 46
2.4 音频声输出 49
实例31 单音频输出 49
实例32 双音频输出 53
实例33 播放生日快乐歌 55
第3章 80C51片外扩展应用 59
3.1 并行扩展 59
实例34 并行扩展8位TTL输入输出口 59
实例35 并行扩展16位TTL输入输出口 63
实例36 并行扩展8255 65
实例37 并行扩展8155 69
实例38 并行扩展RAM 6264 74
3.2 串行扩展输入输出口 78
实例39 74HC165串行输入8/16位按键状态 79
实例40 CC4021串行输入8/16位按键状态 83
实例41 CC4014串行输入8位按键状态 87
实例42 74HC164串入并出控制8/16循环灯 89
实例43 CC4094串入并出控制8/16循环灯 94
实例44 74HC595串入并出控制8/16循环灯 99
实例45 74HC164+165串行输入输出 104
实例46 CC4021+4094串行输入输出 107
实例47 74HC164+165虚拟串行输入输出 109
实例48 CC4021+4094虚拟串行输入输出 111
3.3 I2C串行总线扩展 113
实例49 读写AT24C02 117
实例50 非零地址读写AT24C02 122
第4章 显示与键盘 124
4.1 LED数码管静态显示 124
实例51 单个LED数码管循环显示0~9 124
实例52 74LS377并行输出3位LED静态显示 128
实例53 CC4511 BCD码驱动3位LED数码管静态显示 131
实例54 74LS164串行扩展3位LED数码管静态显示 134
实例55 CC4094串行扩展3位LED数码管静态显示 136
4.2 LED数码管动态显示 139
实例56 PNP晶体管选通3位共阳LED数码管动态显示 140
实例57 74LS139选通4位LED数码管动态显示 143
实例58 74LS138选通8位LED数码管动态显示 146
实例59 74LS595串行选通8位LED数码管动态显示 150
实例60 8255A扩展8位LED数码管动态显示 153
4.3 LCD显示屏显示 155
实例61 LCD1602显示屏显示 156
4.4 键盘 163
实例62 4×4矩阵式键盘 163
实例63 8279扩展8×8键盘和8位显示 169
实例64 74HC595+165扩展8×8键盘 176
第5章 中断、定时/计数器和串行口应用 181
5.1 中断应用 181
实例65 出租车行驶里程计数 181
实例66 统计展览会4个入口参展总人数 185
实例67 利用与门扩展外中断 187
实例68 74HC148编码扩展外中断 190
5.2 定时/计数器应用 194
实例69 输出周期脉冲方波(示波器显示) 194
实例70 输出矩形脉冲波(示波器显示) 197
实例71 统计T0引脚上10 min内的脉冲数 199
实例72 测量脉冲宽度 202
实例73 测量脉冲频率 206
实例74 定时器控制单灯闪烁 209
实例75 定时器控制播放生日快乐歌 211
实例76 定时器控制播放世上只有妈妈好歌曲 213
3.3 双机通信 215
实例77 双机串行通信方式1 215
实例78 双机串行通信方式2 218
实例79 双机串行通信方式3 223
实例80 带RS-232接口的双机通信 225
第6章 A-D和D-A 229
6.1 A-D转换 229
实例81 ADC0808中断方式A-D(ALE输出CLK) 229
实例82 ADC0808查询方式A-D(ALE输出CLK) 235
实例83 ADC0808延时方式A-D(ALE输出CLK) 237
实例84 ADC0808并行A-D(虚拟CLK) 239
实例85 ADC0832串行A-D(TXD输出CLK) 244
实例86 ADC0832串行A-D(虚拟CLK) 248
实例87 PCF8591 I2C串行A-D(1602显示) 250
6.2 D-A转换 256
实例88 DAC0832输出连续锯齿波 256
实例89 PCF8591 I2C串行D-A输出连续锯齿波 260
第7章 常用测控电路 263
7.1 时钟 263
实例90 开机显示PC机时间的时钟1302(LCD1602显示) 263
实例91 具有校正功能的时钟1302(LCD1602显示) 271
实例92 开机显示PC机时分秒的时钟1302(LED数码管显示) 276
实例93 具有校正功能的时钟1302(LED数码管显示) 280
实例94 模拟电子钟(由80C51定时器产生秒时基) 284
实例95 99.9 秒秒表 289
实例96 能预置初值的倒计时秒表 291
7.2 DS18B20测温 295
实例97 一线式DS18B20测温 295
7.2 电机驱动 301
实例98 驱动四相步进电机 301
实例99 驱动二相步进电机 306
实例100 直流电机正反转及PWM调速 309
第8章 Keil C51编译软件操作基础 316
8.1 项目建立和设置 316
8.1.1 创建工程项目 316
8.1.2 设置工程属性 319
8.1.3 输入源程序 322
8.2 程序编译运行 325
8.2.1 程序编译链接 325
8.2.2 程序运行调试 326
8.3 常用窗口介绍 328
8.3.1 项目文件/寄存器窗口 329
8.3.2 输出窗口 329
8.3.3 变量观察窗口 330
8.3.4 存储器窗口 331
8.3.5 80C51功能部件运行对话窗口 332
8.3.6 串行输入/输出信息窗口 334
第9章 Proteus虚拟仿真软件操作基础 335
9.1 用户编辑界面 335
9.1.1 启动Proteus ISIS 335
9.1.2 Proteus ISIS主菜单 336
9.1.3 Proteus ISIS工具栏 337
9.2 电路原理图设计和编辑 339
9.2.1 新建原理图设计 339
9.2.2 选择和放置元器件 340
9.2.3 对象操作 342
9.2.4 布线 345
9.2.5 电气规则检查 347
9.3 虚拟仿真运行 348
9.3.1 仿真运行 348
9.3.2 Proteus与Keil联合仿真调试 351
参考文献 354