内容简介
本书从初学者的角度对他们在学习单片机过程中遇到的问题进行了归纳,选取了200多个问题,以“非典型”问答方式介绍MCS-51系列及其兼容单片机的基本知识和接口技术。主要内容包括由外而内地介绍MCS-51系列及其兼容单片机的基本结构,指令系统及程序设计,C51语言程序设计,中断系统、定时器/计数器、串行口的工作原理,存储器扩展和接口技术等,并择了一些程序设计、中断系统、定时器/计数器应用、串行口应用、接口技术及典型的新型接口器件的应用程序实例。给出了部分汇编语言和C51语言程序索引,方便读者设计程序时参考。
目录
第1章 对单片机的基本认识 1
1.1 单片机是什么? 1
1.2 单片机是什么样子? 1
1.3 单片机有哪些型号? 2
1.4 从外形看,怎么知道单片机的功能? 2
1.5 怎么知道单片机是否在工作? 2
1.6 单片机和微机有什么区别? 2
1.7 单片机与专用集成电路有什么区别? 3
1.8 单片机与可编程控制器(PLC)有什么区别? 3
1.9 单片机的组成结构是怎样的? 4
1.10 什么是普林斯顿结构和哈佛结构? 5
1.11 MCS-51单片机有什么功能? 5
1.12 AT89S系列单片机的功能有什么特点? 6
1.13 单片机用得多吗? 6
第2章 由外到里认识单片机——单片机的引脚功能 8
2.1 单片机的引脚有些什么作用? 8
2.2 单片机接晶体振荡器有什么作用? 9
2.3 单片机有哪些时序单位? 9
2.4 引脚一定要连接吗? 10
2.5 复位有什么作用? 10
2.6 复位以后单片机处于什么状态? 10
2.7 什么是I/O端口? 11
2.8 为什么要外接存储器? 12
2.9 为什么要复用P0口? 12
2.10 扩展外部存储器,一定要用到P2口吗? 12
2.11 外部数据存储器的地址资源用不完,能否实现外借? 13
2.12 并行口的“读引脚”和“读锁存器”操作有何区别? 13
2.13 P1口的结构和工作是怎样的? 14
2.14 P3口的结构和工作是怎样的? 15
2.15 P2口的结构和工作是怎样的? 17
2.16 P0口的结构和工作是怎样的? 18
2.17 为什么I/O口锁存器的位置1,才能进行输入操作? 20
2.18 I/O口的输入/输出操作需要行初始化吗? 20
2.19 AT89C2051、AT89S2051等单片机为什么只有20个引脚? 20
2.20 怎样才能使单片机工作? 21
2.21 什么是单片机系统? 22
2.22 AT89S系列单片机有什么新的引脚功能? 22
第3章 由外到里认识单片机——单片机的内部基本功能 23
3.1 单片机的CPU在哪里? 23
3.2 程序状态字PSW起什么作用? 23
3.3 程序计数器PC起什么作用? 24
3.4 特殊功能寄存器有什么作用? 25
3.5 什么是程序存储器地址空间? 26
3.6 未使用的程序存储器单元里的内容是什么? 27
3.7 什么是数据存储器地址空间? 27
3.8 8052等器件有256字节内部数据存储器单元,是否会与特殊功能寄存器产生地址冲突? 29
3.9 如何选择使用工作寄存器组? 29
3.10 AT89S系列单片机有哪些新的特殊功能寄存器? 29
3.11 什么是AT89S系列单片机的ISP系统内编程? 32
第4章 指令系统和程序设计 36
4.1 指令跟硬件功能有关系吗? 36
4.2 还需要人工编译汇编语言源程序吗? 36
4.3 理解机器码有什么作用,有必要吗? 36
4.4 字节型传送指令MOV有什么特点? 37
4.5 把累加器写成A与写成ACC有什么不同? 37
4.6 指令格式中的direct是什么意思? 38
4.7 一个内部数据存储器单元应该用direct还是Rn形式表示好? 38
4.8 如何理解指令中的“@”标识符? 39
4.9 如何理解指令中的“#”标识符? 39
4.10 如何区分指令中的数值是地址还是常数? 39
4.11 什么是堆栈操作? 40
4.12 堆栈操作指令的特点是什么? 40
4.13 工作寄存器Rn和累加器A可以堆栈吗? 41
4.14 堆栈区的起点可以自由设定吗? 41
4.15 堆栈区的大小是固定的吗? 41
4.16 如何实现数据交换? 42
4.17 传送指令MOVC有什么特点? 42
4.18 传送指令MOVX有什么特点? 43
4.19 算术运算指令的特点是什么? 44
4.20 可以实现累加器A的内容自己相加吗? 45
4.21 如何实现DPTR的内容减1? 45
4.22 乘法指令和除法指令