《STC15增强型8051单片机C语言编程与应用》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:徐爱钧著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2014
  • ISBN:9787121241178
  • 页数:415 页
图书介绍:本书详细介绍了宏晶科技有限公司研发的STC15系列新型Flash8051单片机基本组成、性能特点及应用方法,基于Flash存储器的ISP在系统中编程和IAP在应用中编程技术,结合目前流行的Keil C51编译器环境,对STC15系列单片机采用C语言进行编程应用,充分发挥C51技术优势,全面地展现STC15系列单片机本身特色,强调先进性和实用性,给出了大量应用实例,包括原理电路图和源程序代码,为读者快速上手提供方便。

第1章 STC15系列单片机基础 1

1.1 STC15F2K60S2单片机性能特点 1

1.1.1 主要特性 1

1.1.2 体系结构 2

1.1.3 引脚功能 2

1.2 STC15F2K60S2单片机的存储器结构 4

1.3 STC15F2K60S2单片机的时钟与复位 8

1.3.1 时钟 8

1.3.2 复位 9

1.3.3 看门狗电路 10

1.4 STC15F2K60S2单片机存储器的使用 11

1.4.1 片内Flash存储器 11

1.4.2 片内扩展XRAM存储器 12

1.4.3 片内数据Flash存储器(EEPROM) 13

1.5 STC15F2K60S2单片机的并行I/O端口 14

1.5.1 并行I/O端口工作模式 14

1.5.2 并行I/O端口使用注意事项 15

1.6 Keil C51开发工具 16

1.7 STC15单片机的C语言编程与调试 17

第2章 Keil C51程序设计基础 26

2.1 标识符与关键字 26

2.2 C51程序设计的基本语法 28

2.2.1 C51程序的一般结构 28

2.2.2 数据类型 29

2.2.3 用typedef重新定义数据类型 31

2.2.4 常量、变量及其存储模式 32

2.2.5 运算符与表达式 34

2.3 C51程序的基本语句 38

2.3.1 表达式语句 38

2.3.2 复合语句 39

2.3.3 条件语句 39

2.3.4 开关语句 40

2.3.5 循环语句 40

2.3.6 goto、break、continue语句 41

2.3.7 返回语句 41

2.4 函数 42

2.4.1 函数的定义与调用 42

2.4.2 定义中断服务函数与寄存器组 44

2.5 数组 45

2.5.1 数组的定义与引用 45

2.5.2 数组名作为函数的参数 47

2.5.3 数组与存储器空间 50

2.6 指针 50

2.6.1 指针与地址 51

2.6.2 指针变量的定义 51

2.6.3 指针变量的引用 52

2.6.4 指针变量作为函数的参数 53

2.6.5 用指针引用数组元素 54

2.6.6 字符数组指针 55

2.6.7 指针的地址计算 56

2.7 函数型指针 57

2.8 返回指针型数据的函数 59

2.9 指针数组与指针型指针 60

2.9.1 指针数组 60

2.9.2 指针型指针 62

2.9.3 抽象型指针 64

2.10 结构体、联合体与枚举 65

2.10.1 结构体变量的定义与引用 65

2.10.2 结构体数组 67

2.10.3 结构体指针 68

2.10.4 将结构体作为函数的参数 69

2.10.5 将结构体指针作为函数的参数 71

2.11 联合体变量的定义与引用 72

2.12 枚举变量的定义与引用 75

第3章 Keil C51编译器对ANSIC的扩展 78

3.1 存储器类型与编译模式 78

3.2 C51数据在内存中的存储格式 79

3.3 一般指针与基于存储器的指针及其转换 80

3.4 C51编译器对ANSIC函数的扩展 82

3.4.1 C51编译器支持的函数定义的一般形式 82

3.4.2 堆栈及函数的参数传递 82

3.4.3 函数的编译模式 83

3.4.4 寄存器组切换 83

3.4.5 中断函数 84

3.4.6 再入函数 84

3.5 目标代码的段管理 85

3.5.1 全局变量 85

3.5.2 函数和局部变量 86

3.6 启动代码 87

3.7 与汇编语言程序的接口 88

3.8 绝对地址访问 93

3.8.1 采用扩展关键字at或指针定义变量的绝对地址 93

3.8.2 采用预定义宏指定变量的绝时地址 94

3.9 Keil C51库函数 95

3.9.1 本征库函数 95

3.9.2 字符判断转换库函数 95

3.9.3 输入/输出库函数 96

3.9.4 字符串处理库函数 97

3.9.5 类型转换及内存分配库函数 99

3.9.6 数学计算库函数 100

第4章 STC15单片机片内资源应用编程 101

4.1 编写C51应用程序的基本原则 101

4.2 C51应用中的一些常见问题与解决方法 102

4.3 中断系统应用编程 104

4.3.1 中断系统结构 104

4.3.2 与中断相关的特殊功能寄存器 106

4.3.3 中断应用编程 108

4.4 定时器/计数器应用编程 111

4.4.1 定时器/计数器逻辑结构 111

4.4.2 与定时器/计数器相关的特殊功能寄存器 112

4.4.3 定时器方式应用编程 113

4.4.4 计数器方式应用编程 117

4.4.5 可编程时钟输出 118

4.4.6 利用定时器产生音乐 119

4.5 串行口应用编程 123

4.5.1 串行口的工作方式 124

4.5.2 与串行口相关的特殊功能寄存器 125

4.5.3 串行口的串/并转换方式应用编程 127

4.5.4 串行口的通信方式应用编程 130

4.6 片内A/D转换器应用编程 142

4.6.1 A/D转换器的逻辑结构 142

4.6.2 与A/D转换器相关的特殊功能寄存器 143

4.6.3 A/D转换器应用编程 144

4.7 片内PCA模块应用编程 146

4.7.1 PCA模块的逻辑结构 146

4.7.2 与PCA模块相关的特殊功能寄存器 147

4.7.3 PCA模块的工作模式 149

4.7.4 PCA模块应用编程 154

4.8 SPI同步串行接口应用编程 158

4.8.1 SPI接口的逻辑结构 158

4.8.2 与SPI接口相关的特殊功能寄存器 159

4.8.3 SPI接口的通信方式及数据格式 161

4.8.4 SPI接口应用编程 163

4.9 STC15F2K60S2单片机的低功耗设计 167

4.9.1 慢速工作模式 168

4.9.2 空闲与掉电工作模式 168

第5章 STC15单片机片外扩展应用编程 174

5.1 LED数码管显示接口应用编程 174

5.1.1 I/O端口驱动LED数码管应用编程 175

5.1.2 单个74HC595驱动多位LED数码管应用编程 176

5.1.3 8位共阴极LED数码管驱动器MAX7219应用编程 179

5.2 非编码键盘接口应用编程 185

5.2.1 采用I/O端口实现的矩阵键盘接口应用编程 185

5.2.2 采用片内ADC实现的键盘接口应用编程 187

5.3 点阵字符型LCD模块接口应用编程 191

5.3.1 点阵字符型LCD模块简介 191

5.3.2 点阵字符型LCD与单片机的直接接口应用编程 196

5.3.3 点阵字符型LCD与单片机的间接接口应用编程 199

5.3.4 点阵字符型LCD的4位数据总线接口应用编程 202

5.4 无字库12864点阵图型LCD模块接口应用编程 205

5.5 带字库12864点阵图型LCD模块接口应用编程 212

5.5.1 带字库12864液晶模块并行接口应用编程 217

5.5.2 带字库12864液晶模块串行接口应用编程 221

5.6 内置T6963C的点阵图型LCD模块接口应用编程 225

5.7 DAC转换接口应用编程 235

5.7.1 DAC0832转换接口应用编程 235

5.7.2 DAC1208与单片机的接口方法 239

5.7.3 串行接口DAC芯片TLC5615应用编程 241

5.8 ADC转换接口应用编程 244

5.8.1 ADC0809转换接口应用编程 244

5.8.2 ICL7135转换接口应用编程 248

5.8.3 串行接口ADC芯片TLC549应用编程 252

5.9 单片机I2C总线扩展应用编程 255

5.9.1 I2C总线简介 255

5.9.2 I2C总线通用驱动程序 259

5.9.3 I2C接口器件24C04的读写程序 261

5.9.4 I2C接口A/D-D/A转换芯片PCF8591应用编程 265

5.9.5 I2C接口时钟芯片PCF8563应用编程 276

第6章 STC15单片机综合应用编程实例 287

6.1 有关C51编程的若干实际应用技巧 287

6.2 C51与汇编语言混和编程及生成应用库文件 293

6.2.1 C51与汇编语言混合编程 293

6.2.2 在μVision4中生成应用库文件 298

6.3 可调数字钟 299

6.3.1 功能要求 299

6.3.2 硬件电路设计 299

6.3.3 软件程序设计 300

6.4 红外遥控系统设计 302

6.4.1 功能要求 302

6.4.2 硬件电路设计 302

6.4.3 软件程序设计 303

6.5 PWM脉宽调制系统设计 313

6.5.1 功能要求 313

6.5.2 硬件电路设计 313

6.5.3 软件程序设计 314

6.6 点阵LED显示屏设计 323

6.6.1 功能要求 323

6.6.2 硬件电路设计 323

6.6.3 软件程序设计 323

6.7 简易电子琴设计 326

6.7.1 功能要求 326

6.7.2 硬件电路设计 326

6.7.3 软件程序设计 327

6.8 DTMF发送/接收系统设计 331

6.8.1 功能要求 331

6.8.2 硬件电路设计 332

6.8.3 软件程序设计 335

6.9 带农历的电子万年历设计 346

6.9.1 功能要求 346

6.9.2 硬件电路设计 346

6.9.3 软件程序设计 349

6.10 电子密码锁设计 360

6.10.1 功能要求 360

6.10.2 硬件电路设计 361

6.10.3 软件程序设计 361

6.11 DS18B20多点温度监测系统设计 376

6.11.1 功能要求 376

6.11.2 硬件电路设计 376

6.11.3 软件程序设计 380

6.12 STH11数字温-湿度测量系统设计 388

6.12.1 功能要求 388

6.12.2 硬件电路设计 388

6.12.3 软件程序设计 392

6.13 单片机SD卡读/写接口设计 397

6.13.1 功能要求 397

6.13.2 硬件电路设计 397

6.13.3 软件程序设计 399

附录A STC15F2K60S2单片机指令表 404

附录B STC_ISP软件工具简介 410

附录C STC单片机编程下载工具U7/U7-S简介 413

参考文献 415