第1章 8051/8052系列原理介绍 2
1.1 概述 2
1.2 MCS-51存储器结构分析 10
1.3 微控制器MCS-51指令分析 39
1.4 CPU时序分析 65
1.5 中断结构 68
第2章 8051/8052结构部分分析 78
2.1 8051及8052结构部分分析 78
2.2 端口的机构及操作 81
2.3 存取外部存储器 84
2.4 定时/计数器 85
2.5 串行接口 92
2.6 中断 115
2.7 单步执行 123
2.8 复位(RESET)动作分析 124
2.9 送电后的复位 126
2.10 省电型(CHMOS)版本内IDLE省电模式,POWER DOWN断电处理模式分析 126
2.11 EPROM版本 140
2.12 程序存储器保护上锁 140
2.13 MCS-51系列各引脚功能说明 142
2.14 外部程序存储器提取 144
2.15 外部数据存储器读取、写入时序及端口的操作时序分析 145
2.16 未使用引脚的处理情形 147
2.17 CHMOS与HMOS版本的8051时钟电路分析 148
2.18 逻辑电平分析 148
2.19 按键抖动波及对策 149
第3章 8051/8052系列程序设计指导 154
3.1 存储器组织 154
3.2 中断 160
3.3 定时/计数器功能分析 162
3.4 串口功能分析 166
第4章 8051/8052系列指令集讨论及介绍 182
4.1 旗标受指令操作的影响分析 182
4.2 指令符号的意义说明 183
4.3 指令集 184
4.4 指令集分析 187
4.5 软件程序 240
第5章 8051/8052数学理论范例演练 250
【例题1】两寄存器值相加 250
【例题2】选择工作寄存器 250
【例题3】将内部RAM“41H”的默认值加到内部RAM“40H” 251
【例题4】将输入端口(P1)的值与输出端口(P0)的值相加,结果值再从输出端口(P0)送出去 252
【例题5】间接地址内部数据存储器值相加,即将RAM(20H)与RAM(24H)的两字节值相加,结果存回RAM(20H) 252
【例题6】常量相加,结果值存回ACC中 254
【例题7】使用编译器ASM 51的能力,执行两常量值的相加,其结果值再存回ACC中 254
【例题8】将“RAM”的地址以变量符号定义的方式写程序,其效果与前例题5相同 255
【例题9】再次声明将寄存器设置为符号 255
【例题10】数字符串相减,具有溢位符号检测功能 255
【例题11】寄存器及常量各16位以十进位相加的方式加后结果值存回寄存器R3、R2中 257
【例题12】使用除法指令技巧,将单一字节十六进制码转成BCD码 259
【例题13】将存于累加器中的两个单一十进位数字以十进制方式相乘,其乘后结果则再存回累加器ACC中 261
【例题14】将存于寄存器R7内的按键的键码值与固定的各键码值做一比较,若不相等,则到后列的标号去执行,即再检测是否为别的键码被按下,若相等则返回主程序执行 262
【例题15】插入一软件指令,于引脚产生?一负脉冲“?”,程序中利用DJNZ做负向波脉冲宽度延迟用 262
【例题16】当中断时,利用堆栈将主程序中各状态值暂存 263
【例题17】有关数据指针寄存器“DPTR”创建检查表的指令技巧分析 264
【例题18】十六进制码转成二进位十进制“BCD”码原理介绍 265
【例题19】执行减法指令后对进位(CY)及溢位(OV)旗标的影响分析 272
【例题20】引脚控制 273
【例题21】16位码左移一位(及右移一位) 273
【例题22】十六进制码转换到ASCII码 274
【例题23】十六进制码(HEX code)到七段显示码转换 275
【例题24】将存于R7中的“BCD”数码经过两个七段显示器显示出来 276
【例题25】求温度平均值 277
【例题26】十进制形态直接寻址3字节“BCD”加法 278
【例题27】十进制型态间接寻址3字节“BCD”加法 279
【例题28】十六进制16位加法 280
【例题29】十六进制32位加法 281
【例题30】十六进制32位减16位 282
【例题31】十六进制32位减32位 283
【例题32】乘法原理介绍 284
【例题33】二进制除法原理介绍 297
【例题34】十进制码转换为十六进制码的原理介绍 305
【例题35】边缘或电平中断触发的概念 312
【例题36】位处理指令运用技巧 313
【例题37】增加一极性位发送及接收的UART码处理方式 314
【例题38】检测ASCII码是否在“A”与“Z”之间 315
【例题39】多种方式完成逻辑电路设计的演练 316
【例题40】使用交流电60Hz做定时单位的设计 318
【例题41】软件检测定时器溢位的程序设计方法 319
【例题42】定时器0模式2的编辑设计,输出周期200μs的方波,占空比(duty)=1/2 320
【例题43】脉冲宽度测量(以及电动机速度控制设计方法介绍) 320
【例题44】编写汇编语言时,对于“伪指令”应了解的基础 324
第6章 8051/8052开发工具介绍及其应用 330
6.1 前言 330
6.2 什么是微机开发系统 330
6.3 研究方法 331
第7章 8051/8052研发实践重点讨论 338
【讨论1】8051在工业应用上的可编程控制器(PLC)设计范例 338
【讨论2】单板机(8085)与单片机(8048、8051)软件效益评估,以串行I/O设计为例 347
【讨论3】延迟“DELAY”时间计算法 349
【讨论4】内部电路模拟器(ICE)调试技巧探讨之一 351
【讨论5】内部电路模拟器(ICE)调试技巧探讨之二 354
【讨论6】内部电路模拟器(ICE)调试技巧探讨之三 355
【讨论7】如何使单片机硬件稳定的工作 355
【讨论8】8051系列内各芯片耗电情况与电压电平以及IDLE模式、POWER DOWN模式应用 370
第8章 8051/8052系列产品设计 376
【专题1】灯号变化控制设计(在程序内建表) 376
【专题2】单一引脚(P2.7)控制灯的扫向 379
【专题3】使用875 1完成工业逻辑控制电路设计之一 381
【专题4】使用8751完成工业逻辑控制电路设计之二 384
【专题5】十字路口红绿灯控制设计 387
【专题6】外部中断0(?)控制实验 391
【专题7】外部中断0(?)中断1(?)控制实验之一 394
【专题8】外部中断(?)中断1(?)控制实验之二 402
【专题9】定时/计数器0(TIMER0)模式0设计之一 408
【专题10】定时/计数器0(TiMER0)模式1(MODE1)设计 412
【专题11】定时/计数器0(TIMER0)模式2(MODE2)设计 415
【专题12】定时/计数器0(TIMER0)模式3(MODE3)设计 418
【专题13】定时器0(TIMER0)定时器1(TIMER1)同时计数实验(模式2) 422
【专题14】两位数定时器0模式2计数实验之一 427
【专题15】串行传输(UART)模式0(MODE0)扩充输出端口实验 431
【专题16】串行传输(UART)模式0(MODE0)扩充输入端口实验 433
【专题17】串行传输(UART)模式1(MODE1)数据传输实验 436
【专题18】串行传输(UART)模式2(MODE2)数据传输实验 442
【专题19】串行传输(UART)模式3(MODE3)全双工数据传输实验 444