第1章 单片机的C语言概述 1
1.1 C语言简介 1
1.1.1 C语言的产生与发展 1
1.1.2 C语言的特点 1
1.2 C语言入门知识 3
1.2.1 简单的C程序介绍 3
1.2.2 C程序的特点 7
第2章 PIC单片机C语言开发环境的建立2.1 软件实验环境的建立 9
2.1.1 MPLAB软件的安装与使用 9
2.1.2 Proteus软件简介 10
2.1.3 HI-TECH软件的安装 12
2.2 用PIC单片机控制一个LED 13
2.2.1 PIC16F877A芯片的外部引脚 14
2.2.2 任务分析 14
2.3 Proteus仿真的实现 22
2.4 硬件实验环境的建立 24
2.4.1 实验板简介 24
2.4.2 硬件结构 25
2.4.3 实验电路板的基本使用方法 27
第3章 数据类型、运算符与表达式3.1 数据类型概述 29
3.2 常量与变量 29
3.2.1 常量 30
3.2.2 变量 31
3.3 整型数据 33
3.3.1 整型常量 33
3.3.2 整型变量 33
3.4 字符型数据 38
3.4.1 字符常量 38
3.4.2 字符变量 38
3.5 数的溢出 39
3.6 实型数据 42
3.6.1 实型常量 42
3.6.2 实型变量 43
3.7 PIC单片机的数据存储 48
3.7.1 程序存储器 48
3.7.2 数据存储器 51
3.8 变量赋初值 54
3.9 C运算符及其表达式 54
3.9.1 C运算符简介 54
3.9.2 算术运算符及其表达式 55
3.9.3 各类数值型数据间的混合运算 56
3.9.4 赋值运算符及其表达式 56
3.9.5 逗号运算符及其表达式 60
3.9.6 位操作运算符及其表达式 61
3.9.7 自增减运算符、复合运算符及其表达式 62
第4章 C流程与控制 63
4.1 顺序结构程序 63
4.2 选择结构程序 63
4.2.1 引入 63
4.2.2 关系运算符及其表达式 66
4.2.3 逻辑运算符及其表达式 67
4.2.4 选择语句if 68
4.2.5 if语句的嵌套 71
4.2.6 条件运算符 72
4.2.7 switch/case语句 73
4.3 循环结构程序 75
4.3.1 循环程序简介 76
4.3.2 while循环语句 76
4.3.3 do-while循环语句 77
4.3.4 for循环语句 80
4.3.5 break语句 81
4.3.6 continue语句 82
第5章 C构造数据类型 85
5.1 数组 85
5.1.1 引入 85
5.1.2 一维数组 87
5.1.3 二维数组 88
5.1.4 字符数组 89
5.1.5 数组与存储空间 90
5.2 指针 92
5.2.1 指针的基本概念 92
5.2.2 定义一个指针变量 93
5.2.3 指针变量的引用 96
5.2.4 HI-TECH PICC的指针类型 98
5.3 结构 100
5.3.1 结构的定义和引用 100
5.3.2 结构数组 103
5.4 共用体 104
5.5 枚举 107
5.5.1 枚举的定义和说明 107
5.5.2 枚举变量的取值 107
5.6 用typedef定义类型 110
第6章 PIC单片机内部资源编程6.1 定时器/计数器 112
6.1.1 定时器/计数器TMR0 112
6.1.2 定时器/计数器TMR1 117
6.1.3 定时器/计数器TMR2 122
6.2 通用串行接口 126
6.2.1 USART模块关键寄存器介绍 126
6.2.2 USART波特率设定 128
6.2.3 USART工作过程分析 129
6.2.4 USART实例分析 132
6.3 CCP模块 135
6.3.1 与CCP模块相关的控制寄存器 136
6.3.2 CCP模块的输入捕捉模式 137
6.3.3 CCP模块的比较输出模式 140
6.3.4 CCP模块的PWM模式 143
6.4 A/D转换模块及使用 145
6.4.1 PIC单片机片上ADC模块概述 146
6.4.2 ADC相关控制寄存器 147
6.4.3 模拟通道输入引脚的设置 149
6.4.4 A/D转换实例分析 150
第7章 函数 154
7.1 概述 154
7.2 函数的定义 156
7.3 函数参数和函数的值 158
7.4 函数的调用 161
7.4.1 函数调用的一般形式 161
7.4.2 函数调用的方式 161
7.4.3 对被调用函数的声明和函数原型 162
7.4.4 用函数指针变量调用函数 164
7.5 数组作为函数参数 167
7.6 局部变量和全局变量 168
7.6.1 局部变量 168
7.6.2 全局变量 169
7.7 变量的存储类别 170
7.7.1 动态存储方式与静态存储方式 171
7.7.2 atuo变量 171
7.7.3 static变量 171
7.7.4 用extern声明外部变量 172
第8章 单片机接口的C语言编程8.1 LED数码管 175
8.2 键盘 183
8.2.1 键盘工作原理 183
8.2.2 键盘与单片机的连接 184
8.3 I2C总线接口 188
8.3.1 概述 188
8.3.2 24系列EEPROM的结构及特性 189
8.3.3 24系列EEPROM的使用 191
8.4 93CXX系列EEPROM 193
8.4.1 93CXX系列EEPROM的结构及特性 193
8.4.2 93C46芯片的使用 194
8.5 实时钟 197
8.5.1 DS1302的结构及特性 198
8.5.2 DS1302芯片的使用 198
8.6 液晶显示器接口 201
8.6.1 字符型液晶显示器的基本知识 201
8.6.2 字符型液晶显示器的使用 202
第9章 应用设计举例 208
9.1 秒表 208
9.2 可预置倒计时钟 212
9.3 使用DS1302制作的时钟 216
9.4 AT24C01A的综合应用 219
9.5 93C46的综合应用 224
附录 光盘使用说明 231
参考文献 232