51测试网 单片机教程XL2000开发板 单片机学习 自制编程器 单片机资料 软件下载 电子技术产品介绍如何购买 进入论坛

 

好书推荐:手把手教你学单片机 

   单片机具有体积小、功能强、应用面广等优点,目前正以前所未见的速度取代着传统电子线路构成的经典系统,蚕食着传统数字电路与模拟电路固有的领地。同时,一个学习与应用单片机的新高潮正在大规模地兴起。
    但是,单片机并不像传统数字电路或模拟电路那样直观,原因是除了“硬件”之外,还存在一个“软件”的因素。正是这个“软件”因素的存在,使得许多初学者怎么也弄不懂单片机的工作过程,怎么也不明白为什么将几个数送来送去,就能控制一盏灯亮/灭,就能控制一个电机变速。由此对单片机产生一种“神奇”、“敬畏”甚至“恐惧”感,降低了学习单片机的热情与兴趣,这就有了社会上“单片机难学”一说。
    作者多年来与众多的电子爱好者、在校学生打交道,深知他们学习单片机中碰到的难处;况且作者本人也是从一位电子爱好者成长为工程师的,此过程自然少不了学习、探索、实践、进步这样一条规律,因此深切地知道,学单片机难,主要是不得要领,难以入门。一旦找到学习的捷径,人了门,能初步掌握编程技术并产生实际效果,那么必然信心大增。接下来,再向深度、广度进军时,心里也不那么焦虑,比较坦然了,能够一步一个脚印地去扩展自己的知识面。
    从与这些朋友的交流来看,他们感兴趣的是单片机编程应用的实例,而且主要喜欢入门知识浅、程序长度短且又能立竿见影的初级实例;单纯讲指令太枯燥,很少有人能理解透彻。因此编写本书的思路是以实战(实际编程及做实验)为主线贯穿全书,中间再穿插介绍指令,这样,初学者有兴趣,学得快,易吸引,能达到很好的学习效果。
    考虑到初学者的接受能力及学习成本,学习时主要采用“程序完成后软件仿真一单片机烧录程序一试验板通电实验”的方法,而没有采用价格昂贵的在线仿真器(1CE)进行实验。这样整套实验器材(不包括。PC机)只有几百元,对大部分已工作的爱好者来说都有这个承受能力。
    编写本书的宗旨就是,依作者的亲身体验,以最实用的方法、最易入门的手法,将初学者领进单片机世界的大门,使仅稍懂硬件原理的人通过实践能理解软件的作用,让他们知道在单片机组成的系统中,硬件与软件的区分并不绝对,硬件能做的工作,一般情况下软件也能完成,软件的功能也可用硬件替代。等初步学会了单片机软件设计后,可将通常由硬件完成的工作交由软件实现。这样,系统的体积、功耗、成本将大大降低,而功能得到提升与增强,可使习惯于传统电路设计的人对单片机产生一种妙不可言的相见恨晚之感,感觉到真正找到了一种理想化的器件,真正感受、体会到现代微型计算机的强大作用,从而投身于单片机的领域中。
    随书所附的光盘中提供了本书所有的实验程序文件,在学习、实验时可参考。
    本书的编写工作得到了北京航空航天大学何立民教授的关心与鼓励,北京航空航天大学出版社的责任编辑胡晓柏也做了大量耐心细致的工作,使得本书得以顺利完成,在此表示衷心感谢。
    由于作者水平有限,书中难免存在不少缺点或漏洞,诚挚欢迎广大读者提出意见并不吝赐教。 

 

 

【《手把手教你学单片机 》图书目录】

第1章 实验设备及器材使用介绍
1.1 单片机的发展史及特点1
1.2 单片机入门的有效途径2
1.3 实验工具及器材3
1.3.1 Keil C51 Windows集成开发环境3
1.3.2 TOP851多功能编程器4
1.3.3 LED输出试验板5
1.3.4 LED数码管输出试验板6
1.3.5 5V高稳定专用稳压电源8
1.3.6 16×2字符型液晶显示模组8
第2章 Keil C51集成开发环境及TOP851多功能编程器
2.1 Keil C51集成开发环境软件安装10
2.2 TOP851烧录软件安装11
2.3 TOP851烧录软件操作12
2.3.1 文件操作和编辑12
2.3.2 选择型号16
2.3.3 读/写单片机17
第3章 初步接触KeilC51及TOP851软件并感受第一个演示程序效果
3.1 建立一个工程项目,选择芯片并确定选项19
3.2 建立源程序文件21
3.3 添加文件到当前项目组中22
3.4 编译(汇编)文件23
3,5 检查并修改源程序文件中的错误24
3.6 软件模拟仿真调试24
3.7 烧录程序(编程操作)25
3.8 观察程序运行的结果27
第4章 单片机的基本知识
4.1 MCS51单片机的基本结构28
4.2 80C51基本特性及引脚定义29
4.2.1 80C51的基本特征29
4.2.2 80C51的引脚定义及功能30
4.3 80C51的内部结构31
4.4 80C51的存储器配置和寄存器33
第5章 汇编语言程序指令的学习
5.1 MCS51单片机的指令系统37
5.2 汇编语言的特点38
5.3 汇编语言的语句格式38
第6章 数据传送指令的学习及实验
6.1 按寻址方式分类的数据传送指令40
6.1.1 立即数寻址40
6.1.2 直接寻址40
6.1.3 寄存器寻址40
6.1.4 寄存器间接寻址40
6.1.5 位寻址41
6.1.6 变址寻址41
6.1.7 相对寻址41
6.2 点亮/熄灭一个发光二极管的实验,自动循环工作41
6.2.1 实现方法41
6.2.2 源程序文件41
6.2.3 程序分析解释43
6.2.4 小结43
6.3 点亮/熄灭一个发光二极管的实验,点亮/熄灭时间自动发生变化(分3段),自动循环工作43
6.3.1 实现方法43
6.3.2 源程序文件44
6.3.3 程序分析解释45
6.3.4 小结45
6.4 P1口的8个发光二极管每隔2个右循环点亮实验46
6.4.1 实现方法46
6.4.2 源程序文件46
6.4.3 程序分析解释46
6.4.4 小结47
6.5 MCS51内部的RAM和特殊功能寄存器SFR的数据传送指令47
6.5.1 以累加器为目的操作数47
6.5.2 以寄存器为目的操作数47
6.5.3 以直接地址为目的操作数47
6.5.4 以寄存器间接地址为目的操作数48
6.5.5 16位数据传送48
6.6 “跑马灯”实验 48
6.6.1 实现方法48
6.6.2 源程序文件49
6.6.3 程序分析解释51
6.6.4 小结53
6.7 单片机的受控输出显示实验53
6.7.1 实现方法53
6.7.2 源程序文件53
6.7.3 程序分析解释54
6.8 小结55
第7章 算术运算指令的学习及实验
7.1 算术运算指令56
7.1.1 加法指令56
7.1.2 带进位加法指令56
7.1.3 带借位减法指令56
7.1.4 乘法指令57
7.1.5 除法指令57
7.1.6 加1指令57
7.1.7 减1指令57
7.1.8 二十进制调整指令58
7.2 52H、FCH两数相加实验,结果从P1口输出58
7.2.1 实现方法58
7.2.2 源程序文件58
7.2.3 程序分析解释59
7.3 FFH、03H两数相乘实验,结果从P0、P1口输出60
7.3.1 实现方法60
7.3.2 源程序文件60
7.3.3 程序分析解释61
7.4 加1指令实验,让P1口的8个发光二极管模拟二进制的加法运算61
7.4.1 实现方法61
7.4.2 源程序文件61
7.4.3 程序分析解释62
7.5 加1指令实验(不进行二十进制调整)62
7.5.1 实现方法62
7.5.2 源程序文件63
7.5.3 程序分析解释64
7.6 加1指令实验(进行二十进制调整)64
7.6.1 实现方法64
7.6.2 源程序文件64
7.6.3 程序分析解释65
7.7 小结66
第8章 逻辑运算指令的学习及实验
8.1 逻辑运算指令67
8.1.1 累加器A取反指令67
8.1.2 累加器A清0指令67
8.1.3 逻辑“与”指令67
8.1.4 逻辑“或”指令68
8.1.5 逻辑“异或”指令68
8.1.6 循环移位指令68
8.1.7 累加器半字节交换指令69
8.2 逻辑运算举例一69
8.2.1 实现方法69
8.2.2 源程序文件69
8.2.3 程序分析解释71
8.3 逻辑运算举例二72
8.3.1 实现方法72
8.3.2 源程序文件72
8.3.3 程序分析解释73
8.4 逻辑运算举例三73
8.4.1 实现方法74
8.4.2 源程序文件74
8.4.3 程序分析解释74
8.5 小结75
第9章 控制转移类指令的学习及实验
9.1 控制转移类指令76
9.1.1 无条件转移指令76
9.1.2 条件转移指令77
9.1.3 比较转移指令77
9.1.4 循环转移指令78
9.1.5 子程序调用及返回指令78
9.2 散转程序实验79
9.2.1 实现方法79
9.2.2 源程序文件80
9.2.3 程序分析解释82
9.2.4 小结83
9.3 统计含58H关键字的实验84
9.3.1 实现方法84
9.3.2 源程序文件84
9.3.3 程序分析解释85
第10章 位操作指令的学习
10.1 位操作指令87
10.1.1 位数据传送指令87
10.1.2 位控制修正指令87
10.1.3 位逻辑运算指令88
10.2 将P1.0的状态传送到P2.0的实验88
10.2.1 实现方法88
10.2.2 源程序文件88
10.2.3 程序分析解释89
10.3 比较输入数大小的实验90
10.3.1 实现方法90
10.3.2 源程序文件90
10.3.3 程序分析解释91
10.4 将累加器A中的立即数移出的实验91
10.4.1 实现方法92
10.4.2 源程序文件92
10.4.3 程序分析解释92
10.5 实现逻辑函数的实验93
10.5.1 实现方法93
10.5.2 源程序文件93
10.5.3 程序分析解释94
第11章 栈操作指令、空操作指令、伪指令及字节交换指令的学习
11.1 栈操作指令96
11.1.1 堆栈指令96
11.1.2 出栈指令96
11.2 空操作指令96
11.3 伪指令97
11.3.1 汇编起始命令97
11.3.2 汇编结束命令97
11.3.3 等值命令97
11.3.4 定义字节命令98
11.3.5 定义字命令98
11.3.6 预留存储区命令99
11.3.7 定义位命令99
11.3.8 定义数据地址命令99
11.4 字节交换指令99
11.5 查0~9平方表实验100
11.5.1 实现方法100
11.5.2 源程序文件100
11.5.3 程序分析解释102
11.6 利用NOP指令产生精确方波实验104
11.6.1 实现方法104
11.6.2 源程序文件104
11.6.3 程序分析解释106
11.7 MCS51指令分类表107
第12章 定时器/计数器及实验
12.1 定时器/计数器的结构及工作原理111
12.2 定时器/计数器方式寄存器和控制寄存器112
12.3 定时器/计数器的工作方式113
12.3.1 方式0113
12.3.2 方式1114
12.3.3 方式2115
12.3.4 方式3115
12.4 定时器/计数器的初始化116
12.5 蜂鸣器发音实验117
12.5.1 实现方法117
12.5.2 源程序文件117
12.5.3 程序分析解释118
12.6 定时器T1方式2计数实验118
12.6.1 实现方法118
12.6.2 源程序文件119
12.6.3 程序分析解释119
12.7 定时器T1方式1定时实验120
12.7.1 实现方法120
12.7.2 源程序文件120
12.7.3 程序分析解释121
第13章 中断系统及实验
13.1 中断的种类124
13.1.1 外中断124
13.1.2 内中断124
13.2 MCS51单片机的中断系统124
13.2.1 中断源及控制124
13.2.2 中断响应127
13.3 令LED输出试验板上的蜂鸣器发出1 kHz音频的实验128
13.3.1 实现方法128
13.3.2 源程序文件129
13.3.3 程序分析解释129
13.4 利用外中断方式进行数据采集实验130
13.4.1 实现方法130
13.4.2 源程序文件130
13.4.3 程序分析解释131
13.5 中断嵌套实验132
13.5.1 实现方法132
13.5.2 源程序文件132
13.5.3 程序分析解释133
13.6 交通灯控制器实验134
13.6.1 实现方法134
13.6.2 源程序文件134
13.6.3 程序分析解释136
13.7 键控计数实验138
13.7.1 实现方法138
13.7.2 源程序文件138
13.7.3 程序分析解释139
第14章 汇编语言的程序设计及实验
14.1 单片机应用系统的设计过程141
14.2 汇编语言程序设计步骤142
14.3 顺序程序设计142
14.4 右移循环流水灯实验143
14.4.1 实现方法143
14.4.2 源程序文件143
14.4.3 程序分析解释144
14.5 循环程序设计145
14.6 找数据块中最大数的实验145
14.6.1 实现方法145
14.6.2 源程序文件146
14.6.3 程序分析解释147
14.7 延时子程序的结构148
14.8 寻找ASCII码“$”的实验149
14.8.1 实现方法149
14.8.2 源程序文件149
14.8.3 程序分析解释150
14.9 子程序设计、调用及返回151
14.9.1 子程序的结构特点151
14.9.2 编写子程序时的注意要点151
14.9.3 子程序的调用与返回152
14.9.4 子程序嵌套152
14.10 使P0口的8个LED闪烁20次实验152
14.10.1 实现方法152
14.10.2 源程序文件152
14.10.3 程序分析解释153
14.11 分支程序设计154
14.11.1 单分支程序154
14.11.2 多分支程序154
14.12 做简单的+、-、×、÷实验156
14.12.1 实现方法156
14.12.2 源程序文件156
14.12.3 程序分析解释158
14.13 查表程序设计160
14.14 单片机演奏音乐的实验161
14.14.1 实现方法161
14.14.2 源程序文件161
14.14.3 程序分析解释163
14.15 数据排序实验164
14.15.1 实现方法164
14.15.2 源程序文件165
14.15.3 程序分析解释171
第15章 键盘接口技术及实验
15.1 独立式键盘172
15.2 行列式键盘173
15.3 独立式键盘接口的编程模式173
15.4行列式键盘接口的编程模式174
15.5 键盘工作方式174
15.6 独立式键盘输入实验175
15.6.1 实现方法175
15.6.2 源程序文件175
15.6.3 程序分析解释177
15.7 行列式键盘输入实验178
15.7.1 实现方法178
15.7.2 源程序文件178
15.7.3 程序分析解释180
15.8 扫描方式的键盘输入实验181
15.8.1 实现方法181
15.8.2 源程序文件181
15.8.3 程序分析解释182
15.9 定时中断方式的键盘输入实验183
15.9.1 实现方法183
15.9.2 源程序文件183
15.9.3 程序分析解释184
第16章 LED显示器接口技术及实验
16.1 LED数码显示器的构造及特点186
16.2 LED数码显示器的显示方法188
16.2.1 静态显示法188
16.2.2 动态扫描显示法189
16.3 静态显示实验190
16.3.1 实现方法190
16.3.2 源程序文件190
16.3.3 程序分析解释191
16.4 慢速动态显示实验192
16.4.1 源程序文件192
16.4.2 程序分析解释193
16.5 快速动态显示实验193
16.5.1 源程序文件193
16.5.2 程序分析解释194
16.6 实时时钟实验195
16.6.1 实现方法195
16.6.2 源程序文件195
16.6.3 程序分析解释198
第17章 字符型液晶(LCD)模块原理及设计学习
17.1 液晶显示器概述202
17.2 16×2字符型液晶显示模块(LCM)特性203
17.3 16×2字符型液晶显示模块(LCM)引脚及功能203
17.4 16×2字符型液晶显示模块(LCM)的内部结构203
17.5 液晶显示控制驱动集成电路HD44780特点204
17.6 HD44780工作原理205
17.6.1 DDRAM——数据显示用RAM206
17.6.2 CGROM——字符产生器ROM207
17.6.3 CGRAM——字型、字符产生器RAM208
17.6.4 IR——指令寄存器209
17.6.5 DR——数据寄存器209
17.6.6 BF——忙碌标志信号209
17.6.7 AC——地址计数器209
17.7 LCD控制器的指令209
17.7.1 清除显示器210
17.7.2 光标归位设定210
17.7.3 设定字符进入模式210
17.7.4 显示器开关210
17.7.5 显示光标移位211
17.7.6 功能设定211
17.7.7 CGRAM地址设定211
17.7.8 DDRAM地址设定211
17.7.9 忙碌标志BF或AC地址读取212
17.7.10 写数据到CGRAM或DDRAM中212
17.7.11 从CGRAM或DDRAM中读取数据212
17.8 LCM工作时序212
17.9 单片机驱动LCM的电路213
第18章 体验第一个液晶程序的效果并建立模块化设计的相关子程序
18.1 体验第一个液晶程序的效果215
18.1.1 源程序文件215
18.1.2 程序分析解释218
18.2 查询忙碌标志信号子程序222
18.2.1 源程序文件222
18.2.2 程序分析解释222
18.3 写指令到LCM(IR寄存器)子程序223
18.3.1 源程序文件223
18.3.2 程序分析解释223
18.4 写数据到LCM(DR寄存器)子程序223
18.4.1 源程序文件223
18.4.2 程序分析解释224
18.5 清除显示屏子程序224
18.5.1 源程序文件224
18.5.2 程序分析解释224
18.6 启动LCM子程序224
18.6.1 源程序文件225
18.6.2 程序分析解释225
18.7 让字母“F”在显示屏的第2行第10列显示227
18.7.1 源程序文件227
18.7.2 程序分析解释228
18.8 使LCM显示2行字符串(英文信息)229
18.8.1 源程序文件229
18.8.2 程序分析解释232
18.9 使LCM显示2行字符串(英文信息)并循环移动233
18.9.1 源程序文件233
18.9.2 程序分析解释235
第19章 简单的液晶显示型自动化仪器的设计学习及实验
19.1 工业生产自动计数器238
19.1.1 实现方法238
19.1.2 源程序文件238
19.1.3 程序分析解释246
19.2 设备运行状态自动显示器249
19.2.1 实现方法250
19.2.2 源程序文件250
19.2.3 程序分析解释253
19.3 液晶显示计时时钟254
19.3.1 源程序文件254
19.3.2 程序分析解释260
19.4 让液晶显示屏显示自制图形“中”264
19.4.1 实现方法264
19.4.2 源程序文件264
19.4.3 程序分析解释266
19.5 液晶显示屏显示复杂的自制图形268
19.5.1 实现方法268
19.5.2 源程序文件268
19.5.3 程序分析解释271
第20章 Keil C51集成开发环境的设置及调试方法
20.1 工程项目的建立、源程序文件的建立及加载273
20.1.1 建立工程文件274
20.1.2 源程序文件的建立276
20.1.3 添加文件到当前项目组中278
20.2 工程的详细设置280
20.2.1 Target页面280
20.2.2 Output页面281
20.2.3 Listing页面282
20.2.4 C51页面283
20.2.5 Debug页面 284
20.3 编译、连接285
20.4 Keil C51集成开发环境软件的调试方法286
20.4.1 常用调试命令286
20.4.2 断点设置286
20.4.3 在线汇编287
20.4.4 程序调试时的常用窗口287
20.5 外围接口工具289
20.5.1 P1口作为输入端口289
20.5.2 P1口作为输出端口290
20.5.3 外部中断INT0291
20.5.4 定时器/计数器0292