本书是普通高等教育“十一五”国家级规划教材。本书本书以51系列单片机为硬体基础,以C51为软体编程基础,全面系统地介绍单片机的基本知识与套用。本书主要内容包括:单片机的C语言概述,51单片机硬体与C51编程基础,P0~P3口、中断系统、定时器/计数器、并行扩展、外部串列扩展的C51编程,Keil与Proteus使用基础等。
基本介绍
- 书名:单片机的C语言程式设计与套用——基于Proteus仿真(第3版)
- 作者:姜志海,赵艳雷,陈松
- ISBN:9787121261893
- 出版社:电子工业出版社
- 出版时间:2015-07-01
图书内容
本书是普通高等教育“十一五”国家级规划教材。本书本书以51系列单片机为硬体基础,以C51为软体编程基础,全面系统地介绍单片机的基本知识与套用。本书主要内容包括:单片机的C语言概述,51单片机硬体与C51编程基础,P0~P3口、中断系统、定时器/计数器、并行扩展、外部串列扩展的C51编程,Keil与Proteus使用基础等。
本书提供大量实例及详细说明与注释,均可在Keil和Proteus软体平台上直接运行,每章后附本章小结、习题、实验与设计等,提供电子课件、程式代码、习题参考答案与实验指导。
目 录
第1章 单片机的C语言概述 1
1.1 C语言与51单片机编程 1
1.1.1 单片机的C语言的特点 1
1.1.2 单片机的C语言和标準C语言的
比较 2
1.1.3 单片机的C语言与彙编语言的
优势对比 2
1.2 C51程式 6
1.2.1 C51的程式结构 6
1.2.2 C51编程规範及注意事项 8
1.2.3 C51的标识符与关键字 9
本章小结 11
习题 12
第2章 51系列单片机硬体及C51编程基础 13
2.1 51单片机的总体结构 13
2.1.1 内部结构 13
2.1.2 外部引脚说明 15
2.1.3 CPU的时序周期 18
2.2 51单片机的存储器 18
2.2.1 程式存储器 19
2.2.2 数据存储器 19
2.2.3 特殊功能暂存器 21
2.3 C51语言的数据 24
2.3.1 数据类型 24
2.3.2 常量与变数 25
2.3.3 数据存储类型 27
2.4 C51语言对单片机主要资源的控制 29
2.4.1 特殊功能暂存器的C51语言定义 29
2.4.2 绝对地址的访问 31
2.4.3 位变数的C51语言定义 32
2.5 C51语言的基本运算与流程控制
语句 33
2.5.1 基本运算 33
2.5.2 分支判断——if、switch语句 34
2.5.3 循环控制——while、for语句 37
2.5.4 break、continue、return和goto
语句 39
2.6 C51语言的数组、指针、函式 41
2.6.1 数组 41
2.6.2 指针 42
2.6.3 函式 44
2.7 C51语言的预处理命令及彙编语句的
嵌入 47
2.7.1 档案包含、宏定义、条件编译 47
2.7.2 C51中彙编语句的嵌入 49
本章小结 49
习题 50
第3章 51系列单片机P0~P3口输入/输出的
C51编程 51
3.1 51单片机的P0~P3口基础知识 51
3.1.1 P0~P3口结构 51
3.1.2 P0~P3口特点总结 52
3.2 输出操作 53
3.2.1 基本输出操作举例——位元组输出与
位输出 53
3.2.2 扩展输出操作举例——流水灯与
霹雳灯 54
3.2.3 扩展输出操作举例——8段LED
数码显示器 56
3.3 输入操作 60
3.3.1 闸刀型开关输入信号 61
3.3.2 单个按钮型开关输入信号 62
3.3.3 多个按钮型开关输入信号——
键盘 64
3.4 实验 70
实验1 闸刀型开关输入/8段LED静态
显示输出 70
实验2 按钮型开关输入/8段LED静态
显示输出 70
本章小结 72
习题 73
第4章 51单片机中断系统的C51编程 74
4.1 中断系统结构与中断控制 74
4.1.1 中断系统结构 74
4.1.2 特殊功能暂存器 75
4.2 中断优先权与中断函式 76
4.2.1 中断优先权 76
4.2.2 中断函式的结构形式 78
4.3 外部中断源的C51编程 78
4.3.1 外部中断源初始化 78
4.3.2 编程示例 78
4.4 实验 83
实验1 按钮型开关模拟外部中断实验 83
实验1 按钮型开关模拟外部中断实验 83
实验2 外部中断优先权实验 84
本章小结 86
习题 86
第5章 51单片机的定时器/计数器的
C51编程 87
5.1 51单片机的定时器/计数器基本
知识 87
5.1.1 结构 87
5.1.2 特殊功能暂存器 87
5.2 定时器/计数器工作模式 89
5.3 定时器/计数器的套用举例 92
5.3.1 定时器/计数器的初始化 92
5.3.2 套用举例 94
5.4 实验 99
实验1 按钮型开关模拟计数器实验 99
实验2 定时器实验 100
本章小结 101
习题 102
第6章 51单片机串列口的C51编程 103
6.1 51单片机串列口基础知识 103
6.1.1 串列口的结构原理 103
6.1.2 串列口的套用控制 104
6.2 51单片机串列口的工作方式 105
6.2.1 串列口工作方式0 105
6.2.2 串列口工作方式1 109
6.2.3 串列口工作方式2 113
6.2.4 串列口工作方式3 116
6.3 51单片机串列口的套用举例 119
6.3.1 串列口编程基础 119
6.3.2 串列口套用举例 121
6.4 实验 125
实验1 串列口控制的流水灯实验 125
实验2 串列口控制的8段LED
显示器 125
本章小结 127
习题 127
第7章 51单片机并行扩展的C51编程 128
7.1 51单片机并行I/O口扩展基础 128
7.1.1 系统扩展汇流排结构图 128
7.1.2 数据线、控制线的连线 129
7.1.3 解码信号的形成—系统扩展的
定址 129
7.2 可程式的I/O接口晶片8255A的
C51编程 132
7.2.1 8255A简介 132
7.2.2 利用8255A扩展并行的输入/输出
口示例 136
7.2.3 利用Intel8255A作为8段LED
静态显示输出口的示例 136
7.2.4 利用Intel8255A作为8段LED
动态显示输出口的示例 138
7.3 D/A与A/D转换器的C51编程 140
7.3.1 D/A转换器基础 140
7.3.2 8位并行D/A转换器DAC0832 141
7.3.3 A/D转换器基础 147
7.3.4 8位并行A/D转换器ADC0809 148
7.4 液晶显示器的C51编程 151
7.4.1 字元型LCD1602液晶显示模组
的C51编程 152
7.4.2 点阵式带汉字型档12864液晶显示
模组接口技术 156
7.5 实验 165
实验1 DAC0832单缓冲实验 165
实验2 ADC0809实验 165
本章小结 168
习题 168
第8章 51单片机外部串列扩展的
C51编程 170
8.1 I2C汇流排器件的C51编程 170
8.1.1 认识I2C汇流排接口 170
8.1.2 I2C汇流排典型器件AT24C02
套用举例 172
8.2 SPI汇流排器件的C51编程 177
8.2.1 认识SPI汇流排 178
8.2.2 SPI汇流排典型器件X25045套用
举例 179
8.3 单汇流排(1-wire)的C51编程 183
8.3.1 认识单汇流排(1-wire) 183
8.3.2 单汇流排典型器件DS18B20套用
举例 184
8.4 串列A/D接口晶片TLC2543的C51编程 190
本章小结 193
习题 194
第9章 Vision2与Proteus使用基础 195
9.1 Vision2集成开发环境 195
9.1.1 File、Edit和View选单 196
9.1.2 Project、Debug和Flash选单 198
9.1.3 Peripherals、Tools和Window
选单 199
9.2 用Vision2建立与调试工程 200
9.2.1 工程创建、设定、编译与连结 200
9.2.2 用Vision2调试工程 204
9.2.3 C51程式调试举例说明——
HELLO.C 208
9.2.4 Keil C51的调试技巧及举例 210
9.3 Proteus快速入门 213
9.3.1 集成Proteus ISIS环境 213
9.3.2 电路原理图设计 218
9.4 Proteus仿真工具介绍 223
9.4.1 探针 223
9.4.2 虚拟仪器 223
9.4.3 信号发生器 224
9.4.4 仿真图表 224
9.5 Proteus软体中的C51程式运行与
调试 225
9.5.1 驱动的安装 225
9.5.2 Keil和Proteus的配置 225
9.5.3 Keil和Proteus的调试过程 226
本章小结 226
习题 227
附录A ASCII码字元表 228
附录B 单片机套用资料的网上查询方法 229
附录C Proteus常用分离器件名称 230
参考文献 231