=================================================================================
《51单片机c语言创新教程》以宏晶公司的stc89c52rc单片机为蓝本,由浅人深,并结合smartm51开发板系统地介绍单片机的原理与结构、开发环境的使用、各种功能器件的应用。
《51单片机c语言创新教程》主要特色是边学边做,不是单纯的理论讲解,各章节中规中矩,遵循由简到繁、循序渐进的编排方式。本书大部分内容均来自作者的项目经验,因而许多c语言代码能够直接应用到工程项目中去,且代码风格良好。书中还介绍了usb通信、网络通信、数据校验、深入编程等,而这些内容在很多同类型书籍中并不具备,恰恰也是即将走出校门的大学生踏入社会工作经常要接触的。其中配套的光盘含有各实验的示例代码,可使读者在短时间内迅速掌握单片机的应用技巧,并可向读者提供配套的单片机开发板。
《51单片机c语言创新教程》既可作为大学本、专科单片机课程教材,也可作为相关技术人员的参考与学习用书。
=================================================================================
前 言 7
绪 论 9
第一章 8051简介 13
1.1 8051系列单片机的特点 13
1.2 8051系列单片机内部结构 14
1.2.1 微处理器 15
1.2.2 振荡器与CPU时序 17
1.2.3 存储器 17
1.2.4 并行接口 20
1.3 8051系列单片机内部资源 20
第二章 STC89C51RC/RD+系列单片机 22
2.1 主要特性 22
2.2 型号 22
2.3 结构图 23
2.4 管脚 24
2.5 特殊功能寄存器 26
第三章 开发环境 28
3.1 Cx51编译器 28
3.2 Keil简介 30
3.2.1 Keil C51系统概述 30
3.2.2 Keil开发系统的整体结构 31
3.2.3 Keil C51存储区关键字 32
3.3 NotePad++简介 34
3.4 NotePad++配置 35
3.4.1 设置语法着色 35
3.4.2 添加关键字 36
3.4.3 设置自动完成 38
3.5 Keil与NotePad++联合编辑 39
第四章 工程创建与深入 43
4.1 启动程序 43
4.2 创建工程 44
4.3 编写程序 46
4.3.1 HEX文件 50
4.4 深入Keil 52
4.4.1 剖析头文件 52
4.4.2 剖析优化 54
4.4.3 详解STARTUP.A51 57
4.5 程序烧写 61
基础入门篇 65
第五章 GPIO 66
5.1 GPIO简介 66
5.2 GPIO实验 67
5.3 软件延时 73
5.3.1 软件延时编写 74
第六章 定时器/计数器与中断 77
6.1 定时器/计数器简介 77
6.2 定时器/计数器寄存器 77
6.3 定时器/计数器工作方式 80
6.4 流水灯实验 81
6.5 中断相关 87
6.5.1 中断 87
6.5.2 中断寄存器 88
6.5.3 中断服务函数 94
6.5.4 中断优先级与中断嵌套研究 95
第七章 串口 100
7.1 串口简介 100
7.1.1 串口基本概念 100
7.1.2 串口通信原理 101
7.2 串口相关寄存器 103
7.3 串口工作方式 104
7.4 串口实验 105
7.4.1 串口发送数据实验 105
7.4.2 串口接收数据实验 109
7.5模拟串口实验 117
7.6串口波特率研究 123
7.7串口多机通信研究 125
第八章 外部中断 127
8.1 外部中断简介 127
8.2 外部中断实验 127
第九章 串行输入并行输出 132
9.1 74LS164简介 132
9.2 74LS164结构 133
9.3 74LS164函数 135
第十章 数码管 137
10.1 数码管简介 137
10.2 字型码 137
10.3 驱动方式 139
10.4 数码管实验 140
第十一章 LCD 149
11.1 液晶简介 149
11.2 1602液晶 149
11.2.1 LCD1602显示实验 152
11.3 12864液晶 159
11.3.1 LCD12864显示实验 164
第十二章 EEPROM 172
12.1 EEPROM简介 172
12.2 STC89C52RC内部EEPROM 172
12.2.1内部EEPROM简介 172
12.2.2 EEPROM寄存器 173
12.3 EEPROM实验 177
第十三章 看门狗 184
13.1 看门狗简介 184
13.2 看门狗寄存器 184
13.3 看门狗实验 186
第十四章 单片机补遗 191
14.1 功耗控制 191
14.1.1 PCON电源管理寄存器 191
14.1.2 中断唤醒MCU实验 192
14.2 EMI管理 196
14.2.1 AUXR特殊功能寄存器 196
14.3 软件复位 197
14.3.1 ISP/IAP控制寄存器ISP_CONTR 197
14.3.2软件复位实验 198
14.3.3 Keil仿真模拟软件复位 203
14.4 RTX-51实时系统 208
14.4.1 实时系统与前后台系统 208
14.4.2 RTX-51实时系统技术参数 211
14.4.3 深入RTX-51 Tiny实时系统 213
14.4.4 RTX-51 Tiny实时系统实验 214
14.5 LIB的生成与使用 221
14.5.1 LIB文件的创建 222
14.5.2 LIB文件的使用 223
实战篇 225
第十五章 按键计数器 226
15.1 按键计数器简介 226
15.2 按键检测 226
15.2.1 传统的按键检测 226
15.2.2 状态机按键检测 228
15.3 按键计数器实验 229
第十六章 交通灯 243
16.1 交通灯简介 243
16.2 交通灯实验 244
第十七章 频率计 259
17.1 频率计简介 259
17.2 频率计实验 260
高级通信接口开发篇 271
第十八章 USB通信 272
18.1 USB简介 272
18.2 USB的电气特性与传输方式 274
18.2.1 电气特性 274
18.2.2 传输方式 274
18.2.3 总线协议 275
18.3 USB总线接口芯片CH372 276
18.4 CH372内置固件模式 291
18.4.1 内置固件模式实验 291
18.4.2 驱动安装与识别 308
18.5 CH372外部固件模式 310
18.5.1 外部固件 310
18.5.2 外部固件模式实验 312
18.5.3 USB协议 316
18.5.4 驱动安装与识别 353
第十九章 网络通信 356
19.1网络简介 356
19.2网络芯片ENC28J60 357
19.3 SPI通信 363
19.3.1 SPI简介 363
19.3.2 SPI接口定义 364
19.4 TCP/IP协议 370
19.4.1 TCP/IP 协议简介 370
19.5 网络实验 377
19.5.1 Ping实验 407
19.5.2 TCP实验 408
19.5.3 UDP实验 411
深入篇 414
第二十章 深入接口 415
20.1 简介 415
20.2 校验介绍 415
20.2.1 奇偶校验 415
20.2.2 校验和 417
20.2.3 循环冗余码校验 418
20.3 数据校验实战 420
20.3.1 数据帧格式定义 421
20.3.2 数据校验实验 424
第二十一章 深入编程 436
21.1 编程规范 436
21.1.1 排版 436
21.1.2 注释 438
21.1.3 标识符 440
21.1.4 函数 442
21.2 代码架构 444
21.2.1 功能模块构建 444
21.2.2 前后台系统构建 445
21.3 高级应用集锦 455
21.3.1 宏 455
21.3.2 函数指针 457
21.3.3 结构体、共用体 459
21.3.4 程序优化 460
21.3.5 软件抗干扰 476
21.3.6 软件低功耗设计 478
番外篇 480
第二十二章 界面开发 481
22.1 VC++2008 482
22.2 HelloWorld小程序 482
22.3 实现串口通信 487
22.3.1 创建界面 487
22.3.2 添加CSerial类 488
22.3.3 编写程序 488
22.3.4 运行程序 490
附录A Keil C与ANSI C的差异 492
附录B 编译器限制 495
附录C 字节顺序 496
附录D 提示与注意 498
附录E 调试技巧 502
E.1 软件仿真 502
附录F 指令集 507
附录G SmartM系列开发板简介 510
G.1开发套件开发板原理图 510
G.2开发套件图布局 514
G.3开发套件配置 514
参考文献 516
|