图书介绍
51单片机C语言开发详解【2025|PDF下载-Epub版本|mobi电子书|kindle百度云盘下载】

- 张天凡等编著 著
- 出版社: 北京:电子工业出版社
- ISBN:9787121064012
- 出版时间:2008
- 标注页数:508页
- 文件大小:211MB
- 文件页数:531页
- 主题词:单片微型计算机-C语言-程序设计
PDF下载
下载说明
51单片机C语言开发详解PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 单片机基础知识2
1.1单片机简介2
1.2单片机的发展状况2
1.3单片机的应用领域3
1.3.1机电一体化3
1.3.2智能仪表仪器4
1.3.3工业现场控制4
1.3.4军事技术5
1.3.5分布式控制系统5
1.3.6家用电子产品6
1.4单片机的发展趋势:高性能化6
1.4.1采用双CPU结构6
1.4.2增加数据总线宽度7
1.4.3采用流水线结构7
1.5单片机的发展趋势:存储器大容量化7
1.5.1不断增大存储容量7
1.5.2Flash技术7
1.5.3程序保密处理8
1.6单片机的发展趋势:接口多样化8
1.6.1引脚数目不断增多8
1.6.2并行口的驱动能力不断提高8
1.6.3I/O口的逻辑控制功能不断增强8
1.6.4特殊的串行接口功能不断增多8
1.7单片机的发展趋势:集成化9
1.7.1外围电路集成9
1.7.2片内ROM、RAM等集成9
1.7.3其他功能模块集成9
1.8单片机的发展趋势:低功耗化10
1.9MCS-51单片机的选型10
第2章 AT89S51单片机系统结构和性能12
2.1AT89S51的性能参数12
2.2AT89S51单片机内部结构13
2.2.18051结构13
2.2.2AT89S51内部结构14
2.2.3算术逻辑运算单元(ALU)15
2.2.4特殊功能寄存器组(SFR)15
2.2.5SFR——程序计数器(PC)16
2.2.6SFR——累加器(ACC)17
2.2.7SFR——B寄存器17
2.2.8SFR——堆栈指针(SP)17
2.2.9SFR——数据指针(DPTR)18
2.2.10SFR——程序状态字(PSW)18
2.2.11SFR——工作寄存器R0~R719
2.2.12节电模式(Idle Mode)19
2.2.13掉电模式(Power Down Mode)19
2.3AT89S51单片机的引脚描述19
2.3.1供电引脚20
2.3.2外接晶振引脚20
2.3.3内部时钟方式21
2.3.4有源晶振21
2.3.5外部时钟信号21
2.3.6控制引脚:RST21
2.3.7控制引脚:ALE/PROG22
2.3.8控制引脚:PSEN22
2.3.9控制引脚:EA/VPP22
2.3.10I/O引脚:P0口22
2.3.11I/O引脚:P1口23
2.3.12I/O引脚:P2口23
2.3.13I/O引脚:P3口23
2.4AT89S51单片机存储器的组织形式24
2.4.1程序存储器25
2.4.2数据存储器25
2.4.3工作寄存器区26
2.4.4位寻址区27
2.4.5堆栈和数据缓冲器区27
2.4.6位寻址空间28
2.5AT89S51单片机的输入输出接口28
2.5.1I/O口的读/改/写特性28
2.5.2端口负载能力与接口要求29
2.5.3外扩存储器接口29
2.6AT89S51单片机的复位与CPU时序31
2.6.1复位电路31
2.6.2CPU时序32
2.6.3CPU时序:单字节单周期指令时序33
2.6.4CPU时序:双字节单周期指令时序33
2.6.5CPU时序:单字节双周期指令时序33
2.6.6CPU时序:MOVX指令时序34
2.7AT89S51单片机的定时器与时钟34
2.7.1AT89S51定时器工作原理34
2.7.2定时器T0和T1的内部结构35
2.7.3定时器工作模式:模式038
2.7.4定时器工作模式:模式140
2.7.5定时器工作模式:模式241
2.7.6定时器工作模式:模式342
2.8AT89S51单片机的中断系统43
2.8.1中断基本概念43
2.8.2AT89S51中断系统45
2.8.3定时器/计数器控制寄存器(TCON)46
2.8.4串行口控制寄存器(SCON)46
2.8.5中断使能控制寄存器(IE)46
2.8.6中断优先级控制寄存器(IP)47
2.8.7AT89S51中断初始化与扩展48
2.8.8AT89S51中断请求与清除49
2.8.9AT89S51中断响应时间49
2.9AT89S51单片机的看门狗51
2.9.1看门狗的基本概念51
2.9.2AT89S51看门狗的操作方法51
2.10AT89S51的编程接口51
2.10.1并行编程接口51
2.10.2串行编程接口53
第3章 AT89S51单片机的指令系统54
3.1指令系统概述54
3.1.1指令格式54
3.1.2 AT89S51的伪汇编指令55
3.2 AT89S51单片机的寻址方式57
3.2.1立即寻址57
3.2.2直接寻址57
3.2.3寄存器寻址58
3.2.4寄存器间接寻址58
3.2.5相对寻址58
3.2.6基址加变址寻址58
3.2.7位寻址59
3.2.8页面寻址59
3.2.9寻址方式与存储器的对应59
3.3AT89S51单片机的数据传送指令60
3.3.1以累加器A为目的操作数的指令60
3.3.2以Rn为目的操作数的指令60
3.3.3以直接地址为目的操作数的指令60
3.3.4以间接地址为目的操作数的指令60
3.3.516位数据传送的指令61
3.3.6查表指令61
3.3.7累加器A与片外RAM数据传送指令61
3.3.8堆栈操作指令61
3.3.9交换指令62
3.4AT89S51单片机的算术操作指令62
3.4.1不带进位的加法指令62
3.4.2带进位的加法指令63
3.4.3带进位的减法指令63
3.4.4增量(加1)指令63
3.4.5减量(减1)指令63
3.4.6十进制调整指令64
3.4.7乘法指令64
3.4.8除法指令64
3.5AT89S51单片机的逻辑与移位指令64
3.5.1对累加器A的单操作数的逻辑操作指令64
3.5.2两个操作数的逻辑操作指令65
3.6AT89S51单片机的程序控制流指令66
3.6.1无条件转移指令66
3.6.2条件转移指令66
3.6.3调用和返回指令68
3.6.4空操作指令69
3.7AT89S51单片机的位操作指令69
3.7.1位数据传送指令69
3.7.2位变量修改指令70
3.7.3位变量逻辑与、或指令70
3.7.4位变量条件转移指令70
第4章 KeilC51单片机开发环境71
4.1C语言编程基础71
4.1.1C51源程序的基本结构71
4.1.2标识符与关键字73
4.13数据类型75
4.1.4常量与变量76
4.1.5函数79
4.1.6数组与指针81
4.1.7结构体与联合体83
4.1.8类型定义87
4.1.9宏定义与条件编译88
4.2Keil C51开发工具90
4.2.1μVision 3集成开发环境结构91
4.2.2Keil C51的C编译器92
4.2.3Keil C51的A51宏汇编器93
4.2.4Keil C51的BL51代码连接器/定位器93
4.2.5Keil C51的OC51目标文件转换器94
4.2.6Keil C51的OH目标HEX文件转换器95
4.2.7Keil C51的LIB51库文件管理器95
4.3μVision 3集成开发环境95
4.3.1μ Vision 3IDE95
4.3.2μ Vision 3 C51编译器与测试程序98
4.3.3μ Vision 3的安装99
4.4集成开发环境的使用101
4.4.1 μVision 3的项目管理窗口102
4.4.2 μ Vision 3的菜单栏105
4.4.3 μ Vision 3的工具栏111
4.4.4 μ Vision 3的快捷键113
4.4.5 μ Vision 3的功能窗口115
4.4.6源代码编辑窗口115
4.4.7Watch &Call Stack窗口116
4.4.8Memory窗口118
4.4.9CPU寄存器窗口118
4.4.10串行窗口119
4.4.11性能分析窗口119
4.4.12代码覆盖窗口120
4.4.13符号浏览窗口121
4.5项目的开发与管理121
4.5.1创建项目121
4.5.2添加配置启动代码123
4.5.3项目设置127
4.5.4Target选项卡128
4.5.5Output选项卡131
4.5.6Listing选项卡132
4.5.7C51选项卡132
4.5.8A51选项卡134
4.5.9BL51 Locate选项卡135
4.5.10BL51 Misc选项卡135
4.5.11Debug选项卡136
4.5.12项目编译136
4.5.13列表文件(C语言)137
4.5.14列表文件(汇编语言)142
第5章 ATMEL AT89S51学习板简介144
5.1开发板硬件构成144
5.2模块介绍145
5.2.1单片机最小系统145
5.2.2跑马灯146
5.2.3键盘阵列147
5.2.44位8段共阴极数码管147
5.2.5A/D转换模块147
5.2.6D/A输出模块149
5.2.7RS-232通信模块149
5.2.8CAN通信接口150
5.2.9其他扩展接口151
第6章 I/O输出实战——跑马灯驱动电路与软件设计152
6.1跑马灯电路设计152
6.1.1跑马灯152
6.1.2发光二极管基础知识152
6.1.3发光二极管与单片机接口154
6.1.4发光二极管的限流155
6.1.5跑马灯电路设计156
6.2跑马灯软件设计157
6.2.1第一个单片机程序157
6.2.2跑马灯编程——工作状态指示159
6.2.3跑马灯编程——蛇形花样162
6.2.4跑马灯编程——龙舞花样164
6.2.5定时器中断延时程序设计167
6.3问题与思考173
6.3.1跑马灯电路设计问题173
6.3.2延时程序设计问题174
6.3.3计时器程序设计问题175
第7章 输入接口实战——键盘接口电路与软件设计179
7.1键盘接口电路设计179
7.1.1键盘基本原理179
7.1.2按键确认180
7.1.3按键消抖181
7.1.4键值的读取182
7.1.5对重键的处理182
7.1.6直接式键盘接口电路设计182
7.1.7阵列式键盘接口电路设计183
7.1.8中断键盘接口电路设计184
7.2键盘接口程序设计186
7.2.1直接式键盘接口软件设计186
7.2.2键盘接口软件消抖程序设计190
7.2.3阵列式键盘接口软件设计194
7.2.4中断式阵列键盘接口软件设计198
7.2.5中断式直接键盘接口软件设计202
7.3问题与思考204
7.3.1直接键盘接口电路设计问题205
7.3.2阵列式键盘接口电路设计问题206
7.3.3中断键盘接口电路设计问题206
第8章 串口通信实战——RS-232接口电路与软件设计208
8.1串行通信基本原理208
8.1.1同步通信与异步通信209
8.1.2波特率209
8.1.3单工、半双工与全双工通信210
8.2 RS-232通信接口设计211
8.2.1RS-232通信协议211
8.2.2RS-232通信接口定义212
8.2.3RS-232接口芯片MAX232214
8.2.4基于AT89S51的RS-232接口电路设计215
8.2.5单片机之间的UART通信215
8.2.6RS-232串口调试软件216
8.3RS-232通信程序设计218
8.3.1单片机向计算机发送数据实例218
8.3.2计算机向单片机发送数据实例222
8.3.3串口通信中断实例225
8.3.4蓝牙通信模块扩展实例229
8.4问题与思考236
第9章 A/D转换实战——模拟量输入电路与软件设计237
9.1A/D转换器的基本原理237
9.1.1逐次逼近式A/D转换器原理237
9.1.2双积分式A/D转换器原理238
9.1.3A/D转换器的技术指标239
9.2基于AT89S51的A/D转换器电路设计240
9.2.1 ADC0809扩展电路设计240
9.2.2 AD7812扩展电路设计244
9.3基于AT89S51的A/D转换实用案例246
9.3.1 AD7812扩展软件设计246
9.3.2温度测量252
9.3.3电流测量263
9.3.4 光强测量270
9.4问题与思考274
9.4.1磁珠(Ferrite Bead)274
9.4.2电流测量电路275
9.4.3光敏电阻测量电路275
第10章 D/A转换实战——模拟量输出电路与软件设计277
10.1D/A转换器的基本原理277
10.1.1权电阻式D/A转换器原理277
10.1.2R-2R T型网络D/A转换器原理278
10.1.3R-2R倒T型网络D/A转换器原理279
10.1.4D/A转换器的转换精度280
10.1.5D/A转换器的转换速度280
10.1.6D/A转换器的温度系数281
10.2 DAC0832数模转换器电路设计281
10.2.1DAC0832的内部结构281
10.2.2电流电压转换接口282
10.2.3DAC0832的直接工作方式283
10.2.4DAC0832的单缓冲工作方式283
10.2.5DAC0832的双缓冲工作方式284
10.3串行接口DAC7614数模转换器电路设计285
10.3.1DAC7614的内部结构285
10.3.2DAC7614的单端工作模式286
10.3.3DAC7614的双端工作模式287
10.3.4DAC7614的数字接口287
10.4基于PWM的低成本数模转换器电路设计289
10.4.1 PWM简介289
10.4.2基于单运放的阻容滤波D/A转换器289
10.5 DAC0832程序设计290
10.5.1 AT89S51扩展DAC0832的双缓冲电路290
10.5.2精密电压参考源AD780291
10.5.3 D/A转换程序设计292
10.6三角波发生器设计295
10.6.1三角波发生器电路295
10.6.2定时器中断296
10.6.3三角波发生器程序设计297
10.7 DAC7614程序设计302
10.7.1 DAC7614扩展电路302
10.7.2隔离电源DCP010505303
10.7.3光耦6N137304
10.7.4 DAC7614程序设计304
10.8PWM DAC程序设计307
10.8.1电路原理图307
10.8.2程序设计307
10.9问题与思考310
第11章 综合实例——多功能数字温度计设计314
11.1系统结构与分析314
11.1.1多功能数字温度计功能分析314
11.1.2多功能数字温度计系统分析314
11.2 DS1620温度传感器电路315
11.2.1 DS1620的性能指标315
11.2.2 DS1620的引脚定义315
11.2.3 DS1620的温度格式316
11.2.4 DS1620的三线数据串行接口317
11.2.5 DS1620的控制寄存器317
11.2.6DS1620的操作字318
11.2.7DS1620的单独工作模式318
11.2.8DS1620的单片机接口电路319
11.3MAX7219数码管驱动电路320
11.3.1MAX7219的性能指标320
11.3.2MAX7219的引脚定义320
11.3.3MAX7219的串行数据通信321
11.3.4MAX7219的内部寄存器地址322
11.3.5MAX7219的数字位寄存器323
11.3.6MAX7219的停机寄存器323
11.3.7MAX7219的测试寄存器323
11.3.8MAX7219的亮度寄存器323
11.3.9MAX7219的扫描界限寄存器324
11.3.10MAX7219的译码寄存器324
11.3.11MAX7219驱动电路设计325
11.4其他硬件电路设计326
11.4.1AT89S51单片机最小系统电路326
11.4.2键盘输入电路327
11.4.3电源电路327
11.4.4多功能数字温度计的硬件电路328
11.5多功能数字温度计软件设计329
11.5.1软件结构分析329
11.5.2DS1620驱动程序设计330
11.5.3MAX7219驱动程序设计333
11.5.4键盘接口程序设计336
11.5.5蜂鸣器驱动程序设计337
11.5.6定时器时钟基准设计337
11.5.7时钟显示程序设计339
11.5.8闹铃程序设计341
11.5.9按键操作程序设计341
11.5.10显示温度程序设计344
11.5.11主程序345
11.6多功能数字温度计工程文件345
11.6.1主函数346
11.6.2温度传感器DS1620函数库347
11.6.3DS1620引脚定义349
11.6.4数码管驱动MAX7219函数库349
11.6.5MAX7219头文件定义351
11.6.6键盘操作函数353
11.6.7键盘操作定义357
11.6.8时钟函数库357
11.6.9时间函数定义361
第12章 综合实例——工业CAN网络控制系统节点设计362
12.1系统结构与分析362
12.1.1工业CAN网络控制系统节点功能分析362
12.1.2工业CAN网络控制系统分析362
12.2CAN总线知识简介363
12.2.1CAN总线的特点363
12.2.2CAN总线的物理层364
12.2.3CAN总线的报文帧364
12.2.4CAN总线的仲裁367
12.3工业CAN网络控制系统节点硬件电路设计368
12.3.1AT89S51单片机最小系统电路368
12.3.2CAN总线控制电路369
12.3.3CAN收发器电路372
12.3.4时钟显示电路374
12.3.5数字量输入输出374
12.3.6跑马灯及其他接口电路375
12.3.7工业CAN网络控制节点总电路376
12.4工业CAN网络控制系统通信协议设计377
12.4.1拓扑结构与接口定义377
12.4.2通信约定协议378
12.4.3标识符定义378
12.4.4过程数据对象(PDO)380
12.4.5服务数据对象(SDO)383
12.4.6同步对象(SYNC)383
12.4.7时间戳对象(TIME)383
12.4.8紧急对象(EMCY)384
12.5工业CAN网络控制节点程序设计385
12.5.1SJA1000芯片寄存器与关键字定义385
12.5.2SJA1000.c底层驱动函数库390
12.5.3时钟操作定义391
12.5.4时钟操作函数库391
12.5.5485信息定义397
12.5.6485通信函数库399
12.5.7Max7219寄存器与关键字定义403
12.5.8Max7219数码管驱动函数库405
12.5.9数码管操作函数库406
12.5.10CAN总线操作函数库407
12.5.11输入输出管理函数410
12.5.12综合节点功能函数412
12.5.13引脚定义424
12.5.14CAN操作函数声明425
12.5.15特殊变量定义426
第13章 综合实例——GPS接收机428
13.1系统结构与分析428
13.1.1GPS接收机功能分析428
13.1.2GPS接收机系统分析428
13.2GPS定位知识简介429
13.2.1GPS定位的特点429
13.2.2GPS定位的主要功能429
13.2.3GPS定位系统的发展历史430
13.2.4现今的GPS系统430
13.2.5GPS的定位原理432
13.3GPS通信协议——NMEA Protocol433
13.3.1NMEA协议结构433
13.3.2定位信息GPGGA帧434
13.3.3卫星信息GPGSA帧435
13.3.4地理定位信息GPGLL帧436
13.3.5卫星状态GPGSV帧436
13.3.6最小信息GPRMC帧437
13.3.7地表矢量GPVTG帧438
13.3.8信号残差计算GPGRS帧438
13.3.9伪随机误差GPGST帧439
13.3.10时间信息GPZDA帧439
13.3.11自修正GPGBS帧440
13.4GPS接收机显示终端——点阵型LCD液晶440
13.4.1KS0713简介440
13.4.2KS0713的单片机接口441
13.4.3KS0713的并行通信时序442
13.4.4KS0713的串行通信时序443
13.4.5KS0713的Data RAM444
13.4.6KS0713的列寻址444
13.4.7KS0713的页寻址445
13.4.8液晶驱动时序445
13.4.9 KS0713的控制指令445
13.4.10读显示数据指令Read Display Data 447
13.4.11写显示数据指令Write Display Data 447
13.4.12读取状态指令Read Status 448
13.4.13显示开/关指令Display ON/OFF 448
13.4.14初始化行指令Initial Display Line448
13.4.15 参考电压选择指令Reference Voltage Select449
13.4.16设置页地址指令Set Page Address449
13.4.17设置列地址指令Set Column Address 449
13.4.18选择ADC指令ADC Select 450
13.4.19翻转指令Reverse Display ON / OFF450
13.4.20全满显示指令Entire Display ON / OFF451
13.4.21选择LCD偏移指令Select LCD Bias451
13.4.22设置读偏移指令Set Modify-Read 451
13.4.23复位读偏移指令Reset Modify-Read451
13.4.24复位治疗Reset 452
13.4.25 SHL选择指令SHL Select 452
13.4.26功耗控制指令Power control 452
13.4.27线性电阻选择指令Regulator Resistor Select 452
13.4.28设置静态指示状态指令Set Static Indicator State453
13.5GPS接收机硬件电路设计453
13.5.1单片机最小电路453
13.5.2电源电路454
13.5.3GPS模块电路455
13.5.4LCD点阵液晶电路456
13.5.5内存扩展电路457
13.5.6GPS接收机硬件原理图458
13.6GPS接收机程序设计458
13.6.1NMEA基本信息定义info.h分析459
13.6.2时间结构定义time.h分析461
13.6.3帧类型定义sentence.h分析461
13.6.4帧初始化操作sentencer.c分析463
13.6.5NMEA数据流解码parser.c分析464
13.6.6NMEA解码封装声明parser.h分析471
13.6.7解码封装parser.c分析472
13.6.8地理函数声明Mymath.h分析479
13.6.9地理计算函数Mymath.c分析480
13.6.10字符串处理函数MyFormat.c分析486
13.6.11调试函数声明context.h分析490
13.6.12调试函数context.c分析490
13.6.13液晶显示定义LCD library.h分析492
13.6.14液晶显示函数库LCD- library.c分析493
13.6.15主程序main.c分析505
热门推荐
- 3317406.html
- 3418438.html
- 1204420.html
- 41389.html
- 2433967.html
- 2628566.html
- 206693.html
- 3574945.html
- 1026040.html
- 358091.html
- http://www.ickdjs.cc/book_2497266.html
- http://www.ickdjs.cc/book_252717.html
- http://www.ickdjs.cc/book_3811445.html
- http://www.ickdjs.cc/book_1675769.html
- http://www.ickdjs.cc/book_1339740.html
- http://www.ickdjs.cc/book_1984651.html
- http://www.ickdjs.cc/book_2501413.html
- http://www.ickdjs.cc/book_626331.html
- http://www.ickdjs.cc/book_1912819.html
- http://www.ickdjs.cc/book_3254204.html