目 录第1章 单片机概述 11.1 什么是单片机 11.2 单片机的发展历史 21.3 单片机的特点 21.4 单片机的应用 31.5 单片机的发展趋势 41.6 MCS-51系列与AT89S5x系列单片机 51.6.1 MCS-51系列单片机 51.6.2 AT89S5x系列单片机 61.7 各种衍生品种的8051单片机 81.7.1 STC系列单片机 81.7.2 C8051F×××单片机 91.7.3 ADμC812单片机 91.7.4 华邦W77系列、W78系列单片机 91.8 PIC系列单片机与AVR系列单片机 101.8.1 PIC系列单片机 101.8.2 AVR系列单片机 111.9 其他的嵌入式处理器简介 111.9.1 嵌入式DSP处理器 121.9.2 嵌入式微处理器 12思考题及习题 13第2章 AT89S51单片机片内 硬件结构 152.1 AT89S51单片机的片内硬件结构 152.2 AT89S51的引脚功能 172.2.1 电源及时钟引脚 172.2.2 控制引脚 172.2.3 并行I/O口引脚 182.3 AT89S51的CPU 192.3.1 运算器 192.3.2 控制器 212.4 AT89S51单片机存储器的结构 212.4.1 程序存储器空间 222.4.2 数据存储器空间 222.4.3 特殊功能寄存器 232.4.4 位地址空间 262.5 AT89S51单片机的并行I/O端口 272.5.1 P0口 272.5.2 P1口 282.5.3 P2口 292.5.4 P3口 302.6 时钟电路与时序 302.6.1 时钟电路设计 312.6.2 机器周期、指令周期与指令时序 322.7 复位操作和复位电路 322.7.1 复位操作 322.7.2 复位电路设计 332.8 看门狗定时器(WDT)的使用 332.9 低功耗节电模式 352.9.1 空闲模式 352.9.2 掉电运行模式 362.10 AT89S52单片机与AT89S51单片机的差异 362.10.1 AT89S52单片机与AT89S51 单片机片内硬件资源的差别 372.10.2 AT89S52的引脚 372.10.3 AT89S52单片机的存储器结构 37思考题及习题 40第3章 C51编程语言基础 433.1 C51编程语言简介 433.1.1 C51语言与8051汇编语言的比较 433.1.2 C51语言与标准C语言的比较 443.2 C51语言程序设计基础 443.2.1 C51语言中的数据类型与存储类型 453.2.2 C51语言的特殊功能寄存器及位变量定义 493.2.3 C51语言的绝对地址访问 513.2.4 C51的基本运算 523.2.5 C51的分支与循环程序结构 543.2.6 C51的数组 603.2.7 C51的指针 623.3 C51语言的函数 633.3.1 函数的分类 633.3.2 函数的参数与返回值 643.3.3 函数的调用 653.3.4 中断服务函数 663.3.5 变量及存储方式 663.3.6 宏定义与文件包含 663.3.7 库函数 67思考题及习题 68第4章 开发与仿真工具 694.1 Keil C51的使用 694.1.1 Keil C51简介 694.1.2 基本操作 694.1.3 添加用户源程序文件 714.1.4 程序的编译与调试 734.1.5 项目的设置 754.2 Proteus虚拟仿真工具介绍 774.2.1 Proteus功能简介 774.2.2 Proteus ISIS的虚拟仿真 784.2.3 Proteus的各种虚拟仿真调试工具 844.2.4 虚拟设计仿真举例 87思考题及习题 93第5章 单片机与开关、键盘以及 显示器件的接口设计 945.1 单片机控制发光二极管显示 945.1.1 单片机与发光二极管的连接 945.1.2 I/O端口的编程控制 955.2 开关状态检测 985.2.1 开关检测案例1 985.2.2 开关检测案例2 995.3 单片机控制LED数码管的显示 1005.3.1 LED数码管的显示原理 1005.3.2 LED数码管的静态显示与动态显示 1035.4 单片机控制LED点阵显示器显示 1065.4.1 LED点阵显示器的结构与显示原理 1065.4.2 控制16×16 LED点阵显示屏的案例 1075.5 单片机控制LCD 1602液晶显示器的<>